summary refs log tree commit diff stats
path: root/src/common
diff options
context:
space:
mode:
authorBakasuraRCE <bakasura@protonmail.ch>2020-07-29 09:50:12 -0500
committerPatrick <tingping@tingping.se>2021-05-23 21:17:07 -0500
commitda26097aab554c44540c25f0741dc19f6e92cc41 (patch)
tree6212a727562862d555d5970fba00d4651d82e309 /src/common
parente03fab07ed77db699abbde01e2b872019df07b80 (diff)
notification: Implement notification option for channels
Diffstat (limited to 'src/common')
-rw-r--r--src/common/chanopt.c2
-rw-r--r--src/common/hexchat.c1
-rw-r--r--src/common/hexchat.h1
-rw-r--r--src/common/plugin.c6
4 files changed, 9 insertions, 1 deletions
diff --git a/src/common/chanopt.c b/src/common/chanopt.c
index 1870c99c..67cb46cf 100644
--- a/src/common/chanopt.c
+++ b/src/common/chanopt.c
@@ -58,6 +58,7 @@ typedef struct
 
 static const channel_options chanopt[] =
 {
+	{"alert_balloon", NULL, S_F(alert_balloon)},
 	{"alert_beep", "BEEP", S_F(alert_beep)},
 	{"alert_taskbar", NULL, S_F(alert_taskbar)},
 	{"alert_tray", "TRAY", S_F(alert_tray)},
@@ -182,6 +183,7 @@ typedef struct
 {
 	/* Per-Channel Alerts */
 	/* use a byte, because we need a pointer to each element */
+	guint8 alert_balloon;
 	guint8 alert_beep;
 	guint8 alert_taskbar;
 	guint8 alert_tray;
diff --git a/src/common/hexchat.c b/src/common/hexchat.c
index e9a9a7fc..8702c63d 100644
--- a/src/common/hexchat.c
+++ b/src/common/hexchat.c
@@ -493,6 +493,7 @@ session_new (server *serv, char *from, int type, int focus)
 	sess->logfd = -1;
 	sess->type = type;
 
+	sess->alert_balloon = SET_DEFAULT;
 	sess->alert_beep = SET_DEFAULT;
 	sess->alert_taskbar = SET_DEFAULT;
 	sess->alert_tray = SET_DEFAULT;
diff --git a/src/common/hexchat.h b/src/common/hexchat.h
index f9ca006b..d8effa1f 100644
--- a/src/common/hexchat.h
+++ b/src/common/hexchat.h
@@ -363,6 +363,7 @@ typedef struct session
 {
 	/* Per-Channel Alerts */
 	/* use a byte, because we need a pointer to each element */
+	guint8 alert_balloon;
 	guint8 alert_beep;
 	guint8 alert_taskbar;
 	guint8 alert_tray;
diff --git a/src/common/plugin.c b/src/common/plugin.c
index 00cf4599..f2c2ecfb 100644
--- a/src/common/plugin.c
+++ b/src/common/plugin.c
@@ -138,7 +138,9 @@ enum
 	CHANNEL_FLAG_TRAY_UNSET            = 1 << 18,
 	CHANNEL_FLAG_TASKBAR               = 1 << 19,
 	CHANNEL_FLAG_TASKBAR_UNSET         = 1 << 20,
-	CHANNEL_FLAG_COUNT                 = 21
+	CHANNEL_FLAG_BALLOON               = 1 << 21,
+	CHANNEL_FLAG_BALLOON_UNSET         = 1 << 22,
+	CHANNEL_FLAG_COUNT                 = 23
 };
 
 GSList *plugin_list = NULL;	/* export for plugingui.c */
@@ -1633,6 +1635,8 @@ hexchat_list_int (hexchat_plugin *ph, hexchat_list *xlist, const char *name)
 			channel_flags[18] = ((struct session *)data)->alert_tray == SET_DEFAULT;
 			channel_flags[19] = ((struct session *)data)->alert_taskbar;
 			channel_flags[20] = ((struct session *)data)->alert_taskbar == SET_DEFAULT;
+			channel_flags[21] = ((struct session *)data)->alert_balloon;
+			channel_flags[22] = ((struct session *)data)->alert_balloon == SET_DEFAULT;
 
 			/* Set flags */
 			for (channel_flag = 0; channel_flag < CHANNEL_FLAG_COUNT; ++channel_flag) {