Example #1
0
GxSplashBox::GxSplashBox()
    : Gtk::Window(Gtk::WINDOW_POPUP) {
    set_redraw_on_allocate(true);
    set_app_paintable();
    signal_expose_event().connect(
        sigc::group(&gx_cairo::splash_expose, GTK_WIDGET(gobj()),
		    sigc::_1, (void*)0), false);
    set_decorated(false);
    set_type_hint(Gdk::WINDOW_TYPE_HINT_SPLASHSCREEN);
    set_position(Gtk::WIN_POS_CENTER );
    set_default_size(280,80);
    show_all();
}
Example #2
0
	Image::Image(const Glib::RefPtr<Post> &post_,
	             const std::shared_ptr<ImageFetcher>& image_fetcher,
	             sigc::slot<void, const ImageState&> state_change_callback) :
		Gtk::Bin(),
		post(post_),
		event_box(Gtk::manage(new Gtk::EventBox())),
		image(Gtk::manage(new Gtk::Image())),
		image_state(NONE),
		is_changing_state(false),
		scaled_width(-1),
		scaled_height(-1),
		is_scaled(false),
		am_fetching_thumb(false),
		am_fetching_image(false),
		canceller(std::make_shared<Canceller>()),
		ifetcher(image_fetcher)
	{
		set_has_window(false);
		set_redraw_on_allocate(false);
		set_name("imagewindow");
		event_box->set_events(Gdk::BUTTON_PRESS_MASK);
		event_box->set_visible_window(false);
		event_box->signal_button_press_event().connect( sigc::mem_fun(*this, &Image::on_image_click) );
		image->set_name("image");
		image->set_halign(Gtk::ALIGN_START);
		image->set_valign(Gtk::ALIGN_START);
		event_box->add(*image);
		add(*event_box);

		state_changed_dispatcher.connect(sigc::mem_fun(*this,
		                                               &Image::run_state_changed_callbacks));
		signal_state_changed.connect(state_change_callback);

		if (post->has_image()) {
			std::string ext = post->get_image_ext();
			if (ext.compare(".gif") == 0) {
				fetch_image();
			} else {
				fetch_thumbnail();
			}
		} else {
			g_error("Horizon::Image created for post %" G_GINT64_FORMAT
			        " that has no image.",
			        post->get_id()); 
		}

		image->signal_unmap()    .connect(sigc::mem_fun(*this, &Image::on_image_unmap));
		image->signal_unrealize().connect(sigc::mem_fun(*this, &Image::on_image_unrealize));
		image->signal_draw()     .connect(sigc::mem_fun(*this, &Image::on_image_draw), false);
	}