aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJan Djärv2006-01-31 15:31:50 +0000
committerJan Djärv2006-01-31 15:31:50 +0000
commitcd7cd4ac236450f97d4867c9278c2394c6688cf7 (patch)
treebbd0efa313326182cb1d28455e8892f8718b599b /src
parent176cc13b336e2ae3f0d11a3f95881ff48065677f (diff)
downloademacs-cd7cd4ac236450f97d4867c9278c2394c6688cf7.tar.gz
emacs-cd7cd4ac236450f97d4867c9278c2394c6688cf7.zip
* gtkutil.c (update_frame_tool_bar): Use new tool bar functions
(gtk_toolbar_insert) so we can have tool bars of different sizes.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/gtkutil.c64
2 files changed, 37 insertions, 32 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index c85a6e78e73..d170c6cd168 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12006-01-31 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2
3 * gtkutil.c (update_frame_tool_bar): Use new tool bar functions
4 (gtk_toolbar_insert) so we can have tool bars of different sizes.
5
12006-01-30 Luc Teirlinck <teirllm@auburn.edu> 62006-01-30 Luc Teirlinck <teirllm@auburn.edu>
2 7
3 * data.c (Flistp): Doc fix. 8 * data.c (Flistp): Doc fix.
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 065adeb4937..67288cab33f 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -3359,9 +3359,7 @@ xg_tool_bar_help_callback (w, event, client_data)
3359 Lisp_Object help, frame; 3359 Lisp_Object help, frame;
3360 3360
3361 if (! GTK_IS_BUTTON (w)) 3361 if (! GTK_IS_BUTTON (w))
3362 { 3362 return FALSE;
3363 return FALSE;
3364 }
3365 3363
3366 if (! f || ! f->n_tool_bar_items || NILP (f->tool_bar_items)) 3364 if (! f || ! f->n_tool_bar_items || NILP (f->tool_bar_items))
3367 return FALSE; 3365 return FALSE;
@@ -3596,54 +3594,56 @@ update_frame_tool_bar (f)
3596 if (! wicon) 3594 if (! wicon)
3597 { 3595 {
3598 GtkWidget *w = xg_get_image_for_pixmap (f, img, x->widget, NULL); 3596 GtkWidget *w = xg_get_image_for_pixmap (f, img, x->widget, NULL);
3597 GtkToolItem *ti = gtk_tool_button_new (w, "");
3599 3598
3600 gtk_misc_set_padding (GTK_MISC (w), hmargin, vmargin); 3599 gtk_misc_set_padding (GTK_MISC (w), hmargin, vmargin);
3601 3600
3601 gtk_toolbar_insert (GTK_TOOLBAR (x->toolbar_widget),
3602 ti,
3603 i);
3602 /* The EMACS_INT cast avoids a warning. */ 3604 /* The EMACS_INT cast avoids a warning. */
3603 gtk_toolbar_append_item (GTK_TOOLBAR (x->toolbar_widget), 3605 g_signal_connect (GTK_WIDGET (ti), "clicked",
3604 0, 0, 0, 3606 GTK_SIGNAL_FUNC (xg_tool_bar_callback),
3605 w, 3607 (gpointer) (EMACS_INT) i);
3606 GTK_SIGNAL_FUNC (xg_tool_bar_callback), 3608
3607 (gpointer) (EMACS_INT) i); 3609 gtk_widget_show (GTK_WIDGET (ti));
3610 gtk_widget_show (GTK_WIDGET (w));
3608 3611
3609 /* Save the image so we can see if an update is needed when 3612 /* Save the image so we can see if an update is needed when
3610 this function is called again. */ 3613 this function is called again. */
3611 g_object_set_data (G_OBJECT (w), XG_TOOL_BAR_IMAGE_DATA, 3614 g_object_set_data (G_OBJECT (w), XG_TOOL_BAR_IMAGE_DATA,
3612 (gpointer)img->pixmap); 3615 (gpointer)img->pixmap);
3613 3616
3617 g_object_set_data (G_OBJECT (ti), XG_FRAME_DATA, (gpointer)f);
3618
3614 /* Catch expose events to overcome an annoying redraw bug, see 3619 /* Catch expose events to overcome an annoying redraw bug, see
3615 comment for xg_tool_bar_item_expose_callback. */ 3620 comment for xg_tool_bar_item_expose_callback. */
3616 g_signal_connect (G_OBJECT (w), 3621 g_signal_connect (G_OBJECT (ti),
3617 "expose-event", 3622 "expose-event",
3618 G_CALLBACK (xg_tool_bar_item_expose_callback), 3623 G_CALLBACK (xg_tool_bar_item_expose_callback),
3619 0); 3624 0);
3620 3625
3621 /* We must set sensitive on the button that is the parent 3626 gtk_widget_set_sensitive (GTK_WIDGET (ti), enabled_p);
3622 of the GtkImage parent. Go upwards until we find the button. */ 3627 gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM (ti), FALSE);
3628
3623 while (! GTK_IS_BUTTON (w)) 3629 while (! GTK_IS_BUTTON (w))
3624 w = gtk_widget_get_parent (w); 3630 w = gtk_widget_get_parent (w);
3625 3631
3626 if (w) 3632 g_object_set_data (G_OBJECT (w), XG_FRAME_DATA, (gpointer)f);
3627 { 3633
3628 /* Save the frame in the button so the xg_tool_bar_callback 3634 /* Use enter/leave notify to show help. We use the events
3629 can get at it. */ 3635 rather than the GtkButton specific signals "enter" and
3630 g_object_set_data (G_OBJECT (w), XG_FRAME_DATA, (gpointer)f); 3636 "leave", so we can have only one callback. The event
3631 gtk_widget_set_sensitive (w, enabled_p); 3637 will tell us what kind of event it is. */
3632 3638 /* The EMACS_INT cast avoids a warning. */
3633 /* Use enter/leave notify to show help. We use the events 3639 g_signal_connect (G_OBJECT (w),
3634 rather than the GtkButton specific signals "enter" and 3640 "enter-notify-event",
3635 "leave", so we can have only one callback. The event 3641 G_CALLBACK (xg_tool_bar_help_callback),
3636 will tell us what kind of event it is. */ 3642 (gpointer) (EMACS_INT) i);
3637 /* The EMACS_INT cast avoids a warning. */ 3643 g_signal_connect (G_OBJECT (w),
3638 g_signal_connect (G_OBJECT (w), 3644 "leave-notify-event",
3639 "enter-notify-event", 3645 G_CALLBACK (xg_tool_bar_help_callback),
3640 G_CALLBACK (xg_tool_bar_help_callback), 3646 (gpointer) (EMACS_INT) i);
3641 (gpointer) (EMACS_INT) i);
3642 g_signal_connect (G_OBJECT (w),
3643 "leave-notify-event",
3644 G_CALLBACK (xg_tool_bar_help_callback),
3645 (gpointer) (EMACS_INT) i);
3646 }
3647 } 3647 }
3648 else 3648 else
3649 { 3649 {