X-Git-Url: https://git.llucax.com/z.facultad/75.52/treemulator.git/blobdiff_plain/67b413e9cd7fab6a17af34e90a669a3a1cd4e66d..e994ad95d6fcb7372527146482ce55cea669b6c9:/viewer/view_btree_data.cpp diff --git a/viewer/view_btree_data.cpp b/viewer/view_btree_data.cpp index 04889cc..9f4142d 100644 --- a/viewer/view_btree_data.cpp +++ b/viewer/view_btree_data.cpp @@ -1,5 +1,6 @@ #include "view_btree_data.h" +#define NODE_PTR_WIDTH 5 ViewBTreeData::ViewBTreeData (BTreeData *data, Canvas::Group *parent, double x1, double y1, double x2, double y2): Canvas::Rect (*parent, x1, y1, x2, y2) @@ -7,8 +8,6 @@ ViewBTreeData::ViewBTreeData (BTreeData *data, Canvas::Group *parent, double x1, this->data = data; property_fill_color () = "red"; property_outline_color () = "black"; - - init (parent); } void ViewBTreeData::init (Canvas::Group *parent) @@ -16,15 +15,16 @@ void ViewBTreeData::init (Canvas::Group *parent) double w = property_x2() - property_x1(); double h = property_y2() - property_y1(); - std::string s = *data; - new Canvas::Text (*parent, property_x1()+w/2, h/2, s); + Canvas::Rect *ptr = new Canvas::Rect (*parent, property_x1()+w-NODE_PTR_WIDTH, h-NODE_PTR_WIDTH, property_x1()+w-1, h-1); + ptr->property_fill_color () = "green"; + ptr->property_outline_color () = "black"; } bool ViewBTreeData::on_event (GdkEvent *p1) { switch (p1->type) { case GDK_BUTTON_PRESS: - m_signal_clicked(data); + m_signal_clicked(data, this); } return Canvas::Rect::on_event (p1); @@ -39,10 +39,13 @@ ViewBTreeData::type_signal_clicked ViewBTreeData::signal_clicked () ViewBTreeData* ViewBTreeData::Create (BTreeData *data, Canvas::Group *parent, double x1, double y1, double x2, double y2) { + ViewBTreeData *ret; if (dynamic_cast(data)) - return new ViewBTreeChildData (data, parent, x1, y1, x2, y2); - - return new ViewBTreeData (data, parent, x1, y1, x2, y2); + ret = new ViewBTreeChildData (data, parent, x1, y1, x2, y2); + else + ret = new ViewBTreeData (data, parent, x1, y1, x2, y2); + ret->init (parent); + return ret; } ViewBTreeChildData::ViewBTreeChildData (BTreeData *data, Canvas::Group *parent, double x1, double y1, double x2, double y2): @@ -52,13 +55,15 @@ ViewBTreeChildData::ViewBTreeChildData (BTreeData *data, Canvas::Group *parent, void ViewBTreeChildData::init (Canvas::Group *parent) { - property_fill_color () = "yellow"; property_outline_color () = "black"; +} - double w = property_x2() - property_x1(); - double h = property_y2() - property_y1(); - - std::string s = *data; - Canvas::Text *text = new Canvas::Text (*parent, property_x1()+w/2, h/2, s); +void ViewBTreeData::SetSelected (bool b) +{ + if (b) { + property_fill_color () = "yellow"; + } else { + property_fill_color () = "red"; + } }