872
Appendix A: System Routines — Menus
TI
-
89 / TI
-
92 Plus Developer Guide
Not for Distribution
Beta Version January 26, 2001
DynMenuAdd
(continued)
Assumptions:
See
MenuNew
for details on creating and using dynamic menus.
Side Effects:
May cause heap compression.
Availability:
On AMS 2.00 and higher.
TI
-
89 / TI
-
92 Plus
Differences:
None
See Also: MenuNew, MenuLoad, DynMenuChange
Example:
HANDLE hNewMenu, hDrawMenu;
WORD key;
static const WORD IconPencil[] = {0x0000, 0x0000, 0x0018, 0x0024, 0x0074, 0x0098,
0x0110, 0x0220, 0x0440, 0x0880, 0x1900, 0x1E00, 0x1C00, 0x1800, 0x1000, 0x0000};
if (!(hNewMenu = MenuNew( 0, 240, 0 )))
ER_throw(ER_MEMORY);
DynMenuAdd( hNewMenu ,0, "TOP 1", 1, DMF_TEXT );
DynMenuAdd( hNewMenu, 0, "TOP 2", 2, DMF_TEXT );
DynMenuAdd( hNewMenu, 1, "SUB 1", 11, DMF_CHILD | DMF_TEXT);
DynMenuAdd( hNewMenu, 1, IconPencil, 12, DMF_CHILD | DMF_ICON);
if (MenuFlags(hNewMenu) & MF_ERROR) {
HeapFree( hNewMenu );
ER_throw(ER_MEMORY);
}
if (!(hDrawMenu = MenuBegin( HLock(hNewMenu), -1, 0, TRUE ))) {
HeapFree( hNewMenu );
ER_throw(ER_MEMORY);
}
key = MenuKey( hDrawMenu, KB_F1 );
MenuEnd( hDrawmenu );
HeapFree( hNewMenu );