]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/menu.cpp
speeding up rectangle drawing by using specific methods, needs 40% less time
[wxWidgets.git] / src / os2 / menu.cpp
index 3f8db0640b83172ee1b5fd336267d19f2a2dbff3..73b5a56cfaa36e8b1e556a2dc38c252bfb731464 100644 (file)
@@ -55,9 +55,6 @@ USHORT                              wxMenu::m_nextMenuId = 0;
 // macros
 // ----------------------------------------------------------------------------
 
 // macros
 // ----------------------------------------------------------------------------
 
-    IMPLEMENT_DYNAMIC_CLASS(wxMenu, wxEvtHandler)
-    IMPLEMENT_DYNAMIC_CLASS(wxMenuBar, wxEvtHandler)
-
 // ============================================================================
 // implementation
 // ============================================================================
 // ============================================================================
 // implementation
 // ============================================================================
@@ -201,7 +198,7 @@ void wxMenu::UpdateAccel(
         //
         // Find the (new) accel for this item
         //
         //
         // Find the (new) accel for this item
         //
-        wxAcceleratorEntry*         pAccel = wxGetAccelFromString(pItem->GetText());
+        wxAcceleratorEntry*         pAccel = wxAcceleratorEntry::Create(pItem->GetItemLabel());
 
         if (pAccel)
             pAccel->m_command = pItem->GetId();
 
         if (pAccel)
             pAccel->m_command = pItem->GetId();
@@ -287,7 +284,7 @@ bool wxMenu::DoInsertOrAppend( wxMenuItem* pItem,
         rItem.id = (USHORT)pItem->GetId();
     }
 
         rItem.id = (USHORT)pItem->GetId();
     }
 
-    BYTE*                           pData=NULL;
+    char *pData = NULL;
 
 #if wxUSE_OWNER_DRAWN
     if (pItem->IsOwnerDrawn())
 
 #if wxUSE_OWNER_DRAWN
     if (pItem->IsOwnerDrawn())
@@ -298,7 +295,7 @@ bool wxMenu::DoInsertOrAppend( wxMenuItem* pItem,
         // Will eventually need to set the image handle somewhere into vItem.hItem
         //
         rItem.afStyle             |= MIS_OWNERDRAW;
         // Will eventually need to set the image handle somewhere into vItem.hItem
         //
         rItem.afStyle             |= MIS_OWNERDRAW;
-        pData                      = (BYTE*)NULL;
+        pData                      = NULL;
         rItem.hItem                = (HBITMAP)pItem->GetBitmap().GetHBITMAP();
         pItem->m_vMenuData.afStyle = rItem.afStyle;
         pItem->m_vMenuData.hItem   = rItem.hItem;
         rItem.hItem                = (HBITMAP)pItem->GetBitmap().GetHBITMAP();
         pItem->m_vMenuData.afStyle = rItem.afStyle;
         pItem->m_vMenuData.hItem   = rItem.hItem;
@@ -323,7 +320,7 @@ bool wxMenu::DoInsertOrAppend( wxMenuItem* pItem,
             //
             rItem.afStyle |= MIS_TEXT;
         }
             //
             rItem.afStyle |= MIS_TEXT;
         }
-        pData = (char*)pItem->GetText().c_str();
+        pData = (char*) pItem->GetItemLabel().wx_str();
     }
 
     if (nPos == (size_t)-1)
     }
 
     if (nPos == (size_t)-1)
@@ -387,7 +384,7 @@ void wxMenu::EndRadioGroup()
 
 wxMenuItem* wxMenu::DoAppend( wxMenuItem* pItem )
 {
 
 wxMenuItem* wxMenu::DoAppend( wxMenuItem* pItem )
 {
-    wxCHECK_MSG( pItem, NULL, _T("NULL item in wxMenu::DoAppend") );
+    wxCHECK_MSG( pItem, NULL, wxT("NULL item in wxMenu::DoAppend") );
 
     bool bCheck = false;
 
 
     bool bCheck = false;
 
@@ -428,7 +425,7 @@ wxMenuItem* wxMenu::DoAppend( wxMenuItem* pItem )
             }
             else
             {
             }
             else
             {
-                wxFAIL_MSG( _T("where is the radio group start item?") );
+                wxFAIL_MSG( wxT("where is the radio group start item?") );
             }
         }
     }
             }
         }
     }
