summaryrefslogtreecommitdiff
path: root/capplet
diff options
context:
space:
mode:
Diffstat (limited to 'capplet')
-rw-r--r--capplet/Makefile.am46
-rw-r--r--capplet/matekbd-indicator-plugins-add.c207
-rw-r--r--capplet/matekbd-indicator-plugins-capplet.c490
-rw-r--r--capplet/matekbd-indicator-plugins-capplet.desktop.in.in15
-rw-r--r--capplet/matekbd-indicator-plugins-capplet.h63
-rw-r--r--capplet/matekbd-indicator-plugins.ui255
-rw-r--r--capplet/matekbd-indicator-plugins_add.ui142
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>