]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/os2/menu.h
Applied patch [ 670782 ] Combobox uses popup window width
[wxWidgets.git] / include / wx / os2 / menu.h
index 381170896a0b3709d86f7242c402dfc822f51429..14205d675917eadc2f09a41cd7c7fe526b718783 100644 (file)
@@ -14,6 +14,7 @@
 
 #if wxUSE_ACCEL
     #include "wx/accel.h"
+    #include "wx/list.h"        // for "template" list classes
     #include "wx/dynarray.h"
 
     WX_DEFINE_EXPORTED_ARRAY(wxAcceleratorEntry *, wxAcceleratorArray);
@@ -21,6 +22,8 @@
 
 class WXDLLEXPORT wxFrame;
 
+void wxSetShortCutKey(wxChar* zText);
+
 // ----------------------------------------------------------------------------
 // Menu
 // ----------------------------------------------------------------------------
@@ -71,16 +74,12 @@ public:
     }
 #endif // wxUSE_MENU_CALLBACK
 
-    //
-    // OS2-specific
-    //
-    bool ProcessCommand(wxCommandEvent& rEvent);
-
-
     //
     // Implementation only from now on
     // -------------------------------
     //
+    virtual void Attach(wxMenuBarBase* pMenubar);
+
     bool OS2Command( WXUINT uParam
                     ,WXWORD wId
                    );
@@ -99,17 +98,11 @@ public:
     //
     WXHMENU GetHMenu() const { return m_hMenu; }
 
-    //
-    // Attach/detach menu to/from wxMenuBar
-    //
-    void Attach(wxMenuBar* pMenubar);
-    void Detach(void);
-
 #if wxUSE_ACCEL
     //
     // Called by wxMenuBar to build its accel table from the accels of all menus
     //
-    bool   HasAccels(void) const { return !m_vAccels.IsEmpty(); }
+    bool   HasAccels(void) const { return m_vAccels.IsEmpty(); }
     size_t GetAccelCount(void) const { return m_vAccels.GetCount(); }
     size_t CopyAccels(wxAcceleratorEntry* pAccels) const;
 
@@ -123,6 +116,15 @@ public:
     //
     int FindAccel(int nId) const;
 #endif // wxUSE_ACCEL
+    //
+    // OS/2 specific Find
+    //
+    wxMenuItem* FindItem(int id, ULONG hItem, wxMenu **menu = NULL) const;
+    //virtual function hiding suppression
+    int FindItem(const wxString& rsString) const
+    { return wxMenuBase::FindItem(rsString); }
+    wxMenuItem* FindItem(int id, wxMenu **menu = NULL) const
+    { return wxMenuBase::FindItem(id, menu); }
 
     //
     // All OS/2PM Menu's have one of these
@@ -142,6 +144,11 @@ private:
                           ,size_t      nPos = (size_t)-1
                          );
 
+    //
+    // Terminate the current radio group, if any
+    //
+    void EndRadioGroup(void);
+
     //
     // If TRUE, insert a breal before appending the next item
     //
@@ -152,6 +159,16 @@ private:
     //
     WXHMENU                         m_hMenu;
 
+    //
+    // The helper variable for creating unique IDs.
+    //
+    static USHORT                   m_nextMenuId;
+
+    //
+    // The position of the first item in the current radio group or -1
+    //
+    int                             m_nStartRadioGroup;
+
 #if wxUSE_ACCEL
     //
     // The accelerators for our menu items
@@ -212,7 +229,10 @@ public:
     virtual wxMenuItem* FindItem( int      nId
                                  ,wxMenu** ppMenu = NULL
                                 ) const;
-
+    virtual wxMenuItem* FindItem( int      nId
+                                 ,ULONG    hItem
+                                 ,wxMenu** ppMenu = NULL
+                                ) const;
     virtual void        EnableTop( size_t nPos
                                   ,bool   bFlag
                                  );
@@ -235,22 +255,8 @@ public:
     // Implementation from now on
     //
     WXHMENU                   Create(void);
-    void                      Detach(void);
-
-    //
-    // Returns TRUE if we're attached to a frame
-    //
-    bool                      IsAttached(void) const { return m_pMenuBarFrame != NULL; }
-
-    //
-    // Get the frame we live in
-    //
-    wxFrame *                 GetFrame(void) const { return m_pMenuBarFrame; }
-
-    //
-    // Attach to a frame
-    //
-    void                      Attach(wxFrame* pFrame);
+    virtual void              Detach(void);
+    virtual void              Attach(wxFrame* pFrame);
 
 #if wxUSE_ACCEL
     //
@@ -286,7 +292,6 @@ protected:
 
     wxArrayString m_titles;
 
-    wxFrame*                        m_pMenuBarFrame;
     WXHMENU                         m_hMenu;
 
 #if wxUSE_ACCEL