diff options
Diffstat (limited to 'src/command')
-rw-r--r-- | src/command/command.c | 19 | ||||
-rw-r--r-- | src/command/commands.c | 24 | ||||
-rw-r--r-- | src/command/commands.h | 1 |
3 files changed, 41 insertions, 3 deletions
diff --git a/src/command/command.c b/src/command/command.c index 191415ae..984812f5 100644 --- a/src/command/command.c +++ b/src/command/command.c @@ -1253,6 +1253,19 @@ static struct cmd_t command_defs[] = CMD_NOEXAMPLES }, + { "/tray", + cmd_tray, parse_args, 1, 1, &cons_tray_setting, + CMD_TAGS( + CMD_TAG_UI) + CMD_SYN( + "/tray on|off") + CMD_DESC( + "Display an icon in the tray that will indicate new messages.") + CMD_ARGS( + { "on|off", "Enable or disable tray icon." }) + CMD_NOEXAMPLES + }, + { "/intype", cmd_intype, parse_args, 1, 1, &cons_intype_setting, CMD_TAGS( @@ -3061,9 +3074,9 @@ _cmd_complete_parameters(ProfWin *window, const char *const input) jabber_conn_status_t conn_status = jabber_get_connection_status(); // autocomplete boolean settings - gchar *boolean_choices[] = { "/beep", "/intype", "/states", "/outtype", - "/flash", "/splash", "/chlog", "/grlog", "/history", "/vercheck", - "/privileges", "/presence", "/wrap", "/winstidy", "/carbons", "/encwarn", "/lastactivity" }; + gchar *boolean_choices[] = { "/beep", "/intype", "/states", "/outtype", "/flash", "/splash", "/chlog", "/grlog", + "/history", "/vercheck", "/privileges", "/presence", "/wrap", "/winstidy", "/carbons", "/encwarn", + "/lastactivity", "/tray" }; for (i = 0; i < ARRAY_SIZE(boolean_choices); i++) { result = autocomplete_param_with_func(input, boolean_choices[i], prefs_autocomplete_boolean_choice); diff --git a/src/command/commands.c b/src/command/commands.c index 8d32237b..c60a3a3e 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -77,6 +77,9 @@ #include "ui/ui.h" #include "window_list.h" #include "event/client_events.h" +#ifdef HAVE_GTK +#include "tray.h" +#endif static void _update_presence(const resource_presence_t presence, const char *const show, gchar **args); @@ -5526,6 +5529,27 @@ cmd_flash(ProfWin *window, const char *const command, gchar **args) } gboolean +cmd_tray(ProfWin *window, const char *const command, gchar **args) +{ +#ifdef HAVE_GTK + gboolean old = prefs_get_boolean(PREF_TRAY); + gboolean ret = _cmd_set_boolean_preference(args[0], command, "Tray icon", PREF_TRAY); + gboolean new = prefs_get_boolean(PREF_TRAY); + if (old != new) { + if (new) { + create_tray(); + } else { + destroy_tray(); + } + } + return ret; +#else + cons_show("This version of Profanity has not been built with GTK Tray Icon support enabled"); + return TRUE; +#endif +} + +gboolean cmd_intype(ProfWin *window, const char *const command, gchar **args) { return _cmd_set_boolean_preference(args[0], command, "Show contact typing", PREF_INTYPE); diff --git a/src/command/commands.h b/src/command/commands.h index 3e1a4592..cfa9d966 100644 --- a/src/command/commands.h +++ b/src/command/commands.h @@ -89,6 +89,7 @@ gboolean cmd_lastactivity(ProfWin *window, const char *const command, gchar **ar gboolean cmd_disconnect(ProfWin *window, const char *const command, gchar **args); gboolean cmd_dnd(ProfWin *window, const char *const command, gchar **args); gboolean cmd_flash(ProfWin *window, const char *const command, gchar **args); +gboolean cmd_tray(ProfWin *window, const char *const command, gchar **args); gboolean cmd_gone(ProfWin *window, const char *const command, gchar **args); gboolean cmd_grlog(ProfWin *window, const char *const command, gchar **args); gboolean cmd_group(ProfWin *window, const char *const command, gchar **args); |