From 0b0746e44d176ed6eb839257cc3cb9b6065a9978 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mariano=20Su=C3=A1rez-Alvarez?= Date: Tue, 26 Dec 2006 22:20:06 +0000 Subject: [PATCH] Add a file-set signal to the filechooser button. Bug 353196. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2006-12-26 Mariano Suárez-Alvarez * gtk/gtkfilechooserbuuton.[hc]: Add a file-set signal to the filechooser button. Bug 353196. --- ChangeLog | 5 +++++ gtk/gtkfilechooser.c | 2 +- gtk/gtkfilechooserbutton.c | 31 +++++++++++++++++++++++++++++++ gtk/gtkfilechooserbutton.h | 3 ++- 4 files changed, 39 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index f166c68d92..5d9d29ce50 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-12-26 Mariano Suárez-Alvarez + + * gtk/gtkfilechooserbuuton.[hc]: Add a file-set signal to the + filechooser button. Bug 353196. + 2006-12-26 Kristian Rietveld * gtk/gtktreeview.c (gtk_tree_view_search_init): fix typo causing diff --git a/gtk/gtkfilechooser.c b/gtk/gtkfilechooser.c index 384a89bcef..68243520b9 100644 --- a/gtk/gtkfilechooser.c +++ b/gtk/gtkfilechooser.c @@ -140,7 +140,7 @@ gtk_file_chooser_class_init (gpointer g_iface) * gtk_file_chooser_get_preview_filename() or * gtk_file_chooser_get_preview_uri() to get the name of the file to preview. * Your widget may not be able to preview all kinds of files; your callback - * must call gtk_file_chooser_set_preview_wiget_active() to inform the file + * must call gtk_file_chooser_set_preview_widget_active() to inform the file * chooser about whether the preview was generated successfully or not. * * Please see the example code in . diff --git a/gtk/gtkfilechooserbutton.c b/gtk/gtkfilechooserbutton.c index 9c66da518a..e5c23d613e 100644 --- a/gtk/gtkfilechooserbutton.c +++ b/gtk/gtkfilechooserbutton.c @@ -48,6 +48,7 @@ #include "gtkfilechooserdialog.h" #include "gtkfilechooserprivate.h" #include "gtkfilechooserutils.h" +#include "gtkmarshalers.h" #include "gtkfilechooserbutton.h" @@ -86,6 +87,13 @@ enum PROP_WIDTH_CHARS }; +/* Signals */ +enum +{ + FILE_SET, + LAST_SIGNAL +}; + /* TreeModel Columns */ enum { @@ -301,6 +309,7 @@ static void dialog_response_cb (GtkDialog *dialog, gint response, gpointer user_data); +static guint file_chooser_button_signals[LAST_SIGNAL] = { 0 }; /* ******************* * * GType Declaration * @@ -342,6 +351,26 @@ gtk_file_chooser_button_class_init (GtkFileChooserButtonClass * class) widget_class->style_set = gtk_file_chooser_button_style_set; widget_class->screen_changed = gtk_file_chooser_button_screen_changed; widget_class->mnemonic_activate = gtk_file_chooser_button_mnemonic_activate; + + /** + * GtkFileChooserButtons::file-set: + * @widget: the object which received the signal. + * + * The ::file-set signal is emitted when the user selects a file. + * + * Note that this signal is only emitted when the user + * changes the file. + * + * Since: 2.12 + */ + file_chooser_button_signals[FILE_SET] = + g_signal_new (I_("file-set"), + G_TYPE_FROM_CLASS (gobject_class), + G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (GtkFileChooserButtonClass, file_set), + NULL, NULL, + _gtk_marshal_VOID__VOID, + G_TYPE_NONE, 0); /** * GtkFileChooserButton:dialog: @@ -2695,6 +2724,8 @@ dialog_response_cb (GtkDialog *dialog, gtk_widget_set_sensitive (priv->combo_box, TRUE); gtk_widget_hide (priv->dialog); + + g_signal_emit_by_name (user_data, "file-set"); } diff --git a/gtk/gtkfilechooserbutton.h b/gtk/gtkfilechooserbutton.h index 8d896b4c19..979c4b577e 100644 --- a/gtk/gtkfilechooserbutton.h +++ b/gtk/gtkfilechooserbutton.h @@ -58,6 +58,8 @@ struct _GtkFileChooserButtonClass /*< private >*/ GtkHBoxClass parent_class; + void (* file_set) (GtkFileChooserButton *fc); + void (*__gtk_reserved1); void (*__gtk_reserved2); void (*__gtk_reserved3); @@ -65,7 +67,6 @@ struct _GtkFileChooserButtonClass void (*__gtk_reserved5); void (*__gtk_reserved6); void (*__gtk_reserved7); - void (*__gtk_reserved8); };