Merge lp:~bratsche/ido/scale-size into lp:ido/0.3

Proposed by Cody Russell
Status: Merged
Merged at revision: 46
Proposed branch: lp:~bratsche/ido/scale-size
Merge into: lp:ido/0.3
Diff against target: 310 lines (+99/-58)
3 files modified
example/menus.c (+3/-1)
src/idoscalemenuitem.c (+93/-57)
src/idoscalemenuitem.h (+3/-0)
To merge this branch: bzr merge lp:~bratsche/ido/scale-size
Reviewer Review Type Date Requested Status
Conor Curran (community) Approve
Review via email: mp+29992@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Conor Curran (cjcurran) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'example/menus.c'
--- example/menus.c 2010-07-13 14:45:22 +0000
+++ example/menus.c 2010-07-15 13:49:44 +0000
@@ -51,7 +51,9 @@
51 menuitem = gtk_menu_item_new_with_label ("Open");51 menuitem = gtk_menu_item_new_with_label ("Open");
52 gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);52 gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
5353
54 menuitem = ido_scale_menu_item_new_with_range ("Volume", 65, 0, 100, 1);54 menuitem = ido_scale_menu_item_new_with_range ("Volume",
55 IDO_RANGE_STYLE_DEFAULT,
56 65, 0, 100, 1);
55 ido_scale_menu_item_set_style (IDO_SCALE_MENU_ITEM (menuitem), IDO_SCALE_MENU_ITEM_STYLE_IMAGE);57 ido_scale_menu_item_set_style (IDO_SCALE_MENU_ITEM (menuitem), IDO_SCALE_MENU_ITEM_STYLE_IMAGE);
56 image = ido_scale_menu_item_get_primary_image (IDO_SCALE_MENU_ITEM (menuitem));58 image = ido_scale_menu_item_get_primary_image (IDO_SCALE_MENU_ITEM (menuitem));
57 gtk_image_set_from_stock (GTK_IMAGE (image), GTK_STOCK_NEW, GTK_ICON_SIZE_MENU);59 gtk_image_set_from_stock (GTK_IMAGE (image), GTK_STOCK_NEW, GTK_ICON_SIZE_MENU);
5860
=== modified file 'src/idoscalemenuitem.c'
--- src/idoscalemenuitem.c 2010-07-13 14:45:22 +0000
+++ src/idoscalemenuitem.c 2010-07-15 13:49:44 +0000
@@ -51,6 +51,9 @@
51static void ido_scale_menu_item_notify (IdoScaleMenuItem *item,51static void ido_scale_menu_item_notify (IdoScaleMenuItem *item,
52 GParamSpec *pspec,52 GParamSpec *pspec,
53 gpointer user_data);53 gpointer user_data);
54static void update_packing (IdoScaleMenuItem *self,
55 IdoScaleMenuItemStyle style,
56 IdoScaleMenuItemStyle old_style);
5457
55struct _IdoScaleMenuItemPrivate {58struct _IdoScaleMenuItemPrivate {
56 GtkWidget *scale;59 GtkWidget *scale;
@@ -66,6 +69,7 @@
66 gboolean reverse_scroll;69 gboolean reverse_scroll;
67 gboolean grabbed;70 gboolean grabbed;
68 IdoScaleMenuItemStyle style;71 IdoScaleMenuItemStyle style;
72 IdoRangeStyle range_style;
69};73};
7074
71enum {75enum {
@@ -78,7 +82,8 @@
78 PROP_0,82 PROP_0,
79 PROP_ADJUSTMENT,83 PROP_ADJUSTMENT,
80 PROP_REVERSE_SCROLL_EVENTS,84 PROP_REVERSE_SCROLL_EVENTS,
81 PROP_STYLE85 PROP_STYLE,
86 PROP_RANGE_STYLE
82};87};
8388
84static guint signals[LAST_SIGNAL] = { 0 };89static guint signals[LAST_SIGNAL] = { 0 };
@@ -193,32 +198,87 @@
193}198}
194199
195static void200static void
201ido_scale_menu_item_constructed (GObject *object)
202{
203 IdoScaleMenuItem *self = IDO_SCALE_MENU_ITEM (object);
204 IdoScaleMenuItemPrivate *priv = GET_PRIVATE (self);
205 GtkAdjustment *adj = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 100.0, 1.0, 10.0, 0.0));
206 IdoRangeStyle range_style;
207 GtkWidget *hbox;
208
209 priv->adjustment = NULL;
210
211 g_object_get (self,
212 "range-style", &range_style,
213 NULL);
214
215 priv->scale = ido_range_new (adj, range_style);
216 g_object_ref (priv->scale);
217 gtk_scale_set_draw_value (GTK_SCALE (priv->scale), FALSE);
218
219 hbox = gtk_hbox_new (FALSE, 0);
220
221 priv->primary_image = gtk_image_new ();
222 g_signal_connect (priv->primary_image, "notify",
223 G_CALLBACK (ido_scale_menu_item_primary_image_notify),
224 self);
225
226 priv->secondary_image = gtk_image_new ();
227 g_signal_connect (priv->secondary_image, "notify",
228 G_CALLBACK (ido_scale_menu_item_secondary_image_notify),
229 self);
230
231 priv->primary_label = gtk_label_new ("");
232 priv->secondary_label = gtk_label_new ("");
233
234 priv->hbox = hbox;
235
236 update_packing (self, priv->style, priv->style);
237
238 g_signal_connect (self, "notify",
239 G_CALLBACK (ido_scale_menu_item_notify),
240 NULL);
241
242 gtk_container_add (GTK_CONTAINER (self), hbox);
243}
244
245static void
196ido_scale_menu_item_class_init (IdoScaleMenuItemClass *item_class)246ido_scale_menu_item_class_init (IdoScaleMenuItemClass *item_class)
197{247{
198 GObjectClass *gobject_class = G_OBJECT_CLASS (item_class);248 GObjectClass *gobject_class = G_OBJECT_CLASS (item_class);
199 GtkObjectClass *object_class = GTK_OBJECT_CLASS (item_class);249 GtkObjectClass *object_class = GTK_OBJECT_CLASS (item_class);
200 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (item_class);250 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (item_class);
201251
202 widget_class->button_press_event = ido_scale_menu_item_button_press_event;252 widget_class->button_press_event = ido_scale_menu_item_button_press_event;
203 widget_class->button_release_event = ido_scale_menu_item_button_release_event;253 widget_class->button_release_event = ido_scale_menu_item_button_release_event;
204 widget_class->motion_notify_event = ido_scale_menu_item_motion_notify_event;254 widget_class->motion_notify_event = ido_scale_menu_item_motion_notify_event;
205 widget_class->scroll_event = ido_scale_menu_item_scroll_event;255 widget_class->scroll_event = ido_scale_menu_item_scroll_event;
206 widget_class->state_changed = ido_scale_menu_item_state_changed;256 widget_class->state_changed = ido_scale_menu_item_state_changed;
207 widget_class->size_allocate = ido_scale_menu_item_size_allocate;257 widget_class->size_allocate = ido_scale_menu_item_size_allocate;
208258
259 gobject_class->constructed = ido_scale_menu_item_constructed;
209 gobject_class->set_property = ido_scale_menu_item_set_property;260 gobject_class->set_property = ido_scale_menu_item_set_property;
210 gobject_class->get_property = ido_scale_menu_item_get_property;261 gobject_class->get_property = ido_scale_menu_item_get_property;
211262
212 g_object_class_install_property (gobject_class,263 g_object_class_install_property (gobject_class,
213 PROP_STYLE,264 PROP_STYLE,
214 g_param_spec_enum ("range-style",265 g_param_spec_enum ("accessory-style",
215 "Range style",266 "Style of primary/secondary widgets",
216 "The style of the range",267 "The style of the primary/secondary widgets",
217 IDO_TYPE_SCALE_MENU_ITEM_STYLE,268 IDO_TYPE_SCALE_MENU_ITEM_STYLE,
218 IDO_SCALE_MENU_ITEM_STYLE_NONE,269 IDO_SCALE_MENU_ITEM_STYLE_NONE,
219 G_PARAM_READWRITE));270 G_PARAM_READWRITE));
220271
221 g_object_class_install_property (gobject_class,272 g_object_class_install_property (gobject_class,
273 PROP_RANGE_STYLE,
274 g_param_spec_enum ("range-style",
275 "Range style",
276 "Style of the range",
277 IDO_TYPE_RANGE_STYLE,
278 IDO_RANGE_STYLE_DEFAULT,
279 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
280
281 g_object_class_install_property (gobject_class,
222 PROP_ADJUSTMENT,282 PROP_ADJUSTMENT,
223 g_param_spec_object ("adjustment",283 g_param_spec_object ("adjustment",
224 "Adjustment",284 "Adjustment",
@@ -259,11 +319,6 @@
259 IdoScaleMenuItemPrivate *priv = GET_PRIVATE (self);319 IdoScaleMenuItemPrivate *priv = GET_PRIVATE (self);
260 GtkContainer *container = GTK_CONTAINER (priv->hbox);320 GtkContainer *container = GTK_CONTAINER (priv->hbox);
261321
262 g_print ("%s %s %s\n",
263 G_OBJECT_TYPE_NAME (priv->primary_image),
264 G_OBJECT_TYPE_NAME (priv->scale),
265 G_OBJECT_TYPE_NAME (priv->secondary_image));
266
267 if (style != old_style)322 if (style != old_style)
268 {323 {
269 switch (old_style)324 switch (old_style)
@@ -319,40 +374,6 @@
319static void374static void
320ido_scale_menu_item_init (IdoScaleMenuItem *self)375ido_scale_menu_item_init (IdoScaleMenuItem *self)
321{376{
322 IdoScaleMenuItemPrivate *priv = GET_PRIVATE (self);
323 GtkWidget *hbox;
324 GtkAdjustment *adj = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 100.0, 1.0, 10.0, 0.0));
325
326 priv->adjustment = NULL;
327
328 priv->scale = ido_range_new (adj, IDO_RANGE_STYLE_SMALL);
329 g_object_ref (priv->scale);
330 gtk_scale_set_draw_value (GTK_SCALE (priv->scale), FALSE);
331
332 hbox = gtk_hbox_new (FALSE, 0);
333
334 priv->primary_image = gtk_image_new ();
335 g_signal_connect (priv->primary_image, "notify",
336 G_CALLBACK (ido_scale_menu_item_primary_image_notify),
337 self);
338
339 priv->secondary_image = gtk_image_new ();
340 g_signal_connect (priv->secondary_image, "notify",
341 G_CALLBACK (ido_scale_menu_item_secondary_image_notify),
342 self);
343
344 priv->primary_label = gtk_label_new ("");
345 priv->secondary_label = gtk_label_new ("");
346
347 priv->hbox = hbox;
348
349 update_packing (self, priv->style, priv->style);
350
351 g_signal_connect (self, "notify",
352 G_CALLBACK (ido_scale_menu_item_notify),
353 NULL);
354
355 gtk_container_add (GTK_CONTAINER (self), hbox);
356}377}
357378
358static void379static void
@@ -378,6 +399,10 @@
378 ido_scale_menu_item_set_style (menu_item, g_value_get_enum (value));399 ido_scale_menu_item_set_style (menu_item, g_value_get_enum (value));
379 break;400 break;
380401
402 case PROP_RANGE_STYLE:
403 priv->range_style = g_value_get_enum (value);
404 break;
405
381 default:406 default:
382 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);407 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
383 break;408 break;
@@ -392,11 +417,12 @@
392{417{
393 IdoScaleMenuItem *menu_item = IDO_SCALE_MENU_ITEM (object);418 IdoScaleMenuItem *menu_item = IDO_SCALE_MENU_ITEM (object);
394 IdoScaleMenuItemPrivate *priv = GET_PRIVATE (menu_item);419 IdoScaleMenuItemPrivate *priv = GET_PRIVATE (menu_item);
395 GtkAdjustment *adjustment = gtk_range_get_adjustment (GTK_RANGE (priv->scale));420 GtkAdjustment *adjustment;
396421
397 switch (prop_id)422 switch (prop_id)
398 {423 {
399 case PROP_ADJUSTMENT:424 case PROP_ADJUSTMENT:
425 adjustment = gtk_range_get_adjustment (GTK_RANGE (priv->scale));
400 g_value_set_object (value, adjustment);426 g_value_set_object (value, adjustment);
401 break;427 break;
402428
@@ -404,6 +430,10 @@
404 g_value_set_boolean (value, priv->reverse_scroll);430 g_value_set_boolean (value, priv->reverse_scroll);
405 break;431 break;
406432
433 case PROP_RANGE_STYLE:
434 g_value_set_enum (value, priv->range_style);
435 break;
436
407 default:437 default:
408 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);438 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
409 break;439 break;
@@ -607,6 +637,7 @@
607/**637/**
608 * ido_scale_menu_item_new:638 * ido_scale_menu_item_new:
609 * @label: the text of the new menu item.639 * @label: the text of the new menu item.
640 * @size: The size style of the range.
610 * @adjustment: A #GtkAdjustment describing the slider value.641 * @adjustment: A #GtkAdjustment describing the slider value.
611 * @returns: a new #IdoScaleMenuItem.642 * @returns: a new #IdoScaleMenuItem.
612 *643 *
@@ -614,16 +645,19 @@
614 **/645 **/
615GtkWidget*646GtkWidget*
616ido_scale_menu_item_new (const gchar *label,647ido_scale_menu_item_new (const gchar *label,
648 IdoRangeStyle range_style,
617 GtkAdjustment *adjustment)649 GtkAdjustment *adjustment)
618{650{
619 return g_object_new (IDO_TYPE_SCALE_MENU_ITEM,651 return g_object_new (IDO_TYPE_SCALE_MENU_ITEM,
620 "adjustment", adjustment,652 "adjustment", adjustment,
653 "range-style", range_style,
621 NULL);654 NULL);
622}655}
623656
624/**657/**
625 * ido_scale_menu_item_new_with_label:658 * ido_scale_menu_item_new_with_label:
626 * @label: the text of the menu item.659 * @label: the text of the menu item.
660 * @size: The size style of the range.
627 * @min: The minimum value of the slider.661 * @min: The minimum value of the slider.
628 * @max: The maximum value of the slider.662 * @max: The maximum value of the slider.
629 * @step: The step increment of the slider.663 * @step: The step increment of the slider.
@@ -632,17 +666,19 @@
632 * Creates a new #IdoScaleMenuItem containing a label.666 * Creates a new #IdoScaleMenuItem containing a label.
633 **/667 **/
634GtkWidget*668GtkWidget*
635ido_scale_menu_item_new_with_range (const gchar *label,669ido_scale_menu_item_new_with_range (const gchar *label,
636 gdouble value,670 IdoRangeStyle range_style,
637 gdouble min,671 gdouble value,
638 gdouble max,672 gdouble min,
639 gdouble step)673 gdouble max,
674 gdouble step)
640{675{
641 GtkObject *adjustment = gtk_adjustment_new (value, min, max, step, 10 * step, 0);676 GtkObject *adjustment = gtk_adjustment_new (value, min, max, step, 10 * step, 0);
642677
643 return g_object_new (IDO_TYPE_SCALE_MENU_ITEM,678 return g_object_new (IDO_TYPE_SCALE_MENU_ITEM,
644 "label", label,679 "label", label,
645 "adjustment", adjustment,680 "range-style", range_style,
681 "adjustment", adjustment,
646 NULL);682 NULL);
647}683}
648684
649685
=== modified file 'src/idoscalemenuitem.h'
--- src/idoscalemenuitem.h 2010-07-13 14:45:22 +0000
+++ src/idoscalemenuitem.h 2010-07-15 13:49:44 +0000
@@ -27,6 +27,7 @@
27#define __IDO_SCALE_MENU_ITEM_H__27#define __IDO_SCALE_MENU_ITEM_H__
2828
29#include <gtk/gtkmenuitem.h>29#include <gtk/gtkmenuitem.h>
30#include "idorange.h"
3031
31G_BEGIN_DECLS32G_BEGIN_DECLS
3233
@@ -63,8 +64,10 @@
6364
64GType ido_scale_menu_item_get_type (void) G_GNUC_CONST;65GType ido_scale_menu_item_get_type (void) G_GNUC_CONST;
65GtkWidget *ido_scale_menu_item_new (const gchar *label,66GtkWidget *ido_scale_menu_item_new (const gchar *label,
67 IdoRangeStyle size,
66 GtkAdjustment *adjustment);68 GtkAdjustment *adjustment);
67GtkWidget *ido_scale_menu_item_new_with_range (const gchar *label,69GtkWidget *ido_scale_menu_item_new_with_range (const gchar *label,
70 IdoRangeStyle size,
68 gdouble value,71 gdouble value,
69 gdouble min,72 gdouble min,
70 gdouble max,73 gdouble max,

Subscribers

People subscribed via source and target branches

to all changes: