// Created: 14.08.00
// RCS-ID: $Id$
// Copyright: (c) 2000 SciTech Software, Inc. (www.scitechsoft.com)
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
-#ifdef __GNUG__
- #pragma implementation "control.h"
-#endif
-
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
#if wxUSE_CONTROLS
+#include "wx/control.h"
+
#ifndef WX_PRECOMP
#include "wx/app.h"
- #include "wx/control.h"
#include "wx/dcclient.h"
#endif
void wxControl::Init()
{
m_indexAccel = -1;
-
- m_inputHandler = (wxInputHandler *)NULL;
}
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;
}
// ----------------------------------------------------------------------------
// mnemonics handling
// ----------------------------------------------------------------------------
-/* static */
-int wxControl::FindAccelIndex(const wxString& label, wxString *labelOnly)
+void wxControl::SetLabel(const wxString& label)
{
- // the character following MNEMONIC_PREFIX is the accelerator for this
- // control unless it is MNEMONIC_PREFIX too - this allows to insert
- // literal MNEMONIC_PREFIX chars into the label
- static const wxChar MNEMONIC_PREFIX = _T('&');
-
- if ( labelOnly )
- {
- labelOnly->Empty();
- labelOnly->Alloc(label.length());
- }
+ // save original label
+ wxControlBase::SetLabel(label);
- int indexAccel = -1;
- for ( const wxChar *pc = label; *pc != wxT('\0'); pc++ )
- {
- if ( *pc == MNEMONIC_PREFIX )
- {
- pc++; // skip it
- if ( *pc != MNEMONIC_PREFIX )
- {
- if ( indexAccel == -1 )
- {
- // remember it (-1 is for MNEMONIC_PREFIX itself
- indexAccel = pc - label.c_str() - 1;
- }
- else
- {
- wxFAIL_MSG(_T("duplicate accel char in control label"));
- }
- }
- }
-
- if ( labelOnly )
- {
- *labelOnly += *pc;
- }
- }
-
- return indexAccel;
+ UnivDoSetLabel(label);
}
-void wxControl::SetLabel(const wxString& label)
+void wxControl::UnivDoSetLabel(const wxString& label)
{
wxString labelOld = m_label;
m_indexAccel = FindAccelIndex(label, &m_label);
}
}
-wxString wxControl::GetLabel() const
-{
- return m_label;
-}
-
#endif // wxUSE_CONTROLS