X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f289196b3a47487984ed01ee108476bc227c4d5a..ce52988a85f7ccada8d5a788e74176447159dfd7:/src/os2/control.cpp diff --git a/src/os2/control.cpp b/src/os2/control.cpp index 6b4a38bc8b..0b16771501 100644 --- a/src/os2/control.cpp +++ b/src/os2/control.cpp @@ -5,7 +5,7 @@ // Modified by: // Created: 09/17/99 // RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem +// Copyright: (c) Julian Smart // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -21,6 +21,7 @@ #include "wx/app.h" #include "wx/dcclient.h" #include "wx/scrolwin.h" +#include "wx/log.h" #endif #include "wx/os2/private.h" #include "wx/control.h" @@ -34,10 +35,6 @@ END_EVENT_TABLE() // Item members wxControl::wxControl() { - -#if WXWIN_COMPATIBILITY - m_callback = 0; -#endif // WXWIN_COMPATIBILITY } // end of wxControl::wxControl bool wxControl::Create( @@ -46,9 +43,7 @@ bool wxControl::Create( , const wxPoint& rPos , const wxSize& rSize , long lStyle -#if wxUSE_VALIDATORS , const wxValidator& rValidator -#endif , const wxString& rsName ) { @@ -70,7 +65,7 @@ bool wxControl::Create( wxControl::~wxControl() { - m_isBeingDeleted = TRUE; + m_isBeingDeleted = true; } bool wxControl::OS2CreateControl( @@ -95,49 +90,51 @@ bool wxControl::OS2CreateControl( ); } // end of wxControl::OS2CreateControl -bool wxControl::OS2CreateControl( - const wxChar* zClassname -, WXDWORD dwStyle -, const wxPoint& rPos -, const wxSize& rSize -, const wxString& rsLabel -, WXDWORD dwExstyle -) +bool wxControl::OS2CreateControl( const wxChar* zClassname, + WXDWORD dwStyle, + const wxPoint& rPos, + const wxSize& rSize, + const wxString& rsLabel, + WXDWORD dwExstyle ) { - bool bWant3D = FALSE; - // // Doesn't do anything at all under OS/2 // if (dwExstyle == (WXDWORD)-1) { - dwExstyle = Determine3DEffects(WS_EX_CLIENTEDGE, &bWant3D); + dwExstyle = 0; + (void) OS2GetStyle(GetWindowStyle(), &dwExstyle); } // - // All controls should have these styles (wxWindows creates all controls + // All controls should have these styles (wxWidgets creates all controls // visible by default) // - dwStyle |= WS_VISIBLE; + if (m_isShown ) + dwStyle |= WS_VISIBLE; wxWindow* pParent = GetParent(); - PSZ zClass; + PSZ zClass = ""; if (!pParent) return FALSE; - if ((strcmp(zClassname, "COMBOBOX")) == 0) + if ((wxStrcmp(zClassname, _T("COMBOBOX"))) == 0) zClass = WC_COMBOBOX; - else if ((strcmp(zClassname, "STATIC")) == 0) + else if ((wxStrcmp(zClassname, _T("STATIC"))) == 0) zClass = WC_STATIC; - else if ((strcmp(zClassname, "BUTTON")) == 0) + else if ((wxStrcmp(zClassname, _T("BUTTON"))) == 0) zClass = WC_BUTTON; - else if ((strcmp(zClassname, "NOTEBOOK")) == 0) + else if ((wxStrcmp(zClassname, _T("NOTEBOOK"))) == 0) zClass = WC_NOTEBOOK; + else if ((wxStrcmp(zClassname, _T("CONTAINER"))) == 0) + zClass = WC_CONTAINER; dwStyle |= WS_VISIBLE; + wxString sLabel = ::wxPMTextToLabel(rsLabel); + m_hWnd = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle ,(PSZ)zClass // Window class - ,(PSZ)rsLabel.c_str() // Initial Text + ,(PSZ)sLabel.c_str() // Initial Text ,(ULONG)dwStyle // Style flags ,(LONG)0 // X pos of origin ,(LONG)0 // Y pos of origin @@ -164,9 +161,14 @@ bool wxControl::OS2CreateControl( SubclassWin(m_hWnd); // - // Controls use the same font and colours as their parent dialog by default + // Controls use the same colours as their parent dialog by default // InheritAttributes(); + // + // All OS/2 ctrls use the small font + // + SetFont(*wxSMALL_FONT); + SetXComp(0); SetYComp(0); SetSize( rPos.x @@ -174,7 +176,7 @@ bool wxControl::OS2CreateControl( ,rSize.x ,rSize.y ); - return TRUE; + return true; } // end of wxControl::OS2CreateControl wxSize wxControl::DoGetBestSize() const @@ -184,31 +186,19 @@ wxSize wxControl::DoGetBestSize() const bool wxControl::ProcessCommand(wxCommandEvent& event) { -#if WXWIN_COMPATIBILITY - if ( m_callback ) - { - (void)(*m_callback)(this, event); - - return TRUE; - } - else -#endif // WXWIN_COMPATIBILITY - return GetEventHandler()->ProcessEvent(event); } -WXHBRUSH wxControl::OnCtlColor( - WXHDC hWxDC -, WXHWND hWnd -, WXUINT uCtlColor -, WXUINT uMessage -, WXWPARAM wParam -, WXLPARAM lParam -) +WXHBRUSH wxControl::OnCtlColor(WXHDC hWxDC, + WXHWND WXUNUSED(hWnd), + WXUINT WXUNUSED(uCtlColor), + WXUINT WXUNUSED(uMessage), + WXWPARAM WXUNUSED(wParam), + WXLPARAM WXUNUSED(lParam)) { - HPS hPS = (HPS)hWxDC; // pass in a PS handle in OS/2 - wxColour vColFore = GetForegroundColour(); - wxColour vColBack = GetBackgroundColour(); + HPS hPS = (HPS)hWxDC; // pass in a PS handle in OS/2 + wxColour vColFore = GetForegroundColour(); + wxColour vColBack = GetBackgroundColour(); if (GetParent()->GetTransparentBackground()) ::GpiSetBackMix(hPS, BM_LEAVEALONE); @@ -218,9 +208,9 @@ WXHBRUSH wxControl::OnCtlColor( ::GpiSetBackColor(hPS, vColBack.GetPixel()); ::GpiSetColor(hPS, vColFore.GetPixel()); - wxBrush* pBrush = wxTheBrushList->FindOrCreateBrush( vColBack - ,wxSOLID - ); + wxBrush* pBrush = wxTheBrushList->FindOrCreateBrush( vColBack + ,wxSOLID + ); return (WXHBRUSH)pBrush->GetResourceHandle(); } // end of wxControl::OnCtlColor @@ -253,6 +243,15 @@ WXDWORD wxControl::OS2GetStyle( return dwStyle; } // end of wxControl::OS2GetStyle +void wxControl::SetLabel( + const wxString& rsLabel +) +{ + wxString sLabel = ::wxPMTextToLabel(rsLabel); + + ::WinSetWindowText(GetHwnd(), (PSZ)sLabel.c_str()); +} // end of wxControl::SetLabel + // --------------------------------------------------------------------------- // global functions // --------------------------------------------------------------------------- @@ -283,11 +282,9 @@ void wxFindMaxSize( if (nRight > pRect->xRight) pRect->xRight = nRight; - if (nTop < pRect->yTop) + if (nTop > pRect->yTop) pRect->yTop = nTop; - if (nBottom > pRect->yBottom) + if (nBottom < pRect->yBottom) pRect->yBottom = nBottom; } // end of wxFindMaxSize - -