mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-08 15:54:57 +01:00
Facilitate callbacks when Tab is detached/attached
This commit is contained in:
parent
d5a105e777
commit
f91cb13cce
2 changed files with 10 additions and 1 deletions
|
|
@ -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…
Add table
Add a link
Reference in a new issue