diff options
author | Shane Butler <shane_b@users.sourceforge.net> | 2004-11-05 19:33:36 +0000 |
---|---|---|
committer | David Hoover <dhoover@src.gnome.org> | 2004-11-05 19:33:36 +0000 |
commit | ca5f1e2c78021bd010a93510e466cae4612235ff (patch) | |
tree | 32a0fa5570231fa9ac8a561bf99adda6365f32c4 | |
parent | 5476bd6629a95568ee8ddcabd5f25e87c17ae666 (diff) | |
download | glade-ca5f1e2c78021bd010a93510e466cae4612235ff.tar.gz |
rewrote function to create a GtkFileSelector or GtkFileChooser depending
2004-11-02 Shane Butler <shane_b@users.sourceforge.net>
* src/glade-utils.[ch] (glade_util_file_dialog_new): rewrote function to create a GtkFileSelector or GtkFileChooser depending on the GTK+ version.
(glade_util_file_dialog_get_filename, glade_util_file_dialog_set_filename): Metods to retrieve and set the filename of whichever file selector type is supported.
* src/glade-project-window.c (gpw_open_cb, gpw_save_cb, gpw_save_as_cb, gpw_confirm_close_project): Update to use new functions (above).
* src/glade-menu-editor.c (on_icon_button_clicked): Update to new functions.
* configure.in: Revert back to requiring GTK+ 2.2 or above.
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | src/glade-menu-editor.c | 10 | ||||
-rw-r--r-- | src/glade-project-window.c | 26 | ||||
-rw-r--r-- | src/glade-utils.c | 67 | ||||
-rw-r--r-- | src/glade-utils.h | 13 |
6 files changed, 93 insertions, 33 deletions
@@ -1,3 +1,11 @@ +2004-11-02 Shane Butler <shane_b@users.sourceforge.net> + + * src/glade-utils.[ch] (glade_util_file_dialog_new): rewrote function to create a GtkFileSelector or GtkFileChooser depending on the GTK+ version. + (glade_util_file_dialog_get_filename, glade_util_file_dialog_set_filename): Metods to retrieve and set the filename of whichever file selector type is supported. + * src/glade-project-window.c (gpw_open_cb, gpw_save_cb, gpw_save_as_cb, gpw_confirm_close_project): Update to use new functions (above). + * src/glade-menu-editor.c (on_icon_button_clicked): Update to new functions. + * configure.in: Revert back to requiring GTK+ 2.2 or above. + 2004-11-02 Ivan Wong <email@ivanwong.info> * src/Makefile.am: Fix a few glitches that only show up on win32 diff --git a/configure.in b/configure.in index 64f0b8f8..edc9c381 100644 --- a/configure.in +++ b/configure.in @@ -36,7 +36,7 @@ AM_GLIB_GNU_GETTEXT dnl ================================================================ dnl Start of pkg-config checks dnl ================================================================ -PKG_CHECK_MODULES(GLADE, gtk+-2.0 >= 2.4.0 libxml-2.0 >= 2.4.0) +PKG_CHECK_MODULES(GLADE, gtk+-2.0 >= 2.2.0 libxml-2.0 >= 2.4.0) GLADE_LIBS="${GLADE_LIBS}" AC_SUBST(GLADE_LIBS) AC_SUBST(GLADE_CFLAGS) diff --git a/src/glade-menu-editor.c b/src/glade-menu-editor.c index cd0e3615..79c66f6b 100644 --- a/src/glade-menu-editor.c +++ b/src/glade-menu-editor.c @@ -1764,18 +1764,18 @@ on_icon_button_clicked (GtkWidget *widget, gpointer user_data) GtkWidget *filechooser; const gchar *filename = NULL; gint filename_len; - const gchar *icon; + gchar *icon; menued = GLADE_MENU_EDITOR (gtk_widget_get_toplevel (GTK_WIDGET (widget))); - filechooser = glade_util_file_chooser_new (_("Select icon"), GTK_WINDOW (menued), - GTK_FILE_CHOOSER_ACTION_OPEN); + filechooser = glade_util_file_dialog_new (_("Select icon"), GTK_WINDOW (menued), + GLADE_FILE_DIALOG_ACTION_OPEN); icon = gtk_entry_get_text (GTK_ENTRY (GTK_COMBO (menued->icon_widget)->entry)); - gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (filechooser), icon); + glade_util_file_dialog_set_filename (filechooser, icon); if (gtk_dialog_run (GTK_DIALOG(filechooser)) == GTK_RESPONSE_OK) - filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filechooser)); + filename = glade_util_file_dialog_get_filename (filechooser); gtk_widget_destroy (filechooser); diff --git a/src/glade-project-window.c b/src/glade-project-window.c index 554672ac..3f7dbc41 100644 --- a/src/glade-project-window.c +++ b/src/glade-project-window.c @@ -132,12 +132,12 @@ gpw_open_cb (void) gpw = glade_project_window_get (); - filechooser = glade_util_file_chooser_new (_("Open..."), GTK_WINDOW (gpw->window), - GTK_FILE_CHOOSER_ACTION_OPEN); + filechooser = glade_util_file_dialog_new (_("Open..."), GTK_WINDOW (gpw->window), + GLADE_FILE_DIALOG_ACTION_OPEN); if (gtk_dialog_run (GTK_DIALOG(filechooser)) == GTK_RESPONSE_OK) - path = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filechooser)); - + path = glade_util_file_dialog_get_filename (filechooser); + gtk_widget_destroy (filechooser); if (!path) @@ -198,12 +198,12 @@ gpw_save_cb (void) } /* If instead we dont have a path yet, fire up a file selector */ - filechooser = glade_util_file_chooser_new (_("Save..."), GTK_WINDOW (gpw->window), - GTK_FILE_CHOOSER_ACTION_SAVE); + filechooser = glade_util_file_dialog_new (_("Save..."), GTK_WINDOW (gpw->window), + GLADE_FILE_DIALOG_ACTION_SAVE); if (gtk_dialog_run (GTK_DIALOG(filechooser)) == GTK_RESPONSE_OK) - path = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filechooser)); + path = glade_util_file_dialog_get_filename (filechooser); gtk_widget_destroy (filechooser); @@ -224,11 +224,11 @@ gpw_save_as_cb (void) gpw = glade_project_window_get (); project = gpw->active_project; - filechooser = glade_util_file_chooser_new (_("Save as ..."), GTK_WINDOW (gpw->window), - GTK_FILE_CHOOSER_ACTION_SAVE); + filechooser = glade_util_file_dialog_new (_("Save as ..."), GTK_WINDOW (gpw->window), + GLADE_FILE_DIALOG_ACTION_SAVE); if (gtk_dialog_run (GTK_DIALOG(filechooser)) == GTK_RESPONSE_OK) - path = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filechooser)); + path = glade_util_file_dialog_get_filename (filechooser); gtk_widget_destroy (filechooser); @@ -286,11 +286,11 @@ gpw_confirm_close_project (GladeProject *project) GtkWidget *filechooser; const gchar *path = NULL; - filechooser = glade_util_file_chooser_new (_("Save ..."), GTK_WINDOW (gpw->window), - GTK_FILE_CHOOSER_ACTION_SAVE); + filechooser = glade_util_file_dialog_new (_("Save ..."), GTK_WINDOW (gpw->window), + GLADE_FILE_DIALOG_ACTION_SAVE); if (gtk_dialog_run (GTK_DIALOG(filechooser)) == GTK_RESPONSE_OK) - path = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filechooser)); + path = glade_util_file_dialog_get_filename (filechooser); gtk_widget_destroy (filechooser); diff --git a/src/glade-utils.c b/src/glade-utils.c index c5d986fe..d2b4d13e 100644 --- a/src/glade-utils.c +++ b/src/glade-utils.c @@ -411,34 +411,75 @@ glade_util_hide_window (GtkWindow *window) } /** - * glade_util_file_chooser_new: + * glade_util_file_dialog_new: * @title: dialog title * @parent: the parent #GtkWindow for the dialog - * @action: a #GtkFileChooserAction to say if the dialog will open or save + * @action: a #GladeUtilFileDialogType to say if the dialog will open or save * - * Returns: a file chooser dialog. The caller is responsible for showing the - * dialog + * Returns: a file chooser or file selector dialog. The caller is responsible + * for showing the dialog */ GtkWidget * -glade_util_file_chooser_new (const gchar *title, GtkWindow *parent, - GtkFileChooserAction action) +glade_util_file_dialog_new (const gchar *title, GtkWindow *parent, + GladeUtilFileDialogType action) { - GtkWidget *file_chooser; + GtkWidget *file_dialog; - g_return_val_if_fail ((action == GTK_FILE_CHOOSER_ACTION_OPEN || - action == GTK_FILE_CHOOSER_ACTION_SAVE), NULL); + g_return_val_if_fail ((action == GLADE_FILE_DIALOG_ACTION_OPEN || + action == GLADE_FILE_DIALOG_ACTION_SAVE), NULL); - file_chooser = gtk_file_chooser_dialog_new (title, parent, action, +#if GTK_MAJOR_VERSION >= 2 +#if GTK_MINOR_VERSION >= 4 + file_dialog = gtk_file_chooser_dialog_new (title, parent, action, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - action == GTK_FILE_CHOOSER_ACTION_OPEN ? + action == GLADE_FILE_DIALOG_ACTION_OPEN ? GTK_STOCK_OPEN : GTK_STOCK_SAVE, GTK_RESPONSE_OK, NULL); +#else + file_dialog = gtk_file_selection_new (title); +#endif +#endif + gtk_window_set_position (GTK_WINDOW (file_dialog), GTK_WIN_POS_CENTER); - gtk_window_set_position (GTK_WINDOW (file_chooser), GTK_WIN_POS_CENTER); + return file_dialog; +} - return file_chooser; +/** + * glade_util_file_dialog_get_filename: + * @file_dialog: a #GtkWidget that is either a #GtkFileSelector or #GtkFileChooser + * + * Returns: The filename selected by the user. + */ +gchar * +glade_util_file_dialog_get_filename (GtkWidget *file_dialog) +{ +#if GTK_MAJOR_VERSION >= 2 +#if GTK_MINOR_VERSION >= 4 + return gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_dialog)); +#else + return gtk_file_selection_get_filename (GTK_FILE_SELECTION (file_dialog)); +#endif +#endif +} + +/** + * glade_util_file_dialog_set_filename: + * @file_dialog: a #GtkWidget that is either a #GtkFileSelector or #GtkFileChooser + * @filename: the filename to be set. + * + */ +void +glade_util_file_dialog_set_filename (GtkWidget *file_dialog, gchar *filename) +{ +#if GTK_MAJOR_VERSION >= 2 +#if GTK_MINOR_VERSION >= 4 + gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (file_dialog), filename); +#else + gtk_file_selection_set_filename (GTK_FILE_SELECTION (file_dialog), filename); +#endif +#endif } /** diff --git a/src/glade-utils.h b/src/glade-utils.h index 02078fc3..06d4a28a 100644 --- a/src/glade-utils.h +++ b/src/glade-utils.h @@ -5,6 +5,14 @@ G_BEGIN_DECLS +typedef enum _GladeUtilFileDialogType GladeUtilFileDialogType; + +enum _GladeUtilFileDialogType +{ + GLADE_FILE_DIALOG_ACTION_OPEN, + GLADE_FILE_DIALOG_ACTION_SAVE +}; + #define glade_implement_me() g_print ("Implement me : %s %d %s\n", __FILE__, __LINE__, G_GNUC_FUNCTION); @@ -25,7 +33,10 @@ void glade_util_hide_window (GtkWindow *window); gchar *glade_util_gtk_combo_func (gpointer data); gpointer glade_util_gtk_combo_find (GtkCombo *combo); -GtkWidget *glade_util_file_chooser_new (const gchar *title, GtkWindow *parent, GtkFileChooserAction action); +GtkWidget *glade_util_file_dialog_new (const gchar *title, GtkWindow *parent, GladeUtilFileDialogType action); +gchar *glade_util_file_dialog_get_filename (GtkWidget *file_dialog); +void glade_util_file_dialog_set_filename (GtkWidget *file_dialog, gchar *filename); + void glade_util_replace (char *str, char a, char b); char *glade_util_duplicate_underscores (const char *name); |