X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7c78e7c70271608b076b1dbed201b1204e6898d4..e5f741e5d467b1ce7105be96e9f3dcb553e8b89d:/src/qt/control.cpp diff --git a/src/qt/control.cpp b/src/qt/control.cpp index 62a07ce01c..4786140bef 100644 --- a/src/qt/control.cpp +++ b/src/qt/control.cpp @@ -1,11 +1,12 @@ ///////////////////////////////////////////////////////////////////////////// // Name: control.cpp -// Purpose: -// Author: Robert Roebling -// Created: 01/02/97 -// Id: -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence +// Purpose: wxControl class +// Author: AUTHOR +// Modified by: +// Created: ??/??/98 +// RCS-ID: $Id$ +// Copyright: (c) AUTHOR +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ @@ -14,46 +15,95 @@ #include "wx/control.h" -//----------------------------------------------------------------------------- -// wxControl -//----------------------------------------------------------------------------- +IMPLEMENT_ABSTRACT_CLASS(wxControl, wxWindow) -IMPLEMENT_DYNAMIC_CLASS(wxControl,wxWindow) +BEGIN_EVENT_TABLE(wxControl, wxWindow) +END_EVENT_TABLE() -wxControl::wxControl(void) +// Item members +wxControl::wxControl() { -}; + m_backgroundColour = *wxWHITE; + m_foregroundColour = *wxBLACK; + m_callback = 0; +} -wxControl::wxControl( wxWindow *parent, wxWindowID id, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) : - wxWindow( parent, id, pos, size, style, name ) +wxControl::~wxControl() { -}; + // If we delete an item, we should initialize the parent panel, + // because it could now be invalid. + wxWindow *parent = (wxWindow *)GetParent(); + if (parent) + { + if (parent->GetDefaultItem() == this) + parent->SetDefaultItem(NULL); + } +} -void wxControl::Command( wxCommandEvent &WXUNUSED(event) ) +void wxControl::SetLabel(const wxString& label) { -}; + // TODO +} -void wxControl::SetLabel( const wxString &label ) +wxString wxControl::GetLabel() const { - for ( const char *pc = label; *pc != '\0'; pc++ ) { - if ( *pc == '&' ) { - pc++; // skip it -#if 0 // it would be unused anyhow for now - kbd interface not done yet - if ( *pc != '&' ) - m_chAccel = *pc; -#endif + // TODO + return wxString(""); +} + +/* + * Allocates control IDs within the appropriate range + */ + +int NewControlId() +{ + static int s_controlId = 0; + s_controlId ++; + return s_controlId; +} + +void wxControl::ProcessCommand (wxCommandEvent & event) +{ + // Tries: + // 1) A callback function (to become obsolete) + // 2) OnCommand, starting at this window and working up parent hierarchy + // 3) OnCommand then calls ProcessEvent to search the event tables. + if (m_callback) + { + (void) (*(m_callback)) (*this, event); } + else + { + GetEventHandler()->OnCommand(*this, event); + } +} - m_label << *pc; - } -}; +void wxControl::SetClientSize (int width, int height) +{ + SetSize (-1, -1, width, height); +} -wxString wxControl::GetLabel(void) const +void wxControl::Centre (int direction) { - return m_label; -}; + int x, y, width, height, panel_width, panel_height, new_x, new_y; + + wxWindow *parent = (wxWindow *) GetParent (); + if (!parent) + return; + + parent->GetClientSize (&panel_width, &panel_height); + GetSize (&width, &height); + GetPosition (&x, &y); + + new_x = x; + new_y = y; + + if (direction & wxHORIZONTAL) + new_x = (int) ((panel_width - width) / 2); + if (direction & wxVERTICAL) + new_y = (int) ((panel_height - height) / 2); + SetSize (new_x, new_y, width, height); +}