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
This commit is contained in:
Stefan Neis
2006-07-02 21:11:58 +00:00
parent 05b4fddf49
commit 331f1e07ce
2 changed files with 20 additions and 30 deletions

View File

@@ -97,8 +97,8 @@ class WXDLLEXPORT wxComboBox : public wxChoice
// //
// List functions: see wxChoice // List functions: see wxChoice
// //
inline wxString GetValue(void) const { return GetLabel(); } virtual wxString GetValue(void) const;
virtual void SetValue(const wxString& rsValue); virtual void SetValue(const wxString& rsValue);
// //
// Clipboard operations // Clipboard operations
@@ -132,13 +132,6 @@ class WXDLLEXPORT wxComboBox : public wxChoice
,WXLPARAM lParam ,WXLPARAM lParam
); );
protected:
virtual void DoSetSize( int nX
,int nY
,int nWidth
,int nHeight
,int nSizeFlags = wxSIZE_AUTO
);
private: private:
DECLARE_DYNAMIC_CLASS(wxComboBox) DECLARE_DYNAMIC_CLASS(wxComboBox)
}; // end of CLASS wxComboBox }; // end of CLASS wxComboBox

View File

@@ -39,17 +39,17 @@ IMPLEMENT_DYNAMIC_CLASS(wxComboBox, wxControl)
bool wxComboBox::OS2Command( WXUINT uParam, WXWORD WXUNUSED(wId) ) bool wxComboBox::OS2Command( WXUINT uParam, WXWORD WXUNUSED(wId) )
{ {
long lSel = -1L; long lSel = GetSelection();
wxString sValue; wxString sValue;
switch (uParam) switch (uParam)
{ {
case CBN_LBSELECT: case CBN_LBSELECT:
if (GetSelection() > -1) if (lSel > -1)
{ {
wxCommandEvent vEvent( wxEVT_COMMAND_COMBOBOX_SELECTED, GetId() ); wxCommandEvent vEvent( wxEVT_COMMAND_COMBOBOX_SELECTED, GetId() );
vEvent.SetInt(GetSelection()); vEvent.SetInt(lSel);
vEvent.SetEventObject(this); vEvent.SetEventObject(this);
vEvent.SetString(GetStringSelection()); vEvent.SetString(GetStringSelection());
@@ -64,8 +64,8 @@ bool wxComboBox::OS2Command( WXUINT uParam, WXWORD WXUNUSED(wId) )
if (lSel == -1L) if (lSel == -1L)
sValue = GetValue(); sValue = GetValue();
else else
SetValue(sValue); sValue = GetStringSelection();
vEvent.SetString(GetValue()); vEvent.SetString(sValue);
vEvent.SetEventObject(this); vEvent.SetEventObject(this);
ProcessCommand(vEvent); ProcessCommand(vEvent);
} }
@@ -160,6 +160,14 @@ bool wxComboBox::Create(
,rSize.x ,rSize.x
,rSize.y ,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()) if (!rsValue.empty())
{ {
SetValue(rsValue); SetValue(rsValue);
@@ -172,6 +180,11 @@ bool wxComboBox::Create(
return true; return true;
} // end of wxComboBox::Create } // end of wxComboBox::Create
wxString wxComboBox::GetValue() const
{
return wxGetWindowText(GetHwnd());
}
void wxComboBox::SetValue( void wxComboBox::SetValue(
const wxString& rsValue const wxString& rsValue
) )
@@ -338,22 +351,6 @@ void wxComboBox::SetSelection( long lFrom, long lTo )
); );
} // end of wxComboBox::SetSelection } // 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( bool wxComboBox::ProcessEditMsg(
WXUINT uMsg WXUINT uMsg
, WXWPARAM wParam , WXWPARAM wParam