From 2fbb8fbbed4e8a15bed1cd539d0f51eac3019658 Mon Sep 17 00:00:00 2001 From: Stefan Neis Date: Sun, 16 Jul 2006 21:26:04 +0000 Subject: [PATCH] Disable CLIP_SIBLINGS style. Fixes for getting best size. Fixed some error in flag processing. All according to patch #1523304. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40145 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/os2/choice.cpp | 20 ++++++++++---------- src/os2/combobox.cpp | 15 ++++++++------- src/os2/control.cpp | 3 +++ 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/os2/choice.cpp b/src/os2/choice.cpp index 0a2f5254f6..770da88ccc 100644 --- a/src/os2/choice.cpp +++ b/src/os2/choice.cpp @@ -70,8 +70,9 @@ bool wxChoice::Create( WS_TABSTOP | WS_VISIBLE; - if (lStyle & wxCLIP_SIBLINGS ) - lSstyle |= WS_CLIPSIBLINGS; + // clipping siblings does not yet work + // if (lStyle & wxCLIP_SIBLINGS ) + // lSstyle |= WS_CLIPSIBLINGS; wxASSERT_MSG( !(lStyle & wxCB_DROPDOWN) && !(lStyle & wxCB_READONLY) && @@ -103,10 +104,10 @@ bool wxChoice::Create( // Set height to use with sizers i.e. without the dropdown listbox wxFont vFont = GetFont(); - int nCx,nCy; - wxGetCharSize( GetHWND(), &nCx, &nCy, &vFont ); - int nEditHeight = EDIT_HEIGHT_FROM_CHAR_HEIGHT(nCy); - SetBestFittingSize(wxSize(-1,nEditHeight)); + int nEditHeight; + wxGetCharSize( GetHWND(), NULL, &nEditHeight, &vFont ); + nEditHeight = EDIT_HEIGHT_FROM_CHAR_HEIGHT(nEditHeight); + SetBestFittingSize(wxSize(-1,nEditHeight+4)); // +2x2 for the border return true; } // end of wxChoice::Create @@ -126,8 +127,7 @@ int wxChoice::DoAppend( { int nIndex; LONG nIndexType = 0; - - if (m_windowStyle & wxLB_SORT) + if (m_windowStyle & wxCB_SORT) nIndexType = LIT_SORTASCENDING; else nIndexType = LIT_END; @@ -150,7 +150,7 @@ int wxChoice::DoInsert( const wxString& rsItem, unsigned int pos ) int nIndex; LONG nIndexType = 0; - if (m_windowStyle & wxLB_SORT) + if (m_windowStyle & wxCB_SORT) nIndexType = LIT_SORTASCENDING; else nIndexType = pos; @@ -225,7 +225,7 @@ void wxChoice::SetString(unsigned int n, const wxString& rsStr) ::WinSendMsg(GetHwnd(), LM_DELETEITEM, (MPARAM)n, 0); - if (m_windowStyle & wxLB_SORT) + if (m_windowStyle & wxCB_SORT) nIndexType = LIT_SORTASCENDING; else nIndexType = LIT_END; diff --git a/src/os2/combobox.cpp b/src/os2/combobox.cpp index cc804d4354..f1862b75bf 100644 --- a/src/os2/combobox.cpp +++ b/src/os2/combobox.cpp @@ -129,8 +129,9 @@ bool wxComboBox::Create( lSstyle = WS_TABSTOP | WS_VISIBLE; - if (lStyle & wxCLIP_SIBLINGS ) - lSstyle |= WS_CLIPSIBLINGS; + // clipping siblings does not yet work + // if (lStyle & wxCLIP_SIBLINGS ) + // lSstyle |= WS_CLIPSIBLINGS; if (lStyle & wxCB_READONLY) lSstyle |= CBS_DROPDOWNLIST; else if (lStyle & wxCB_SIMPLE) @@ -163,10 +164,10 @@ bool wxComboBox::Create( // Set height to use with sizers i.e. without the dropdown listbox wxFont vFont = GetFont(); - int nCx,nCy; - wxGetCharSize( GetHWND(), &nCx, &nCy, &vFont ); - int nEditHeight = EDIT_HEIGHT_FROM_CHAR_HEIGHT(nCy); - SetBestFittingSize(wxSize(-1,nEditHeight)); + int nEditHeight; + wxGetCharSize( GetHWND(), NULL, &nEditHeight, &vFont ); + nEditHeight = EDIT_HEIGHT_FROM_CHAR_HEIGHT(nEditHeight); + SetBestFittingSize(wxSize(-1,nEditHeight+4)); // +2x2 for the border if (!rsValue.empty()) { @@ -388,7 +389,7 @@ bool wxComboBox::ProcessEditMsg( return(HandleKillFocus((WXHWND)(HWND)wParam)); } return false; -} // end of WinGuiBase_CComboBox::ProcessEditMsg +} // end of wxComboBox::ProcessEditMsg MRESULT EXPENTRY wxComboEditWndProc( HWND hWnd diff --git a/src/os2/control.cpp b/src/os2/control.cpp index 5b74ae803e..51eff786ee 100644 --- a/src/os2/control.cpp +++ b/src/os2/control.cpp @@ -131,6 +131,9 @@ bool wxControl::OS2CreateControl( const wxChar* zClassname, else label = m_label; + // clipping siblings does not yet work + dwStyle &= ~WS_CLIPSIBLINGS; + m_hWnd = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle ,(PSZ)zClass // Window class ,(PSZ)label.c_str() // Initial Text