X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/aab52ea550049163dc767d02dca5012285929f26..04bf2fb51514e3ec8631a1d8ea1f610fca851005:/src/motif/checkbox.cpp diff --git a/src/motif/checkbox.cpp b/src/motif/checkbox.cpp index 681d9482f0..9a274cc63a 100644 --- a/src/motif/checkbox.cpp +++ b/src/motif/checkbox.cpp @@ -9,13 +9,13 @@ // 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 +#endif + #include "wx/defs.h" #include "wx/checkbox.h" @@ -33,15 +33,13 @@ #pragma message enable nosimpint #endif +#include "wx/motif/private.h" + // define symbols that are missing in old versions of Motif. -#if defined(__VMS) || (XmVersion < 2000) -#define XtDisplay XTDISPLAY -#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 @@ -61,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 ); @@ -70,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) @@ -166,6 +166,7 @@ void wxCheckBox::DoSet3StateValue(wxCheckBoxState state) { m_inSetValue = true; +#if wxHAS_3STATE unsigned char value; switch (state) @@ -179,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, @@ -200,6 +206,9 @@ wxCheckBoxState wxCheckBox::DoGet3StateValue() const // impossible... return wxCHK_UNDETERMINED; +#else + return wxCheckBoxState(XmToggleButtonGetState ((Widget) m_mainWidget)); +#endif } ///////////////////////////////////////////////////////////////////////////////