gdm r5788 - in trunk: . gui/simple-greeter
- From: mccann svn gnome org
- To: svn-commits-list gnome org
- Subject: gdm r5788 - in trunk: . gui/simple-greeter
- Date: Mon, 18 Feb 2008 18:28:09 +0000 (GMT)
Author: mccann
Date: Mon Feb 18 18:28:08 2008
New Revision: 5788
URL: http://svn.gnome.org/viewvc/gdm?rev=5788&view=rev
Log:
2008-02-18 William Jon McCann <jmccann redhat com>
* gui/simple-greeter/gdm-language-option-widget.c:
(gdm_language_option_widget_new):
* gui/simple-greeter/gdm-option-widget.c:
(gdm_option_widget_get_icon_name),
(gdm_option_widget_set_icon_name),
(gdm_option_widget_set_property), (gdm_option_widget_get_property),
(gdm_option_widget_class_init), (gdm_option_widget_init),
(gdm_option_widget_finalize):
* gui/simple-greeter/gdm-session-option-widget.c:
(gdm_session_option_widget_new):
Add icons for language and session choosers.
Modified:
trunk/ChangeLog
trunk/gui/simple-greeter/gdm-language-option-widget.c
trunk/gui/simple-greeter/gdm-option-widget.c
trunk/gui/simple-greeter/gdm-session-option-widget.c
Modified: trunk/gui/simple-greeter/gdm-language-option-widget.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-language-option-widget.c (original)
+++ trunk/gui/simple-greeter/gdm-language-option-widget.c Mon Feb 18 18:28:08 2008
@@ -210,6 +210,7 @@
object = g_object_new (GDM_TYPE_LANGUAGE_OPTION_WIDGET,
"label-text", _("_Language:"),
+ "icon-name", "config-language",
"max-item-count", 8,
NULL);
Modified: trunk/gui/simple-greeter/gdm-option-widget.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-option-widget.c (original)
+++ trunk/gui/simple-greeter/gdm-option-widget.c Mon Feb 18 18:28:08 2008
@@ -50,7 +50,9 @@
struct GdmOptionWidgetPrivate
{
GtkWidget *label;
+ GtkWidget *image;
char *label_text;
+ char *icon_name;
GtkWidget *items_combo_box;
GtkListStore *list_store;
@@ -69,7 +71,8 @@
enum {
PROP_0,
- PROP_LABEL_TEXT
+ PROP_LABEL_TEXT,
+ PROP_ICON_NAME
};
enum {
@@ -277,11 +280,45 @@
}
}
+static const char *
+gdm_option_widget_get_icon_name (GdmOptionWidget *widget)
+{
+ return widget->priv->icon_name;
+}
+
+static void
+gdm_option_widget_set_icon_name (GdmOptionWidget *widget,
+ const char *name)
+{
+ if (name == NULL && widget->priv->icon_name != NULL) {
+ /* remove icon */
+ g_free (widget->priv->icon_name);
+ widget->priv->icon_name = NULL;
+ gtk_widget_hide (widget->priv->image);
+ gtk_image_clear (GTK_IMAGE (widget->priv->image));
+ g_object_notify (G_OBJECT (widget), "icon-name");
+ } else if (name != NULL && widget->priv->icon_name == NULL) {
+ /* add icon */
+ widget->priv->icon_name = g_strdup (name);
+ gtk_widget_show (widget->priv->image);
+ gtk_image_set_from_icon_name (GTK_IMAGE (widget->priv->image), name, GTK_ICON_SIZE_BUTTON);
+ g_object_notify (G_OBJECT (widget), "icon-name");
+ } else if (name != NULL
+ && widget->priv->icon_name != NULL
+ && strcmp (widget->priv->icon_name, name) != 0) {
+ /* changed icon */
+ g_free (widget->priv->icon_name);
+ widget->priv->icon_name = g_strdup (name);
+ gtk_image_set_from_icon_name (GTK_IMAGE (widget->priv->image), name, GTK_ICON_SIZE_BUTTON);
+ g_object_notify (G_OBJECT (widget), "icon-name");
+ }
+}
+
static void
gdm_option_widget_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
{
GdmOptionWidget *self;
@@ -291,7 +328,9 @@
case PROP_LABEL_TEXT:
gdm_option_widget_set_label_text (self, g_value_get_string (value));
break;
-
+ case PROP_ICON_NAME:
+ gdm_option_widget_set_icon_name (self, g_value_get_string (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -313,6 +352,10 @@
g_value_set_string (value,
gdm_option_widget_get_label_text (self));
break;
+ case PROP_ICON_NAME:
+ g_value_set_string (value,
+ gdm_option_widget_get_icon_name (self));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -321,8 +364,8 @@
static GObject *
gdm_option_widget_constructor (GType type,
- guint n_construct_properties,
- GObjectConstructParam *construct_properties)
+ guint n_construct_properties,
+ GObjectConstructParam *construct_properties)
{
GdmOptionWidget *option_widget;
GdmOptionWidgetClass *klass;
@@ -392,6 +435,14 @@
NULL,
(G_PARAM_READWRITE |
G_PARAM_CONSTRUCT)));
+ g_object_class_install_property (object_class,
+ PROP_ICON_NAME,
+ g_param_spec_string ("icon-name",
+ _("Icon name"),
+ _("The icon to use with the label"),
+ NULL,
+ (G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT)));
g_type_class_add_private (klass, sizeof (GdmOptionWidgetPrivate));
@@ -688,11 +739,16 @@
gtk_container_add (GTK_CONTAINER (widget),
box);
+
+ widget->priv->image = gtk_image_new ();
+ gtk_widget_set_no_show_all (widget->priv->image, TRUE);
+ gtk_box_pack_start (GTK_BOX (box), widget->priv->image, FALSE, FALSE, 0);
+
widget->priv->label = gtk_label_new ("");
gtk_label_set_use_underline (GTK_LABEL (widget->priv->label), TRUE);
gtk_label_set_use_markup (GTK_LABEL (widget->priv->label), TRUE);
gtk_widget_show (widget->priv->label);
- gtk_container_add (GTK_CONTAINER (box), widget->priv->label);
+ gtk_box_pack_start (GTK_BOX (box), widget->priv->label, FALSE, FALSE, 0);
widget->priv->items_combo_box = gtk_combo_box_new ();
g_signal_connect (widget->priv->items_combo_box,
@@ -760,6 +816,9 @@
g_return_if_fail (widget->priv != NULL);
+ g_free (widget->priv->icon_name);
+ g_free (widget->priv->label_text);
+
G_OBJECT_CLASS (gdm_option_widget_parent_class)->finalize (object);
}
Modified: trunk/gui/simple-greeter/gdm-session-option-widget.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-session-option-widget.c (original)
+++ trunk/gui/simple-greeter/gdm-session-option-widget.c Mon Feb 18 18:28:08 2008
@@ -168,6 +168,7 @@
object = g_object_new (GDM_TYPE_SESSION_OPTION_WIDGET,
"label-text", _("_Sessions:"),
+ "icon-name", "session-properties",
NULL);
return GTK_WIDGET (object);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]