X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e9576ca53db96b462ed4c0b4bdf47d64c40203e4..19cf1ef3a7077dd99a90f141847b8a9b67b318c9:/src/mac/carbon/control.cpp diff --git a/src/mac/carbon/control.cpp b/src/mac/carbon/control.cpp index b141a80ff1..f062739923 100644 --- a/src/mac/carbon/control.cpp +++ b/src/mac/carbon/control.cpp @@ -1,95 +1,97 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: control.cpp +// Name: src/mac/carbon/control.cpp // Purpose: wxControl class -// Author: AUTHOR +// Author: Stefan Csomor // Modified by: -// Created: ??/??/98 +// Created: 1998-01-01 // RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence +// Copyright: (c) Stefan Csomor +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "control.h" -#endif +#include "wx/wxprec.h" #include "wx/control.h" -#if !USE_SHARED_LIBRARY +#ifndef WX_PRECOMP + #include "wx/app.h" + #include "wx/panel.h" + #include "wx/dc.h" + #include "wx/dcclient.h" + #include "wx/button.h" + #include "wx/dialog.h" + #include "wx/scrolbar.h" + #include "wx/stattext.h" + #include "wx/statbox.h" + #include "wx/radiobox.h" + #include "wx/sizer.h" +#endif // WX_PRECOMP + +#include "wx/notebook.h" +#include "wx/tabctrl.h" +#include "wx/spinbutt.h" + +#include "wx/mac/uma.h" +#include "wx/mac/private.h" + IMPLEMENT_ABSTRACT_CLASS(wxControl, wxWindow) -BEGIN_EVENT_TABLE(wxControl, wxWindow) -END_EVENT_TABLE() -#endif -// Item members wxControl::wxControl() { - m_backgroundColour = *wxWHITE; - m_foregroundColour = *wxBLACK; - m_callback = 0; } -wxControl::~wxControl() +bool wxControl::Create( wxWindow *parent, + wxWindowID id, + const wxPoint& pos, + const wxSize& size, + long style, + const wxValidator& validator, + const wxString& name ) { - // If we delete an item, we should initialize the parent panel, - // because it could now be invalid. - wxWindow *parent = (wxWindow *)GetParent(); - if (parent) + bool rval = wxWindow::Create( parent, id, pos, size, style, name ); + +#if 0 + // no automatic inheritance as we most often need transparent backgrounds + if ( parent ) { - if (parent->GetDefaultItem() == (wxButton*) this) - parent->SetDefaultItem(NULL); + m_backgroundColour = parent->GetBackgroundColour(); + m_foregroundColour = parent->GetForegroundColour(); } -} +#endif -void wxControl::SetLabel(const wxString& label) -{ - // TODO +#if wxUSE_VALIDATORS + if (rval) + SetValidator( validator ); +#endif + + return rval; } -wxString wxControl::GetLabel() const +wxControl::~wxControl() { - // TODO - return wxString(""); + m_isBeingDeleted = true; } -void wxControl::ProcessCommand (wxCommandEvent & event) +bool 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); - } + // Tries: + // 1) OnCommand, starting at this window and working up parent hierarchy + // 2) OnCommand then calls ProcessEvent to search the event tables. + return GetEventHandler()->ProcessEvent( event ); } -void wxControl::Centre (int direction) +void wxControl::OnKeyDown( wxKeyEvent &event ) { - int x, y, width, height, panel_width, panel_height, new_x, new_y; + if ( m_peer == NULL || !m_peer->Ok() ) + return; - wxWindow *parent = (wxWindow *) GetParent (); - if (!parent) - return; + UInt32 keyCode, modifiers; + char charCode; - parent->GetClientSize (&panel_width, &panel_height); - GetSize (&width, &height); - GetPosition (&x, &y); + GetEventParameter( (EventRef)wxTheApp->MacGetCurrentEvent(), kEventParamKeyCode, typeUInt32, NULL, sizeof(UInt32), NULL, &keyCode ); + GetEventParameter( (EventRef)wxTheApp->MacGetCurrentEvent(), kEventParamKeyMacCharCodes, typeChar, NULL, sizeof(char), NULL, &charCode ); + GetEventParameter( (EventRef)wxTheApp->MacGetCurrentEvent(), kEventParamKeyModifiers, typeUInt32, NULL, sizeof(UInt32), NULL, &modifiers ); - 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); + m_peer->HandleKey( keyCode, charCode, modifiers ); } -