1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxControl class
8 // Copyright: (c) AUTHOR
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
13 #pragma implementation "control.h"
16 #include "wx/control.h"
18 #if !USE_SHARED_LIBRARY
19 IMPLEMENT_ABSTRACT_CLASS(wxControl, wxWindow)
21 BEGIN_EVENT_TABLE(wxControl, wxWindow)
26 wxControl::wxControl()
28 m_backgroundColour = *wxWHITE;
29 m_foregroundColour = *wxBLACK;
33 wxControl::~wxControl()
35 // If we delete an item, we should initialize the parent panel,
36 // because it could now be invalid.
37 wxWindow *parent = (wxWindow *)GetParent();
40 if (parent->GetDefaultItem() == this)
41 parent->SetDefaultItem(NULL);
45 void wxControl::SetLabel(const wxString& label)
50 wxString wxControl::GetLabel() const
57 * Allocates control IDs within the appropriate range
62 static int s_controlId = 0;
67 void wxControl::ProcessCommand (wxCommandEvent & event)
70 // 1) A callback function (to become obsolete)
71 // 2) OnCommand, starting at this window and working up parent hierarchy
72 // 3) OnCommand then calls ProcessEvent to search the event tables.
75 (void) (*(m_callback)) (*this, event);
79 GetEventHandler()->OnCommand(*this, event);
83 void wxControl::SetClientSize (int width, int height)
85 SetSize (-1, -1, width, height);
88 void wxControl::Centre (int direction)
90 int x, y, width, height, panel_width, panel_height, new_x, new_y;
92 wxWindow *parent = (wxWindow *) GetParent ();
96 parent->GetClientSize (&panel_width, &panel_height);
97 GetSize (&width, &height);
103 if (direction & wxHORIZONTAL)
104 new_x = (int) ((panel_width - width) / 2);
106 if (direction & wxVERTICAL)
107 new_y = (int) ((panel_height - height) / 2);
109 SetSize (new_x, new_y, width, height);