-
- DoChangeBackgroundColour((WXWidget) w, m_backgroundColour);
-
- if (m_windowFont.Ok())
- XtVaSetValues (w,
- XmNfontList, (XmFontList) m_windowFont.GetFontList(1.0, XtDisplay((Widget) m_formWidget)),
- NULL);
-
- WXWidget *new_widgetList = new WXWidget[m_noStrings + 1];
- int i;
- if (m_widgetList)
- for (i = 0; i < m_noStrings; i++)
- new_widgetList[i] = m_widgetList[i];
-
- new_widgetList[m_noStrings] = (WXWidget) w;
-
- if (m_widgetList)
- delete[] m_widgetList;
- m_widgetList = new_widgetList;
-
- char mnem = wxFindMnemonic ((char*) (const char*) item);
- if (mnem != 0)
- XtVaSetValues (w, XmNmnemonic, mnem, NULL);
-
- XtAddCallback (w, XmNactivateCallback, (XtCallbackProc) wxChoiceCallback, (XtPointer) this);
-
- if (m_noStrings == 0 && m_buttonWidget)
- {
- XtVaSetValues ((Widget) m_buttonWidget, XmNmenuHistory, w, NULL);
- Widget label = XmOptionButtonGadget ((Widget) m_buttonWidget);
- XmString text = XmStringCreateSimple ((char*) (const char*) item);
- XtVaSetValues (label,
- XmNlabelString, text,
- NULL);
- XmStringFree (text);
- }
- wxNode *node = m_stringList.Add (item);
- XtVaSetValues (w, XmNuserData, node->Data (), NULL);
-
- m_noStrings ++;
+
+ wxDoChangeBackgroundColour((WXWidget) w, m_backgroundColour);
+
+ if( m_font.Ok() )
+ wxDoChangeFont( w, m_font );
+
+ m_widgetArray.Insert(w, pos);
+
+ char mnem = wxFindMnemonic (item);
+ if (mnem != 0)
+ XtVaSetValues (w, XmNmnemonic, mnem, NULL);
+
+ XtAddCallback (w, XmNactivateCallback,
+ (XtCallbackProc) wxChoiceCallback,
+ (XtPointer) this);
+
+ if (m_noStrings == 0 && m_buttonWidget)
+ {
+ XtVaSetValues ((Widget) m_buttonWidget, XmNmenuHistory, w, NULL);
+ Widget label = XmOptionButtonGadget ((Widget) m_buttonWidget);
+ wxXmString text( item );
+ XtVaSetValues (label,
+ XmNlabelString, text(),
+ NULL);
+ }
+ // need to ditch wxStringList for wxArrayString
+ m_stringList.Insert(pos, MYcopystring(item));
+ m_noStrings ++;
+
+ return pos;