1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
//!
//! \addtogroup linuxui Linux UI
//! @{
//!
#ifndef _LAYER_TREE_H_
#define _LAYER_TREE_H_
#include <gtkmm/scrolledwindow.h>
#include <gtkmm/treeview.h>
#include "treemodel_wrapper.h"
#include "workbench/wb_context_ui.h"
#include "model/wb_layer_tree.h"
#include "base/trackable.h"
class LayerTree : public Gtk::ScrolledWindow, public base::trackable
{
wb::WBContextUI *_wbui;
wb::LayerTreeBE *_layer_tree;
wb::ModelDiagramForm *_diagram_form;
Gtk::TreeView _tree;
Glib::RefPtr<TreeModelWrapper> _model;
Gtk::TreeModelColumn<Glib::RefPtr<Gdk::Pixbuf> > *_column;
ExpandedRowsStorage _expanded_rows;
Glib::RefPtr<Gdk::Pixbuf> _selected_icon;
Glib::RefPtr<Gdk::Pixbuf> _unselected_icon;
Glib::RefPtr<Gdk::Pixbuf> _mixed_icon;
bool _pending_refresh;
bool reexpand_node(const Gtk::TreePath &path);
void reexpand_nodes();
void get_tree_value(const Gtk::TreeModel::iterator &iter, int column, GType type, Glib::ValueBase& value);
void activate_row(const Gtk::TreePath &path, Gtk::TreeViewColumn *column);
void tree_changed(const bec::NodeId &row, int old_count);
public:
LayerTree(wb::WBContextUI *wbui);
~LayerTree();
void set_model(wb::ModelDiagramForm *model);
void refresh();
};
#endif /* _LAYER_TREE_H_ */
//!
//! @}
//!
|