" <menubar name='MenuBar'>"
" <menu action='MenuFile'>"
" <menuitem action='Nuevo'/>"
+" <menuitem action='Abrir'/>"
" <separator/>"
" <menuitem action='Salir'/>"
" </menu>"
"</ui>";
void nuevo_arbol ();
+void abrir_arbol ();
void agregar_clave ();
void borrar_clave ();
void ir_al_padre ();
actiongroup->add( Gtk::Action::create("MenuFile", "_Arbol") );
actiongroup->add( Gtk::Action::create("Nuevo", Gtk::Stock::NEW), &nuevo_arbol);
+ actiongroup->add( Gtk::Action::create("Abrir", Gtk::Stock::OPEN), &abrir_arbol);
actiongroup->add( Gtk::Action::create("Salir", Gtk::Stock::QUIT), Gtk::AccelKey ("<control>q"), &Gtk::Main::quit);
actiongroup->add( Gtk::Action::create("MenuNode", "_Nodo") );
actiongroup->add( Gtk::Action::create("Ir al Padre", Gtk::Stock::GO_BACK), Gtk::AccelKey ("<control>b"), &ir_al_padre);
return 0;
}
+void abrir_arbol ()
+{
+ Gtk::FileChooserDialog dlg ("Abrir Arbol");
+
+ dlg.add_button (Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
+ dlg.add_button (Gtk::Stock::OPEN, Gtk::RESPONSE_ACCEPT);
+ if (dlg.run () == Gtk::RESPONSE_ACCEPT) {
+ Glib::ustring s = dlg.get_filename ();
+ std::string filename = s;
+ ViewBTree *ptree = ViewBTree::Open (real_canvas->root (), filename);
+ if (ptree != NULL) {
+ tree = Glib::RefPtr<ViewBTree>(ptree);
+ tree->signal_selected ().connect ( sigc::mem_fun (*real_frame, &ViewProperties::ShowItem) );
+ tree->AddNode (0);
+ }
+ }
+}
+
void nuevo_arbol ()
{
real_canvas->set_scroll_region (0, 0, 5000, 5000);
ViewBTree (Canvas::Group *parent, std::string filename, uint block_size, int tree_type, int type);
ViewBTree (Canvas::Group *parent, const std::string filename);
- static ViewBTree* Open (const std::string &filename);
+ static ViewBTree* Open (Canvas::Group *parent, const std::string &filename);
void Clear ();
void HighliteKey (Clave &k);