diff options
Diffstat (limited to 'kchart/kchartSubTypeChartPage.cpp')
-rw-r--r-- | kchart/kchartSubTypeChartPage.cpp | 456 |
1 files changed, 456 insertions, 0 deletions
diff --git a/kchart/kchartSubTypeChartPage.cpp b/kchart/kchartSubTypeChartPage.cpp new file mode 100644 index 00000000..9ccad59e --- /dev/null +++ b/kchart/kchartSubTypeChartPage.cpp @@ -0,0 +1,456 @@ +/* This file is part of the KDE project + Copyright (C) 1999,2000 Matthias Kalle Dalheimer <[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 <stdlib.h> + +#include "kchartSubTypeChartPage.h" +#include "kchartSubTypeChartPage.moc" + +#include <tdeapplication.h> +#include <tdelocale.h> +#include <kiconloader.h> +#include <kdebug.h> +#include <tqvbuttongroup.h> +#include <tqradiobutton.h> +#include <tqspinbox.h> +#include <tqlabel.h> +#include <tqhgroupbox.h> +#include <tqlayout.h> +#include <tqwhatsthis.h> +#include <tqvbox.h> + +#include "kchart_params.h" + +#include "kchart_factory.h" + +namespace KChart +{ + +KChartHiloSubTypeChartPage::KChartHiloSubTypeChartPage( KChartParams* params, + TQWidget* parent ) : + KChartSubTypeChartPage( params, parent ) +{ + TQHBoxLayout* toplevel = new TQHBoxLayout( this, 10 ); + TQVButtonGroup* subtypeBG = new TQVButtonGroup( i18n( "Sub-type" ), this ); + TQWhatsThis::add(subtypeBG, i18n("Select the desired sub-type of a chart. The available sub-types depend on the chart type. Some chart types have no sub-type at all, in which case this configuration page is not shown.")); + toplevel->addWidget( subtypeBG, AlignCenter| AlignVCenter ); + normal = new TQRadioButton( i18n( "Normal" ), subtypeBG ); + subtypeBG->insert( normal, KDChartParams::AreaNormal ); + stacked = new TQRadioButton(i18n("HiLoClose"), subtypeBG ); + subtypeBG->insert( stacked, KDChartParams::AreaStacked ); + percent = new TQRadioButton( i18n("HiLoOpenClose"), subtypeBG ); + subtypeBG->insert( percent, KDChartParams::AreaPercent ); + subtypeBG->setFixedWidth( subtypeBG->sizeHint().width() ); + connect( subtypeBG, TQT_SIGNAL( clicked( int ) ), + this, TQT_SLOT( slotChangeSubType( int ) ) ); + + TQHGroupBox* exampleGB = new TQHGroupBox( i18n( "Example" ), this ); + TQWhatsThis::add(exampleGB, i18n("Preview the sub-type you choose.")); + toplevel->addWidget( exampleGB, 2 ); + exampleLA = new TQLabel( exampleGB ); + exampleLA->setAlignment( AlignCenter | AlignVCenter ); + // PENDING(kalle) Make image scale with available space once TQt 2.2 is out. +} + +void KChartHiloSubTypeChartPage::init() +{ + switch( m_params->hiLoChartSubType() ) { + case KDChartParams::HiLoNormal: + normal->setChecked( true ); + break; + case KDChartParams::HiLoClose: + stacked->setChecked( true ); + break; + case KDChartParams::HiLoOpenClose: + percent->setChecked( true ); + break; + default: + { + kdDebug( 35001 ) << "Error in stack_type" << endl; + abort(); + break; + } + } + + slotChangeSubType( m_params->hiLoChartSubType() ); +} + +void KChartHiloSubTypeChartPage::slotChangeSubType( int type ) +{ + switch( type ) { + case KDChartParams::HiLoNormal: + exampleLA->setPixmap( UserIcon( "chart_hilo_normal", KChartFactory::global() ) ); + break; + case KDChartParams::HiLoClose: + exampleLA->setPixmap( UserIcon( "chart_hilo_close", KChartFactory::global() ) ); + break; + case KDChartParams::HiLoOpenClose: + exampleLA->setPixmap( UserIcon( "chart_hilo_openclose", KChartFactory::global() ) ); + break; + }; +} + + + +void KChartHiloSubTypeChartPage::apply() +{ + if( normal->isChecked() ) + m_params->setHiLoChartSubType( KDChartParams::HiLoNormal ); + else if( stacked->isChecked() ) + m_params->setHiLoChartSubType( KDChartParams::HiLoClose ); + else if( percent->isChecked() ) + m_params->setHiLoChartSubType( KDChartParams::HiLoOpenClose ); + else { + kdDebug( 35001 ) << "Error in groupbutton" << endl; + } +} + +KChartAreaSubTypeChartPage::KChartAreaSubTypeChartPage( KChartParams* params, + TQWidget* parent ) : + KChartSubTypeChartPage( params, parent ) +{ + TQHBoxLayout* toplevel = new TQHBoxLayout( this, 10 ); + TQVButtonGroup* subtypeBG = new TQVButtonGroup( i18n( "Sub-type" ), this ); + TQWhatsThis::add(subtypeBG, i18n("Select the desired sub-type of a chart. The available sub-types depend on the chart type. Some chart types have no sub-type at all, in which case this configuration page is not shown.")); + toplevel->addWidget( subtypeBG, AlignCenter| AlignVCenter ); + normal = new TQRadioButton( i18n( "Normal" ), subtypeBG ); + subtypeBG->insert( normal, KDChartParams::AreaNormal ); + stacked = new TQRadioButton( i18n( "Stacked" ), subtypeBG ); + subtypeBG->insert( stacked, KDChartParams::AreaStacked ); + percent = new TQRadioButton( i18n( "Percent" ), subtypeBG ); + subtypeBG->insert( percent, KDChartParams::AreaPercent ); + subtypeBG->setFixedWidth( subtypeBG->sizeHint().width() ); + connect( subtypeBG, TQT_SIGNAL( clicked( int ) ), + this, TQT_SLOT( slotChangeSubType( int ) ) ); + + TQHGroupBox* exampleGB = new TQHGroupBox( i18n( "Example" ), this ); + TQWhatsThis::add(exampleGB, i18n("Preview the sub-type you choose.")); + toplevel->addWidget( exampleGB, 2 ); + exampleLA = new TQLabel( exampleGB ); + exampleLA->setAlignment( AlignCenter | AlignVCenter ); + // PENDING(kalle) Make image scale with available space once TQt 2.2 is out. +} + + +void KChartAreaSubTypeChartPage::init() +{ + switch( m_params->areaChartSubType() ) { + case KDChartParams::AreaNormal: + normal->setChecked( true ); + break; + case KDChartParams::AreaStacked: + stacked->setChecked( true ); + break; + case KDChartParams::AreaPercent: + percent->setChecked( true ); + break; + default: + { + kdDebug( 35001 ) << "Error in stack_type" << endl; + abort(); + break; + } + } + + slotChangeSubType( m_params->areaChartSubType() ); +} + +void KChartAreaSubTypeChartPage::slotChangeSubType( int type ) +{ + switch( type ) { + case KDChartParams::AreaNormal: + exampleLA->setPixmap( UserIcon( "chart_area_normal", KChartFactory::global() ) ); + break; + case KDChartParams::AreaStacked: + exampleLA->setPixmap( UserIcon( "chart_area_stacked", KChartFactory::global() ) ); + break; + case KDChartParams::AreaPercent: + exampleLA->setPixmap( UserIcon( "chart_area_percent", KChartFactory::global() ) ); + break; + }; +} + + + +void KChartAreaSubTypeChartPage::apply() +{ + if( normal->isChecked() ) + m_params->setAreaChartSubType( KDChartParams::AreaNormal ); + else if( stacked->isChecked() ) + m_params->setAreaChartSubType( KDChartParams::AreaStacked ); + else if( percent->isChecked() ) + m_params->setAreaChartSubType( KDChartParams::AreaPercent ); + else { + kdDebug( 35001 ) << "Error in groupbutton" << endl; + } +} + +KChartBarSubTypeChartPage::KChartBarSubTypeChartPage( KChartParams* params, + TQWidget* parent ) : + KChartSubTypeChartPage( params, parent ) +{ + TQHBoxLayout* toplevel = new TQHBoxLayout( this, 10 ); + TQVBox *left = new TQVBox( this ); + TQVButtonGroup* subtypeBG = new TQVButtonGroup( i18n( "Sub-type" ), left ); + TQWhatsThis::add(subtypeBG, i18n("Select the desired sub-type of a chart. The available sub-types depend on the chart type. Some chart types have no sub-type at all, in which case this configuration page is not shown.")); + //toplevel->addWidget( subtypeBG, AlignCenter ); + toplevel->addWidget( left, AlignCenter ); + + normal = new TQRadioButton( i18n( "Normal" ), subtypeBG ); + subtypeBG->insert( normal, KDChartParams::BarNormal ); + stacked = new TQRadioButton( i18n( "Stacked" ), subtypeBG ); + subtypeBG->insert( stacked, KDChartParams::BarStacked ); + percent = new TQRadioButton( i18n( "Percent" ), subtypeBG ); + subtypeBG->insert( percent, KDChartParams::BarPercent ); + + subtypeBG->setFixedWidth( subtypeBG->sizeHint().width() ); + connect( subtypeBG, TQT_SIGNAL( clicked( int ) ), + this, TQT_SLOT( slotChangeSubType( int ) ) ); + + //TQHBox *hbox = new TQHBox( this ); + new TQLabel( i18n( "Number of lines: "), left ); + m_numLines = new TQSpinBox( left ); + // FIXME: Use a grid layout instead + new TQLabel( "", left); + left->setStretchFactor( left, 1 ); + + TQHGroupBox* exampleGB = new TQHGroupBox( i18n( "Example" ), this ); + TQWhatsThis::add(exampleGB, i18n("Preview the sub-type you choose.")); + toplevel->addWidget( exampleGB, 2 ); + exampleLA = new TQLabel( exampleGB ); + exampleLA->setAlignment( AlignCenter | AlignVCenter ); +} + +void KChartBarSubTypeChartPage::init() +{ + // SUM is for areas only and therefore not configurable here. + switch( m_params->barChartSubType() ) { + case KDChartParams::BarNormal: + normal->setChecked( true ); + break; + case KDChartParams::BarStacked: + stacked->setChecked( true ); + break; + case KDChartParams::BarPercent: + percent->setChecked( true ); + break; + default: + { + kdDebug( 35001 ) << "Error in stack_type" << endl; + break; + } + } + + m_numLines->setValue( m_params->barNumLines() ); + + slotChangeSubType( m_params->barChartSubType() ); +} + + +void KChartBarSubTypeChartPage::slotChangeSubType( int type ) +{ + switch( type ) { + case KDChartParams::BarStacked: + exampleLA->setPixmap( UserIcon( "chart_bar_layer", KChartFactory::global() ) ); + break; + case KDChartParams::BarNormal: + exampleLA->setPixmap( UserIcon( "chart_bar_beside", KChartFactory::global() ) ); + break; + case KDChartParams::BarPercent: + exampleLA->setPixmap( UserIcon( "chart_bar_percent", KChartFactory::global() ) ); + break; + }; +} + + +void KChartBarSubTypeChartPage::apply() +{ + if( normal->isChecked() ) { + m_params->setBarChartSubType( KDChartParams::BarNormal ); + } else if( stacked->isChecked() ) { + m_params->setBarChartSubType( KDChartParams::BarStacked ); + } else if( percent->isChecked() ) { + m_params->setBarChartSubType( KDChartParams::BarPercent ); + } else { + kdDebug( 35001 ) << "Error in groupbutton" << endl; + } + + // FIXME: Error controls. + m_params->setBarNumLines( m_numLines->value() ); +} + +KChartLineSubTypeChartPage::KChartLineSubTypeChartPage( KChartParams* params, + TQWidget* parent ) : + KChartSubTypeChartPage( params, parent ) +{ + TQHBoxLayout* toplevel = new TQHBoxLayout( this, 10 ); + TQVButtonGroup* subtypeBG = new TQVButtonGroup( i18n( "Sub-type" ), this ); + TQWhatsThis::add(subtypeBG, i18n("Select the desired sub-type of a chart. The available sub-types depend on the chart type. Some chart types have no sub-type at all, in which case this configuration page is not shown.")); + toplevel->addWidget( subtypeBG, AlignCenter| AlignVCenter ); + normal = new TQRadioButton( i18n( "Normal" ), subtypeBG ); + subtypeBG->insert( normal, KDChartParams::AreaNormal ); + stacked = new TQRadioButton( i18n( "Stacked" ), subtypeBG ); + subtypeBG->insert( stacked, KDChartParams::AreaStacked ); + percent = new TQRadioButton( i18n( "Percent" ), subtypeBG ); + subtypeBG->insert( percent, KDChartParams::AreaPercent ); + subtypeBG->setFixedWidth( subtypeBG->sizeHint().width() ); + connect( subtypeBG, TQT_SIGNAL( clicked( int ) ), + this, TQT_SLOT( slotChangeSubType( int ) ) ); + + TQHGroupBox* exampleGB = new TQHGroupBox( i18n( "Example" ), this ); + TQWhatsThis::add(exampleGB, i18n("Preview the sub-type you choose.")); + toplevel->addWidget( exampleGB, 2 ); + exampleLA = new TQLabel( exampleGB ); + exampleLA->setAlignment( AlignCenter | AlignVCenter ); + // PENDING(kalle) Make image scale with available space once TQt 2.2 is out. +} + +void KChartLineSubTypeChartPage::init() +{ + switch( m_params->lineChartSubType() ) { + case KDChartParams::LineNormal: + normal->setChecked( true ); + break; + case KDChartParams::LineStacked: + stacked->setChecked( true ); + break; + case KDChartParams::LinePercent: + percent->setChecked( true ); + break; + default: + { + kdDebug( 35001 ) << "Error in stack_type" << endl; + abort(); + break; + } + } + + slotChangeSubType( m_params->lineChartSubType() ); +} + +void KChartLineSubTypeChartPage::slotChangeSubType( int type ) +{ + switch( type ) { + case KDChartParams::AreaNormal: + exampleLA->setPixmap( UserIcon( "chart_line_normal", KChartFactory::global() ) ); + break; + case KDChartParams::AreaStacked: + exampleLA->setPixmap( UserIcon( "chart_line_stacked", KChartFactory::global() ) ); + break; + case KDChartParams::AreaPercent: + exampleLA->setPixmap( UserIcon( "chart_line_percent", KChartFactory::global() ) ); + break; + }; +} + + + +void KChartLineSubTypeChartPage::apply() +{ + if( normal->isChecked() ) + m_params->setLineChartSubType( KDChartParams::LineNormal ); + else if( stacked->isChecked() ) + m_params->setLineChartSubType( KDChartParams::LineStacked ); + else if( percent->isChecked() ) + m_params->setLineChartSubType( KDChartParams::LinePercent ); + else { + kdDebug( 35001 ) << "Error in groupbutton" << endl; + } +} + +KChartPolarSubTypeChartPage::KChartPolarSubTypeChartPage( KChartParams* params, + TQWidget* parent ) : + KChartSubTypeChartPage( params, parent ) +{ + TQHBoxLayout* toplevel = new TQHBoxLayout( this, 10 ); + TQVButtonGroup* subtypeBG = new TQVButtonGroup( i18n( "Sub-type" ), this ); + TQWhatsThis::add(subtypeBG, i18n("Select the desired sub-type of a chart. The available sub-types depend on the chart type. Some chart types have no sub-type at all, in which case this configuration page is not shown.")); + toplevel->addWidget( subtypeBG, AlignCenter| AlignVCenter ); + normal = new TQRadioButton( i18n( "Normal" ), subtypeBG ); + subtypeBG->insert( normal, KDChartParams::AreaNormal ); + stacked = new TQRadioButton( i18n( "Stacked" ), subtypeBG ); + subtypeBG->insert( stacked, KDChartParams::AreaStacked ); + percent = new TQRadioButton( i18n( "Percent" ), subtypeBG ); + subtypeBG->insert( percent, KDChartParams::AreaPercent ); + subtypeBG->setFixedWidth( subtypeBG->sizeHint().width() ); + connect( subtypeBG, TQT_SIGNAL( clicked( int ) ), + this, TQT_SLOT( slotChangeSubType( int ) ) ); + + TQHGroupBox* exampleGB = new TQHGroupBox( i18n( "Example" ), this ); + TQWhatsThis::add(exampleGB, i18n("Preview the sub-type you choose.")); + toplevel->addWidget( exampleGB, 2 ); + exampleLA = new TQLabel( exampleGB ); + exampleLA->setAlignment( AlignCenter | AlignVCenter ); + // PENDING(kalle) Make image scale with available space once TQt 2.2 is out. +} + +void KChartPolarSubTypeChartPage::init() +{ + switch( m_params->polarChartSubType() ) { + case KDChartParams::PolarNormal: + normal->setChecked( true ); + break; + case KDChartParams::PolarStacked: + stacked->setChecked( true ); + break; + case KDChartParams::PolarPercent: + percent->setChecked( true ); + break; + default: + { + kdDebug( 35001 ) << "Error in stack_type" << endl; + abort(); + break; + } + } + + slotChangeSubType( m_params->lineChartSubType() ); +} + +void KChartPolarSubTypeChartPage::slotChangeSubType( int type ) +{ + switch( type ) { + case KDChartParams::PolarNormal: + exampleLA->setPixmap( UserIcon( "chart_polar_normal", KChartFactory::global() ) ); + break; + case KDChartParams::PolarStacked: + exampleLA->setPixmap( UserIcon( "chart_polar_stacked", KChartFactory::global() ) ); + break; + case KDChartParams::PolarPercent: + exampleLA->setPixmap( UserIcon( "chart_polar_percent", KChartFactory::global() ) ); + break; + }; +} + + + +void KChartPolarSubTypeChartPage::apply() +{ + if( normal->isChecked() ) + m_params->setPolarChartSubType( KDChartParams::PolarNormal ); + else if( stacked->isChecked() ) + m_params->setPolarChartSubType( KDChartParams::PolarStacked ); + else if( percent->isChecked() ) + m_params->setPolarChartSubType( KDChartParams::PolarPercent ); + else { + kdDebug( 35001 ) << "Error in groupbutton" << endl; + } +} + +} //KChart namespace |