diff options
author | Stefano Karapetsas <[email protected]> | 2012-09-03 17:14:37 +0200 |
---|---|---|
committer | Stefano Karapetsas <[email protected]> | 2012-09-03 17:14:37 +0200 |
commit | 74e8c123722068886a8b12872601b14f5cc3bbe9 (patch) | |
tree | dd680caed288f9056b31d26221c8f007dc1740d6 /capplet | |
parent | 35c8125877e60b0c3279dd15b26bf0e85df5b136 (diff) | |
download | libmatekbd-74e8c123722068886a8b12872601b14f5cc3bbe9.tar.bz2 libmatekbd-74e8c123722068886a8b12872601b14f5cc3bbe9.tar.xz |
migrate to gsettings
Diffstat (limited to 'capplet')
-rw-r--r-- | capplet/Makefile.am | 46 | ||||
-rw-r--r-- | capplet/matekbd-indicator-plugins-add.c | 207 | ||||
-rw-r--r-- | capplet/matekbd-indicator-plugins-capplet.c | 490 | ||||
-rw-r--r-- | capplet/matekbd-indicator-plugins-capplet.desktop.in.in | 15 | ||||
-rw-r--r-- | capplet/matekbd-indicator-plugins-capplet.h | 63 | ||||
-rw-r--r-- | capplet/matekbd-indicator-plugins.ui | 255 | ||||
-rw-r--r-- | capplet/matekbd-indicator-plugins_add.ui | 142 |
7 files changed, 0 insertions, 1218 deletions
diff --git a/capplet/Makefile.am b/capplet/Makefile.am deleted file mode 100644 index f10b230..0000000 --- a/capplet/Makefile.am +++ /dev/null @@ -1,46 +0,0 @@ -bin_PROGRAMS = matekbd-indicator-plugins-capplet - -uidir = $(pkgdatadir)/ui -ui_DATA = matekbd-indicator-plugins.ui \ - matekbd-indicator-plugins_add.ui - -@INTLTOOL_DESKTOP_RULE@ - -desktopdir = $(datadir)/applications -Desktop_in_files = matekbd-indicator-plugins-capplet.desktop.in -desktop_DATA = $(Desktop_in_files:.desktop.in=.desktop) - -matekbd_indicator_plugins_capplet_CFLAGS = \ - -I$(top_srcdir) -Wall \ - $(MATECONF_CFLAGS) \ - $(GTK_CFLAGS) \ - $(LIBXKLAVIER_CFLAGS) \ - -I$(top_srcdir)/intl \ - -DSYS_PLUGIN_DIR=\"$(libdir)/matekbd/\" \ - -DG_LOG_DOMAIN=\"MateKbdIndicatorPluginsCapplet\" \ - -DPREFIX=\"$(prefix)\" \ - -DUIDIR=\"$(uidir)\" \ - -DDATADIR=\"$(datadir)\" \ - -DSYSCONFDIR=\"$(sysconfdir)\" \ - -DMATELOCALEDIR="\"$(datadir)/locale\"" \ - -DLIBDIR=\"$(libdir)\" - -matekbd_indicator_plugins_capplet_SOURCES = matekbd-indicator-plugins-capplet.c \ - matekbd-indicator-plugins-add.c \ - matekbd-indicator-plugins-capplet.h - -matekbd_indicator_plugins_capplet_LDFLAGS = -export-dynamic - -matekbd_indicator_plugins_capplet_LDADD = \ - $(MATECONF_LIBS) \ - $(GTK_LIBS) \ - $(LIBXKLAVIER_LIBS) \ - $(top_builddir)/libmatekbd/libmatekbd.la \ - $(top_builddir)/libmatekbd/libmatekbdui.la - -EXTRA_DIST = matekbd-indicator-plugins-capplet.desktop.in.in \ - $(ui_DATA) \ - $(pixmap_DATA) - -DISTCLEANFILES = $(desktop_DATA) - diff --git a/capplet/matekbd-indicator-plugins-add.c b/capplet/matekbd-indicator-plugins-add.c deleted file mode 100644 index 0b34251..0000000 --- a/capplet/matekbd-indicator-plugins-add.c +++ /dev/null @@ -1,207 +0,0 @@ -/* - * Copyright (C) 2006 Sergey V. Udaltsov <[email protected]> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include <config.h> - -#include "matekbd-indicator-plugins-capplet.h" - -#include <string.h> -#include <sys/stat.h> - -#include <gtk/gtk.h> -#include <gdk/gdkx.h> -#include <glib/gi18n.h> - -#include <libxklavier/xklavier.h> - -static void -CappletAddAvailablePluginFunc (const char *fullPath, - MatekbdIndicatorPluginManagerRecord * rec, - MatekbdIndicatorPluginsCapplet * gipc) -{ - GtkListStore *availablePluginsModel; - GtkTreeIter iter; - const MatekbdIndicatorPlugin *plugin = rec->plugin; - - if (NULL != - g_slist_find_custom (gipc->applet_cfg.enabled_plugins, - fullPath, (GCompareFunc) strcmp)) - return; - - availablePluginsModel = - GTK_LIST_STORE (g_object_get_data (G_OBJECT (gipc->capplet), - "matekbd_indicator_plugins_add.availablePluginsModel")); - if (availablePluginsModel == NULL) - return; - - if (plugin != NULL) - { - gtk_list_store_append (availablePluginsModel, &iter); - gtk_list_store_set (availablePluginsModel, &iter, - NAME_COLUMN, plugin->name, - FULLPATH_COLUMN, fullPath, -1); - } -} - -static void -CappletFillAvailablePluginList (GtkTreeView * - availablePluginsList, - MatekbdIndicatorPluginsCapplet * gipc) -{ - GtkListStore *availablePluginsModel = - GTK_LIST_STORE (gtk_tree_view_get_model - (GTK_TREE_VIEW (availablePluginsList))); - GSList *pluginPathNode = gipc->applet_cfg.enabled_plugins; - GHashTable *allPluginRecs = gipc->plugin_manager.all_plugin_recs; - - gtk_list_store_clear (availablePluginsModel); - if (allPluginRecs == NULL) - return; - - g_object_set_data (G_OBJECT (gipc->capplet), - "matekbd_indicator_plugins_add.availablePluginsModel", - availablePluginsModel); - g_hash_table_foreach (allPluginRecs, - (GHFunc) CappletAddAvailablePluginFunc, gipc); - g_object_set_data (G_OBJECT (gipc->capplet), - "matekbd_indicator_plugins_add.availablePluginsModel", - NULL); - pluginPathNode = g_slist_next (pluginPathNode); -} - -static void -CappletAvailablePluginsSelectionChanged (GtkTreeSelection * - selection, - MatekbdIndicatorPluginsCapplet * gipc) -{ - GtkWidget *availablePluginsList = - GTK_WIDGET (gtk_tree_selection_get_tree_view (selection)); - gboolean isAnythingSelected = FALSE; - GtkWidget *lblDescription = - GTK_WIDGET (g_object_get_data (G_OBJECT (gipc->capplet), - "matekbd_indicator_plugins_add.lblDescription")); - - char *fullPath = - CappletGetSelectedPluginPath (GTK_TREE_VIEW (availablePluginsList), - gipc); - isAnythingSelected = fullPath != NULL; - gtk_label_set_text (GTK_LABEL (lblDescription), - g_strconcat ("<small><i>", - _("No description."), - "</i></small>", NULL)); - gtk_label_set_use_markup (GTK_LABEL (lblDescription), TRUE); - - if (fullPath != NULL) - { - const MatekbdIndicatorPlugin *plugin = - matekbd_indicator_plugin_manager_get_plugin (&gipc->plugin_manager, - fullPath); - if (plugin != NULL && plugin->description != NULL) - gtk_label_set_text (GTK_LABEL (lblDescription), - g_strconcat ("<small><i>", - plugin-> - description, "</i></small>", NULL)); - gtk_label_set_use_markup (GTK_LABEL (lblDescription), TRUE); - } - gtk_widget_set_sensitive (GTK_WIDGET - (g_object_get_data - (G_OBJECT (gipc->capplet), - "matekbd_indicator_plugins_add.btnOK")), - isAnythingSelected); -} - -void -CappletEnablePlugin (GtkWidget * btnAdd, MatekbdIndicatorPluginsCapplet * gipc) -{ - /* default domain! */ - GtkBuilder *builder; - GError *error = NULL; - GtkWidget *popup; - GtkWidget *availablePluginsList; - GtkTreeModel *availablePluginsModel; - GtkCellRenderer *renderer = - GTK_CELL_RENDERER (gtk_cell_renderer_text_new ()); - GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes (NULL, - renderer, - "text", - 0, - NULL); - GtkTreeSelection *selection; - gint response; - - builder = gtk_builder_new (); - - if (!gtk_builder_add_from_file (builder, - UIDIR "/matekbd-indicator-plugins_add.ui", - &error)) { - g_warning ("Could not load builder file: %s", error->message); - g_error_free(error); - return; - } - - popup = GTK_WIDGET (gtk_builder_get_object (builder, - "matekbd_indicator_plugins_add")); - - availablePluginsList = GTK_WIDGET (gtk_builder_get_object (builder, - "allPlugins")); - availablePluginsModel = - GTK_TREE_MODEL (gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING)); - gtk_tree_view_set_model (GTK_TREE_VIEW (availablePluginsList), - availablePluginsModel); - gtk_tree_view_append_column (GTK_TREE_VIEW (availablePluginsList), column); - selection = - gtk_tree_view_get_selection (GTK_TREE_VIEW (availablePluginsList)); - gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); - CappletFillAvailablePluginList (GTK_TREE_VIEW (availablePluginsList), gipc); - g_signal_connect (G_OBJECT (selection), "changed", - G_CALLBACK - (CappletAvailablePluginsSelectionChanged), gipc); - g_object_set_data (G_OBJECT (gipc->capplet), - "matekbd_indicator_plugins_add.btnOK", - GTK_WIDGET (gtk_builder_get_object (builder, "btnOK"))); - g_object_set_data (G_OBJECT (gipc->capplet), - "matekbd_indicator_plugins_add.lblDescription", - GTK_WIDGET (gtk_builder_get_object (builder, "lblDescription"))); - CappletAvailablePluginsSelectionChanged (selection, gipc); - response = gtk_dialog_run (GTK_DIALOG (popup)); - g_object_set_data (G_OBJECT (gipc->capplet), - "matekbd_indicator_plugins_add.lblDescription", NULL); - g_object_set_data (G_OBJECT (gipc->capplet), - "matekbd_indicator_plugins_add.btnOK", NULL); - gtk_widget_hide_all (popup); - if (response == GTK_RESPONSE_OK) - { - char *fullPath = - CappletGetSelectedPluginPath (GTK_TREE_VIEW (availablePluginsList), - gipc); - if (fullPath != NULL) - { - matekbd_indicator_plugin_manager_enable_plugin (&gipc-> - plugin_manager, - &gipc-> - applet_cfg. - enabled_plugins, - fullPath); - CappletFillActivePluginList (gipc); - g_free (fullPath); - matekbd_indicator_config_save_to_mateconf (&gipc->applet_cfg); - } - } - gtk_widget_destroy (popup); -} diff --git a/capplet/matekbd-indicator-plugins-capplet.c b/capplet/matekbd-indicator-plugins-capplet.c deleted file mode 100644 index 2714cd1..0000000 --- a/capplet/matekbd-indicator-plugins-capplet.c +++ /dev/null @@ -1,490 +0,0 @@ -/* - * Copyright (C) 2006 Sergey V. Udaltsov <[email protected]> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#include <config.h> - -#include "matekbd-indicator-plugins-capplet.h" - -#include <string.h> -#include <sys/stat.h> - -#include <gtk/gtk.h> -#include <glib/gi18n.h> -#include <gdk/gdkx.h> - -static MatekbdKeyboardConfig initialSysKbdConfig; -static GMainLoop *loop; - -extern void -CappletFillActivePluginList (MatekbdIndicatorPluginsCapplet * gipc) -{ - GtkWidget *activePlugins = - CappletGetUiWidget (gipc, "activePlugins"); - GtkListStore *activePluginsModel = - GTK_LIST_STORE (gtk_tree_view_get_model - (GTK_TREE_VIEW (activePlugins))); - GSList *pluginPathNode = gipc->applet_cfg.enabled_plugins; - GHashTable *allPluginRecs = gipc->plugin_manager.all_plugin_recs; - - gtk_list_store_clear (activePluginsModel); - if (allPluginRecs == NULL) - return; - - while (pluginPathNode != NULL) { - GtkTreeIter iter; - const char *fullPath = (const char *) pluginPathNode->data; - const MatekbdIndicatorPlugin *plugin = - matekbd_indicator_plugin_manager_get_plugin (&gipc-> - plugin_manager, - fullPath); - if (plugin != NULL) { - gtk_list_store_append (activePluginsModel, &iter); - gtk_list_store_set (activePluginsModel, &iter, - NAME_COLUMN, plugin->name, - FULLPATH_COLUMN, fullPath, -1); - } - - pluginPathNode = g_slist_next (pluginPathNode); - } -} - -static char * -CappletGetSelectedActivePluginPath (MatekbdIndicatorPluginsCapplet * gipc) -{ - GtkTreeView *pluginsList = - GTK_TREE_VIEW (CappletGetUiWidget (gipc, "activePlugins")); - return CappletGetSelectedPluginPath (pluginsList, gipc); -} - -char * -CappletGetSelectedPluginPath (GtkTreeView * pluginsList, - MatekbdIndicatorPluginsCapplet * gipc) -{ - GtkTreeModel *model = - gtk_tree_view_get_model (GTK_TREE_VIEW (pluginsList)); - GtkTreeSelection *selection = - gtk_tree_view_get_selection (GTK_TREE_VIEW (pluginsList)); - GtkTreeIter selectedIter; - - if (gtk_tree_selection_get_selected - (selection, NULL, &selectedIter)) { - char *fullPath = NULL; - - gtk_tree_model_get (model, &selectedIter, - FULLPATH_COLUMN, &fullPath, -1); - return fullPath; - } - return NULL; -} - -static void -CappletActivePluginsSelectionChanged (GtkTreeSelection * - selection, - MatekbdIndicatorPluginsCapplet * gipc) -{ - GtkWidget *activePlugins = - CappletGetUiWidget (gipc, "activePlugins"); - GtkTreeModel *model = - gtk_tree_view_get_model (GTK_TREE_VIEW (activePlugins)); - GtkTreeIter selectedIter; - gboolean isAnythingSelected = FALSE; - gboolean isFirstSelected = FALSE; - gboolean isLastSelected = FALSE; - gboolean hasConfigurationUi = FALSE; - GtkWidget *btnRemove = CappletGetUiWidget (gipc, "btnRemove"); - GtkWidget *btnUp = CappletGetUiWidget (gipc, "btnUp"); - GtkWidget *btnDown = CappletGetUiWidget (gipc, "btnDown"); - GtkWidget *btnProperties = CappletGetUiWidget (gipc, "btnProperties"); - GtkWidget *lblDescription = CappletGetUiWidget (gipc, "lblDescription"); - - gtk_label_set_text (GTK_LABEL (lblDescription), - g_strconcat ("<small><i>", - _("No description."), - "</i></small>", NULL)); - gtk_label_set_use_markup (GTK_LABEL (lblDescription), TRUE); - - if (gtk_tree_selection_get_selected - (selection, NULL, &selectedIter)) { - int counter = gtk_tree_model_iter_n_children (model, NULL); - GtkTreePath *treePath = - gtk_tree_model_get_path (model, &selectedIter); - gint *indices = gtk_tree_path_get_indices (treePath); - char *fullPath = CappletGetSelectedActivePluginPath (gipc); - const MatekbdIndicatorPlugin *plugin = - matekbd_indicator_plugin_manager_get_plugin (&gipc-> - plugin_manager, - fullPath); - - isAnythingSelected = TRUE; - - isFirstSelected = indices[0] == 0; - isLastSelected = indices[0] == counter - 1; - - if (plugin != NULL) { - hasConfigurationUi = - (plugin->configure_properties_callback != - NULL); - gtk_label_set_text (GTK_LABEL (lblDescription), - g_strconcat ("<small><i>", - plugin-> - description, - "</i></small>", - NULL)); - gtk_label_set_use_markup (GTK_LABEL - (lblDescription), TRUE); - } - g_free (fullPath); - - gtk_tree_path_free (treePath); - } - gtk_widget_set_sensitive (btnRemove, isAnythingSelected); - gtk_widget_set_sensitive (btnUp, isAnythingSelected - && !isFirstSelected); - gtk_widget_set_sensitive (btnDown, isAnythingSelected - && !isLastSelected); - gtk_widget_set_sensitive (btnProperties, isAnythingSelected - && hasConfigurationUi); -} - -static void -CappletPromotePlugin (GtkWidget * btnUp, - MatekbdIndicatorPluginsCapplet * gipc) -{ - char *fullPath = CappletGetSelectedActivePluginPath (gipc); - if (fullPath != NULL) { - matekbd_indicator_plugin_manager_promote_plugin (&gipc-> - plugin_manager, - gipc-> - applet_cfg. - enabled_plugins, - fullPath); - g_free (fullPath); - CappletFillActivePluginList (gipc); - matekbd_indicator_config_save_to_mateconf (&gipc->applet_cfg); - } -} - -static void -CappletDemotePlugin (GtkWidget * btnUp, MatekbdIndicatorPluginsCapplet * gipc) -{ - char *fullPath = CappletGetSelectedActivePluginPath (gipc); - if (fullPath != NULL) { - matekbd_indicator_plugin_manager_demote_plugin (&gipc-> - plugin_manager, - gipc-> - applet_cfg. - enabled_plugins, - fullPath); - g_free (fullPath); - CappletFillActivePluginList (gipc); - matekbd_indicator_config_save_to_mateconf (&gipc->applet_cfg); - } -} - -static void -CappletDisablePlugin (GtkWidget * btnRemove, - MatekbdIndicatorPluginsCapplet * gipc) -{ - char *fullPath = CappletGetSelectedActivePluginPath (gipc); - if (fullPath != NULL) { - matekbd_indicator_plugin_manager_disable_plugin (&gipc-> - plugin_manager, - &gipc-> - applet_cfg. - enabled_plugins, - fullPath); - g_free (fullPath); - CappletFillActivePluginList (gipc); - matekbd_indicator_config_save_to_mateconf (&gipc->applet_cfg); - } -} - -static void -CappletConfigurePlugin (GtkWidget * btnRemove, - MatekbdIndicatorPluginsCapplet * gipc) -{ - char *fullPath = CappletGetSelectedActivePluginPath (gipc); - if (fullPath != NULL) { - matekbd_indicator_plugin_manager_configure_plugin (&gipc-> - plugin_manager, - &gipc-> - plugin_container, - fullPath, - GTK_WINDOW - (gipc-> - capplet)); - g_free (fullPath); - } -} - -static void -CappletResponse (GtkDialog * dialog, gint response) -{ - if (response == GTK_RESPONSE_HELP) { - GError *error = NULL; - GdkAppLaunchContext *ctx = gdk_app_launch_context_new (); - - g_app_info_launch_default_for_uri - ("ghelp:matekbd?gkb-indicator-applet-plugins", - G_APP_LAUNCH_CONTEXT (ctx), &error); - - if (error) { - GtkWidget *d = NULL; - - d = gtk_message_dialog_new (GTK_WINDOW (dialog), - GTK_DIALOG_MODAL | - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_CLOSE, - "%s", _ - ("Unable to open help file")); - gtk_message_dialog_format_secondary_text - (GTK_MESSAGE_DIALOG (d), "%s", error->message); - g_signal_connect (d, "response", - G_CALLBACK (gtk_widget_destroy), - NULL); - gtk_window_present (GTK_WINDOW (d)); - - g_error_free (error); - } - - return; - } - - g_main_loop_quit (loop); -} - -static void -CappletSetup (MatekbdIndicatorPluginsCapplet * gipc) -{ - GtkBuilder *builder; - GError *error = NULL; - GtkWidget *button; - GtkWidget *capplet; - GtkWidget *activePlugins; - GtkTreeModel *activePluginsModel; - GtkCellRenderer *renderer = - GTK_CELL_RENDERER (gtk_cell_renderer_text_new ()); - GtkTreeViewColumn *column = - gtk_tree_view_column_new_with_attributes (NULL, renderer, - "text", 0, - NULL); - GtkTreeSelection *selection; - builder = gtk_builder_new (); - - gtk_window_set_default_icon_name ("input-keyboard"); - - /* default domain! */ - if (!gtk_builder_add_from_file (builder, - UIDIR "/matekbd-indicator-plugins.ui", - &error)) { - g_warning ("Could not load builder file: %s", error->message); - g_error_free(error); - return; - } - - gipc->capplet = capplet = - GTK_WIDGET (gtk_builder_get_object (builder, "matekbd_indicator_plugins")); - - gtk_builder_connect_signals (builder, NULL); - - g_object_set_data (G_OBJECT (capplet), "uiData", builder); - - #if GTK_CHECK_VERSION(3, 0, 0) - g_signal_connect_swapped(G_OBJECT(capplet), "destroy", G_CALLBACK(g_object_unref), builder); - #else - g_signal_connect_swapped(GTK_OBJECT(capplet), "destroy", G_CALLBACK(g_object_unref), builder); - #endif - - g_signal_connect_swapped (G_OBJECT (capplet), "unrealize", G_CALLBACK (g_main_loop_quit), loop); - - #if GTK_CHECK_VERSION(3, 0, 0) - g_signal_connect(G_OBJECT(capplet), "response", G_CALLBACK(CappletResponse), NULL); - #else - g_signal_connect(GTK_OBJECT(capplet), "response", G_CALLBACK(CappletResponse), NULL); - #endif - - - button = GTK_WIDGET (gtk_builder_get_object (builder, "btnUp")); - g_signal_connect (button, "clicked", - G_CALLBACK - (CappletPromotePlugin), gipc); - button = GTK_WIDGET (gtk_builder_get_object (builder, "btnDown")); - g_signal_connect (button, - "clicked", - G_CALLBACK - (CappletDemotePlugin), gipc); - button = GTK_WIDGET (gtk_builder_get_object (builder, "btnAdd")); - g_signal_connect (button, "clicked", - G_CALLBACK - (CappletEnablePlugin), gipc); - button = GTK_WIDGET (gtk_builder_get_object (builder, "btnRemove")); - g_signal_connect (button, "clicked", - G_CALLBACK - (CappletDisablePlugin), gipc); - button = GTK_WIDGET (gtk_builder_get_object (builder, "btnProperties")); - g_signal_connect (button, "clicked", - G_CALLBACK - (CappletConfigurePlugin), gipc); - - activePlugins = CappletGetUiWidget (gipc, "activePlugins"); - activePluginsModel = - GTK_TREE_MODEL (gtk_list_store_new - (2, G_TYPE_STRING, G_TYPE_STRING)); - gtk_tree_view_set_model (GTK_TREE_VIEW (activePlugins), - activePluginsModel); - gtk_tree_view_append_column (GTK_TREE_VIEW (activePlugins), - column); - selection = - gtk_tree_view_get_selection (GTK_TREE_VIEW (activePlugins)); - gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); - g_signal_connect (G_OBJECT (selection), "changed", - G_CALLBACK - (CappletActivePluginsSelectionChanged), gipc); - CappletFillActivePluginList (gipc); - CappletActivePluginsSelectionChanged (selection, gipc); - gtk_widget_show_all (capplet); -} - -int -main (int argc, char **argv) -{ - MatekbdIndicatorPluginsCapplet gipc; - - GError *mateconf_error = NULL; - MateConfClient *confClient; - - bindtextdomain (GETTEXT_PACKAGE, MATELOCALEDIR); - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); - textdomain (GETTEXT_PACKAGE); - memset (&gipc, 0, sizeof (gipc)); - gtk_init_with_args (&argc, &argv, "matekbd", NULL, NULL, NULL); - if (!mateconf_init (argc, argv, &mateconf_error)) { - g_warning (_("Failed to init MateConf: %s\n"), - mateconf_error->message); - g_error_free (mateconf_error); - return 1; - } - mateconf_error = NULL; - /*MatekbdIndicatorInstallGlibLogAppender( ); */ - gipc.engine = xkl_engine_get_instance (GDK_DISPLAY_XDISPLAY(gdk_display_get_default())); - gipc.config_registry = - xkl_config_registry_get_instance (gipc.engine); - - confClient = mateconf_client_get_default (); - matekbd_indicator_plugin_container_init (&gipc.plugin_container, - confClient); - g_object_unref (confClient); - - matekbd_keyboard_config_init (&gipc.kbd_cfg, confClient, gipc.engine); - matekbd_keyboard_config_init (&initialSysKbdConfig, confClient, - gipc.engine); - - matekbd_indicator_config_init (&gipc.applet_cfg, confClient, - gipc.engine); - - matekbd_indicator_plugin_manager_init (&gipc.plugin_manager); - - matekbd_keyboard_config_load_from_x_initial (&initialSysKbdConfig, - NULL); - matekbd_keyboard_config_load_from_mateconf (&gipc.kbd_cfg, - &initialSysKbdConfig); - - matekbd_indicator_config_load_from_mateconf (&gipc.applet_cfg); - - loop = g_main_loop_new (NULL, TRUE); - - CappletSetup (&gipc); - - g_main_loop_run (loop); - - matekbd_indicator_plugin_manager_term (&gipc.plugin_manager); - - matekbd_indicator_config_term (&gipc.applet_cfg); - - matekbd_keyboard_config_term (&gipc.kbd_cfg); - matekbd_keyboard_config_term (&initialSysKbdConfig); - - matekbd_indicator_plugin_container_term (&gipc.plugin_container); - g_object_unref (G_OBJECT (gipc.config_registry)); - g_object_unref (G_OBJECT (gipc.engine)); - return 0; -} - -/* functions just for plugins - otherwise ldd is not happy */ -void -matekbd_indicator_plugin_container_reinit_ui (MatekbdIndicatorPluginContainer * - pc) -{ -} - -gchar **matekbd_indicator_plugin_load_localized_group_names - (MatekbdIndicatorPluginContainer * pc) { - MatekbdDesktopConfig *config = - &((MatekbdIndicatorPluginsCapplet *) pc)->cfg; - XklConfigRegistry *config_registry = - ((MatekbdIndicatorPluginsCapplet *) pc)->config_registry; - - int i; - const gchar **native_names = - xkl_engine_get_groups_names (config->engine); - guint total_groups = xkl_engine_get_num_groups (config->engine); - guint total_layouts; - gchar **rv = g_new0 (char *, total_groups + 1); - gchar **current_descr = rv; - - if ((xkl_engine_get_features (config->engine) & - XKLF_MULTIPLE_LAYOUTS_SUPPORTED) - && config->layout_names_as_group_names) { - XklConfigRec *xkl_config = xkl_config_rec_new (); - if (xkl_config_rec_get_from_server - (xkl_config, config->engine)) { - gchar **sgn = NULL; - gchar **fgn = NULL; - matekbd_desktop_config_load_group_descriptions - (config, config_registry, - (const gchar **) xkl_config->layouts, - (const gchar **) xkl_config->variants, &sgn, - &fgn); - g_strfreev (sgn); - rv = fgn; - } - g_object_unref (G_OBJECT (xkl_config)); - /* Worst case - multiple layous - but SOME of them are multigrouped :((( - * We cannot do much - just add empty descriptions. - * The UI is going to be messy. - * Canadian layouts are famous for this sh.t. */ - total_layouts = g_strv_length (rv); - if (total_layouts != total_groups) { - xkl_debug (0, - "The mismatch between " - "the number of groups: %d and number of layouts: %d\n", - total_groups, total_layouts); - current_descr = rv + total_layouts; - for (i = total_groups - total_layouts; --i >= 0;) - *current_descr++ = g_strdup (""); - } - } - total_layouts = g_strv_length (rv); - if (!total_layouts) - for (i = total_groups; --i >= 0;) - *current_descr++ = g_strdup (*native_names++); - - return rv; -} diff --git a/capplet/matekbd-indicator-plugins-capplet.desktop.in.in b/capplet/matekbd-indicator-plugins-capplet.desktop.in.in deleted file mode 100644 index af3e8b4..0000000 --- a/capplet/matekbd-indicator-plugins-capplet.desktop.in.in +++ /dev/null @@ -1,15 +0,0 @@ -[Desktop Entry] -_Name=Keyboard Indicator plugins -_Comment=Enable/disable installed plugins -Exec=matekbd-indicator-plugins-capplet -Icon=input-keyboard -Terminal=false -Type=Application -StartupNotify=true -Categories=GTK;MATE;Settings;DesktopSettings; -OnlyShowIn=MATE; -NoDisplay=true -X-MATE-Bugzilla-Bugzilla=MATE -X-MATE-Bugzilla-Product=libmatekbd -X-MATE-Bugzilla-Component=Capplet -X-MATE-Bugzilla-Version=@VERSION@ diff --git a/capplet/matekbd-indicator-plugins-capplet.h b/capplet/matekbd-indicator-plugins-capplet.h deleted file mode 100644 index d69b828..0000000 --- a/capplet/matekbd-indicator-plugins-capplet.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (C) 2006 Sergey V. Udaltsov <[email protected]> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __MATEKBD_INDICATOR_PLUGINS_CAPPLET_H__ -#define __MATEKBD_INDICATOR_PLUGINS_CAPPLET_H__ - -#include <glib-object.h> -#include <gtk/gtk.h> - -#include "libmatekbd/matekbd-desktop-config.h" -#include "libmatekbd/matekbd-indicator-config.h" -#include "libmatekbd/matekbd-keyboard-config.h" - -#include "libmatekbd/matekbd-indicator-plugin-manager.h" -#include "libmatekbd/matekbd-util.h" - -typedef struct _MatekbdIndicatorPluginsCapplet { - MatekbdIndicatorPluginContainer plugin_container; - MatekbdDesktopConfig cfg; - MatekbdIndicatorConfig applet_cfg; - MatekbdKeyboardConfig kbd_cfg; - MatekbdIndicatorPluginManager plugin_manager; - XklEngine *engine; - XklConfigRegistry *config_registry; - - GtkWidget *capplet; -} MatekbdIndicatorPluginsCapplet; - -#define NAME_COLUMN 0 -#define FULLPATH_COLUMN 1 - -#define CappletGetUiWidget( gipc, name ) \ - GTK_WIDGET ( gtk_builder_get_object ( \ - GTK_BUILDER( g_object_get_data( G_OBJECT( (gipc)->capplet ), "uiData" ) ), \ - name ) ) - -extern void CappletFillActivePluginList (MatekbdIndicatorPluginsCapplet * - gipc); - -extern char *CappletGetSelectedPluginPath (GtkTreeView * plugins_list, - MatekbdIndicatorPluginsCapplet * - gipc); - -extern void CappletEnablePlugin (GtkWidget * btnAdd, - MatekbdIndicatorPluginsCapplet * gipc); - -#endif diff --git a/capplet/matekbd-indicator-plugins.ui b/capplet/matekbd-indicator-plugins.ui deleted file mode 100644 index 67ca2b8..0000000 --- a/capplet/matekbd-indicator-plugins.ui +++ /dev/null @@ -1,255 +0,0 @@ -<?xml version="1.0"?> -<interface> - <!-- interface-requires gtk+ 2.12 --> - <!-- interface-naming-policy toplevel-contextual --> - <object class="GtkDialog" id="matekbd_indicator_plugins"> - <property name="visible">True</property> - <property name="border_width">5</property> - <property name="title" translatable="yes">Keyboard Indicator Plugins</property> - <property name="type_hint">dialog</property> - <property name="has_separator">False</property> - <child internal-child="vbox"> - <object class="GtkVBox" id="dialog-vbox1"> - <property name="visible">True</property> - <property name="spacing">2</property> - <child> - <object class="GtkVBox" id="vbox5"> - <property name="visible">True</property> - <property name="border_width">5</property> - <property name="spacing">6</property> - <child> - <object class="GtkHBox" id="hbox1"> - <property name="visible">True</property> - <property name="spacing">12</property> - <child> - <object class="GtkAlignment" id="alignment1"> - <property name="visible">True</property> - <child> - <object class="GtkVBox" id="vbox1"> - <property name="visible">True</property> - <property name="spacing">6</property> - <child> - <object class="GtkLabel" id="label3"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Active _plugins:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">activePlugins</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkScrolledWindow" id="scrolledwindow1"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hscrollbar_policy">automatic</property> - <property name="vscrollbar_policy">automatic</property> - <property name="shadow_type">in</property> - <child> - <object class="GtkTreeView" id="activePlugins"> - <property name="width_request">160</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="tooltip_text" translatable="yes">The list of active plugins</property> - <property name="headers_visible">False</property> - </object> - </child> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - </object> - </child> - </object> - <packing> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkAlignment" id="alignment12"> - <property name="visible">True</property> - <child> - <object class="GtkVBox" id="vbox3"> - <property name="visible">True</property> - <property name="spacing">6</property> - <child> - <object class="GtkLabel" id="label10"> - <property name="visible">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkButton" id="btnAdd"> - <property name="label">gtk-add</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="tooltip_text" translatable="yes">Activate more plugins</property> - <property name="use_stock">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkButton" id="btnRemove"> - <property name="label">gtk-remove</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="tooltip_text" translatable="yes">Deactivate selected plugin</property> - <property name="use_stock">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">2</property> - </packing> - </child> - <child> - <object class="GtkButton" id="btnUp"> - <property name="label">gtk-go-up</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="tooltip_text" translatable="yes">Increase the plugin priority</property> - <property name="use_stock">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">3</property> - </packing> - </child> - <child> - <object class="GtkButton" id="btnDown"> - <property name="label">gtk-go-down</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="tooltip_text" translatable="yes">Decrease the plugin priority</property> - <property name="use_stock">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">4</property> - </packing> - </child> - <child> - <object class="GtkButton" id="btnProperties"> - <property name="label">gtk-properties</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="tooltip_text" translatable="yes">Configure the selected plugin</property> - <property name="use_stock">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">5</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="label11"> - <property name="visible">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">6</property> - </packing> - </child> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="lblDescription"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="use_markup">True</property> - <property name="wrap">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - <child internal-child="action_area"> - <object class="GtkHButtonBox" id="dialog-action_area1"> - <property name="visible">True</property> - <property name="layout_style">end</property> - <child> - <object class="GtkButton" id="btnClose"> - <property name="label">gtk-close</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="can_default">True</property> - <property name="receives_default">False</property> - <property name="tooltip_text" translatable="yes">Close the dialog</property> - <property name="use_stock">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkButton" id="btnHelp"> - <property name="label">gtk-help</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="can_default">True</property> - <property name="receives_default">False</property> - <property name="use_stock">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="pack_type">end</property> - <property name="position">0</property> - </packing> - </child> - </object> - </child> - <action-widgets> - <action-widget response="-7">btnClose</action-widget> - <action-widget response="-11">btnHelp</action-widget> - </action-widgets> - </object> -</interface> diff --git a/capplet/matekbd-indicator-plugins_add.ui b/capplet/matekbd-indicator-plugins_add.ui deleted file mode 100644 index 60c77e0..0000000 --- a/capplet/matekbd-indicator-plugins_add.ui +++ /dev/null @@ -1,142 +0,0 @@ -<?xml version="1.0"?> -<interface> - <!-- interface-requires gtk+ 2.12 --> - <!-- interface-naming-policy toplevel-contextual --> - <object class="GtkDialog" id="matekbd_indicator_plugins_add"> - <property name="visible">True</property> - <property name="border_width">5</property> - <property name="title" translatable="yes">Add Plugin</property> - <property name="modal">True</property> - <property name="destroy_with_parent">True</property> - <property name="type_hint">dialog</property> - <property name="has_separator">False</property> - <child internal-child="vbox"> - <object class="GtkVBox" id="dialog-vbox2"> - <property name="visible">True</property> - <property name="spacing">2</property> - <child> - <object class="GtkAlignment" id="alignment13"> - <property name="visible">True</property> - <property name="border_width">5</property> - <child> - <object class="GtkVBox" id="vbox4"> - <property name="visible">True</property> - <property name="spacing">6</property> - <child> - <object class="GtkLabel" id="label18"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">_Available plugins:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">allPlugins</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkScrolledWindow" id="scrolledwindow2"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hscrollbar_policy">automatic</property> - <property name="vscrollbar_policy">automatic</property> - <property name="shadow_type">in</property> - <child> - <object class="GtkTreeView" id="allPlugins"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="headers_visible">False</property> - </object> - </child> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="lblDescription"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="use_markup">True</property> - <property name="wrap">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">2</property> - </packing> - </child> - </object> - </child> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - <child internal-child="action_area"> - <object class="GtkHButtonBox" id="dialog-action_area2"> - <property name="visible">True</property> - <property name="layout_style">end</property> - <child> - <object class="GtkButton" id="helpbutton1"> - <property name="label">gtk-help</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="can_default">True</property> - <property name="receives_default">False</property> - <property name="use_stock">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkButton" id="cancelbutton1"> - <property name="label">gtk-cancel</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="can_default">True</property> - <property name="receives_default">False</property> - <property name="use_stock">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkButton" id="btnOK"> - <property name="label">gtk-ok</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="can_default">True</property> - <property name="receives_default">False</property> - <property name="use_stock">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">2</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="pack_type">end</property> - <property name="position">0</property> - </packing> - </child> - </object> - </child> - <action-widgets> - <action-widget response="-11">helpbutton1</action-widget> - <action-widget response="-6">cancelbutton1</action-widget> - <action-widget response="-5">btnOK</action-widget> - </action-widgets> - </object> -</interface> |