#include <gtkmm/box.h>
#include <gtkmm/eventbox.h>
+class XMLNode;
+
namespace Gtkmm2ext {
class TearOff : public Gtk::HBox
TearOff (Gtk::Widget& contents, bool allow_resize = false);
virtual ~TearOff ();
- void set_visible (bool yn);
+ void set_visible (bool yn, bool force = false);
+ void set_can_be_torn_off (bool);
+ bool can_be_torn_off () const { return _can_be_torn_off; }
+ bool visible () const { return _visible; }
sigc::signal<void> Detach;
sigc::signal<void> Attach;
Gtk::Window& tearoff_window() { return own_window; }
bool torn_off() const;
+ void tear_it_off ();
+ void put_it_back ();
+ void hide_visible ();
+
+ void set_state (const XMLNode&);
+ void add_state (XMLNode&) const;
private:
Gtk::Widget& contents;
double drag_y;
bool dragging;
bool _visible;
+ bool _torn;
+ bool _can_be_torn_off;
+ int own_window_width;
+ int own_window_height;
+ int own_window_xpos;
+ int own_window_ypos;
gint tearoff_click (GdkEventButton*);
gint close_click (GdkEventButton*);
gint window_button_press (GdkEventButton*);
gint window_button_release (GdkEventButton*);
gint window_delete_event (GdkEventAny*);
+
+ void own_window_realized ();
+ bool own_window_configured (GdkEventConfigure*);
};
} /* namespace */