]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blob - viewer/view_btree_data.cpp
Bugfix del test.sh para que no 'oculte' errores por SIGSEGV.
[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         double w = property_x2() - property_x1();
16         double h = property_y2() - property_y1();
17 }
18                 
19 bool ViewBTreeData::on_event (GdkEvent *p1)
20 {
21         switch (p1->type) {
22                 case GDK_BUTTON_PRESS:
23                         SetSelected (true);
24                 break;
25                 case GDK_2BUTTON_PRESS:
26                         m_signal_double_clicked (data, this);
27         }
28
29         return Canvas::Rect::on_event (p1);
30 }
31
32
33 ViewBTreeData::type_signal_clicked ViewBTreeData::signal_clicked ()
34 {
35         return m_signal_clicked;
36 }
37
38 ViewBTreeData::type_signal_double_clicked ViewBTreeData::signal_double_clicked ()
39 {
40         return m_signal_double_clicked;
41 }
42
43
44 ViewBTreeData*
45 ViewBTreeData::Create (BTreeData *data, Canvas::Group *parent, double x1, double y1, double x2, double y2)
46 {
47         ViewBTreeData *ret;
48         if (dynamic_cast<BTreeChildData *>(data))
49                 ret = new ViewBTreeChildData (data, parent, x1, y1, x2, y2);
50         else
51                 ret     = new ViewBTreeData (data, parent, x1, y1, x2, y2);
52         ret->init (parent);
53         return ret;
54 }
55
56 ViewBTreeChildData::ViewBTreeChildData (BTreeData *data, Canvas::Group *parent, double x1, double y1, double x2, double y2):
57         ViewBTreeData (data, parent, x1, y1, x2, y2)
58 {
59 }
60
61 void ViewBTreeChildData::init (Canvas::Group *parent)
62 {
63         property_outline_color () = "black";
64 }
65
66 void ViewBTreeData::SetSelected (bool b)
67 {
68         if (b) {
69                 property_fill_color () = "yellow";
70                 m_signal_clicked(data, this);
71         } else {
72                 property_fill_color () = "red";
73         }
74 }
75
76 bool ViewBTreeData::operator == (Clave &k) const
77 {
78         if (!data->GetKey ()) return false;
79
80         return (*(data->GetKey ())) == k;
81 }
82