5 #include <libgnomecanvasmm.h>
10 #include "view_node.h"
12 using namespace Gnome;
16 class ViewBTree : public Canvas::Group, public BTree {
18 ViewBTree (Canvas::Group *parent, std::string filename, uint block_size, int tree_type, int type);
19 ViewBTree (Canvas::Group *parent, const std::string filename);
21 static ViewBTree* Open (Canvas::Group *parent, const std::string &filename);
24 void HighliteKey (Clave &k);
27 static double byte_to_pixels;
28 static double node_width;
29 static double node_height;
31 typedef SigC::Signal2<void, BTreeData *, BTreeNodeHeader&> type_signal_selected;
32 type_signal_selected signal_selected ();
34 type_signal_selected m_signal_selected;
35 int max_level; /* Lo saco de la raiz */
36 /* Posicion X por nivel */
37 std::map<uint,double> pos_x;
38 /* Control para no poner 2 veces un nodo */
39 /* Un nodo que quiera ser puesto 2 veces es un bug :) */
40 std::map<uint,bool> node_placed;
41 std::stack<uint> back;
45 void AddNode (uint num, uint padre = 0);
46 void on_item_selected (BTreeData *, uint, ViewNode *);
47 void on_item_activated (BTreeData *, uint, ViewNode *);
49 ViewNode *last_selected;