519720dccf4923f493470fa26d6ec29286bbca82
[ardour.git] / libs / gtkmm2ext / gtkmm2ext / cairo_packer.h
1 #ifndef __gtkmm2ext_cairo_packer_h__
2 #define __gtkmm2ext_cairo_packer_h__
3
4 #include <gtkmm/box.h>
5
6 #include "gtkmm2ext/visibility.h"
7
8 class LIBGTKMM2EXT_API CairoPacker 
9 {
10   public:
11         CairoPacker () {}
12         virtual ~CairoPacker () {}
13
14         virtual Gdk::Color get_bg () const = 0;
15
16   protected:
17         virtual void draw_background (Gtk::Widget&, GdkEventExpose*);
18 };
19
20 class LIBGTKMM2EXT_API CairoHPacker : public CairoPacker, public Gtk::HBox
21 {
22   public:
23         CairoHPacker ();
24         ~CairoHPacker() {}
25
26         Gdk::Color get_bg () const;
27
28         bool on_expose_event (GdkEventExpose*);
29         void on_realize ();
30 };
31
32 class LIBGTKMM2EXT_API CairoVPacker : public CairoPacker, public Gtk::VBox
33 {
34   public:
35         CairoVPacker ();
36         ~CairoVPacker () {}
37
38         Gdk::Color get_bg () const;
39
40         bool on_expose_event (GdkEventExpose*);
41         void on_realize ();
42 };
43
44 #endif /* __gtkmm2ext_cairo_packer_h__ */