summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/msg.c4
-rw-r--r--src/option.c45
-rw-r--r--src/zenity.h1
3 files changed, 48 insertions, 2 deletions
diff --git a/src/msg.c b/src/msg.c
index f4d5e7a..f5d4dc9 100644
--- a/src/msg.c
+++ b/src/msg.c
@@ -159,6 +159,9 @@ zenity_msg (ZenityData *data, ZenityMsgData *msg_data)
gtk_label_set_markup (GTK_LABEL (text), g_strcompress (msg_data->dialog_text));
}
+ if (msg_data->ellipsize)
+ gtk_label_set_ellipsize (GTK_LABEL(text), PANGO_ALIGN_RIGHT);
+
if (msg_data->dialog_icon)
gtk_image_set_from_icon_name (GTK_IMAGE (image), msg_data->dialog_icon, GTK_ICON_SIZE_DIALOG);
@@ -176,6 +179,7 @@ zenity_msg (ZenityData *data, ZenityMsgData *msg_data)
gtk_main ();
}
+
static void
zenity_msg_dialog_response (GtkWidget *widget, int response, gpointer data)
{
diff --git a/src/option.c b/src/option.c
index fb25f37..1b2bb5c 100644
--- a/src/option.c
+++ b/src/option.c
@@ -47,6 +47,7 @@ static gchar *zenity_general_ok_button;
static gchar *zenity_general_cancel_button;
static gboolean zenity_general_modal;
static gint zenity_general_attach;
+static gboolean zenity_general_dialog_ellipsize;
/* Calendar Dialog Options */
static gboolean zenity_calendar_active;
@@ -389,6 +390,14 @@ static GOptionEntry error_options[] = {
&zenity_general_dialog_no_markup,
N_("Do not enable pango markup")
},
+ {
+ "ellipsize",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_dialog_ellipsize,
+ N_("Enable ellipsize in dialog text. This fix the high window size with big texts")
+ },
{
NULL
}
@@ -439,6 +448,14 @@ static GOptionEntry info_options[] = {
&zenity_general_dialog_no_markup,
N_("Do not enable pango markup")
},
+ {
+ "ellipsize",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_dialog_ellipsize,
+ N_("Enable ellipsize in dialog text. This fix the high window size with big texts")
+ },
{
NULL
}
@@ -809,6 +826,14 @@ static GOptionEntry question_options[] = {
N_("Give cancel button focus by default"),
NULL
},
+ {
+ "ellipsize",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_dialog_ellipsize,
+ N_("Enable ellipsize in dialog text. This fix the high window size with big texts")
+ },
{
NULL
}
@@ -939,6 +964,14 @@ static GOptionEntry warning_options[] = {
&zenity_general_dialog_no_markup,
N_("Do not enable pango markup")
},
+ {
+ "ellipsize",
+ '\0',
+ G_OPTION_FLAG_NOALIAS,
+ G_OPTION_ARG_NONE,
+ &zenity_general_dialog_ellipsize,
+ N_("Enable ellipsize in dialog text. This fix the high window size with big texts")
+ },
{
NULL
}
@@ -1646,6 +1679,7 @@ zenity_general_post_callback (GOptionContext *context,
results->data->cancel_label = zenity_general_cancel_button;
results->data->modal = zenity_general_modal;
results->data->attach = zenity_general_attach;
+
return TRUE;
}
@@ -1741,6 +1775,7 @@ zenity_error_post_callback (GOptionContext *context,
results->msg_data->mode = ZENITY_MSG_ERROR;
results->msg_data->no_wrap = zenity_general_dialog_no_wrap;
results->msg_data->no_markup = zenity_general_dialog_no_markup;
+ results->msg_data->ellipsize = zenity_general_dialog_ellipsize;
}
return TRUE;
@@ -1760,6 +1795,7 @@ zenity_info_post_callback (GOptionContext *context,
results->msg_data->mode = ZENITY_MSG_INFO;
results->msg_data->no_wrap = zenity_general_dialog_no_wrap;
results->msg_data->no_markup = zenity_general_dialog_no_markup;
+ results->msg_data->ellipsize = zenity_general_dialog_ellipsize;
}
return TRUE;
@@ -1936,6 +1972,7 @@ zenity_question_post_callback (GOptionContext *context,
results->msg_data->mode = ZENITY_MSG_QUESTION;
results->msg_data->no_wrap = zenity_general_dialog_no_wrap;
results->msg_data->no_markup = zenity_general_dialog_no_markup;
+ results->msg_data->ellipsize = zenity_general_dialog_ellipsize;
results->msg_data->default_cancel = zenity_question_default_cancel;
}
@@ -1983,6 +2020,7 @@ zenity_warning_post_callback (GOptionContext *context,
results->msg_data->mode = ZENITY_MSG_WARNING;
results->msg_data->no_wrap = zenity_general_dialog_no_wrap;
results->msg_data->no_markup = zenity_general_dialog_no_markup;
+ results->msg_data->ellipsize = zenity_general_dialog_ellipsize;
}
return TRUE;
@@ -2405,10 +2443,13 @@ zenity_option_parse (gint argc, gchar **argv)
if(results->mode == MODE_FILE || results->mode == MODE_ERROR || results->mode == MODE_WARNING || results->mode == MODE_INFO)
zenity_option_error (zenity_option_get_name (general_options, &zenity_general_cancel_button), ERROR_SUPPORT);
-
if (zenity_general_dialog_no_wrap)
if (results->mode != MODE_INFO && results->mode != MODE_ERROR && results->mode != MODE_QUESTION && results->mode != MODE_WARNING && results->mode != MODE_TEXTINFO)
zenity_option_error (zenity_option_get_name (text_options, &zenity_general_dialog_no_wrap), ERROR_SUPPORT);
-
+
+ if (zenity_general_dialog_ellipsize)
+ if (results->mode != MODE_INFO && results->mode != MODE_ERROR && results->mode != MODE_QUESTION && results->mode != MODE_WARNING)
+ zenity_option_error (zenity_option_get_name (text_options, &zenity_general_dialog_ellipsize), ERROR_SUPPORT);
+
return results;
}
diff --git a/src/zenity.h b/src/zenity.h
index 6e1b687..d3606cd 100644
--- a/src/zenity.h
+++ b/src/zenity.h
@@ -67,6 +67,7 @@ typedef struct {
gboolean no_wrap;
gboolean no_markup;
gboolean default_cancel;
+ gboolean ellipsize;
} ZenityMsgData;
typedef struct {