X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/14f355c2b5c71fc7c3d680aea366582d2ac60f7b..1b27b2bd2b6e290645516c180566222c6aa22149:/src/univ/control.cpp diff --git a/src/univ/control.cpp b/src/univ/control.cpp index 712ccbb4c0..8e2a06e9de 100644 --- a/src/univ/control.cpp +++ b/src/univ/control.cpp @@ -13,10 +13,6 @@ // declarations // ============================================================================ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "control.h" -#endif - // ---------------------------------------------------------------------------- // headers // ---------------------------------------------------------------------------- @@ -29,9 +25,10 @@ #if wxUSE_CONTROLS +#include "wx/control.h" + #ifndef WX_PRECOMP #include "wx/app.h" - #include "wx/control.h" #include "wx/dcclient.h" #endif @@ -58,8 +55,6 @@ WX_FORWARD_TO_INPUT_CONSUMER(wxControl) void wxControl::Init() { m_indexAccel = -1; - - m_inputHandler = (wxInputHandler *)NULL; } bool wxControl::Create(wxWindow *parent, @@ -70,18 +65,13 @@ bool wxControl::Create(wxWindow *parent, const wxValidator& validator, const wxString& name) { - // Ee use wxNO_FULL_REPAINT_ON_RESIZE by default as it results in much - // less flicker and none of the standard controls needs to be entirely - // repainted after resize anyhow. - if ( !wxControlBase::Create(parent, id, pos, size, - style | wxNO_FULL_REPAINT_ON_RESIZE , - validator, name) ) + if ( !wxControlBase::Create(parent, id, pos, size, style, validator, name) ) { // underlying window creation failed? - return FALSE; + return false; } - return TRUE; + return true; } // ---------------------------------------------------------------------------- @@ -103,17 +93,19 @@ int wxControl::FindAccelIndex(const wxString& label, wxString *labelOnly) } int indexAccel = -1; - for ( const wxChar *pc = label; *pc != wxT('\0'); pc++ ) + for ( wxString::const_iterator pc = label.begin(); pc != label.end(); ++pc ) { if ( *pc == MNEMONIC_PREFIX ) { - pc++; // skip it - if ( *pc != MNEMONIC_PREFIX ) + ++pc; // skip it + if ( pc == label.end() ) + break; + else if ( *pc != MNEMONIC_PREFIX ) { if ( indexAccel == -1 ) { // remember it (-1 is for MNEMONIC_PREFIX itself - indexAccel = pc - label.c_str() - 1; + indexAccel = pc - label.begin() - 1; } else { @@ -132,6 +124,14 @@ int wxControl::FindAccelIndex(const wxString& label, wxString *labelOnly) } void wxControl::SetLabel(const wxString& label) +{ + // save original label + wxControlBase::SetLabel(label); + + UnivDoSetLabel(label); +} + +void wxControl::UnivDoSetLabel(const wxString& label) { wxString labelOld = m_label; m_indexAccel = FindAccelIndex(label, &m_label); @@ -142,9 +142,4 @@ void wxControl::SetLabel(const wxString& label) } } -wxString wxControl::GetLabel() const -{ - return m_label; -} - #endif // wxUSE_CONTROLS