static void gtk_file_selection_file_button (GtkWidget *widget,
gint row,
gint column,
- GdkEventButton *bevent,
+ gint button,
gpointer user_data);
+static void gtk_file_selection_file_button_double (GtkWidget *widget,
+ gint row,
+ gint column,
+ gint button,
+ gpointer user_data);
+
static void gtk_file_selection_dir_button (GtkWidget *widget,
gint row,
gint column,
- GdkEventButton *bevent,
+ gint button,
gpointer data);
+static void gtk_file_selection_dir_button_double (GtkWidget *widget,
+ gint row,
+ gint column,
+ gint button,
+ gpointer data);
+
static void gtk_file_selection_populate (GtkFileSelection *fs,
gchar *rel_path,
gint try_complete);
gtk_signal_connect (GTK_OBJECT (filesel->dir_list), "select_row",
(GtkSignalFunc) gtk_file_selection_dir_button,
(gpointer) filesel);
+ gtk_signal_connect (GTK_OBJECT (filesel->dir_list), "mouse_double_click",
+ (GtkSignalFunc) gtk_file_selection_dir_button_double,
+ (gpointer) filesel);
gtk_clist_set_policy (GTK_CLIST (filesel->dir_list), GTK_POLICY_ALWAYS, GTK_POLICY_AUTOMATIC);
gtk_clist_column_titles_passive (GTK_CLIST (filesel->dir_list));
gtk_container_border_width (GTK_CONTAINER (filesel->dir_list), 5);
gtk_signal_connect (GTK_OBJECT (filesel->file_list), "select_row",
(GtkSignalFunc) gtk_file_selection_file_button,
(gpointer) filesel);
+ gtk_signal_connect (GTK_OBJECT (filesel->file_list), "mouse_double_click",
+ (GtkSignalFunc) gtk_file_selection_file_button_double,
+ (gpointer) filesel);
gtk_clist_set_policy (GTK_CLIST (filesel->file_list), GTK_POLICY_ALWAYS, GTK_POLICY_AUTOMATIC);
gtk_clist_column_titles_passive (GTK_CLIST (filesel->file_list));
gtk_container_border_width (GTK_CONTAINER (filesel->file_list), 5);
static void
gtk_file_selection_file_button (GtkWidget *widget,
- gint row,
- gint column,
- GdkEventButton *bevent,
- gpointer user_data)
+ gint row,
+ gint column,
+ gint button,
+ gpointer user_data)
{
GtkFileSelection *fs = NULL;
gchar *filename;
filename = gtk_clist_get_row_data (GTK_CLIST (fs->file_list), row);
- if (bevent && filename)
- {
- switch (bevent->type)
- {
- case GDK_BUTTON_PRESS:
- gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename);
- break;
-
- case GDK_2BUTTON_PRESS:
- gtk_button_clicked (GTK_BUTTON (fs->ok_button));
- break;
-
- default:
- break;
- }
- }
+ if (filename)
+ gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename);
+}
+
+static void
+gtk_file_selection_file_button_double (GtkWidget *widget,
+ gint row,
+ gint column,
+ gint button,
+ gpointer user_data)
+{
+ GtkFileSelection *fs = NULL;
+ gchar *filename;
+
+ g_return_if_fail (GTK_IS_CLIST (widget));
+
+ fs = user_data;
+ g_return_if_fail (fs != NULL);
+ g_return_if_fail (GTK_IS_FILE_SELECTION (fs));
+
+ filename = gtk_clist_get_row_data (GTK_CLIST (fs->file_list), row);
+
+ if (filename)
+ gtk_button_clicked (GTK_BUTTON (fs->ok_button));
}
static void
gtk_file_selection_dir_button (GtkWidget *widget,
gint row,
gint column,
- GdkEventButton *bevent,
+ gint button,
gpointer user_data)
{
GtkFileSelection *fs = NULL;
filename = gtk_clist_get_row_data (GTK_CLIST (fs->dir_list), row);
- if (bevent && filename) {
+ if (filename)
+ gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename);
+}
+
+static void
+gtk_file_selection_dir_button_double (GtkWidget *widget,
+ gint row,
+ gint column,
+ gint button,
+ gpointer user_data)
+{
+ GtkFileSelection *fs = NULL;
+ gchar *filename;
- switch (bevent->type)
- {
- case GDK_BUTTON_PRESS:
- gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename);
- break;
-
- case GDK_2BUTTON_PRESS:
- gtk_file_selection_populate (fs, filename, FALSE);
- break;
-
- default:
- break;
- }
- }
+ g_return_if_fail (GTK_IS_CLIST (widget));
+
+ fs = GTK_FILE_SELECTION (user_data);
+ g_return_if_fail (fs != NULL);
+ g_return_if_fail (GTK_IS_FILE_SELECTION (fs));
+
+ filename = gtk_clist_get_row_data (GTK_CLIST (fs->dir_list), row);
+
+ if (filename)
+ gtk_file_selection_populate (fs, filename, FALSE);
}
static void