summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mate-panel/libpanel-util/panel-gtk.c58
-rw-r--r--mate-panel/libpanel-util/panel-gtk.h6
-rw-r--r--mate-panel/libpanel-util/panel-icon-chooser.c17
-rw-r--r--mate-panel/panel-ditem-editor.c15
-rw-r--r--mate-panel/panel-run-dialog.c12
-rw-r--r--po/POTFILES.in1
6 files changed, 88 insertions, 21 deletions
diff --git a/mate-panel/libpanel-util/panel-gtk.c b/mate-panel/libpanel-util/panel-gtk.c
index aed2ce9c..11a7a952 100644
--- a/mate-panel/libpanel-util/panel-gtk.c
+++ b/mate-panel/libpanel-util/panel-gtk.c
@@ -23,6 +23,7 @@
*/
#include <gtk/gtk.h>
+#include <glib/gi18n.h>
#include "panel-gtk.h"
@@ -101,3 +102,60 @@ panel_dialog_add_button (GtkDialog *dialog,
return button;
}
+
+static GtkWidget *
+panel_file_chooser_dialog_new_valist (const gchar *title,
+ GtkWindow *parent,
+ GtkFileChooserAction action,
+ const gchar *first_button_text,
+ va_list varargs)
+{
+ GtkWidget *result;
+ const char *button_text = first_button_text;
+ gint response_id;
+
+ result = g_object_new (GTK_TYPE_FILE_CHOOSER_DIALOG,
+ "title", title,
+ "action", action,
+ NULL);
+
+ if (parent)
+ gtk_window_set_transient_for (GTK_WINDOW (result), parent);
+
+ while (button_text)
+ {
+ response_id = va_arg (varargs, gint);
+
+ if (g_strcmp0 (button_text, "process-stop") == 0)
+ panel_dialog_add_button (GTK_DIALOG (result), _("_Cancel"), button_text, response_id);
+ else if (g_strcmp0 (button_text, "document-open") == 0)
+ panel_dialog_add_button (GTK_DIALOG (result), _("_Open"), button_text, response_id);
+ else if (g_strcmp0 (button_text, "gtk-ok") == 0)
+ panel_dialog_add_button (GTK_DIALOG (result), _("_OK"), button_text, response_id);
+ else
+ gtk_dialog_add_button (GTK_DIALOG (result), button_text, response_id);
+
+ button_text = va_arg (varargs, const gchar *);
+ }
+
+ return result;
+}
+
+GtkWidget *
+panel_file_chooser_dialog_new (const gchar *title,
+ GtkWindow *parent,
+ GtkFileChooserAction action,
+ const gchar *first_button_text,
+ ...)
+{
+ GtkWidget *result;
+ va_list varargs;
+
+ va_start (varargs, first_button_text);
+ result = panel_file_chooser_dialog_new_valist (title, parent, action,
+ first_button_text,
+ varargs);
+ va_end (varargs);
+
+ return result;
+}
diff --git a/mate-panel/libpanel-util/panel-gtk.h b/mate-panel/libpanel-util/panel-gtk.h
index 19950a71..078dcb05 100644
--- a/mate-panel/libpanel-util/panel-gtk.h
+++ b/mate-panel/libpanel-util/panel-gtk.h
@@ -40,6 +40,12 @@ GtkWidget* panel_dialog_add_button (GtkDialog *dialog,
const gchar *icon_name,
gint response_id);
+GtkWidget* panel_file_chooser_dialog_new (const gchar *title,
+ GtkWindow *parent,
+ GtkFileChooserAction action,
+ const gchar *first_button_text,
+ ...);
+
#ifdef __cplusplus
}
#endif
diff --git a/mate-panel/libpanel-util/panel-icon-chooser.c b/mate-panel/libpanel-util/panel-icon-chooser.c
index 5b5ca08a..4850d0ee 100644
--- a/mate-panel/libpanel-util/panel-icon-chooser.c
+++ b/mate-panel/libpanel-util/panel-icon-chooser.c
@@ -378,14 +378,15 @@ _panel_icon_chooser_clicked (GtkButton *button)
else
parent = NULL;
- filechooser = gtk_file_chooser_dialog_new (_("Choose an icon"),
- parent,
- GTK_FILE_CHOOSER_ACTION_OPEN,
- "gtk-cancel",
- GTK_RESPONSE_CANCEL,
- "gtk-open",
- GTK_RESPONSE_ACCEPT,
- NULL);
+ filechooser = panel_file_chooser_dialog_new (_("Choose an icon"),
+ parent,
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+ "process-stop",
+ GTK_RESPONSE_CANCEL,
+ "document-open",
+ GTK_RESPONSE_ACCEPT,
+ NULL);
+
panel_gtk_file_chooser_add_image_preview (GTK_FILE_CHOOSER (filechooser));
path = g_build_filename (DATADIR, "icons", NULL);
diff --git a/mate-panel/panel-ditem-editor.c b/mate-panel/panel-ditem-editor.c
index f85979e0..54f0300f 100644
--- a/mate-panel/panel-ditem-editor.c
+++ b/mate-panel/panel-ditem-editor.c
@@ -1009,13 +1009,14 @@ command_browse_button_clicked (PanelDItemEditor *dialog)
return;
}
- chooser = gtk_file_chooser_dialog_new ("", GTK_WINDOW (dialog),
- GTK_FILE_CHOOSER_ACTION_OPEN,
- "gtk-cancel",
- GTK_RESPONSE_CANCEL,
- "gtk-open",
- GTK_RESPONSE_ACCEPT,
- NULL);
+ chooser = panel_file_chooser_dialog_new ("", GTK_WINDOW (dialog),
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+ "process-stop",
+ GTK_RESPONSE_CANCEL,
+ "document-open",
+ GTK_RESPONSE_ACCEPT,
+ NULL);
+
gtk_window_set_destroy_with_parent (GTK_WINDOW (chooser), TRUE);
g_signal_connect (chooser, "response",
diff --git a/mate-panel/panel-run-dialog.c b/mate-panel/panel-run-dialog.c
index 4d5cce0a..7729c56b 100644
--- a/mate-panel/panel-run-dialog.c
+++ b/mate-panel/panel-run-dialog.c
@@ -1232,12 +1232,12 @@ file_button_clicked (GtkButton *button,
{
GtkWidget *chooser;
- chooser = gtk_file_chooser_dialog_new (_("Choose a file to append to the command..."),
- GTK_WINDOW (dialog->run_dialog),
- GTK_FILE_CHOOSER_ACTION_OPEN,
- "gtk-cancel", GTK_RESPONSE_CANCEL,
- "gtk-ok", GTK_RESPONSE_OK,
- NULL);
+ chooser = panel_file_chooser_dialog_new (_("Choose a file to append to the command..."),
+ GTK_WINDOW (dialog->run_dialog),
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+ "process-stop", GTK_RESPONSE_CANCEL,
+ "gtk-ok", GTK_RESPONSE_OK,
+ NULL);
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (chooser),
g_get_home_dir ());
diff --git a/po/POTFILES.in b/po/POTFILES.in
index a3f10d50..96d615ff 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -31,6 +31,7 @@ applets/wncklet/workspace-switcher.c
[type: gettext/gsettings]data/org.mate.panel.toplevel.gschema.xml.in
mate-panel/libegg/eggdesktopfile.c
mate-panel/libegg/eggsmclient.c
+mate-panel/libpanel-util/panel-gtk.c
mate-panel/libpanel-util/panel-error.c
mate-panel/libpanel-util/panel-icon-chooser.c
mate-panel/libpanel-util/panel-launch.c