summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorMariano Suárez-Alvarez <mariano@gnome.org>2006-12-26 22:20:06 +0000
committerMariano Suárez-Alvarez <mariano@src.gnome.org>2006-12-26 22:20:06 +0000
commit0b0746e44d176ed6eb839257cc3cb9b6065a9978 (patch)
treedacf5061a550c646060a1b7fe101bf8c292c5e45 /gtk
parent962e54f14042cc9fa921cd07a1ec2aeb30228a61 (diff)
downloadgtk+-0b0746e44d176ed6eb839257cc3cb9b6065a9978.tar.gz
Add a file-set signal to the filechooser button. Bug 353196.
2006-12-26 Mariano Suárez-Alvarez <mariano@gnome.org> * gtk/gtkfilechooserbuuton.[hc]: Add a file-set signal to the filechooser button. Bug 353196.
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtkfilechooser.c2
-rw-r--r--gtk/gtkfilechooserbutton.c31
-rw-r--r--gtk/gtkfilechooserbutton.h3
3 files changed, 34 insertions, 2 deletions
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 <xref linkend="gtkfilechooser-preview"/>.
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 <emphasis>user</emphasis>
+ * 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);
};