CMenu pseudo code - OOP344 20113

From CDOT Wiki
Jump to: navigation, search


OOP344 | Weekly Schedule | Student List | Teams | Project | Student Resources
This pseudo code is tested but is NOT the most efficient way to accomplish the task. Optimize it if possible.

/* EDITING LOOP */
LOOP UNTIL editing is done
  Draw the Menu
/*-- EDITING THE TITLE OF THE MENU --*/
  IF object is dropdown and it is not dropped THEN
    Edit The Title Button
    IF Button is hit THEN
      Set the menu to drop down when drawn
      draw the menu
      Set Menu browsing Loop to start
    ELSE
      Set Menu browsing Loop NOT to start
    END IF
  END IF
  Set editing loop to end.
/*-- BROWSING THE MENUITEMS IN MNEU --*/
/* BROWSING LOOP */
  LOOP UNTIL menu browsing is done
    Edit the current menu item and get the key returned
    IF the key is ENTER
      IF any of items are selected THEN
        change the key value o SPACE
      END IF
      set the browsing loop to end
    END IF
    IF the key is SPACE THEN
      set the selected index
      set the browsing loop to end
    END IF
    IF the key is DOWN THEN
      Set current to be the next item in the list
      IF this can not be done THEN
        IF Menu is a dropdown THEN
          set the first and current item on menu to be the first item in the list
          draw the Menu
        ELSE
          set the borwsing loop to end
        END IF
      END IF
      IF current index is passed the last one in the mneu THEN
        make the first to point to the next one in the list
        draw the menu
      END IF
    END IF
    IF the key is UP THEN
      Set current to be the previous item in the list
      IF this can not be done THEN
        IF Menu is a dropdown THEN
          set the current item in menu to be the last the list
          set the first item in menu to be NUM items before last in the list, 
             (where NUM is the number rows in the menu)
          draw the Menu
        ELSE
          set the borwsing loop to end
        END IF
      END IF
      IF current index is passed the first index in the menu THEN
        set the first index to point to previous one in the list
        draw the menu
      END IF
    END IF
    IF the Key is ESCAPE THEN
      set the menu not to drop, 
      set browsing loop to end
      set the edting loop NOT to end
    END IF
    IF the key is right, left, tab or any of the printable characters THEN
      set the browsing loop to end
    END IF
  End menu browsing loop
End Editing loop
IF Menu is a dropdown THEN
  set the menu not to drop
  hide the menu
END IF
return the last key hit