projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Finished review of the first 1,000 lines of grid.h interface header.
[wxWidgets.git]
/
src
/
msw
/
wince
/
choicece.cpp
diff --git
a/src/msw/wince/choicece.cpp
b/src/msw/wince/choicece.cpp
index caef2a0388fe1e5f8209192a34b0100324ea9a5b..0966c4276a2538cc5bb3d90c0db2f2cfd9160760 100644
(file)
--- a/
src/msw/wince/choicece.cpp
+++ b/
src/msw/wince/choicece.cpp
@@
-29,11
+29,9
@@
#include "wx/choice.h"
#ifndef WX_PRECOMP
#include "wx/choice.h"
#ifndef WX_PRECOMP
+ #include "wx/msw/wrapcctl.h" // include <commctrl.h> "properly"
#endif
#endif
-// include <commctrl.h> "properly"
-#include "wx/msw/wrapcctl.h"
-
#include "wx/spinbutt.h" // for wxSpinnerBestSize
#if wxUSE_EXTENDED_RTTI
#include "wx/spinbutt.h" // for wxSpinnerBestSize
#if wxUSE_EXTENDED_RTTI
@@
-246,7
+244,7
@@
bool wxChoice::CreateAndInit(wxWindow *parent,
sizeText.y = EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy);
}
sizeText.y = EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy);
}
- Set
Best
Size(size);
+ Set
Initial
Size(size);
(void)::ShowWindow(GetBuddyHwnd(), SW_SHOW);
(void)::ShowWindow(GetBuddyHwnd(), SW_SHOW);
@@
-327,70
+325,52
@@
bool wxChoice::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
wxChoice::~wxChoice()
{
wxChoice::~wxChoice()
{
-
Free
();
+
Clear
();
}
// ----------------------------------------------------------------------------
// adding/deleting items to/from the list
// ----------------------------------------------------------------------------
}
// ----------------------------------------------------------------------------
// adding/deleting items to/from the list
// ----------------------------------------------------------------------------
-int wxChoice::DoAppend(const wxString& item)
+int wxChoice::DoInsertItems(const wxArrayStringsAdapter& items,
+ unsigned int pos,
+ void **clientData,
+ wxClientDataType type)
{
{
-
int n = (int)::SendMessage(GetBuddyHwnd(), LB_ADDSTRING, 0, (LPARAM)item.c_str()
);
+
MSWAllocStorage(items, LB_INITSTORAGE
);
- if ( n == LB_ERR )
- {
- wxLogLastError(wxT("SendMessage(LB_ADDSTRING)"));
- }
+ const bool append = pos == GetCount();
+ const unsigned msg = append ? LB_ADDSTRING : LB_INSERTSTRING;
+ if ( append )
+ pos = 0;
- return n;
-}
-
-int wxChoice::DoInsert(const wxString& item, unsigned int pos)
-{
- wxCHECK_MSG(!(GetWindowStyle() & wxCB_SORT), -1, wxT("can't insert into choice"));
- wxCHECK_MSG(IsValidInsert(pos), -1, wxT("invalid index"));
+ int n = wxNOT_FOUND;
-
int n = (int)::SendMessage(GetBuddyHwnd(), LB_INSERTSTRING, pos, (LPARAM)item.c_str()
);
-
if ( n == LB_ERR
)
+
const unsigned int numItems = items.GetCount(
);
+
for ( unsigned int i = 0; i < numItems; ++i
)
{
{
- wxLogLastError(wxT("SendMessage(LB_INSERTSTRING)"));
+ n = MSWInsertOrAppendItem(pos, items[i], msg);
+ if ( !append )
+ pos++;
+
+ AssignNewItemClientData(n, clientData, i, type);
}
return n;
}
}
return n;
}
-void wxChoice::D
elete
(unsigned int n)
+void wxChoice::D
oDeleteOneItem
(unsigned int n)
{
wxCHECK_RET( IsValid(n), wxT("invalid item index in wxChoice::Delete") );
{
wxCHECK_RET( IsValid(n), wxT("invalid item index in wxChoice::Delete") );
- if ( HasClientObjectData() )
- {
- delete GetClientObject(n);
- }
-
::SendMessage(GetBuddyHwnd(), LB_DELETESTRING, n, 0);
}
::SendMessage(GetBuddyHwnd(), LB_DELETESTRING, n, 0);
}
-void wxChoice::Clear()
+void wxChoice::
Do
Clear()
{
{
- Free();
-
::SendMessage(GetBuddyHwnd(), LB_RESETCONTENT, 0, 0);
}
::SendMessage(GetBuddyHwnd(), LB_RESETCONTENT, 0, 0);
}
-void wxChoice::Free()
-{
- if ( HasClientObjectData() )
- {
- unsigned int count = GetCount();
- for ( unsigned int n = 0; n < count; n++ )
- {
- delete GetClientObject(n);
- }
- }
-}
-
// ----------------------------------------------------------------------------
// selection
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// selection
// ----------------------------------------------------------------------------
@@
-504,16
+484,6
@@
void* wxChoice::DoGetItemClientData(unsigned int n) const
return (void *)rc;
}
return (void *)rc;
}
-void wxChoice::DoSetItemClientObject(unsigned int n, wxClientData* clientData)
-{
- DoSetItemClientData(n, clientData);
-}
-
-wxClientData* wxChoice::DoGetItemClientObject(unsigned int n) const
-{
- return (wxClientData *)DoGetItemClientData(n);
-}
-
// ----------------------------------------------------------------------------
// size calculations
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// size calculations
// ----------------------------------------------------------------------------