/* * Copyright 2014 (c) Anna Schumaker. */ #include #include #include #include static Glib::RefPtr builder; void enable_idle(); /* * Collection manager functions */ static void on_collection_ok() { print("OK clicked!\n"); } static void on_collection_update() { print("Update clicked!\n"); //library :: update_all(); enable_idle(); } static void on_collection_import() { print("Import clicked!\n"); library :: import(); enable_idle(); } /* * Idle func */ bool on_idle() { Gtk::ProgressBar *prog; bool ret = idle::run_task(); builder->get_widget("o_idle_progress", prog); if (ret == false) prog->hide(); else { prog->show(); prog->set_fraction(idle::get_progress()); } return ret; } void enable_idle() { Glib::signal_idle().connect(sigc::ptr_fun(on_idle)); } /* * Ocarina functions */ static void connect_button(Glib::RefPtr &builder, const std::string &name, void (*func)()) { Gtk::Button *button; builder->get_widget(name, button); button->signal_clicked().connect(sigc::ptr_fun(func)); } Gtk::Window *connect_wires() { Gtk::Window *window; builder = Gtk::Builder::create(); builder->add_from_file("gui/ocarina6.glade"); builder->get_widget("o_window", window); /* Collection manager */ connect_button(builder, "o_collection_ok", on_collection_ok); connect_button(builder, "o_collection_update", on_collection_update); connect_button(builder, "o_collection_import", on_collection_import); return window; }