home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
wxos2233.zip
/
wxOS2-2_3_3.zip
/
wxWindows-2.3.3
/
src
/
common
/
ctrlcmn.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
2002-08-08
|
5KB
|
165 lines
/////////////////////////////////////////////////////////////////////////////
// Name: ctrlcmn.cpp
// Purpose: wxControl common interface
// Author: Vadim Zeitlin
// Modified by:
// Created: 26.07.99
// RCS-ID: $Id: ctrlcmn.cpp,v 1.13 2002/08/05 03:13:59 DW Exp $
// Copyright: (c) wxWindows team
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
#ifdef __GNUG__
#pragma implementation "controlbase.h"
#pragma implementation "statbmpbase.h"
#endif
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#if wxUSE_CONTROLS
#ifndef WX_PRECOMP
#include "wx/control.h"
#include "wx/log.h"
#endif
#if wxUSE_STATBMP
#include "wx/bitmap.h"
#include "wx/statbmp.h"
#endif // wxUSE_STATBMP
// ============================================================================
// implementation
// ============================================================================
wxControlBase::~wxControlBase()
{
// this destructor is required for Darwin
}
bool wxControlBase::Create(wxWindow *parent,
wxWindowID id,
const wxPoint &pos,
const wxSize &size,
long style,
const wxValidator& validator,
const wxString &name)
{
bool ret = wxWindow::Create(parent, id, pos, size, style, name);
#if wxUSE_VALIDATORS
if ( ret )
SetValidator(validator);
#endif // wxUSE_VALIDATORS
return ret;
}
bool wxControlBase::CreateControl(wxWindowBase *parent,
wxWindowID id,
const wxPoint& pos,
const wxSize& size,
long style,
const wxValidator& validator,
const wxString& name)
{
// even if it's possible to create controls without parents in some port,
// it should surely be discouraged because it doesn't work at all under
// Windows
wxCHECK_MSG( parent, FALSE, wxT("all controls must have parents") );
if ( !CreateBase(parent, id, pos, size, style, validator, name) )
return FALSE;
parent->AddChild(this);
return TRUE;
}
// inherit colour and font settings from the parent window
void wxControlBase::InheritAttributes()
{
// it definitely doesn't make sense to inherit the background colour as the
// controls typically have their own standard one and probably not the
// foreground neither?
#if 0
SetBackgroundColour(GetParent()->GetBackgroundColour());
SetForegroundColour(GetParent()->GetForegroundColour());
#endif // 0
#ifdef __WXPM__
//
// All OS/2 ctrls use the small font
//
SetFont(*wxSMALL_FONT);
#else
SetFont(GetParent()->GetFont());
#endif
}
void wxControlBase::Command(wxCommandEvent& event)
{
(void)GetEventHandler()->ProcessEvent(event);
}
void wxControlBase::InitCommandEvent(wxCommandEvent& event) const
{
event.SetEventObject((wxControlBase *)this); // const_cast
// event.SetId(GetId()); -- this is usuall done in the event ctor
switch ( m_clientDataType )
{
case wxClientData_Void:
event.SetClientData(GetClientData());
break;
case wxClientData_Object:
event.SetClientObject(GetClientObject());
break;
case wxClientData_None:
// nothing to do
;
}
}
// ----------------------------------------------------------------------------
// wxStaticBitmap
// ----------------------------------------------------------------------------
#if wxUSE_STATBMP
wxStaticBitmapBase::~wxStaticBitmapBase()
{
// this destructor is required for Darwin
}
wxSize wxStaticBitmapBase::DoGetBestClientSize() const
{
wxBitmap bmp = GetBitmap();
if ( bmp.Ok() )
return wxSize(bmp.GetWidth(), bmp.GetHeight());
// this is completely arbitrary
return wxSize(16, 16);
}
#endif // wxUSE_STATBMP
#endif // wxUSE_CONTROLS