diff --git a/test.c b/test.c index 50dbdf28..1fc355bb 100644 --- a/test.c +++ b/test.c @@ -6,26 +6,31 @@ // TODO convert to using the new conversion macros // TODO why can't these be const? +void noopMenu(void *source, void *data) +{ + // do nothing +} + static const uiMenuItem fileMenu[] = { - { uiMenuItemTypeCommand, "New" }, - { uiMenuItemTypeCommand, "Open" }, - { uiMenuItemTypeQuit, NULL }, - { 0, NULL }, + { uiMenuItemTypeCommand, "New", noopMenu, NULL }, + { uiMenuItemTypeCommand, "Open", noopMenu, NULL }, + { uiMenuItemTypeQuit, NULL, noopMenu, NULL }, + { 0, NULL, NULL, NULL }, }; static const uiMenuItem editMenu[] = { - { uiMenuItemTypeCommand, "Undo" }, - { uiMenuItemTypeSeparator, NULL }, - { uiMenuItemTypeCheckbox, "Check Me" }, - { uiMenuItemTypeCommand, "A&ccelerator T_est" }, - { uiMenuItemTypePreferences, NULL }, - { 0, NULL }, + { uiMenuItemTypeCommand, "Undo", noopMenu, NULL }, + { uiMenuItemTypeSeparator, NULL, NULL, NULL }, + { uiMenuItemTypeCheckbox, "Check Me", noopMenu, NULL }, + { uiMenuItemTypeCommand, "A&ccelerator T_est\tTest", noopMenu, NULL }, + { uiMenuItemTypePreferences, NULL, noopMenu, NULL }, + { 0, NULL, NULL, NULL }, }; static const uiMenuItem helpMenu[] = { - { uiMenuItemTypeCommand, "Help" }, - { uiMenuItemTypeAbout, NULL }, - { 0, NULL }, + { uiMenuItemTypeCommand, "Help", noopMenu, NULL }, + { uiMenuItemTypeAbout, NULL, noopMenu, NULL }, + { 0, NULL, NULL, NULL }, }; static uiMenu menu[] = { diff --git a/ui.idl b/ui.idl index 0a6b0769..14722a5c 100644 --- a/ui.idl +++ b/ui.idl @@ -145,6 +145,8 @@ struct Menu { struct MenuItem { field Type MenuItemType; field Name *const char; + field OnClicked *func(sender *void, data *void); + field OnClickedData *void; }; enum MenuItemType {