Mercurial > emacs
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); |