NoteEditor(grt::Module *m, const grt::BaseListRef &args) : PluginEditorBase(m, args), _be(workbench_model_NoteFigureRef::cast_from(args[0])) { set_border_width(8); _xml = Gtk::Builder::create_from_file(bec::GRTManager::get()->get_data_file_path("modules/data/editor_note.glade")); Gtk::Widget *widget; _xml->get_widget("base_table", widget); Gtk::Image *image; _xml->get_widget("image", image); // image->set(grtm->get_data_file_path("")); Gtk::Entry *entry; _xml->get_widget("name_entry", entry); add_entry_change_timer(entry, sigc::mem_fun(this, &NoteEditor::set_name)); Gtk::TextView *tview; _xml->get_widget("text_view", tview); add_text_change_timer(tview, sigc::mem_fun(_be, &NoteEditorBE::set_text)); widget->reparent(*this); show_all(); refresh_form_data(); }
//------------------------------------------------------------------------------ bool DbMySQLRoutineGroupEditor::switch_edited_object(bec::GRTManager *grtm, const grt::BaseListRef &args) { Gtk::VBox* code_win; xml()->get_widget("rg_code_holder", code_win); delete _be; _be = new MySQLRoutineGroupEditorBE(grtm, db_mysql_RoutineGroupRef::cast_from(args[0])); embed_code_editor(_be->get_sql_editor()->get_container(), code_win); _be->load_routines_sql(); _be->set_refresh_ui_slot(sigc::mem_fun(this, &DbMySQLRoutineGroupEditor::refresh_form_data)); refresh_form_data(); return true; }
DbMySQLViewEditor::DbMySQLViewEditor(grt::Module *m, bec::GRTManager *grtm, const grt::BaseListRef &args) : PluginEditorBase(m ,grtm, args, "modules/data/editor_view.glade") , _be(new MySQLViewEditorBE(grtm, db_mysql_ViewRef::cast_from(args[0]))) { xml()->get_widget("mysql_view_editor_notebook", _editor_notebook); Gtk::Image *image; xml()->get_widget("view_editor_image", image); image->set(ImageCache::get_instance()->image_from_filename("db.View.editor.48x48.png", false)); xml()->get_widget("view_editor_image2", image); image->set(ImageCache::get_instance()->image_from_filename("db.View.editor.48x48.png", false)); _be->set_refresh_ui_slot(sigc::mem_fun(this, &DbMySQLViewEditor::refresh_form_data)); _editor_notebook->reparent(*this); _editor_notebook->show(); Gtk::VBox *ddl_win; xml()->get_widget("editor_placeholder", ddl_win); embed_code_editor(_be->get_sql_editor()->get_container(), ddl_win); _be->load_view_sql(); if (!is_editing_live_object()) { _privs_page = new DbMySQLEditorPrivPage(_be); _editor_notebook->append_page(_privs_page->page(), "Privileges"); Gtk::TextView *tview(0); xml()->get_widget("viewcomment", tview); tview->get_buffer()->set_text(_be->get_comment()); tview->signal_focus_out_event().connect(sigc::bind(sigc::mem_fun(this, &DbMySQLViewEditor::comment_lost_focus), tview), false); } else { _editor_notebook->remove_page(1); _privs_page= NULL; } refresh_form_data(); _be->reset_editor_undo_stack(); show_all(); }
//------------------------------------------------------------------------------ DbMySQLRoutineGroupEditor::DbMySQLRoutineGroupEditor(grt::Module *m, bec::GRTManager *grtm, const grt::BaseListRef &args) : PluginEditorBase(m, grtm, args, "modules/data/editor_rg.glade") , _be(new MySQLRoutineGroupEditorBE(grtm, db_mysql_RoutineGroupRef::cast_from(args[0]))) , _routines_model(model_from_string_list(std::vector<std::string>(), &_routines_columns)) { xml()->get_widget("mysql_rg_editor_notebook", _editor_notebook); Gtk::Image *image; xml()->get_widget("rg_image", image); image->set(ImageCache::get_instance()->image_from_filename("db.RoutineGroup.editor.48x48.png", false)); _be->set_refresh_ui_slot(sigc::mem_fun(this, &DbMySQLRoutineGroupEditor::refresh_form_data)); _editor_notebook->reparent(*this); _editor_notebook->show(); bind_entry_and_be_setter("rg_name", this, &DbMySQLRoutineGroupEditor::set_group_name); Gtk::TextView* tv; xml()->get_widget("rg_comment", tv); add_text_change_timer(tv, sigc::mem_fun(this, &DbMySQLRoutineGroupEditor::set_comment)); Gtk::VBox* code_win; xml()->get_widget("rg_code_holder", code_win); embed_code_editor(_be->get_sql_editor()->get_container(), code_win); _be->load_routines_sql(); refresh_form_data(); xml()->get_widget("rg_list", _rg_list); _rg_list->set_model(_routines_model); _rg_list->append_column("Routine", _routines_columns->item); _rg_list->set_headers_visible(false); _rg_list->signal_row_activated().connect(sigc::mem_fun(this, &DbMySQLRoutineGroupEditor::activate_row)); // Setup DnD std::vector<Gtk::TargetEntry> targets; targets.push_back(Gtk::TargetEntry(WB_DBOBJECT_DRAG_TYPE, Gtk::TARGET_SAME_APP)); _rg_list->drag_dest_set(targets, Gtk::DEST_DEFAULT_ALL,Gdk::ACTION_COPY); _rg_list->signal_drag_data_received().connect(sigc::mem_fun(this, &DbMySQLRoutineGroupEditor::on_routine_drop)); _rg_list->signal_event().connect(sigc::mem_fun(*this, &DbMySQLRoutineGroupEditor::process_event)); show_all(); }
SchemaEditor(grt::Module *m, bec::GRTManager *grtm, const grt::BaseListRef &args) : PluginEditorBase(m, grtm, args, "modules/data/editor_schema.glade") , _be(new MySQLSchemaEditorBE(grtm, db_mysql_SchemaRef::cast_from(args[0]))) { xml()->get_widget("mysql_schema_editor_notebook", _editor_notebook); Gtk::Widget *widget; xml()->get_widget("base_table", widget); Gtk::Image *image; xml()->get_widget("image", image); image->set(ImageCache::get_instance()->image_from_filename("db.Schema.editor.48x48.png", false)); bind_entry_and_be_setter("name_entry", this, &SchemaEditor::set_name); if (_be->is_editing_live_object() && _be->get_schema()->oldName() != "") { Gtk::Entry *entry; xml()->get_widget("name_entry", entry); entry->set_sensitive(false); } Gtk::Button *btn; xml()->get_widget("refactor_btn", btn); btn->set_sensitive(_be->refactor_possible()); btn->signal_clicked().connect(sigc::mem_fun(this, &SchemaEditor::refactor_schema)); Gtk::ComboBox *combo; xml()->get_widget("collation_combo", combo); Glib::RefPtr<Gtk::ListStore> store(Glib::RefPtr<Gtk::ListStore>::cast_dynamic(xml()->get_object("collation_store"))); setup_combo_for_string_list(combo); fill_combo_from_string_list(combo, _be->get_charset_collation_list()); add_option_combo_change_handler(combo, "CHARACTER SET - COLLATE", sigc::mem_fun(this, &SchemaEditor::set_schema_option_by_name)); Gtk::TextView *tview; xml()->get_widget("text_view", tview); add_text_change_timer(tview, sigc::mem_fun(this, &SchemaEditor::set_comment)); //!widget->reparent(*this); add(*_editor_notebook); _editor_notebook->show(); show_all(); refresh_form_data(); }
ImageEditorFE(grt::Module *m, bec::GRTManager *grtm, const grt::BaseListRef &args) : PluginEditorBase(m, grtm, args) , _be(grtm, workbench_model_ImageFigureRef::cast_from(args[0])) , _xml(0) , _image(0) { set_border_width(8); _xml= Gtk::Builder::create_from_file(grtm->get_data_file_path("modules/data/editor_image.glade")); Gtk::Widget *widget; _xml->get_widget("editor_image_hbox", widget); Gtk::Button *button(0); _xml->get_widget("browse_button", button); button->signal_clicked().connect(sigc::mem_fun(this, &ImageEditorFE::browse_file)); _xml->get_widget("reset_size_button", button); button->signal_clicked().connect(sigc::mem_fun(this, &ImageEditorFE::reset_aspect)); Gtk::CheckButton *check; _xml->get_widget("aspect_check", check); check->signal_toggled().connect(sigc::mem_fun(this, &ImageEditorFE::aspect_toggled)); Gtk::Entry *entry; _xml->get_widget("width_entry", entry); entry->signal_activate().connect(sigc::mem_fun(this, &ImageEditorFE::width_changed)); _xml->get_widget("height_entry", entry); entry->signal_activate().connect(sigc::mem_fun(this, &ImageEditorFE::height_changed)); _xml->get_widget("image", _image); widget->reparent(*this); show_all(); refresh_form_data(); }
//------------------------------------------------------------------------------ DbMySQLTableEditor::DbMySQLTableEditor(grt::Module *m, bec::GRTManager *grtm, const grt::BaseListRef &args) // : PluginEditorBase(m, grtm, args, "modules/data/editor_mysql_table.glade") : PluginEditorBase(m, grtm, args, 0) , _be(new MySQLTableEditorBE(grtm, db_mysql_TableRef::cast_from(args[0]))) , _part_page(0) , _inserts_panel(0) , _main_page_widget(0) { load_glade((_be->is_editing_live_object()) ? "modules/data/editor_mysql_table_live.glade" : "modules/data/editor_mysql_table.glade"); xml()->get_widget("mysql_editor_notebook", _editor_notebook); _editor_notebook->signal_switch_page().connect(sigc::mem_fun(this, &DbMySQLTableEditor::page_changed)); Gtk::Image *image(0); xml()->get_widget("table_editor_image", image); image->set(ImageCache::get_instance()->image_from_filename("db.Table.editor.48x48.png", false)); image->set_data("is_large", (void*)1); if (!_be->is_editing_live_object()) xml()->get_widget("table_page_box", _main_page_widget); set_border_width(0); _columns_page = new DbMySQLTableEditorColumnPage(this, _be, xml()); _indexes_page = new DbMySQLTableEditorIndexPage(this, _be, xml()); _fks_page = new DbMySQLTableEditorFKPage(this, _be, xml()); _triggers_page = new DbMySQLTableEditorTriggerPage(this, _be, xml()); _part_page = new DbMySQLTableEditorPartPage(this, _be, xml()); _opts_page = new DbMySQLTableEditorOptPage(this, _be, xml()); if (!is_editing_live_object()) { _inserts_panel= _be->get_inserts_panel(); _editor_notebook->append_page(*mforms::widget_for_view(_inserts_panel), "Inserts"); _privs_page = new DbMySQLEditorPrivPage(_be); _editor_notebook->append_page(_privs_page->page(), "Privileges"); } else { _inserts_panel= NULL; _privs_page= NULL; Gtk::ComboBox *cbox = 0; xml()->get_widget("schema_combo", cbox); if (cbox) { setup_combo_for_string_list(cbox); } } create_table_page(); add(*_editor_notebook); _editor_notebook->show(); show_all(); Gtk::Entry *entry(0); xml()->get_widget("table_name", entry); entry->signal_event().connect(sigc::mem_fun(this, &DbMySQLTableEditor::event_from_table_name_entry)); refresh_form_data(); focus_widget_when_idle(entry); _be->set_refresh_ui_slot(sigc::mem_fun(this, &DbMySQLTableEditor::refresh_form_data)); _be->set_partial_refresh_ui_slot(sigc::mem_fun(this, &DbMySQLTableEditor::partial_refresh)); _be->reset_editor_undo_stack(); //Gtk::Paned* table_page_paned = 0; //xml()->get_widget("table_page_paned", table_page_paned); //gtk_paned_set_pos_ratio(table_page_paned, 0.2); }