diff options
Diffstat (limited to 'kchart/kchartParameter3dConfigPage.cpp')
-rw-r--r-- | kchart/kchartParameter3dConfigPage.cpp | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/kchart/kchartParameter3dConfigPage.cpp b/kchart/kchartParameter3dConfigPage.cpp new file mode 100644 index 00000000..1b37b8cc --- /dev/null +++ b/kchart/kchartParameter3dConfigPage.cpp @@ -0,0 +1,126 @@ +/* This file is part of the KDE project + Copyright (C) 2001,2002,2003,2004 Laurent Montel <[email protected]> + + 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.\nDefault 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.\nDefault 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 |