// Created: 17/09/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
-// Licence: wxWindows licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_CONTROL_H_
#include "wx/list.h"
#include "wx/validate.h"
+#define wxControlNameStr _T("control")
+
// General item class
-class WXDLLEXPORT wxControl: public wxWindow
+class WXDLLEXPORT wxControl: public wxControlBase
{
- DECLARE_ABSTRACT_CLASS(wxControl)
+ DECLARE_ABSTRACT_CLASS(wxControl)
+
public:
- wxControl();
- ~wxControl();
-
- virtual void Command(wxCommandEvent& WXUNUSED(event)) {}; // Simulates an event
- virtual void ProcessCommand(wxCommandEvent& event); // Calls the callback and
- // appropriate event handlers
- virtual void SetLabel(const wxString& label);
- virtual wxString GetLabel() const ;
-
- // Places item in centre of panel - so can't be used BEFORE panel->Fit()
- void Centre(int direction = wxHORIZONTAL);
- inline void Callback(const wxFunction function) { m_callback = function; }; // Adds callback
-
- inline wxFunction GetCallback() { return m_callback; }
-
+ wxControl();
+ wxControl( wxWindow *parent,
+ wxWindowID id,
+ const wxPoint &pos = wxDefaultPosition,
+ const wxSize &size = wxDefaultSize,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString &name = wxControlNameStr )
+ {
+ Create(parent, id, pos, size, style, validator, name);
+ }
+
+ bool Create(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize, long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxControlNameStr);
+
+ // simulates the event, returns TRUE if the event was processed
+ virtual void Command(wxCommandEvent& WXUNUSED(event)) { }
+
+ // calls the callback and appropriate event handlers, returns TRUE if
+ // event was processed
+ virtual bool ProcessCommand(wxCommandEvent& event);
+
+ virtual void SetLabel(const wxString& label);
+ virtual wxString GetLabel() const ;
+
+#if WXWIN_COMPATIBILITY
+ void Callback(const wxFunction function) { m_callback = function; }; // Adds callback
+
+ wxFunction GetCallback() { return m_callback; }
+#endif // WXWIN_COMPATIBILITY
+
+ bool InSetValue() const { return m_inSetValue; }
+
protected:
- wxFunction m_callback; // Callback associated with the window
+ // calls wxControlBase::CreateControl, also sets foreground, background and
+ // font to parent's values
+ bool CreateControl(wxWindow *parent,
+ wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ long style,
+ const wxValidator& validator,
+ const wxString& name);
-DECLARE_EVENT_TABLE()
+#if WXWIN_COMPATIBILITY
+ wxFunction m_callback; // Callback associated with the window
+#endif // WXWIN_COMPATIBILITY
+
+ bool m_inSetValue; // Motif: prevent callbacks being called while
+ // in SetValue
+
+ DECLARE_EVENT_TABLE()
};
#endif
- // _WX_CONTROL_H_
+// _WX_CONTROL_H_