]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/motif/menu.h
use typed containers in wxHtmlParser instead of type-unsafe wxList/wxHashTable
[wxWidgets.git] / include / wx / motif / menu.h
index 50af6f378102d70aa6f2aba1252ea4afde5f83f1..a48c219af04a68b37b6e250f6ae108bde42ba8d3 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        menu.h
+// Name:        wx/motif/menu.h
 // Purpose:     wxMenu, wxMenuBar classes
 // Author:      Julian Smart
 // Modified by:
 #ifndef _WX_MOTIF_MENU_H_
 #define _WX_MOTIF_MENU_H_
 
-#ifdef __GNUG__
-#pragma interface "menu.h"
-#endif
-
 #include "wx/colour.h"
 #include "wx/font.h"
+#include "wx/arrstr.h"
 
-class wxFrame;
+class WXDLLIMPEXP_FWD_CORE wxFrame;
 
 // ----------------------------------------------------------------------------
 // Menu
 // ----------------------------------------------------------------------------
 
-class wxMenu : public wxMenuBase
+class WXDLLIMPEXP_CORE wxMenu : public wxMenuBase
 {
 public:
     // ctors & dtor
     wxMenu(const wxString& title, long style = 0)
         : wxMenuBase(title, style) { Init(); }
-    
+
     wxMenu(long style = 0) : wxMenuBase(style) { Init(); }
-    
+
     virtual ~wxMenu();
-    
+
     // implement base class virtuals
-    virtual bool DoAppend(wxMenuItem *item);
-    virtual bool DoInsert(size_t pos, wxMenuItem *item);
-    virtual wxMenuItem *DoRemove(wxMenuItem *item);
-    
+    virtual wxMenuItem* DoAppend(wxMenuItem *item);
+    virtual wxMenuItem* DoInsert(size_t pos, wxMenuItem *item);
+    virtual wxMenuItemDoRemove(wxMenuItem *item);
+
     virtual void Break();
-    
+
     virtual void SetTitle(const wxString& title);
-    
+
     bool ProcessCommand(wxCommandEvent& event);
-    
-    wxMenu(const wxString& title, const wxFunction func)
-        : wxMenuBase(title)
-    {
-        Init();
-        
-        Callback(func);
-    }
-    
+
     //// Motif-specific
     WXWidget GetButtonWidget() const { return m_buttonWidget; }
     void SetButtonWidget(WXWidget buttonWidget) { m_buttonWidget = buttonWidget; }
-    
+
     WXWidget GetMainWidget() const { return m_menuWidget; }
-    
+
     int GetId() const { return m_menuId; }
     void SetId(int id) { m_menuId = id; }
-    
+
     void SetMenuBar(wxMenuBar* menuBar) { m_menuBar = menuBar; }
     wxMenuBar* GetMenuBar() const { return m_menuBar; }
-    
+
     void CreatePopup(WXWidget logicalParent, int x, int y);
     void DestroyPopup();
     void ShowPopup(int x, int y);
     void HidePopup();
-    
+
     WXWidget CreateMenu(wxMenuBar *menuBar, WXWidget parent, wxMenu *topMenu,
-        const wxString& title = wxEmptyString,
-        bool isPulldown = FALSE);
-    
+        size_t index, const wxString& title = wxEmptyString,
+        bool isPulldown = false);
+
     // For popups, need to destroy, then recreate menu for a different (or
     // possibly same) window, since the parent may change.
     void DestroyMenu(bool full);
     WXWidget FindMenuItem(int id, wxMenuItem **it = NULL) const;
-    
+
     const wxColour& GetBackgroundColour() const { return m_backgroundColour; }
     const wxColour& GetForegroundColour() const { return m_foregroundColour; }
     const wxFont& GetFont() const { return m_font; }
-    
+
     void SetBackgroundColour(const wxColour& colour);
     void SetForegroundColour(const wxColour& colour);
     void SetFont(const wxFont& colour);
