cleaned up (well, removed) the mess in wxComboBox::SetValue()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -384,63 +384,28 @@ bool wxComboBox::Create(wxWindow *parent, wxWindowID id,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: update and clear all this horrible mess (VZ)
|
|
||||||
|
|
||||||
void wxComboBox::SetValue(const wxString& value)
|
void wxComboBox::SetValue(const wxString& value)
|
||||||
{
|
{
|
||||||
// If newlines are denoted by just 10, must stick 13 in front.
|
if ( HasFlag(wxCB_READONLY) )
|
||||||
size_t singletons = 0;
|
SetStringSelection(value);
|
||||||
size_t len = value.Length();
|
|
||||||
size_t i;
|
|
||||||
for (i = 0; i < len; i ++)
|
|
||||||
{
|
|
||||||
if ((i > 0) && (value[i] == 10) && (value[i-1] != 13))
|
|
||||||
singletons ++;
|
|
||||||
}
|
|
||||||
if (singletons > 0)
|
|
||||||
{
|
|
||||||
wxString tmp;
|
|
||||||
tmp.Alloc(len + singletons);
|
|
||||||
size_t j = 0;
|
|
||||||
for (i = 0; i < len; i ++)
|
|
||||||
{
|
|
||||||
if ((i > 0) && (value[i] == 10) && (value[i-1] != 13))
|
|
||||||
{
|
|
||||||
tmp[j] = 13;
|
|
||||||
j ++;
|
|
||||||
}
|
|
||||||
tmp[j] = value[i];
|
|
||||||
j ++;
|
|
||||||
}
|
|
||||||
if (GetWindowStyle() & wxCB_READONLY)
|
|
||||||
SetStringSelection(tmp);
|
|
||||||
else
|
else
|
||||||
SetWindowText(GetHwnd(), tmp.c_str());
|
SetWindowText(GetHwnd(), value.c_str());
|
||||||
}
|
|
||||||
else
|
|
||||||
if (GetWindowStyle() & wxCB_READONLY)
|
|
||||||
SetStringSelection(value);
|
|
||||||
else
|
|
||||||
SetWindowText(GetHwnd(), value.c_str());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clipboard operations
|
// Clipboard operations
|
||||||
void wxComboBox::Copy()
|
void wxComboBox::Copy()
|
||||||
{
|
{
|
||||||
HWND hWnd = GetHwnd();
|
SendMessage(GetHwnd(), WM_COPY, 0, 0L);
|
||||||
SendMessage(hWnd, WM_COPY, 0, 0L);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxComboBox::Cut()
|
void wxComboBox::Cut()
|
||||||
{
|
{
|
||||||
HWND hWnd = GetHwnd();
|
SendMessage(GetHwnd(), WM_CUT, 0, 0L);
|
||||||
SendMessage(hWnd, WM_CUT, 0, 0L);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxComboBox::Paste()
|
void wxComboBox::Paste()
|
||||||
{
|
{
|
||||||
HWND hWnd = GetHwnd();
|
SendMessage(GetHwnd(), WM_PASTE, 0, 0L);
|
||||||
SendMessage(hWnd, WM_PASTE, 0, 0L);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxComboBox::SetEditable(bool WXUNUSED(editable))
|
void wxComboBox::SetEditable(bool WXUNUSED(editable))
|
||||||
|
Reference in New Issue
Block a user