X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Froute_group_menu.h;h=5d711ff66f4c911ff5e4949b77d927cbfa2727d9;hb=c4696fe2d568bce461aa9f8b4fbc6be19b6113ae;hp=09a31e60eddb473da49ffa9ea4bb69588dd3e427;hpb=7a4f1b9cf685aa5b6288b87c02d0f25397f6cd3a;p=ardour.git diff --git a/gtk2_ardour/route_group_menu.h b/gtk2_ardour/route_group_menu.h index 09a31e60ed..5d711ff66f 100644 --- a/gtk2_ardour/route_group_menu.h +++ b/gtk2_ardour/route_group_menu.h @@ -1,21 +1,47 @@ -namespace ARDOUR { - class Session; - class RouteGroup; -} +/* + Copyright (C) 2009 Paul Davis -class RouteGroupMenu : public Gtk::Menu + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifndef __ardour_gtk_route_group_menu_h__ +#define __ardour_gtk_route_group_menu_h__ + +#include "ardour/route_group.h" +#include "ardour/session_handle.h" + +class RouteGroupMenu : public ARDOUR::SessionHandlePtr { public: - RouteGroupMenu (ARDOUR::Session &); + RouteGroupMenu (ARDOUR::Session*, PBD::PropertyList*); + ~RouteGroupMenu(); - void rebuild (ARDOUR::RouteGroup *); + Gtk::Menu* menu (); + void build (ARDOUR::WeakRouteList const &); + void detach (); - sigc::signal GroupSelected; - -private: - void add_item (ARDOUR::RouteGroup *, ARDOUR::RouteGroup *, Gtk::RadioMenuItem::Group*); + private: + void add_item (ARDOUR::RouteGroup *, std::set const &, Gtk::RadioMenuItem::Group*); void new_group (); void set_group (ARDOUR::RouteGroup *); - - ARDOUR::Session& _session; + + Gtk::Menu* _menu; + PBD::PropertyList* _default_properties; + bool _inhibit_group_selected; + ARDOUR::WeakRouteList _subject; }; + +#endif /* __ardour_gtk_route_group_menu_h__ */