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:
Vadim Zeitlin
2002-11-07 21:19:26 +00:00
parent f385722728
commit 3a582e90c0

View File

@@ -384,41 +384,9 @@ 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;
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
SetWindowText(GetHwnd(), tmp.c_str());
}
else
if (GetWindowStyle() & wxCB_READONLY)
SetStringSelection(value); SetStringSelection(value);
else else
SetWindowText(GetHwnd(), value.c_str()); SetWindowText(GetHwnd(), value.c_str());
@@ -427,20 +395,17 @@ void wxComboBox::SetValue(const wxString& value)
// 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))