00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
#ifndef MENU_H
00029
#define MENU_H
00030
#include <vdk/widcontain.h>
00031
#include <vdk/dlist.h>
00032
#include <vdk/vdktypes.h>
00033
#include <vdk/rawpixmap.h>
00034
#include <gdk/gdkkeysyms.h>
00035
class VDKForms;
00036
class VDKMenubar;
00037
class VDKOptionMenu;
00038
00067 class VDKMenu:
public VDKObjectContainer
00068 {
00069
protected:
00070 GtkAccelGroup *accel_group;
00071
public:
00076
VDKMenu(
VDKForm* owner);
00080
virtual ~VDKMenu();
00084
void Separator();
00085
virtual void SetFont(
VDKFont* font);
00089
void Popup(guint button = 0, guint32 activate_time = 0);
00090
void Add(
VDKObject* wid,
int justify = l_justify,
00091
int expand =
true,
int fill =
true ,
int padding =
false);
00095 GtkAccelGroup *
AccelGroup() {
return accel_group; }
00096 };
00097
00116 class VDKMenuItem:
public VDKObject
00117 {
00118
protected:
00119
VDKObjectSignal s_activated;
00120
VDKMenu* menu;
00121 GtkWidget *box,*lbl,*pixmapWidget, *tickWidget;
00122 GdkPixmap* pixmap,*tickPixmap;
00123
bool ticked;
00124 guint accelerator_key;
00125 guint8 modkey;
00126
public:
00130
__rwproperty(
VDKMenuItem,
bool) Checked;
00134
__rwproperty(
VDKMenuItem,
const char*) Caption;
00151
VDKMenuItem(
VDKMenu* menu ,
00152
const char* prompt = NULL,
00153
char** pixmap = NULL,
00154 guint key = GDK_VoidSymbol,
00155 guint8 modkey = GDK_MOD1_MASK,
00156
bool accel =
true);
00167
VDKMenuItem(
VDKMenubar* bar,
00168
const char* prompt = NULL,
char** pixmap = NULL,
00169
int align = l_justify,
00170 guint key = GDK_VoidSymbol,
00171 guint8 modkey = GDK_MOD1_MASK,
00172
bool accel =
true);
00176
VDKMenuItem(
VDKForm* owner,
00177
const char* prompt = NULL,
char** pixmap = NULL,
00178
int align = l_justify,
00179 guint key = GDK_VoidSymbol,
00180 guint8 modkey = GDK_MOD1_MASK,
00181
bool accel =
true);
00185
virtual ~VDKMenuItem();
00186
00187
void SetCaption(
const char* str);
00191 guint
AccKey() {
return accelerator_key; }
00195 guint8
ModKey() {
return modkey; }
00196
00197
const char* GetCaption ();
00203
void Add(
VDKMenu* submenu);
00204
void Tick(
bool flag);
00205
virtual void SetFont(
VDKFont* font);
00206
void SetPixmap(
VDKRawPixmap* newpix);
00207 };
00208
00213 class VDKMenubar:
public VDKObjectContainer
00214 {
00215
protected:
00216 GtkAccelGroup *accel_group;
00217
void SetShadow(
int shadow)
00218 {
00219
00220
00221 }
00222
public:
00226
__rwproperty(
VDKMenubar,
int) Shadow;
00231
VDKMenubar(
VDKForm* owner);
00235
~VDKMenubar();
00242
virtual void SetFont(
VDKFont* font);
00249
void Add(
VDKObject* menu_item,
int justify = l_justify,
00250
int expand =
true,
int fill =
true ,
int padding =
false);
00254 GtkAccelGroup *
AccelGroup() {
return accel_group; }
00255 };
00256
00260 class VDKOptionMenu:
public VDKObject
00261 {
00262
public:
00263
VDKOptionMenu(
VDKForm* owner);
00264 ~
VDKOptionMenu();
00268
void Add(
VDKMenu* menu);
00269 virtual void SetFont(
VDKFont* ) {}
00270 };
00271
00272
00273
#endif
00274