|
Packit |
8e9c33 |
#ifndef adwaitaheaderview_data_h
|
|
Packit |
8e9c33 |
#define adwaitaheaderview_data_h
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
/*************************************************************************
|
|
Packit |
8e9c33 |
* Copyright (C) 2014 by Hugo Pereira Da Costa <hugo.pereira@free.fr> *
|
|
Packit |
8e9c33 |
* *
|
|
Packit |
8e9c33 |
* This program is free software; you can redistribute it and/or modify *
|
|
Packit |
8e9c33 |
* it under the terms of the GNU General Public License as published by *
|
|
Packit |
8e9c33 |
* the Free Software Foundation; either version 2 of the License, or *
|
|
Packit |
8e9c33 |
* (at your option) any later version. *
|
|
Packit |
8e9c33 |
* *
|
|
Packit |
8e9c33 |
* This program is distributed in the hope that it will be useful, *
|
|
Packit |
8e9c33 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
Packit |
8e9c33 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
Packit |
8e9c33 |
* GNU General Public License for more details. *
|
|
Packit |
8e9c33 |
* *
|
|
Packit |
8e9c33 |
* You should have received a copy of the GNU General Public License *
|
|
Packit |
8e9c33 |
* along with this program; if not, write to the *
|
|
Packit |
8e9c33 |
* Free Software Foundation, Inc., *
|
|
Packit |
8e9c33 |
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . *
|
|
Packit |
8e9c33 |
*************************************************************************/
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
#include "adwaitaanimationdata.h"
|
|
Packit |
8e9c33 |
#include <QHeaderView>
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
namespace Adwaita
|
|
Packit |
8e9c33 |
{
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* headerviews
|
|
Packit |
8e9c33 |
class HeaderViewData: public AnimationData
|
|
Packit |
8e9c33 |
{
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
Q_OBJECT
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* declare opacity property
|
|
Packit |
8e9c33 |
Q_PROPERTY( qreal currentOpacity READ currentOpacity WRITE setCurrentOpacity )
|
|
Packit |
8e9c33 |
Q_PROPERTY( qreal previousOpacity READ previousOpacity WRITE setPreviousOpacity )
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
public:
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* constructor
|
|
Packit |
8e9c33 |
HeaderViewData( QObject* parent, QWidget* target, int duration );
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* destructor
|
|
Packit |
8e9c33 |
virtual ~HeaderViewData( void )
|
|
Packit |
8e9c33 |
{}
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* duration
|
|
Packit |
8e9c33 |
void setDuration( int duration )
|
|
Packit |
8e9c33 |
{
|
|
Packit |
8e9c33 |
currentIndexAnimation().data()->setDuration( duration );
|
|
Packit |
8e9c33 |
previousIndexAnimation().data()->setDuration( duration );
|
|
Packit |
8e9c33 |
}
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* update state
|
|
Packit |
8e9c33 |
bool updateState( const QPoint&, bool );
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//*@name current index handling
|
|
Packit |
8e9c33 |
//@{
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* current opacity
|
|
Packit |
8e9c33 |
virtual qreal currentOpacity( void ) const
|
|
Packit |
8e9c33 |
{ return _current._opacity; }
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* current opacity
|
|
Packit |
8e9c33 |
virtual void setCurrentOpacity( qreal value )
|
|
Packit |
8e9c33 |
{
|
|
Packit |
8e9c33 |
value = digitize( value );
|
|
Packit |
8e9c33 |
if( _current._opacity == value ) return;
|
|
Packit |
8e9c33 |
_current._opacity = value;
|
|
Packit |
8e9c33 |
setDirty();
|
|
Packit |
8e9c33 |
}
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* current index
|
|
Packit |
8e9c33 |
virtual int currentIndex( void ) const
|
|
Packit |
8e9c33 |
{ return _current._index; }
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* current index
|
|
Packit |
8e9c33 |
virtual void setCurrentIndex( int index )
|
|
Packit |
8e9c33 |
{ _current._index = index; }
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* current index animation
|
|
Packit |
8e9c33 |
virtual const Animation::Pointer& currentIndexAnimation( void ) const
|
|
Packit |
8e9c33 |
{ return _current._animation; }
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//@}
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//*@name previous index handling
|
|
Packit |
8e9c33 |
//@{
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* previous opacity
|
|
Packit |
8e9c33 |
virtual qreal previousOpacity( void ) const
|
|
Packit |
8e9c33 |
{ return _previous._opacity; }
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* previous opacity
|
|
Packit |
8e9c33 |
virtual void setPreviousOpacity( qreal value )
|
|
Packit |
8e9c33 |
{
|
|
Packit |
8e9c33 |
value = digitize( value );
|
|
Packit |
8e9c33 |
if( _previous._opacity == value ) return;
|
|
Packit |
8e9c33 |
_previous._opacity = value;
|
|
Packit |
8e9c33 |
setDirty();
|
|
Packit |
8e9c33 |
}
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* previous index
|
|
Packit |
8e9c33 |
virtual int previousIndex( void ) const
|
|
Packit |
8e9c33 |
{ return _previous._index; }
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* previous index
|
|
Packit |
8e9c33 |
virtual void setPreviousIndex( int index )
|
|
Packit |
8e9c33 |
{ _previous._index = index; }
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* previous index Animation
|
|
Packit |
8e9c33 |
virtual const Animation::Pointer& previousIndexAnimation( void ) const
|
|
Packit |
8e9c33 |
{ return _previous._animation; }
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//@}
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* return Animation associated to action at given position, if any
|
|
Packit |
8e9c33 |
virtual Animation::Pointer animation( const QPoint& position ) const;
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* return opacity associated to action at given position, if any
|
|
Packit |
8e9c33 |
virtual qreal opacity( const QPoint& position ) const;
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
protected:
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* dirty
|
|
Packit |
8e9c33 |
virtual void setDirty( void ) const;
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
private:
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* container for needed animation data
|
|
Packit |
8e9c33 |
class Data
|
|
Packit |
8e9c33 |
{
|
|
Packit |
8e9c33 |
public:
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* default constructor
|
|
Packit |
8e9c33 |
Data( void ):
|
|
Packit |
8e9c33 |
_opacity(0),
|
|
Packit |
8e9c33 |
_index(-1)
|
|
Packit |
8e9c33 |
{}
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
Animation::Pointer _animation;
|
|
Packit |
8e9c33 |
qreal _opacity;
|
|
Packit |
8e9c33 |
int _index;
|
|
Packit |
8e9c33 |
};
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* current tab animation data (for hover enter animations)
|
|
Packit |
8e9c33 |
Data _current;
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
//* previous tab animations data (for hover leave animations)
|
|
Packit |
8e9c33 |
Data _previous;
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
};
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
}
|
|
Packit |
8e9c33 |
|
|
Packit |
8e9c33 |
#endif
|