guiAddMenu

int guiAddMenu(int gui_id, int parent_id, string text, bool is_checkable = false);
Parameter Description
parent_id 0 = top-level bar menu; non-zero = another menu handle (nested popup).
text Must be non-empty (DLL rejects empty).
is_checkable Checkbox-style popup rows (GUI_OBJPROP_CHECKED).

Reading Menu State

int checked = guiObjectGetInteger(gui_id, menu_row, GUI_OBJPROP_CHECKED);
int enabled = guiObjectGetInteger(gui_id, menu_row, GUI_OBJPROP_ENABLED);
string row_text = guiObjectGetString(gui_id, menu_row, GUI_OBJPROP_MENU_TEXT);

Row appearance: GUI_OBJPROP_MENU_TEXT_COLOR, GUI_OBJPROP_MENU_BG_COLOR.

Clicks and Removal

Poll guiIsClicked(gui_id, menu_handle) like other objects. Remove with guiRemove(gui_id, menu_handle).

int file_menu = guiAddMenu(gui_id, 0, "File");
int open_item = guiAddMenu(gui_id, file_menu, "Open", false);
int save_item = guiAddMenu(gui_id, file_menu, "Save", false);

// In OnCalculate:
if(guiIsClicked(gui_id, open_item))
   Print("Open chosen");