#include "wx/choice.h"
#include "wx/utils.h"
#include "wx/log.h"
+ #include "wx/settings.h"
#endif
#include "wx/os2/private.h"
, int n
, const wxString asChoices[]
, long lStyle
-#if wxUSE_VALIDATORS
, const wxValidator& rValidator
-#endif
, const wxString& rsName
)
{
long lSstyle;
- if (!OS2CreateControl( pParent
- ,vId
- ,rPos
- ,rSize
- ,lStyle
-#if wxUSE_VALIDATORS
- ,rValidator
-#endif
- ,rsName
- ))
+ if (!CreateControl( pParent
+ ,vId
+ ,rPos
+ ,rSize
+ ,lStyle
+ ,rValidator
+ ,rsName
+ ))
return FALSE;
lSstyle = CBS_DROPDOWNLIST |
WS_TABSTOP |
// A choice/combobox normally has a white background (or other, depending
// on global settings) rather than inheriting the parent's background colour.
//
- SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW));
+ SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
for (int i = 0; i < n; i++)
{
Append(asChoices[i]);
}
+ wxFont* pTextFont = new wxFont( 10
+ ,wxMODERN
+ ,wxNORMAL
+ ,wxNORMAL
+ );
+ SetFont(*pTextFont);
SetSize( rPos.x
,rPos.y
,rSize.x
,rSize.y
);
-
+ delete pTextFont;
return TRUE;
} // end of wxChoice::Create
, const wxString& rsStr
)
{
- wxFAIL_MSG(wxT("not implemented"));
+ SHORT nIndexType = 0;
+ void* pData;
-#if 0 // should do this, but no Insert() so far
- Delete(n);
- Insert(n + 1, s);
-#endif
+ if ( m_clientDataItemsType != wxClientData_None )
+ {
+ pData = DoGetItemClientData(n);
+ }
+ else // no client data
+ {
+ pData = NULL;
+ }
+
+ ::WinSendMsg(GetHwnd(), LM_DELETEITEM, (MPARAM)n, 0);
+
+ if (m_windowStyle & wxLB_SORT)
+ nIndexType = LIT_SORTASCENDING;
+ else
+ nIndexType = LIT_END;
+ ::WinSendMsg( GetHwnd()
+ ,LM_INSERTITEM
+ ,(MPARAM)nIndexType
+ ,(MPARAM)rsStr.c_str()
+ );
+
+ if (pData)
+ {
+ DoSetItemClientData( n
+ ,pData
+ );
+ }
} // end of wxChoice::SetString
wxString wxChoice::GetString(
char* zBuf;
nLen = (size_t)LONGFROMMR(::WinSendMsg(GetHwnd(), LM_QUERYITEMTEXTLENGTH, (MPARAM)n, (MPARAM)0));
- if (nLen)
+ if (nLen != LIT_ERROR && nLen > 0)
{
zBuf = new char[nLen + 1];
::WinSendMsg( GetHwnd()