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:
parent
f15fa3a93f
commit
c228fcb438
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
Loading…
Reference in New Issue
Block a user