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