X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3bdb8629f8031d59c3920978ef2133ea1c6e3532..b0802e642190c07d819d1c01bd7c315453d091d0:/src/motif/radiobox.cpp diff --git a/src/motif/radiobox.cpp b/src/motif/radiobox.cpp index d4bb7555f8..55234658d2 100644 --- a/src/motif/radiobox.cpp +++ b/src/motif/radiobox.cpp @@ -13,6 +13,9 @@ #pragma implementation "radiobox.h" #endif +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + #ifdef __VMS #define XtDisplay XTDISPLAY #endif @@ -21,6 +24,7 @@ #include "wx/radiobox.h" #include "wx/utils.h" +#include "wx/arrstr.h" #ifdef __VMS__ #pragma message disable nosimpint @@ -80,7 +84,7 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, WXFontType fontType = m_font.GetFontType(XtDisplay(parentWidget)); - if (label1 != "") + if (!label1.empty()) { wxXmString text(label1); m_labelWidget = (WXWidget) @@ -90,7 +94,7 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, : xmLabelGadgetClass, (Widget)m_mainWidget, #else - xmLabelWidgetClass, + xmLabelWidgetClass, (Widget)m_mainWidget, #endif wxFont::GetFontTag(), fontType, @@ -103,7 +107,7 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, #else XmNchildType, XmFRAME_TITLE_CHILD, #endif - XmNchildVerticalAlignment, + XmNchildVerticalAlignment, XmALIGNMENT_CENTER, NULL); } @@ -115,8 +119,10 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, XtSetArg (args[0], XmNorientation, ((style & wxHORIZONTAL) == wxHORIZONTAL ? XmHORIZONTAL : XmVERTICAL)); XtSetArg (args[1], XmNnumColumns, m_majorDim); + XtSetArg (args[2], XmNadjustLast, False); - Widget radioBoxWidget = XmCreateRadioBox ((Widget)m_mainWidget, "radioBoxWidget", args, 2); + Widget radioBoxWidget = + XmCreateRadioBox ((Widget)m_mainWidget, "radioBoxWidget", args, 3); m_radioButtons.reserve(n); m_radioButtonLabels.reserve(n); @@ -140,10 +146,10 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, (XtPointer) this); } - ChangeFont(FALSE); + ChangeFont(false); SetSelection (0); - + XtRealizeWidget((Widget)m_mainWidget); XtManageChild (radioBoxWidget); XtManageChild ((Widget)m_mainWidget); @@ -152,9 +158,19 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, ChangeBackgroundColour(); - return TRUE; + return true; } +bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, + const wxPoint& pos, const wxSize& size, + const wxArrayString& choices, + int majorDim, long style, + const wxValidator& val, const wxString& name) +{ + wxCArrayString chs(choices); + return Create(parent, id, title, pos, size, chs.GetCount(), + chs.GetStrings(), majorDim, style, val, name); +} wxRadioBox::~wxRadioBox() { @@ -166,11 +182,11 @@ 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]; - if (label != "") + if (!label.empty()) { wxString label1(wxStripMenuCodes(label)); wxXmString text( label1 ); @@ -188,26 +204,26 @@ 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; - m_inSetValue = TRUE; + m_inSetValue = true; - XmToggleButtonSetState ((Widget) m_radioButtons[n], TRUE, FALSE); + XmToggleButtonSetState ((Widget) m_radioButtons[n], True, False); int i; for (i = 0; i < m_noItems; i++) if (i != n) - XmToggleButtonSetState ((Widget) m_radioButtons[i], FALSE, FALSE); + XmToggleButtonSetState ((Widget) m_radioButtons[i], False, False); - m_inSetValue = FALSE; + m_inSetValue = false; } // Get single selection, for single choice list items @@ -219,7 +235,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]; } @@ -237,7 +253,7 @@ void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) if (x > -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) XtVaSetValues ((Widget) m_mainWidget, XmNx, xx, NULL); if (y > -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - XtVaSetValues ((Widget) m_mainWidget, XmNy, yy, NULL); + XtVaSetValues ((Widget) m_mainWidget, XmNy, yy, NULL); if (width > 0) XtVaSetValues ((Widget) m_mainWidget, XmNwidth, width, NULL); @@ -249,25 +265,26 @@ void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) } // Enable a specific button -void wxRadioBox::Enable(int n, bool enable) +bool wxRadioBox::Enable(int n, bool enable) { - if ((n < 0) || (n >= m_noItems)) - return; + if (!IsValid(n)) + return false; XtSetSensitive ((Widget) m_radioButtons[n], (Boolean) enable); + return true; } // Enable all controls bool wxRadioBox::Enable(bool enable) { if ( !wxControl::Enable(enable) ) - return FALSE; + return false; int i; for (i = 0; i < m_noItems; i++) XtSetSensitive ((Widget) m_radioButtons[i], (Boolean) enable); - return TRUE; + return true; } bool wxRadioBox::Show(bool show) @@ -277,21 +294,21 @@ 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, // but rather to provide a way to design wxRadioBox such: // - // o Val1 o Val2 o Val3 - // o Val4 o Val6 - // o Val7 o Val8 o Val9 + // o Val1 o Val2 o Val3 + // o Val4 o Val6 + // o Val7 o Val8 o Val9 // // 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, @@ -303,6 +320,8 @@ void wxRadioBox::Show(int n, bool show) // after this call!! if (!show) wxRadioBox::SetString (n, " "); + + return true; } // For single selection items only @@ -312,7 +331,7 @@ wxString wxRadioBox::GetStringSelection () const if (sel > -1) return this->GetString (sel); else - return wxString(""); + return wxEmptyString; } bool wxRadioBox::SetStringSelection (const wxString& s) @@ -321,15 +340,15 @@ bool wxRadioBox::SetStringSelection (const wxString& s) if (sel > -1) { SetSelection (sel); - return TRUE; + return true; } else - return FALSE; + return false; } void wxRadioBox::Command (wxCommandEvent & event) { - SetSelection (event.m_commandInt); + SetSelection (event.GetInt()); ProcessCommand (event); } @@ -362,7 +381,7 @@ void wxRadioBox::ChangeBackgroundColour() { WXWidget radioButton = m_radioButtons[i]; - wxDoChangeBackgroundColour(radioButton, m_backgroundColour, TRUE); + wxDoChangeBackgroundColour(radioButton, m_backgroundColour, true); XtVaSetValues ((Widget) radioButton, XmNselectColor, selectPixel,