annotate SDL3/SDL_tray.h @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1 /*
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2 Simple DirectMedia Layer
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3 Copyright (C) 1997-2025 Sam Lantinga <slouken@libsdl.org>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5 This software is provided 'as-is', without any express or implied
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 warranty. In no event will the authors be held liable for any damages
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7 arising from the use of this software.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9 Permission is granted to anyone to use this software for any purpose,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 including commercial applications, and to alter it and redistribute it
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11 freely, subject to the following restrictions:
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13 1. The origin of this software must not be misrepresented; you must not
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14 claim that you wrote the original software. If you use this software
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15 in a product, an acknowledgment in the product documentation would be
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16 appreciated but is not required.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17 2. Altered source versions must be plainly marked as such, and must not be
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18 misrepresented as being the original software.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19 3. This notice may not be removed or altered from any source distribution.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
21
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
22 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23 * # CategoryTray
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
25 * SDL offers a way to add items to the "system tray" (more correctly called
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
26 * the "notification area" on Windows). On platforms that offer this concept,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
27 * an SDL app can add a tray icon, submenus, checkboxes, and clickable
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
28 * entries, and register a callback that is fired when the user clicks on
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
29 * these pieces.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
30 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
31
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
32 #ifndef SDL_tray_h_
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
33 #define SDL_tray_h_
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
34
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
35 #include <SDL3/SDL_stdinc.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
36 #include <SDL3/SDL_error.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
37 #include <SDL3/SDL_surface.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
38 #include <SDL3/SDL_video.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
39
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
40 #include <SDL3/SDL_begin_code.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
41 /* Set up for C function definitions, even when using C++ */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
42 #ifdef __cplusplus
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
43 extern "C" {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
44 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
45
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
46 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
47 * An opaque handle representing a toplevel system tray object.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
48 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
49 * \since This struct is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
50 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
51 typedef struct SDL_Tray SDL_Tray;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
52
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
53 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
54 * An opaque handle representing a menu/submenu on a system tray object.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
55 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
56 * \since This struct is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
57 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
58 typedef struct SDL_TrayMenu SDL_TrayMenu;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
59
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
60 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
61 * An opaque handle representing an entry on a system tray object.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
62 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
63 * \since This struct is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
64 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
65 typedef struct SDL_TrayEntry SDL_TrayEntry;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
66
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
67 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
68 * Flags that control the creation of system tray entries.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
69 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
70 * Some of these flags are required; exactly one of them must be specified at
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
71 * the time a tray entry is created. Other flags are optional; zero or more of
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
72 * those can be OR'ed together with the required flag.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
73 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
74 * \since This datatype is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
75 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
76 * \sa SDL_InsertTrayEntryAt
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
77 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
78 typedef Uint32 SDL_TrayEntryFlags;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
79
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
80 #define SDL_TRAYENTRY_BUTTON 0x00000001u /**< Make the entry a simple button. Required. */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
81 #define SDL_TRAYENTRY_CHECKBOX 0x00000002u /**< Make the entry a checkbox. Required. */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
82 #define SDL_TRAYENTRY_SUBMENU 0x00000004u /**< Prepare the entry to have a submenu. Required */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
83 #define SDL_TRAYENTRY_DISABLED 0x80000000u /**< Make the entry disabled. Optional. */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
84 #define SDL_TRAYENTRY_CHECKED 0x40000000u /**< Make the entry checked. This is valid only for checkboxes. Optional. */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
85
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
86 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
87 * A callback that is invoked when a tray entry is selected.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
88 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
89 * \param userdata an optional pointer to pass extra data to the callback when
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
90 * it will be invoked.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
91 * \param entry the tray entry that was selected.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
92 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
93 * \since This datatype is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
94 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
95 * \sa SDL_SetTrayEntryCallback
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
96 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
97 typedef void (SDLCALL *SDL_TrayCallback)(void *userdata, SDL_TrayEntry *entry);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
98
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
99 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
100 * Create an icon to be placed in the operating system's tray, or equivalent.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
101 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
102 * Many platforms advise not using a system tray unless persistence is a
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
103 * necessary feature. Avoid needlessly creating a tray icon, as the user may
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
104 * feel like it clutters their interface.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
105 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
106 * Using tray icons require the video subsystem.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
107 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
108 * \param icon a surface to be used as icon. May be NULL.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
109 * \param tooltip a tooltip to be displayed when the mouse hovers the icon in
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
110 * UTF-8 encoding. Not supported on all platforms. May be NULL.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
111 * \returns The newly created system tray icon.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
112 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
113 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
114 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
115 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
116 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
117 * \sa SDL_CreateTrayMenu
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
118 * \sa SDL_GetTrayMenu
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
119 * \sa SDL_DestroyTray
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
120 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
121 extern SDL_DECLSPEC SDL_Tray * SDLCALL SDL_CreateTray(SDL_Surface *icon, const char *tooltip);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
122
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
123 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
124 * Updates the system tray icon's icon.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
125 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
126 * \param tray the tray icon to be updated.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
127 * \param icon the new icon. May be NULL.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
128 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
129 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
130 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
131 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
132 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
133 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
134 * \sa SDL_CreateTray
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
135 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
136 extern SDL_DECLSPEC void SDLCALL SDL_SetTrayIcon(SDL_Tray *tray, SDL_Surface *icon);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
137
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
138 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
139 * Updates the system tray icon's tooltip.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
140 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
141 * \param tray the tray icon to be updated.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
142 * \param tooltip the new tooltip in UTF-8 encoding. May be NULL.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
143 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
144 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
145 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
146 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
147 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
148 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
149 * \sa SDL_CreateTray
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
150 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
151 extern SDL_DECLSPEC void SDLCALL SDL_SetTrayTooltip(SDL_Tray *tray, const char *tooltip);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
152
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
153 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
154 * Create a menu for a system tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
155 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
156 * This should be called at most once per tray icon.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
157 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
158 * This function does the same thing as SDL_CreateTraySubmenu(), except that
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
159 * it takes a SDL_Tray instead of a SDL_TrayEntry.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
160 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
161 * A menu does not need to be destroyed; it will be destroyed with the tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
162 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
163 * \param tray the tray to bind the menu to.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
164 * \returns the newly created menu.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
165 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
166 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
167 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
168 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
169 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
170 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
171 * \sa SDL_CreateTray
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
172 * \sa SDL_GetTrayMenu
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
173 * \sa SDL_GetTrayMenuParentTray
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
174 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
175 extern SDL_DECLSPEC SDL_TrayMenu * SDLCALL SDL_CreateTrayMenu(SDL_Tray *tray);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
176
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
177 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
178 * Create a submenu for a system tray entry.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
179 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
180 * This should be called at most once per tray entry.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
181 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
182 * This function does the same thing as SDL_CreateTrayMenu, except that it
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
183 * takes a SDL_TrayEntry instead of a SDL_Tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
184 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
185 * A menu does not need to be destroyed; it will be destroyed with the tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
186 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
187 * \param entry the tray entry to bind the menu to.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
188 * \returns the newly created menu.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
189 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
190 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
191 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
192 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
193 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
194 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
195 * \sa SDL_InsertTrayEntryAt
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
196 * \sa SDL_GetTraySubmenu
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
197 * \sa SDL_GetTrayMenuParentEntry
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
198 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
199 extern SDL_DECLSPEC SDL_TrayMenu * SDLCALL SDL_CreateTraySubmenu(SDL_TrayEntry *entry);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
200
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
201 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
202 * Gets a previously created tray menu.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
203 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
204 * You should have called SDL_CreateTrayMenu() on the tray object. This
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
205 * function allows you to fetch it again later.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
206 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
207 * This function does the same thing as SDL_GetTraySubmenu(), except that it
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
208 * takes a SDL_Tray instead of a SDL_TrayEntry.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
209 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
210 * A menu does not need to be destroyed; it will be destroyed with the tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
211 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
212 * \param tray the tray entry to bind the menu to.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
213 * \returns the newly created menu.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
214 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
215 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
216 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
217 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
218 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
219 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
220 * \sa SDL_CreateTray
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
221 * \sa SDL_CreateTrayMenu
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
222 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
223 extern SDL_DECLSPEC SDL_TrayMenu * SDLCALL SDL_GetTrayMenu(SDL_Tray *tray);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
224
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
225 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
226 * Gets a previously created tray entry submenu.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
227 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
228 * You should have called SDL_CreateTraySubmenu() on the entry object. This
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
229 * function allows you to fetch it again later.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
230 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
231 * This function does the same thing as SDL_GetTrayMenu(), except that it
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
232 * takes a SDL_TrayEntry instead of a SDL_Tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
233 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
234 * A menu does not need to be destroyed; it will be destroyed with the tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
235 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
236 * \param entry the tray entry to bind the menu to.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
237 * \returns the newly created menu.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
238 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
239 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
240 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
241 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
242 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
243 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
244 * \sa SDL_InsertTrayEntryAt
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
245 * \sa SDL_CreateTraySubmenu
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
246 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
247 extern SDL_DECLSPEC SDL_TrayMenu * SDLCALL SDL_GetTraySubmenu(SDL_TrayEntry *entry);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
248
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
249 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
250 * Returns a list of entries in the menu, in order.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
251 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
252 * \param menu The menu to get entries from.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
253 * \param count An optional pointer to obtain the number of entries in the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
254 * menu.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
255 * \returns a NULL-terminated list of entries within the given menu. The
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
256 * pointer becomes invalid when any function that inserts or deletes
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
257 * entries in the menu is called.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
258 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
259 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
260 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
261 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
262 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
263 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
264 * \sa SDL_RemoveTrayEntry
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
265 * \sa SDL_InsertTrayEntryAt
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
266 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
267 extern SDL_DECLSPEC const SDL_TrayEntry ** SDLCALL SDL_GetTrayEntries(SDL_TrayMenu *menu, int *count);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
268
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
269 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
270 * Removes a tray entry.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
271 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
272 * \param entry The entry to be deleted.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
273 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
274 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
275 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
276 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
277 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
278 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
279 * \sa SDL_GetTrayEntries
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
280 * \sa SDL_InsertTrayEntryAt
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
281 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
282 extern SDL_DECLSPEC void SDLCALL SDL_RemoveTrayEntry(SDL_TrayEntry *entry);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
283
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
284 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
285 * Insert a tray entry at a given position.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
286 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
287 * If label is NULL, the entry will be a separator. Many functions won't work
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
288 * for an entry that is a separator.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
289 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
290 * An entry does not need to be destroyed; it will be destroyed with the tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
291 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
292 * \param menu the menu to append the entry to.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
293 * \param pos the desired position for the new entry. Entries at or following
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
294 * this place will be moved. If pos is -1, the entry is appended.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
295 * \param label the text to be displayed on the entry, in UTF-8 encoding, or
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
296 * NULL for a separator.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
297 * \param flags a combination of flags, some of which are mandatory.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
298 * \returns the newly created entry, or NULL if pos is out of bounds.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
299 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
300 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
301 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
302 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
303 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
304 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
305 * \sa SDL_TrayEntryFlags
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
306 * \sa SDL_GetTrayEntries
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
307 * \sa SDL_RemoveTrayEntry
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
308 * \sa SDL_GetTrayEntryParent
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
309 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
310 extern SDL_DECLSPEC SDL_TrayEntry * SDLCALL SDL_InsertTrayEntryAt(SDL_TrayMenu *menu, int pos, const char *label, SDL_TrayEntryFlags flags);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
311
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
312 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
313 * Sets the label of an entry.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
314 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
315 * An entry cannot change between a separator and an ordinary entry; that is,
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
316 * it is not possible to set a non-NULL label on an entry that has a NULL
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
317 * label (separators), or to set a NULL label to an entry that has a non-NULL
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
318 * label. The function will silently fail if that happens.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
319 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
320 * \param entry the entry to be updated.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
321 * \param label the new label for the entry in UTF-8 encoding.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
322 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
323 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
324 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
325 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
326 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
327 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
328 * \sa SDL_GetTrayEntries
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
329 * \sa SDL_InsertTrayEntryAt
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
330 * \sa SDL_GetTrayEntryLabel
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
331 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
332 extern SDL_DECLSPEC void SDLCALL SDL_SetTrayEntryLabel(SDL_TrayEntry *entry, const char *label);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
333
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
334 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
335 * Gets the label of an entry.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
336 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
337 * If the returned value is NULL, the entry is a separator.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
338 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
339 * \param entry the entry to be read.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
340 * \returns the label of the entry in UTF-8 encoding.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
341 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
342 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
343 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
344 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
345 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
346 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
347 * \sa SDL_GetTrayEntries
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
348 * \sa SDL_InsertTrayEntryAt
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
349 * \sa SDL_SetTrayEntryLabel
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
350 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
351 extern SDL_DECLSPEC const char * SDLCALL SDL_GetTrayEntryLabel(SDL_TrayEntry *entry);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
352
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
353 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
354 * Sets whether or not an entry is checked.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
355 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
356 * The entry must have been created with the SDL_TRAYENTRY_CHECKBOX flag.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
357 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
358 * \param entry the entry to be updated.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
359 * \param checked true if the entry should be checked; false otherwise.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
360 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
361 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
362 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
363 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
364 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
365 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
366 * \sa SDL_GetTrayEntries
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
367 * \sa SDL_InsertTrayEntryAt
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
368 * \sa SDL_GetTrayEntryChecked
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
369 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
370 extern SDL_DECLSPEC void SDLCALL SDL_SetTrayEntryChecked(SDL_TrayEntry *entry, bool checked);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
371
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
372 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
373 * Gets whether or not an entry is checked.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
374 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
375 * The entry must have been created with the SDL_TRAYENTRY_CHECKBOX flag.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
376 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
377 * \param entry the entry to be read.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
378 * \returns true if the entry is checked; false otherwise.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
379 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
380 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
381 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
382 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
383 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
384 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
385 * \sa SDL_GetTrayEntries
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
386 * \sa SDL_InsertTrayEntryAt
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
387 * \sa SDL_SetTrayEntryChecked
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
388 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
389 extern SDL_DECLSPEC bool SDLCALL SDL_GetTrayEntryChecked(SDL_TrayEntry *entry);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
390
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
391 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
392 * Sets whether or not an entry is enabled.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
393 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
394 * \param entry the entry to be updated.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
395 * \param enabled true if the entry should be enabled; false otherwise.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
396 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
397 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
398 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
399 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
400 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
401 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
402 * \sa SDL_GetTrayEntries
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
403 * \sa SDL_InsertTrayEntryAt
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
404 * \sa SDL_GetTrayEntryEnabled
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
405 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
406 extern SDL_DECLSPEC void SDLCALL SDL_SetTrayEntryEnabled(SDL_TrayEntry *entry, bool enabled);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
407
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
408 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
409 * Gets whether or not an entry is enabled.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
410 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
411 * \param entry the entry to be read.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
412 * \returns true if the entry is enabled; false otherwise.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
413 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
414 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
415 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
416 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
417 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
418 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
419 * \sa SDL_GetTrayEntries
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
420 * \sa SDL_InsertTrayEntryAt
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
421 * \sa SDL_SetTrayEntryEnabled
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
422 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
423 extern SDL_DECLSPEC bool SDLCALL SDL_GetTrayEntryEnabled(SDL_TrayEntry *entry);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
424
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
425 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
426 * Sets a callback to be invoked when the entry is selected.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
427 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
428 * \param entry the entry to be updated.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
429 * \param callback a callback to be invoked when the entry is selected.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
430 * \param userdata an optional pointer to pass extra data to the callback when
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
431 * it will be invoked.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
432 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
433 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
434 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
435 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
436 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
437 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
438 * \sa SDL_GetTrayEntries
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
439 * \sa SDL_InsertTrayEntryAt
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
440 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
441 extern SDL_DECLSPEC void SDLCALL SDL_SetTrayEntryCallback(SDL_TrayEntry *entry, SDL_TrayCallback callback, void *userdata);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
442
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
443 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
444 * Simulate a click on a tray entry.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
445 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
446 * \param entry The entry to activate.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
447 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
448 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
449 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
450 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
451 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
452 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
453 extern SDL_DECLSPEC void SDLCALL SDL_ClickTrayEntry(SDL_TrayEntry *entry);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
454
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
455 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
456 * Destroys a tray object.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
457 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
458 * This also destroys all associated menus and entries.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
459 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
460 * \param tray the tray icon to be destroyed.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
461 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
462 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
463 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
464 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
465 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
466 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
467 * \sa SDL_CreateTray
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
468 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
469 extern SDL_DECLSPEC void SDLCALL SDL_DestroyTray(SDL_Tray *tray);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
470
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
471 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
472 * Gets the menu containing a certain tray entry.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
473 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
474 * \param entry the entry for which to get the parent menu.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
475 * \returns the parent menu.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
476 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
477 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
478 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
479 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
480 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
481 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
482 * \sa SDL_InsertTrayEntryAt
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
483 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
484 extern SDL_DECLSPEC SDL_TrayMenu * SDLCALL SDL_GetTrayEntryParent(SDL_TrayEntry *entry);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
485
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
486 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
487 * Gets the entry for which the menu is a submenu, if the current menu is a
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
488 * submenu.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
489 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
490 * Either this function or SDL_GetTrayMenuParentTray() will return non-NULL
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
491 * for any given menu.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
492 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
493 * \param menu the menu for which to get the parent entry.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
494 * \returns the parent entry, or NULL if this menu is not a submenu.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
495 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
496 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
497 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
498 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
499 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
500 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
501 * \sa SDL_CreateTraySubmenu
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
502 * \sa SDL_GetTrayMenuParentTray
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
503 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
504 extern SDL_DECLSPEC SDL_TrayEntry * SDLCALL SDL_GetTrayMenuParentEntry(SDL_TrayMenu *menu);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
505
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
506 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
507 * Gets the tray for which this menu is the first-level menu, if the current
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
508 * menu isn't a submenu.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
509 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
510 * Either this function or SDL_GetTrayMenuParentEntry() will return non-NULL
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
511 * for any given menu.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
512 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
513 * \param menu the menu for which to get the parent enttrayry.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
514 * \returns the parent tray, or NULL if this menu is a submenu.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
515 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
516 * \threadsafety This function should be called on the thread that created the
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
517 * tray.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
518 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
519 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
520 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
521 * \sa SDL_CreateTrayMenu
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
522 * \sa SDL_GetTrayMenuParentEntry
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
523 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
524 extern SDL_DECLSPEC SDL_Tray * SDLCALL SDL_GetTrayMenuParentTray(SDL_TrayMenu *menu);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
525
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
526 /**
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
527 * Update the trays.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
528 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
529 * This is called automatically by the event loop and is only needed if you're
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
530 * using trays but aren't handling SDL events.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
531 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
532 * \threadsafety This function should only be called on the main thread.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
533 *
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
534 * \since This function is available since SDL 3.2.0.
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
535 */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
536 extern SDL_DECLSPEC void SDLCALL SDL_UpdateTrays(void);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
537
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
538 /* Ends C function definitions when using C++ */
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
539 #ifdef __cplusplus
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
540 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
541 #endif
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
542 #include <SDL3/SDL_close_code.h>
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
543
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
544 #endif /* SDL_tray_h_ */