diff options
Diffstat (limited to 'src/gui/GraphTreeWindow.hpp')
-rw-r--r-- | src/gui/GraphTreeWindow.hpp | 70 |
1 files changed, 42 insertions, 28 deletions
diff --git a/src/gui/GraphTreeWindow.hpp b/src/gui/GraphTreeWindow.hpp index c1ea53c2..6f33f258 100644 --- a/src/gui/GraphTreeWindow.hpp +++ b/src/gui/GraphTreeWindow.hpp @@ -19,20 +19,36 @@ #include "Window.hpp" -#include <gtkmm/builder.h> +#include <ingen/URI.hpp> + +#include <gdk/gdk.h> +#include <glibmm/refptr.h> +#include <glibmm/ustring.h> #include <gtkmm/treemodel.h> +#include <gtkmm/treemodelcolumn.h> +#include <gtkmm/treeselection.h> #include <gtkmm/treestore.h> #include <gtkmm/treeview.h> -namespace Raul { class Path; } +#include <memory> + +namespace Gtk { +class Builder; +} // namespace Gtk namespace ingen { -namespace client { class ClientStore; class ObjectModel; } +class Atom; + +namespace client { +class ClientStore; +class ObjectModel; +class GraphModel; +} // namespace client namespace gui { -class GraphWindow; +class App; class GraphTreeView; /** Window with a TreeView of all loaded graphs. @@ -47,16 +63,17 @@ public: void init(App& app, client::ClientStore& store); - void new_object(const SPtr<client::ObjectModel>& object); + void new_object(const std::shared_ptr<client::ObjectModel>& object); - void graph_property_changed(const URI& key, - const Atom& value, - const SPtr<client::GraphModel>& graph); + void + graph_property_changed(const URI& key, + const Atom& value, + const std::shared_ptr<client::GraphModel>& graph); - void graph_moved(const SPtr<client::GraphModel>& graph); + void graph_moved(const std::shared_ptr<client::GraphModel>& graph); - void add_graph(const SPtr<client::GraphModel>& pm); - void remove_graph(const SPtr<client::GraphModel>& pm); + void add_graph(const std::shared_ptr<client::GraphModel>& pm); + void remove_graph(const std::shared_ptr<client::GraphModel>& pm); void show_graph_menu(GdkEventButton* ev); protected: @@ -65,30 +82,28 @@ protected: void event_graph_enabled_toggled(const Glib::ustring& path_str); - Gtk::TreeModel::iterator find_graph( - Gtk::TreeModel::Children root, - const SPtr<client::ObjectModel>& graph); + Gtk::TreeModel::iterator + find_graph(Gtk::TreeModel::Children root, + const std::shared_ptr<client::ObjectModel>& graph); - GraphTreeView* _graphs_treeview; + GraphTreeView* _graphs_treeview{nullptr}; - struct GraphTreeModelColumns : public Gtk::TreeModel::ColumnRecord - { + struct GraphTreeModelColumns : public Gtk::TreeModel::ColumnRecord { GraphTreeModelColumns() { add(name_col); add(enabled_col); add(graph_model_col); } - Gtk::TreeModelColumn<Glib::ustring> name_col; - Gtk::TreeModelColumn<bool> enabled_col; - Gtk::TreeModelColumn<SPtr<client::GraphModel> > graph_model_col; + Gtk::TreeModelColumn<Glib::ustring> name_col; + Gtk::TreeModelColumn<bool> enabled_col; + Gtk::TreeModelColumn<std::shared_ptr<client::GraphModel>> graph_model_col; }; - App* _app; GraphTreeModelColumns _graph_tree_columns; Glib::RefPtr<Gtk::TreeStore> _graph_treestore; Glib::RefPtr<Gtk::TreeSelection> _graph_tree_selection; - bool _enable_signal; + bool _enable_signal{true}; }; /** Derived TreeView class to support context menus for graphs */ @@ -98,24 +113,23 @@ public: GraphTreeView(BaseObjectType* cobject, const Glib::RefPtr<Gtk::Builder>& xml) : Gtk::TreeView(cobject) - , _window(nullptr) {} void set_window(GraphTreeWindow* win) { _window = win; } bool on_button_press_event(GdkEventButton* ev) override { - bool ret = Gtk::TreeView::on_button_press_event(ev); + const bool ret = Gtk::TreeView::on_button_press_event(ev); - if ((ev->type == GDK_BUTTON_PRESS) && (ev->button == 3)) + if ((ev->type == GDK_BUTTON_PRESS) && (ev->button == 3)) { _window->show_graph_menu(ev); + } return ret; } private: - GraphTreeWindow* _window; - -}; // struct GraphTreeView + GraphTreeWindow* _window{nullptr}; +}; } // namespace gui } // namespace ingen |