Preserve original menu label for later retrieval
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48029 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		@@ -67,6 +67,8 @@ public:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    void SetLabel(const wxString& text)
 | 
					    void SetLabel(const wxString& text)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					        m_originalLabel = text;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // remember the accel char (may be -1 if none)
 | 
					        // remember the accel char (may be -1 if none)
 | 
				
			||||||
        m_indexAccel = wxControl::FindAccelIndex(text, &m_label);
 | 
					        m_indexAccel = wxControl::FindAccelIndex(text, &m_label);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -79,6 +81,7 @@ public:
 | 
				
			|||||||
    // accessors
 | 
					    // accessors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const wxString& GetLabel() const { return m_label; }
 | 
					    const wxString& GetLabel() const { return m_label; }
 | 
				
			||||||
 | 
					    const wxString& GetOriginalLabel() const { return m_originalLabel; }
 | 
				
			||||||
    bool IsEnabled() const { return m_isEnabled; }
 | 
					    bool IsEnabled() const { return m_isEnabled; }
 | 
				
			||||||
    wxCoord GetWidth(wxMenuBar *menubar) const
 | 
					    wxCoord GetWidth(wxMenuBar *menubar) const
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
@@ -105,6 +108,7 @@ private:
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    wxString m_label;
 | 
					    wxString m_label;
 | 
				
			||||||
 | 
					    wxString m_originalLabel;
 | 
				
			||||||
    wxCoord m_width;
 | 
					    wxCoord m_width;
 | 
				
			||||||
    int m_indexAccel;
 | 
					    int m_indexAccel;
 | 
				
			||||||
    bool m_isEnabled;
 | 
					    bool m_isEnabled;
 | 
				
			||||||
@@ -615,7 +619,7 @@ void wxPopupMenuWindow::DoDraw(wxControlRenderer *renderer)
 | 
				
			|||||||
                     dc,
 | 
					                     dc,
 | 
				
			||||||
                     y,
 | 
					                     y,
 | 
				
			||||||
                     gi,
 | 
					                     gi,
 | 
				
			||||||
                     item->GetLabel(),
 | 
					                     item->GetItemLabelText(),
 | 
				
			||||||
                     item->GetAccelString(),
 | 
					                     item->GetAccelString(),
 | 
				
			||||||
                     bmp,
 | 
					                     bmp,
 | 
				
			||||||
                     flags,
 | 
					                     flags,
 | 
				
			||||||
@@ -988,7 +992,7 @@ bool wxPopupMenuWindow::ProcessKeyDown(int key)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                    int idxAccel = item->GetAccelIndex();
 | 
					                    int idxAccel = item->GetAccelIndex();
 | 
				
			||||||
                    if ( idxAccel != -1 &&
 | 
					                    if ( idxAccel != -1 &&
 | 
				
			||||||
                         (wxChar)wxTolower(item->GetLabel()[(size_t)idxAccel])
 | 
					                         (wxChar)wxTolower(item->GetItemLabelText()[(size_t)idxAccel])
 | 
				
			||||||
                            == chAccel )
 | 
					                            == chAccel )
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        // ok, found an item with this accel
 | 
					                        // ok, found an item with this accel
 | 
				
			||||||
@@ -1824,7 +1828,7 @@ void wxMenuBar::SetMenuLabel(size_t pos, const wxString& label)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    wxCHECK_RET( pos < GetCount(), _T("invalid index in SetMenuLabel") );
 | 
					    wxCHECK_RET( pos < GetCount(), _T("invalid index in SetMenuLabel") );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ( label != m_menuInfos[pos].GetLabel() )
 | 
					    if ( label != m_menuInfos[pos].GetOriginalLabel() )
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        m_menuInfos[pos].SetLabel(label);
 | 
					        m_menuInfos[pos].SetLabel(label);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1837,7 +1841,7 @@ wxString wxMenuBar::GetMenuLabel(size_t pos) const
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    wxCHECK_MSG( pos < GetCount(), wxEmptyString, _T("invalid index in GetMenuLabel") );
 | 
					    wxCHECK_MSG( pos < GetCount(), wxEmptyString, _T("invalid index in GetMenuLabel") );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return m_menuInfos[pos].GetLabel();
 | 
					    return m_menuInfos[pos].GetOriginalLabel();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ----------------------------------------------------------------------------
 | 
					// ----------------------------------------------------------------------------
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user