void plugin_init(GeanyData *data) { GKeyFile *config = g_key_file_new(); GeanyKeyGroup *key_group; ao_info = g_new0(AddonsInfo, 1); ao_info->config_file = g_strconcat(geany->app->configdir, G_DIR_SEPARATOR_S, "plugins", G_DIR_SEPARATOR_S, "addons", G_DIR_SEPARATOR_S, "addons.conf", NULL); g_key_file_load_from_file(config, ao_info->config_file, G_KEY_FILE_NONE, NULL); ao_info->enable_doclist = utils_get_setting_boolean(config, "addons", "show_toolbar_doclist_item", TRUE); ao_info->doclist_sort_mode = utils_get_setting_integer(config, "addons", "doclist_sort_mode", DOCLIST_SORT_BY_OCCURRENCE); ao_info->enable_openuri = utils_get_setting_boolean(config, "addons", "enable_openuri", FALSE); ao_info->enable_tasks = utils_get_setting_boolean(config, "addons", "enable_tasks", TRUE); ao_info->tasks_scan_all_documents = utils_get_setting_boolean(config, "addons", "tasks_scan_all_documents", FALSE); ao_info->tasks_token_list = utils_get_setting_string(config, "addons", "tasks_token_list", "TODO;FIXME"); ao_info->enable_systray = utils_get_setting_boolean(config, "addons", "enable_systray", FALSE); ao_info->enable_bookmarklist = utils_get_setting_boolean(config, "addons", "enable_bookmarklist", FALSE); ao_info->enable_markword = utils_get_setting_boolean(config, "addons", "enable_markword", FALSE); ao_info->strip_trailing_blank_lines = utils_get_setting_boolean(config, "addons", "strip_trailing_blank_lines", FALSE); ao_info->enable_xmltagging = utils_get_setting_boolean(config, "addons", "enable_xmltagging", FALSE); plugin_module_make_resident(geany_plugin); ao_info->doclist = ao_doc_list_new(ao_info->enable_doclist, ao_info->doclist_sort_mode); ao_info->openuri = ao_open_uri_new(ao_info->enable_openuri); ao_info->systray = ao_systray_new(ao_info->enable_systray); ao_info->bookmarklist = ao_bookmark_list_new(ao_info->enable_bookmarklist); ao_info->markword = ao_mark_word_new(ao_info->enable_markword); ao_info->tasks = ao_tasks_new(ao_info->enable_tasks, ao_info->tasks_token_list, ao_info->tasks_scan_all_documents); ao_blanklines_set_enable(ao_info->strip_trailing_blank_lines); /* setup keybindings */ key_group = plugin_set_key_group(geany_plugin, "addons", KB_COUNT, NULL); keybindings_set_item(key_group, KB_FOCUS_BOOKMARK_LIST, kb_bmlist_activate, 0, 0, "focus_bookmark_list", _("Focus Bookmark List"), NULL); keybindings_set_item(key_group, KB_FOCUS_TASKS, kb_tasks_activate, 0, 0, "focus_tasks", _("Focus Tasks List"), NULL); keybindings_set_item(key_group, KB_UPDATE_TASKS, kb_tasks_update, 0, 0, "update_tasks", _("Update Tasks List"), NULL); keybindings_set_item(key_group, KB_XMLTAGGING, kb_ao_xmltagging, 0, 0, "xml_tagging", _("Run XML tagging"), NULL); }
void plugin_init (GeanyData *data) { /* even though it's not really a good idea to keep all the library we load * into memory, this is needed for webkit. first, without this we creash after * module unloading, and webkitgtk inserts static data into the GLib * (g_quark_from_static_string() for example) so it's not safe to remove it */ plugin_module_make_resident (geany_plugin); /* webkit uses threads but don't initialize the thread system */ if (! g_thread_supported ()) { g_thread_init (NULL); } load_config (); gwh_keybindings_init (); G_browser = gwh_browser_new (); g_signal_connect (G_browser, "populate-popup", G_CALLBACK (on_browser_populate_popup), NULL); attach_browser (); gtk_widget_show_all (G_browser); plugin_signal_connect (geany_plugin, G_OBJECT (G_settings), "notify::browser-position", FALSE, G_CALLBACK (on_settings_browser_position_notify), NULL); plugin_signal_connect (geany_plugin, G_OBJECT (G_settings), "notify::wm-secondary-windows-skip-taskbar", FALSE, G_CALLBACK (on_settings_windows_attrs_notify), NULL); plugin_signal_connect (geany_plugin, G_OBJECT (G_settings), "notify::wm-secondary-windows-are-transient", FALSE, G_CALLBACK (on_settings_windows_attrs_notify), NULL); plugin_signal_connect (geany_plugin, G_OBJECT (G_settings), "notify::wm-secondary-windows-type", FALSE, G_CALLBACK (on_settings_windows_attrs_notify), NULL); plugin_signal_connect (geany_plugin, NULL, "document-save", TRUE, G_CALLBACK (on_document_save), NULL); /* add keybindings */ keybindings_set_item (gwh_keybindings_get_group (), GWH_KB_TOGGLE_INSPECTOR, on_kb_toggle_inspector, GDK_F12, 0, "toggle_inspector", _("Toggle Web Inspector"), NULL); keybindings_set_item (gwh_keybindings_get_group (), GWH_KB_SHOW_HIDE_SEPARATE_WINDOW, on_kb_show_hide_separate_window, 0, 0, "show_hide_separate_window", _("Show/Hide Web View's Window"), NULL); keybindings_set_item (gwh_keybindings_get_group (), GWH_KB_TOGGLE_BOOKMARK, on_kb_toggle_bookmark, 0, 0, "toggle_bookmark", _("Toggle bookmark for the current website"), NULL); }
void plugin_init (GeanyData *data) { GtkWidget *item; /* we register GTypes, we can't unload them */ plugin_module_make_resident (geany_plugin); item = gtk_menu_item_new_with_label ("Re-indent the selection"); g_signal_connect (item, "activate", G_CALLBACK (reindent_activate_handler), NULL); gtk_menu_append (GTK_MENU (geany_data->main_widgets->tools_menu), item); G_destroy_widget_stack = g_slist_append (G_destroy_widget_stack, item); gtk_widget_show (item); }
/* Called by Geany to initialize the plugin. * Note: data is the same as geany_data. */ void plugin_init(GeanyData *data) { GtkWidget* vbox; int i; plugin_module_make_resident(geany_plugin); keys_init(); pixbufs_init(); /* main box */ hbox = gtk_hbox_new(FALSE, 7); gtk_container_set_border_width(GTK_CONTAINER(hbox), 6); /* add target page */ tpage_init(); /* init brekpoints */ breaks_init(editor_open_position); /* init markers */ markers_init(); /* init debug */ debug_init(); /* load config */ config_init(); /* init paned */ dpaned_init(); tpage_pack_widgets(config_get_tabbed()); vbox = btnpanel_create(on_paned_mode_changed); gtk_box_pack_start(GTK_BOX(hbox), dpaned_get_paned(), TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0); gtk_widget_show_all(hbox); gtk_notebook_append_page( GTK_NOTEBOOK(geany->main_widgets->message_window_notebook), hbox, gtk_label_new(_("Debug"))); if (geany_data->app->project) { config_update_project_keyfile(); } config_set_debug_store( config_get_save_to_project() && geany_data->app->project ? DEBUG_STORE_PROJECT : DEBUG_STORE_PLUGIN ); /* set calltips for all currently opened documents */ foreach_document(i) { scintilla_send_message(document_index(i)->editor->sci, SCI_SETMOUSEDWELLTIME, 500, 0); scintilla_send_message(document_index(i)->editor->sci, SCI_CALLTIPUSESTYLE, 20, (long)NULL); } }
void plugin_init(G_GNUC_UNUSED GeanyData *gdata) { GeanyKeyGroup *scope_key_group; char *gladefile = g_build_filename(PLUGINDATADIR, "scope.glade", NULL); GError *gerror = NULL; GtkWidget *menubar1 = find_widget(geany->main_widgets->window, "menubar1"); guint item; const MenuKey *menu_key = debug_menu_keys; ToolItem *tool_item = toolbar_items; const ScopeCallback *scb; last_toolbar_state = 0; last_statusbar_state = DS_INACTIVE; blink_id = 0; resync_id = 0; main_locale_init(LOCALEDIR, GETTEXT_PACKAGE); scope_key_group = plugin_set_key_group(geany_plugin, "scope", COUNT_KB, NULL); builder = gtk_builder_new(); gtk_builder_set_translation_domain(builder, GETTEXT_PACKAGE); if (!g_type_from_name("ScpTreeStore")) { plugin_module_make_resident(geany_plugin); scp_tree_store_get_type(); } if (!gtk_builder_add_from_file(builder, gladefile, &gerror)) { msgwin_status_add(_("Scope: %s."), gerror->message); g_error_free(gerror); g_object_unref(builder); builder = NULL; } g_free(gladefile); if (!builder) return; /* interface */ #ifndef G_OS_UNIX gtk_widget_hide(get_widget("terminal_show")); #endif debug_item = get_widget("debug_item"); if (menubar1) gtk_menu_shell_insert(GTK_MENU_SHELL(menubar1), debug_item, DEBUG_MENU_ITEM_POS); else gtk_container_add(GTK_CONTAINER(geany->main_widgets->tools_menu), debug_item); menu_connect("debug_menu", &debug_menu_info, NULL); ui_add_document_sensitive(get_widget("scope_reset_markers")); ui_add_document_sensitive(get_widget("scope_cleanup_files")); for (item = 0; item < EVALUATE_KB; item++, menu_key++) { keybindings_set_item(scope_key_group, item, on_scope_key, 0, 0, menu_key->name, _(menu_key->label), debug_menu_items[item].widget); } geany_statusbar = GTK_STATUSBAR(gtk_widget_get_parent(geany->main_widgets->progressbar)); debug_statusbar = get_widget("debug_statusbar"); debug_state_label = GTK_LABEL(get_widget("debug_state_label")); gtk_box_pack_end(GTK_BOX(geany_statusbar), debug_statusbar, FALSE, FALSE, 0); debug_panel = get_widget("debug_panel"); gtk_notebook_append_page(GTK_NOTEBOOK(geany->main_widgets->message_window_notebook), debug_panel, get_widget("debug_label")); /* startup */ gtk216_init(); program_init(); prefs_init(); gtk_notebook_set_tab_pos(GTK_NOTEBOOK(debug_panel), pref_panel_tab_pos); conterm_init(); inspect_init(); register_init(); tooltip_init(); parse_init(); debug_init(); views_init(); thread_init(); break_init(); watch_init(); stack_init(); local_init(); memory_init(); menu_init(); menu_set_popup_keybindings(scope_key_group, item); for (item = 0; tool_item->index != -1; item++, tool_item++) { GtkMenuItem *menu_item = GTK_MENU_ITEM(debug_menu_items[tool_item->index].widget); GtkToolItem *button = gtk_tool_button_new(NULL, gtk_menu_item_get_label(menu_item)); gtk_tool_button_set_use_underline(GTK_TOOL_BUTTON(button), gtk_menu_item_get_use_underline(menu_item)); g_signal_connect(button, "clicked", G_CALLBACK(on_toolbar_button_clicked), GINT_TO_POINTER(tool_item->index)); g_signal_connect(button, "toolbar-reconfigured", G_CALLBACK(on_toolbar_reconfigured), tool_item); tool_item->widget = GTK_WIDGET(button); plugin_add_toolbar_item(geany_plugin, button); } toolbar_update_state(DS_INACTIVE); views_update_state(DS_INACTIVE); scope_configure(); g_signal_connect(debug_panel, "switch-page", G_CALLBACK(on_view_changed), NULL); for (scb = scope_callbacks; scb->name; scb++) plugin_signal_connect(geany_plugin, NULL, scb->name, FALSE, scb->callback, NULL); }