X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/31528cd3cac75558beef4bce0ba21fd182a808ab..759f72726133ce3bdbe1c3a2f444aa816c7f46c9:/src/motif/gauge.cpp diff --git a/src/motif/gauge.cpp b/src/motif/gauge.cpp index 996845f3d0..8c0dda0668 100644 --- a/src/motif/gauge.cpp +++ b/src/motif/gauge.cpp @@ -9,18 +9,39 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "gauge.h" #endif -#include "wx/gauge.h" +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" +#ifdef __VMS +#include +#undef XtDisplay +#undef XtScreen +#undef XtWindow +#undef XtIsRealized +#undef XtParent +#endif + +# include "wx/gauge.h" + +#ifdef __VMS__ +#pragma message disable nosimpint +#endif #include -#include +#ifdef __WXMOTIF20__ +#include +#endif // __WXMOTIF20__ +#ifdef __VMS__ +#pragma message enable nosimpint +#endif +#include "wx/motif/private.h" -#if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxGauge, wxControl) -#endif + +#if !wxCHECK_MOTIF_VERSION( 2, 0 ) || wxCHECK_LESSTIF() // XmGauge copyright notice: @@ -71,7 +92,7 @@ XmGaugeSetValue(Widget w, int value); int XmGaugeGetValue(Widget w); - +#endif // !wxCHECK_MOTIF_VERSION( 2, 0 ) || wxCHECK_LESSTIF() bool wxGauge::Create(wxWindow *parent, wxWindowID id, int range, @@ -81,25 +102,14 @@ bool wxGauge::Create(wxWindow *parent, wxWindowID id, const wxValidator& validator, const wxString& name) { - SetName(name); - SetValidator(validator); - m_rangeMax = range; - m_windowStyle = style; - m_backgroundColour = parent->GetBackgroundColour(); - m_foregroundColour = parent->GetForegroundColour(); - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; + if( !CreateControl( parent, id, pos, size, style, validator, name ) ) + return false; Widget parentWidget = (Widget) parent->GetClientWidget(); - Arg args[4]; + Arg args[7]; int count = 4; - if (style & wxHORIZONTAL) + if (style & wxGA_HORIZONTAL) { XtSetArg (args[0], XmNorientation, XmHORIZONTAL); XtSetArg (args[1], XmNprocessingDirection, XmMAX_ON_RIGHT); @@ -111,27 +121,43 @@ bool wxGauge::Create(wxWindow *parent, wxWindowID id, } XtSetArg(args[2], XmNminimum, 0); XtSetArg(args[3], XmNmaximum, range); - Widget gaugeWidget = XtCreateManagedWidget("gauge", xmGaugeWidgetClass, parentWidget, args, count); +#if wxCHECK_MOTIF_VERSION( 2, 0 ) && !wxCHECK_LESSTIF() + XtSetArg(args[4], XmNeditable, False); ++count; + XtSetArg(args[5], XmNslidingMode, XmTHERMOMETER); ++count; + // XtSetArg(args[6], XmNsliderVisual, XmFOREGROUND_COLOR ); ++count; + Widget gaugeWidget = + XtCreateManagedWidget("gauge", xmScaleWidgetClass, + parentWidget, args, count); +#else + Widget gaugeWidget = + XtCreateManagedWidget("gauge", xmGaugeWidgetClass, + parentWidget, args, count); +#endif m_mainWidget = (WXWidget) gaugeWidget ; XtManageChild (gaugeWidget); int x = pos.x; int y = pos.y; - int width = size.x; int height = size.y; - if (width == -1) - width = 150; - if (height == -1) - height = 80; + wxSize best = GetBestSize(); + if( size.x != -1 ) best.x = size.x; + if( size.y != -1 ) best.y = size.y; - m_font = parent->GetFont(); - ChangeFont(FALSE); + ChangeFont(false); - SetCanAddEventHandler(TRUE); - AttachWidget (parent, m_mainWidget, (WXWidget) NULL, x, y, width, height); + AttachWidget (parent, m_mainWidget, (WXWidget) NULL, x, y, + best.x, best.y); ChangeBackgroundColour(); - return TRUE; + return true; +} + +wxSize wxGauge::DoGetBestSize() const +{ + if( HasFlag(wxGA_HORIZONTAL) ) + return wxSize( 100, 18 ); + else + return wxSize( 18, 100 ); } void wxGauge::SetShadowWidth(int w) @@ -141,19 +167,13 @@ void wxGauge::SetShadowWidth(int w) XtVaSetValues((Widget) m_mainWidget, XmNshadowThickness, w, NULL); } -void wxGauge::SetBezelFace(int w) -{ -} - void wxGauge::SetRange(int r) { - m_rangeMax = r; XtVaSetValues((Widget) m_mainWidget, XmNmaximum, r, NULL); } void wxGauge::SetValue(int pos) { - m_gaugePos = pos; XtVaSetValues((Widget) m_mainWidget, XmNvalue, pos, NULL); } @@ -164,17 +184,11 @@ int wxGauge::GetShadowWidth() const return (int)w; } -int wxGauge::GetBezelFace() const -{ - return 0; -} - int wxGauge::GetRange() const { int r; XtVaGetValues((Widget) m_mainWidget, XmNmaximum, &r, NULL); return (int)r; - // return m_rangeMax; } int wxGauge::GetValue() const @@ -182,23 +196,19 @@ int wxGauge::GetValue() const int pos; XtVaGetValues((Widget) m_mainWidget, XmNvalue, &pos, NULL); return pos; - // return m_gaugePos; } -void wxGauge::ChangeFont(bool keepOriginalSize) +void wxGauge::DoMoveWindow(int x, int y, int width, int height) { - wxWindow::ChangeFont(keepOriginalSize); + wxGaugeBase::DoMoveWindow( x, y, width, height ); +#ifdef __WXMOTIF20__ + XtVaSetValues( (Widget)m_mainWidget, + XmNscaleHeight, height, + NULL ); +#endif } -void wxGauge::ChangeBackgroundColour() -{ - wxWindow::ChangeBackgroundColour(); -} - -void wxGauge::ChangeForegroundColour() -{ - wxWindow::ChangeForegroundColour(); -} +#if !wxCHECK_MOTIF_VERSION( 2, 0 ) || wxCHECK_LESSTIF() //// PRIVATE DECLARATIONS FOR XMGAUGE @@ -436,7 +446,7 @@ DrawSlider(XmGaugeWidget gw, Boolean clear) #endif static void -Initialize(Widget req, Widget new_w, ArgList args, Cardinal *num_args ) +Initialize(Widget WXUNUSED(req), Widget new_w, ArgList WXUNUSED(args), Cardinal *WXUNUSED(num_args )) { XmGaugeWidget gw = (XmGaugeWidget)new_w; #define THIS gw->gauge @@ -466,10 +476,10 @@ Destroy(Widget w) static Boolean SetValues( Widget cw, - Widget rw, + Widget WXUNUSED(rw), Widget nw, - ArgList args, - Cardinal *num_args ) + ArgList WXUNUSED(args), + Cardinal *WXUNUSED(num_args) ) { XmGaugeWidget cgw = (XmGaugeWidget)cw; XmGaugeWidget ngw = (XmGaugeWidget)nw; @@ -493,7 +503,7 @@ SetValues( static void -ExposeProc(Widget w, XEvent *event, Region r) +ExposeProc(Widget w, XEvent *WXUNUSED(event), Region WXUNUSED(r)) { XmGaugeWidget gw = (XmGaugeWidget)w; #define THIS gw->gauge @@ -550,7 +560,7 @@ XmGaugeClassRec xmGaugeClassRec = { sizeof(XmGaugeRec), /* widget_size */ NULL, /* class_initialize */ NULL, /* class_part_initialize */ - FALSE, /* class_inited */ + False, /* class_inited */ Initialize, /* initialize */ NULL, /* initialize_hook */ XtInheritRealize, /* realize */ @@ -559,10 +569,10 @@ XmGaugeClassRec xmGaugeClassRec = { resources, /* resources */ XtNumber(resources), /* num_resources */ NULLQUARK, /* xrm_class */ - TRUE, /* compress_motion */ - TRUE, /* compress_exposure */ - TRUE, /* compress_enterleave */ - FALSE, /* visible_interest */ + True, /* compress_motion */ + True, /* compress_exposure */ + True, /* compress_enterleave */ + False, /* visible_interest */ Destroy, /* destroy */ NULL, /* resize */ ExposeProc, /* expose */ @@ -599,9 +609,9 @@ WidgetClass xmGaugeWidgetClass = (WidgetClass)&xmGaugeClassRec; void -GaugePick(Widget w, XEvent *e, String *args, Cardinal *num_args) +GaugePick(Widget WXUNUSED(w), XEvent *WXUNUSED(e), String *WXUNUSED(args), Cardinal *WXUNUSED(num_args)) { - /* Commented out for a read-only gauge in wxWindows */ + /* Commented out for a read-only gauge in wxWidgets */ #if 0 XmGaugeWidget gw = (XmGaugeWidget)w; #define THIS gw->gauge @@ -665,9 +675,9 @@ GaugePick(Widget w, XEvent *e, String *args, Cardinal *num_args) #define round(x) ( (x) > 0 ? ((x) + 0.5) : -(-(x) + 0.5) ) void -GaugeDrag(Widget w, XEvent *e, String *args, Cardinal *num_args) +GaugeDrag(Widget WXUNUSED(w), XEvent *WXUNUSED(e), String *WXUNUSED(args), Cardinal *WXUNUSED(num_args)) { - /* Commented out for a read-only gauge in wxWindows */ + /* Commented out for a read-only gauge in wxWidgets */ #if 0 XmGaugeWidget gw = (XmGaugeWidget)w; #define THIS gw->gauge @@ -734,9 +744,9 @@ GaugeDrag(Widget w, XEvent *e, String *args, Cardinal *num_args) void -GaugeDrop(Widget w, XEvent *e, String *args, Cardinal *num_args) +GaugeDrop(Widget WXUNUSED(w), XEvent *WXUNUSED(e), String *WXUNUSED(args), Cardinal *WXUNUSED(num_args)) { - /* Commented out for a read-only gauge in wxWindows */ + /* Commented out for a read-only gauge in wxWidgets */ #if 0 XmGaugeWidget gw = (XmGaugeWidget)w; #define THIS gw->gauge @@ -771,3 +781,5 @@ XmGaugeGetValue(Widget w) return gw->gauge.value; } + +#endif // !wxCHECK_MOTIF_VERSION( 2, 0 ) || wxCHECK_LESSTIF()