#endif // wxUSE_VALIDATORS
// use the system default colours
- wxSystemSettings settings;
-
- m_backgroundColour = settings.GetSystemColour(wxSYS_COLOUR_BTNFACE);
- // m_foregroundColour = *wxBLACK; // TODO take this from sys settings too?
+ m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_BTNFACE);
m_foregroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOWTEXT);
- // GRG, changed Mar/2000
- m_font = settings.GetSystemFont(wxSYS_DEFAULT_GUI_FONT);
+ // don't set the font here for wxMSW as we don't call WM_SETFONT here and
+ // so the font is *not* really set - but calls to SetFont() later won't do
+ // anything because m_font appears to be already set!
+#ifndef __WXMSW__
+ m_font = wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT);
+#endif // __WXMSW__
+
// no style bits
m_exStyle =
m_windowStyle = 0;
wxASSERT_MSG( GetChildren().GetCount() == 0, wxT("children not destroyed") );
- // make sure that there are no dangling pointers left pointing to us
- wxPanel *panel = wxDynamicCast(GetParent(), wxPanel);
- if ( panel )
- {
- if ( panel->GetLastFocus() == this )
- {
- panel->SetLastFocus((wxWindow *)NULL);
- }
- }
-
#if wxUSE_CARET
if ( m_caret )
delete m_caret;
xNew += posParent.x;
yNew += posParent.y;
+ // Base size of the visible dimensions of the display
+ // to take into account the taskbar
+ wxRect rect = wxGetClientDisplayRect();
+ wxSize size (rect.width,rect.height);
+
+ if (posParent.x >= 0) // if parent is on the main display
+ {
+ if (xNew < 0)
+ xNew = 0;
+ else if (xNew+width > size.x)
+ xNew = size.x-width-1;
+ }
+ if (posParent.y >= 0) // if parent is on the main display
+ {
+ if (yNew+height > size.y)
+ yNew = size.y-height-1;
+
+ // Make certain that the title bar is initially visible
+ // always, even if this would push the bottom of the
+ // dialog of the visible area of the display
+ if (yNew < 0)
+ yNew = 0;
+ }
+
// move the window to this position (keeping the old size but using
// SetSize() and not Move() to allow xNew and/or yNew to be -1)
- SetSize(xNew, yNew, -1, -1, wxSIZE_ALLOW_MINUS_ONE);
+ SetSize(xNew, yNew, width, height, wxSIZE_ALLOW_MINUS_ONE);
}
// fits the window around the children
// don't try to set invalid font, always fall back to the default
const wxFont& fontOk = font.Ok() ? font : *wxSWISS_FONT;
- if ( (wxFont&)fontOk == m_font )
+ if ( fontOk == m_font )
{
// no change
return FALSE;
if ( event.GetSetText() )
{
- wxControl *control = wxDynamicCast(this, wxControl);
+ wxControl *control = wxDynamicThisCast(this, wxControl);
if ( control )
{
wxTextCtrl *text = wxDynamicCast(control, wxTextCtrl);
}
#if wxUSE_CHECKBOX
- wxCheckBox *checkbox = wxDynamicCast(this, wxCheckBox);
+ wxCheckBox *checkbox = wxDynamicThisCast(this, wxCheckBox);
if ( checkbox )
{
if ( event.GetSetChecked() )
#endif // wxUSE_CHECKBOX
#if wxUSE_RADIOBTN
- wxRadioButton *radiobtn = wxDynamicCast(this, wxRadioButton);
+ wxRadioButton *radiobtn = wxDynamicThisCast(this, wxRadioButton);
if ( radiobtn )
{
if ( event.GetSetChecked() )