]> git.llucax.com Git - z.facultad/75.52/treemulator.git/commitdiff
Muevo ViewNode a su propio archivo.
authorRicardo Markiewicz <rmarkie@fi.uba.ar>
Sun, 25 Sep 2005 23:17:45 +0000 (23:17 +0000)
committerRicardo Markiewicz <rmarkie@fi.uba.ar>
Sun, 25 Sep 2005 23:17:45 +0000 (23:17 +0000)
viewer/Makefile
viewer/view_btree.cpp
viewer/view_btree.h
viewer/view_node.cpp [new file with mode: 0644]
viewer/view_node.h [new file with mode: 0644]

index 4f9fa9d2fe3507add420a6b7cbc0772daeb70709..af96ee25f40f343a964c633085ef43855d391926 100644 (file)
@@ -1,6 +1,6 @@
 TARGET=viewer
 CXXFLAGS=-Wall -g `pkg-config gtkmm-2.4 libgnomecanvasmm-2.6 --cflags` -I../src
-OBJECTS=main.o view_btree.o view_btree_data.o view_properties.o
+OBJECTS=main.o view_btree.o view_btree_data.o view_properties.o view_node.o
 
 all: $(TARGET)
 
index 4fb08394351c2372693b743cc2667e424986f6ef..d8bc219961376bd9052667997a00913202410629 100644 (file)
@@ -82,55 +82,3 @@ ViewBTree::type_signal_selected ViewBTree::signal_selected ()
        return m_signal_selected;
 }
 
-ViewNode::ViewNode (Canvas::Group *parent, uint num, BTreeNodeHeader &header, std::list<BTreeData *> &keys)
-       : Canvas::Group (*parent)
-{
-       double header_w = ViewBTree::byte_to_pixels * sizeof (BTreeNodeHeader);
-       this->num = num;
-
-       /* Fondo */
-       Canvas::Rect *fondo = new Canvas::Rect (*this, 0, 0, NODE_WIDTH, NODE_HEIGHT);
-       fondo->property_fill_color() = "gray";
-       fondo->property_outline_color() = "black";
-
-       /* Header */
-       Canvas::Rect *h = new Canvas::Rect (*this, 0, 0, header_w, NODE_HEIGHT);
-       h->property_fill_color() = "blue";
-       h->property_outline_color() = "black";
-
-       /* Numero de nodo */
-       std::string node_num;
-       std::stringstream ss;
-       ss << num;
-       ss >> node_num;
-       new Canvas::Text (*this, header_w/2, NODE_HEIGHT/2, node_num);
-
-       double x = header_w;
-
-       std::list<BTreeData *>::iterator it = keys.begin ();
-       while (it != keys.end ()) {
-               BTreeData *data = (*it);
-               double w = ViewBTree::byte_to_pixels * data->Size ();
-
-               ViewBTreeData *v = ViewBTreeData::Create (data, this, x, 0, w+x, NODE_HEIGHT);
-               v->signal_clicked ().connect ( sigc::mem_fun (this , &ViewNode::on_item_clicked ));
-               x += w;
-               it++;
-
-               if (!dynamic_cast<BTreeLeafData *>(data)) {
-                       /* Si no es un dato de una hoja, tiene hijos */
-                       hijos.push_back (data->getChild ());
-               }
-       }
-}
-
-void ViewNode::on_item_clicked (BTreeData *data)
-{
-       m_signal_selected (data, num);
-}
-
-ViewNode::type_signal_selected ViewNode::signal_selected ()
-{
-       return m_signal_selected;
-}
-
index 8227609835b0ff2233398f2cc3432b63be937453..d8e585ad62752e04931e1e909b92f8f4b0b85bf5 100644 (file)
@@ -6,6 +6,7 @@
 #include <string>
 
 #include "btree.h"
+#include "view_node.h"
 
 #define NODE_WIDTH 500
 #define NODE_HEIGHT 50
@@ -34,20 +35,5 @@ class ViewBTree : public Canvas::Group, public BTree {
 
 };
 
