X-Git-Url: https://git.llucax.com/z.facultad/75.52/treemulator.git/blobdiff_plain/de3b0cb3cb22673c55c267a6cfd0428df0a084f8..555cf8e7b36faa768e40d09665781c468424a91c:/viewer/main.cpp?ds=sidebyside diff --git a/viewer/main.cpp b/viewer/main.cpp index 89b66bc..1346f75 100644 --- a/viewer/main.cpp +++ b/viewer/main.cpp @@ -21,6 +21,9 @@ using namespace Gnome::Canvas; " " " " " " +" " +" " +" " " " " " " " @@ -38,6 +41,7 @@ using namespace Gnome::Canvas; void nuevo_arbol (); void agregar_clave (); void borrar_clave (); +void ir_al_padre (); void buscar_clave (); void zoom_out (); void zoom_in (); @@ -76,6 +80,8 @@ int main(int argc, char *argv[]) actiongroup->add( Gtk::Action::create("MenuFile", "_Arbol") ); actiongroup->add( Gtk::Action::create("Nuevo", Gtk::Stock::NEW), &nuevo_arbol); actiongroup->add( Gtk::Action::create("Salir", Gtk::Stock::QUIT), Gtk::AccelKey ("q"), &Gtk::Main::quit); + actiongroup->add( Gtk::Action::create("MenuNode", "_Nodo") ); + actiongroup->add( Gtk::Action::create("Ir al Padre", Gtk::Stock::ADD), Gtk::AccelKey ("b"), &ir_al_padre); actiongroup->add( Gtk::Action::create("MenuKey", "_Clave") ); actiongroup->add( Gtk::Action::create("Agregar Clave", Gtk::Stock::ADD), Gtk::AccelKey ("a"), &agregar_clave); actiongroup->add( Gtk::Action::create("Borrar Clave", Gtk::Stock::REMOVE), Gtk::AccelKey ("d"), &borrar_clave); @@ -130,7 +136,7 @@ void nuevo_arbol () 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; @@ -194,18 +200,19 @@ void agregar_clave () d.run(); return; } - KeyDialog d("Agregar"); + KeyDialog d("Agregar", true); if (d.run () == Gtk::RESPONSE_OK) { Glib::ustring str_key = d.key(); + Glib::ustring str_val = d.val(); 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 { - ClaveVariable c(str_key, 0); + ClaveVariable c(str_key, atoi(str_val.c_str())); tree->AddKey(c); } delete tree->last_selected; @@ -243,6 +250,18 @@ void borrar_clave () } } +void ir_al_padre () +{ + if (!tree) + { + Gtk::MessageDialog d("No hay un arbol creado, por favor primero cree un arbol!", + false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true); + d.run(); + return; + } + tree->GoBack (); +} + void buscar_clave () { if (!tree)