#ifndef MENU_H
#define MENU_H
#include "../ui/menu.h"
#include <ucx/list.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct UiMenuItemI UiMenuItemI;
typedef struct UiMenu UiMenu;
typedef struct UiMenuItem UiMenuItem;
typedef struct UiStMenuItem UiStMenuItem;
typedef struct UiCheckItem UiCheckItem;
typedef struct UiCheckItemNV UiCheckItemNV;
typedef struct UiMenuItemList UiMenuItemList;
typedef struct UiActiveMenuItemList UiActiveMenuItemList;
typedef int(*ui_menu_add_f)(Widget,
int, UiMenuItemI*, UiObject*);
struct UiMenuItemI {
ui_menu_add_f add_to;
};
struct UiMenu {
UiMenuItemI item;
char *label;
UcxList *items;
UiMenu *parent;
};
struct UiMenuItem {
UiMenuItemI item;
ui_callback callback;
char *label;
void *userdata;
UcxList *groups;
};
struct UiStMenuItem {
UiMenuItemI item;
ui_callback callback;
char *stockid;
void *userdata;
UcxList *groups;
};
struct UiCheckItem {
UiMenuItemI item;
char *label;
ui_callback callback;
void *userdata;
};
struct UiCheckItemNV {
UiMenuItemI item;
char *label;
char *varname;
};
struct UiMenuItemList {
UiMenuItemI item;
ui_callback callback;
void *userdata;
UiList *list;
};
struct UiActiveMenuItemList {
UiObject *object;
Widget menu;
int index;
int oldcount;
UiList *list;
ui_callback callback;
void *userdata;
};
void ui_create_menubar(UiObject *obj);
int add_menu_widget(Widget parent,
int i, UiMenuItemI *item, UiObject *obj);
int add_menuitem_widget(Widget parent,
int i, UiMenuItemI *item, UiObject *obj);
int add_menuitem_st_widget(Widget parent,
int i, UiMenuItemI *item, UiObject *obj);
int add_menuseparator_widget(Widget parent,
int i, UiMenuItemI *item, UiObject *obj);
int add_checkitem_widget(Widget parent,
int i, UiMenuItemI *item, UiObject *obj);
int add_checkitemnv_widget(Widget parent,
int i, UiMenuItemI *item, UiObject *obj);
int add_menuitem_list_widget(Widget parent,
int i, UiMenuItemI *item, UiObject *obj);
void ui_update_menuitem_list(UiEvent *event, UiActiveMenuItemList *list);
void ui_menu_event_wrapper(Widget widget, XtPointer udata, XtPointer cdata);
#ifdef __cplusplus
}
#endif
#endif