[network-manager-netbook] Update copy+pasted nbtk-gtk-light-switch.c
- From: Tambet Ingo <tambeti src gnome org>
- To: svn-commits-list gnome org
- Subject: [network-manager-netbook] Update copy+pasted nbtk-gtk-light-switch.c
- Date: Tue, 28 Jul 2009 14:06:16 +0000 (UTC)
commit 72b22ea3800fe2fa387c35010ceb5bf80fb0ee09
Author: Tambet Ingo <tambet gmail com>
Date: Tue Jul 28 16:58:48 2009 +0300
Update copy+pasted nbtk-gtk-light-switch.c
src/nbtk-gtk-light-switch.c | 96 +++++++++++++++++++++++++++----------------
1 files changed, 60 insertions(+), 36 deletions(-)
---
diff --git a/src/nbtk-gtk-light-switch.c b/src/nbtk-gtk-light-switch.c
index 0d45418..60edee4 100644
--- a/src/nbtk-gtk-light-switch.c
+++ b/src/nbtk-gtk-light-switch.c
@@ -121,9 +121,11 @@ draw (GtkWidget *lightswitch,
GtkStyle *style;
PangoLayout *layout;
PangoContext *context;
+ GtkStateType state_type;
priv = NBTK_GTK_LIGHT_SWITCH_GET_PRIVATE (lightswitch);
style = lightswitch->style;
+ state_type = GTK_WIDGET_STATE (lightswitch);
on_label_x = (priv->trough_width / 5) * 0.75;
off_label_x = (priv->trough_width / 8) * 5;
@@ -131,54 +133,76 @@ draw (GtkWidget *lightswitch,
/* draw the trough */
gtk_paint_box (style,
lightswitch->window,
- GTK_STATE_SELECTED,
+ (priv->active) ? GTK_STATE_SELECTED : state_type,
GTK_SHADOW_IN,
NULL,
NULL,
- NULL,
- 0,
+ "light-switch-trough",
0,
- (priv->trough_width / 2),
- priv->switch_height);
- gtk_paint_box (style,
- lightswitch->window,
- GTK_STATE_NORMAL,
- GTK_SHADOW_IN,
- NULL,
- NULL,
- NULL,
- (priv->trough_width / 2),
0,
- (priv->trough_width / 2),
+ (priv->trough_width),
priv->switch_height);
+ if (state_type == GTK_STATE_INSENSITIVE)
+ {
+ context = gdk_pango_context_get ();
+ layout = pango_layout_new (context);
+ g_object_unref (context);
+
+ pango_layout_set_font_description (layout, style->font_desc);
+ pango_layout_set_text (layout, _("Unavailable"), -1);
+ pango_layout_get_size (layout, &label_width, &label_height);
+ gtk_paint_layout (style, lightswitch->window, state_type, FALSE,
+ NULL, lightswitch, "lighswitch-label",
+ (priv->trough_width - (label_width / PANGO_SCALE)) / 2,
+ (priv->switch_height - (label_height / PANGO_SCALE)) / 2,
+ layout);
+ g_object_unref (layout);
+ return;
+ }
+
/* Draw the first label; "On" */
context = gdk_pango_context_get ();
layout = pango_layout_new (context);
g_object_unref (context);
pango_layout_set_font_description (layout,
style->font_desc);
- pango_layout_set_text (layout, _ ("On"), -1);
+ /* TRANSLATORS: If this string takes more than four or five characters in
+ * your language, please use the MEDIUM VERTICAL BAR unicode character
+ * instead */
+ pango_layout_set_text (layout, _("On"), -1);
pango_layout_get_size (layout,
&label_width,
&label_height);
- gdk_draw_layout (lightswitch->window,
- style->fg_gc[GTK_STATE_SELECTED],
- on_label_x,
- (priv->switch_height
- - (label_height / PANGO_SCALE)) / 2,
- layout);
+ gtk_paint_layout (style,
+ lightswitch->window,
+ (priv->active) ? GTK_STATE_SELECTED : GTK_STATE_NORMAL,
+ FALSE,
+ NULL,
+ (GtkWidget*) lightswitch,
+ "lightswitch-label",
+ on_label_x,
+ (priv->switch_height
+ - (label_height / PANGO_SCALE)) / 2,
+ layout);
/* Draw the second label; "Off" */
- pango_layout_set_text (layout, _ ("Off"), -1);
+ /* TRANSLATORS: If this string takes more than four or five characters in
+ * your language, please use the ROUND CIRCLE unicode character instead */
+ pango_layout_set_text (layout, _("Off"), -1);
pango_layout_get_size (layout,
&label_width,
&label_height);
- gdk_draw_layout (lightswitch->window,
- style->fg_gc[GTK_STATE_NORMAL],
- off_label_x,
- (priv->switch_height
- - (label_height / PANGO_SCALE)) / 2,
- layout);
+ gtk_paint_layout (style,
+ lightswitch->window,
+ (priv->active) ? GTK_STATE_SELECTED : GTK_STATE_NORMAL,
+ FALSE,
+ NULL,
+ (GtkWidget*) lightswitch,
+ "lightswitch-label",
+ off_label_x,
+ (priv->switch_height
+ - (label_height / PANGO_SCALE)) / 2,
+ layout);
/* draw the switch itself */
gtk_paint_box (style,
@@ -187,11 +211,11 @@ draw (GtkWidget *lightswitch,
GTK_SHADOW_OUT,
NULL,
NULL,
- NULL,
- priv->x,
- 0,
- priv->switch_width,
- priv->switch_height);
+ "light-switch-handle",
+ priv->x + style->xthickness,
+ style->ythickness,
+ priv->switch_width - style->xthickness * 2,
+ priv->switch_height - style->ythickness * 2);
g_object_unref (layout);
}
@@ -217,16 +241,16 @@ nbtk_gtk_light_switch_style_set (GtkWidget *lightswitch,
gint on_width, on_height;
layout = gtk_widget_create_pango_layout (GTK_WIDGET (lightswitch), NULL);
- pango_layout_set_text (layout, _ ("Off"), -1);
+ pango_layout_set_text (layout, _("Off"), -1);
pango_layout_get_pixel_size (layout, &off_width, &off_height);
- pango_layout_set_text (layout, _ ("On"), -1);
+ pango_layout_set_text (layout, _("On"), -1);
pango_layout_get_pixel_size (layout, &on_width, &on_height);
g_object_unref (layout);
label_width = MAX (off_width, on_width);
label_height = MAX (off_height, on_height);
- priv->trough_width = label_width * 5;
+ priv->trough_width = MAX (label_width * 5, 80);
priv->switch_width = (priv->trough_width / 2) * 1.1;
priv->switch_height = (label_height * 2) * 1.1;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]