X-Git-Url: https://git.llucax.com/z.facultad/75.52/treemulator.git/blobdiff_plain/e994ad95d6fcb7372527146482ce55cea669b6c9..aa158a0284c1bc32a979d50275aa1b24438d46ef:/viewer/view_btree_data.cpp?ds=sidebyside diff --git a/viewer/view_btree_data.cpp b/viewer/view_btree_data.cpp index 9f4142d..2d4a753 100644 --- a/viewer/view_btree_data.cpp +++ b/viewer/view_btree_data.cpp @@ -12,19 +12,16 @@ ViewBTreeData::ViewBTreeData (BTreeData *data, Canvas::Group *parent, double x1, void ViewBTreeData::init (Canvas::Group *parent) { - double w = property_x2() - property_x1(); - double h = property_y2() - property_y1(); - - 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, this); + SetSelected (true); + break; + case GDK_2BUTTON_PRESS: + m_signal_double_clicked (data, this); } return Canvas::Rect::on_event (p1); @@ -36,6 +33,12 @@ ViewBTreeData::type_signal_clicked ViewBTreeData::signal_clicked () return m_signal_clicked; } +ViewBTreeData::type_signal_double_clicked ViewBTreeData::signal_double_clicked () +{ + return m_signal_double_clicked; +} + + ViewBTreeData* ViewBTreeData::Create (BTreeData *data, Canvas::Group *parent, double x1, double y1, double x2, double y2) { @@ -62,8 +65,16 @@ void ViewBTreeData::SetSelected (bool b) { if (b) { property_fill_color () = "yellow"; + m_signal_clicked(data, this); } else { property_fill_color () = "red"; } } +bool ViewBTreeData::operator == (Clave &k) const +{ + if (!data->GetKey ()) return false; + + return (*(data->GetKey ())) == k; +} +