X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/96be256b3e1802de10f45953c41ed33bce399b54..926ce9e3ac32e1a33cc43420f76876fac8868436:/src/motif/checkbox.cpp diff --git a/src/motif/checkbox.cpp b/src/motif/checkbox.cpp index c2a317b645..9a274cc63a 100644 --- a/src/motif/checkbox.cpp +++ b/src/motif/checkbox.cpp @@ -9,10 +9,6 @@ // 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" @@ -37,14 +33,13 @@ #pragma message enable nosimpint #endif +#include "wx/motif/private.h" + // define symbols that are missing in old versions of Motif. -#if (XmVersion < 2000) -#define XmNtoggleMode 0 -#define XmTOGGLE_INDETERMINATE 1 -#define XmTOGGLE_BOOLEAN 2 -#define XmUNSET 3 -#define XmSET 4 -#define XmINDETERMINATE 5 +#if wxCHECK_MOTIF_VERSION( 2, 0 ) + #define wxHAS_3STATE 1 +#else + #define wxHAS_3STATE 0 #endif @@ -73,12 +68,14 @@ 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, @@ -169,6 +166,7 @@ void wxCheckBox::DoSet3StateValue(wxCheckBoxState state) { m_inSetValue = true; +#if wxHAS_3STATE unsigned char value; switch (state) @@ -182,12 +180,17 @@ void wxCheckBox::DoSet3StateValue(wxCheckBoxState state) 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, @@ -203,6 +206,9 @@ wxCheckBoxState wxCheckBox::DoGet3StateValue() const // impossible... return wxCHK_UNDETERMINED; +#else + return wxCheckBoxState(XmToggleButtonGetState ((Widget) m_mainWidget)); +#endif } ///////////////////////////////////////////////////////////////////////////////