From e994ad95d6fcb7372527146482ce55cea669b6c9 Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Tue, 27 Sep 2005 17:31:58 +0000 Subject: [PATCH] Achico escala y saco textos. --- viewer/view_btree.cpp | 30 ++++++++++++++---------------- viewer/view_btree_data.cpp | 33 +++++++++++++++++++-------------- 2 files changed, 33 insertions(+), 30 deletions(-) diff --git a/viewer/view_btree.cpp b/viewer/view_btree.cpp index d8bc219..1180c93 100644 --- a/viewer/view_btree.cpp +++ b/viewer/view_btree.cpp @@ -4,22 +4,16 @@ #include double ViewBTree::byte_to_pixels = 0; +double ViewBTree::node_width = 0; -ViewBTree::ViewBTree (Canvas::Group *parent, std::string filename):Canvas::Group (*parent, 0, 0), - BTree (filename, 64) +ViewBTree::ViewBTree (Canvas::Group *parent, std::string filename, uint block_size):Canvas::Group (*parent, 0, 0), + BTree (filename, block_size) { - /* TODO : hace que el arbol se abra de un archivo ya creado o que se - * cree afuera - */ - for (int i=0; i<=64; i++) { - ClaveFija c(i); + /* Cada bytes lo hago de 5 units de ancho */ + node_width = 3 * block_size; // 64 == blocksize + byte_to_pixels = node_width/block_size; // TODO : 64 == BlockSize - AddKey (c); - } - - byte_to_pixels = NODE_WIDTH/64; // TODO : 64 == BlockSize - - AddNode (0); + last_selected = NULL; } void ViewBTree::AddNode (uint num) @@ -48,7 +42,7 @@ void ViewBTree::AddNode (uint num) ViewNode *vnode = new ViewNode (this, num, node_h, keys); vnode->property_y () = y; vnode->property_x () = pos_x[node_h.level]; - pos_x[node_h.level] += NODE_WIDTH+10; + pos_x[node_h.level] += ViewBTree::node_width+10; vnode->signal_selected().connect ( sigc::mem_fun (*this, &ViewBTree::on_item_selected) ); std::list childs = vnode->getChilds (); @@ -64,7 +58,7 @@ void ViewBTree::AddNode (uint num) } } -void ViewBTree::on_item_selected (BTreeData *data, uint num) +void ViewBTree::on_item_selected (BTreeData *data, uint num, ViewNode *vnode) { BTreeNodeHeader node_h; uchar *node; @@ -73,7 +67,11 @@ void ViewBTree::on_item_selected (BTreeData *data, uint num) ReadNodoHeader (node, &node_h); delete [] node; - std::cout << "Emit SignalSelected" << std::endl; + if (last_selected) + if (vnode != last_selected) + last_selected->SetSelected (false); + last_selected = vnode; + vnode->SetSelected (true); m_signal_selected (data, node_h); } 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"; + } } -- 2.43.0