diff options
| author | Jan Djärv | 2006-01-31 15:31:50 +0000 |
|---|---|---|
| committer | Jan Djärv | 2006-01-31 15:31:50 +0000 |
| commit | cd7cd4ac236450f97d4867c9278c2394c6688cf7 (patch) | |
| tree | bbd0efa313326182cb1d28455e8892f8718b599b /src | |
| parent | 176cc13b336e2ae3f0d11a3f95881ff48065677f (diff) | |
| download | emacs-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/ChangeLog | 5 | ||||
| -rw-r--r-- | src/gtkutil.c | 64 |
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 @@ | |||
| 1 | 2006-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 | |||
| 1 | 2006-01-30 Luc Teirlinck <teirllm@auburn.edu> | 6 | 2006-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 | { |