comparison src/gtkutil.c @ 59084:6a0b8f23858b

* gtkutil.c (update_frame_tool_bar): Make the value of tool-bar-button-margin control margins of images in tool bar.
author Jan Djärv <jan.h.d@swipnet.se>
date Sat, 25 Dec 2004 20:46:26 +0000
parents f8cddae7d959
children 0096c58ce34a
comparison
equal deleted inserted replaced
59083:4295cf593352 59084:6a0b8f23858b
3354 int i; 3354 int i;
3355 GtkRequisition old_req, new_req; 3355 GtkRequisition old_req, new_req;
3356 GList *icon_list; 3356 GList *icon_list;
3357 GList *iter; 3357 GList *iter;
3358 struct x_output *x = f->output_data.x; 3358 struct x_output *x = f->output_data.x;
3359 int hmargin, vmargin;
3359 3360
3360 if (! FRAME_GTK_WIDGET (f)) 3361 if (! FRAME_GTK_WIDGET (f))
3361 return; 3362 return;
3362 3363
3363 BLOCK_INPUT; 3364 BLOCK_INPUT;
3364 3365
3366 if (INTEGERP (Vtool_bar_button_margin)
3367 && XINT (Vtool_bar_button_margin) > 0)
3368 {
3369 hmargin = XFASTINT (Vtool_bar_button_margin);
3370 vmargin = XFASTINT (Vtool_bar_button_margin);
3371 }
3372 else if (CONSP (Vtool_bar_button_margin))
3373 {
3374 if (INTEGERP (XCAR (Vtool_bar_button_margin))
3375 && XINT (XCAR (Vtool_bar_button_margin)) > 0)
3376 hmargin = XFASTINT (XCAR (Vtool_bar_button_margin));
3377
3378 if (INTEGERP (XCDR (Vtool_bar_button_margin))
3379 && XINT (XCDR (Vtool_bar_button_margin)) > 0)
3380 vmargin = XFASTINT (XCDR (Vtool_bar_button_margin));
3381 }
3382
3383 /* The natural size (i.e. when GTK uses 0 as margin) looks best,
3384 so take DEFAULT_TOOL_BAR_BUTTON_MARGIN to mean "default for GTK",
3385 i.e. zero. This means that margins less than
3386 DEFAULT_TOOL_BAR_BUTTON_MARGIN has no effect. */
3387 hmargin = max (0, hmargin - DEFAULT_TOOL_BAR_BUTTON_MARGIN);
3388 vmargin = max (0, vmargin - DEFAULT_TOOL_BAR_BUTTON_MARGIN);
3389
3365 if (! x->toolbar_widget) 3390 if (! x->toolbar_widget)
3366 xg_create_tool_bar (f); 3391 xg_create_tool_bar (f);
3367 3392
3368 gtk_widget_size_request (x->toolbar_widget, &old_req); 3393 gtk_widget_size_request (x->toolbar_widget, &old_req);
3369 3394
3422 } 3447 }
3423 3448
3424 if (! wicon) 3449 if (! wicon)
3425 { 3450 {
3426 GtkWidget *w = xg_get_image_for_pixmap (f, img, x->widget, NULL); 3451 GtkWidget *w = xg_get_image_for_pixmap (f, img, x->widget, NULL);
3452
3453 gtk_misc_set_padding (GTK_MISC (w), hmargin, vmargin);
3427 3454
3428 gtk_toolbar_append_item (GTK_TOOLBAR (x->toolbar_widget), 3455 gtk_toolbar_append_item (GTK_TOOLBAR (x->toolbar_widget),
3429 0, 0, 0, 3456 0, 0, 0,
3430 w, 3457 w,
3431 GTK_SIGNAL_FUNC (xg_tool_bar_callback), 3458 GTK_SIGNAL_FUNC (xg_tool_bar_callback),
3478 GtkImage *wimage = GTK_IMAGE (chlist->data); 3505 GtkImage *wimage = GTK_IMAGE (chlist->data);
3479 Pixmap old_img = (Pixmap)g_object_get_data (G_OBJECT (wimage), 3506 Pixmap old_img = (Pixmap)g_object_get_data (G_OBJECT (wimage),
3480 XG_TOOL_BAR_IMAGE_DATA); 3507 XG_TOOL_BAR_IMAGE_DATA);
3481 g_list_free (chlist); 3508 g_list_free (chlist);
3482 3509
3510 gtk_misc_set_padding (GTK_MISC (wimage), hmargin, vmargin);
3511
3483 if (old_img != img->pixmap) 3512 if (old_img != img->pixmap)
3484 (void) xg_get_image_for_pixmap (f, img, x->widget, wimage); 3513 (void) xg_get_image_for_pixmap (f, img, x->widget, wimage);
3485 3514
3486 g_object_set_data (G_OBJECT (wimage), XG_TOOL_BAR_IMAGE_DATA, 3515 g_object_set_data (G_OBJECT (wimage), XG_TOOL_BAR_IMAGE_DATA,
3487 (gpointer)img->pixmap); 3516 (gpointer)img->pixmap);