]> git.saurik.com Git - wxWidgets.git/commitdiff
Fix wxMotif checkbox for Motif 1.2. (need to backport)
authorMattia Barbon <mbarbon@cpan.org>
Wed, 28 Sep 2005 21:08:47 +0000 (21:08 +0000)
committerMattia Barbon <mbarbon@cpan.org>
Wed, 28 Sep 2005 21:08:47 +0000 (21:08 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35753 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/motif/checkbox.cpp

index 0fca4f3ebdb0f9897512c7c87f749281d34c944d..9b35bfe8504c69ce33b15dad6b936f479aa1d517 100644 (file)
 #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
 
 
@@ -74,7 +73,9 @@ bool wxCheckBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
         XmNrecomputeSize, False,
         // XmNindicatorOn, XmINDICATOR_CHECK_BOX,
         // XmNfillOnSelect, False,
+#if wxHAS_3STATE
         XmNtoggleMode, Is3State() ? XmTOGGLE_INDETERMINATE : XmTOGGLE_BOOLEAN,
+#endif
         NULL);
     
     XtAddCallback( (Widget)m_mainWidget,
@@ -165,6 +166,7 @@ void wxCheckBox::DoSet3StateValue(wxCheckBoxState state)
 {
     m_inSetValue = true;
 
+#if wxHAS_3STATE
     unsigned char value;
 
     switch (state)
@@ -178,12 +180,17 @@ void wxCheckBox::DoSet3StateValue(wxCheckBoxState state)
     XtVaSetValues( (Widget) m_mainWidget,
                    XmNset, value,
                    NULL );
+#else
+    XmToggleButtonSetState ((Widget) m_mainWidget,
+                            (Boolean) state == wxCHK_CHECKED, True);
+#endif
 
     m_inSetValue = false;
 }
 
 wxCheckBoxState wxCheckBox::DoGet3StateValue() const
 {
+#if wxHAS_3STATE
     unsigned char value = 0;
 
     XtVaGetValues( (Widget) m_mainWidget,
@@ -199,6 +206,9 @@ wxCheckBoxState wxCheckBox::DoGet3StateValue() const
 
     // impossible...
     return wxCHK_UNDETERMINED;
+#else
+    return wxCheckBoxState(XmToggleButtonGetState ((Widget) m_mainWidget));
+#endif
 }
 
 ///////////////////////////////////////////////////////////////////////////////