23 #ifndef __EDELIB_MENUITEM_H__
24 #define __EDELIB_MENUITEM_H__
26 #include "edelib-global.h"
28 #include <FL/Fl_Widget.H>
29 #include <FL/Fl_Image.H>
30 #include <FL/Fl_Menu_Item.H>
32 #if defined(__APPLE__) && defined(check)
50 Fl_Callback *callback_;
65 const MenuItem *first()
const {
return next(0); }
66 MenuItem *first() {
return next(0); }
69 const char* label()
const {
return text;}
70 void label(
const char* a) {text=a;}
71 void label(Fl_Labeltype a,
const char* b) {labeltype_ = a; text = b;}
72 Fl_Labeltype labeltype()
const {
return (Fl_Labeltype)labeltype_;}
73 void labeltype(Fl_Labeltype a) {labeltype_ = a;}
74 Fl_Color labelcolor()
const {
return (Fl_Color)labelcolor_;}
75 void labelcolor(
unsigned a) {labelcolor_ = a;}
76 Fl_Font labelfont()
const {
return (Fl_Font)labelfont_;}
77 void labelfont(uchar a) {labelfont_ = a;}
78 uchar labelsize()
const {
return labelsize_;}
79 void labelsize(uchar a) {labelsize_ = a;}
80 Fl_Callback_p callback()
const {
return callback_;}
81 void callback(Fl_Callback* c,
void* p) {callback_=c; user_data_=p;}
82 void callback(Fl_Callback* c) {callback_=c;}
83 void callback(Fl_Callback0*c) {callback_=(Fl_Callback*)c;}
84 void callback(Fl_Callback1*c,
long p=0) {callback_=(Fl_Callback*)c; user_data_=(
void*)p;}
85 void* user_data()
const {
return user_data_;}
86 void user_data(
void* v) {user_data_ = v;}
87 long argument()
const {
return (
long)user_data_;}
88 void argument(
long v) {user_data_ = (
void*)v;}
89 int shortcut()
const {
return shortcut_;}
90 void shortcut(
int s) {shortcut_ = s;}
91 int submenu()
const {
return flags&(FL_SUBMENU|FL_SUBMENU_POINTER);}
92 int checkbox()
const {
return flags&FL_MENU_TOGGLE;}
93 int radio()
const {
return flags&FL_MENU_RADIO;}
94 int value()
const {
return flags&FL_MENU_VALUE;}
95 void set() {flags |= FL_MENU_VALUE;}
96 void clear() {flags &= ~FL_MENU_VALUE;}
98 int visible()
const {
return !(flags&FL_MENU_INVISIBLE);}
99 void show() {flags &= ~FL_MENU_INVISIBLE;}
100 void hide() {flags |= FL_MENU_INVISIBLE;}
101 int active()
const {
return !(flags&FL_MENU_INACTIVE);}
102 void activate() {flags &= ~FL_MENU_INACTIVE;}
103 void deactivate() {flags |= FL_MENU_INACTIVE;}
104 int activevisible()
const {
return !(flags&0x11);}
107 void image(Fl_Image* a) { image_ = a; }
108 void image(Fl_Image& a) { image_ = &a; }
109 Fl_Image* image()
const {
return image_; }
112 int measure(
int* h,
const MenuBase*)
const;
113 void draw(
int x,
int y,
int w,
int h,
const MenuBase*,
int t=0,
int label_gap=0)
const;
118 const char *title = 0,
123 int X,
int Y,
int W,
int H,
127 int menubar=0)
const;
129 const MenuItem* test_shortcut()
const;
130 const MenuItem* find_shortcut(
int *ip=0)
const;
132 void do_callback(Fl_Widget* o)
const {callback_(o, user_data_);}
133 void do_callback(Fl_Widget* o,
void* arg)
const {callback_(o, arg);}
134 void do_callback(Fl_Widget* o,
long arg)
const {callback_(o, (
void*)arg);}
137 int checked()
const {
return flags&FL_MENU_VALUE;}
138 void check() {flags |= FL_MENU_VALUE;}
139 void uncheck() {flags &= ~FL_MENU_VALUE;}
140 int add(
const char*,
int shortcut, Fl_Callback*,
void* =0,
int = 0);
141 int add(
const char*a,
const char* b, Fl_Callback* c,
void* d = 0,
int e = 0) {
return add(a,fl_old_shortcut(b),c,d,e); }