home *** CD-ROM | disk | FTP | other *** search
- PopMenu Package
-
- 07/04/90
- (c) 1990 by Paul Miller
-
-
- The PopMenu Package (popmenu_pak) is a useful package of simple functions
- for quick and easy programming of window-dependent pop-up menus.
-
- The package gives simple initialization, handling, and freeing of Macintosh-
- like pop-up menus. These consist of a box with text in it that, when clicked
- on, opens into a menu of items, that can be selected while the mouse is held
- down. Releasing the button selects the item under the mouse. There are two
- ways to handle these pop-up menus. One kind can display a constant title or
- other information and, when clicked on, open the menu for selection. The
- other kind can be a list of commands or modes, where the name of the selected
- item is displayed in the box after it is selected.
-
- This package is ideal for programs that need very window-specific menu items,
- but don't need to take up extra space in the menu bar that is useless unless
- that window is being worked with.
-
- Programs interface with the PopMenu Package via a PMenu structure, which
- is based on the normal Menu structure, and the PMenuItem structure, which
- is based on the normal MenuItem structure. After varifying which PopMenu
- was selected by the user, your application sends the PopMenu Handler a copy
- of the PMenu that was selected, and the handler returns the item number
- that was selected, or 0 if none was selected. Depending on the type of menu,
- it will also update the menu select box text.
-
- Please note that the PopMenu Package doesn't use SwapBitsRastPortClipRect()
- to render the menu. It just copies the window BitMap where the menu is to be
- drawn into a backup BitMap area, then the menu is rendered directly into the
- window. Also, no layer locking is performed, so be sure there is no
- asynchronus graphics rendering in the window during PopMenu handling. I
- didn't want to take the time to figure out the SwapBits... and layer locking,
- so I did a simple compromise. If someone fixes this, please let me know.
-
- Don't forget to include the "popmenu_pak.h" file in your programs.
-
- Refer to "popmenu_pak.doc" for more info.
-
- See the included "Test" program for an example of setting up a PopMenu.
-
- Feel free to use these functions or the object module in your programs. If
- you end up just linking in the popmenu_pak.o object module, kindly mention
- me in your credits, eh? -Enjoy.
-