home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 6 File
/
06-File.zip
/
mc454src.zip
/
mc-4.5.4.src
/
mc-4.5.4
/
src
/
menu.h
< prev
next >
Wrap
C/C++ Source or Header
|
1999-01-04
|
2KB
|
65 lines
#ifndef __MENU_H
#define __MENU_H
/* IMPORTANT NOTE: This header is dependent on HAVE_X / HAVE_XVIEW. If you
* include this header, you have to move it to the group of HAVE_X dependant
* modules in {xv|tk}/Makefile.in !!!
*/
#include "dlg.h"
#include "widget.h"
typedef void (*callfn) ();
/* FIXME: We have to leave this type ambiguous, because `callfn' is
used both for functions that take an argument and ones that don't.
That ought to be cleared up. */
typedef struct {
char first_letter;
char *text;
int hot_key;
callfn call_back;
} menu_entry;
#ifdef HAVE_XVIEW
# ifndef xview_walkmenu_DEFINED
typedef unsigned long Menu;
# endif
#else
typedef struct {
char *name;
int count;
int max_entry_len;
int selected;
int hotkey;
menu_entry *entries;
int start_x; /* position relative to menubar start */
} sMenu;
typedef sMenu *Menu;
#endif
extern int menubar_visible;
/* The button bar menu */
typedef struct {
Widget widget;
int active; /* If the menubar is in use */
int dropped; /* If the menubar has dropped */
Menu *menu; /* The actual menus */
int items;
int selected; /* Selected menu on the top bar */
int subsel; /* Selected entry on the submenu */
int max_entry_len; /* Cache value for the columns in a box */
int previous_selection; /* Selected widget before activating menu */
} WMenu;
Menu create_menu (char *name, menu_entry *entries, int count);
void destroy_menu (Menu menu);
WMenu *menubar_new (int y, int x, int cols, Menu menu [], int items);
void menubar_arrange (WMenu* menubar);
int menubar_event (Gpm_Event *event, WMenu *menubar);
#endif /* __MENU_H */