]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blob - viewer/view_btree.h
d8e585ad62752e04931e1e909b92f8f4b0b85bf5
[z.facultad/75.52/treemulator.git] / viewer / view_btree.h
1
2 #ifndef _VIEW_BTREE_H_
3 #define _VIEW_BTREE_H_
4
5 #include <libgnomecanvasmm.h>
6 #include <string>
7
8 #include "btree.h"
9 #include "view_node.h"
10
11 #define NODE_WIDTH 500
12 #define NODE_HEIGHT 50
13
14 using namespace Gnome;
15
16 class ViewBTree : public Canvas::Group, public BTree {
17         public:
18                 ViewBTree (Canvas::Group *parent, std::string filename);
19
20                 static double byte_to_pixels;
21
22                 typedef SigC::Signal2<void, BTreeData *, BTreeNodeHeader&> type_signal_selected;
23                 type_signal_selected signal_selected ();
24         protected:
25                 type_signal_selected m_signal_selected;
26                 int max_level; /* Lo saco de la raiz */
27                 /* Posicion X por nivel */
28                 std::map<uint,double> pos_x;
29                 /* Control para no poner 2 veces un nodo */
30                 /* Un nodo que quiera ser puesto 2 veces es un bug :) */
31                 std::map<uint,bool> node_placed;
32
33                 void AddNode (uint num);
34                 void on_item_selected (BTreeData *, uint);
35
36 };
37
38 #endif
39