 |
PopupBegin |
Function (ROM Call 0x3F5) |
Creates a new popup menu with checkmarks features.
PopuBegin allocates a menu-draw structure for a dynamic popup associated with
Handle, so that the popup items can use the enable/disable or check
mark features of menus.
PopupBegin returns a handle which must be passed to
PopupBeginDo, not to
PopupDo.
The Flags parameter is currently not used and should be set to 0.
TI gives a strict method of using dynamic popups that use PopupBegin:
- Create an empty, dynamic popup structure with PopupNew.
- Build the menu with DynMenuAdd (or PopupAddText).
- Pass the handle returned by PopupNew to PopupBegin.
- The handle returned by PopupBegin can now be passed to
MenuSubStat to enable/disable
individual items or MenuCheck to turn on/off or test
the status of checkmarks for individual items.
- Pass the handle returned from PopupBegin to PopupBeginDo to
actually execute the pop-up.
- When done with the menu, call MenuEnd on the handle returned from
PopupBegin. This will free that handle and the handle returned from
PopupNew.
Do not forget that once you call PopupBegin, you may not unlock the
handle returned from PopupNew, or call
DynMenuAdd,
DynMenuChange, or
PopupAddText.
This routine may cause heap compression.
Here is an example of a scrolling popup menu with submenus (called "Dynamic Popup Example"):
// A simple popup menu example
#define USE_TI89 // Compile for TI-89
#define USE_TI92PLUS // Compile for TI-92 Plus
#define USE_V200 // Compile for V200
#define RETURN_VALUE // Return a Value
#define OPTIMIZE_ROM_CALLS // Use ROM Call Optimization
#define MIN_AMS 200 // Compile for AMS 2.00 or higher
#include <tigcclib.h> // Include All Header Files
// Main Function
void _main(void)
{
HANDLE handle = PopupNew ("EXAMPLE", 40);
PopupAddText (handle, -1, "Option 1", 1);
PopupAddText (handle, -1, "Option 2", 2);
PopupAddText (handle, 0, "Submenu 3", 3);
PopupAddText (handle, 0, "Submenu 4", 4);
PopupAddText (handle, -1, "Option 5", 5);
PopupAddText (handle, 3, "Suboption 3.1", 6);
PopupAddText (handle, 3, "Suboption 3.2", 7);
PopupAddText (handle, 3, "Suboption 3.3", 8);
PopupAddText (handle, 4, "Suboption 4.1", 9);
HANDLE exec_handle = PopupBegin (handle, 0);
MenuCheck (exec_handle, 2, MC_CHECK);
MenuCheck (exec_handle, 5, MC_FLIP);
short result = PopupBeginDo (exec_handle, CENTER, CENTER, 0);
push_longint (result);
MenuEnd (exec_handle);
}
Uses: HeapAlloc, HeapLock, memset
See also: PopupNew, PopupBeginDo, MenuSubStat, MenuCheck, MenuEnd