1 /////////////////////////////////////////////////////////////////////////////
 
   3 // Purpose:     SWIG definitions of various window classes
 
   9 // Copyright:   (c) 1998 by Total Control Software
 
  10 // Licence:     wxWindows license
 
  11 /////////////////////////////////////////////////////////////////////////////
 
  18 #include <wx/menuitem.h>
 
  21 //----------------------------------------------------------------------
 
  24 %include my_typemaps.i
 
  26 // Import some definitions of other classes, etc.
 
  32 %pragma(python) code = "import wx"
 
  36     static wxString wxPyEmptyStr("");
 
  39 //---------------------------------------------------------------------------
 
  45     bool ProcessEvent(wxEvent& event);
 
  46     void AddPendingEvent(wxEvent& event);
 
  47     //bool SearchEventTable(wxEventTable& table, wxEvent& event);
 
  49     bool GetEvtHandlerEnabled();
 
  50     void SetEvtHandlerEnabled(bool enabled);
 
  52     wxEvtHandler* GetNextHandler();
 
  53     wxEvtHandler* GetPreviousHandler();
 
  54     void SetNextHandler(wxEvtHandler* handler);
 
  55     void SetPreviousHandler(wxEvtHandler* handler);
 
  59         void Connect( int id, int lastId, int eventType, PyObject* func) {
 
  60             if (PyCallable_Check(func)) {
 
  61                 self->Connect(id, lastId, eventType,
 
  62                           (wxObjectEventFunction) &wxPyCallback::EventThunker,
 
  63                           new wxPyCallback(func));
 
  67         bool Disconnect(int id, int lastId = -1,
 
  68                         wxEventType eventType = wxEVT_NULL) {
 
  69             return self->Disconnect(id, lastId, eventType,
 
  70                                    (wxObjectEventFunction)
 
  71                                     &wxPyCallback::EventThunker);
 
  76     %pragma(python) addtoclass = "
 
  80 //      %pragma(python) addtoclass = "
 
  81 //      def __getattr__(self, name):
 
  82 //          pl = self._prop_list_
 
  83 //          if pl.has_key(name):
 
  84 //              getFunc, setFunc = pl[name]
 
  86 //                  return getattr(self, getFunc)()
 
  88 //                  raise TypeError, '%s property is write-only' % name
 
  89 //          raise AttributeError, name
 
  91 //      def __setattr__(self, name, value):
 
  92 //          pl = self._prop_list_
 
  93 //          if pl.has_key(name):
 
  94 //              getFunc, setFunc = pl[name]
 
  96 //                  return getattr(self, setFunc)(value)
 
  98 //                  raise TypeError, '%s property is read-only' % name
 
  99 //          self.__dict__[name] = value
 
 104 //----------------------------------------------------------------------
 
 106 class wxValidator : public wxEvtHandler {
 
 111     wxValidator* Clone();
 
 112     wxWindow* GetWindow();
 
 113     void SetWindow(wxWindow* window);
 
 115 //      // Properties list
 
 116 //      %pragma(python) addtoclass = "
 
 118 //          'window' : ('GetWindow', 'SetWindow'),
 
 120 //      _prop_list_.update(wxEvtHandler._prop_list_)
 
 125     bool wxValidator_IsSilent() {
 
 126         return wxValidator::IsSilent();
 
 129     void wxValidator_SetBellOnError(int doIt = TRUE) {
 
 130         wxValidator::SetBellOnError(doIt);
 
 134 //----------------------------------------------------------------------
 
 136 class wxPyValidator : public wxValidator {
 
 137     DECLARE_DYNAMIC_CLASS(wxPyValidator);
 
 141 //    wxPyValidator(const wxPyValidator& other);
 
 146     wxObject* wxPyValidator::Clone() const {
 
 147         wxPyValidator* ptr = NULL;
 
 148         wxPyValidator* self = (wxPyValidator*)this;
 
 150         bool doSave = wxPyRestoreThread();
 
 151         if (self->m_myInst.findCallback("Clone")) {
 
 153             ro = self->m_myInst.callCallbackObj(Py_BuildValue("()"));
 
 155                 SWIG_GetPtrObj(ro, (void **)&ptr, "_wxPyValidator_p");
 
 159         // This is very dangerous!!! But is the only way I could find
 
 160         // to squash a memory leak.  Currently it is okay, but if the
 
 161         // validator architecture in wxWindows ever changes, problems
 
 165         wxPySaveThread(doSave);
 
 169     DEC_PYCALLBACK_BOOL_WXWIN(Validate);
 
 170     DEC_PYCALLBACK_BOOL_(TransferToWindow);
 
 171     DEC_PYCALLBACK_BOOL_(TransferFromWindow);
 
 177 IMP_PYCALLBACK_BOOL_WXWIN(wxPyValidator, wxValidator, Validate);
 
 178 IMP_PYCALLBACK_BOOL_(wxPyValidator, wxValidator, TransferToWindow);
 
 179 IMP_PYCALLBACK_BOOL_(wxPyValidator, wxValidator, TransferFromWindow);
 
 181 IMPLEMENT_DYNAMIC_CLASS(wxPyValidator, wxValidator);
 
 185 class wxPyValidator : public wxValidator {
 
 190     %addmethods { void Destroy() { delete self; } }
 
 192     void _setSelf(PyObject* self, PyObject* _class, int incref=TRUE);
 
 193     %pragma(python) addtomethod = "__init__:self._setSelf(self, wxPyValidator, 0)"
 
 197 //----------------------------------------------------------------------
 
 199 %apply int * INOUT { int* x, int* y };
 
 201 class wxWindow : public wxEvtHandler {
 
 204     wxWindow(wxWindow* parent, const wxWindowID id,
 
 205              const wxPoint& pos = wxDefaultPosition,
 
 206              const wxSize& size = wxDefaultSize,
 
 208              char* name = "panel");
 
 210     %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
 
 213     void Center(int direction = wxBOTH);
 
 214     void Centre(int direction = wxBOTH);
 
 215     void CentreOnParent(int direction = wxBOTH );
 
 216     void CenterOnParent(int direction = wxBOTH );
 
 217     void CentreOnScreen(int direction = wxBOTH );
 
 218     void CenterOnScreen(int direction = wxBOTH );
 
 220     // (uses apply'ed INOUT typemap, see above)
 
 221     %name(ClientToScreenXY)void ClientToScreen(int* x, int* y);
 
 222     wxPoint ClientToScreen(const wxPoint& pt);
 
 224     bool Close(int force = FALSE);
 
 226     void DestroyChildren();
 
 228     void DragAcceptFiles(bool accept);
 
 230     void Enable(bool enable);
 
 231     //bool FakePopupMenu(wxMenu* menu, int x, int y);
 
 232     %name(FindWindowById) wxWindow* FindWindow(long id);
 
 233     %name(FindWindowByName) wxWindow* FindWindow(const wxString& name);
 
 235     wxColour GetBackgroundColour();
 
 237     //wxList& GetChildren();
 
 239         PyObject* GetChildren() {
 
 240             wxWindowList& list = self->GetChildren();
 
 241             return wxPy_ConvertList(&list, "wxWindow");
 
 247     %name(GetClientSizeTuple) void GetClientSize(int *OUTPUT, int *OUTPUT);
 
 248     wxSize GetClientSize();
 
 249     wxLayoutConstraints * GetConstraints();
 
 250     wxEvtHandler* GetEventHandler();
 
 253     wxColour GetForegroundColour();
 
 254     wxWindow * GetGrandParent();
 
 257             return wxPyGetWinHandle(self); //(long)self->GetHandle();
 
 262     void SetLabel(const wxString& label);
 
 264     wxWindow * GetParent();
 
 265     %name(GetPositionTuple) void GetPosition(int *OUTPUT, int *OUTPUT);
 
 266     wxPoint GetPosition();
 
 268     int GetScrollThumb(int orientation);
 
 269     int GetScrollPos(int orientation);
 
 270     int GetScrollRange(int orientation);
 
 271     %name(GetSizeTuple) void GetSize(int *OUTPUT, int *OUTPUT);
 
 273     void GetTextExtent(const wxString& string, int *OUTPUT, int *OUTPUT);
 
 274     %name(GetFullTextExtent)void GetTextExtent(const wxString& string,
 
 275                        int *OUTPUT, int *OUTPUT, int *OUTPUT, int* OUTPUT,
 
 276                        const wxFont* font = NULL); //, bool use16 = FALSE)
 
 278     wxRegion GetUpdateRegion();
 
 279     long GetWindowStyleFlag();
 
 280     void SetWindowStyleFlag(long style);
 
 281     void SetWindowStyle(long style);
 
 285     bool IsExposed( int x, int y, int w=0, int h=0 );
 
 286     %name(IsExposedPoint) bool IsExposed( const wxPoint& pt );
 
 287     %name(IsExposedRect)  bool IsExposed( const wxRect& rect );
 
 292     bool LoadFromResource(wxWindow* parent, const wxString& resourceName, const wxResourceTable* resourceTable = NULL);
 
 294     void MakeModal(bool flag);
 
 295     %name(MoveXY)void Move(int x, int y);
 
 296     void Move(const wxPoint& point);
 
 298     wxEvtHandler* PopEventHandler(bool deleteHandler = FALSE);
 
 299     void PushEventHandler(wxEvtHandler* handler);
 
 301     %name(PopupMenuXY)bool PopupMenu(wxMenu *menu, int x, int y);
 
 302     bool PopupMenu(wxMenu *menu, const wxPoint& pos);
 
 305     void Refresh(bool eraseBackground = TRUE, const wxRect* rect = NULL);
 
 307     void RemoveChild(wxWindow* child);
 
 308     bool Reparent( wxWindow* newParent );
 
 310     // (uses apply'ed INOUT typemap, see above)
 
 311     %name(ScreenToClientXY)void ScreenToClient(int *x, int *y);
 
 312     wxPoint ScreenToClient(const wxPoint& pt);
 
 314     void ScrollWindow(int dx, int dy, const wxRect* rect = NULL);
 
 315     void SetAcceleratorTable(const wxAcceleratorTable& accel);
 
 316     void SetAutoLayout(bool autoLayout);
 
 317     bool GetAutoLayout();
 
 318     void SetBackgroundColour(const wxColour& colour);
 
 319     void SetConstraints(wxLayoutConstraints *constraints);
 
 320     void UnsetConstraints(wxLayoutConstraints *constraints);
 
 323     void SetFont(const wxFont& font);
 
 324     void SetForegroundColour(const wxColour& colour);
 
 326     void SetName(const wxString& name);
 
 327     void SetScrollbar(int orientation, int position, int thumbSize, int range, int refresh = TRUE);
 
 328     void SetScrollPos(int orientation, int pos, bool refresh = TRUE);
 
 330     %name(SetDimensions) void SetSize(int x, int y, int width, int height, int sizeFlags=wxSIZE_AUTO);
 
 332         void SetSize(const wxSize& size) {
 
 336         void SetPosition(const wxPoint& pos) {
 
 340         void SetRect(const wxRect& rect, int sizeFlags=wxSIZE_AUTO) {
 
 341             self->SetSize(rect, sizeFlags);
 
 345     void SetSizeHints(int minW=-1, int minH=-1, int maxW=-1, int maxH=-1, int incW=-1, int incH=-1);
 
 346     %name(SetClientSizeWH)void SetClientSize(int width, int height);
 
 347     void SetClientSize(const wxSize& size);
 
 348     //void SetPalette(wxPalette* palette);
 
 349     void SetCursor(const wxCursor&cursor);
 
 350     void SetEventHandler(wxEvtHandler* handler);
 
 351     void SetTitle(const wxString& title);
 
 352     bool Show(bool show);
 
 353     bool TransferDataFromWindow();
 
 354     bool TransferDataToWindow();
 
 356     void WarpPointer(int x, int y);
 
 358     %name(ConvertDialogPointToPixels) wxPoint ConvertDialogToPixels(const wxPoint& pt);
 
 359     %name(ConvertDialogSizeToPixels)  wxSize  ConvertDialogToPixels(const wxSize& sz);
 
 361     %name(DLG_PNT) wxPoint ConvertDialogToPixels(const wxPoint& pt);
 
 362     %name(DLG_SZE) wxSize  ConvertDialogToPixels(const wxSize& sz);
 
 364     %name(ConvertPixelPointToDialog) wxPoint ConvertPixelsToDialog(const wxPoint& pt);
 
 365     %name(ConvertPixelSizeToDialog)  wxSize  ConvertPixelsToDialog(const wxSize& sz);
 
 367     %name(SetToolTipString)void SetToolTip(const wxString &tip);
 
 368     void SetToolTip(wxToolTip *tooltip);
 
 369     wxToolTip* GetToolTip();
 
 371     void SetSizer(wxSizer* sizer);
 
 374     wxValidator* GetValidator();
 
 375     void SetValidator(const wxValidator& validator);
 
 377     void SetDropTarget(wxDropTarget* target);
 
 378     wxDropTarget* GetDropTarget();
 
 379     %pragma(python) addtomethod = "SetDropTarget:_args[0].thisown = 0"
 
 381     wxSize GetBestSize();
 
 383     void SetCaret(wxCaret *caret);
 
 385     %pragma(python) addtoclass = "# replaces broken shadow methods
 
 386     def GetCaret(self, *_args, **_kwargs):
 
 387         from misc2 import wxCaretPtr
 
 388         val = apply(windowsc.wxWindow_GetCaret,(self,) + _args, _kwargs)
 
 389         if val: val = wxCaretPtr(val)
 
 392     def GetSizer(self, *_args, **_kwargs):
 
 393         from sizers import wxSizerPtr
 
 394         val = apply(windowsc.wxWindow_GetSizer,(self,) + _args, _kwargs)
 
 395         if val: val = wxSizerPtr(val)
 
 398     def GetToolTip(self, *_args, **_kwargs):
 
 399         from misc2 import wxToolTipPtr
 
 400         val = apply(windowsc.wxWindow_GetToolTip,(self,) + _args, _kwargs)
 
 401         if val: val = wxToolTipPtr(val)
 
 406 //      // Properties list
 
 407 //      %pragma(python) addtoclass = "
 
 409 //          'size'          : ('GetSize',                  'SetSize'),
 
 410 //          'enabled'       : ('IsEnabled',                'Enable'),
 
 411 //          'background'    : ('GetBackgroundColour',      'SetBackgroundColour'),
 
 412 //          'foreground'    : ('GetForegroundColour',      'SetForegroundColour'),
 
 413 //          'children'      : ('GetChildren',              None),
 
 414 //          'charHeight'    : ('GetCharHeight',            None),
 
 415 //          'charWidth'     : ('GetCharWidth',             None),
 
 416 //          'clientSize'    : ('GetClientSize',            'SetClientSize'),
 
 417 //          'font'          : ('GetFont',                  'SetFont'),
 
 418 //          'grandParent'   : ('GetGrandParent',           None),
 
 419 //          'handle'        : ('GetHandle',                None),
 
 420 //          'label'         : ('GetLabel',                 'SetLabel'),
 
 421 //          'name'          : ('GetName',                  'SetName'),
 
 422 //          'parent'        : ('GetParent',                None),
 
 423 //          'position'      : ('GetPosition',              'SetPosition'),
 
 424 //          'title'         : ('GetTitle',                 'SetTitle'),
 
 425 //          'style'         : ('GetWindowStyleFlag',       'SetWindowStyleFlag'),
 
 426 //          'visible'       : ('IsShown',                  'Show'),
 
 427 //          'toolTip'       : ('GetToolTip',               'SetToolTip'),
 
 428 //          'sizer'         : ('GetSizer',                 'SetSizer'),
 
 429 //          'validator'     : ('GetValidator',             'SetValidator'),
 
 430 //          'dropTarget'    : ('GetDropTarget',            'SetDropTarget'),
 
 431 //          'caret'         : ('GetCaret',                 'SetCaret'),
 
 432 //          'autoLayout'    : ('GetAutoLayout',            'SetAutoLayout'),
 
 433 //          'constraints'   : ('GetConstraints',           'SetConstraints'),
 
 436 //      _prop_list_.update(wxEvtHandler._prop_list_)
 
 443 %pragma(python) code = "
 
 444 def wxDLG_PNT(win, point_or_x, y=None):
 
 446         return win.ConvertDialogPointToPixels(point_or_x)
 
 448         return win.ConvertDialogPointToPixels(wxPoint(point_or_x, y))
 
 450 def wxDLG_SZE(win, size_width, height=None):
 
 452         return win.ConvertDialogSizeToPixels(size_width)
 
 454         return win.ConvertDialogSizeToPixels(wxSize(size_width, height))
 
 458     wxWindow* wxWindow_FindFocus() {
 
 459         return wxWindow::FindFocus();
 
 466 wxWindow* wxWindow_FromHWND(unsigned long hWnd) {
 
 467     wxWindow* win = new wxWindow;
 
 469     win->SubclassWin(hWnd);
 
 476     int wxWindow_NewControlId() {
 
 477         return wxWindow::NewControlId();
 
 479     int wxWindow_NextControlId(int id) {
 
 480         return wxWindow::NextControlId(id);
 
 482     int wxWindow_PrevControlId(int id) {
 
 483         return wxWindow::PrevControlId(id);
 
 488 //---------------------------------------------------------------------------
 
 490 class wxPanel : public wxWindow {
 
 492     wxPanel(wxWindow* parent,
 
 494             const wxPoint& pos = wxDefaultPosition,
 
 495             const wxSize& size = wxDefaultSize,
 
 496             long style = wxTAB_TRAVERSAL,
 
 497             const char* name = "panel");
 
 499     %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
 
 502     wxButton* GetDefaultItem();
 
 503     void SetDefaultItem(wxButton *btn);
 
 505     // fix some SWIG trouble...
 
 506     %pragma(python) addtoclass = "
 
 507     def GetDefaultItem(self):
 
 509         val = windowsc.wxPanel_GetDefaultItem(self.this)
 
 510         val = controls.wxButtonPtr(val)
 
 515 //---------------------------------------------------------------------------
 
 517 class wxDialog : public wxPanel {
 
 519     wxDialog(wxWindow* parent,
 
 521              const wxString& title,
 
 522              const wxPoint& pos = wxDefaultPosition,
 
 523              const wxSize& size = wxDefaultSize,
 
 524              long style = wxDEFAULT_DIALOG_STYLE,
 
 525              const char* name = "dialogBox");
 
 527     %pragma(python) addtomethod = "__init__:#wx._StdDialogCallbacks(self)"
 
 529     void Centre(int direction = wxBOTH);
 
 530     void EndModal(int retCode);
 
 532     void Iconize(bool iconize);
 
 534     void SetModal(bool flag);
 
 536     void SetTitle(const wxString& title);
 
 537     bool Show(bool show);
 
 541     void SetReturnCode(int retCode);
 
 544 //---------------------------------------------------------------------------
 
 546 class wxScrolledWindow : public wxPanel {
 
 548     wxScrolledWindow(wxWindow* parent,
 
 549                      const wxWindowID id = -1,
 
 550                      const wxPoint& pos = wxDefaultPosition,
 
 551                      const wxSize& size = wxDefaultSize,
 
 552                      long style = wxHSCROLL | wxVSCROLL,
 
 553                      char* name = "scrolledWindow");
 
 555     %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
 
 556     %pragma(python) addtomethod = "__init__:#wx._StdOnScrollCallbacks(self)"
 
 558     void EnableScrolling(bool xScrolling, bool yScrolling);
 
 559     int GetScrollPageSize(int orient);
 
 560     void GetScrollPixelsPerUnit(int* OUTPUT, int* OUTPUT);
 
 561     wxWindow* GetTargetWindow();
 
 562     void GetVirtualSize(int* OUTPUT, int* OUTPUT);
 
 564     void PrepareDC(wxDC& dc);
 
 565     void Scroll(int x, int y);
 
 566     void SetScrollbars(int pixelsPerUnitX, int pixelsPerUnitY,
 
 567                        int noUnitsX, int noUnitsY,
 
 568                        int xPos = 0, int yPos = 0, int noRefresh=FALSE);
 
 569     void SetScrollPageSize(int orient, int pageSize);
 
 570     void SetTargetWindow(wxWindow* window);
 
 571     void GetViewStart(int* OUTPUT, int* OUTPUT);
 
 572     void ViewStart(int* OUTPUT, int* OUTPUT);
 
 574     void CalcScrolledPosition( int x, int y, int *OUTPUT, int *OUTPUT);
 
 575     void CalcUnscrolledPosition( int x, int y, int *OUTPUT, int *OUTPUT);
 
 579 //----------------------------------------------------------------------
 
 582 class wxMenu : public wxEvtHandler {
 
 584     wxMenu(const wxString& title = wxPyEmptyStr, long style = 0);
 
 586     void Append(int id, const wxString& item,
 
 587                 const wxString& helpString = wxPyEmptyStr,
 
 588                 int checkable = FALSE);
 
 589     %name(AppendMenu)void Append(int id, const wxString& item, wxMenu *subMenu,
 
 590                 const wxString& helpString = wxPyEmptyStr);
 
 591     %name(AppendItem)void Append(const wxMenuItem* item);
 
 593     void AppendSeparator();
 
 595     void Check(int id, bool flag);
 
 596     bool IsChecked(int id);
 
 597     void Enable(int id, bool enable);
 
 598     bool IsEnabled(int id);
 
 600     int FindItem(const wxString& itemString);
 
 601     %name(FindItemById)wxMenuItem* FindItem(int id/*, wxMenu **menu = NULL*/);
 
 604     void SetTitle(const wxString& title);
 
 606     wxString GetLabel(int id);
 
 607     void SetLabel(int id, const wxString& label);
 
 609     wxString GetHelpString(int id);
 
 610     void SetHelpString(int id, const wxString& helpString);
 
 611     void UpdateUI(wxEvtHandler* source = NULL);
 
 614     %name(DeleteItem)bool Delete(wxMenuItem *item);
 
 615     bool Insert(size_t pos, wxMenuItem *item);
 
 616     wxMenuItem *Remove(int id);
 
 617     %name(RemoveItem) wxMenuItem *Remove(wxMenuItem *item);
 
 620         void Destroy() { delete self; }
 
 622     %name(DestroyId)bool Destroy(int id);
 
 623     %name(DestroyItem)bool Destroy(wxMenuItem *item);
 
 625     size_t GetMenuItemCount();
 
 626     //wxMenuItemList& GetMenuItems();
 
 628         PyObject* GetMenuItems() {
 
 629             wxMenuItemList& list = self->GetMenuItems();
 
 630             return wxPy_ConvertList(&list, "wxMenuItem");
 
 634     void SetEventHandler(wxEvtHandler *handler);
 
 635     wxEvtHandler *GetEventHandler();
 
 637     void SetInvokingWindow(wxWindow *win);
 
 638     wxWindow *GetInvokingWindow();
 
 644     void SetParent(wxMenu *parent);
 
 649 //----------------------------------------------------------------------
 
 651 class wxMenuBar : public wxWindow {
 
 653     wxMenuBar(long style = 0);
 
 655     bool Append(wxMenu *menu, const wxString& title);
 
 656     bool Insert(size_t pos, wxMenu *menu, const wxString& title);
 
 657     size_t GetMenuCount();
 
 658     wxMenu *GetMenu(size_t pos);
 
 659     wxMenu *Replace(size_t pos, wxMenu *menu, const wxString& title);
 
 660     wxMenu *Remove(size_t pos);
 
 661     void EnableTop(size_t pos, bool enable);
 
 662     void SetLabelTop(size_t pos, const wxString& label);
 
 663     wxString GetLabelTop(size_t pos);
 
 664     int FindMenuItem(const wxString& menuString, const wxString& itemString);
 
 665     %name(FindItemById)wxMenuItem* FindItem(int id/*, wxMenu **menu = NULL*/);
 
 666     void Enable(int id, bool enable);
 
 667     void Check(int id, bool check);
 
 668     bool IsChecked(int id);
 
 669     bool IsEnabled(int id);
 
 671     void SetLabel(int id, const wxString &label);
 
 672     wxString GetLabel(int id);
 
 674     void SetHelpString(int id, const wxString& helpString);
 
 675     wxString GetHelpString(int id);
 
 680 //----------------------------------------------------------------------
 
 684     wxMenuItem(wxMenu* parentMenu=NULL, int id=wxID_SEPARATOR,
 
 685                const wxString& text = wxPyEmptyStr,
 
 686                const wxString& help = wxPyEmptyStr,
 
 687                bool isCheckable = FALSE, wxMenu* subMenu = NULL);
 
 694     void SetText(const wxString& str);
 
 696     const wxString& GetText();
 
 697     void SetCheckable(bool checkable);
 
 700     void SetSubMenu(wxMenu *menu);
 
 701     wxMenu *GetSubMenu();
 
 702     void Enable(bool enable = TRUE);
 
 704     void Check(bool check = TRUE);
 
 707     void SetHelp(const wxString& str);
 
 708     const wxString& GetHelp();
 
 709     wxAcceleratorEntry *GetAccel();
 
 710     void SetAccel(wxAcceleratorEntry *accel);
 
 714 //---------------------------------------------------------------------------