From 331f1e07ce3bf25c6f6848eac04a7551c0345d25 Mon Sep 17 00:00:00 2001 From: Stefan Neis Date: Sun, 2 Jul 2006 21:11:58 +0000 Subject: [PATCH] Fixes to sizing and others, according to patch #1507207. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39942 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/os2/combobox.h | 11 ++--------- src/os2/combobox.cpp | 39 ++++++++++++++++++--------------------- 2 files changed, 20 insertions(+), 30 deletions(-) diff --git a/include/wx/os2/combobox.h b/include/wx/os2/combobox.h index 3eebbb45f4..1d008aa644 100644 --- a/include/wx/os2/combobox.h +++ b/include/wx/os2/combobox.h @@ -97,8 +97,8 @@ class WXDLLEXPORT wxComboBox : public wxChoice // // List functions: see wxChoice // - inline wxString GetValue(void) const { return GetLabel(); } - virtual void SetValue(const wxString& rsValue); + virtual wxString GetValue(void) const; + virtual void SetValue(const wxString& rsValue); // // Clipboard operations @@ -132,13 +132,6 @@ class WXDLLEXPORT wxComboBox : public wxChoice ,WXLPARAM lParam ); -protected: - virtual void DoSetSize( int nX - ,int nY - ,int nWidth - ,int nHeight - ,int nSizeFlags = wxSIZE_AUTO - ); private: DECLARE_DYNAMIC_CLASS(wxComboBox) }; // end of CLASS wxComboBox diff --git a/src/os2/combobox.cpp b/src/os2/combobox.cpp index 0458be450f..cc804d4354 100644 --- a/src/os2/combobox.cpp +++ b/src/os2/combobox.cpp @@ -39,17 +39,17 @@ IMPLEMENT_DYNAMIC_CLASS(wxComboBox, wxControl) bool wxComboBox::OS2Command( WXUINT uParam, WXWORD WXUNUSED(wId) ) { - long lSel = -1L; + long lSel = GetSelection(); wxString sValue; switch (uParam) { case CBN_LBSELECT: - if (GetSelection() > -1) + if (lSel > -1) { wxCommandEvent vEvent( wxEVT_COMMAND_COMBOBOX_SELECTED, GetId() ); - vEvent.SetInt(GetSelection()); + vEvent.SetInt(lSel); vEvent.SetEventObject(this); vEvent.SetString(GetStringSelection()); @@ -64,8 +64,8 @@ bool wxComboBox::OS2Command( WXUINT uParam, WXWORD WXUNUSED(wId) ) if (lSel == -1L) sValue = GetValue(); else - SetValue(sValue); - vEvent.SetString(GetValue()); + sValue = GetStringSelection(); + vEvent.SetString(sValue); vEvent.SetEventObject(this); ProcessCommand(vEvent); } @@ -160,6 +160,14 @@ bool wxComboBox::Create( ,rSize.x ,rSize.y ); + + // 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)); + if (!rsValue.empty()) { SetValue(rsValue); @@ -172,6 +180,11 @@ bool wxComboBox::Create( return true; } // end of wxComboBox::Create +wxString wxComboBox::GetValue() const +{ + return wxGetWindowText(GetHwnd()); +} + void wxComboBox::SetValue( const wxString& rsValue ) @@ -338,22 +351,6 @@ void wxComboBox::SetSelection( long lFrom, long lTo ) ); } // end of wxComboBox::SetSelection -void wxComboBox::DoSetSize( - int nX -, int nY -, int nWidth -, int nHeight -, int nSizeFlags -) -{ - wxControl::DoSetSize( nX - ,nY - ,nWidth - ,nHeight - ,nSizeFlags - ); -} // end of wxComboBox::DoSetSize - bool wxComboBox::ProcessEditMsg( WXUINT uMsg , WXWPARAM wParam -- 2.45.2