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:
@@ -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
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user