mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +00:00
63 lines
1.6 KiB
C
63 lines
1.6 KiB
C
|
#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;
|
||
|
menu_entry *entries;
|
||
|
int start_x; /* position relative to menubar start */
|
||
|
} sMenu;
|
||
|
typedef sMenu *Menu;
|
||
|
#endif
|
||
|
|
||
|
Menu create_menu (char *name, menu_entry *entries, int count);
|
||
|
void destroy_menu (Menu menu);
|
||
|
|
||
|
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;
|
||
|
|
||
|
WMenu *menubar_new (int y, int x, int cols, Menu menu [], int items);
|
||
|
|
||
|
#endif /* __MENU_H */
|
||
|
|