X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8e08b761b0c5ecb6df295785b78f1f3637331887..3f4f90c2a0c1f274d1918b320132ed0ca2922fe5:/contrib/include/wx/fl/hintanimpl.h diff --git a/contrib/include/wx/fl/hintanimpl.h b/contrib/include/wx/fl/hintanimpl.h index 4d8d07a648..65a2d01b4c 100644 --- a/contrib/include/wx/fl/hintanimpl.h +++ b/contrib/include/wx/fl/hintanimpl.h @@ -1,12 +1,12 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo +// Name: hintanimpl.h +// Purpose: Header for cbHintAnimationPlugin class. // Author: Aleksandras Gluchovas // Modified by: // Created: 9/11/98 // RCS-ID: $Id$ // Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef __HINTANIMPL_G__ @@ -22,98 +22,120 @@ class cbHintAnimTimer; +/* +A plugin to draw animated hints when the user drags a pane. +*/ + class cbHintAnimationPlugin : public cbPluginBase { - DECLARE_DYNAMIC_CLASS( cbHintAnimationPlugin ) + DECLARE_DYNAMIC_CLASS( cbHintAnimationPlugin ) protected: - friend class cbHintAnimTimer; + friend class cbHintAnimTimer; - wxScreenDC* mpScrDc; // created while tracking hint-rect - cbHintAnimTimer* mpAnimTimer; + wxScreenDC* mpScrDc; // created while tracking hint-rect + cbHintAnimTimer* mpAnimTimer; - // FOR NOW:: try it without mutually exculisve locks - volatile wxRect mCurRect; + // FOR NOW:: try it without mutually exculisve locks + volatile wxRect mCurRect; - // state variables + // state variables - bool mAnimStarted; - bool mStopPending; + bool mAnimStarted; + bool mStopPending; - bool mPrevInClient; - bool mCurInClient; + bool mPrevInClient; + bool mCurInClient; - wxRect mPrevRect; + wxRect mPrevRect; public: - int mMorphDelay; // delay between frames in miliseconds, default: 20 - int mMaxFrames; // number of iterations for hint morphing, default: 30 - // (morph duration = mMorphDelay * mMaxFrames msec) + int mMorphDelay; // delay between frames in miliseconds, default: 20 + int mMaxFrames; // number of iterations for hint morphing, default: 30 + // (morph duration = mMorphDelay * mMaxFrames msec) - int mInClientHintBorder; // default: 4 pixels + int mInClientHintBorder; // default: 4 pixels - bool mAccelerationOn; // TRUE, if morph accelerates, otherwise morph - // speed is constant. Default: TRUE + bool mAccelerationOn; // TRUE, if morph accelerates, otherwise morph + // speed is constant. Default: TRUE - // TBD:: get/set methods for above members + // TBD:: get/set methods for above members protected: - void StartTracking(); - void DrawHintRect ( wxRect& rect, bool isInClientRect); - void EraseHintRect( wxRect& rect, bool isInClientRect); + // Internal function for starting tracking. + void StartTracking(); + + // Internal function for drawing a hint rectangle. + void DrawHintRect ( wxRect& rect, bool isInClientRect); - void FinishTracking(); + // Internal function for erasing a hint rectangle. + void EraseHintRect( wxRect& rect, bool isInClientRect); - void DoDrawHintRect( wxRect& rect, bool isInClientRect); + // Internal function for finishing tracking. + void FinishTracking(); - void RectToScr( wxRect& frameRect, wxRect& scrRect ); + // Internal function for drawing a hint rectangle. + void DoDrawHintRect( wxRect& rect, bool isInClientRect); + + // Internal function for translating coordinates. + void RectToScr( wxRect& frameRect, wxRect& scrRect ); public: - cbHintAnimationPlugin(void); + // Default constructor. + cbHintAnimationPlugin(); - ~cbHintAnimationPlugin(); + // Constructor, taking a layout panel and pane mask. + cbHintAnimationPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES ); - cbHintAnimationPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES ); + // Destructor. + ~cbHintAnimationPlugin(); - void OnDrawHintRect( cbDrawHintRectEvent& event ); + // Event handler respoding to hint draw events. + void OnDrawHintRect( cbDrawHintRectEvent& event ); - DECLARE_EVENT_TABLE() + DECLARE_EVENT_TABLE() }; -// helper classes +/* +A private helper class. +*/ struct MorphInfoT { - wxPoint mFrom; - wxPoint mTill; + wxPoint mFrom; + wxPoint mTill; }; +/* +A private helper class. +*/ + class cbHintAnimTimer : public wxTimer { protected: - friend class cbHintAnimationPlugin; + friend class cbHintAnimationPlugin; - wxRect mPrevMorphed; + wxRect mPrevMorphed; - MorphInfoT mUpperLeft; - MorphInfoT mLowerRight; - int mCurIter; + MorphInfoT mUpperLeft; + MorphInfoT mLowerRight; + int mCurIter; - long mLock; + long mLock; - cbHintAnimationPlugin* mpPl; + cbHintAnimationPlugin* mpPl; - void MorphPoint( wxPoint& origin, MorphInfoT& info, wxPoint& point ); + void MorphPoint( wxPoint& origin, MorphInfoT& info, wxPoint& point ); public: - cbHintAnimTimer(void); + cbHintAnimTimer(void); - virtual void Notify(void); + virtual void Notify(void); - virtual bool Init( cbHintAnimationPlugin* pAnimPl, bool reinit ); + virtual bool Init( cbHintAnimationPlugin* pAnimPl, bool reinit ); }; #endif /* __HINTANIMPL_G__ */