X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1a87edf286921de9b182f3d19adb6bb63ba85ebd..9bb50fd0b04c824fc7ba14c0dc4ba4a2a9a1e6ad:/src/motif/radiobox.cpp?ds=inline diff --git a/src/motif/radiobox.cpp b/src/motif/radiobox.cpp index 2ddeee2d44..e10823aa4b 100644 --- a/src/motif/radiobox.cpp +++ b/src/motif/radiobox.cpp @@ -73,43 +73,40 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, m_majorDim = majorDim ; Widget parentWidget = (Widget) parent->GetClientWidget(); + Display* dpy = XtDisplay(parentWidget); m_mainWidget = XtVaCreateWidget ("radioboxframe", - xmFrameWidgetClass, parentWidget, - XmNresizeHeight, True, - XmNresizeWidth, True, - NULL); + xmFrameWidgetClass, parentWidget, + XmNresizeHeight, True, + XmNresizeWidth, True, + NULL); wxString label1(wxStripMenuCodes(title)); - WXFontType fontType = m_font.GetFontType(XtDisplay(parentWidget)); - if (!label1.empty()) { wxXmString text(label1); m_labelWidget = (WXWidget) XtVaCreateManagedWidget( label1.c_str(), #if wxUSE_GADGETS - style & wxCOLOURED ? xmLabelWidgetClass - : xmLabelGadgetClass, - (Widget)m_mainWidget, + style & wxCOLOURED ? xmLabelWidgetClass + : xmLabelGadgetClass, + (Widget)m_mainWidget, #else - xmLabelWidgetClass, - (Widget)m_mainWidget, + xmLabelWidgetClass, (Widget)m_mainWidget, #endif - wxFont::GetFontTag(), fontType, - XmNlabelString, text(), + wxFont::GetFontTag(), m_font.GetFontTypeC(dpy), + XmNlabelString, text(), // XmNframeChildType is not in Motif 1.2, nor in Lesstif, // if it was compiled with 1.2 compatibility // TODO: check this still looks OK for Motif 1.2. #if (XmVersion > 1200) - XmNframeChildType, XmFRAME_TITLE_CHILD, + XmNframeChildType, XmFRAME_TITLE_CHILD, #else - XmNchildType, XmFRAME_TITLE_CHILD, + XmNchildType, XmFRAME_TITLE_CHILD, #endif - XmNchildVerticalAlignment, - XmALIGNMENT_CENTER, - NULL); + XmNchildVerticalAlignment, XmALIGNMENT_CENTER, + NULL); } Arg args[3]; @@ -122,7 +119,7 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, XtSetArg (args[2], XmNadjustLast, False); Widget radioBoxWidget = - XmCreateRadioBox ((Widget)m_mainWidget, "radioBoxWidget", args, 3); + XmCreateRadioBox ((Widget)m_mainWidget, wxMOTIF_STR("radioBoxWidget"), args, 3); m_radioButtons.reserve(n); m_radioButtonLabels.reserve(n); @@ -132,14 +129,15 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, { wxString str(wxStripMenuCodes(choices[i])); m_radioButtonLabels.push_back(str); - Widget radioItem = XtVaCreateManagedWidget (wxConstCast(str.c_str(), char), + Widget radioItem = XtVaCreateManagedWidget ( + wxConstCast(str.c_str(), char), #if wxUSE_GADGETS - xmToggleButtonGadgetClass, radioBoxWidget, + xmToggleButtonGadgetClass, radioBoxWidget, #else - xmToggleButtonWidgetClass, radioBoxWidget, + xmToggleButtonWidgetClass, radioBoxWidget, #endif - wxFont::GetFontTag(), fontType, - NULL); + wxFont::GetFontTag(), m_font.GetFontTypeC(dpy), + NULL); m_radioButtons.push_back((WXWidget)radioItem); XtAddCallback (radioItem, XmNvalueChangedCallback, (XtCallbackProc) wxRadioBoxCallback, @@ -182,7 +180,7 @@ wxRadioBox::~wxRadioBox() void wxRadioBox::SetString(int item, const wxString& label) { - if (item < 0 || item >= m_noItems) + if (!IsValid(item)) return; Widget widget = (Widget) m_radioButtons[item]; @@ -204,12 +202,12 @@ int wxRadioBox::FindString(const wxString& s) const for (i = 0; i < m_noItems; i++) if (s == m_radioButtonLabels[i]) return i; - return -1; + return wxNOT_FOUND; } void wxRadioBox::SetSelection(int n) { - if ((n < 0) || (n >= m_noItems)) + if (!IsValid(n)) return; m_selectedButton = n; @@ -235,7 +233,7 @@ int wxRadioBox::GetSelection() const // Find string for position wxString wxRadioBox::GetString(int n) const { - if ((n < 0) || (n >= m_noItems)) + if (!IsValid(n)) return wxEmptyString; return m_radioButtonLabels[n]; } @@ -267,7 +265,7 @@ void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) // Enable a specific button bool wxRadioBox::Enable(int n, bool enable) { - if ((n < 0) || (n >= m_noItems)) + if (!IsValid(n)) return false; XtSetSensitive ((Widget) m_radioButtons[n], (Boolean) enable); @@ -294,7 +292,7 @@ bool wxRadioBox::Show(bool show) } // Show a specific button -void wxRadioBox::Show(int n, bool show) +bool wxRadioBox::Show(int n, bool show) { // This method isn't complete, and we try do do our best... // It's main purpose isn't for allowing Show/Unshow dynamically, @@ -307,8 +305,8 @@ void wxRadioBox::Show(int n, bool show) // In my case, this is a 'direction' box, and the Show(5,False) is // coupled with an Enable(5,False) // - if ((n < 0) || (n >= m_noItems)) - return; + if (!IsValid(n)) + return false; XtVaSetValues ((Widget) m_radioButtons[n], XmNindicatorOn, (unsigned char) show, @@ -320,6 +318,8 @@ void wxRadioBox::Show(int n, bool show) // after this call!! if (!show) wxRadioBox::SetString (n, " "); + + return true; } // For single selection items only @@ -354,16 +354,13 @@ void wxRadioBox::ChangeFont(bool keepOriginalSize) { wxWindow::ChangeFont(keepOriginalSize); - WXFontType fontType = - m_font.GetFontType(XtDisplay((Widget) GetTopWidget())); - int i; for (i = 0; i < m_noItems; i++) { WXWidget radioButton = m_radioButtons[i]; XtVaSetValues ((Widget) radioButton, - wxFont::GetFontTag(), fontType, + wxFont::GetFontTag(), m_font.GetFontTypeC(XtDisplay((Widget) GetTopWidget())), NULL); } }