]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blob - viewer/view_btree_data.cpp
Guardo los nodos por recuperar al salir.
[z.facultad/75.52/treemulator.git] / viewer / view_btree_data.cpp
1
2 #include "view_btree_data.h"
3 #define NODE_PTR_WIDTH 5
4
5 ViewBTreeData::ViewBTreeData (BTreeData *data, Canvas::Group *parent, double x1, double y1, double x2, double y2):
6         Canvas::Rect (*parent, x1, y1, x2, y2)
7 {
8         this->data = data;
9         property_fill_color () = "red";
10         property_outline_color () = "black";
11 }
12
13 void ViewBTreeData::init (Canvas::Group *parent)
14 {
15 }
16                 
17 bool ViewBTreeData::on_event (GdkEvent *p1)
18 {
19         switch (p1->type) {
20                 case GDK_BUTTON_PRESS:
21                         SetSelected (true);
22                 break;
23                 case GDK_2BUTTON_PRESS:
24                         m_signal_double_clicked (data, this);
25         }
26
27         return Canvas::Rect::on_event (p1);
28 }
29
30
31 ViewBTreeData::type_signal_clicked ViewBTreeData::signal_clicked ()
32 {
33         return m_signal_clicked;
34 }
35
36 ViewBTreeData::type_signal_double_clicked ViewBTreeData::signal_double_clicked ()
37 {
38         return m_signal_double_clicked;
39 }
40
41
42 ViewBTreeData*
43 ViewBTreeData::Create (BTreeData *data, Canvas::Group *parent, double x1, double y1, double x2, double y2)
44 {
45         ViewBTreeData *ret;
46         if (dynamic_cast<BTreeChildData *>(data))
47                 ret = new ViewBTreeChildData (data, parent, x1, y1, x2, y2);
48         else
49                 ret     = new ViewBTreeData (data, parent, x1, y1, x2, y2);
50         ret->init (parent);
51         return ret;
52 }
53
54 ViewBTreeChildData::ViewBTreeChildData (BTreeData *data, Canvas::Group *parent, double x1, double y1, double x2, double y2):
55         ViewBTreeData (data, parent, x1, y1, x2, y2)
56 {
57 }
58
59 void ViewBTreeChildData::init (Canvas::Group *parent)
60 {
61         property_outline_color () = "black";
62 }
63
64 void ViewBTreeData::SetSelected (bool b)
65 {
66         if (b) {
67                 property_fill_color () = "yellow";
68                 m_signal_clicked(data, this);
69         } else {
70                 property_fill_color () = "red";
71         }
72 }
73
74 bool ViewBTreeData::operator == (Clave &k) const
75 {
76         if (!data->GetKey ()) return false;
77
78         return (*(data->GetKey ())) == k;
79 }
80