1/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
2 *
3 * Copyright (C) 2025 Marco Trevisan.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 * Boston, MA 02111-1307, USA.
19 */
20
21#pragma once
22
23G_BEGIN_DECLS
24
25/**
26 * NOTIFY_NOTIFICATION_HINT_ACTION_ICONS:
27 *
28 * When set, a server that has the "action-icons" capability will attempt to
29 * interpret any action identifier as a named icon. The localized display name
30 * will be used to annotate the icon for accessibility purposes. The icon name
31 * should be compliant with the Freedesktop.org Icon Naming Specification.
32 *
33 * Requires server supporting specification version >= 1.2.
34 *
35 * Hint [type@GLib.VariantType]: [const@GLib.VARIANT_TYPE_BOOLEAN] (`b`).
36 *
37 * Since: 0.8.8
38 */
39#define NOTIFY_NOTIFICATION_HINT_ACTION_ICONS "action-icons"
40
41/**
42 * NOTIFY_NOTIFICATION_HINT_CATEGORY:
43 *
44 * The type of notification this is.
45 *
46 * Hint [type@GLib.VariantType]: [const@GLib.VARIANT_TYPE_STRING] (`s`).
47 *
48 * Since: 0.8.8
49 */
50#define NOTIFY_NOTIFICATION_HINT_CATEGORY "category"
51
52/**
53 * NOTIFY_NOTIFICATION_HINT_DESKTOP_ENTRY:
54 *
55 * This specifies the name of the desktop filename representing the calling
56 * program. This should be the same as the prefix used for the application's
57 * .desktop file. An example would be "rhythmbox" from "rhythmbox.desktop". This
58 * can be used by the daemon to retrieve the correct icon for the application,
59 * for logging purposes, etc.
60 *
61 * Hint [type@GLib.VariantType]: [const@GLib.VARIANT_TYPE_STRING] (`s`).
62 *
63 * Since: 0.8.8
64 */
65#define NOTIFY_NOTIFICATION_HINT_DESKTOP_ENTRY "desktop-entry"
66
67/**
68 * NOTIFY_NOTIFICATION_HINT_IMAGE_DATA:
69 *
70 * This is a raw data image format which describes the width,
71 * height, rowstride, has alpha, bits per sample, channels and image data
72 * respectively.
73 *
74 * Requires server supporting specification version >= 1.2
75 *
76 * [type@GLib.VariantType]: `(iiibiiay)`
77 *
78 * Since: 0.8.8
79 */
80#define NOTIFY_NOTIFICATION_HINT_IMAGE_DATA "image-data"
81
82/**
83 * NOTIFY_NOTIFICATION_HINT_IMAGE_DATA_LEGACY:
84 *
85 * This is a raw data image format which describes the width,
86 * height, rowstride, has alpha, bits per sample, channels and image data
87 * respectively.
88 *
89 * Requires server supporting specification version >= 1.1
90 *
91 * [type@GLib.VariantType]: `(iiibiiay)`
92 *
93 * Since: 0.8.8
94 */
95#define NOTIFY_NOTIFICATION_HINT_IMAGE_DATA_LEGACY "image_data"
96
97/**
98 * NOTIFY_NOTIFICATION_HINT_IMAGE_PATH:
99 *
100 * Alternative way to define the notification image.
101 *
102 * Requires server supporting specification version >= 1.2.
103 *
104 * Hint [type@GLib.VariantType]: [const@GLib.VARIANT_TYPE_STRING] (`s`).
105 *
106 * Since: 0.8.8
107 */
108#define NOTIFY_NOTIFICATION_HINT_IMAGE_PATH "image-path"
109
110/**
111 * NOTIFY_NOTIFICATION_HINT_IMAGE_PATH_LEGACY:
112 *
113 * Alternative way to define the notification image.
114 *
115 * Requires server supporting specification version >= 1.1.
116 *
117 * Hint [type@GLib.VariantType]: [const@GLib.VARIANT_TYPE_STRING] (`s`).
118 *
119 * Since: 0.8.8
120 */
121#define NOTIFY_NOTIFICATION_HINT_IMAGE_PATH_LEGACY "image_path"
122
123/**
124 * NOTIFY_NOTIFICATION_HINT_RESIDENT:
125 *
126 * When set the server will not automatically remove the notification when an
127 * action has been invoked. The notification will remain resident in the server
128 * until it is explicitly removed by the user or by the sender. This hint is
129 * likely only useful when the server has the "persistence" capability.
130 *
131 * Requires server supporting specification version >= 1.2.
132 *
133 * Hint [type@GLib.VariantType]: [const@GLib.VARIANT_TYPE_BOOLEAN] (`b`).
134 *
135 * Since: 0.8.8
136 */
137#define NOTIFY_NOTIFICATION_HINT_RESIDENT "resident"
138
139/**
140 * NOTIFY_NOTIFICATION_HINT_SOUND_FILE:
141 *
142 * The path to a sound file to play when the notification pops up.
143 *
144 * Hint [type@GLib.VariantType]: [const@GLib.VARIANT_TYPE_STRING] (`s`).
145 *
146 * Since: 0.8.8
147 */
148#define NOTIFY_NOTIFICATION_HINT_SOUND_FILE "sound-file"
149
150/**
151 * NOTIFY_NOTIFICATION_HINT_SOUND_NAME:
152 *
153 * A themeable named sound from the freedesktop.org sound naming specification
154 * to play when the notification pops up. Similar to icon-name, only for sounds.
155 * An example would be "message-new-instant".
156 *
157 * Hint [type@GLib.VariantType]: [const@GLib.VARIANT_TYPE_STRING] (`s`).
158 *
159 * Since: 0.8.8
160 */
161#define NOTIFY_NOTIFICATION_HINT_SOUND_NAME "sound-name"
162
163/**
164 * NOTIFY_NOTIFICATION_HINT_SUPPRESS_SOUND:
165 *
166 * Causes the server to suppress playing any sounds, if it has that ability.
167 * This is usually set when the client itself is going to play its own sound.
168 *
169 * Hint [type@GLib.VariantType]: [const@GLib.VARIANT_TYPE_BOOLEAN] (`b`).
170 *
171 * Since: 0.8.8
172 */
173#define NOTIFY_NOTIFICATION_HINT_SUPPRESS_SOUND "suppress-sound"
174
175/**
176 * NOTIFY_NOTIFICATION_HINT_TRANSIENT:
177 *
178 * When set the server will treat the notification as transient and by-pass the
179 * server's persistence capability, if it should exist.
180 *
181 * Requires server supporting specification version >= 1.2.
182 *
183 * Hint [type@GLib.VariantType]: [const@GLib.VARIANT_TYPE_BOOLEAN] (`b`).
184 *
185 * Since: 0.8.8
186 */
187#define NOTIFY_NOTIFICATION_HINT_TRANSIENT "transient"
188
189/**
190 * NOTIFY_NOTIFICATION_HINT_X:
191 *
192 * Specifies the X location on the screen that the notification should point to.
193 * The "y" hint must also be specified.
194 *
195 * Hint [type@GLib.VariantType]: [const@GLib.VARIANT_TYPE_INT32] (`i`).
196 *
197 * Since: 0.8.8
198 */
199#define NOTIFY_NOTIFICATION_HINT_X "x"
200
201/**
202 * NOTIFY_NOTIFICATION_HINT_Y:
203 *
204 * Specifies the Y location on the screen that the notification should point to.
205 * The "x" hint must also be specified.
206 *
207 * Hint [type@GLib.VariantType]: [const@GLib.VARIANT_TYPE_INT32] (`i`).
208 *
209 * Since: 0.8.8
210 */
211#define NOTIFY_NOTIFICATION_HINT_Y "y"
212
213/**
214 * NOTIFY_NOTIFICATION_HINT_URGENCY:
215 *
216 * The urgency level.
217 *
218 * Hint [type@GLib.VariantType]: [const@GLib.VARIANT_TYPE_BYTE] (`y`).
219 *
220 * Since: 0.8.8
221 */
222#define NOTIFY_NOTIFICATION_HINT_URGENCY "urgency"
223
224G_END_DECLS
225
226