Facilitate callbacks when Tab is detached/attached
This commit is contained in:
parent
d5a105e777
commit
f91cb13cce
@ -151,7 +151,7 @@ Gtk::Notebook*
|
|||||||
Tabbable::tab_root_drop ()
|
Tabbable::tab_root_drop ()
|
||||||
{
|
{
|
||||||
/* This is called after a drop of a tab onto the root window. Its
|
/* This is called after a drop of a tab onto the root window. Its
|
||||||
* responsibility xois to return the notebook that this Tabbable's
|
* responsibility is to return the notebook that this Tabbable's
|
||||||
* contents should be packed into before the drop handling is
|
* contents should be packed into before the drop handling is
|
||||||
* completed. It is not responsible for actually taking care of this
|
* completed. It is not responsible for actually taking care of this
|
||||||
* packing.
|
* packing.
|
||||||
@ -226,6 +226,7 @@ void
|
|||||||
Tabbable::detach ()
|
Tabbable::detach ()
|
||||||
{
|
{
|
||||||
show_own_window (true);
|
show_own_window (true);
|
||||||
|
signal_tabbed_changed (false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -260,6 +261,9 @@ Tabbable::attach ()
|
|||||||
_parent_notebook->set_tab_detachable (_contents);
|
_parent_notebook->set_tab_detachable (_contents);
|
||||||
_parent_notebook->set_tab_reorderable (_contents);
|
_parent_notebook->set_tab_reorderable (_contents);
|
||||||
_parent_notebook->set_current_page (_parent_notebook->page_num (_contents));
|
_parent_notebook->set_current_page (_parent_notebook->page_num (_contents));
|
||||||
|
|
||||||
|
signal_tabbed_changed (true);
|
||||||
|
|
||||||
_contents.show ();
|
_contents.show ();
|
||||||
|
|
||||||
/* have to force this on, which is semantically correct, since
|
/* have to force this on, which is semantically correct, since
|
||||||
@ -355,6 +359,7 @@ Tabbable::set_state (const XMLNode& node, int version)
|
|||||||
|
|
||||||
if (_visible) {
|
if (_visible) {
|
||||||
show_own_window (true);
|
show_own_window (true);
|
||||||
|
signal_tabbed_changed (false);
|
||||||
}
|
}
|
||||||
|
|
||||||
XMLNodeList children = node.children ();
|
XMLNodeList children = node.children ();
|
||||||
@ -370,6 +375,7 @@ Tabbable::set_state (const XMLNode& node, int version)
|
|||||||
} else {
|
} else {
|
||||||
/* this does nothing if not tabbed */
|
/* this does nothing if not tabbed */
|
||||||
hide_tab ();
|
hide_tab ();
|
||||||
|
signal_tabbed_changed (false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,6 +68,7 @@ public:
|
|||||||
bool tabbed() const;
|
bool tabbed() const;
|
||||||
bool tabbed_by_default () const;
|
bool tabbed_by_default () const;
|
||||||
|
|
||||||
|
|
||||||
Gtk::Window* current_toplevel () const;
|
Gtk::Window* current_toplevel () const;
|
||||||
|
|
||||||
Gtk::Notebook* tab_root_drop ();
|
Gtk::Notebook* tab_root_drop ();
|
||||||
@ -82,6 +83,8 @@ public:
|
|||||||
protected:
|
protected:
|
||||||
bool delete_event_handler (GdkEventAny *ev);
|
bool delete_event_handler (GdkEventAny *ev);
|
||||||
|
|
||||||
|
sigc::signal1<void, bool> signal_tabbed_changed;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Gtk::Widget& _contents;
|
Gtk::Widget& _contents;
|
||||||
Gtk::Notebook _own_notebook;
|
Gtk::Notebook _own_notebook;
|
||||||
|
Loading…
Reference in New Issue
Block a user