Fix style
Fixing style in all zenity code, removing useless spaces, empty lines, all code in 80 columns, etc.
This commit is contained in:
parent
8c5e60de83
commit
4eddb202ca
153
src/about.c
153
src/about.c
@ -25,10 +25,10 @@
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include "zenity.h"
|
||||
#include "util.h"
|
||||
#include <string.h>
|
||||
#include "zenity.h"
|
||||
#include <gdk/gdkkeysyms.h>
|
||||
#include <string.h>
|
||||
|
||||
#define GTK_RESPONSE_CREDITS 0
|
||||
#define ZENITY_HELP_PATH ZENITY_DATADIR "/help/"
|
||||
@ -39,39 +39,38 @@
|
||||
|
||||
static GtkWidget *dialog;
|
||||
|
||||
static void zenity_about_dialog_response (GtkWidget *widget, int response, gpointer data);
|
||||
static void zenity_about_dialog_response (
|
||||
GtkWidget *widget, int response, gpointer data);
|
||||
|
||||
/* Sync with the people in the THANKS file */
|
||||
static const gchar *const authors[] = {
|
||||
"Glynn Foster <glynn foster sun com>",
|
||||
"Lucas Rocha <lucasr gnome org>",
|
||||
"Mike Newman <mikegtn gnome org>",
|
||||
NULL
|
||||
};
|
||||
static const gchar *const authors[] = {"Glynn Foster <glynn foster sun com>",
|
||||
"Lucas Rocha <lucasr gnome org>",
|
||||
"Mike Newman <mikegtn gnome org>",
|
||||
NULL};
|
||||
|
||||
static const char *documenters[] = {
|
||||
"Glynn Foster <glynn.foster@sun.com>",
|
||||
"Lucas Rocha <lucasr@gnome.org>",
|
||||
"Java Desktop System Documentation Team",
|
||||
"GNOME Documentation Project",
|
||||
NULL
|
||||
};
|
||||
static const char *documenters[] = {"Glynn Foster <glynn.foster@sun.com>",
|
||||
"Lucas Rocha <lucasr@gnome.org>",
|
||||
"Java Desktop System Documentation Team",
|
||||
"GNOME Documentation Project",
|
||||
NULL};
|
||||
|
||||
static gchar *translators;
|
||||
|
||||
static const char *license[] = {
|
||||
N_("This program is free software; you can redistribute it and/or modify "
|
||||
"it under the terms of the GNU Lesser General Public License as published by "
|
||||
"the Free Software Foundation; either version 2 of the License, or "
|
||||
"(at your option) any later version.\n"),
|
||||
N_("This program is distributed in the hope that it will be useful, "
|
||||
"but WITHOUT ANY WARRANTY; without even the implied warranty of "
|
||||
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "
|
||||
"GNU Lesser General Public License for more details.\n"),
|
||||
N_("You should have received a copy of the GNU Lesser General Public License "
|
||||
"along with this program; if not, write to the Free Software "
|
||||
"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.")
|
||||
};
|
||||
N_ ("This program is free software; you can redistribute it and/or modify "
|
||||
"it under the terms of the GNU Lesser General Public License as "
|
||||
"published by "
|
||||
"the Free Software Foundation; either version 2 of the License, or "
|
||||
"(at your option) any later version.\n"),
|
||||
N_ ("This program is distributed in the hope that it will be useful, "
|
||||
"but WITHOUT ANY WARRANTY; without even the implied warranty of "
|
||||
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "
|
||||
"GNU Lesser General Public License for more details.\n"),
|
||||
N_ ("You should have received a copy of the GNU Lesser General Public "
|
||||
"License "
|
||||
"along with this program; if not, write to the Free Software "
|
||||
"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
|
||||
"02110-1301, USA.")};
|
||||
|
||||
#if 0
|
||||
static gint
|
||||
@ -253,66 +252,78 @@ zenity_zen_wisdom (GtkDialog *dialog, GdkEventKey *event, gpointer user_data)
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
zenity_about (ZenityData *data)
|
||||
{
|
||||
GdkPixbuf *logo;
|
||||
char *license_trans;
|
||||
void
|
||||
zenity_about (ZenityData *data) {
|
||||
GdkPixbuf *logo;
|
||||
char *license_trans;
|
||||
|
||||
translators = _ ("translator-credits");
|
||||
logo =
|
||||
gdk_pixbuf_new_from_file (ZENITY_IMAGE_FULLPATH ("zenity.png"), NULL);
|
||||
|
||||
translators = _("translator-credits");
|
||||
logo = gdk_pixbuf_new_from_file (ZENITY_IMAGE_FULLPATH ("zenity.png"), NULL);
|
||||
license_trans = g_strconcat (
|
||||
_ (license[0]), "\n", _ (license[1]), "\n", _ (license[2]), "\n", NULL);
|
||||
|
||||
license_trans = g_strconcat (_(license[0]), "\n", _(license[1]), "\n",
|
||||
_(license[2]), "\n", NULL);
|
||||
dialog = gtk_about_dialog_new ();
|
||||
|
||||
dialog = gtk_about_dialog_new ();
|
||||
|
||||
g_object_set (G_OBJECT (dialog),
|
||||
"name", "Zenity",
|
||||
"version", VERSION,
|
||||
"copyright", "Copyright \xc2\xa9 2003 Sun Microsystems",
|
||||
"comments", _("Display dialog boxes from shell scripts"),
|
||||
"authors", authors,
|
||||
"documenters", documenters,
|
||||
"translator-credits", translators,
|
||||
"website", "http://live.gnome.org/Zenity",
|
||||
"logo", logo,
|
||||
"wrap-license", TRUE,
|
||||
"license", license_trans,
|
||||
g_object_set (G_OBJECT (dialog),
|
||||
"name",
|
||||
"Zenity",
|
||||
"version",
|
||||
VERSION,
|
||||
"copyright",
|
||||
"Copyright \xc2\xa9 2003 Sun Microsystems",
|
||||
"comments",
|
||||
_ ("Display dialog boxes from shell scripts"),
|
||||
"authors",
|
||||
authors,
|
||||
"documenters",
|
||||
documenters,
|
||||
"translator-credits",
|
||||
translators,
|
||||
"website",
|
||||
"http://live.gnome.org/Zenity",
|
||||
"logo",
|
||||
logo,
|
||||
"wrap-license",
|
||||
TRUE,
|
||||
"license",
|
||||
license_trans,
|
||||
NULL);
|
||||
|
||||
g_free (license_trans);
|
||||
|
||||
zenity_util_set_window_icon (dialog, NULL, ZENITY_IMAGE_FULLPATH ("zenity.png"));
|
||||
g_free (license_trans);
|
||||
|
||||
g_signal_connect (G_OBJECT (dialog), "response",
|
||||
G_CALLBACK (zenity_about_dialog_response), data);
|
||||
zenity_util_set_window_icon (
|
||||
dialog, NULL, ZENITY_IMAGE_FULLPATH ("zenity.png"));
|
||||
|
||||
g_signal_connect (G_OBJECT (dialog),
|
||||
"response",
|
||||
G_CALLBACK (zenity_about_dialog_response),
|
||||
data);
|
||||
|
||||
#if 0
|
||||
g_signal_connect (G_OBJECT (dialog), "key_press_event",
|
||||
G_CALLBACK (zenity_zen_wisdom), NULL);
|
||||
#endif
|
||||
|
||||
zenity_util_show_dialog (dialog, data->attach);
|
||||
gtk_main ();
|
||||
zenity_util_show_dialog (dialog, data->attach);
|
||||
gtk_main ();
|
||||
}
|
||||
|
||||
static void
|
||||
zenity_about_dialog_response (GtkWidget *widget, int response, gpointer data)
|
||||
{
|
||||
ZenityData *zen_data = data;
|
||||
zenity_about_dialog_response (GtkWidget *widget, int response, gpointer data) {
|
||||
ZenityData *zen_data = data;
|
||||
|
||||
switch (response) {
|
||||
case GTK_RESPONSE_CLOSE:
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
|
||||
break;
|
||||
switch (response) {
|
||||
case GTK_RESPONSE_CLOSE:
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
|
||||
break;
|
||||
|
||||
default:
|
||||
/* Esc dialog */
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
/* Esc dialog */
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
|
||||
break;
|
||||
}
|
||||
|
||||
gtk_main_quit ();
|
||||
gtk_main_quit ();
|
||||
}
|
||||
|
220
src/calendar.c
220
src/calendar.c
@ -23,146 +23,158 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <time.h>
|
||||
#include "zenity.h"
|
||||
#include "util.h"
|
||||
|
||||
#include "zenity.h"
|
||||
#include <time.h>
|
||||
|
||||
static GtkWidget *calendar;
|
||||
static ZenityCalendarData *zen_cal_data;
|
||||
|
||||
static void zenity_calendar_dialog_response (GtkWidget *widget, int response, gpointer data);
|
||||
static void zenity_calendar_dialog_response (
|
||||
GtkWidget *widget, int response, gpointer data);
|
||||
static void zenity_calendar_double_click (GtkCalendar *calendar, gpointer data);
|
||||
|
||||
void
|
||||
zenity_calendar (ZenityData *data, ZenityCalendarData *cal_data)
|
||||
{
|
||||
GtkBuilder *builder;
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *button;
|
||||
GObject *text;
|
||||
void
|
||||
zenity_calendar (ZenityData *data, ZenityCalendarData *cal_data) {
|
||||
GtkBuilder *builder;
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *button;
|
||||
GObject *text;
|
||||
|
||||
zen_cal_data = cal_data;
|
||||
zen_cal_data = cal_data;
|
||||
|
||||
builder = zenity_util_load_ui_file ("zenity_calendar_dialog", NULL);
|
||||
builder = zenity_util_load_ui_file ("zenity_calendar_dialog", NULL);
|
||||
|
||||
if (builder == NULL) {
|
||||
data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
|
||||
return;
|
||||
}
|
||||
|
||||
gtk_builder_connect_signals (builder, NULL);
|
||||
if (builder == NULL) {
|
||||
data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
|
||||
return;
|
||||
}
|
||||
|
||||
dialog = GTK_WIDGET (gtk_builder_get_object (builder,
|
||||
"zenity_calendar_dialog"));
|
||||
gtk_builder_connect_signals (builder, NULL);
|
||||
|
||||
g_signal_connect (G_OBJECT (dialog), "response",
|
||||
G_CALLBACK (zenity_calendar_dialog_response), data);
|
||||
dialog =
|
||||
GTK_WIDGET (gtk_builder_get_object (builder, "zenity_calendar_dialog"));
|
||||
|
||||
if (data->dialog_title)
|
||||
gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
|
||||
g_signal_connect (G_OBJECT (dialog),
|
||||
"response",
|
||||
G_CALLBACK (zenity_calendar_dialog_response),
|
||||
data);
|
||||
|
||||
zenity_util_set_window_icon (dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-calendar.png"));
|
||||
if (data->dialog_title)
|
||||
gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
|
||||
|
||||
if (data->width > -1 || data->height > -1)
|
||||
gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
|
||||
zenity_util_set_window_icon (dialog,
|
||||
data->window_icon,
|
||||
ZENITY_IMAGE_FULLPATH ("zenity-calendar.png"));
|
||||
|
||||
if (data->modal)
|
||||
gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
|
||||
if (data->width > -1 || data->height > -1)
|
||||
gtk_window_set_default_size (
|
||||
GTK_WINDOW (dialog), data->width, data->height);
|
||||
|
||||
text = gtk_builder_get_object (builder, "zenity_calendar_text");
|
||||
if (data->modal)
|
||||
gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
|
||||
|
||||
if (cal_data->dialog_text)
|
||||
gtk_label_set_markup (GTK_LABEL (text), g_strcompress (cal_data->dialog_text));
|
||||
text = gtk_builder_get_object (builder, "zenity_calendar_text");
|
||||
|
||||
calendar = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_calendar"));
|
||||
|
||||
if (cal_data->month > 0 || cal_data->year > 0)
|
||||
gtk_calendar_select_month (GTK_CALENDAR (calendar), cal_data->month - 1, cal_data->year);
|
||||
if (cal_data->day > 0)
|
||||
gtk_calendar_select_day (GTK_CALENDAR (calendar), cal_data->day);
|
||||
if (cal_data->dialog_text)
|
||||
gtk_label_set_markup (
|
||||
GTK_LABEL (text), g_strcompress (cal_data->dialog_text));
|
||||
|
||||
g_signal_connect (calendar, "day-selected-double-click",
|
||||
G_CALLBACK (zenity_calendar_double_click), data);
|
||||
calendar = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_calendar"));
|
||||
|
||||
gtk_label_set_mnemonic_widget (GTK_LABEL (text), calendar);
|
||||
zenity_util_show_dialog (dialog, data->attach);
|
||||
if (cal_data->month > 0 || cal_data->year > 0)
|
||||
gtk_calendar_select_month (
|
||||
GTK_CALENDAR (calendar), cal_data->month - 1, cal_data->year);
|
||||
if (cal_data->day > 0)
|
||||
gtk_calendar_select_day (GTK_CALENDAR (calendar), cal_data->day);
|
||||
|
||||
if (data->timeout_delay > 0) {
|
||||
g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, dialog);
|
||||
}
|
||||
|
||||
if (data->extra_label) {
|
||||
gint i=0;
|
||||
while(data->extra_label[i]!=NULL){
|
||||
gtk_dialog_add_button (GTK_DIALOG (dialog), data->extra_label[i], i);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
if (data->ok_label) {
|
||||
button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_calendar_ok_button"));
|
||||
gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
|
||||
}
|
||||
g_signal_connect (calendar,
|
||||
"day-selected-double-click",
|
||||
G_CALLBACK (zenity_calendar_double_click),
|
||||
data);
|
||||
|
||||
if (data->cancel_label) {
|
||||
button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_calendar_cancel_button"));
|
||||
gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
|
||||
}
|
||||
gtk_label_set_mnemonic_widget (GTK_LABEL (text), calendar);
|
||||
zenity_util_show_dialog (dialog, data->attach);
|
||||
|
||||
g_object_unref (builder);
|
||||
if (data->timeout_delay > 0) {
|
||||
g_timeout_add_seconds (data->timeout_delay,
|
||||
(GSourceFunc) zenity_util_timeout_handle,
|
||||
dialog);
|
||||
}
|
||||
|
||||
gtk_main ();
|
||||
if (data->extra_label) {
|
||||
gint i = 0;
|
||||
while (data->extra_label[i] != NULL) {
|
||||
gtk_dialog_add_button (
|
||||
GTK_DIALOG (dialog), data->extra_label[i], i);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
if (data->ok_label) {
|
||||
button = GTK_WIDGET (
|
||||
gtk_builder_get_object (builder, "zenity_calendar_ok_button"));
|
||||
gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
|
||||
}
|
||||
|
||||
if (data->cancel_label) {
|
||||
button = GTK_WIDGET (
|
||||
gtk_builder_get_object (builder, "zenity_calendar_cancel_button"));
|
||||
gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
|
||||
}
|
||||
|
||||
g_object_unref (builder);
|
||||
|
||||
gtk_main ();
|
||||
}
|
||||
static void
|
||||
zenity_calendar_dialog_output (void)
|
||||
{
|
||||
guint day, month, year;
|
||||
gchar time_string[128];
|
||||
GDate *date = NULL;
|
||||
|
||||
gtk_calendar_get_date (GTK_CALENDAR (calendar), &day, &month, &year);
|
||||
date = g_date_new_dmy (year, month + 1, day);
|
||||
g_date_strftime (time_string, 127, zen_cal_data->date_format, date);
|
||||
g_print ("%s\n", time_string);
|
||||
static void
|
||||
zenity_calendar_dialog_output (void) {
|
||||
guint day, month, year;
|
||||
gchar time_string[128];
|
||||
GDate *date = NULL;
|
||||
|
||||
if (date != NULL)
|
||||
g_date_free (date);
|
||||
gtk_calendar_get_date (GTK_CALENDAR (calendar), &day, &month, &year);
|
||||
date = g_date_new_dmy (year, month + 1, day);
|
||||
g_date_strftime (time_string, 127, zen_cal_data->date_format, date);
|
||||
g_print ("%s\n", time_string);
|
||||
|
||||
if (date != NULL)
|
||||
g_date_free (date);
|
||||
}
|
||||
|
||||
static void
|
||||
zenity_calendar_dialog_response (GtkWidget *widget, int response, gpointer data)
|
||||
{
|
||||
ZenityData *zen_data;
|
||||
zenity_calendar_dialog_response (
|
||||
GtkWidget *widget, int response, gpointer data) {
|
||||
ZenityData *zen_data;
|
||||
|
||||
zen_data = data;
|
||||
zen_data = data;
|
||||
|
||||
switch (response) {
|
||||
case GTK_RESPONSE_OK:
|
||||
zenity_calendar_dialog_output ();
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
|
||||
break;
|
||||
switch (response) {
|
||||
case GTK_RESPONSE_OK:
|
||||
zenity_calendar_dialog_output ();
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK);
|
||||
break;
|
||||
|
||||
case GTK_RESPONSE_CANCEL:
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
|
||||
break;
|
||||
case GTK_RESPONSE_CANCEL:
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
|
||||
break;
|
||||
|
||||
case ZENITY_TIMEOUT:
|
||||
zenity_calendar_dialog_output ();
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
|
||||
break;
|
||||
case ZENITY_TIMEOUT:
|
||||
zenity_calendar_dialog_output ();
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
|
||||
break;
|
||||
|
||||
default:
|
||||
if (zen_data->extra_label && response < g_strv_length(zen_data->extra_label))
|
||||
printf("%s\n",zen_data->extra_label[response]);
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
|
||||
break;
|
||||
}
|
||||
gtk_main_quit ();
|
||||
default:
|
||||
if (zen_data->extra_label &&
|
||||
response < g_strv_length (zen_data->extra_label))
|
||||
printf ("%s\n", zen_data->extra_label[response]);
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
|
||||
break;
|
||||
}
|
||||
gtk_main_quit ();
|
||||
}
|
||||
|
||||
static void
|
||||
zenity_calendar_double_click (GtkCalendar *cal, gpointer data)
|
||||
{
|
||||
zenity_calendar_dialog_response (NULL, GTK_RESPONSE_OK, data);
|
||||
zenity_calendar_double_click (GtkCalendar *cal, gpointer data) {
|
||||
zenity_calendar_dialog_response (NULL, GTK_RESPONSE_OK, data);
|
||||
}
|
||||
|
132
src/color.c
132
src/color.c
@ -23,92 +23,96 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <string.h>
|
||||
#include "zenity.h"
|
||||
#include "util.h"
|
||||
#include "zenity.h"
|
||||
#include <string.h>
|
||||
|
||||
static ZenityData *zen_data;
|
||||
|
||||
static void zenity_colorselection_dialog_response (GtkWidget *widget, int response, gpointer data);
|
||||
static void zenity_colorselection_dialog_response (
|
||||
GtkWidget *widget, int response, gpointer data);
|
||||
|
||||
void zenity_colorselection (ZenityData *data, ZenityColorData *color_data)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *button;
|
||||
GdkRGBA color;
|
||||
void
|
||||
zenity_colorselection (ZenityData *data, ZenityColorData *color_data) {
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *button;
|
||||
GdkRGBA color;
|
||||
|
||||
zen_data = data;
|
||||
zen_data = data;
|
||||
|
||||
dialog = gtk_color_chooser_dialog_new (data->dialog_title, NULL);
|
||||
dialog = gtk_color_chooser_dialog_new (data->dialog_title, NULL);
|
||||
|
||||
g_signal_connect (G_OBJECT (dialog), "response",
|
||||
G_CALLBACK (zenity_colorselection_dialog_response),
|
||||
color_data);
|
||||
g_signal_connect (G_OBJECT (dialog),
|
||||
"response",
|
||||
G_CALLBACK (zenity_colorselection_dialog_response),
|
||||
color_data);
|
||||
|
||||
if (color_data->color) {
|
||||
if (gdk_rgba_parse (&color, color_data->color)) {
|
||||
gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (dialog), &color);
|
||||
}
|
||||
}
|
||||
if (color_data->color) {
|
||||
if (gdk_rgba_parse (&color, color_data->color)) {
|
||||
gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (dialog), &color);
|
||||
}
|
||||
}
|
||||
|
||||
if (data->extra_label) {
|
||||
gint i=0;
|
||||
while(data->extra_label[i]!=NULL){
|
||||
gtk_dialog_add_button (GTK_DIALOG (dialog), data->extra_label[i], i);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
if (data->extra_label) {
|
||||
gint i = 0;
|
||||
while (data->extra_label[i] != NULL) {
|
||||
gtk_dialog_add_button (
|
||||
GTK_DIALOG (dialog), data->extra_label[i], i);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
if (data->ok_label) {
|
||||
g_object_get (G_OBJECT (dialog), "ok-button", &button, NULL);
|
||||
gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
|
||||
g_object_unref (G_OBJECT (button));
|
||||
}
|
||||
if (data->ok_label) {
|
||||
g_object_get (G_OBJECT (dialog), "ok-button", &button, NULL);
|
||||
gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
|
||||
g_object_unref (G_OBJECT (button));
|
||||
}
|
||||
|
||||
if (data->cancel_label) {
|
||||
g_object_get (G_OBJECT (dialog), "cancel-button", &button, NULL);
|
||||
gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
|
||||
g_object_unref (G_OBJECT (button));
|
||||
}
|
||||
if (data->cancel_label) {
|
||||
g_object_get (G_OBJECT (dialog), "cancel-button", &button, NULL);
|
||||
gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
|
||||
g_object_unref (G_OBJECT (button));
|
||||
}
|
||||
|
||||
if (data->modal)
|
||||
gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
|
||||
if (data->modal)
|
||||
gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
|
||||
|
||||
g_object_set (dialog, "show-editor", !color_data->show_palette, NULL);
|
||||
g_object_set (dialog, "show-editor", !color_data->show_palette, NULL);
|
||||
|
||||
zenity_util_show_dialog (dialog, data->attach);
|
||||
zenity_util_show_dialog (dialog, data->attach);
|
||||
|
||||
if (data->timeout_delay > 0) {
|
||||
g_timeout_add_seconds (data->timeout_delay,
|
||||
(GSourceFunc) zenity_util_timeout_handle,
|
||||
dialog);
|
||||
}
|
||||
if (data->timeout_delay > 0) {
|
||||
g_timeout_add_seconds (data->timeout_delay,
|
||||
(GSourceFunc) zenity_util_timeout_handle,
|
||||
dialog);
|
||||
}
|
||||
|
||||
gtk_main();
|
||||
gtk_main ();
|
||||
}
|
||||
|
||||
static void
|
||||
zenity_colorselection_dialog_response (GtkWidget *widget, int response, gpointer data)
|
||||
{
|
||||
GdkRGBA color;
|
||||
zenity_colorselection_dialog_response (
|
||||
GtkWidget *widget, int response, gpointer data) {
|
||||
GdkRGBA color;
|
||||
|
||||
switch (response) {
|
||||
case GTK_RESPONSE_OK:
|
||||
zenity_util_exit_code_with_data(ZENITY_OK, zen_data);
|
||||
gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (widget), &color);
|
||||
g_print ("%s\n", gdk_rgba_to_string (&color));
|
||||
break;
|
||||
switch (response) {
|
||||
case GTK_RESPONSE_OK:
|
||||
zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
|
||||
gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (widget), &color);
|
||||
g_print ("%s\n", gdk_rgba_to_string (&color));
|
||||
break;
|
||||
|
||||
case GTK_RESPONSE_CANCEL:
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
|
||||
break;
|
||||
case GTK_RESPONSE_CANCEL:
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
|
||||
break;
|
||||
|
||||
default:
|
||||
if (zen_data->extra_label && response < g_strv_length(zen_data->extra_label))
|
||||
printf("%s\n",zen_data->extra_label[response]);
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
if (zen_data->extra_label &&
|
||||
response < g_strv_length (zen_data->extra_label))
|
||||
printf ("%s\n", zen_data->extra_label[response]);
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
|
||||
break;
|
||||
}
|
||||
|
||||
gtk_main_quit ();
|
||||
gtk_main_quit ();
|
||||
}
|
||||
|
268
src/entry.c
268
src/entry.c
@ -23,179 +23,189 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "zenity.h"
|
||||
#include "util.h"
|
||||
#include "zenity.h"
|
||||
|
||||
static void zenity_entry_dialog_response (GtkWidget *widget, int response, gpointer data);
|
||||
static void zenity_entry_dialog_response (
|
||||
GtkWidget *widget, int response, gpointer data);
|
||||
|
||||
static GtkWidget *entry;
|
||||
static gint n_entries = 0;
|
||||
|
||||
static void
|
||||
zenity_entry_fill_entries (GSList **entries, const gchar **args)
|
||||
{
|
||||
gint i = 0;
|
||||
zenity_entry_fill_entries (GSList **entries, const gchar **args) {
|
||||
gint i = 0;
|
||||
|
||||
while (args[i] != NULL) {
|
||||
*entries = g_slist_append (*entries, (gchar *) args[i]);
|
||||
i++;
|
||||
}
|
||||
while (args[i] != NULL) {
|
||||
*entries = g_slist_append (*entries, (gchar *) args[i]);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
zenity_entry_combo_activate_default (GtkEntry *entry, gpointer window)
|
||||
{
|
||||
gtk_window_activate_default (GTK_WINDOW (window));
|
||||
zenity_entry_combo_activate_default (GtkEntry *entry, gpointer window) {
|
||||
gtk_window_activate_default (GTK_WINDOW (window));
|
||||
}
|
||||
|
||||
void
|
||||
zenity_entry (ZenityData *data, ZenityEntryData *entry_data)
|
||||
{
|
||||
GtkBuilder *builder = NULL;
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *button;
|
||||
GObject *text;
|
||||
GSList *entries = NULL;
|
||||
GSList *tmp;
|
||||
GObject *vbox;
|
||||
|
||||
builder = zenity_util_load_ui_file ("zenity_entry_dialog", NULL);
|
||||
void
|
||||
zenity_entry (ZenityData *data, ZenityEntryData *entry_data) {
|
||||
GtkBuilder *builder = NULL;
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *button;
|
||||
GObject *text;
|
||||
GSList *entries = NULL;
|
||||
GSList *tmp;
|
||||
GObject *vbox;
|
||||
|
||||
if (builder == NULL) {
|
||||
data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
|
||||
return;
|
||||
}
|
||||
|
||||
gtk_builder_connect_signals (builder, NULL);
|
||||
|
||||
dialog = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_entry_dialog"));
|
||||
|
||||
g_signal_connect (G_OBJECT (dialog), "response",
|
||||
G_CALLBACK (zenity_entry_dialog_response), data);
|
||||
builder = zenity_util_load_ui_file ("zenity_entry_dialog", NULL);
|
||||
|
||||
if (data->dialog_title)
|
||||
gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
|
||||
|
||||
zenity_util_set_window_icon (dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-entry.png"));
|
||||
if (builder == NULL) {
|
||||
data->exit_code = zenity_util_return_exit_code (ZENITY_ERROR);
|
||||
return;
|
||||
}
|
||||
|
||||
if (data->width > -1 || data->height > -1)
|
||||
gtk_window_set_default_size (GTK_WINDOW (dialog), data->width, data->height);
|
||||
gtk_builder_connect_signals (builder, NULL);
|
||||
|
||||
if (data->modal)
|
||||
gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
|
||||
dialog =
|
||||
GTK_WIDGET (gtk_builder_get_object (builder, "zenity_entry_dialog"));
|
||||
|
||||
if (data->extra_label) {
|
||||
gint i=0;
|
||||
while(data->extra_label[i]!=NULL){
|
||||
gtk_dialog_add_button (GTK_DIALOG (dialog), data->extra_label[i], i);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
g_signal_connect (G_OBJECT (dialog),
|
||||
"response",
|
||||
G_CALLBACK (zenity_entry_dialog_response),
|
||||
data);
|
||||
|
||||
if (data->ok_label) {
|
||||
button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_entry_ok_button"));
|
||||
gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
|
||||
}
|
||||
if (data->dialog_title)
|
||||
gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
|
||||
|
||||
if (data->cancel_label) {
|
||||
button = GTK_WIDGET (gtk_builder_get_object (builder, "zenity_entry_cancel_button"));
|
||||
gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
|
||||
}
|
||||
zenity_util_set_window_icon (
|
||||
dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-entry.png"));
|
||||
|
||||
text = gtk_builder_get_object (builder, "zenity_entry_text");
|
||||
if (data->width > -1 || data->height > -1)
|
||||
gtk_window_set_default_size (
|
||||
GTK_WINDOW (dialog), data->width, data->height);
|
||||
|
||||
if (entry_data->dialog_text)
|
||||
gtk_label_set_text_with_mnemonic (GTK_LABEL (text), g_strcompress (entry_data->dialog_text));
|
||||
|
||||
vbox = gtk_builder_get_object (builder, "vbox4");
|
||||
|
||||
zenity_entry_fill_entries(&entries, entry_data->data);
|
||||
|
||||
n_entries = g_slist_length (entries);
|
||||
if (data->modal)
|
||||
gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
|
||||
|
||||
if (n_entries > 1) {
|
||||
entry = gtk_combo_box_text_new_with_entry ();
|
||||
if (data->extra_label) {
|
||||
gint i = 0;
|
||||
while (data->extra_label[i] != NULL) {
|
||||
gtk_dialog_add_button (
|
||||
GTK_DIALOG (dialog), data->extra_label[i], i);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
for (tmp = entries; tmp; tmp = tmp->next) {
|
||||
gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (entry), tmp->data);
|
||||
}
|
||||
if (data->ok_label) {
|
||||
button = GTK_WIDGET (
|
||||
gtk_builder_get_object (builder, "zenity_entry_ok_button"));
|
||||
gtk_button_set_label (GTK_BUTTON (button), data->ok_label);
|
||||
}
|
||||
|
||||
if (entry_data->entry_text) {
|
||||
gtk_combo_box_text_prepend_text (GTK_COMBO_BOX_TEXT (entry), entry_data->entry_text);
|
||||
gtk_combo_box_set_active (GTK_COMBO_BOX (entry), 0);
|
||||
}
|
||||
if (data->cancel_label) {
|
||||
button = GTK_WIDGET (
|
||||
gtk_builder_get_object (builder, "zenity_entry_cancel_button"));
|
||||
gtk_button_set_label (GTK_BUTTON (button), data->cancel_label);
|
||||
}
|
||||
|
||||
g_signal_connect (gtk_bin_get_child (GTK_BIN (entry)), "activate",
|
||||
G_CALLBACK (zenity_entry_combo_activate_default),
|
||||
GTK_WINDOW (dialog));
|
||||
} else {
|
||||
entry = gtk_entry_new();
|
||||
text = gtk_builder_get_object (builder, "zenity_entry_text");
|
||||
|
||||
gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE);
|
||||
|
||||
if (entry_data->entry_text)
|
||||
gtk_entry_set_text (GTK_ENTRY (entry), entry_data->entry_text);
|
||||
if (entry_data->dialog_text)
|
||||
gtk_label_set_text_with_mnemonic (
|
||||
GTK_LABEL (text), g_strcompress (entry_data->dialog_text));
|
||||
|
||||
if (entry_data->hide_text)
|
||||
g_object_set (G_OBJECT (entry), "visibility", FALSE, NULL);
|
||||
}
|
||||
vbox = gtk_builder_get_object (builder, "vbox4");
|
||||
|
||||
gtk_widget_show (entry);
|
||||
zenity_entry_fill_entries (&entries, entry_data->data);
|
||||
|
||||
gtk_box_pack_end (GTK_BOX (vbox), entry, FALSE, FALSE, 0);
|
||||
n_entries = g_slist_length (entries);
|
||||
|
||||
gtk_label_set_mnemonic_widget (GTK_LABEL (text), entry);
|
||||
if (n_entries > 1) {
|
||||
entry = gtk_combo_box_text_new_with_entry ();
|
||||
|
||||
g_object_unref (builder);
|
||||
for (tmp = entries; tmp; tmp = tmp->next) {
|
||||
gtk_combo_box_text_append_text (
|
||||
GTK_COMBO_BOX_TEXT (entry), tmp->data);
|
||||
}
|
||||
|
||||
zenity_util_show_dialog (dialog, data->attach);
|
||||
if (entry_data->entry_text) {
|
||||
gtk_combo_box_text_prepend_text (
|
||||
GTK_COMBO_BOX_TEXT (entry), entry_data->entry_text);
|
||||
gtk_combo_box_set_active (GTK_COMBO_BOX (entry), 0);
|
||||
}
|
||||
|
||||
if(data->timeout_delay > 0) {
|
||||
g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, dialog);
|
||||
}
|
||||
g_signal_connect (gtk_bin_get_child (GTK_BIN (entry)),
|
||||
"activate",
|
||||
G_CALLBACK (zenity_entry_combo_activate_default),
|
||||
GTK_WINDOW (dialog));
|
||||
} else {
|
||||
entry = gtk_entry_new ();
|
||||
|
||||
gtk_main ();
|
||||
gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE);
|
||||
|
||||
if (entry_data->entry_text)
|
||||
gtk_entry_set_text (GTK_ENTRY (entry), entry_data->entry_text);
|
||||
|
||||
if (entry_data->hide_text)
|
||||
g_object_set (G_OBJECT (entry), "visibility", FALSE, NULL);
|
||||
}
|
||||
|
||||
gtk_widget_show (entry);
|
||||
|
||||
gtk_box_pack_end (GTK_BOX (vbox), entry, FALSE, FALSE, 0);
|
||||
|
||||
gtk_label_set_mnemonic_widget (GTK_LABEL (text), entry);
|
||||
|
||||
g_object_unref (builder);
|
||||
|
||||
zenity_util_show_dialog (dialog, data->attach);
|
||||
|
||||
if (data->timeout_delay > 0) {
|
||||
g_timeout_add_seconds (data->timeout_delay,
|
||||
(GSourceFunc) zenity_util_timeout_handle,
|
||||
dialog);
|
||||
}
|
||||
|
||||
gtk_main ();
|
||||
}
|
||||
|
||||
static void
|
||||
zenity_entry_dialog_output (void)
|
||||
{
|
||||
const gchar *text;
|
||||
if (n_entries > 1)
|
||||
text = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (entry));
|
||||
else
|
||||
text = gtk_entry_get_text (GTK_ENTRY (entry));
|
||||
|
||||
if (text != NULL)
|
||||
g_print ("%s\n", text);
|
||||
zenity_entry_dialog_output (void) {
|
||||
const gchar *text;
|
||||
if (n_entries > 1)
|
||||
text = gtk_combo_box_text_get_active_text (GTK_COMBO_BOX_TEXT (entry));
|
||||
else
|
||||
text = gtk_entry_get_text (GTK_ENTRY (entry));
|
||||
|
||||
if (text != NULL)
|
||||
g_print ("%s\n", text);
|
||||
}
|
||||
|
||||
static void
|
||||
zenity_entry_dialog_response (GtkWidget *widget, int response, gpointer data)
|
||||
{
|
||||
ZenityData *zen_data = data;
|
||||
zenity_entry_dialog_response (GtkWidget *widget, int response, gpointer data) {
|
||||
ZenityData *zen_data = data;
|
||||
|
||||
switch (response) {
|
||||
case GTK_RESPONSE_OK:
|
||||
zenity_entry_dialog_output ();
|
||||
zenity_util_exit_code_with_data(ZENITY_OK, zen_data);
|
||||
break;
|
||||
switch (response) {
|
||||
case GTK_RESPONSE_OK:
|
||||
zenity_entry_dialog_output ();
|
||||
zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
|
||||
break;
|
||||
|
||||
case GTK_RESPONSE_CANCEL:
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
|
||||
break;
|
||||
case GTK_RESPONSE_CANCEL:
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
|
||||
break;
|
||||
|
||||
case ZENITY_TIMEOUT:
|
||||
zenity_entry_dialog_output ();
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
|
||||
break;
|
||||
case ZENITY_TIMEOUT:
|
||||
zenity_entry_dialog_output ();
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
|
||||
break;
|
||||
|
||||
default:
|
||||
if (zen_data->extra_label && response < g_strv_length(zen_data->extra_label))
|
||||
printf("%s\n",zen_data->extra_label[response]);
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
|
||||
break;
|
||||
}
|
||||
gtk_main_quit ();
|
||||
default:
|
||||
if (zen_data->extra_label &&
|
||||
response < g_strv_length (zen_data->extra_label))
|
||||
printf ("%s\n", zen_data->extra_label[response]);
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
|
||||
break;
|
||||
}
|
||||
gtk_main_quit ();
|
||||
}
|
||||
|
@ -23,176 +23,192 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <string.h>
|
||||
#include "zenity.h"
|
||||
#include "util.h"
|
||||
#include "zenity.h"
|
||||
#include <string.h>
|
||||
|
||||
static ZenityData *zen_data;
|
||||
static ZenityData *zen_data;
|
||||
|
||||
static void zenity_fileselection_dialog_response (GtkWidget *widget, int response, gpointer data);
|
||||
static void zenity_fileselection_dialog_response (
|
||||
GtkWidget *widget, int response, gpointer data);
|
||||
|
||||
void zenity_fileselection (ZenityData *data, ZenityFileData *file_data)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
gchar *dir;
|
||||
gchar *basename;
|
||||
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
|
||||
void
|
||||
zenity_fileselection (ZenityData *data, ZenityFileData *file_data) {
|
||||
GtkWidget *dialog;
|
||||
gchar *dir;
|
||||
gchar *basename;
|
||||
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
|
||||
|
||||
zen_data = data;
|
||||
zen_data = data;
|
||||
|
||||
if (file_data->directory) {
|
||||
if (file_data->save)
|
||||
action = GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER;
|
||||
else
|
||||
action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER;
|
||||
} else {
|
||||
if (file_data->save)
|
||||
action = GTK_FILE_CHOOSER_ACTION_SAVE;
|
||||
}
|
||||
if (file_data->directory) {
|
||||
if (file_data->save)
|
||||
action = GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER;
|
||||
else
|
||||
action = GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER;
|
||||
} else {
|
||||
if (file_data->save)
|
||||
action = GTK_FILE_CHOOSER_ACTION_SAVE;
|
||||
}
|
||||
|
||||
dialog = gtk_file_chooser_dialog_new (NULL, NULL,
|
||||
action,
|
||||
_("_Cancel"), GTK_RESPONSE_CANCEL,
|
||||
_("_OK"), GTK_RESPONSE_OK,
|
||||
NULL);
|
||||
dialog = gtk_file_chooser_dialog_new (NULL,
|
||||
NULL,
|
||||
action,
|
||||
_ ("_Cancel"),
|
||||
GTK_RESPONSE_CANCEL,
|
||||
_ ("_OK"),
|
||||
GTK_RESPONSE_OK,
|
||||
NULL);
|
||||
|
||||
gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog),
|
||||
file_data->confirm_overwrite);
|
||||
gtk_file_chooser_set_do_overwrite_confirmation (
|
||||
GTK_FILE_CHOOSER (dialog), file_data->confirm_overwrite);
|
||||
|
||||
g_signal_connect (G_OBJECT (dialog), "response",
|
||||
G_CALLBACK (zenity_fileselection_dialog_response), file_data);
|
||||
g_signal_connect (G_OBJECT (dialog),
|
||||
"response",
|
||||
G_CALLBACK (zenity_fileselection_dialog_response),
|
||||
file_data);
|
||||
|
||||
if (data->extra_label) {
|
||||
gint i=0;
|
||||
while(data->extra_label[i]!=NULL){
|
||||
gtk_dialog_add_button (GTK_DIALOG (dialog), data->extra_label[i], i);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
if (data->extra_label) {
|
||||
gint i = 0;
|
||||
while (data->extra_label[i] != NULL) {
|
||||
gtk_dialog_add_button (
|
||||
GTK_DIALOG (dialog), data->extra_label[i], i);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
if (data->dialog_title)
|
||||
gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
|
||||
|
||||
zenity_util_set_window_icon (dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-file.png"));
|
||||
if (data->dialog_title)
|
||||
gtk_window_set_title (GTK_WINDOW (dialog), data->dialog_title);
|
||||
|
||||
if (data->modal)
|
||||
gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
|
||||
zenity_util_set_window_icon (
|
||||
dialog, data->window_icon, ZENITY_IMAGE_FULLPATH ("zenity-file.png"));
|
||||
|
||||
if (file_data->uri) {
|
||||
dir = g_path_get_dirname (file_data->uri);
|
||||
if (data->modal)
|
||||
gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
|
||||
|
||||
if (g_path_is_absolute (file_data->uri) == TRUE)
|
||||
gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), dir);
|
||||
if (file_data->uri) {
|
||||
dir = g_path_get_dirname (file_data->uri);
|
||||
|
||||
if (file_data->uri[strlen (file_data->uri) - 1] != '/') {
|
||||
basename = g_path_get_basename (file_data->uri);
|
||||
if (file_data->save)
|
||||
gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), basename);
|
||||
else
|
||||
(void) gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (dialog), file_data->uri);
|
||||
g_free (basename);
|
||||
}
|
||||
g_free (dir);
|
||||
}
|
||||
if (g_path_is_absolute (file_data->uri) == TRUE)
|
||||
gtk_file_chooser_set_current_folder (
|
||||
GTK_FILE_CHOOSER (dialog), dir);
|
||||
|
||||
if (file_data->multi)
|
||||
gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (dialog), TRUE);
|
||||
if (file_data->uri[strlen (file_data->uri) - 1] != '/') {
|
||||
basename = g_path_get_basename (file_data->uri);
|
||||
if (file_data->save)
|
||||
gtk_file_chooser_set_current_name (
|
||||
GTK_FILE_CHOOSER (dialog), basename);
|
||||
else
|
||||
(void) gtk_file_chooser_set_filename (
|
||||
GTK_FILE_CHOOSER (dialog), file_data->uri);
|
||||
g_free (basename);
|
||||
}
|
||||
g_free (dir);
|
||||
}
|
||||
|
||||
if (file_data->filter) {
|
||||
/* Filter format: Executables | *.exe *.bat *.com */
|
||||
gint filter_i;
|
||||
if (file_data->multi)
|
||||
gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (dialog), TRUE);
|
||||
|
||||
for (filter_i = 0; file_data->filter [filter_i]; filter_i++) {
|
||||
GtkFileFilter *filter = gtk_file_filter_new();
|
||||
gchar *filter_str = file_data->filter [filter_i];
|
||||
gchar **pattern, **patterns;
|
||||
gchar *name = NULL;
|
||||
gint i;
|
||||
if (file_data->filter) {
|
||||
/* Filter format: Executables | *.exe *.bat *.com */
|
||||
gint filter_i;
|
||||
|
||||
/* Set name */
|
||||
for (i = 0; filter_str[i] != '\0'; i++)
|
||||
if (filter_str[i] == '|')
|
||||
break;
|
||||
for (filter_i = 0; file_data->filter[filter_i]; filter_i++) {
|
||||
GtkFileFilter *filter = gtk_file_filter_new ();
|
||||
gchar *filter_str = file_data->filter[filter_i];
|
||||
gchar **pattern, **patterns;
|
||||
gchar *name = NULL;
|
||||
gint i;
|
||||
|
||||
if (filter_str[i] == '|') {
|
||||
name = g_strndup (filter_str, i);
|
||||
g_strstrip (name);
|
||||
}
|
||||
/* Set name */
|
||||
for (i = 0; filter_str[i] != '\0'; i++)
|
||||
if (filter_str[i] == '|')
|
||||
break;
|
||||
|
||||
if (name) {
|
||||
gtk_file_filter_set_name (filter, name);
|
||||
if (filter_str[i] == '|') {
|
||||
name = g_strndup (filter_str, i);
|
||||
g_strstrip (name);
|
||||
}
|
||||
|
||||
/* Point i to the right position for split */
|
||||
for (++i; filter_str[i] == ' '; i++);
|
||||
} else {
|
||||
gtk_file_filter_set_name (filter, filter_str);
|
||||
i = 0;
|
||||
}
|
||||
if (name) {
|
||||
gtk_file_filter_set_name (filter, name);
|
||||
|
||||
/* Get patterns */
|
||||
patterns = g_strsplit_set (filter_str + i, " ", -1);
|
||||
/* Point i to the right position for split */
|
||||
for (++i; filter_str[i] == ' '; i++)
|
||||
;
|
||||
} else {
|
||||
gtk_file_filter_set_name (filter, filter_str);
|
||||
i = 0;
|
||||
}
|
||||
|
||||
for (pattern = patterns; *pattern; pattern++)
|
||||
gtk_file_filter_add_pattern (filter, *pattern);
|
||||
/* Get patterns */
|
||||
patterns = g_strsplit_set (filter_str + i, " ", -1);
|
||||
|
||||
if (name)
|
||||
g_free (name);
|
||||
for (pattern = patterns; *pattern; pattern++)
|
||||
gtk_file_filter_add_pattern (filter, *pattern);
|
||||
|
||||
g_strfreev (patterns);
|
||||
if (name)
|
||||
g_free (name);
|
||||
|
||||
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
|
||||
}
|
||||
}
|
||||
g_strfreev (patterns);
|
||||
|
||||
zenity_util_show_dialog (dialog, data->attach);
|
||||
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
|
||||
}
|
||||
}
|
||||
|
||||
if(data->timeout_delay > 0) {
|
||||
g_timeout_add_seconds (data->timeout_delay, (GSourceFunc) zenity_util_timeout_handle, dialog);
|
||||
}
|
||||
zenity_util_show_dialog (dialog, data->attach);
|
||||
|
||||
gtk_main ();
|
||||
if (data->timeout_delay > 0) {
|
||||
g_timeout_add_seconds (data->timeout_delay,
|
||||
(GSourceFunc) zenity_util_timeout_handle,
|
||||
dialog);
|
||||
}
|
||||
|
||||
gtk_main ();
|
||||
}
|
||||
|
||||
static void
|
||||
zenity_fileselection_dialog_output (GtkWidget *widget, ZenityFileData *file_data)
|
||||
{
|
||||
GSList *selections, *iter;
|
||||
selections = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER (widget));
|
||||
for (iter = selections;iter != NULL; iter = iter->next) {
|
||||
g_print ("%s", g_filename_to_utf8 ((gchar*)iter->data, -1, NULL, NULL, NULL));
|
||||
g_free (iter->data);
|
||||
if (iter->next != NULL)
|
||||
g_print ("%s",file_data->separator);
|
||||
}
|
||||
g_print("\n");
|
||||
g_slist_free(selections);
|
||||
zenity_fileselection_dialog_output (
|
||||
GtkWidget *widget, ZenityFileData *file_data) {
|
||||
GSList *selections, *iter;
|
||||
selections = gtk_file_chooser_get_filenames (GTK_FILE_CHOOSER (widget));
|
||||
for (iter = selections; iter != NULL; iter = iter->next) {
|
||||
g_print ("%s",
|
||||
g_filename_to_utf8 ((gchar *) iter->data, -1, NULL, NULL, NULL));
|
||||
g_free (iter->data);
|
||||
if (iter->next != NULL)
|
||||
g_print ("%s", file_data->separator);
|
||||
}
|
||||
g_print ("\n");
|
||||
g_slist_free (selections);
|
||||
}
|
||||
|
||||
static void
|
||||
zenity_fileselection_dialog_response (GtkWidget *widget, int response, gpointer data)
|
||||
{
|
||||
ZenityFileData *file_data = data;
|
||||
|
||||
switch (response) {
|
||||
case GTK_RESPONSE_OK:
|
||||
zenity_fileselection_dialog_output (widget, file_data);
|
||||
zenity_util_exit_code_with_data(ZENITY_OK, zen_data);
|
||||
break;
|
||||
zenity_fileselection_dialog_response (
|
||||
GtkWidget *widget, int response, gpointer data) {
|
||||
ZenityFileData *file_data = data;
|
||||
|
||||
case GTK_RESPONSE_CANCEL:
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
|
||||
break;
|
||||
switch (response) {
|
||||
case GTK_RESPONSE_OK:
|
||||
zenity_fileselection_dialog_output (widget, file_data);
|
||||
zenity_util_exit_code_with_data (ZENITY_OK, zen_data);
|
||||
break;
|
||||
|
||||
case ZENITY_TIMEOUT:
|
||||
zenity_fileselection_dialog_output (widget, file_data);
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
|
||||
break;
|
||||
case GTK_RESPONSE_CANCEL:
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_CANCEL);
|
||||
break;
|
||||
|
||||
default:
|
||||
if (zen_data->extra_label && response < g_strv_length(zen_data->extra_label))
|
||||
printf("%s\n",zen_data->extra_label[response]);
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
|
||||
break;
|
||||
}
|
||||
gtk_main_quit ();
|
||||
case ZENITY_TIMEOUT:
|
||||
zenity_fileselection_dialog_output (widget, file_data);
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_TIMEOUT);
|
||||
break;
|
||||
|
||||
default:
|
||||
if (zen_data->extra_label &&
|
||||
response < g_strv_length (zen_data->extra_label))
|
||||
printf ("%s\n", zen_data->extra_label[response]);
|
||||
zen_data->exit_code = zenity_util_return_exit_code (ZENITY_ESC);
|
||||
break;
|
||||
}
|
||||
gtk_main_quit ();
|
||||
}
|
||||
|
620
src/forms.c
620
src/forms.c
@ -22,360 +22,390 @@
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include <string.h>
|
||||
#include "zenity.h"
|
||||
#include "util.h"
|
||||
#include "zenity.h"
|
||||
#include <string.h>
|
||||
|
||||
static ZenityData *zen_data;
|
||||
static GSList *selected;
|
||||
static void zenity_forms_dialog_response (GtkWidget *widget, int response, gpointer data);
|
||||
static void zenity_forms_dialog_response (
|
||||
GtkWidget *widget, int response, gpointer data);
|
||||
|
||||
static void zenity_forms_dialog_get_selected (GtkTreeModel *model, GtkTreePath *path_buf, GtkTreeIter *iter, GtkTreeView *tree_view)
|
||||
{
|
||||
gint n_columns = 0;
|
||||
gint i = 0;
|
||||
GValue value = {0, };
|
||||
static void
|
||||
zenity_forms_dialog_get_selected (GtkTreeModel *model, GtkTreePath *path_buf,
|
||||
GtkTreeIter *iter, GtkTreeView *tree_view) {
|
||||
gint n_columns = 0;
|
||||
gint i = 0;
|
||||
GValue value = {
|
||||
0,
|
||||
};
|
||||
|
||||
n_columns = gtk_tree_model_get_n_columns (model);
|
||||
for (i = 0; i < n_columns; i++) {
|
||||
gtk_tree_model_get_value (model, iter, i, &value);
|
||||
selected = g_slist_append (selected, g_value_dup_string (&value));
|
||||
g_value_unset (&value);
|
||||
}
|
||||
n_columns = gtk_tree_model_get_n_columns (model);
|
||||
for (i = 0; i < n_columns; i++) {
|
||||
gtk_tree_model_get_value (model, iter, i, &value);
|
||||
selected = g_slist_append (selected, g_value_dup_string (&value));
|
||||
g_value_unset (&value);
|
||||
}
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
zenity_forms_create_and_fill_combo (ZenityFormsData *forms_data, int combo_number)
|
||||
{
|
||||
GtkListStore *list_store;
|
||||
GtkWidget *combo_box;
|
||||
GtkCellRenderer *renderer;
|
||||
gchar *combo_values;
|
||||
zenity_forms_create_and_fill_combo (
|
||||
ZenityFormsData *forms_data, int combo_number) {
|
||||
GtkListStore *list_store;
|
||||
GtkWidget *combo_box;
|
||||
GtkCellRenderer *renderer;
|
||||
gchar *combo_values;
|
||||
|
||||
list_store = gtk_list_store_new (1, G_TYPE_STRING);
|
||||
list_store = gtk_list_store_new (1, G_TYPE_STRING);
|
||||
|
||||
if (forms_data->combo_values) {
|
||||
combo_values = g_slist_nth_data (forms_data->combo_values, combo_number);
|
||||
if (combo_values) {
|
||||
gchar **row_values = g_strsplit_set (combo_values, "|", -1);
|
||||
if (row_values) {
|
||||
gint i = 0;
|
||||
GtkTreeIter iter;
|
||||
gchar *row = row_values[i];
|
||||
if (forms_data->combo_values) {
|
||||
combo_values =
|
||||
g_slist_nth_data (forms_data->combo_values, combo_number);
|
||||
if (combo_values) {
|
||||
gchar **row_values = g_strsplit_set (combo_values, "|", -1);
|
||||
if (row_values) {
|
||||
gint i = 0;
|
||||
GtkTreeIter iter;
|
||||
gchar *row = row_values[i];
|
||||
|
||||
while (row != NULL) {
|
||||
gtk_list_store_append (list_store, &iter);
|
||||
gtk_list_store_set (list_store, &iter, 0, row, -1);
|
||||
row = row_values[++i];
|
||||
}
|
||||
g_strfreev (row_values);
|
||||
}
|
||||
g_free (combo_values);
|
||||
}
|
||||
}
|
||||
while (row != NULL) {
|
||||
gtk_list_store_append (list_store, &iter);
|
||||
gtk_list_store_set (list_store, &iter, 0, row, -1);
|
||||
row = row_values[++i];
|
||||
}
|
||||
g_strfreev (row_values);
|
||||
}
|
||||
g_free (combo_values);
|
||||
}
|
||||
}
|
||||
|
||||
combo_box = gtk_combo_box_new_with_model (GTK_TREE_MODEL (list_store));
|
||||
g_object_unref (G_OBJECT (list_store));
|
||||
combo_box = gtk_combo_box_new_with_model (GTK_TREE_MODEL (list_store));
|
||||
g_object_unref (G_OBJECT (list_store));
|
||||
|
||||
renderer = gtk_cell_renderer_text_new ();
|
||||
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_box), renderer, TRUE);
|
||||
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo_box), renderer, "text", 0, NULL);
|
||||
renderer = gtk_cell_renderer_text_new ();
|
||||
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo_box), renderer, TRUE);
|
||||
gtk_cell_layout_set_attributes (
|
||||
GTK_CELL_LAYOUT (combo_box), renderer, "text", 0, NULL);
|
||||
|
||||
return combo_box;
|
||||
return combo_box;
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
zenity_forms_create_and_fill_list (ZenityFormsData *forms_data,
|
||||
int list_number, gchar *header)
|
||||
{
|
||||
GtkListStore *list_store;
|
||||
GtkWidget *tree_view;
|
||||
GtkWidget *scrolled_window;
|
||||
GtkCellRenderer *renderer;
|
||||
GtkTreeViewColumn *column;
|
||||
GType *column_types = NULL;
|
||||
gchar *list_values;
|
||||
gchar *column_values;
|
||||
static GtkWidget *
|
||||
zenity_forms_create_and_fill_list (
|
||||
ZenityFormsData *forms_data, int list_number, gchar *header) {
|
||||
GtkListStore *list_store;
|
||||
GtkWidget *tree_view;
|
||||
GtkWidget *scrolled_window;
|
||||
GtkCellRenderer *renderer;
|
||||
GtkTreeViewColumn *column;
|
||||
GType *column_types = NULL;
|
||||
gchar *list_values;
|
||||
gchar *column_values;
|
||||
|
||||
gint i = 0;
|
||||
/* If no column names available, default is one */
|
||||
gint n_columns = 1;
|
||||
gint column_index = 0;
|
||||
gint i = 0;
|
||||
/* If no column names available, default is one */
|
||||
gint n_columns = 1;
|
||||
gint column_index = 0;
|
||||
|
||||
tree_view = gtk_tree_view_new ();
|
||||
tree_view = gtk_tree_view_new ();
|
||||
|
||||
if (forms_data->column_values) {
|
||||
column_values = g_slist_nth_data (forms_data->column_values, list_number);
|
||||
if (column_values) {
|
||||
gchar **values = g_strsplit_set (column_values, "|", -1);
|
||||
if (values) {
|
||||
n_columns = g_strv_length (values);
|
||||
column_types = g_new (GType, n_columns);
|
||||
for (i = 0; i < n_columns; i++)
|
||||
column_types[i] = G_TYPE_STRING;
|
||||