/* This file is part of the KDE project
Copyright ( C ) 2001 , 2002 , 2003 , 2004 Laurent Montel < montel @ kde . org >
This library is free software ; you can redistribute it and / or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation ; either
version 2 of the License , or ( at your option ) any later version .
This library is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
Library General Public License for more details .
You should have received a copy of the GNU Library General Public License
along with this library ; see the file COPYING . LIB . If not , write to
the Free Software Foundation , Inc . , 51 Franklin Street , Fifth Floor ,
* Boston , MA 02110 - 1301 , USA .
*/
# include "kchartParameter3dConfigPage.h"
# include "kchartParameter3dConfigPage.moc"
# include <tdeapplication.h>
# include <kdialog.h>
# include <tdelocale.h>
# include <tqlayout.h>
# include <tqlabel.h>
# include <tqcheckbox.h>
# include <tqbuttongroup.h>
# include <tqwhatsthis.h>
# include "kchart_params.h"
namespace KChart
{
KChartParameter3dConfigPage : : KChartParameter3dConfigPage ( KChartParams * params ,
TQWidget * parent ) :
TQWidget ( parent ) , m_params ( params )
{
TQGridLayout * layout = new TQGridLayout ( this , 2 , 2 , KDialog : : marginHint ( ) , KDialog : : spacingHint ( ) ) ;
TQButtonGroup * gb = new TQButtonGroup ( 0 , Qt : : Vertical ,
i18n ( " 3D Parameters " ) , this ) ;
gb - > layout ( ) - > setSpacing ( KDialog : : spacingHint ( ) ) ;
gb - > layout ( ) - > setMargin ( KDialog : : marginHint ( ) ) ;
// The grid layout inside the buttongroup.
TQGridLayout * grid1 = new TQGridLayout ( gb - > layout ( ) , 5 , 3 ) ;
layout - > addWidget ( gb , 0 , 0 ) ;
// The main on/off checkbox.
bar3d = new TQCheckBox ( i18n ( " 3D bar " ) , gb ) ;
TQWhatsThis : : add ( bar3d , i18n ( " If checked, this will enable 3D mode for viewing the bars. You can then add a shadow and set the angle and depth for 3D. " ) ) ;
grid1 - > addWidget ( bar3d , 0 , 0 ) ;
connect ( bar3d , TQT_SIGNAL ( toggled ( bool ) ) ,
this , TQT_SLOT ( slotChange3DParameter ( bool ) ) ) ;
// Checkbox for shadows
drawShadowColor = new TQCheckBox ( i18n ( " Draw dark shadow " ) , gb ) ;
TQWhatsThis : : add ( drawShadowColor , i18n ( " If checked, this will add a dark shadow on the 3D bars. " ) ) ;
grid1 - > addWidget ( drawShadowColor , 1 , 0 ) ;
TQLabel * tmpLabel = new TQLabel ( i18n ( " Angle: " ) , gb ) ;
tmpLabel - > resize ( tmpLabel - > sizeHint ( ) ) ;
grid1 - > addWidget ( tmpLabel , 2 , 0 ) ;
angle3d = new KIntNumInput ( 0 , gb , 10 ) ;
TQWhatsThis : : add ( angle3d , i18n ( " You can set here the angle for the 3D effect from 0 to 90. 90 will give you flat bars without any 3D effect. \n Default is 45. " ) ) ;
grid1 - > addWidget ( angle3d , 2 , 1 ) ;
angle3d - > setRange ( 0 , 90 , 1 ) ;
tmpLabel = new TQLabel ( i18n ( " Depth: " ) , gb ) ;
tmpLabel - > resize ( tmpLabel - > sizeHint ( ) ) ;
grid1 - > addWidget ( tmpLabel , 3 , 0 ) ;
depth = new KDoubleNumInput ( 0 , gb ) ;
TQWhatsThis : : add ( depth , i18n ( " You can set here the depth of the 3D effect from 0 to 2. 0 will give you no depth at all. \n Default is 1. " ) ) ;
depth - > resize ( 100 , depth - > sizeHint ( ) . height ( ) ) ;
grid1 - > addWidget ( depth , 3 , 1 ) ;
depth - > setRange ( 0 , 2.0 , 0.1 ) ;
gb - > setAlignment ( TQt : : AlignLeft ) ;
grid1 - > addColSpacing ( 0 , depth - > width ( ) ) ;
grid1 - > addColSpacing ( 0 , angle3d - > width ( ) ) ;
grid1 - > setColStretch ( 2 , 1 ) ;
grid1 - > setRowStretch ( 4 , 1 ) ;
//it's not good but I don't know how
//to reduce space
//layout->addColSpacing(1,300);
}
void KChartParameter3dConfigPage : : slotChange3DParameter ( bool b )
{
angle3d - > setEnabled ( b ) ;
depth - > setEnabled ( b ) ;
drawShadowColor - > setEnabled ( b ) ;
}
void KChartParameter3dConfigPage : : init ( )
{
bool state = m_params - > threeDBars ( ) ;
bar3d - > setChecked ( state ) ;
drawShadowColor - > setChecked ( m_params - > threeDShadowColors ( ) ) ;
angle3d - > setValue ( m_params - > threeDBarAngle ( ) ) ;
depth - > setValue ( m_params - > threeDBarDepth ( ) ) ;
slotChange3DParameter ( state ) ;
}
void KChartParameter3dConfigPage : : apply ( )
{
m_params - > setThreeDBars ( bar3d - > isChecked ( ) ) ;
m_params - > setThreeDBarAngle ( angle3d - > value ( ) ) ;
m_params - > setThreeDBarDepth ( depth - > value ( ) ) ;
m_params - > setThreeDShadowColors ( drawShadowColor - > isChecked ( ) ) ;
}
} //KChart namespace