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
//
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

View File

@@ -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