summaryrefslogtreecommitdiff
path: root/libmatekbd/matekbd-desktop-config.h
diff options
context:
space:
mode:
authorPerberos <[email protected]>2011-12-01 20:53:10 -0300
committerPerberos <[email protected]>2011-12-01 20:53:10 -0300
commit916e2eafe251b44f9d0339282f5d00723899caec (patch)
treed650ca8c97d834499ca107a2a59a41c86c1fc4a9 /libmatekbd/matekbd-desktop-config.h
downloadlibmatekbd-916e2eafe251b44f9d0339282f5d00723899caec.tar.bz2
libmatekbd-916e2eafe251b44f9d0339282f5d00723899caec.tar.xz
moving from https://github.com/perberos/mate-desktop-environment
Diffstat (limited to 'libmatekbd/matekbd-desktop-config.h')
-rw-r--r--libmatekbd/matekbd-desktop-config.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/libmatekbd/matekbd-desktop-config.h b/libmatekbd/matekbd-desktop-config.h
new file mode 100644
index 0000000..e6a1639
--- /dev/null
+++ b/libmatekbd/matekbd-desktop-config.h
@@ -0,0 +1,92 @@
+/*
+ * 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_DESKTOP_CONFIG_H__
+#define __MATEKBD_DESKTOP_CONFIG_H__
+
+#include <X11/Xlib.h>
+#include <glib.h>
+#include <mateconf/mateconf-client.h>
+#include <libxklavier/xklavier.h>
+
+extern const gchar MATEKBD_DESKTOP_CONFIG_DIR[];
+extern const gchar MATEKBD_DESKTOP_CONFIG_KEY_DEFAULT_GROUP[];
+extern const gchar MATEKBD_DESKTOP_CONFIG_KEY_GROUP_PER_WINDOW[];
+extern const gchar MATEKBD_DESKTOP_CONFIG_KEY_HANDLE_INDICATORS[];
+extern const gchar MATEKBD_DESKTOP_CONFIG_KEY_LAYOUT_NAMES_AS_GROUP_NAMES[];
+
+/*
+ * General configuration
+ */
+typedef struct _MatekbdDesktopConfig {
+ gint default_group;
+ gboolean group_per_app;
+ gboolean handle_indicators;
+ gboolean layout_names_as_group_names;
+ gboolean load_extra_items;
+
+ /* private, transient */
+ MateConfClient *conf_client;
+ int config_listener_id;
+ XklEngine *engine;
+} MatekbdDesktopConfig;
+
+/**
+ * MatekbdDesktopConfig functions
+ */
+extern void matekbd_desktop_config_init (MatekbdDesktopConfig * config,
+ MateConfClient * conf_client,
+ XklEngine * engine);
+extern void matekbd_desktop_config_term (MatekbdDesktopConfig * config);
+
+extern void matekbd_desktop_config_load_from_mateconf (MatekbdDesktopConfig *
+ config);
+
+extern void matekbd_desktop_config_save_to_mateconf (MatekbdDesktopConfig * config);
+
+extern gboolean matekbd_desktop_config_activate (MatekbdDesktopConfig * config);
+
+extern gboolean
+matekbd_desktop_config_load_group_descriptions (MatekbdDesktopConfig
+ * config,
+ XklConfigRegistry *
+ registry,
+ const gchar **
+ layout_ids,
+ const gchar **
+ variant_ids,
+ gchar ***
+ short_group_names,
+ gchar *** full_group_names);
+
+extern void matekbd_desktop_config_lock_next_group (MatekbdDesktopConfig *
+ config);
+
+extern void matekbd_desktop_config_lock_prev_group (MatekbdDesktopConfig *
+ config);
+
+extern void matekbd_desktop_config_restore_group (MatekbdDesktopConfig * config);
+
+extern void matekbd_desktop_config_start_listen (MatekbdDesktopConfig * config,
+ MateConfClientNotifyFunc func,
+ gpointer user_data);
+
+extern void matekbd_desktop_config_stop_listen (MatekbdDesktopConfig * config);
+
+#endif