+ if( (GetWindowStyle() & wxCB_DROPDOWN) == wxCB_DROPDOWN ||
+ (GetWindowStyle() & wxCB_READONLY) == wxCB_READONLY )
+ {
+ Dimension arrowW, arrowS, highlight, xmargin, ymargin, shadow;
+
+ XtVaGetValues( (Widget)m_mainWidget,
+ XmNarrowSize, &arrowW,
+ XmNarrowSpacing, &arrowS,
+ XmNhighlightThickness, &highlight,
+ XmNmarginWidth, &xmargin,
+ XmNmarginHeight, &ymargin,
+ XmNshadowThickness, &shadow,
+ NULL );
+
+ wxSize listSize = wxDoGetListBoxBestSize( GetXmList(this), this );
+ wxSize textSize = wxDoGetSingleTextCtrlBestSize( GetXmText(this),
+ this );
+
+ // FIXME arbitrary constants
+ return wxSize( listSize.x + arrowW + arrowS + 2 * highlight
+ + 2 * shadow + 2 * xmargin ,
+ textSize.y + 2 * highlight + 2 * ymargin + 2 * shadow );
+ }
+ else
+ return wxWindow::DoGetBestSize();
+}
+
+WXWidget wxComboBox::GetTextWidget() const
+{
+ return (WXWidget)GetXmText(this);