-class ViewNode : public Canvas::Group {
-       public:
-               ViewNode (Canvas::Group *parent, uint num, BTreeNodeHeader &header, std::list<BTreeData *> &keys);
-
-               std::list<uint>& getChilds () { return hijos; } 
-
-               typedef SigC::Signal2<void, BTreeData *, uint> type_signal_selected;
-               type_signal_selected signal_selected ();
-       private:
-               void on_item_clicked (BTreeData *data);
-               std::list<uint> hijos;
-               type_signal_selected m_signal_selected;
-               uint num;
-};
-
 #endif
 
diff --git a/viewer/view_node.cpp b/viewer/view_node.cpp
new file mode 100644 (file)
index 0000000..0092dc0
--- /dev/null
@@ -0,0 +1,55 @@
+
+#include "view_node.h"
+
+ViewNode::ViewNode (Canvas::Group *parent, uint num, BTreeNodeHeader &header, std::list<BTreeData *> &keys)
+       : Canvas::Group (*parent)
+{
+       double header_w = ViewBTree::byte_to_pixels * sizeof (BTreeNodeHeader);
+       this->num = num;
+
+       /* Fondo */
+       Canvas::Rect *fondo = new Canvas::Rect (*this, 0, 0, NODE_WIDTH, NODE_HEIGHT);
+       fondo->property_fill_color() = "gray";
+       fondo->property_outline_color() = "black";
+
+       /* Header */
+       Canvas::Rect *h = new Canvas::Rect (*this, 0, 0, header_w, NODE_HEIGHT);
+       h->property_fill_color() = "blue";
+       h->property_outline_color() = "black";
+
+       /* Numero de nodo */
+       std::string node_num;
+       std::stringstream ss;
+       ss << num;
+       ss >> node_num;
+       new Canvas::Text (*this, header_w/2, NODE_HEIGHT/2, node_num);
+
+       double x = header_w;
+
+       std::list<BTreeData *>::iterator it = keys.begin ();
+       while (it != keys.end ()) {
+               BTreeData *data = (*it);
+               double w = ViewBTree::byte_to_pixels * data->Size ();
+
+               ViewBTreeData *v = ViewBTreeData::Create (data, this, x, 0, w+x, NODE_HEIGHT);
+               v->signal_clicked ().connect ( sigc::mem_fun (this , &ViewNode::on_item_clicked ));
+               x += w;
+               it++;
+
+               if (!dynamic_cast<BTreeLeafData *>(data)) {
+                       /* Si no es un dato de una hoja, tiene hijos */
+                       hijos.push_back (data->getChild ());
+               }
+       }
+}
+
+void ViewNode::on_item_clicked (BTreeData *data)
+{
+       m_signal_selected (data, num);
+}
+
+ViewNode::type_signal_selected ViewNode::signal_selected ()
+{
+       return m_signal_selected;
+}
+
diff --git a/viewer/view_node.h b/viewer/view_node.h
new file mode 100644 (file)
index 0000000..dcd786b
--- /dev/null
@@ -0,0 +1,28 @@
+
+#ifndef _VIEW_NODE_H_
+#define _VIEW_NODE_H_
+
+#include <libgnomecanvasmm.h>
+#include "view_btree.h"
+#include "view_btree_data.h"
+#include "btree.h"
+
+using namespace Gnome;
+
+class ViewNode : public Canvas::Group {
+       public:
+               ViewNode (Canvas::Group *parent, uint num, BTreeNodeHeader &header, std::list<BTreeData *> &keys);
+
+               std::list<uint>& getChilds () { return hijos; } 
+
+               typedef SigC::Signal2<void, BTreeData *, uint> type_signal_selected;
+               type_signal_selected signal_selected ();
+       private:
+               void on_item_clicked (BTreeData *data);
+               std::list<uint> hijos;
+               type_signal_selected m_signal_selected;
+               uint num;
+};
+
+#endif
+