|
Packit |
1470ea |
/* -*- Mode: C++; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
#include <gtkmm.h>
|
|
Packit |
1470ea |
#include <iostream>
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
Gtk::Image* image = 0;
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
static void
|
|
Packit |
1470ea |
on_open_image ()
|
|
Packit |
1470ea |
{
|
|
Packit |
1470ea |
Gtk::FileChooserDialog dialog("Open image",
|
|
Packit |
1470ea |
Gtk::FILE_CHOOSER_ACTION_OPEN);
|
|
Packit |
1470ea |
dialog.add_button (Gtk::Stock::OPEN,
|
|
Packit |
1470ea |
Gtk::RESPONSE_ACCEPT);
|
|
Packit |
1470ea |
dialog.add_button (Gtk::Stock::CANCEL,
|
|
Packit |
1470ea |
Gtk::RESPONSE_CANCEL);
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
Glib::RefPtr<Gtk::FileFilter> filter =
|
|
Packit |
1470ea |
Gtk::FileFilter::create();
|
|
Packit |
1470ea |
filter->add_pixbuf_formats();
|
|
Packit |
1470ea |
filter->set_name("Images");
|
|
Packit |
1470ea |
dialog.add_filter (filter);
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
const int response = dialog.run();
|
|
Packit |
1470ea |
dialog.hide();
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
switch (response)
|
|
Packit |
1470ea |
{
|
|
Packit |
1470ea |
case Gtk::RESPONSE_ACCEPT:
|
|
Packit |
1470ea |
image->set(dialog.get_filename());
|
|
Packit |
1470ea |
break;
|
|
Packit |
1470ea |
default:
|
|
Packit |
1470ea |
break;
|
|
Packit |
1470ea |
}
|
|
Packit |
1470ea |
}
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
int
|
|
Packit |
1470ea |
main (int argc, char *argv[])
|
|
Packit |
1470ea |
{
|
|
Packit |
1470ea |
Gtk::Main kit(argc, argv);
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
Gtk::Window main_win;
|
|
Packit |
1470ea |
main_win.set_title ("image-viewer-cpp");
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
Gtk::Box* box = Gtk::manage(new Gtk::Box());
|
|
Packit |
1470ea |
box->set_orientation (Gtk::ORIENTATION_VERTICAL);
|
|
Packit |
1470ea |
box->set_spacing(6);
|
|
Packit |
1470ea |
main_win.add(*box);
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
image = Gtk::manage(new Gtk::Image());
|
|
Packit |
1470ea |
box->pack_start (*image, true, true);
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
Gtk::Button* button = Gtk::manage(new Gtk::Button("Open Imageā¦"));
|
|
Packit |
1470ea |
button->signal_clicked().connect (
|
|
Packit |
1470ea |
sigc::ptr_fun(&on_open_image));
|
|
Packit |
1470ea |
box->pack_start (*button, false, false);
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
main_win.show_all_children();
|
|
Packit |
1470ea |
kit.run(main_win);
|
|
Packit |
1470ea |
|
|
Packit |
1470ea |
return 0;
|
|
Packit |
1470ea |
}
|