X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dac5a9c997a9495fbad0e7663a67858ac6562413..926ce9e3ac32e1a33cc43420f76876fac8868436:/src/motif/checkbox.cpp diff --git a/src/motif/checkbox.cpp b/src/motif/checkbox.cpp index bac4609472..9a274cc63a 100644 --- a/src/motif/checkbox.cpp +++ b/src/motif/checkbox.cpp @@ -9,21 +9,11 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "checkbox.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" #ifdef __VMS #define XtDisplay XTDISPLAY -#define XmNtoggleMode 0 -#define XmTOGGLE_INDETERMINATE 1 -#define XmTOGGLE_BOOLEAN 2 -#define XmUNSET 3 -#define XmSET 4 -#define XmINDETERMINATE 5 #endif #include "wx/defs.h" @@ -43,6 +33,16 @@ #pragma message enable nosimpint #endif +#include "wx/motif/private.h" + +// define symbols that are missing in old versions of Motif. +#if wxCHECK_MOTIF_VERSION( 2, 0 ) + #define wxHAS_3STATE 1 +#else + #define wxHAS_3STATE 0 +#endif + + #include "wx/motif/private.h" void wxCheckBoxCallback (Widget w, XtPointer clientData, @@ -59,7 +59,7 @@ bool wxCheckBox::Create(wxWindow *parent, wxWindowID id, const wxString& label, { if( !wxControl::CreateControl( parent, id, pos, size, style, validator, name ) ) - return FALSE; + return false; wxString label1(wxStripMenuCodes(label)); wxXmString text( label1 ); @@ -68,25 +68,27 @@ bool wxCheckBox::Create(wxWindow *parent, wxWindowID id, const wxString& label, m_mainWidget = (WXWidget) XtVaCreateManagedWidget ("toggle", xmToggleButtonWidgetClass, parentWidget, - wxFont::GetFontTag(), m_font.GetFontType(XtDisplay(parentWidget)), + wxFont::GetFontTag(), m_font.GetFontTypeC(XtDisplay(parentWidget)), XmNlabelString, text(), XmNrecomputeSize, False, // XmNindicatorOn, XmINDICATOR_CHECK_BOX, // XmNfillOnSelect, False, +#if wxHAS_3STATE XmNtoggleMode, Is3State() ? XmTOGGLE_INDETERMINATE : XmTOGGLE_BOOLEAN, +#endif NULL); XtAddCallback( (Widget)m_mainWidget, XmNvalueChangedCallback, (XtCallbackProc)wxCheckBoxCallback, (XtPointer)this ); - XmToggleButtonSetState ((Widget) m_mainWidget, FALSE, TRUE); + XmToggleButtonSetState ((Widget) m_mainWidget, False, True); AttachWidget( parent, m_mainWidget, (WXWidget)NULL, pos.x, pos.y, size.x, size.y ); ChangeBackgroundColour(); - return TRUE; + return true; } void wxCheckBox::SetValue(bool val) @@ -164,6 +166,7 @@ void wxCheckBox::DoSet3StateValue(wxCheckBoxState state) { m_inSetValue = true; +#if wxHAS_3STATE unsigned char value; switch (state) @@ -171,17 +174,23 @@ void wxCheckBox::DoSet3StateValue(wxCheckBoxState state) case wxCHK_UNCHECKED: value = XmUNSET; break; case wxCHK_CHECKED: value = XmSET; break; case wxCHK_UNDETERMINED: value = XmINDETERMINATE; break; + default: wxASSERT(0); return; } XtVaSetValues( (Widget) m_mainWidget, XmNset, value, NULL ); +#else + XmToggleButtonSetState ((Widget) m_mainWidget, + state == wxCHK_CHECKED, True); +#endif m_inSetValue = false; } wxCheckBoxState wxCheckBox::DoGet3StateValue() const { +#if wxHAS_3STATE unsigned char value = 0; XtVaGetValues( (Widget) m_mainWidget, @@ -197,6 +206,9 @@ wxCheckBoxState wxCheckBox::DoGet3StateValue() const // impossible... return wxCHK_UNDETERMINED; +#else + return wxCheckBoxState(XmToggleButtonGetState ((Widget) m_mainWidget)); +#endif } ///////////////////////////////////////////////////////////////////////////////