/////////////////////////////////////////////////////////////////////////////
-// 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__
#define __HINTANIMPL_G__
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "hintanimpl.h"
#endif
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__ */