/////////////////////////////////////////////////////////////////////////////
-// Name: menu.h
+// Name: wx/os2/menu.h
// Purpose: wxMenu, wxMenuBar classes
// Author: David Webster
// Modified by:
// Created: 10/10/99
-// RCS-ID: $Id$
// Copyright: (c) David Webster
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#define _WX_MENU_H_
#if wxUSE_ACCEL
-// #include "wx/accel.h"
-// #include "wx/list.h" // for "template" list classes
-// #include "wx/dynarray.h"
+ #include "wx/accel.h"
+ #include "wx/list.h" // for "template" list classes
+ #include "wx/dynarray.h"
-// WX_DECLARE_EXPORTED_LIST(wxAcceleratorEntry, wxAcceleratorList);
+ WX_DEFINE_EXPORTED_ARRAY_PTR(wxAcceleratorEntry *, wxAcceleratorArray);
#endif // wxUSE_ACCEL
-class WXDLLEXPORT wxFrame;
+class WXDLLIMPEXP_FWD_CORE wxFrame;
void wxSetShortCutKey(wxChar* zText);
// Menu
// ----------------------------------------------------------------------------
-class WXDLLEXPORT wxMenu : public wxMenuBase
+class WXDLLIMPEXP_CORE wxMenu : public wxMenuBase
{
public:
//
//
// Implement base class virtuals
//
- virtual bool DoAppend(wxMenuItem* pItem);
- virtual bool DoInsert( size_t nPos
+ virtual wxMenuItem* DoAppend(wxMenuItem* pItem);
+ virtual wxMenuItem* DoInsert( size_t nPos
,wxMenuItem* pItem
);
virtual wxMenuItem* DoRemove(wxMenuItem* pItem);
virtual void Break(void);
virtual void SetTitle(const wxString& rTitle);
-#if wxUSE_MENU_CALLBACK
- wxMenu( const wxString& rTitle
- ,const wxFunction fnFunc
- )
- : wxMenuBase(rTitle)
- {
- Init();
- Callback(fnFunc);
- }
-#endif // wxUSE_MENU_CALLBACK
-
//
// Implementation only from now on
// -------------------------------
//
+ virtual void Attach(wxMenuBarBase* pMenubar);
+
bool OS2Command( WXUINT uParam
,WXWORD wId
);
//
// Called by wxMenuBar to build its accel table from the accels of all menus
//
- bool HasAccels(void) const { return m_vAccels[0] != NULL; }
- size_t GetAccelCount(void) const { return (size_t)m_nNextAccel; }
+ bool HasAccels(void) const { return m_vAccels.IsEmpty(); }
+ size_t GetAccelCount(void) const { return m_vAccels.GetCount(); }
size_t CopyAccels(wxAcceleratorEntry* pAccels) const;
//
void EndRadioGroup(void);
//
- // If TRUE, insert a breal before appending the next item
+ // If true, insert a breal before appending the next item
//
- bool m_bDoBreak;
+ bool m_bDoBreak;
//
// The menu handle of this menu
//
// The helper variable for creating unique IDs.
//
- static USHORT m_nextMenuId;
+ static USHORT m_nextMenuId;
//
// The position of the first item in the current radio group or -1
//
// The accelerators for our menu items
//
- wxAcceleratorEntry* m_vAccels[128];
- int m_nNextAccel;
+ wxAcceleratorArray m_vAccels;
#endif // wxUSE_ACCEL
DECLARE_DYNAMIC_CLASS(wxMenu)
// Menu Bar (a la Windows)
// ----------------------------------------------------------------------------
-class WXDLLEXPORT wxMenuBar : public wxMenuBarBase
+class WXDLLIMPEXP_CORE wxMenuBar : public wxMenuBarBase
{
public:
//
wxMenuBar( int n
,wxMenu* vMenus[]
,const wxString sTitles[]
+ ,long lStyle = 0
);
virtual ~wxMenuBar();
virtual void EnableTop( size_t nPos
,bool bFlag
);
- virtual void SetLabelTop( size_t nPos
+ virtual void SetMenuLabel( size_t nPos
,const wxString& rLabel
);
- virtual wxString GetLabelTop(size_t nPos) const;
-
- //
- // Compatibility: these functions are deprecated
- //
-#if WXWIN_COMPATIBILITY
- void SetEventHandler(wxEvtHandler* pHandler) { m_pEventHandler = pHandler; }
- wxEvtHandler* GetEventHandler(void) { return m_pEventHandler; }
- bool Enabled(int nId) const { return IsEnabled(nId); }
- bool Checked(int nId) const { return IsChecked(nId); }
-#endif // WXWIN_COMPATIBILITY
+ virtual wxString GetMenuLabel(size_t nPos) const;
//
// Implementation from now on
const wxAcceleratorTable& GetAccelTable(void) const { return m_vAccelTable; }
//
- // Update the accel table (must be called after adding/deletign a menu)
+ // Update the accel table (must be called after adding/deleting a menu)
//
void RebuildAccelTable(void);
#endif // wxUSE_ACCEL
//
void Init(void);
-#if WXWIN_COMPATIBILITY
- wxEvtHandler* m_pEventHandler;
-#endif // WXWIN_COMPATIBILITY
-
wxArrayString m_titles;
WXHMENU m_hMenu;