Menu Example 2.c 1.4 KB

1234567891011121314151617181920212223242526272829303132333435
  1. // A simple menu example, with several submenus
  2. #define USE_TI89 // Compile for TI-89
  3. #define USE_TI92PLUS // Compile for TI-92 Plus
  4. #define USE_V200 // Compile for V200
  5. #define RETURN_VALUE // Return a Value
  6. #define OPTIMIZE_ROM_CALLS // Use ROM Call Optimization
  7. #define MIN_AMS 200 // Compile for AMS 2.00 or higher
  8. #include <tigcclib.h> // Include All Header Files
  9. // Main Function
  10. void _main(void)
  11. {
  12. HANDLE menu_handle = MenuNew (2, 240, 18);
  13. DynMenuAdd (menu_handle, 0, "First", 1, DMF_TEXT | DMF_TOP_SUB);
  14. DynMenuAdd (menu_handle, 1, "Subitem 1.1", 5, DMF_TEXT | DMF_CHILD_SUB);
  15. DynMenuAdd (menu_handle, 5, "Subitem 1.1.1", 8, DMF_TEXT | DMF_CHILD_SUB);
  16. DynMenuAdd (menu_handle, 5, "Subitem 1.1.2", 9, DMF_TEXT | DMF_CHILD);
  17. DynMenuAdd (menu_handle, 8, "Subitem 1.1.1.1", 10, DMF_TEXT | DMF_CHILD);
  18. DynMenuAdd (menu_handle, 1, "Subitem 1.2", 6, DMF_TEXT | DMF_CHILD);
  19. DynMenuAdd (menu_handle, 0, "Second", 2, DMF_TEXT | DMF_TOP_SUB);
  20. DynMenuAdd (menu_handle, 2, "Subitem 2.1", 7, DMF_TEXT | DMF_CHILD);
  21. DynMenuAdd (menu_handle, -1, "Third", 3, DMF_TEXT | DMF_TOP);
  22. DynMenuAdd (menu_handle, -1, "Fourth", 4, DMF_TEXT | DMF_TOP);
  23. HANDLE exec_handle = MenuBegin (NULL, 0, 0, MBF_HMENU, menu_handle);
  24. short result;
  25. do {
  26. result = MenuKey (exec_handle, ngetchx ());
  27. } while (result == M_NOTMENUKEY);
  28. MenuEnd (exec_handle);
  29. MenuUpdate ();
  30. push_shortint (result);
  31. }