-    void ChangeFont(bool keepOriginalSize = FALSE);
-    
+    void ChangeFont(bool keepOriginalSize = false);
+
     WXWidget GetHandle() const { return m_menuWidget; }
-    
+
     bool IsTearOff() const { return (m_style & wxMENU_TEAROFF) != 0; }
-    
+
+    void DestroyWidgetAndDetach();
 public:
     // Motif-specific data
     int               m_numColumns;
@@ -106,11 +96,11 @@ public:
     wxColour          m_foregroundColour;
     wxColour          m_backgroundColour;
     wxFont            m_font;
-    
+
 private:
     // common code for both constructors:
     void Init();
-    
+
     DECLARE_DYNAMIC_CLASS(wxMenu)
 };
 
@@ -118,66 +108,67 @@ private:
 // Menu Bar
 // ----------------------------------------------------------------------------
 
-class wxMenuBar : public wxMenuBarBase
+class WXDLLIMPEXP_CORE wxMenuBar : public wxMenuBarBase
 {
 public:
     wxMenuBar() { Init(); }
     wxMenuBar(long WXUNUSED(style)) { Init(); }
-    wxMenuBar(int n, wxMenu *menus[], const wxString titles[]);
+    wxMenuBar(size_t n, wxMenu *menus[], const wxString titles[], long style = 0);
+    wxMenuBar(size_t n, wxMenu *menus[], const wxArrayString& titles, long style = 0);
     virtual ~wxMenuBar();
-    
+
     // implement base class (pure) virtuals
     // ------------------------------------
-    
+
     virtual bool Append( wxMenu *menu, const wxString &title );
     virtual bool Insert(size_t pos, wxMenu *menu, const wxString& title);
     virtual wxMenu *Replace(size_t pos, wxMenu *menu, const wxString& title);
     virtual wxMenu *Remove(size_t pos);
-    
+
     virtual int FindMenuItem(const wxString& menuString,
         const wxString& itemString) const;
     virtual wxMenuItem* FindItem( int id, wxMenu **menu = NULL ) const;
-    
+
     virtual void EnableTop( size_t pos, bool flag );
-    virtual void SetLabelTop( size_t pos, const wxString& label );
-    virtual wxString GetLabelTop( size_t pos ) const;
-    
+    virtual void SetMenuLabel( size_t pos, const wxString& label );
+    virtual wxString GetMenuLabel( size_t pos ) const;
+
     // implementation only from now on
     // -------------------------------
-    
+
     wxFrame* GetMenuBarFrame() const { return m_menuBarFrame; }
     void SetMenuBarFrame(wxFrame* frame) { m_menuBarFrame = frame; }
     WXWidget GetMainWidget() const { return m_mainWidget; }
     void SetMainWidget(WXWidget widget) { m_mainWidget = widget; }
-    
+
     // Create menubar
     bool CreateMenuBar(wxFrame* frame);
-    
+
     // Destroy menubar, but keep data structures intact so we can recreate it.
     bool DestroyMenuBar();
-    
+
     const wxColour& GetBackgroundColour() const { return m_backgroundColour; }
     const wxColour& GetForegroundColour() const { return m_foregroundColour; }
     const wxFont& GetFont() const { return m_font; }
-    
+
     virtual bool SetBackgroundColour(const wxColour& colour);
     virtual bool SetForegroundColour(const wxColour& colour);
     virtual bool SetFont(const wxFont& colour);
-    void ChangeFont(bool keepOriginalSize = FALSE);
-    
+    void ChangeFont(bool keepOriginalSize = false);
+
 public:
     // common part of all ctors
     void Init();
-    
+
     wxArrayString m_titles;
     wxFrame      *m_menuBarFrame;
-    
+
     WXWidget      m_mainWidget;
-    
+
     wxColour      m_foregroundColour;
     wxColour      m_backgroundColour;
     wxFont        m_font;
-    
+
     DECLARE_DYNAMIC_CLASS(wxMenuBar)
 };