[gnome-control-center] Printers: Make model label and ip address label selectable
- From: Marek KaÅÃk <mkasik src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] Printers: Make model label and ip address label selectable
- Date: Fri, 15 Jul 2011 14:08:45 +0000 (UTC)
commit 337d7535b3c6bcade1d219463352e37887d06b0d
Author: Marek Kasik <mkasik redhat com>
Date: Fri Jul 15 16:08:31 2011 +0200
Printers: Make model label and ip address label selectable
This patch add selectable property into CcEditableEntry
and uses it in Printers panel (#651545).
libgnome-control-center/cc-editable-entry.c | 38 +++++++++++++++++++++++++++
libgnome-control-center/cc-editable-entry.h | 31 ++++++++++++----------
panels/printers/cc-printers-panel.c | 10 +++++++
3 files changed, 65 insertions(+), 14 deletions(-)
---
diff --git a/libgnome-control-center/cc-editable-entry.c b/libgnome-control-center/cc-editable-entry.c
index 8c35f21..297d7eb 100644
--- a/libgnome-control-center/cc-editable-entry.c
+++ b/libgnome-control-center/cc-editable-entry.c
@@ -32,6 +32,7 @@ struct _CcEditableEntryPrivate {
gchar *text;
gboolean editable;
+ gboolean selectable;
gint weight;
gboolean weight_set;
gdouble scale;
@@ -46,6 +47,7 @@ enum {
PROP_0,
PROP_TEXT,
PROP_EDITABLE,
+ PROP_SELECTABLE,
PROP_SCALE,
PROP_SCALE_SET,
PROP_WEIGHT,
@@ -122,6 +124,29 @@ cc_editable_entry_get_editable (CcEditableEntry *e)
return e->priv->editable;
}
+void
+cc_editable_entry_set_selectable (CcEditableEntry *e,
+ gboolean selectable)
+{
+ CcEditableEntryPrivate *priv;
+
+ priv = e->priv;
+
+ if (priv->selectable != selectable) {
+ priv->selectable = selectable;
+
+ gtk_label_set_selectable (priv->label, selectable);
+
+ g_object_notify (G_OBJECT (e), "selectable");
+ }
+}
+
+gboolean
+cc_editable_entry_get_selectable (CcEditableEntry *e)
+{
+ return e->priv->selectable;
+}
+
static void
update_entry_font (GtkWidget *widget,
CcEditableEntry *e)
@@ -247,6 +272,9 @@ cc_editable_entry_set_property (GObject *object,
case PROP_EDITABLE:
cc_editable_entry_set_editable (e, g_value_get_boolean (value));
break;
+ case PROP_SELECTABLE:
+ cc_editable_entry_set_selectable (e, g_value_get_boolean (value));
+ break;
case PROP_WEIGHT:
cc_editable_entry_set_weight (e, g_value_get_int (value));
break;
@@ -282,6 +310,10 @@ cc_editable_entry_get_property (GObject *object,
g_value_set_boolean (value,
cc_editable_entry_get_editable (e));
break;
+ case PROP_SELECTABLE:
+ g_value_set_boolean (value,
+ cc_editable_entry_get_selectable (e));
+ break;
case PROP_WEIGHT:
g_value_set_int (value,
cc_editable_entry_get_weight (e));
@@ -344,6 +376,12 @@ cc_editable_entry_class_init (CcEditableEntryClass *class)
FALSE,
G_PARAM_READWRITE));
+ g_object_class_install_property (object_class, PROP_SELECTABLE,
+ g_param_spec_boolean ("selectable",
+ "Selectable", "Whether the text can be selected by mouse",
+ FALSE,
+ G_PARAM_READWRITE));
+
g_object_class_install_property (object_class, PROP_WEIGHT,
g_param_spec_int ("weight",
"Font Weight", "The font weight to use",
diff --git a/libgnome-control-center/cc-editable-entry.h b/libgnome-control-center/cc-editable-entry.h
index 2906d61..7d91cf0 100644
--- a/libgnome-control-center/cc-editable-entry.h
+++ b/libgnome-control-center/cc-editable-entry.h
@@ -52,20 +52,23 @@ struct _CcEditableEntryClass
void (* editing_done) (CcEditableEntry *entry);
};
-GType cc_editable_entry_get_type (void) G_GNUC_CONST;
-GtkWidget *cc_editable_entry_new (void);
-void cc_editable_entry_set_text (CcEditableEntry *entry,
- const gchar *text);
-const gchar *cc_editable_entry_get_text (CcEditableEntry *entry);
-void cc_editable_entry_set_editable (CcEditableEntry *entry,
- gboolean editable);
-gboolean cc_editable_entry_get_editable (CcEditableEntry *entry);
-void cc_editable_entry_set_weight (CcEditableEntry *entry,
- gint weight);
-gint cc_editable_entry_get_weight (CcEditableEntry *entry);
-void cc_editable_entry_set_scale (CcEditableEntry *entry,
- gdouble scale);
-gdouble cc_editable_entry_get_scale (CcEditableEntry *entry);
+GType cc_editable_entry_get_type (void) G_GNUC_CONST;
+GtkWidget *cc_editable_entry_new (void);
+void cc_editable_entry_set_text (CcEditableEntry *entry,
+ const gchar *text);
+const gchar *cc_editable_entry_get_text (CcEditableEntry *entry);
+void cc_editable_entry_set_editable (CcEditableEntry *entry,
+ gboolean editable);
+gboolean cc_editable_entry_get_editable (CcEditableEntry *entry);
+void cc_editable_entry_set_selectable (CcEditableEntry *entry,
+ gboolean selectable);
+gboolean cc_editable_entry_get_selectable (CcEditableEntry *entry);
+void cc_editable_entry_set_weight (CcEditableEntry *entry,
+ gint weight);
+gint cc_editable_entry_get_weight (CcEditableEntry *entry);
+void cc_editable_entry_set_scale (CcEditableEntry *entry,
+ gdouble scale);
+gdouble cc_editable_entry_get_scale (CcEditableEntry *entry);
G_END_DECLS
diff --git a/panels/printers/cc-printers-panel.c b/panels/printers/cc-printers-panel.c
index e4fad13..d220f38 100644
--- a/panels/printers/cc-printers-panel.c
+++ b/panels/printers/cc-printers-panel.c
@@ -2560,6 +2560,16 @@ cc_printers_panel_init (CcPrintersPanel *self)
gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP);
+ /* Make model label and ip-address label selectable */
+ widget = (GtkWidget*)
+ gtk_builder_get_object (priv->builder, "printer-ip-address-label");
+ cc_editable_entry_set_selectable (CC_EDITABLE_ENTRY (widget), TRUE);
+
+ widget = (GtkWidget*)
+ gtk_builder_get_object (priv->builder, "printer-model-label");
+ cc_editable_entry_set_selectable (CC_EDITABLE_ENTRY (widget), TRUE);
+
+
/* Add unlock button */
priv->permission = (GPermission *)polkit_permission_new_sync (
"org.opensuse.cupspkhelper.mechanism.all-edit", NULL, NULL, NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]