File: layer_tree.h

package info (click to toggle)
mysql-workbench 5.2.40%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 53,880 kB
  • sloc: cpp: 419,850; yacc: 74,784; xml: 54,510; python: 31,455; sh: 9,423; ansic: 4,736; makefile: 2,442; php: 529; java: 237
file content (55 lines) | stat: -rw-r--r-- 1,293 bytes parent folder | download
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_ */

//!
//! @}
//!