#ifndef WXD_MENU_H
#define WXD_MENU_H
#include "../wxd_types.h"
WXD_EXPORTED wxd_MenuBar_t*
wxd_MenuBar_Create(wxd_Style_t style);
WXD_EXPORTED void
wxd_MenuBar_Append(wxd_MenuBar_t* menubar, wxd_Menu_t* menu, const char* title);
WXD_EXPORTED bool
wxd_MenuBar_EnableItem(wxd_MenuBar_t* menubar, wxd_Id id, bool enable);
WXD_EXPORTED bool
wxd_MenuBar_IsItemEnabled(const wxd_MenuBar_t* menubar, wxd_Id id);
WXD_EXPORTED void
wxd_MenuBar_CheckItem(wxd_MenuBar_t* menubar, wxd_Id id, bool check);
WXD_EXPORTED bool
wxd_MenuBar_IsItemChecked(const wxd_MenuBar_t* menubar, wxd_Id id);
WXD_EXPORTED wxd_MenuItem_t*
wxd_MenuBar_FindItem(wxd_MenuBar_t* menubar, wxd_Id id, wxd_Menu_t** menu);
WXD_EXPORTED wxd_Menu_t*
wxd_Menu_Create(const char* title, wxd_Style_t style);
WXD_EXPORTED size_t
wxd_Menu_GetMenuItemCount(const wxd_Menu_t* menu);
WXD_EXPORTED int
wxd_Menu_GetTitle(const wxd_Menu_t* menu, char* buffer, size_t buffer_size);
WXD_EXPORTED void
wxd_Menu_SetTitle(wxd_Menu_t* menu, const char* title);
WXD_EXPORTED void
wxd_Menu_Destroy(wxd_Menu_t* menu);
WXD_EXPORTED wxd_MenuItem_t*
wxd_Menu_Append(wxd_Menu_t* menu, wxd_Id id, const char* item, const char* helpString, int kind);
WXD_EXPORTED const wxd_MenuItem_t*
wxd_Menu_AppendSubMenu(wxd_Menu_t* menu, wxd_Menu_t* submenu, const char* title,
const char* helpString);
WXD_EXPORTED bool
wxd_Menu_ItemEnable(wxd_Menu_t* menu, wxd_Id id, bool enable);
WXD_EXPORTED bool
wxd_Menu_IsItemEnabled(const wxd_Menu_t* menu, wxd_Id id);
WXD_EXPORTED void
wxd_Menu_CheckItem(wxd_Menu_t* menu, wxd_Id id, bool check);
WXD_EXPORTED bool
wxd_Menu_IsItemChecked(const wxd_Menu_t* menu, wxd_Id id);
WXD_EXPORTED wxd_MenuItem_t*
wxd_Menu_FindItem(wxd_Menu_t* menu, wxd_Id id);
WXD_EXPORTED void
wxd_Menu_AppendSeparator(wxd_Menu_t* menu);
WXD_EXPORTED wxd_MenuItem_t*
wxd_Menu_Insert(wxd_Menu_t* menu, size_t pos, wxd_Id id, const char* item, const char* helpString, int kind);
WXD_EXPORTED const wxd_MenuItem_t*
wxd_Menu_InsertSubMenu(wxd_Menu_t* menu, size_t pos, wxd_Menu_t* submenu, const char* title, const char* helpString);
WXD_EXPORTED wxd_MenuItem_t*
wxd_Menu_InsertSeparator(wxd_Menu_t* menu, size_t pos);
WXD_EXPORTED wxd_MenuItem_t*
wxd_Menu_Prepend(wxd_Menu_t* menu, wxd_Id id, const char* item, const char* helpString, int kind);
WXD_EXPORTED const wxd_MenuItem_t*
wxd_Menu_PrependSubMenu(wxd_Menu_t* menu, wxd_Menu_t* submenu, const char* title, const char* helpString);
WXD_EXPORTED wxd_MenuItem_t*
wxd_Menu_PrependSeparator(wxd_Menu_t* menu);
WXD_EXPORTED wxd_MenuItem_t*
wxd_Menu_Remove(wxd_Menu_t* menu, wxd_Id id);
WXD_EXPORTED wxd_MenuItem_t*
wxd_Menu_RemoveItem(wxd_Menu_t* menu, wxd_MenuItem_t* item);
WXD_EXPORTED bool
wxd_Menu_Delete(wxd_Menu_t* menu, wxd_Id id);
WXD_EXPORTED bool
wxd_Menu_DeleteItem(wxd_Menu_t* menu, wxd_MenuItem_t* item);
WXD_EXPORTED wxd_MenuItem_t*
wxd_Menu_FindItemByPosition(const wxd_Menu_t* menu, size_t pos);
WXD_EXPORTED int
wxd_Menu_GetHelpString(const wxd_Menu_t* menu, wxd_Id id, char* buffer, size_t buffer_size);
WXD_EXPORTED void
wxd_Menu_SetHelpString(wxd_Menu_t* menu, wxd_Id id, const char* helpString);
WXD_EXPORTED void
wxd_Menu_UpdateUI(wxd_Menu_t* menu, wxd_EvtHandler_t* source);
WXD_EXPORTED void
wxd_Menu_Break(wxd_Menu_t* menu);
WXD_EXPORTED wxd_Menu_t*
wxd_MenuBar_GetMenu(const wxd_MenuBar_t* menubar, size_t index);
WXD_EXPORTED size_t
wxd_MenuBar_GetMenuCount(const wxd_MenuBar_t* menubar);
WXD_EXPORTED int
wxd_MenuBar_FindMenu(const wxd_MenuBar_t* menubar, const char* title);
WXD_EXPORTED void
wxd_MenuBar_EnableTop(wxd_MenuBar_t* menubar, size_t pos, bool enable);
WXD_EXPORTED int
wxd_MenuBar_GetMenuLabel(const wxd_MenuBar_t* menubar, size_t pos, char* buffer, size_t buffer_size);
WXD_EXPORTED void
wxd_MenuBar_SetMenuLabel(wxd_MenuBar_t* menubar, size_t pos, const char* label);
WXD_EXPORTED wxd_Menu_t*
wxd_MenuBar_Replace(wxd_MenuBar_t* menubar, size_t pos, wxd_Menu_t* menu, const char* title);
WXD_EXPORTED void
wxd_MenuItem_Destroy(wxd_MenuItem_t* item);
WXD_EXPORTED void
wxd_MenuItem_SetLabel(wxd_MenuItem_t* item, const char* label);
WXD_EXPORTED int
wxd_MenuItem_GetLabel(const wxd_MenuItem_t* item, char* buffer, size_t buffer_size);
WXD_EXPORTED void
wxd_MenuItem_Enable(wxd_MenuItem_t* item, bool enable);
WXD_EXPORTED bool
wxd_MenuItem_IsEnabled(wxd_MenuItem_t* item);
WXD_EXPORTED void
wxd_MenuItem_Check(wxd_MenuItem_t* item, bool check);
WXD_EXPORTED bool
wxd_MenuItem_IsChecked(wxd_MenuItem_t* item);
WXD_EXPORTED const wxd_Window_t*
wxd_MenuItem_GetOwningWindow(const wxd_MenuItem_t* item);
WXD_EXPORTED int
wxd_MenuItem_GetId(const wxd_MenuItem_t* item);
WXD_EXPORTED wxd_Menu_t*
wxd_MenuItem_GetSubMenu(const wxd_MenuItem_t* item);
WXD_EXPORTED void
wxd_MenuItem_SetBitmap(wxd_MenuItem_t* item, const wxd_Bitmap_t* bitmap);
WXD_EXPORTED wxd_Bitmap_t*
wxd_MenuItem_GetBitmap(const wxd_MenuItem_t* item);
#endif