[gnome-control-center] Printers: Make model label and ip address label selectable



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]