summaryrefslogtreecommitdiffstats
path: root/src/gui/ObjectMenu.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/ObjectMenu.hpp')
-rw-r--r--src/gui/ObjectMenu.hpp64
1 files changed, 41 insertions, 23 deletions
diff --git a/src/gui/ObjectMenu.hpp b/src/gui/ObjectMenu.hpp
index 22eef74b..5a4c83f4 100644
--- a/src/gui/ObjectMenu.hpp
+++ b/src/gui/ObjectMenu.hpp
@@ -17,21 +17,34 @@
#ifndef INGEN_GUI_OBJECTMENU_HPP
#define INGEN_GUI_OBJECTMENU_HPP
-#include "ingen/client/ObjectModel.hpp"
-#include "ingen/types.hpp"
+#include <ingen/URI.hpp>
-#include <gtkmm/builder.h>
-#include <gtkmm/checkmenuitem.h>
#include <gtkmm/menu.h>
-#include <gtkmm/menuitem.h>
+
+#include <memory>
+
+namespace Glib {
+template <class T> class RefPtr;
+} // namespace Glib
+
+namespace Gtk {
+class Builder;
+class CheckMenuItem;
+class MenuItem;
+class SeparatorMenuItem;
+} // namespace Gtk
namespace ingen {
+
+class Atom;
+
+namespace client {
+class ObjectModel;
+} // namespace client
+
namespace gui {
class App;
-class ObjectControlWindow;
-class ObjectPropertiesWindow;
-class GraphCanvas;
/** Menu for a Object.
*
@@ -43,10 +56,15 @@ public:
ObjectMenu(BaseObjectType* cobject,
const Glib::RefPtr<Gtk::Builder>& xml);
- void init(App& app, SPtr<const client::ObjectModel> object);
+ void
+ init(App& app, const std::shared_ptr<const client::ObjectModel>& object);
+
+ std::shared_ptr<const client::ObjectModel> object() const
+ {
+ return _object;
+ }
- SPtr<const client::ObjectModel> object() const { return _object; }
- App* app() const { return _app; }
+ App* app() const { return _app; }
protected:
void on_menu_learn();
@@ -58,18 +76,18 @@ protected:
void property_changed(const URI& predicate, const Atom& value);
- App* _app;
- SPtr<const client::ObjectModel> _object;
- Gtk::MenuItem* _learn_menuitem;
- Gtk::MenuItem* _unlearn_menuitem;
- Gtk::CheckMenuItem* _polyphonic_menuitem;
- Gtk::MenuItem* _disconnect_menuitem;
- Gtk::MenuItem* _rename_menuitem;
- Gtk::MenuItem* _destroy_menuitem;
- Gtk::MenuItem* _properties_menuitem;
- Gtk::SeparatorMenuItem* _separator_menuitem;
-
- bool _enable_signal;
+ App* _app{nullptr};
+ std::shared_ptr<const client::ObjectModel> _object;
+ Gtk::MenuItem* _learn_menuitem{nullptr};
+ Gtk::MenuItem* _unlearn_menuitem{nullptr};
+ Gtk::CheckMenuItem* _polyphonic_menuitem{nullptr};
+ Gtk::MenuItem* _disconnect_menuitem{nullptr};
+ Gtk::MenuItem* _rename_menuitem{nullptr};
+ Gtk::MenuItem* _destroy_menuitem{nullptr};
+ Gtk::MenuItem* _properties_menuitem{nullptr};
+ Gtk::SeparatorMenuItem* _separator_menuitem{nullptr};
+
+ bool _enable_signal{false};
};
} // namespace gui