1
#ifndef oxygenanimationconfigitem_h
2
#define oxygenanimationconfigitem_h
4
//////////////////////////////////////////////////////////////////////////////
5
// oxygenanimationconfigitem.h
6
// animation configuration item
9
// Copyright (c) 2010 Hugo Pereira Da Costa <hugo@oxygen-icons.org>
11
// Permission is hereby granted, free of charge, to any person obtaining a copy
12
// of this software and associated documentation files (the "Software"), to
13
// deal in the Software without restriction, including without limitation the
14
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
15
// sell copies of the Software, and to permit persons to whom the Software is
16
// furnished to do so, subject to the following conditions:
18
// The above copyright notice and this permission notice shall be included in
19
// all copies or substantial portions of the Software.
21
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
28
//////////////////////////////////////////////////////////////////////////////
30
#include <QtCore/QString>
31
#include <QtCore/QWeakPointer>
35
#include "ui_oxygenanimationconfigitem.h"
36
#include "ui_oxygenfollowmouseanimationconfigbox.h"
37
#include "ui_oxygengenericanimationconfigbox.h"
42
class GenericAnimationConfigBox: public QFrame
50
GenericAnimationConfigBox(QWidget* parent):
52
{ ui.setupUi( this ); }
55
QSpinBox* durationSpinBox( void ) const
56
{ return ui.durationSpinBox; }
60
Ui_GenericAnimationConfigBox ui;
64
class FollowMouseAnimationConfigBox: public QFrame
71
FollowMouseAnimationConfigBox(QWidget* parent):
75
ui.followMouseDurationSpinBox->setEnabled( false );
76
connect( ui.typeComboBox, SIGNAL( currentIndexChanged( int ) ), SLOT( typeChanged( int ) ) );
80
KComboBox* typeComboBox( void ) const
81
{ return ui.typeComboBox; }
84
QSpinBox* durationSpinBox( void ) const
85
{ return ui.durationSpinBox; }
88
QLabel* durationLabel( void ) const
89
{ return ui.durationLabel; }
91
//! follow mouse duration spinbox
92
QSpinBox* followMouseDurationSpinBox( void ) const
93
{ return ui.followMouseDurationSpinBox; }
98
void typeChanged( int value )
100
ui.followMouseDurationLabel->setEnabled( value == 1 );
101
ui.followMouseDurationSpinBox->setEnabled( value == 1 );
106
Ui_FollowMouseAnimationConfigBox ui;
110
class AnimationConfigItem: public QWidget
118
explicit AnimationConfigItem( QWidget* parent, const QString& title = QString(), const QString& description = QString() );
121
virtual void setTitle( const QString& value )
122
{ ui.enableCheckBox->setText( value ); }
125
virtual QString title( void ) const
126
{ return ui.enableCheckBox->text(); }
129
virtual void setDescription( const QString& value )
131
_description = value;
132
ui.descriptionButton->setEnabled( !_description.isEmpty() );
136
virtual const QString& description( void ) const
137
{ return _description; }
140
virtual void setEnabled( const bool& value )
141
{ ui.enableCheckBox->setChecked( value ); }
144
virtual bool enabled( void ) const
145
{ return ui.enableCheckBox->isChecked(); }
148
virtual QWidget* configurationWidget( void ) const = 0;
150
//! initialize config widget
151
virtual void initializeConfigurationWidget( QWidget* ) = 0;
153
//! configuration button
154
KPushButton* configurationButton( void ) const
155
{ return ui.configurationButton; }
159
//! emmited when changed
160
void changed( void );
165
virtual void about( void );
169
//! set configuration widget
170
virtual void setConfigurationWidget( QWidget* widget );
175
QString _description;
178
Ui_AnimationConfigItem ui;
182
//! generic animation config item
183
class GenericAnimationConfigItem: public AnimationConfigItem
191
explicit GenericAnimationConfigItem( QWidget* parent, const QString& title = QString(), const QString& description = QString() ):
192
AnimationConfigItem( parent, title, description )
196
virtual void initializeConfigurationWidget( QWidget* );
198
//! configuration widget
199
virtual QWidget* configurationWidget( void ) const
201
assert( _configurationWidget );
202
return _configurationWidget.data();
206
virtual int duration( void ) const
207
{ return (_configurationWidget) ? _configurationWidget.data()->durationSpinBox()->value():0; }
212
virtual void setDuration( int value )
214
if( _configurationWidget )
215
{ _configurationWidget.data()->durationSpinBox()->setValue( value ); }
220
//! configuration widget
221
QWeakPointer<GenericAnimationConfigBox> _configurationWidget;
225
//! generic animation config item
226
class FollowMouseAnimationConfigItem: public AnimationConfigItem
234
explicit FollowMouseAnimationConfigItem( QWidget* parent, const QString& title = QString(), const QString& description = QString() ):
235
AnimationConfigItem( parent, title, description )
238
//! initialize configuration widget
239
virtual void initializeConfigurationWidget( QWidget* );
241
//! configuration widget
242
virtual QWidget* configurationWidget( void ) const
244
assert( _configurationWidget );
245
return _configurationWidget.data();
249
virtual int type( void ) const
250
{ return (_configurationWidget) ? _configurationWidget.data()->typeComboBox()->currentIndex():0; }
253
virtual int duration( void ) const
254
{ return (_configurationWidget) ? _configurationWidget.data()->durationSpinBox()->value():0; }
257
virtual int followMouseDuration( void ) const
258
{ return (_configurationWidget) ? _configurationWidget.data()->followMouseDurationSpinBox()->value():0; }
260
//! hide duration spinbox
261
virtual void hideDurationSpinBox( void )
263
if( _configurationWidget )
265
_configurationWidget.data()->durationLabel()->hide();
266
_configurationWidget.data()->durationSpinBox()->hide();
273
virtual void setType( int value )
275
if( _configurationWidget )
276
{ _configurationWidget.data()->typeComboBox()->setCurrentIndex( value ); }
280
virtual void setDuration( int value )
282
if( _configurationWidget )
283
{ _configurationWidget.data()->durationSpinBox()->setValue( value ); }
286
//! follow mouse duration
287
virtual void setFollowMouseDuration( int value )
289
if( _configurationWidget )
290
{ _configurationWidget.data()->followMouseDurationSpinBox()->setValue( value ); }
295
//! configuration widget
296
QWeakPointer<FollowMouseAnimationConfigBox> _configurationWidget;