Fix wxMotif checkbox for Motif 1.2. (need to backport)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35753 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Mattia Barbon 2005-09-28 21:08:47 +00:00
parent f15fa3a93f
commit c228fcb438

View File

@ -33,14 +33,13 @@
#pragma message enable nosimpint #pragma message enable nosimpint
#endif #endif
#include "wx/motif/private.h"
// define symbols that are missing in old versions of Motif. // define symbols that are missing in old versions of Motif.
#if (XmVersion < 2000) #if wxCHECK_MOTIF_VERSION( 2, 0 )
#define XmNtoggleMode 0 #define wxHAS_3STATE 1
#define XmTOGGLE_INDETERMINATE 1 #else
#define XmTOGGLE_BOOLEAN 2 #define wxHAS_3STATE 0
#define XmUNSET 3
#define XmSET 4
#define XmINDETERMINATE 5
#endif #endif
@ -74,7 +73,9 @@ bool wxCheckBox::Create(wxWindow *parent, wxWindowID id, const wxString& label,
XmNrecomputeSize, False, XmNrecomputeSize, False,
// XmNindicatorOn, XmINDICATOR_CHECK_BOX, // XmNindicatorOn, XmINDICATOR_CHECK_BOX,
// XmNfillOnSelect, False, // XmNfillOnSelect, False,
#if wxHAS_3STATE
XmNtoggleMode, Is3State() ? XmTOGGLE_INDETERMINATE : XmTOGGLE_BOOLEAN, XmNtoggleMode, Is3State() ? XmTOGGLE_INDETERMINATE : XmTOGGLE_BOOLEAN,
#endif
NULL); NULL);
XtAddCallback( (Widget)m_mainWidget, XtAddCallback( (Widget)m_mainWidget,
@ -165,6 +166,7 @@ void wxCheckBox::DoSet3StateValue(wxCheckBoxState state)
{ {
m_inSetValue = true; m_inSetValue = true;
#if wxHAS_3STATE
unsigned char value; unsigned char value;
switch (state) switch (state)
@ -178,12 +180,17 @@ void wxCheckBox::DoSet3StateValue(wxCheckBoxState state)
XtVaSetValues( (Widget) m_mainWidget, XtVaSetValues( (Widget) m_mainWidget,
XmNset, value, XmNset, value,
NULL ); NULL );
#else
XmToggleButtonSetState ((Widget) m_mainWidget,
(Boolean) state == wxCHK_CHECKED, True);
#endif
m_inSetValue = false; m_inSetValue = false;
} }
wxCheckBoxState wxCheckBox::DoGet3StateValue() const wxCheckBoxState wxCheckBox::DoGet3StateValue() const
{ {
#if wxHAS_3STATE
unsigned char value = 0; unsigned char value = 0;
XtVaGetValues( (Widget) m_mainWidget, XtVaGetValues( (Widget) m_mainWidget,
@ -199,6 +206,9 @@ wxCheckBoxState wxCheckBox::DoGet3StateValue() const
// impossible... // impossible...
return wxCHK_UNDETERMINED; return wxCHK_UNDETERMINED;
#else
return wxCheckBoxState(XmToggleButtonGetState ((Widget) m_mainWidget));
#endif
} }
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////