- ev->signal_button_press_event().connect (sigc::mem_fun (*this, &ARDOUR_UI::status_bar_button_press_event));
-}
-
-bool
-ARDOUR_UI::status_bar_button_press_event (GdkEventButton* ev)
-{
- if (ev->button != 3) {
- return false;
- }
-
- using namespace Menu_Helpers;
-
- Menu* m = manage (new Menu);
-
- MenuList& items = m->items ();
-
- items.push_back (CheckMenuElem (_("Wall Clock")));
- CheckMenuItem* i = dynamic_cast<CheckMenuItem*> (&items.back ());
- i->set_active (_status_bar_visiblity & StatusWallClock);
- i->signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &ARDOUR_UI::toggle_status_bar_visibility), StatusWallClock));
-
- items.push_back (CheckMenuElem (_("Disk Space")));
- i = dynamic_cast<CheckMenuItem*> (&items.back ());
- i->set_active (_status_bar_visiblity & StatusDiskSpace);
- i->signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &ARDOUR_UI::toggle_status_bar_visibility), StatusDiskSpace));
-
- items.push_back (CheckMenuElem (_("DSP")));
- i = dynamic_cast<CheckMenuItem*> (&items.back ());
- i->set_active (_status_bar_visiblity & StatusCPULoad);
- i->signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &ARDOUR_UI::toggle_status_bar_visibility), StatusCPULoad));
-
- items.push_back (CheckMenuElem (_("Buffers")));
- i = dynamic_cast<CheckMenuItem*> (&items.back ());
- i->set_active (_status_bar_visiblity & StatusBufferLoad);
- i->signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &ARDOUR_UI::toggle_status_bar_visibility), StatusBufferLoad));
-
- items.push_back (CheckMenuElem (_("JACK Sampling Rate and Latency")));
- i = dynamic_cast<CheckMenuItem*> (&items.back ());
- i->set_active (_status_bar_visiblity & StatusSampleRate);
- i->signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &ARDOUR_UI::toggle_status_bar_visibility), StatusSampleRate));
-
- items.push_back (CheckMenuElem (_("File Format")));
- i = dynamic_cast<CheckMenuItem*> (&items.back ());
- i->set_active (_status_bar_visiblity & StatusFormat);
- i->signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &ARDOUR_UI::toggle_status_bar_visibility), StatusFormat));
-
- m->popup (1, ev->time);
-
- return true;
-}
-
-void
-ARDOUR_UI::update_status_bar_visibility ()
-{
- if (_status_bar_visiblity & StatusWallClock) {
- wall_clock_box.show ();
- } else {
- wall_clock_box.hide ();
- }
-
- if (_status_bar_visiblity & StatusDiskSpace) {
- disk_space_box.show ();
- } else {
- disk_space_box.hide ();
- }
-
- if (_status_bar_visiblity & StatusCPULoad) {
- cpu_load_box.show ();
- } else {
- cpu_load_box.hide ();
- }
-
- if (_status_bar_visiblity & StatusBufferLoad) {
- buffer_load_box.show ();
- } else {
- buffer_load_box.hide ();
- }
-
- if (_status_bar_visiblity & StatusSampleRate) {
- sample_rate_box.show ();
- } else {
- sample_rate_box.hide ();
- }
-
- if (_status_bar_visiblity & StatusFormat) {
- format_box.show ();
- } else {
- format_box.hide ();
- }
-}
+ _status_bar_visibility.add (&wall_clock_label, X_("WallClock"), _("Wall Clock"), wall_clock);
+ _status_bar_visibility.add (&disk_space_label, X_("Disk"), _("Disk Space"), disk_space);
+ _status_bar_visibility.add (&cpu_load_label, X_("DSP"), _("DSP"), true);
+ _status_bar_visibility.add (&buffer_load_label, X_("Buffers"), _("Buffers"), true);
+ _status_bar_visibility.add (&sample_rate_label, X_("JACK"), _("JACK Sampling Rate and Latency"), true);
+ _status_bar_visibility.add (&format_label, X_("Format"), _("File Format"), true);