]> git.llucax.com Git - z.facultad/75.52/treemulator.git/commitdiff
Agrega campo para poner dato al agregar una clave.
authorLeandro Lucarella <luca@llucax.hn.org>
Tue, 1 Nov 2005 05:13:34 +0000 (05:13 +0000)
committerLeandro Lucarella <luca@llucax.hn.org>
Tue, 1 Nov 2005 05:13:34 +0000 (05:13 +0000)
viewer/key_dialog.cpp [new file with mode: 0644]
viewer/key_dialog.h [new file with mode: 0644]
viewer/main.cpp

diff --git a/viewer/key_dialog.cpp b/viewer/key_dialog.cpp
new file mode 100644 (file)
index 0000000..dfe5c8f
--- /dev/null
@@ -0,0 +1,32 @@
+
+#include "key_dialog.h"
+
+
+KeyDialog::KeyDialog(const Glib::ustring& title, bool dato):
+       Gtk::Dialog(title + " Clave", true, true),
+       label_key("Clave"), label_val("Dato")
+{
+       hbox_key.add(label_key);
+       hbox_key.add(entry_key);
+       get_vbox()->add(hbox_key);
+       if (dato)
+       {
+               hbox_val.add(label_val);
+               hbox_val.add(entry_val);
+               get_vbox()->add(hbox_val);
+       }
+       add_button(Gtk::StockID("gtk-cancel"), Gtk::RESPONSE_CANCEL);
+       add_button(Gtk::StockID("gtk-ok"), Gtk::RESPONSE_OK);
+       show_all ();
+}
+
+Glib::ustring KeyDialog::key()
+{
+       return entry_key.get_text();
+}
+
+Glib::ustring KeyDialog::val()
+{
+       return entry_val.get_text();
+}
+
diff --git a/viewer/key_dialog.h b/viewer/key_dialog.h
new file mode 100644 (file)
index 0000000..c3b28a1
--- /dev/null
@@ -0,0 +1,23 @@
+
+#ifndef _KEY_DIALOG_
+#define _KEY_DIALOG_
+
+#include <gtkmm.h>
+#include "btree.h"
+
+class KeyDialog : public Gtk::Dialog {
+       public:
+               KeyDialog(const Glib::ustring& title, bool dato = false);
+               Glib::ustring key();
+               Glib::ustring val();
+       private:
+               Gtk::HBox hbox_key;
+               Gtk::Label label_key;
+               Gtk::Entry entry_key;
+               Gtk::HBox hbox_val;
+               Gtk::Label label_val;
+               Gtk::Entry entry_val;
+};
+
+#endif
+
index 89b66bc278701842b037e8cdfa57765600791022..5d43759a3607a753e9cca1709caf751442289d49 100644 (file)
@@ -130,7 +130,7 @@ void nuevo_arbol ()
                        it = lst.begin ();
                        uint i = 0;
                        while (it != lst.end ()) {
                        it = lst.begin ();
                        uint i = 0;
                        while (it != lst.end ()) {
-                               ClaveFija c(*it, 0);
+                               ClaveFija c(*it, i);
 
                                double l = Random::Double (0.0f, 1.0f);
                                std::cout << l << " >= " << paltas << std::endl;
 
                                double l = Random::Double (0.0f, 1.0f);
                                std::cout << l << " >= " << paltas << std::endl;
@@ -194,18 +194,19 @@ void agregar_clave ()
                d.run();
                return;
        }
                d.run();
                return;
        }
-       KeyDialog d("Agregar");
+       KeyDialog d("Agregar", true);
        if (d.run () == Gtk::RESPONSE_OK)
        {
                Glib::ustring str_key = d.key();
        if (d.run () == Gtk::RESPONSE_OK)
        {
                Glib::ustring str_key = d.key();
+               Glib::ustring str_val = d.val();
                if (tree->type() == BTree::KEY_FIXED)
                {
                if (tree->type() == BTree::KEY_FIXED)
                {
-                       ClaveFija c(atoi(str_key.c_str()), 0);
+                       ClaveFija c(atoi(str_key.c_str()), atoi(str_val.c_str()));
                        tree->AddKey(c);
                }
                else
                {
                        tree->AddKey(c);
                }
                else
                {
-                       ClaveVariable c(str_key, 0);
+                       ClaveVariable c(str_key, atoi(str_val.c_str()));
                        tree->AddKey(c);
                }
                delete tree->last_selected;
                        tree->AddKey(c);
                }
                delete tree->last_selected;