f61b9aaaf7616934d4c139c07d8319d3894a0978
1 /***********************************************************
2 * Copyright (C) 1997, Be Inc. All rights reserved.
6 * DESCRIPTION: the GlutMenu class is a simple popup menu
7 ***********************************************************/
9 /***********************************************************
11 ***********************************************************/
16 /***********************************************************
18 ***********************************************************/
19 const int32 MENU_ITEM
= 'menu';
21 /***********************************************************
23 ***********************************************************/
28 GlutMenu(int n_id
, GLUTselectCB n_select
) {
35 BMenu
*CreateBMenu(bool toplevel
=true); // construct BPopUpMenu
39 GLUTselectCB select
; // callback function
40 GlutMenuItem
*list
; // list of menu items
41 int num
; // number of items
44 /***********************************************************
46 ***********************************************************/
49 GlutMenuItem(GlutMenu
*n_menu
, bool n_trig
, int n_value
, const char *n_label
);
52 GlutMenu
*menu
; // parent menu
53 bool isTrigger
; // are we a submenu?
54 int value
; // value to send, or submenu id if isTrigger
55 char *label
; // strdup'ed label string
56 GlutMenuItem
*next
; // next menu entry on list
59 /***********************************************************
61 ***********************************************************/
62 class GlutPopUp
: public BPopUpMenu
{
64 GlutPopUp(int m
) : BPopUpMenu(0, false, false) { menu
= m
;}
66 BPoint point
; // point to start menu
67 GlutWindow
*win
; // pointer to my window
68 int menu
; // my menu number
71 /***********************************************************
72 * CLASS: GlutBMenuItem
73 ***********************************************************/
74 class GlutBMenuItem
: public BMenuItem
{
76 GlutBMenuItem(const char *name
) : BMenuItem(name
, 0) {}
77 GlutBMenuItem(BMenu
* menu
) : BMenuItem(menu
) {}