diff options
Diffstat (limited to 'libs/gtkmm2ext/gtkmm2ext/pixscroller.h')
-rw-r--r-- | libs/gtkmm2ext/gtkmm2ext/pixscroller.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/libs/gtkmm2ext/gtkmm2ext/pixscroller.h b/libs/gtkmm2ext/gtkmm2ext/pixscroller.h new file mode 100644 index 0000000000..4501a0c88c --- /dev/null +++ b/libs/gtkmm2ext/gtkmm2ext/pixscroller.h @@ -0,0 +1,47 @@ +#ifndef __gtkmm2ext_pixscroller_h__ +#define __gtkmm2ext_pixscroller_h__ + +#include <gtkmm/drawingarea.h> +#include <gtkmm/adjustment.h> +#include <gdkmm.h> + +#include <gtkmm2ext/pix.h> + +namespace Gtkmm2ext { + +class PixScroller : public Gtk::DrawingArea +{ + public: + PixScroller(Gtk::Adjustment& adjustment, Pix&); + + + bool on_expose_event (GdkEventExpose*); + bool on_motion_notify_event (GdkEventMotion*); + bool on_button_press_event (GdkEventButton*); + bool on_button_release_event (GdkEventButton*); + void on_size_request (GtkRequisition*); + + protected: + Gtk::Adjustment& adj; + + private: + Glib::RefPtr<Gdk::Pixmap> rail; + Glib::RefPtr<Gdk::Pixmap> slider; + Glib::RefPtr<Gdk::Bitmap> rail_mask; + Glib::RefPtr<Gdk::Bitmap> slider_mask; + Gdk::Rectangle sliderrect; + Gdk::Rectangle railrect; + GdkWindow* grab_window; + double grab_y; + double grab_start; + int overall_height; + bool dragging; + + float default_value; + + void adjustment_changed (); +}; + +} // namespace + +#endif /* __gtkmm2ext_pixscroller_h__ */ |