// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "listbox.h"
#endif
#include "wx/dynarray.h"
#include "wx/log.h"
#include "wx/utils.h"
+#include "wx/arrstr.h"
#ifdef __VMS__
#pragma message disable nosimpint
Widget parentWidget = (Widget) parent->GetClientWidget();
- XmFontList fontList = (XmFontList)NULL;
+ WXFontType fontType = (WXFontType)NULL;
if( m_font.Ok() )
{
- fontList = (XmFontList)m_font.GetFontList(1.0,
- XtDisplay(parentWidget));
+ fontType = m_font.GetFontType(XtDisplay(parentWidget));
}
Arg args[4];
( m_windowStyle & wxLB_EXTENDED ) ? XmEXTENDED_SELECT :
XmBROWSE_SELECT );
++count;
- if( fontList )
+ if( fontType )
{
- XtSetArg( args[count], XmNfontList, fontList );
+ XtSetArg( args[count], (String)wxFont::GetFontTag(), fontType );
++count;
}
if( m_windowStyle & wxLB_ALWAYS_SB )
++count;
}
- Widget listWidget = XmCreateScrolledList(parentWidget,
- (char*)name.c_str(), args, count);
+ Widget listWidget =
+ XmCreateScrolledList(parentWidget,
+ wxConstCast(name.c_str(), char), args, count);
m_mainWidget = (WXWidget) listWidget;
(XtCallbackProc) wxListBoxCallback,
(XtPointer) this);
- SetCanAddEventHandler(TRUE);
AttachWidget (parent, m_mainWidget, (WXWidget) NULL,
pos.x, pos.y, best.x, best.y);
return TRUE;
}
+bool wxListBox::Create(wxWindow *parent, wxWindowID id,
+ const wxPoint& pos,
+ const wxSize& size,
+ const wxArrayString& choices,
+ long style,
+ const wxValidator& validator,
+ const wxString& name)
+{
+ wxCArrayString chs(choices);
+ return Create(parent, id, pos, size, chs.GetCount(), chs.GetStrings(),
+ style, validator, name);
+}
+
wxListBox::~wxListBox()
{
if( HasClientObjectData() )
XmString *text = new XmString[items.GetCount()];
size_t i;
for (i = 0; i < items.GetCount(); ++i)
- text[i] = XmStringCreateSimple ((char*)items[i].c_str());
+ text[i] = wxStringToXmString (items[i]);
if ( clientData )
for (i = 0; i < items.GetCount(); ++i)
XmNitemCount, &count,
XmNitems, &strlist,
NULL );
- if( n <= count && n >= 0 )
+ if( n < count && n >= 0 )
return wxXmStringToString( strlist[n] );
else
return wxEmptyString;
// Corrected by Sergey Krasnov from Steve Hammes' code
#if XmVersion > 1001
for (i = 0; i < items.GetCount(); i++)
- text[i] = XmStringCreateSimple((char*)items[i].c_str());
+ text[i] = wxStringToXmString(items[i]);
XmListAddItemsUnselected(listBox, text, items.GetCount(), pos+1);
#else
for (i = 0; i < items.GetCount(); i++)
{
- text[i] = XmStringCreateSimple((char*)items[i].c_str());
+ text[i] = wxStringToXmString(items[i]);
// Another Sergey correction
XmListAddItemUnselected(listBox, text[i], pos+i+1);
}
* function to change them (by default, taken from wxSystemSettings)
*/
wxColour backgroundColour = wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE);
- DoChangeBackgroundColour((WXWidget) hsb, backgroundColour, TRUE);
- DoChangeBackgroundColour((WXWidget) vsb, backgroundColour, TRUE);
+ wxDoChangeBackgroundColour((WXWidget) hsb, backgroundColour, TRUE);
+ wxDoChangeBackgroundColour((WXWidget) vsb, backgroundColour, TRUE);
XtVaSetValues (hsb,
XmNtroughColor, backgroundColour.AllocColour(XtDisplay(hsb)),
NULL);
// MBN: why change parent's background? It looks really ugly.
- // DoChangeBackgroundColour((WXWidget) parent, m_backgroundColour, TRUE);
+ // wxDoChangeBackgroundColour((WXWidget) parent, m_backgroundColour, TRUE);
}
void wxListBox::ChangeForegroundColour()
/* TODO: should scrollbars be affected? Should probably have separate
function to change them (by default, taken from wxSystemSettings)
- DoChangeForegroundColour((WXWidget) hsb, m_foregroundColour);
- DoChangeForegroundColour((WXWidget) vsb, m_foregroundColour);
- DoChangeForegroundColour((WXWidget) parent, m_foregroundColour);
+ wxDoChangeForegroundColour((WXWidget) hsb, m_foregroundColour);
+ wxDoChangeForegroundColour((WXWidget) vsb, m_foregroundColour);
+ wxDoChangeForegroundColour((WXWidget) parent, m_foregroundColour);
*/
}