#include "wx/textctrl.h"
#include "wx/settings.h"
#include "wx/dialog.h"
+ #include "wx/msgdlg.h"
#endif //WX_PRECOMP
#if wxUSE_CONSTRAINTS
BEGIN_EVENT_TABLE(wxWindowBase, wxEvtHandler)
EVT_SYS_COLOUR_CHANGED(wxWindowBase::OnSysColourChanged)
EVT_INIT_DIALOG(wxWindowBase::OnInitDialog)
+ EVT_MIDDLE_DOWN(wxWindowBase::OnMiddleClick)
END_EVENT_TABLE()
// ============================================================================
// m_foregroundColour = *wxBLACK; // TODO take this from sys settings too?
m_foregroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOWTEXT);
-#if !defined(__WXMAC__) && !defined(__WXGTK__)
+ // GRG, changed Mar/2000
+#if 0 // !defined(__WXMAC__) && !defined(__WXGTK__)
m_font = *wxSWISS_FONT; // and this?
#else
- m_font = settings.GetSystemFont(wxSYS_DEFAULT_GUI_FONT);
+ m_font = settings.GetSystemFont(wxSYS_DEFAULT_GUI_FONT);
#endif
-
// no style bits
m_exStyle =
m_windowStyle = 0;
SetValidator(validator);
#endif // wxUSE_VALIDATORS
+ // if the parent window has wxWS_EX_VALIDATE_RECURSIVELY set, we want to
+ // have it too - like this it's possible to set it only in the top level
+ // dialog/frame and all children will inherit it by defult
+ if ( parent && (parent->GetExtraStyle() & wxWS_EX_VALIDATE_RECURSIVELY) )
+ {
+ SetExtraStyle(wxWS_EX_VALIDATE_RECURSIVELY);
+ }
+
return TRUE;
}
// controls are always centered on their parent because it doesn't make
// sense to centre them on the screen
- if ( !(direction & wxCENTRE_ON_SCREEN) || wxDynamicCast(this, wxControl) )
+ if ( !(direction & wxCENTRE_ON_SCREEN) || !IsTopLevel() )
{
- // theo nly chance to get this is to have a wxControl without parent
- wxCHECK_RET( parent, wxT("a control must have a parent") );
+ // the only chance to get this is to have a not top level window
+ // without parent which shouldn't happen
+ wxCHECK_RET( parent, wxT("this window must have a parent") );
// adjust to the parents client area origin
wxPoint posParent = parent->ClientToScreen(wxPoint(0, 0));
int wx, wy, ww, wh;
win->GetPosition(&wx, &wy);
+
+ // if the window hadn't been positioned yet, assume that it is in
+ // the origin
+ if ( wx == -1 )
+ wx = 0;
+ if ( wy == -1 )
+ wy = 0;
+
win->GetSize(&ww, &wh);
if ( wx + ww > maxX )
maxX = wx + ww;
bool wxWindowBase::SetCursor(const wxCursor& cursor)
{
- // don't try to set invalid cursor, always fall back to the default
- const wxCursor& cursorOk = cursor.Ok() ? cursor : *wxSTANDARD_CURSOR;
-
- if ( (wxCursor&)cursorOk == m_cursor )
+ // setting an invalid cursor is ok, it means that we don't have any special
+ // cursor
+ if ( m_cursor == cursor )
{
// no change
return FALSE;
}
- m_cursor = cursorOk;
+ m_cursor = cursor;
return TRUE;
}
TransferDataToWindow();
}
+// process Ctrl-Alt-mclick
+void wxWindowBase::OnMiddleClick( wxMouseEvent& event )
+{
+ if ( event.ControlDown() && event.AltDown() )
+ {
+ // don't translate these strings
+ wxString port;
+ switch ( wxGetOsVersion() )
+ {
+ case wxMOTIF_X: port = _T("Motif"); break;
+ case wxMACINTOSH: port = _T("Mac"); break;
+ case wxBEOS: port = _T("BeOS"); break;
+ case wxGTK:
+ case wxGTK_WIN32:
+ case wxGTK_OS2:
+ case wxGTK_BEOS: port = _T("GTK"); break;
+ case wxWINDOWS:
+ case wxPENWINDOWS:
+ case wxWINDOWS_NT:
+ case wxWIN32S:
+ case wxWIN95:
+ case wxWIN386: port = _T("MS Windows"); break;
+ case wxMGL_UNIX:
+ case wxMGL_X:
+ case wxMGL_WIN32:
+ case wxMGL_OS2: port = _T("MGL"); break;
+ case wxWINDOWS_OS2:
+ case wxOS2_PM: port = _T("OS/2"); break;
+ default: port = _T("unknown"); break;
+ }
+
+ wxMessageBox(wxString::Format(
+ _T(
+ " wxWindows Library (%s port)\n"
+ "Version %u.%u.%u, compiled at %s %s\n"
+ " Copyright (c) 1995-2000 wxWindows team"
+ ),
+ port.c_str(),
+ wxMAJOR_VERSION,
+ wxMINOR_VERSION,
+ wxRELEASE_NUMBER,
+ __DATE__,
+ __TIME__
+ ),
+ _T("wxWindows information"),
+ wxICON_INFORMATION | wxOK,
+ (wxWindow *)this);
+ }
+ else
+ {
+ event.Skip();
+ }
+}
+
// ----------------------------------------------------------------------------
// list classes implementation
// ----------------------------------------------------------------------------