@@ -562,7 +559,7 @@ void wxMenu::SetTitle( const wxString& rLabel )
     {
         if (!rLabel.empty())
         {
     {
         if (!rLabel.empty())
         {
-            if (!::WinSetWindowText(hMenu, (PSZ)rLabel.c_str()))
+            if (!::WinSetWindowText(hMenu, rLabel.c_str()))
             {
                 wxLogLastError(wxT("SetMenuTitle"));
             }
             {
                 wxLogLastError(wxT("SetMenuTitle"));
             }
@@ -583,7 +580,7 @@ void wxMenu::SetTitle( const wxString& rLabel )
             //
             // Modify the title
             //
             //
             // Modify the title
             //
-            if (!::WinSetWindowText(hMenu, (PSZ)rLabel.c_str()))
+            if (!::WinSetWindowText(hMenu, rLabel.c_str()))
             {
                 wxLogLastError(wxT("SetMenuTitle"));
             }
             {
                 wxLogLastError(wxT("SetMenuTitle"));
             }
@@ -756,7 +753,7 @@ WXHMENU wxMenuBar::Create()
     //
     if ((m_hMenu =  ::WinCreateWindow( hFrame
                                       ,WC_MENU
     //
     if ((m_hMenu =  ::WinCreateWindow( hFrame
                                       ,WC_MENU
-                                      ,(PSZ)NULL
+                                      ,NULL
                                       ,MS_ACTIONBAR | WS_SYNCPAINT | WS_VISIBLE
                                       ,0L
                                       ,0L
                                       ,MS_ACTIONBAR | WS_SYNCPAINT | WS_VISIBLE
                                       ,0L
                                       ,0L
@@ -804,7 +801,7 @@ WXHMENU wxMenuBar::Create()
 
             (*it)->m_vMenuData.iPosition = (SHORT)i;
 
 
             (*it)->m_vMenuData.iPosition = (SHORT)i;
 
-            rc = (APIRET)::WinSendMsg(m_hMenu, MM_INSERTITEM, (MPARAM)&(*it)->m_vMenuData, (MPARAM)m_titles[i].c_str());
+            rc = (APIRET)::WinSendMsg(m_hMenu, MM_INSERTITEM, (MPARAM)&(*it)->m_vMenuData, (MPARAM)m_titles[i].wx_str());
             if (rc == (APIRET)MIT_MEMERROR || rc == (APIRET)MIT_ERROR)
             {
                 vError = ::WinGetLastError(vHabmain);
             if (rc == (APIRET)MIT_MEMERROR || rc == (APIRET)MIT_ERROR)
             {
                 vError = ::WinGetLastError(vHabmain);
@@ -847,7 +844,7 @@ void wxMenuBar::EnableTop(
     Refresh();
 } // end of wxMenuBar::EnableTop
 
     Refresh();
 } // end of wxMenuBar::EnableTop
 
-void wxMenuBar::SetLabelTop(
+void wxMenuBar::SetMenuLabel(
   size_t                            nPos
 , const wxString&                   rLabel
 )
   size_t                            nPos
 , const wxString&                   rLabel
 )
@@ -879,21 +876,21 @@ void wxMenuBar::SetLabelTop(
     }
     nId = vItem.id;
 
     }
     nId = vItem.id;
 
-    if (::WinSendMsg(GetHmenu(), MM_SETITEMTEXT, MPFROMSHORT(nId), (MPARAM)rLabel.c_str()));
+    if (::WinSendMsg(GetHmenu(), MM_SETITEMTEXT, MPFROMSHORT(nId), (MPARAM)rLabel.wx_str()));
     {
         wxLogLastError(wxT("ModifyMenu"));
     }
     Refresh();
     {
         wxLogLastError(wxT("ModifyMenu"));
     }
     Refresh();
-} // end of wxMenuBar::SetLabelTop
+} // end of wxMenuBar::SetMenuLabel
 
 
-wxString wxMenuBar::GetLabelTop(
+wxString wxMenuBar::GetMenuLabel(
   size_t                            nPos
 ) const
 {
     wxCHECK_MSG( nPos < GetMenuCount(), wxEmptyString,
   size_t                            nPos
 ) const
 {
     wxCHECK_MSG( nPos < GetMenuCount(), wxEmptyString,
-                 wxT("invalid menu index in wxMenuBar::GetLabelTop") );
+                 wxT("invalid menu index in wxMenuBar::GetMenuLabel") );
     return m_titles[nPos];
     return m_titles[nPos];
-} // end of wxMenuBar::GetLabelTop
+} // end of wxMenuBar::GetMenuLabel
 
 // ---------------------------------------------------------------------------
 // wxMenuBar construction
 
 // ---------------------------------------------------------------------------
 // wxMenuBar construction
@@ -925,7 +922,7 @@ wxMenu* wxMenuBar::Replace(
     if (IsAttached())
     {
         ::WinSendMsg((HWND)m_hMenu, MM_REMOVEITEM, MPFROM2SHORT(nId, TRUE), (MPARAM)0);
     if (IsAttached())
     {
         ::WinSendMsg((HWND)m_hMenu, MM_REMOVEITEM, MPFROM2SHORT(nId, TRUE), (MPARAM)0);
-        ::WinSendMsg((HWND)m_hMenu, MM_INSERTITEM, (MPARAM)&pMenu->m_vMenuData, (MPARAM)sTitle.c_str());
+        ::WinSendMsg((HWND)m_hMenu, MM_INSERTITEM, (MPARAM)&pMenu->m_vMenuData, (MPARAM)sTitle.wx_str());
 
 #if wxUSE_ACCEL
         if (pMenuOld->HasAccels() || pMenu->HasAccels())
 
 #if wxUSE_ACCEL
         if (pMenuOld->HasAccels() || pMenu->HasAccels())
@@ -958,7 +955,7 @@ bool wxMenuBar::Insert( size_t          nPos,
         ::WinSendMsg( (HWND)m_hMenu
                      ,MM_INSERTITEM
                      ,(MPARAM)&pMenu->m_vMenuData
         ::WinSendMsg( (HWND)m_hMenu
                      ,MM_INSERTITEM
                      ,(MPARAM)&pMenu->m_vMenuData
-                     ,(MPARAM)sTitle.c_str()
+                     ,(MPARAM)sTitle.wx_str()
                     );
 #if wxUSE_ACCEL
         if (pMenu->HasAccels())
                     );
 #if wxUSE_ACCEL
         if (pMenu->HasAccels())
@@ -990,7 +987,7 @@ bool wxMenuBar::Append( wxMenu* pMenu,
     if ( IsAttached() )
     {
         pMenu->m_vMenuData.iPosition = MIT_END;
     if ( IsAttached() )
     {
         pMenu->m_vMenuData.iPosition = MIT_END;
-        ::WinSendMsg((HWND)m_hMenu, MM_INSERTITEM, (MPARAM)&pMenu->m_vMenuData, (MPARAM)sTitle.c_str());
+        ::WinSendMsg((HWND)m_hMenu, MM_INSERTITEM, (MPARAM)&pMenu->m_vMenuData, (MPARAM)sTitle.wx_str());
 #if wxUSE_ACCEL
         if (pMenu->HasAccels())
         {
 #if wxUSE_ACCEL
         if (pMenu->HasAccels())
         {
@@ -1097,7 +1094,9 @@ void wxMenuBar::Attach(
                             ,m_vAccelTable.GetHACCEL()
                             ,(HWND)pFrame->GetFrame()
                            ))
                             ,m_vAccelTable.GetHACCEL()
                             ,(HWND)pFrame->GetFrame()
                            ))
+    {
         wxLogLastError(wxT("WinSetAccelTable"));
         wxLogLastError(wxT("WinSetAccelTable"));
+    }
 #endif // wxUSE_ACCEL
 } // end of wxMenuBar::Attach
 
 #endif // wxUSE_ACCEL
 } // end of wxMenuBar::Attach