[Xfce4-commits] [panel-plugins/xfce4-xkb-plugin] 05/17: Allow to hide tooltip icon
noreply at xfce.org
noreply at xfce.org
Sat Jun 10 14:31:38 CEST 2017
This is an automated email from the git hooks/post-receive script.
n i n e t l s p u s h e d a c o m m i t t o b r a n c h m a s t e r
in repository panel-plugins/xfce4-xkb-plugin.
commit 0d77ca975a04077fd2cb30dee090ed258d3f657a
Author: Viktor Odintsev <zakhams at gmail.com>
Date: Thu Mar 16 04:16:03 2017 +0300
Allow to hide tooltip icon
---
panel-plugin/xkb-callbacks.c | 17 +++++++++++++----
panel-plugin/xkb-properties.h | 1 +
panel-plugin/xkb-settings-dialog.c | 14 ++++++++++++++
panel-plugin/xkb-xfconf.c | 35 ++++++++++++++++++++++++++++++++++-
panel-plugin/xkb-xfconf.h | 1 +
5 files changed, 63 insertions(+), 5 deletions(-)
diff --git a/panel-plugin/xkb-callbacks.c b/panel-plugin/xkb-callbacks.c
index de8902d..13107de 100644
--- a/panel-plugin/xkb-callbacks.c
+++ b/panel-plugin/xkb-callbacks.c
@@ -185,11 +185,20 @@ xkb_plugin_set_tooltip (GtkWidget *widget,
GtkTooltip *tooltip,
t_xkb *xkb)
{
- gint group = xkb_config_get_current_group ();
- GdkPixbuf *pixbuf = xkb_config_get_tooltip_pixbuf (group);
- gchar *layout_name = xkb_config_get_pretty_layout_name (group);
+ gint group;
+ gchar *layout_name;
+ GdkPixbuf *pixbuf;
+
+ group = xkb_config_get_current_group ();
+
+ if (xkb_xfconf_get_display_tooltip_icon (xkb->config))
+ {
+ pixbuf = xkb_config_get_tooltip_pixbuf (group);
+ gtk_tooltip_set_icon (tooltip, pixbuf);
+ }
+
+ layout_name = xkb_config_get_pretty_layout_name (group);
- gtk_tooltip_set_icon (tooltip, pixbuf);
gtk_tooltip_set_text (tooltip, layout_name);
return TRUE;
diff --git a/panel-plugin/xkb-properties.h b/panel-plugin/xkb-properties.h
index 960fc6e..62450cb 100644
--- a/panel-plugin/xkb-properties.h
+++ b/panel-plugin/xkb-properties.h
@@ -28,6 +28,7 @@
#define DISPLAY_TYPE "display-type"
#define DISPLAY_SCALE "display-scale"
+#define DISPLAY_TOOLTIP_ICON "display-tooltip-icon"
#define GROUP_POLICY "group-policy"
typedef enum
diff --git a/panel-plugin/xkb-settings-dialog.c b/panel-plugin/xkb-settings-dialog.c
index 1b19810..04429d4 100644
--- a/panel-plugin/xkb-settings-dialog.c
+++ b/panel-plugin/xkb-settings-dialog.c
@@ -95,6 +95,7 @@ xfce_xkb_configure (XfcePanelPlugin *plugin,
{
GtkWidget *display_type_combo;
GtkWidget *display_scale_range;
+ GtkWidget *display_tooltip_icon_switch;
GtkWidget *group_policy_combo;
GtkWidget *vbox, *frame, *bin, *grid, *label;
DialogInstance *instance;
@@ -151,6 +152,15 @@ xfce_xkb_configure (XfcePanelPlugin *plugin,
gtk_widget_set_size_request (display_scale_range, 230, -1);
gtk_grid_attach (GTK_GRID (grid), display_scale_range, 1, 1, 1, 1);
+ label = gtk_label_new (_("Tooltip icon:"));
+ gtk_label_set_xalign (GTK_LABEL (label), 0.f);
+ gtk_widget_set_hexpand (label, TRUE);
+ gtk_grid_attach (GTK_GRID (grid), label, 0, 2, 1, 1);
+
+ display_tooltip_icon_switch = gtk_switch_new ();
+ gtk_widget_set_halign (display_tooltip_icon_switch, GTK_ALIGN_END);
+ gtk_grid_attach (GTK_GRID (grid), display_tooltip_icon_switch, 1, 2, 1, 1);
+
frame = xfce_gtk_frame_box_new (_("Behavior"), &bin);
gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 2);
@@ -191,6 +201,10 @@ xfce_xkb_configure (XfcePanelPlugin *plugin,
G_OBJECT (gtk_range_get_adjustment (GTK_RANGE (display_scale_range))),
"value", G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL);
+ g_object_bind_property (G_OBJECT (xkb->config), DISPLAY_TOOLTIP_ICON,
+ G_OBJECT (display_tooltip_icon_switch),
+ "active", G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL);
+
g_object_bind_property (G_OBJECT (xkb->config), GROUP_POLICY,
G_OBJECT (group_policy_combo),
"active", G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL);
diff --git a/panel-plugin/xkb-xfconf.c b/panel-plugin/xkb-xfconf.c
index 9ade5fd..7287c90 100644
--- a/panel-plugin/xkb-xfconf.c
+++ b/panel-plugin/xkb-xfconf.c
@@ -36,6 +36,7 @@
#define DEFAULT_DISPLAY_TYPE DISPLAY_TYPE_IMAGE
#define DEFAULT_DISPLAY_SCALE DISPLAY_SCALE_MAX
+#define DEFAULT_DISPLAY_TOOLTIP_ICON TRUE
#define DEFAULT_GROUP_POLICY GROUP_POLICY_PER_APPLICATION
static void xkb_xfconf_finalize (GObject *object);
@@ -59,6 +60,7 @@ struct _XkbXfconf
guint display_type;
guint display_scale;
+ gboolean display_tooltip_icon;
guint group_policy;
};
@@ -67,6 +69,7 @@ enum
PROP_0,
PROP_DISPLAY_TYPE,
PROP_DISPLAY_SCALE,
+ PROP_DISPLAY_TOOLTIP_ICON,
PROP_GROUP_POLICY,
N_PROPERTIES,
};
@@ -77,7 +80,7 @@ enum
LAST_SIGNAL
};
-static guint xkb_xfconf_signals [LAST_SIGNAL] = { NULL, };
+static guint xkb_xfconf_signals [LAST_SIGNAL] = { 0, };
G_DEFINE_TYPE (XkbXfconf, xkb_xfconf, G_TYPE_OBJECT)
@@ -101,6 +104,11 @@ xkb_xfconf_class_init (XkbXfconfClass *klass)
DISPLAY_SCALE_MIN, DISPLAY_SCALE_MAX, DEFAULT_DISPLAY_SCALE,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_class, PROP_DISPLAY_TOOLTIP_ICON,
+ g_param_spec_boolean (DISPLAY_TOOLTIP_ICON, NULL, NULL,
+ DEFAULT_DISPLAY_TOOLTIP_ICON,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
g_object_class_install_property (gobject_class, PROP_GROUP_POLICY,
g_param_spec_uint (GROUP_POLICY, NULL, NULL,
GROUP_POLICY_GLOBAL, GROUP_POLICY_PER_APPLICATION, DEFAULT_GROUP_POLICY,
@@ -120,6 +128,7 @@ xkb_xfconf_init (XkbXfconf *config)
{
config->display_type = DEFAULT_DISPLAY_TYPE;
config->display_scale = DEFAULT_DISPLAY_SCALE;
+ config->display_tooltip_icon = DEFAULT_DISPLAY_TOOLTIP_ICON;
config->group_policy = DEFAULT_GROUP_POLICY;
}
@@ -143,6 +152,9 @@ xkb_xfconf_get_property (GObject *object, guint prop_id, GValue *value, GParamSp
case PROP_DISPLAY_SCALE:
g_value_set_uint (value, config->display_scale);
break;
+ case PROP_DISPLAY_TOOLTIP_ICON:
+ g_value_set_boolean (value, config->display_tooltip_icon);
+ break;
case PROP_GROUP_POLICY:
g_value_set_uint (value, config->group_policy);
break;
@@ -157,6 +169,7 @@ xkb_xfconf_set_property (GObject *object, guint prop_id, const GValue *value, GP
{
XkbXfconf *config = XKB_XFCONF (object);
guint val_uint;
+ gboolean val_boolean;
switch (prop_id)
{
@@ -178,6 +191,15 @@ xkb_xfconf_set_property (GObject *object, guint prop_id, const GValue *value, GP
g_signal_emit (G_OBJECT (config), xkb_xfconf_signals [CONFIGURATION_CHANGED], 0);
}
break;
+ case PROP_DISPLAY_TOOLTIP_ICON:
+ val_boolean = g_value_get_boolean (value);
+ if (config->display_tooltip_icon != val_boolean)
+ {
+ config->display_tooltip_icon = val_boolean;
+ g_object_notify (G_OBJECT (config), DISPLAY_TOOLTIP_ICON);
+ g_signal_emit (G_OBJECT (config), xkb_xfconf_signals [CONFIGURATION_CHANGED], 0);
+ }
+ break;
case PROP_GROUP_POLICY:
val_uint = g_value_get_uint (value);
if (config->group_policy != val_uint)
@@ -207,6 +229,13 @@ xkb_xfconf_get_display_scale (XkbXfconf *config)
return config->display_scale;
}
+gboolean
+xkb_xfconf_get_display_tooltip_icon (XkbXfconf *config)
+{
+ g_return_val_if_fail (IS_XKB_XFCONF (config), DEFAULT_DISPLAY_TOOLTIP_ICON);
+ return config->display_tooltip_icon;
+}
+
guint
xkb_xfconf_get_group_policy (XkbXfconf *config)
{
@@ -235,6 +264,10 @@ xkb_xfconf_new (const gchar *property_base)
xfconf_g_property_bind (channel, property, G_TYPE_UINT, config, DISPLAY_SCALE);
g_free (property);
+ property = g_strconcat (property_base, "/" DISPLAY_TOOLTIP_ICON, NULL);
+ xfconf_g_property_bind (channel, property, G_TYPE_BOOLEAN, config, DISPLAY_TOOLTIP_ICON);
+ g_free (property);
+
property = g_strconcat (property_base, "/" GROUP_POLICY, NULL);
xfconf_g_property_bind (channel, property, G_TYPE_UINT, config, GROUP_POLICY);
g_free (property);
diff --git a/panel-plugin/xkb-xfconf.h b/panel-plugin/xkb-xfconf.h
index c1e8603..95b0f64 100644
--- a/panel-plugin/xkb-xfconf.h
+++ b/panel-plugin/xkb-xfconf.h
@@ -46,6 +46,7 @@ XkbXfconf *xkb_xfconf_new (const gchar *prope
guint xkb_xfconf_get_display_type (XkbXfconf *config);
guint xkb_xfconf_get_display_scale (XkbXfconf *config);
+gboolean xkb_xfconf_get_display_tooltip_icon (XkbXfconf *config);
guint xkb_xfconf_get_group_policy (XkbXfconf *config);
G_END_DECLS
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list