summaryrefslogtreecommitdiff
path: root/gtk2_ardour/visibility_group.h
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2011-11-03 01:44:17 +0000
committerCarl Hetherington <carl@carlh.net>2011-11-03 01:44:17 +0000
commit154c2a35d7a14eda847a6a610f5fbe8fb17109d8 (patch)
tree0ab60ea0bd686f2fde078a5ff3a0d7a74135f7d6 /gtk2_ardour/visibility_group.h
parent22d87a18dc602ef29a82f5c1fa68ba00ecacfe4b (diff)
Allow overrides of the user-set visibility stuff and use it to make sure the master bus doesn't get solo isolate etc. (#4431).
git-svn-id: svn://localhost/ardour2/branches/3.0@10407 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/visibility_group.h')
-rw-r--r--gtk2_ardour/visibility_group.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/gtk2_ardour/visibility_group.h b/gtk2_ardour/visibility_group.h
index d9e13e1e93..940b8bcc52 100644
--- a/gtk2_ardour/visibility_group.h
+++ b/gtk2_ardour/visibility_group.h
@@ -37,7 +37,14 @@ class VisibilityGroup
public:
VisibilityGroup (std::string const &);
- void add (Gtk::Widget *, std::string const &, std::string const &, bool visible = true);
+ void add (
+ Gtk::Widget *,
+ std::string const &,
+ std::string const &,
+ bool visible = 0,
+ boost::function<boost::optional<bool> ()> = 0
+ );
+
Gtk::Menu* menu ();
Gtk::Widget* list_view ();
bool button_press_event (GdkEventButton *);
@@ -56,6 +63,7 @@ private:
std::string id;
std::string name;
bool visible;
+ boost::function<boost::optional<bool> ()> override;
};
class ModelColumns : public Gtk::TreeModelColumnRecord {
@@ -74,6 +82,7 @@ private:
void toggle (std::vector<Member>::iterator);
void list_view_visible_changed (std::string const &);
void update_list_view ();
+ bool should_actually_be_visible (Member const &) const;
std::vector<Member> _members;
std::string _xml_property_name;