zenity/src/zenity.h
Nuno Araujo 74d867c2aa Allow to specify notification's hints
Desktop Notifications Specification [1] specifies that hints can be
used to provide extra data to a notification server.

A new command line option --hint allows to add a hint to the
notification to display.
This option can be used multiple times, one for each hint to add.
--hint option format is name:value.

The new 'hints' command allow to specify hints in 'listen' mode.
Same format that in the command line option is used.
Several hints can be passed by separating them by '\n'.

Hints of value type '(iiibiiay)' are not supported.
This value type is used to pass a raw data image as a hint value.

This new change is useful for implementing the NotificationSource [2]
GNOME Goal.
A application using zenity and having a desktop file, can now specify
that it is a notification emitter and it's notifications can be
filtered in the new Notifications GNOME control panel pane.

[1] http://people.gnome.org/~mccann/docs/notification-spec/notification-spec-latest.html#hints
[2] https://live.gnome.org/GnomeGoals/NotificationSource

https://bugzilla.gnome.org/show_bug.cgi?id=693751
2013-02-25 20:12:53 -03:00

212 lines
5.0 KiB
C

#ifndef ZENITY_H
#define ZENITY_H
#include <gtk/gtk.h>
G_BEGIN_DECLS
#ifdef ENABLE_NLS
#include <libintl.h>
#define _(String) dgettext(GETTEXT_PACKAGE,String)
#ifdef gettext_noop
#define N_(String) gettext_noop(String)
#else
#define N_(String) (String)
#endif
#else /* NLS is disabled */
#define _(String) (String)
#define N_(String) (String)
#define textdomain(String) (String)
#define gettext(String) (String)
#define dgettext(Domain,String) (String)
#define dcgettext(Domain,String,Type) (String)
#define bindtextdomain(Domain,Directory) (Domain)
#endif
typedef struct {
gchar *dialog_title;
gchar *window_icon;
gchar *ok_label;
gchar *cancel_label;
gint width;
gint height;
gint exit_code;
gint timeout_delay;
gboolean modal;
} ZenityData;
typedef enum {
ZENITY_OK,
ZENITY_CANCEL,
ZENITY_ESC,
ZENITY_ERROR,
ZENITY_EXTRA,
ZENITY_TIMEOUT
} ZenityExitCode;
typedef struct {
gchar *dialog_text;
gint day;
gint month;
gint year;
gchar *date_format;
} ZenityCalendarData;
typedef enum {
ZENITY_MSG_WARNING,
ZENITY_MSG_QUESTION,
ZENITY_MSG_ERROR,
ZENITY_MSG_INFO
} MsgMode;
typedef struct {
gchar *dialog_text;
gchar *dialog_icon;
MsgMode mode;
gboolean no_wrap;
gboolean no_markup;
} ZenityMsgData;
typedef struct {
gchar *dialog_text;
gint value;
gint min_value;
gint max_value;
gint step;
gboolean print_partial;
gboolean hide_value;
} ZenityScaleData;
typedef struct {
gchar *uri;
gboolean multi;
gboolean directory;
gboolean save;
gboolean confirm_overwrite;
gchar *separator;
gchar **filter;
} ZenityFileData;
typedef struct {
gchar *dialog_text;
gchar *entry_text;
gboolean hide_text;
const gchar **data;
} ZenityEntryData;
typedef struct {
gchar *dialog_text;
gchar *entry_text;
gboolean pulsate;
gboolean autoclose;
gboolean autokill;
gdouble percentage;
gboolean no_cancel;
} ZenityProgressData;
typedef struct {
gchar *uri;
gboolean editable;
gboolean no_wrap;
gchar *font;
GtkTextBuffer *buffer;
gchar *checkbox;
#ifdef HAVE_WEBKITGTK
gboolean html;
gchar *url;
#endif
} ZenityTextData;
typedef struct {
gchar *dialog_text;
GSList *columns;
gboolean checkbox;
gboolean radiobox;
gboolean hide_header;
gboolean imagebox;
gchar *separator;
gboolean multi;
gboolean editable;
gchar *print_column;
gchar *hide_column;
const gchar **data;
} ZenityTreeData;
#ifdef HAVE_LIBNOTIFY
typedef struct {
gchar *notification_text;
gboolean listen;
gchar **notification_hints;
} ZenityNotificationData;
#endif
typedef struct {
gchar *color;
gboolean show_palette;
} ZenityColorData;
typedef struct {
GSList *list;
GSList *list_widgets;
GSList *list_values;
GSList *column_values;
gchar *dialog_text;
gchar *separator;
gchar *date_format;
// gchar *hide_column;
gboolean show_header;
} ZenityFormsData;
typedef enum {
ZENITY_FORMS_ENTRY,
ZENITY_FORMS_PASSWORD,
ZENITY_FORMS_CALENDAR,
ZENITY_FORMS_LIST
} ZenityFormsType;
typedef struct {
gchar *option_value;
ZenityFormsType type;
GtkWidget *forms_widget;
} ZenityFormsValue;
typedef struct {
gboolean username;
gchar *password;
GtkWidget *entry_username;
GtkWidget *entry_password;
} ZenityPasswordData;
void zenity_calendar (ZenityData *data,
ZenityCalendarData *calendar_data);
void zenity_msg (ZenityData *data,
ZenityMsgData *msg_data);
void zenity_fileselection (ZenityData *data,
ZenityFileData *file_data);
void zenity_entry (ZenityData *data,
ZenityEntryData *entry_data);
void zenity_progress (ZenityData *data,
ZenityProgressData *progress_data);
void zenity_text (ZenityData *data,
ZenityTextData *text_data);
void zenity_tree (ZenityData *data,
ZenityTreeData *tree_data);
#ifdef HAVE_LIBNOTIFY
void zenity_notification (ZenityData *data,
ZenityNotificationData *notification_data);
#endif
void zenity_colorselection (ZenityData *data,
ZenityColorData *notification_data);
void zenity_scale (ZenityData *data,
ZenityScaleData *scale_data);
void zenity_about (ZenityData *data);
void zenity_password_dialog (ZenityData *data,
ZenityPasswordData *password_data);
void zenity_forms_dialog (ZenityData *data,
ZenityFormsData *forms_data);
G_END_DECLS
#endif /* ZENITY_H */