Logo Search packages:      
Sourcecode: wxwindows2.4 version File versions


// Name:        hintanimpl.h
// Purpose:     Header for cbHintAnimationPlugin class.
// Author:      Aleksandras Gluchovas
// Modified by:
// Created:     9/11/98
// RCS-ID:      $Id: hintanimpl.h,v 2005/06/20 17:33:26 MR Exp $
// Copyright:   (c) Aleksandras Gluchovas
// Licence:     wxWindows licence

#ifndef __HINTANIMPL_G__
#define __HINTANIMPL_G__

#include "wx/fl/controlbar.h"

#include "wx/timer.h"

class WXFL_DECLSPEC cbHintAnimTimer;

A plugin to draw animated hints when the user drags a pane.

class WXFL_DECLSPEC cbHintAnimationPlugin : public cbPluginBase
    DECLARE_DYNAMIC_CLASS( cbHintAnimationPlugin )
    friend class cbHintAnimTimer;

    wxScreenDC*      mpScrDc;     // created while tracking hint-rect
    cbHintAnimTimer* mpAnimTimer;

    // FOR NOW:: try it without mutually exculisve locks
    volatile wxRect  mCurRect;

    // state variables

    bool   mAnimStarted;
    bool   mStopPending;

    bool   mPrevInClient;
    bool   mCurInClient;

    wxRect mPrevRect;

    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

    bool   mAccelerationOn;     // TRUE, if morph accelerates, otherwise morph
                                // speed is constant. Default: TRUE

    // TBD:: get/set methods for above members


        // Internal function for starting tracking.
    void StartTracking();

        // Internal function for drawing a hint rectangle.
    void DrawHintRect ( wxRect& rect, bool isInClientRect);

        // Internal function for erasing a hint rectangle.
    void EraseHintRect( wxRect& rect, bool isInClientRect);

        // Internal function for finishing tracking.
    void FinishTracking();

        // Internal function for drawing a hint rectangle.
    void DoDrawHintRect( wxRect& rect, bool isInClientRect);

        // Internal function for translating coordinates.
    void RectToScr( wxRect& frameRect, wxRect& scrRect );

        // Default constructor.

        // Constructor, taking a layout panel and pane mask.
    cbHintAnimationPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES );

        // Destructor.

        // Event handler respoding to hint draw events.
    void OnDrawHintRect( cbDrawHintRectEvent& event );


A private helper class.

struct WXFL_DECLSPEC MorphInfoT
    wxPoint mFrom;
    wxPoint mTill;

A private helper class.

class WXFL_DECLSPEC cbHintAnimTimer : public wxTimer 

    friend class cbHintAnimationPlugin;

    wxRect      mPrevMorphed;

    MorphInfoT  mUpperLeft;
    MorphInfoT  mLowerRight;
    int         mCurIter;

    long        mLock;

    cbHintAnimationPlugin* mpPl;

    void MorphPoint( wxPoint& origin, MorphInfoT& info, wxPoint& point );



    virtual void Notify(void);

    virtual bool Init( cbHintAnimationPlugin* pAnimPl, bool reinit );

#endif /* __HINTANIMPL_G__ */

Generated by  Doxygen 1.6.0   Back to index