Skip to content

Commit 6e53105

Browse files
committed
A bunch of refactoring to address the open questions.
1 parent 0d074ce commit 6e53105

File tree

12 files changed

+421
-256
lines changed

12 files changed

+421
-256
lines changed

examples/video/01-menubar/menubar.c

Lines changed: 56 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ SDL_Renderer* renderer = NULL;
1414
SDL_MenuItem* checkable = NULL;
1515
SDL_MenuItem* new_window = NULL;
1616

17+
SDL_MenuItem *menu_bar;
18+
1719
typedef enum SDL_EventType_MenuExt
1820
{
1921
MENU_BAR_FILE,
@@ -35,42 +37,68 @@ typedef enum SDL_EventType_MenuExt
3537

3638
static SDL_EventType_MenuExt EVENT_START = (SDL_EventType_MenuExt)0;
3739

40+
void PrintMenuItems(SDL_MenuItem *menu_item, int indent, int *total_index)
41+
{
42+
if (!menu_item) {
43+
return;
44+
}
45+
46+
const char* label = SDL_GetMenuItemLabel(menu_item);
47+
48+
if (!label) {
49+
label = "no label given";
50+
}
51+
52+
SDL_RenderDebugText(renderer, (float)(8 * indent * 2), (float)(*total_index * 8), label);
53+
54+
++(*total_index);
55+
56+
size_t item_count = SDL_GetMenuChildItems(menu_item);
57+
58+
for (size_t i = 0; i < item_count; ++i) {
59+
PrintMenuItems(SDL_GetMenuChildItem(menu_item, i), indent + 1, total_index);
60+
}
61+
}
62+
3863

3964
void CreateMenuBar()
4065
{
41-
SDL_MenuItem* bar = SDL_CreateMenuBar(window);
66+
menu_bar = SDL_CreateMenuBar(window);
4267

4368
{
44-
SDL_MenuItem* menu = SDL_CreateMenuItem(bar, "File", SDL_MENU, MENU_BAR_LAST);
45-
new_window = SDL_CreateMenuItem(menu, "New Window", SDL_MENU_BUTTON, MENU_BAR_FILE_NEW_WINDOW);
46-
checkable = SDL_CreateMenuItem(menu, "Enable New Window", SDL_MENU_CHECKABLE, MENU_BAR_FILE_DISABLE_NEW_WINDOW);
69+
SDL_MenuItem* menu = SDL_CreateMenuItem(menu_bar, "File", SDL_MENUITEM_SUBMENU, MENU_BAR_LAST);
70+
new_window = SDL_CreateMenuItem(menu, "New Window", SDL_MENUITEM_BUTTON, MENU_BAR_FILE_NEW_WINDOW);
71+
checkable = SDL_CreateMenuItem(menu, "Enable New Window", SDL_MENUITEM_CHECKABLE, MENU_BAR_FILE_DISABLE_NEW_WINDOW);
4772

48-
SDL_CheckMenuItem(checkable);
73+
SDL_SetMenuItemChecked(checkable, true);
4974
}
5075

5176
{
52-
SDL_MenuItem* menu = SDL_CreateMenuItem(bar, "Bookmarks", SDL_MENU, MENU_BAR_LAST);
53-
SDL_MenuItem* main_bookmarks = SDL_CreateMenuItem(menu, "Bookmarks Toolbar", SDL_MENU, MENU_BAR_LAST);
54-
SDL_MenuItem* discord = SDL_CreateMenuItem(main_bookmarks, "SDL Discord", SDL_MENU_BUTTON, MENU_BAR_BOOKMARKS_TOOLBAR_DISCORD);
55-
SDL_CreateMenuItem(main_bookmarks, "SDL GitHub", SDL_MENU_BUTTON, MENU_BAR_BOOKMARKS_TOOLBAR_GITHUB);
56-
SDL_CreateMenuItemAt(main_bookmarks, 0, "SDL Wiki", SDL_MENU_BUTTON, MENU_BAR_BOOKMARKS_TOOLBAR_WIKI);
57-
58-
SDL_MenuItem *other_bookmarks = SDL_CreateMenuItem(main_bookmarks, "Other Bookmarks", SDL_MENU, MENU_BAR_LAST);
59-
SDL_CreateMenuItem(other_bookmarks, "Stack Overflow", SDL_MENU_BUTTON, MENU_BAR_BOOKMARKS_OTHER_BOOKMARKS_STACKOVERFLOW);
77+
SDL_MenuItem* menu = SDL_CreateMenuItem(menu_bar, "Bookmarks", SDL_MENUITEM_SUBMENU, MENU_BAR_LAST);
78+
SDL_MenuItem* main_bookmarks = SDL_CreateMenuItem(menu, "Bookmarks Toolbar", SDL_MENUITEM_SUBMENU, MENU_BAR_LAST);
79+
SDL_MenuItem* discord = SDL_CreateMenuItem(main_bookmarks, "SDL Discord", SDL_MENUITEM_BUTTON, MENU_BAR_BOOKMARKS_TOOLBAR_DISCORD);
80+
SDL_CreateMenuItem(main_bookmarks, "SDL GitHub", SDL_MENUITEM_BUTTON, MENU_BAR_BOOKMARKS_TOOLBAR_GITHUB);
81+
SDL_CreateMenuItemAt(main_bookmarks, 0, "SDL Wiki", SDL_MENUITEM_BUTTON, MENU_BAR_BOOKMARKS_TOOLBAR_WIKI);
82+
83+
SDL_MenuItem *other_bookmarks = SDL_CreateMenuItem(main_bookmarks, "Other Bookmarks", SDL_MENUITEM_SUBMENU, MENU_BAR_LAST);
84+
SDL_MenuItem *stack_overflow = SDL_CreateMenuItem(other_bookmarks, "Stack Overflow-test", SDL_MENUITEM_BUTTON, MENU_BAR_BOOKMARKS_OTHER_BOOKMARKS_STACKOVERFLOW);
85+
SDL_SetMenuItemLabel(stack_overflow, "Stack Overflow");
6086

6187
SDL_DestroyMenuItem(discord);
6288

6389

64-
SDL_DisableMenuItem(other_bookmarks);
90+
SDL_SetMenuItemChecked(other_bookmarks, false);
6591
}
6692

6793
{
6894
// We can't create a top level checkable .
69-
SDL_assert(!SDL_CreateMenuItem(bar, "Incognito", SDL_MENU_CHECKABLE, MENU_BAR_INCOGNITO));
95+
SDL_assert(!SDL_CreateMenuItem(menu_bar, "Incognito", SDL_MENUITEM_CHECKABLE, MENU_BAR_INCOGNITO));
7096

71-
SDL_CreateMenuItem(bar, "Exit", SDL_MENU_BUTTON, MENU_BAR_EXIT);
97+
SDL_CreateMenuItem(menu_bar, "Exit", SDL_MENUITEM_BUTTON, MENU_BAR_EXIT);
7298
}
7399

100+
SDL_SetWindowMenuBar(window, menu_bar);
101+
74102
EVENT_START = (SDL_EventType_MenuExt)SDL_RegisterEvents(MENU_BAR_LAST);
75103
}
76104

@@ -85,8 +113,13 @@ SDL_AppResult SDL_AppInit(void** appstate, int argc, char** argv) {
85113

86114
SDL_AppResult SDL_AppIterate(void* appstate) {
87115

88-
SDL_SetRenderDrawColor(renderer, 128, 128, 128, 255);
116+
SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
89117
SDL_RenderClear(renderer);
118+
119+
120+
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
121+
int total_index = 0;
122+
PrintMenuItems(menu_bar, 0, &total_index);
90123
SDL_RenderPresent(renderer);
91124

92125
return SDL_APP_CONTINUE;
@@ -127,23 +160,13 @@ SDL_AppResult SDL_AppEvent(void* appstate, SDL_Event* event) {
127160
case MENU_BAR_FILE_DISABLE_NEW_WINDOW:
128161
{
129162
bool is_checked = false;
130-
SDL_MenuItemChecked(checkable, &is_checked);
131-
if (is_checked) {
132-
SDL_UncheckMenuItem(checkable);
133-
}
134-
else {
135-
SDL_CheckMenuItem(checkable);
136-
}
163+
SDL_GetMenuItemChecked(checkable, &is_checked);
164+
SDL_SetMenuItemChecked(checkable, !is_checked);
137165

138166
bool is_enabled = false;
139-
SDL_MenuItemEnabled(new_window, &is_enabled);
140-
141-
if (is_enabled) {
142-
SDL_DisableMenuItem(new_window);
143-
}
144-
else {
145-
SDL_EnableMenuItem(new_window);
146-
}
167+
SDL_GetMenuItemEnabled(new_window, &is_enabled);
168+
SDL_SetMenuItemEnabled(new_window, !is_enabled);
169+
147170
break;
148171
}
149172
case MENU_BAR_EXIT:
@@ -155,6 +178,7 @@ SDL_AppResult SDL_AppEvent(void* appstate, SDL_Event* event) {
155178
}
156179
}
157180

181+
158182
return SDL_APP_CONTINUE;
159183
}
160184

include/SDL3/SDL_video.h

Lines changed: 46 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -541,6 +541,19 @@ typedef Uint32 SDL_GLContextResetNotification;
541541
#define SDL_GL_CONTEXT_RESET_LOSE_CONTEXT 0x0001
542542

543543

544+
545+
typedef enum SDL_MenuItemType
546+
{
547+
SDL_MENUITEM_INVALID,
548+
SDL_MENUITEM_MENUBAR,
549+
SDL_MENUITEM_SUBMENU,
550+
SDL_MENUITEM_BUTTON,
551+
SDL_MENUITEM_CHECKABLE,
552+
} SDL_MenuItemType;
553+
554+
typedef union SDL_MenuItem SDL_MenuItem;
555+
556+
544557
/* Function prototypes */
545558

546559
/**
@@ -2944,6 +2957,7 @@ extern SDL_DECLSPEC SDL_ProgressState SDLCALL SDL_GetWindowProgressState(SDL_Win
29442957
*/
29452958
extern SDL_DECLSPEC bool SDLCALL SDL_SetWindowProgressValue(SDL_Window *window, float value);
29462959

2960+
29472961
/**
29482962
* Get the value of the progress bar for the given window’s taskbar icon.
29492963
*
@@ -2957,6 +2971,18 @@ extern SDL_DECLSPEC bool SDLCALL SDL_SetWindowProgressValue(SDL_Window *window,
29572971
*/
29582972
extern SDL_DECLSPEC float SDLCALL SDL_GetWindowProgressValue(SDL_Window *window);
29592973

2974+
/**
2975+
* Assigns a menu_bar to the given window, which will take ownership of it's destruction. NULL
2976+
* releases the menu_bar without destroying it.
2977+
*/
2978+
extern SDL_DECLSPEC SDL_MenuItem *SDL_GetWindowMenuBar(SDL_Window *window);
2979+
2980+
/**
2981+
* Assigns a menu_bar to the given window, which will take ownership of it's destruction. NULL
2982+
* releases the menu_bar without destroying it.
2983+
*/
2984+
extern SDL_DECLSPEC bool SDL_SetWindowMenuBar(SDL_Window *window, SDL_MenuItem *menu_bar);
2985+
29602986
/**
29612987
* Destroy a window.
29622988
*
@@ -3034,56 +3060,48 @@ extern SDL_DECLSPEC bool SDLCALL SDL_EnableScreenSaver(void);
30343060
*/
30353061
extern SDL_DECLSPEC bool SDLCALL SDL_DisableScreenSaver(void);
30363062

3037-
typedef enum SDL_MenuItemType
3038-
{
3039-
SDL_MENUBAR,
3040-
SDL_MENU,
3041-
SDL_MENU_BUTTON,
3042-
SDL_MENU_CHECKABLE,
3043-
} SDL_MenuItemType;
3044-
3045-
typedef union SDL_MenuItem SDL_MenuItem;
3046-
30473063
extern SDL_DECLSPEC SDL_MenuItem *SDL_CreateMenuBar(SDL_Window *window);
30483064

3065+
#define SDL_PROP_MENUITEM_CREATE_LABEL "SDL.menuitem.create.label"
3066+
30493067
/**
3050-
* menu_bar_as_item must be a SDL_MENUBAR or SDL_MENU
3051-
* event_type will be ignored if type == SDL_MENU
3068+
* menu_as_item must be a SDL_MENUITEM_MENUBAR or SDL_MENUITEM_SUBMENU
3069+
* event_type will be ignored if type == SDL_MENUITEM_SUBMENU
30523070
* On MacOS, buttoms created under a menubar will go into the "App" submenu
30533071
*/
3054-
extern SDL_DECLSPEC SDL_MenuItem *SDL_CreateMenuItemAt(SDL_MenuItem *menu_bar_as_item, size_t index, const char *name, SDL_MenuItemType type, Uint16 event_type);
3072+
extern SDL_DECLSPEC SDL_MenuItem *SDL_CreateMenuItemAt(SDL_MenuItem *menu_as_item, size_t index, const char *Label, SDL_MenuItemType type, Uint16 event_type);
30553073

30563074
/**
3057-
* menu_bar_as_item must be a SDL_MENUBAR or SDL_MENU
3058-
* event_type will be ignored if type == SDL_MENU
3075+
* menu_as_item must be a SDL_MENUITEM_MENUBAR or SDL_MENUITEM_SUBMENU
3076+
* event_type will be ignored if type == SDL_MENUITEM_SUBMENU
30593077
* On MacOS, buttoms created under a menubar will go into the "App" submenu
30603078
*/
3061-
extern SDL_DECLSPEC SDL_MenuItem *SDL_CreateMenuItem(SDL_MenuItem *menu_bar_as_item, const char *name, SDL_MenuItemType type, Uint16 event_type);
3079+
extern SDL_DECLSPEC SDL_MenuItem *SDL_CreateMenuItem(SDL_MenuItem *menu_as_item, const char *Label, SDL_MenuItemType type, Uint16 event_type);
30623080

30633081
/**
30643082
* -1 on error
30653083
*/
3066-
extern SDL_DECLSPEC Sint64 SDL_ChildItems(SDL_MenuItem *menu_bar_as_item);
3084+
extern SDL_DECLSPEC Sint64 SDL_GetMenuChildItems(SDL_MenuItem *menu_as_item);
3085+
extern SDL_DECLSPEC SDL_MenuItem *SDL_GetMenuChildItem(SDL_MenuItem *menu_as_item, size_t index);
30673086

3087+
extern SDL_DECLSPEC const char *SDL_GetMenuItemLabel(SDL_MenuItem *menu_item);
3088+
extern SDL_DECLSPEC bool SDL_SetMenuItemLabel(SDL_MenuItem *menu_item, const char *label);
3089+
extern SDL_DECLSPEC SDL_MenuItemType SDL_GetMenuItemType(SDL_MenuItem *menu_item);
30683090

30693091
/**
3070-
* Must be a SDL_MENU_CHECKABLE
3092+
* Must be a SDL_MENUITEM_CHECKABLE
30713093
*/
3072-
extern SDL_DECLSPEC bool SDL_CheckMenuItem(SDL_MenuItem *menu_item);
3094+
extern SDL_DECLSPEC bool SDL_GetMenuItemChecked(SDL_MenuItem *menu_item, bool *checked);
30733095

30743096
/**
3075-
* Must be a SDL_MENU_CHECKABLE
3097+
* Must be a SDL_MENUITEM_CHECKABLE
30763098
*/
3077-
extern SDL_DECLSPEC bool SDL_UncheckMenuItem(SDL_MenuItem *menu_item);
3099+
extern SDL_DECLSPEC bool SDL_SetMenuItemChecked(SDL_MenuItem *menu_item, bool checked);
30783100

3079-
/**
3080-
* Must be a SDL_MENU_CHECKABLE
3081-
*/
3082-
extern SDL_DECLSPEC bool SDL_MenuItemChecked(SDL_MenuItem *menu_item, bool *checked);
30833101

3084-
extern SDL_DECLSPEC bool SDL_MenuItemEnabled(SDL_MenuItem *menu_item, bool *enabled);
3085-
extern SDL_DECLSPEC bool SDL_EnableMenuItem(SDL_MenuItem *menu_item);
3086-
extern SDL_DECLSPEC bool SDL_DisableMenuItem(SDL_MenuItem *menu_item);
3102+
extern SDL_DECLSPEC bool SDL_GetMenuItemEnabled(SDL_MenuItem *menu_item, bool *enabled);
3103+
extern SDL_DECLSPEC bool SDL_SetMenuItemEnabled(SDL_MenuItem *menu_item, bool enabled);
3104+
30873105
extern SDL_DECLSPEC bool SDL_DestroyMenuItem(SDL_MenuItem *menu_item);
30883106

30893107
/**

src/SDL_utils_c.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ typedef enum
6262
SDL_OBJECT_TYPE_HIDAPI_JOYSTICK,
6363
SDL_OBJECT_TYPE_THREAD,
6464
SDL_OBJECT_TYPE_TRAY,
65+
SDL_OBJECT_TYPE_MENUBAR,
6566

6667
} SDL_ObjectType;
6768

src/dynapi/SDL_dynapi.sym

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1265,31 +1265,19 @@ SDL3_0.0.0 {
12651265
SDL_SavePNG_IO;
12661266
SDL_SavePNG;
12671267
SDL_CreateMenuBar;
1268-
SDL_CreateMenuBarItem;
1269-
SDL_CreateMenuItem;
1270-
SDL_CheckMenuItem;
1271-
SDL_EnableMenuItem;
1272-
SDL_CreateMenuBar
1273-
SDL_CreateMenuItemAt
1274-
SDL_CreateMenuItem
1275-
SDL_ChildItems
1276-
SDL_CheckMenuItem
1277-
SDL_UncheckMenuItem
1278-
SDL_MenuItemChecked
1279-
SDL_MenuItemEnabled
1280-
SDL_EnableMenuItem
1281-
SDL_DisableMenuItem
1282-
SDL_DestroyMenuItem
1283-
SDL_CreateMenuBar;
1268+
SDL_GetWindowMenuBar;
1269+
SDL_SetWindowMenuBar;
12841270
SDL_CreateMenuItemAt;
12851271
SDL_CreateMenuItem;
1286-
SDL_ChildItems;
1287-
SDL_CheckMenuItem;
1288-
SDL_UncheckMenuItem;
1289-
SDL_MenuItemChecked;
1290-
SDL_MenuItemEnabled;
1291-
SDL_EnableMenuItem;
1292-
SDL_DisableMenuItem;
1272+
SDL_GetMenuChildItems;
1273+
SDL_GetMenuChildItem;
1274+
SDL_GetMenuItemLabel;
1275+
SDL_GetMenuItemType;
1276+
SDL_SetMenuItemLabel;
1277+
SDL_SetMenuItemChecked;
1278+
SDL_GetMenuItemChecked;
1279+
SDL_GetMenuItemEnabled;
1280+
SDL_SetMenuItemEnabled;
12931281
SDL_DestroyMenuItem;
12941282
# extra symbols go here (don't modify this line)
12951283
local: *;

src/dynapi/SDL_dynapi_overrides.h

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1291,13 +1291,17 @@
12911291
#define SDL_SavePNG_IO SDL_SavePNG_IO_REAL
12921292
#define SDL_SavePNG SDL_SavePNG_REAL
12931293
#define SDL_CreateMenuBar SDL_CreateMenuBar_REAL
1294+
#define SDL_GetWindowMenuBar SDL_GetWindowMenuBar_REAL
1295+
#define SDL_SetWindowMenuBar SDL_SetWindowMenuBar_REAL
12941296
#define SDL_CreateMenuItemAt SDL_CreateMenuItemAt_REAL
12951297
#define SDL_CreateMenuItem SDL_CreateMenuItem_REAL
1296-
#define SDL_ChildItems SDL_ChildItems_REAL
1297-
#define SDL_CheckMenuItem SDL_CheckMenuItem_REAL
1298-
#define SDL_UncheckMenuItem SDL_UncheckMenuItem_REAL
1299-
#define SDL_MenuItemChecked SDL_MenuItemChecked_REAL
1300-
#define SDL_MenuItemEnabled SDL_MenuItemEnabled_REAL
1301-
#define SDL_EnableMenuItem SDL_EnableMenuItem_REAL
1302-
#define SDL_DisableMenuItem SDL_DisableMenuItem_REAL
1298+
#define SDL_GetMenuChildItems SDL_GetMenuChildItems_REAL
1299+
#define SDL_GetMenuChildItem SDL_GetMenuChildItem_REAL
1300+
#define SDL_GetMenuItemLabel SDL_GetMenuItemLabel_REAL
1301+
#define SDL_GetMenuItemType SDL_GetMenuItemType_REAL
1302+
#define SDL_SetMenuItemLabel SDL_SetMenuItemLabel_REAL
1303+
#define SDL_SetMenuItemChecked SDL_SetMenuItemChecked_REAL
1304+
#define SDL_GetMenuItemChecked SDL_GetMenuItemChecked_REAL
1305+
#define SDL_GetMenuItemEnabled SDL_GetMenuItemEnabled_REAL
1306+
#define SDL_SetMenuItemEnabled SDL_SetMenuItemEnabled_REAL
13031307
#define SDL_DestroyMenuItem SDL_DestroyMenuItem_REAL

src/dynapi/SDL_dynapi_procs.h

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1298,19 +1298,18 @@ SDL_DYNAPI_PROC(SDL_Surface*,SDL_LoadPNG_IO,(SDL_IOStream *a,bool b),(a,b),retur
12981298
SDL_DYNAPI_PROC(SDL_Surface*,SDL_LoadPNG,(const char *a),(a),return)
12991299
SDL_DYNAPI_PROC(bool,SDL_SavePNG_IO,(SDL_Surface *a,SDL_IOStream *b,bool c),(a,b,c),return)
13001300
SDL_DYNAPI_PROC(bool,SDL_SavePNG,(SDL_Surface *a,const char *b),(a,b),return)
1301-
SDL_DYNAPI_PROC(SDL_MenuBar*, SDL_CreateMenuBar,(SDL_Window*a),(a),return)
1302-
SDL_DYNAPI_PROC(SDL_MenuItem*,SDL_CreateMenuBarItem,(SDL_MenuBar*a,const char*b,SDL_MenuItemType c,Uint16 d),(a,b,c,d),return)
1303-
SDL_DYNAPI_PROC(SDL_MenuItem*,SDL_CreateMenuItem,(SDL_Menu*a,const char*b,SDL_MenuItemType c,Uint16 d),(a,b,c,d),return)
1304-
SDL_DYNAPI_PROC(bool, SDL_CheckMenuItem,(SDL_MenuItem*a, bool b),(a,b),return)
1305-
SDL_DYNAPI_PROC(bool, SDL_EnableMenuItem,(SDL_MenuItem*a, bool b),(a,b),return)
13061301
SDL_DYNAPI_PROC(SDL_MenuItem*,SDL_CreateMenuBar,(SDL_Window *a),(a),return)
1302+
SDL_DYNAPI_PROC(SDL_MenuItem*,SDL_GetWindowMenuBar, (SDL_Window * a), (a),return)
1303+
SDL_DYNAPI_PROC(bool,SDL_SetWindowMenuBar,(SDL_Window *a, SDL_MenuItem *b),(a, b),return)
13071304
SDL_DYNAPI_PROC(SDL_MenuItem*,SDL_CreateMenuItemAt,(SDL_MenuItem *a,size_t b,const char *c,SDL_MenuItemType d, Uint16 e), (a,b,c,d,e), return)
13081305
SDL_DYNAPI_PROC(SDL_MenuItem*,SDL_CreateMenuItem,(SDL_MenuItem *a, const char *b, SDL_MenuItemType c, Uint16 d),(a,b,c,d), return)
1309-
SDL_DYNAPI_PROC(Sint64,SDL_ChildItems, (SDL_MenuItem *a),(a),return)
1310-
SDL_DYNAPI_PROC(bool,SDL_CheckMenuItem,(SDL_MenuItem *a),(a),return)
1311-
SDL_DYNAPI_PROC(bool,SDL_UncheckMenuItem,(SDL_MenuItem *a),(a),return)
1312-
SDL_DYNAPI_PROC(bool,SDL_MenuItemChecked,(SDL_MenuItem *a,bool *b),(a, b),return)
1313-
SDL_DYNAPI_PROC(bool,SDL_MenuItemEnabled,(SDL_MenuItem *a,bool *b),(a, b),return)
1314-
SDL_DYNAPI_PROC(bool,SDL_EnableMenuItem,(SDL_MenuItem *a),(a),return)
1315-
SDL_DYNAPI_PROC(bool,SDL_DisableMenuItem,(SDL_MenuItem *a),(a),return)
1306+
SDL_DYNAPI_PROC(Sint64,SDL_GetMenuChildItems, (SDL_MenuItem *a),(a),return)
1307+
SDL_DYNAPI_PROC(SDL_MenuItem*, SDL_GetMenuChildItem, (SDL_MenuItem *a, size_t b), (a,b), return)
1308+
SDL_DYNAPI_PROC(const char *, SDL_GetMenuItemLabel, (SDL_MenuItem *a), (a), return)
1309+
SDL_DYNAPI_PROC(bool, SDL_SetMenuItemLabel, (SDL_MenuItem *a,const char *b), (a,b), return)
1310+
SDL_DYNAPI_PROC(SDL_MenuItemType, SDL_GetMenuItemType, (SDL_MenuItem *a), (a), return)
1311+
SDL_DYNAPI_PROC(bool,SDL_GetMenuItemChecked,(SDL_MenuItem *a,bool *b),(a,b),return)
1312+
SDL_DYNAPI_PROC(bool,SDL_SetMenuItemChecked,(SDL_MenuItem *a,bool b),(a,b),return)
1313+
SDL_DYNAPI_PROC(bool,SDL_GetMenuItemEnabled,(SDL_MenuItem *a,bool *b),(a,b),return)
1314+
SDL_DYNAPI_PROC(bool,SDL_SetMenuItemEnabled,(SDL_MenuItem *a,bool b),(a,b),return)
13161315
SDL_DYNAPI_PROC(bool,SDL_DestroyMenuItem,(SDL_MenuItem *a),(a),return)

0 commit comments

Comments
 (0)