summaryrefslogtreecommitdiffstats
path: root/src/gui/ObjectMenu.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-10-22 03:08:06 +0000
committerDavid Robillard <d@drobilla.net>2011-10-22 03:08:06 +0000
commitac1d6d135bda8d739fdb8bf564f89c38b664c097 (patch)
treed750da79dd88b64ab2a88cca1651c2a5a240bd72 /src/gui/ObjectMenu.cpp
parent143968e38cc2f058dd7c500e984904a39864d652 (diff)
downloadingen-ac1d6d135bda8d739fdb8bf564f89c38b664c097.tar.gz
ingen-ac1d6d135bda8d739fdb8bf564f89c38b664c097.tar.bz2
ingen-ac1d6d135bda8d739fdb8bf564f89c38b664c097.zip
De-singleton-ify GUI.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3584 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/gui/ObjectMenu.cpp')
-rw-r--r--src/gui/ObjectMenu.cpp30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/gui/ObjectMenu.cpp b/src/gui/ObjectMenu.cpp
index 693dec73..10dffa6d 100644
--- a/src/gui/ObjectMenu.cpp
+++ b/src/gui/ObjectMenu.cpp
@@ -36,6 +36,7 @@ namespace GUI {
ObjectMenu::ObjectMenu(BaseObjectType* cobject,
const Glib::RefPtr<Gtk::Builder>& xml)
: Gtk::Menu(cobject)
+ , _app(NULL)
, _polyphonic_menuitem(NULL)
, _disconnect_menuitem(NULL)
, _rename_menuitem(NULL)
@@ -53,12 +54,11 @@ ObjectMenu::ObjectMenu(BaseObjectType* cobject,
}
void
-ObjectMenu::init(SharedPtr<const ObjectModel> object)
+ObjectMenu::init(App& app, SharedPtr<const ObjectModel> object)
{
+ _app = &app;
_object = object;
- App& app = App::instance();
-
_polyphonic_menuitem->signal_toggled().connect(
sigc::mem_fun(this, &ObjectMenu::on_menu_polyphonic));
@@ -74,7 +74,7 @@ ObjectMenu::init(SharedPtr<const ObjectModel> object)
sigc::mem_fun(this, &ObjectMenu::on_menu_disconnect));
_rename_menuitem->signal_activate().connect(sigc::bind(
- sigc::mem_fun(app.window_factory(), &WindowFactory::present_rename),
+ sigc::mem_fun(_app->window_factory(), &WindowFactory::present_rename),
object));
_destroy_menuitem->signal_activate().connect(
@@ -94,9 +94,9 @@ ObjectMenu::init(SharedPtr<const ObjectModel> object)
void
ObjectMenu::on_menu_learn()
{
- App::instance().engine()->set_property(_object->path(),
- App::instance().uris().ingen_controlBinding,
- App::instance().uris().wildcard);
+ _app->engine()->set_property(_object->path(),
+ _app->uris().ingen_controlBinding,
+ _app->uris().wildcard);
}
void
@@ -104,24 +104,24 @@ ObjectMenu::on_menu_unlearn()
{
Resource::Properties remove;
remove.insert(std::make_pair(
- App::instance().uris().ingen_controlBinding,
- App::instance().uris().wildcard));
- App::instance().engine()->delta(_object->path(), remove, Resource::Properties());
+ _app->uris().ingen_controlBinding,
+ _app->uris().wildcard));
+ _app->engine()->delta(_object->path(), remove, Resource::Properties());
}
void
ObjectMenu::on_menu_polyphonic()
{
if (_enable_signal)
- App::instance().engine()->set_property(_object->path(),
- App::instance().uris().ingen_polyphonic,
+ _app->engine()->set_property(_object->path(),
+ _app->uris().ingen_polyphonic,
bool(_polyphonic_menuitem->get_active()));
}
void
ObjectMenu::property_changed(const URI& predicate, const Atom& value)
{
- const URIs& uris = App::instance().uris();
+ const URIs& uris = _app->uris();
_enable_signal = false;
if (predicate == uris.ingen_polyphonic && value.type() == Atom::BOOL)
_polyphonic_menuitem->set_active(value.get_bool());
@@ -131,13 +131,13 @@ ObjectMenu::property_changed(const URI& predicate, const Atom& value)
void
ObjectMenu::on_menu_destroy()
{
- App::instance().engine()->del(_object->path());
+ _app->engine()->del(_object->path());
}
void
ObjectMenu::on_menu_properties()
{
- App::instance().window_factory()->present_properties(_object);
+ _app->window_factory()->present_properties(_object);
}
} // namespace GUI