X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/799ea01170e831c212320b0cb3038a91785e4789..77c8efc8c37da6d6a5e2e8022d21d1cd7d76371d:/src/common/gaugecmn.cpp diff --git a/src/common/gaugecmn.cpp b/src/common/gaugecmn.cpp index eeee356908..52b5e49c13 100644 --- a/src/common/gaugecmn.cpp +++ b/src/common/gaugecmn.cpp @@ -6,7 +6,7 @@ // Created: 20.02.01 // RCS-ID: $Id$ // Copyright: (c) 2001 Vadim Zeitlin -// License: wxWindows license +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -17,10 +17,6 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ - #pragma implementation "gaugebase.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -31,9 +27,11 @@ #ifndef WX_PRECOMP #endif //WX_PRECOMP +#if wxUSE_GAUGE + #include "wx/gauge.h" -#if wxUSE_GAUGE +const char wxGaugeNameStr[] = "gauge"; // ============================================================================ // implementation @@ -44,6 +42,69 @@ wxGaugeBase::~wxGaugeBase() // this destructor is required for Darwin } +// ---------------------------------------------------------------------------- +// XTI +// ---------------------------------------------------------------------------- + +wxDEFINE_FLAGS( wxGaugeStyle ) +wxBEGIN_FLAGS( wxGaugeStyle ) +// new style border flags, we put them first to +// use them for streaming out +wxFLAGS_MEMBER(wxBORDER_SIMPLE) +wxFLAGS_MEMBER(wxBORDER_SUNKEN) +wxFLAGS_MEMBER(wxBORDER_DOUBLE) +wxFLAGS_MEMBER(wxBORDER_RAISED) +wxFLAGS_MEMBER(wxBORDER_STATIC) +wxFLAGS_MEMBER(wxBORDER_NONE) + +// old style border flags +wxFLAGS_MEMBER(wxSIMPLE_BORDER) +wxFLAGS_MEMBER(wxSUNKEN_BORDER) +wxFLAGS_MEMBER(wxDOUBLE_BORDER) +wxFLAGS_MEMBER(wxRAISED_BORDER) +wxFLAGS_MEMBER(wxSTATIC_BORDER) +wxFLAGS_MEMBER(wxBORDER) + +// standard window styles +wxFLAGS_MEMBER(wxTAB_TRAVERSAL) +wxFLAGS_MEMBER(wxCLIP_CHILDREN) +wxFLAGS_MEMBER(wxTRANSPARENT_WINDOW) +wxFLAGS_MEMBER(wxWANTS_CHARS) +wxFLAGS_MEMBER(wxFULL_REPAINT_ON_RESIZE) +wxFLAGS_MEMBER(wxALWAYS_SHOW_SB ) +wxFLAGS_MEMBER(wxVSCROLL) +wxFLAGS_MEMBER(wxHSCROLL) + +wxFLAGS_MEMBER(wxGA_HORIZONTAL) +wxFLAGS_MEMBER(wxGA_VERTICAL) +#if WXWIN_COMPATIBILITY_2_6 +wxFLAGS_MEMBER(wxGA_PROGRESSBAR) +#endif // WXWIN_COMPATIBILITY_2_6 +wxFLAGS_MEMBER(wxGA_SMOOTH) +wxEND_FLAGS( wxGaugeStyle ) + +wxIMPLEMENT_DYNAMIC_CLASS_XTI(wxGauge, wxControl, "wx/gauge.h") + +wxBEGIN_PROPERTIES_TABLE(wxGauge) +wxPROPERTY( Value, int, SetValue, GetValue, 0, 0 /*flags*/, \ + wxT("Helpstring"), wxT("group")) +wxPROPERTY( Range, int, SetRange, GetRange, 0, 0 /*flags*/, \ + wxT("Helpstring"), wxT("group")) +wxPROPERTY( ShadowWidth, int, SetShadowWidth, GetShadowWidth, \ + 0, 0 /*flags*/, wxT("Helpstring"), wxT("group")) +wxPROPERTY( BezelFace, int, SetBezelFace, GetBezelFace, \ + 0, 0 /*flags*/, wxT("Helpstring"), wxT("group")) + +wxPROPERTY_FLAGS( WindowStyle, wxGaugeStyle, long, SetWindowStyleFlag, \ + GetWindowStyleFlag, wxEMPTY_PARAMETER_VALUE, 0 /*flags*/, \ + wxT("Helpstring"), wxT("group")) // style +wxEND_PROPERTIES_TABLE() + +wxEMPTY_HANDLERS_TABLE(wxGauge) + +wxCONSTRUCTOR_6( wxGauge, wxWindow*, Parent, wxWindowID, Id, int, Range, \ + wxPoint, Position, wxSize, Size, long, WindowStyle ) + // ---------------------------------------------------------------------------- // wxGauge creation // ---------------------------------------------------------------------------- @@ -58,7 +119,7 @@ bool wxGaugeBase::Create(wxWindow *parent, const wxString& name) { if ( !wxControl::Create(parent, id, pos, size, style, validator, name) ) - return FALSE; + return false; SetName(name); @@ -68,12 +129,15 @@ bool wxGaugeBase::Create(wxWindow *parent, SetRange(range); SetValue(0); +#if wxGAUGE_EMULATE_INDETERMINATE_MODE + m_nDirection = wxRIGHT; +#endif - return TRUE; + return true; } // ---------------------------------------------------------------------------- -// wxGauge range/position +// wxGauge determinate mode range/position // ---------------------------------------------------------------------------- void wxGaugeBase::SetRange(int range) @@ -96,6 +160,39 @@ int wxGaugeBase::GetValue() const return m_gaugePos; } +// ---------------------------------------------------------------------------- +// wxGauge indeterminate mode +// ---------------------------------------------------------------------------- + +void wxGaugeBase::Pulse() +{ +#if wxGAUGE_EMULATE_INDETERMINATE_MODE + // simulate indeterminate mode + int curr = GetValue(), max = GetRange(); + + if (m_nDirection == wxRIGHT) + { + if (curr < max) + SetValue(curr + 1); + else + { + SetValue(max - 1); + m_nDirection = wxLEFT; + } + } + else + { + if (curr > 0) + SetValue(curr - 1); + else + { + SetValue(1); + m_nDirection = wxRIGHT; + } + } +#endif +} + // ---------------------------------------------------------------------------- // wxGauge appearance params // ----------------------------------------------------------------------------