X-Git-Url: https://git.llucax.com/z.facultad/75.52/treemulator.git/blobdiff_plain/2e19140f8a2f59592cf846e4854133bd66648217..d20c097dbead0e618d5e1460bd47104689558b22:/viewer/main.cpp?ds=sidebyside diff --git a/viewer/main.cpp b/viewer/main.cpp index d5f82ab..692bed8 100644 --- a/viewer/main.cpp +++ b/viewer/main.cpp @@ -7,6 +7,7 @@ #include "view_btree.h" #include "view_properties.h" #include "new_tree_dialog.h" +#include "view_debug.h" using namespace Gnome::Canvas; @@ -32,8 +33,10 @@ void zoom_out (); void zoom_in (); void zoom_normal (); -ViewBTree *tree; +Glib::RefPtr tree; +ViewDebug *vdebug; Gnome::Canvas::Canvas *real_canvas; +ViewProperties *real_frame; int main(int argc, char *argv[]) { @@ -45,19 +48,21 @@ int main(int argc, char *argv[]) Gtk::HBox hbox; Gtk::VBox vbox; - ViewProperties frame; Gtk::ScrolledWindow area; Gnome::Canvas::Canvas canvas; + ViewProperties frame; + ViewDebug debug; - ViewBTree canvas_grp (canvas.root (), "test.idx"); - tree = &canvas_grp; real_canvas = &canvas; + real_frame = &frame; + vdebug = &debug; canvas.set_scroll_region (0, 0, 5000, 5000); area.add (canvas); hbox.pack_start (frame, false, false, 10); hbox.pack_start (area); + hbox.pack_end (debug, false, true, 10); Glib::RefPtr actiongroup = Gtk::ActionGroup::create(); @@ -65,9 +70,9 @@ int main(int argc, char *argv[]) actiongroup->add( Gtk::Action::create("Nuevo", Gtk::Stock::NEW), &nuevo_arbol); actiongroup->add( Gtk::Action::create("Salir", Gtk::Stock::QUIT), &Gtk::Main::quit); actiongroup->add( Gtk::Action::create("MenuZoom", "_Zoom")); - actiongroup->add( Gtk::Action::create("Alejar", "_Alejar"), &zoom_out ); - actiongroup->add( Gtk::Action::create("Acercar", "A_cercar"), &zoom_in); - actiongroup->add( Gtk::Action::create("100 %", "100 %"), &zoom_normal); + actiongroup->add( Gtk::Action::create("Alejar", Gtk::Stock::ZOOM_OUT), Gtk::AccelKey ("z"), &zoom_out ); + actiongroup->add( Gtk::Action::create("Acercar", Gtk::Stock::ZOOM_IN), Gtk::AccelKey ("x"), &zoom_in); + actiongroup->add( Gtk::Action::create("100 %", Gtk::Stock::ZOOM_100), Gtk::AccelKey ("1"), &zoom_normal); Glib::RefPtr m_refUIManager = Gtk::UIManager::create(); m_refUIManager->insert_action_group (actiongroup); @@ -75,15 +80,16 @@ int main(int argc, char *argv[]) m_refUIManager->add_ui_from_string(ui_info); Gtk::Widget* menubar = m_refUIManager->get_widget("/MenuBar"); menubar->show_all (); - vbox.pack_start (*menubar, false, true, 0); + vbox.pack_start (*menubar, false, true, 0); vbox.pack_end (hbox, true, true, 5); + + window.add_accel_group (m_refUIManager->get_accel_group ()); window.add (vbox); window.set_size_request (640, 480); window.show_all (); /* Conecto el Canvas con el Frame */ - canvas_grp.signal_selected ().connect ( sigc::mem_fun (frame, &ViewProperties::ShowItem) ); Gtk::Main::run(window); return 0; @@ -93,10 +99,15 @@ void nuevo_arbol () { NewTreeDialog d; if (d.run () == Gtk::RESPONSE_OK) { - for (uint i=0; i<=d.getAmount (); i++) { + uint tot = d.getAmount (); + tree = Glib::RefPtr(new ViewBTree (real_canvas->root(), "test.idx", d.getBlockSize ())); + tree->signal_selected ().connect ( sigc::mem_fun (*real_frame, &ViewProperties::ShowItem) ); + vdebug->SetTree (tree); + for (uint i=0; i <= tot; i++) { ClaveFija c(i); tree->AddKey (c); + vdebug->AddKey (c); } tree->AddNode (0); }