X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/27476f7368c891de149723b7d4cf9fb922ce8433..4a64bee465c0dbf3d97fbf290cb2fef4ad41ca34:/src/os2/control.cpp?ds=sidebyside diff --git a/src/os2/control.cpp b/src/os2/control.cpp index 859f4f7b61..ada5a5e055 100644 --- a/src/os2/control.cpp +++ b/src/os2/control.cpp @@ -24,13 +24,11 @@ #include "wx/os2/private.h" #include "wx/control.h" -#if !USE_SHARED_LIBRARY IMPLEMENT_ABSTRACT_CLASS(wxControl, wxWindow) BEGIN_EVENT_TABLE(wxControl, wxWindow) EVT_ERASE_BACKGROUND(wxControl::OnEraseBackground) END_EVENT_TABLE() -#endif // Item members wxControl::wxControl() @@ -43,45 +41,92 @@ wxControl::wxControl() #endif // WXWIN_COMPATIBILITY } +bool wxControl::Create(wxWindow *parent, wxWindowID id, + const wxPoint& pos, + const wxSize& size, long style, +#if wxUSE_VALIDATORS + const wxValidator& validator, +#endif + const wxString& name) +{ + bool rval = wxWindow::Create(parent, id, pos, size, style, name); + if (rval) { +#if wxUSE_VALIDATORS + SetValidator(validator); +#endif + } + return rval; +} + wxControl::~wxControl() { m_isBeingDeleted = TRUE; } -bool wxControl::OS2CreateControl(const wxChar *classname, WXDWORD style) +bool wxControl::OS2CreateControl(const wxChar *classname, + WXDWORD style, + const wxPoint& pos, + const wxSize& size, + const wxString& label, + WXDWORD exstyle) { - m_hWnd = (WXHWND)::WinCreateWindow( GetHwndOf(GetParent()) - ,classname - ,NULL - ,style - ,0,0,0,0 - ,NULLHANDLE - ,HWND_TOP - ,(HMENU)GetId() - ,NULL - ,NULL - ); + // VZ: if someone could put a comment here explaining what exactly this is + // needed for, it would be nice... + bool want3D; + // if no extended style given, determine it ourselves + if ( exstyle == (WXDWORD)-1 ) + { + exstyle = GetExStyle(style); + } + +// TODO: +/* + // all controls have these childs (wxWindows creates all controls visible + // by default) + style |= WS_CHILD | WS_VISIBLE; + + m_hWnd = (WXHWND)::CreateWindowEx + ( + exstyle, // extended style + classname, // the kind of control to create + label, // the window name + style, // the window style + pos.x, pos.y, // the window position + size.x, size.y, // and size + GetHwndOf(GetParent()), // parent + (HMENU)GetId(), // child id + wxGetInstance(), // app instance + NULL // creation parameters + ); if ( !m_hWnd ) { #ifdef __WXDEBUG__ - wxLogError(T("Failed to create a control of class '%s'"), classname); + wxLogError(wxT("Failed to create a control of class '%s'"), classname); #endif // DEBUG return FALSE; } +#if wxUSE_CTL3D + if ( want3D ) + { + Ctl3dSubclassCtl(GetHwnd()); + m_useCtl3D = TRUE; + } +#endif // wxUSE_CTL3D + // subclass again for purposes of dialog editing mode SubclassWin(m_hWnd); // controls use the same font and colours as their parent dialog by default InheritAttributes(); - +*/ return TRUE; } -wxSize wxControl::DoGetBestSize() +wxSize wxControl::DoGetBestSize() const { return wxSize(DEFAULT_ITEM_WIDTH, DEFAULT_ITEM_HEIGHT); }