Make tray icon configurable using /tray cmd

This commit is contained in:
Dominik Heidler
2016-04-16 16:29:32 +02:00
parent 6cc04bc3ba
commit 4cb1d73a83
8 changed files with 72 additions and 2 deletions

View File

@@ -1253,6 +1253,21 @@ static struct cmd_t command_defs[] =
CMD_NOEXAMPLES
},
#ifdef HAVE_GTK
{ "/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
},
#endif
{ "/intype",
cmd_intype, parse_args, 1, 1, &cons_intype_setting,
CMD_TAGS(

View File

@@ -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);
@@ -5525,6 +5528,24 @@ cmd_flash(ProfWin *window, const char *const command, gchar **args)
return _cmd_set_boolean_preference(args[0], command, "Screen flash", PREF_FLASH);
}
#ifdef HAVE_GTK
gboolean
cmd_tray(ProfWin *window, const char *const command, gchar **args)
{
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;
}
#endif
gboolean
cmd_intype(ProfWin *window, const char *const command, gchar **args)
{

View File

@@ -89,6 +89,9 @@ 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);
#ifdef HAVE_GTK
gboolean cmd_tray(ProfWin *window, const char *const command, gchar **args);
#endif
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);