Also allow the title to be set by the user

This commit is contained in:
Pierre Pronchery 2012-10-13 02:46:48 +00:00
parent 3a41973f43
commit c487de674d

View File

@ -26,7 +26,7 @@
/* private */ /* private */
/* prototypes */ /* prototypes */
static int _message(unsigned int timeout, GtkMessageType type, static int _message(unsigned int timeout, GtkMessageType type,
char const * message); char const * title, char const * message);
/* callbacks */ /* callbacks */
static gboolean _message_on_timeout(gpointer data); static gboolean _message_on_timeout(gpointer data);
@ -37,10 +37,9 @@ static int _usage(void);
/* functions */ /* functions */
/* message */ /* message */
static int _message(unsigned int timeout, GtkMessageType type, static int _message(unsigned int timeout, GtkMessageType type,
char const * message) char const * title, char const * message)
{ {
PangoFontDescription * bold; PangoFontDescription * bold;
char const * title;
char const * stock; char const * stock;
GtkWidget * plug; GtkWidget * plug;
GtkWidget * hbox; GtkWidget * hbox;
@ -55,20 +54,24 @@ static int _message(unsigned int timeout, GtkMessageType type,
{ {
case GTK_MESSAGE_ERROR: case GTK_MESSAGE_ERROR:
stock = GTK_STOCK_DIALOG_ERROR; stock = GTK_STOCK_DIALOG_ERROR;
title = "Error"; if(title == NULL)
title = "Error";
break; break;
case GTK_MESSAGE_QUESTION: case GTK_MESSAGE_QUESTION:
stock = GTK_STOCK_DIALOG_QUESTION; stock = GTK_STOCK_DIALOG_QUESTION;
title = "Question"; if(title == NULL)
title = "Question";
break; break;
case GTK_MESSAGE_WARNING: case GTK_MESSAGE_WARNING:
stock = GTK_STOCK_DIALOG_WARNING; stock = GTK_STOCK_DIALOG_WARNING;
title = "Warning"; if(title == NULL)
title = "Warning";
break; break;
case GTK_MESSAGE_INFO: case GTK_MESSAGE_INFO:
default: default:
stock = GTK_STOCK_DIALOG_INFO; stock = GTK_STOCK_DIALOG_INFO;
title = "Information"; if(title == NULL)
title = "Information";
break; break;
} }
plug = gtk_plug_new(0); plug = gtk_plug_new(0);
@ -120,7 +123,8 @@ static gboolean _message_on_timeout(gpointer data)
/* usage */ /* usage */
static int _usage(void) static int _usage(void)
{ {
fputs("Usage: panel-message [-EIQW][-t timeout] message\n", stderr); fputs("Usage: panel-message [-EIQW][-T title][-t timeout] message\n",
stderr);
return 1; return 1;
} }
@ -132,11 +136,12 @@ int main(int argc, char * argv[])
{ {
GtkMessageType type = GTK_MESSAGE_INFO; GtkMessageType type = GTK_MESSAGE_INFO;
unsigned int timeout = 3; unsigned int timeout = 3;
char const * title = NULL;
int o; int o;
char * p; char * p;
gtk_init(&argc, &argv); gtk_init(&argc, &argv);
while((o = getopt(argc, argv, "EIQWt:")) != -1) while((o = getopt(argc, argv, "EIQT:Wt:")) != -1)
switch(o) switch(o)
{ {
case 'E': case 'E':
@ -148,6 +153,9 @@ int main(int argc, char * argv[])
case 'Q': case 'Q':
type = GTK_MESSAGE_QUESTION; type = GTK_MESSAGE_QUESTION;
break; break;
case 'T':
title = optarg;
break;
case 'W': case 'W':
type = GTK_MESSAGE_WARNING; type = GTK_MESSAGE_WARNING;
break; break;
@ -161,5 +169,5 @@ int main(int argc, char * argv[])
} }
if(argc - optind != 1) if(argc - optind != 1)
return _usage(); return _usage();
return (_message(timeout, type, argv[optind]) == 0) ? 0 : 2; return (_message(timeout, type, title, argv[optind]) == 0) ? 0 : 2;
} }