32
32
#include <gtk/gtk.h>
33
33
#include <string.h>
35
#define EOG_THUMB_NAV_GET_PRIVATE(object) \
36
(G_TYPE_INSTANCE_GET_PRIVATE ((object), EOG_TYPE_THUMB_NAV, EogThumbNavPrivate))
35
#define EOG_THUMB_NAV_GET_PRIVATE(object) \
36
(G_TYPE_INSTANCE_GET_PRIVATE ((object), EOG_TYPE_THUMB_NAV, EogThumbNavPrivate))
38
38
G_DEFINE_TYPE (EogThumbNav, eog_thumb_nav, GTK_TYPE_HBOX);
40
40
#define EOG_THUMB_NAV_SCROLL_INC 20
41
41
#define EOG_THUMB_NAV_SCROLL_MOVE 20
42
#define EOG_THUMB_NAV_SCROLL_TIMEOUT 20
42
#define EOG_THUMB_NAV_SCROLL_TIMEOUT 20
46
PROP_SHOW_BUTTONS = 1,
46
PROP_SHOW_BUTTONS = 1,
51
51
struct _EogThumbNavPrivate {
52
gboolean show_buttons;
52
gboolean show_buttons;
57
GtkWidget *button_left;
58
GtkWidget *button_right;
59
GtkWidget *button_down;
60
GtkWidget *button_left;
61
GtkWidget *button_right;
65
71
eog_thumb_nav_scroll_event (GtkWidget *widget, GdkEventScroll *event, gpointer user_data)
67
EogThumbNav *nav = EOG_THUMB_NAV (user_data);
68
gint inc = EOG_THUMB_NAV_SCROLL_INC * 3;
70
switch (event->direction) {
77
case GDK_SCROLL_RIGHT:
81
g_assert_not_reached ();
86
nav->priv->adj->value = MAX (0, nav->priv->adj->value + inc);
88
nav->priv->adj->value = MIN (nav->priv->adj->upper - nav->priv->adj->page_size, nav->priv->adj->value + inc);
90
gtk_adjustment_value_changed (nav->priv->adj);
96
eog_thumb_nav_adj_changed (GtkAdjustment *adj, gpointer user_data)
99
EogThumbNavPrivate *priv;
102
nav = EOG_THUMB_NAV (user_data);
103
priv = EOG_THUMB_NAV_GET_PRIVATE (nav);
104
ltr = gtk_widget_get_direction (priv->sw) == GTK_TEXT_DIR_LTR;
106
gtk_widget_set_sensitive (ltr ? priv->button_right : priv->button_left,
107
adj->value < adj->upper - adj->page_size);
111
eog_thumb_nav_adj_value_changed (GtkAdjustment *adj, gpointer user_data)
114
EogThumbNavPrivate *priv;
117
nav = EOG_THUMB_NAV (user_data);
118
priv = EOG_THUMB_NAV_GET_PRIVATE (nav);
119
ltr = gtk_widget_get_direction (priv->sw) == GTK_TEXT_DIR_LTR;
121
gtk_widget_set_sensitive (ltr ? priv->button_left : priv->button_right, adj->value > 0);
123
gtk_widget_set_sensitive (ltr ? priv->button_right : priv->button_left,
124
adj->value < adj->upper - adj->page_size);
73
EogThumbNav *nav = EOG_THUMB_NAV (user_data);
74
gint inc = EOG_THUMB_NAV_SCROLL_INC * 3;
75
gdouble value, upper, page_size;
77
nav->priv->adj = nav->priv->vertical ? nav->priv->vadj : nav->priv->hadj;
79
switch (event->direction) {
86
case GDK_SCROLL_RIGHT:
90
g_assert_not_reached ();
94
value = gtk_adjustment_get_value (nav->priv->adj);
96
gtk_adjustment_set_value (nav->priv->adj, MAX (0, value + inc));
98
upper = gtk_adjustment_get_upper (nav->priv->adj);
99
page_size = gtk_adjustment_get_page_size (nav->priv->adj);
100
gtk_adjustment_set_value (nav->priv->adj, MIN (upper - page_size, value + inc));
103
gtk_adjustment_value_changed (nav->priv->adj);
109
eog_thumb_nav_vadj_changed (GtkAdjustment *vadj, gpointer user_data)
112
EogThumbNavPrivate *priv;
114
gdouble value, upper, page_size;
116
nav = EOG_THUMB_NAV (user_data);
117
priv = EOG_THUMB_NAV_GET_PRIVATE (nav);
118
ltr = gtk_widget_get_direction (priv->sw) == GTK_TEXT_DIR_LTR;
123
"page_size", &page_size,
125
gtk_widget_set_sensitive (priv->button_up, value > 0);
127
gtk_widget_set_sensitive (priv->button_down,
128
value < upper - page_size);
132
eog_thumb_nav_hadj_changed (GtkAdjustment *hadj, gpointer user_data)
135
EogThumbNavPrivate *priv;
137
gdouble value, upper, page_size;
139
nav = EOG_THUMB_NAV (user_data);
140
priv = EOG_THUMB_NAV_GET_PRIVATE (nav);
141
ltr = gtk_widget_get_direction (priv->sw) == GTK_TEXT_DIR_LTR;
146
"page_size", &page_size,
149
gtk_widget_set_sensitive (ltr ? priv->button_right : priv->button_left,
150
value < upper - page_size);
154
eog_thumb_nav_vadj_value_changed (GtkAdjustment *vadj, gpointer user_data)
157
EogThumbNavPrivate *priv;
159
gdouble value, upper, page_size;
161
nav = EOG_THUMB_NAV (user_data);
162
priv = EOG_THUMB_NAV_GET_PRIVATE (nav);
163
ltr = gtk_widget_get_direction (priv->sw) == GTK_TEXT_DIR_LTR;
168
"page_size", &page_size,
171
gtk_widget_set_sensitive (priv->button_up, value > 0);
173
gtk_widget_set_sensitive (priv->button_down,
174
value < upper - page_size);
178
eog_thumb_nav_hadj_value_changed (GtkAdjustment *hadj, gpointer user_data)
181
EogThumbNavPrivate *priv;
183
gdouble value, upper, page_size;
185
nav = EOG_THUMB_NAV (user_data);
186
priv = EOG_THUMB_NAV_GET_PRIVATE (nav);
187
ltr = gtk_widget_get_direction (priv->sw) == GTK_TEXT_DIR_LTR;
192
"page_size", &page_size,
195
gtk_widget_set_sensitive (ltr ? priv->button_left : priv->button_right, value > 0);
197
gtk_widget_set_sensitive (ltr ? priv->button_right : priv->button_left,
198
value < upper - page_size);
128
202
eog_thumb_nav_scroll_step (gpointer user_data)
130
EogThumbNav *nav = EOG_THUMB_NAV (user_data);
133
if (nav->priv->scroll_pos < 10)
134
delta = EOG_THUMB_NAV_SCROLL_INC;
135
else if (nav->priv->scroll_pos < 20)
136
delta = EOG_THUMB_NAV_SCROLL_INC * 2;
137
else if (nav->priv->scroll_pos < 30)
138
delta = EOG_THUMB_NAV_SCROLL_INC * 2 + 5;
140
delta = EOG_THUMB_NAV_SCROLL_INC * 2 + 12;
142
if (!nav->priv->scroll_dir)
145
if ((gint) (nav->priv->adj->value + (gdouble) delta) >= 0 &&
146
(gint) (nav->priv->adj->value + (gdouble) delta) <= nav->priv->adj->upper - nav->priv->adj->page_size) {
147
nav->priv->adj->value += (gdouble) delta;
148
nav->priv->scroll_pos++;
149
gtk_adjustment_value_changed (nav->priv->adj);
152
nav->priv->adj->value = nav->priv->adj->upper - nav->priv->adj->page_size;
154
nav->priv->adj->value = 0;
156
nav->priv->scroll_pos = 0;
158
gtk_adjustment_value_changed (nav->priv->adj);
204
EogThumbNav *nav = EOG_THUMB_NAV (user_data);
206
gdouble value, upper, page_size;
208
if (nav->priv->scroll_pos < 10)
209
delta = EOG_THUMB_NAV_SCROLL_INC;
210
else if (nav->priv->scroll_pos < 20)
211
delta = EOG_THUMB_NAV_SCROLL_INC * 2;
212
else if (nav->priv->scroll_pos < 30)
213
delta = EOG_THUMB_NAV_SCROLL_INC * 2 + 5;
215
delta = EOG_THUMB_NAV_SCROLL_INC * 2 + 12;
217
if (!nav->priv->scroll_dir)
220
g_object_get (nav->priv->adj,
223
"page_size", &page_size,
226
if ((gint) (value + (gdouble) delta) >= 0 &&
227
(gint) (value + (gdouble) delta) <= upper - page_size) {
228
gtk_adjustment_set_value (nav->priv->adj, value + (gdouble) delta);
229
nav->priv->scroll_pos++;
230
gtk_adjustment_value_changed (nav->priv->adj);
233
gtk_adjustment_set_value (nav->priv->adj, upper - page_size);
235
gtk_adjustment_set_value (nav->priv->adj, 0);
237
nav->priv->scroll_pos = 0;
239
gtk_adjustment_value_changed (nav->priv->adj);
167
248
eog_thumb_nav_button_clicked (GtkButton *button, EogThumbNav *nav)
169
nav->priv->scroll_pos = 0;
171
nav->priv->scroll_dir = gtk_widget_get_direction (GTK_WIDGET (button)) == GTK_TEXT_DIR_LTR ?
172
GTK_WIDGET (button) == nav->priv->button_right :
173
GTK_WIDGET (button) == nav->priv->button_left;
175
eog_thumb_nav_scroll_step (nav);
250
nav->priv->scroll_pos = 0;
252
if ((GTK_WIDGET (button) == nav->priv->button_right) ||
253
(GTK_WIDGET (button) == nav->priv->button_left))
255
nav->priv->scroll_dir = gtk_widget_get_direction (GTK_WIDGET (button)) == GTK_TEXT_DIR_LTR ?
256
GTK_WIDGET (button) == nav->priv->button_right :
257
GTK_WIDGET (button) == nav->priv->button_left;
259
nav->priv->scroll_dir = (GTK_WIDGET (button) == nav->priv->button_down);
262
nav->priv->adj = ((GTK_WIDGET (button) == nav->priv->button_right) ||
263
(GTK_WIDGET (button) == nav->priv->button_left)) ? nav->priv->hadj : nav->priv->vadj;
265
eog_thumb_nav_scroll_step (nav);
179
269
eog_thumb_nav_start_scroll (GtkButton *button, EogThumbNav *nav)
181
nav->priv->scroll_dir = gtk_widget_get_direction (GTK_WIDGET (button)) == GTK_TEXT_DIR_LTR ?
182
GTK_WIDGET (button) == nav->priv->button_right :
183
GTK_WIDGET (button) == nav->priv->button_left;
185
nav->priv->scroll_id = g_timeout_add (EOG_THUMB_NAV_SCROLL_TIMEOUT,
186
eog_thumb_nav_scroll_step,
272
if ((GTK_WIDGET (button) == nav->priv->button_right) ||
273
(GTK_WIDGET (button) == nav->priv->button_left))
275
nav->priv->scroll_dir = gtk_widget_get_direction (GTK_WIDGET (button)) == GTK_TEXT_DIR_LTR ?
276
GTK_WIDGET (button) == nav->priv->button_right :
277
GTK_WIDGET (button) == nav->priv->button_left;
279
nav->priv->scroll_dir = (GTK_WIDGET (button) == nav->priv->button_down);
282
nav->priv->adj = ((GTK_WIDGET (button) == nav->priv->button_right) ||
283
(GTK_WIDGET (button) == nav->priv->button_left)) ? nav->priv->hadj : nav->priv->vadj;
285
nav->priv->scroll_id = g_timeout_add (EOG_THUMB_NAV_SCROLL_TIMEOUT,
286
eog_thumb_nav_scroll_step,
191
291
eog_thumb_nav_stop_scroll (GtkButton *button, EogThumbNav *nav)
193
if (nav->priv->scroll_id > 0) {
194
g_source_remove (nav->priv->scroll_id);
195
nav->priv->scroll_id = 0;
196
nav->priv->scroll_pos = 0;
201
eog_thumb_nav_get_property (GObject *object,
206
EogThumbNav *nav = EOG_THUMB_NAV (object);
210
case PROP_SHOW_BUTTONS:
211
g_value_set_boolean (value,
212
eog_thumb_nav_get_show_buttons (nav));
215
case PROP_THUMB_VIEW:
216
g_value_set_object (value, nav->priv->thumbview);
222
eog_thumb_nav_set_property (GObject *object,
227
EogThumbNav *nav = EOG_THUMB_NAV (object);
231
case PROP_SHOW_BUTTONS:
232
eog_thumb_nav_set_show_buttons (nav,
233
g_value_get_boolean (value));
236
case PROP_THUMB_VIEW:
237
nav->priv->thumbview =
238
GTK_WIDGET (g_value_get_object (value));
293
if (nav->priv->scroll_id > 0) {
294
g_source_remove (nav->priv->scroll_id);
295
nav->priv->scroll_id = 0;
296
nav->priv->scroll_pos = 0;
301
eog_thumb_nav_get_property (GObject *object,
306
EogThumbNav *nav = EOG_THUMB_NAV (object);
310
case PROP_SHOW_BUTTONS:
311
g_value_set_boolean (value,
312
eog_thumb_nav_get_show_buttons (nav));
315
case PROP_THUMB_VIEW:
316
g_value_set_object (value, nav->priv->thumbview);
322
eog_thumb_nav_set_property (GObject *object,
327
EogThumbNav *nav = EOG_THUMB_NAV (object);
331
case PROP_SHOW_BUTTONS:
332
eog_thumb_nav_set_show_buttons (nav,
333
g_value_get_boolean (value));
336
case PROP_THUMB_VIEW:
337
nav->priv->thumbview =
338
GTK_WIDGET (g_value_get_object (value));
244
344
eog_thumb_nav_constructor (GType type,
245
guint n_construct_properties,
246
GObjectConstructParam *construct_params)
345
guint n_construct_properties,
346
GObjectConstructParam *construct_params)
249
EogThumbNavPrivate *priv;
251
object = G_OBJECT_CLASS (eog_thumb_nav_parent_class)->constructor
252
(type, n_construct_properties, construct_params);
254
priv = EOG_THUMB_NAV (object)->priv;
256
if (priv->thumbview != NULL) {
257
gtk_container_add (GTK_CONTAINER (priv->sw), priv->thumbview);
258
gtk_widget_show_all (priv->sw);
350
EogThumbNavPrivate *priv;
352
object = G_OBJECT_CLASS (eog_thumb_nav_parent_class)->constructor
353
(type, n_construct_properties, construct_params);
355
nav = EOG_THUMB_NAV (object);
356
priv = EOG_THUMB_NAV_GET_PRIVATE (object);
358
if (priv->thumbview != NULL) {
359
gtk_container_add (GTK_CONTAINER (priv->sw), priv->thumbview);
360
gtk_widget_show_all (priv->sw);
363
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->sw),
364
GTK_POLICY_AUTOMATIC,
265
371
eog_thumb_nav_class_init (EogThumbNavClass *class)
267
GObjectClass *g_object_class = (GObjectClass *) class;
269
g_object_class->constructor = eog_thumb_nav_constructor;
270
g_object_class->get_property = eog_thumb_nav_get_property;
271
g_object_class->set_property = eog_thumb_nav_set_property;
273
g_object_class_install_property (g_object_class,
275
g_param_spec_boolean ("show-buttons",
277
"Whether to show navigation buttons or not",
279
(G_PARAM_READABLE | G_PARAM_WRITABLE)));
281
g_object_class_install_property (g_object_class,
283
g_param_spec_object ("thumbview",
285
"The internal thumbnail viewer widget",
286
CHEESE_TYPE_THUMB_VIEW,
287
(G_PARAM_CONSTRUCT_ONLY |
291
g_type_class_add_private (g_object_class, sizeof (EogThumbNavPrivate));
373
GObjectClass *g_object_class = (GObjectClass *) class;
375
g_object_class->constructor = eog_thumb_nav_constructor;
376
g_object_class->get_property = eog_thumb_nav_get_property;
377
g_object_class->set_property = eog_thumb_nav_set_property;
379
g_object_class_install_property (g_object_class,
381
g_param_spec_boolean ("show-buttons",
383
"Whether to show navigation buttons or not",
385
(G_PARAM_READABLE | G_PARAM_WRITABLE)));
387
g_object_class_install_property (g_object_class,
389
g_param_spec_object ("thumbview",
391
"The internal thumbnail viewer widget",
392
CHEESE_TYPE_THUMB_VIEW,
393
(G_PARAM_CONSTRUCT_ONLY |
397
g_type_class_add_private (g_object_class, sizeof (EogThumbNavPrivate));
295
401
eog_thumb_nav_init (EogThumbNav *nav)
297
EogThumbNavPrivate *priv;
300
nav->priv = EOG_THUMB_NAV_GET_PRIVATE (nav);
304
priv->show_buttons = TRUE;
306
priv->button_left = gtk_button_new ();
307
gtk_button_set_relief (GTK_BUTTON (priv->button_left), GTK_RELIEF_NONE);
309
arrow = gtk_arrow_new (GTK_ARROW_LEFT, GTK_SHADOW_ETCHED_IN);
310
gtk_container_add (GTK_CONTAINER (priv->button_left), arrow);
312
gtk_widget_set_size_request (GTK_WIDGET (priv->button_left), 25, 0);
314
gtk_box_pack_start (GTK_BOX (nav), priv->button_left, FALSE, FALSE, 0);
316
g_signal_connect (priv->button_left,
318
G_CALLBACK (eog_thumb_nav_button_clicked),
321
g_signal_connect (priv->button_left,
323
G_CALLBACK (eog_thumb_nav_start_scroll),
326
g_signal_connect (priv->button_left,
328
G_CALLBACK (eog_thumb_nav_stop_scroll),
331
priv->sw = gtk_scrolled_window_new (NULL, NULL);
333
gtk_widget_set_name (GTK_SCROLLED_WINDOW (priv->sw)->hscrollbar,
334
"eog-image-collection-scrollbar");
336
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (priv->sw),
339
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->sw),
340
GTK_POLICY_AUTOMATIC,
343
g_signal_connect (priv->sw,
345
G_CALLBACK (eog_thumb_nav_scroll_event),
348
priv->adj = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (priv->sw));
350
g_signal_connect (priv->adj,
352
G_CALLBACK (eog_thumb_nav_adj_changed),
355
g_signal_connect (priv->adj,
357
G_CALLBACK (eog_thumb_nav_adj_value_changed),
360
gtk_box_pack_start (GTK_BOX (nav), priv->sw, TRUE, TRUE, 0);
362
priv->button_right = gtk_button_new ();
363
gtk_button_set_relief (GTK_BUTTON (priv->button_right), GTK_RELIEF_NONE);
365
arrow = gtk_arrow_new (GTK_ARROW_RIGHT, GTK_SHADOW_NONE);
366
gtk_container_add (GTK_CONTAINER (priv->button_right), arrow);
368
gtk_widget_set_size_request (GTK_WIDGET (priv->button_right), 25, 0);
370
gtk_box_pack_start (GTK_BOX (nav), priv->button_right, FALSE, FALSE, 0);
372
g_signal_connect (priv->button_right,
374
G_CALLBACK (eog_thumb_nav_button_clicked),
377
g_signal_connect (priv->button_right,
379
G_CALLBACK (eog_thumb_nav_start_scroll),
382
g_signal_connect (priv->button_right,
384
G_CALLBACK (eog_thumb_nav_stop_scroll),
387
gtk_adjustment_value_changed (priv->adj);
403
EogThumbNavPrivate *priv;
406
nav->priv = EOG_THUMB_NAV_GET_PRIVATE (nav);
410
priv->show_buttons = TRUE;
411
priv->vertical = FALSE;
413
priv->button_left = gtk_button_new ();
414
gtk_button_set_relief (GTK_BUTTON (priv->button_left), GTK_RELIEF_NONE);
416
arrow = gtk_arrow_new (GTK_ARROW_LEFT, GTK_SHADOW_ETCHED_IN);
417
gtk_container_add (GTK_CONTAINER (priv->button_left), arrow);
419
gtk_widget_set_size_request (GTK_WIDGET (priv->button_left), 25, 0);
421
g_signal_connect (priv->button_left,
423
G_CALLBACK (eog_thumb_nav_button_clicked),
426
g_signal_connect (priv->button_left,
428
G_CALLBACK (eog_thumb_nav_start_scroll),
431
g_signal_connect (priv->button_left,
433
G_CALLBACK (eog_thumb_nav_stop_scroll),
436
priv->button_left = gtk_button_new ();
437
gtk_button_set_relief (GTK_BUTTON (priv->button_left), GTK_RELIEF_NONE);
439
arrow = gtk_arrow_new (GTK_ARROW_LEFT, GTK_SHADOW_ETCHED_IN);
440
gtk_container_add (GTK_CONTAINER (priv->button_left), arrow);
442
gtk_widget_set_size_request (GTK_WIDGET (priv->button_left), 25, 0);
444
g_signal_connect (priv->button_left,
446
G_CALLBACK (eog_thumb_nav_button_clicked),
449
g_signal_connect (priv->button_left,
451
G_CALLBACK (eog_thumb_nav_start_scroll),
454
g_signal_connect (priv->button_left,
456
G_CALLBACK (eog_thumb_nav_stop_scroll),
459
priv->vbox = gtk_vbox_new (FALSE, 0);
461
priv->sw = gtk_scrolled_window_new (NULL, NULL);
463
gtk_widget_set_name (gtk_scrolled_window_get_hscrollbar (GTK_SCROLLED_WINDOW (priv->sw)),
464
"eog-image-collection-scrollbar");
466
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (priv->sw),
471
g_signal_connect (priv->sw,
473
G_CALLBACK (eog_thumb_nav_scroll_event),
476
priv->hadj = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (priv->sw));
478
g_signal_connect (priv->hadj,
480
G_CALLBACK (eog_thumb_nav_hadj_changed),
483
g_signal_connect (priv->hadj,
485
G_CALLBACK (eog_thumb_nav_hadj_value_changed),
488
priv->vadj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (priv->sw));
490
g_signal_connect (priv->vadj,
492
G_CALLBACK (eog_thumb_nav_vadj_changed),
495
g_signal_connect (priv->vadj,
497
G_CALLBACK (eog_thumb_nav_vadj_value_changed),
500
priv->button_right = gtk_button_new ();
501
gtk_button_set_relief (GTK_BUTTON (priv->button_right), GTK_RELIEF_NONE);
503
arrow = gtk_arrow_new (GTK_ARROW_RIGHT, GTK_SHADOW_NONE);
504
gtk_container_add (GTK_CONTAINER (priv->button_right), arrow);
506
gtk_widget_set_size_request (GTK_WIDGET (priv->button_right), 25, 0);
508
g_signal_connect (priv->button_right,
510
G_CALLBACK (eog_thumb_nav_button_clicked),
513
g_signal_connect (priv->button_right,
515
G_CALLBACK (eog_thumb_nav_start_scroll),
518
g_signal_connect (priv->button_right,
520
G_CALLBACK (eog_thumb_nav_stop_scroll),
523
priv->button_down = gtk_button_new ();
524
gtk_button_set_relief (GTK_BUTTON (priv->button_down), GTK_RELIEF_NONE);
526
arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE);
527
gtk_container_add (GTK_CONTAINER (priv->button_down), arrow);
529
gtk_widget_set_size_request (GTK_WIDGET (priv->button_down), 0, 25);
531
g_signal_connect (priv->button_down,
533
G_CALLBACK (eog_thumb_nav_button_clicked),
536
g_signal_connect (priv->button_down,
538
G_CALLBACK (eog_thumb_nav_start_scroll),
541
g_signal_connect (priv->button_down,
543
G_CALLBACK (eog_thumb_nav_stop_scroll),
546
priv->button_up = gtk_button_new ();
547
gtk_button_set_relief (GTK_BUTTON (priv->button_up), GTK_RELIEF_NONE);
549
arrow = gtk_arrow_new (GTK_ARROW_UP, GTK_SHADOW_NONE);
550
gtk_container_add (GTK_CONTAINER (priv->button_up), arrow);
552
gtk_widget_set_size_request (GTK_WIDGET (priv->button_up), 0, 25);
554
g_signal_connect (priv->button_up,
556
G_CALLBACK (eog_thumb_nav_button_clicked),
559
g_signal_connect (priv->button_up,
561
G_CALLBACK (eog_thumb_nav_start_scroll),
564
g_signal_connect (priv->button_up,
566
G_CALLBACK (eog_thumb_nav_stop_scroll),
570
g_object_ref (priv->button_up);
571
g_object_ref (priv->button_down);
572
gtk_box_pack_start (GTK_BOX (nav), priv->button_left, FALSE, FALSE, 0);
573
gtk_box_pack_start (GTK_BOX (nav), priv->vbox, TRUE, TRUE, 0);
574
gtk_box_pack_start (GTK_BOX (nav), priv->button_right, FALSE, FALSE, 0);
575
gtk_box_pack_start (GTK_BOX (priv->vbox), priv->sw, TRUE, TRUE, 0);
577
gtk_adjustment_value_changed (priv->hadj);