diff options
Diffstat (limited to 'examples/chart/optionsform.cpp')
-rw-r--r-- | examples/chart/optionsform.cpp | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/examples/chart/optionsform.cpp b/examples/chart/optionsform.cpp new file mode 100644 index 000000000..c6e16af5d --- /dev/null +++ b/examples/chart/optionsform.cpp @@ -0,0 +1,135 @@ +#include "optionsform.h" + +#include <qbuttongroup.h> +#include <qcombobox.h> +#include <qfontdialog.h> +#include <qframe.h> +#include <qimage.h> +#include <qlabel.h> +#include <qlayout.h> +#include <qpushbutton.h> +#include <qradiobutton.h> +#include <qspinbox.h> + +#include "images/options_horizontalbarchart.xpm" +#include "images/options_piechart.xpm" +#include "images/options_verticalbarchart.xpm" + + +OptionsForm::OptionsForm( TQWidget* parent, const char* name, + bool modal, WFlags f ) + : TQDialog( parent, name, modal, f ) +{ + setCaption( "Chart -- Options" ); + resize( 320, 290 ); + + optionsFormLayout = new TQVBoxLayout( this, 11, 6 ); + + chartTypeLayout = new TQHBoxLayout( 0, 0, 6 ); + + chartTypeTextLabel = new TQLabel( "&Chart Type", this ); + chartTypeLayout->addWidget( chartTypeTextLabel ); + + chartTypeComboBox = new TQComboBox( FALSE, this ); + chartTypeComboBox->insertItem( TQPixmap( options_piechart ), "Pie Chart" ); + chartTypeComboBox->insertItem( TQPixmap( options_verticalbarchart ), + "Vertical Bar Chart" ); + chartTypeComboBox->insertItem( TQPixmap( options_horizontalbarchart ), + "Horizontal Bar Chart" ); + chartTypeLayout->addWidget( chartTypeComboBox ); + optionsFormLayout->addLayout( chartTypeLayout ); + + fontLayout = new TQHBoxLayout( 0, 0, 6 ); + + fontPushButton = new TQPushButton( "&Font...", this ); + fontLayout->addWidget( fontPushButton ); + TQSpacerItem* spacer = new TQSpacerItem( 0, 0, + TQSizePolicy::Expanding, + TQSizePolicy::Minimum ); + fontLayout->addItem( spacer ); + + fontTextLabel = new TQLabel( this ); // Must be set by caller via setFont() + fontLayout->addWidget( fontTextLabel ); + optionsFormLayout->addLayout( fontLayout ); + + addValuesFrame = new TQFrame( this ); + addValuesFrame->setFrameShape( TQFrame::StyledPanel ); + addValuesFrame->setFrameShadow( TQFrame::Sunken ); + addValuesFrameLayout = new TQVBoxLayout( addValuesFrame, 11, 6 ); + + addValuesButtonGroup = new TQButtonGroup( "Show Values", addValuesFrame ); + addValuesButtonGroup->setColumnLayout(0, TQt::Vertical ); + addValuesButtonGroup->layout()->setSpacing( 6 ); + addValuesButtonGroup->layout()->setMargin( 11 ); + addValuesButtonGroupLayout = new TQVBoxLayout( + addValuesButtonGroup->layout() ); + addValuesButtonGroupLayout->setAlignment( TQt::AlignTop ); + + noRadioButton = new TQRadioButton( "&No", addValuesButtonGroup ); + noRadioButton->setChecked( TRUE ); + addValuesButtonGroupLayout->addWidget( noRadioButton ); + + yesRadioButton = new TQRadioButton( "&Yes", addValuesButtonGroup ); + addValuesButtonGroupLayout->addWidget( yesRadioButton ); + + asPercentageRadioButton = new TQRadioButton( "As &Percentage", + addValuesButtonGroup ); + addValuesButtonGroupLayout->addWidget( asPercentageRadioButton ); + addValuesFrameLayout->addWidget( addValuesButtonGroup ); + + decimalPlacesLayout = new TQHBoxLayout( 0, 0, 6 ); + + decimalPlacesTextLabel = new TQLabel( "&Decimal Places", addValuesFrame ); + decimalPlacesLayout->addWidget( decimalPlacesTextLabel ); + + decimalPlacesSpinBox = new TQSpinBox( addValuesFrame ); + decimalPlacesSpinBox->setMinValue( 0 ); + decimalPlacesSpinBox->setMaxValue( 9 ); + decimalPlacesLayout->addWidget( decimalPlacesSpinBox ); + + addValuesFrameLayout->addLayout( decimalPlacesLayout ); + + optionsFormLayout->addWidget( addValuesFrame ); + + buttonsLayout = new TQHBoxLayout( 0, 0, 6 ); + spacer = new TQSpacerItem( 0, 0, + TQSizePolicy::Expanding, TQSizePolicy::Minimum ); + buttonsLayout->addItem( spacer ); + + okPushButton = new TQPushButton( "OK", this ); + okPushButton->setDefault( TRUE ); + buttonsLayout->addWidget( okPushButton ); + + cancelPushButton = new TQPushButton( "Cancel", this ); + buttonsLayout->addWidget( cancelPushButton ); + optionsFormLayout->addLayout( buttonsLayout ); + + connect( fontPushButton, SIGNAL( clicked() ), this, SLOT( chooseFont() ) ); + connect( okPushButton, SIGNAL( clicked() ), this, SLOT( accept() ) ); + connect( cancelPushButton, SIGNAL( clicked() ), this, SLOT( reject() ) ); + + chartTypeTextLabel->setBuddy( chartTypeComboBox ); + decimalPlacesTextLabel->setBuddy( decimalPlacesSpinBox ); +} + + +void OptionsForm::chooseFont() +{ + bool ok; + TQFont font = TQFontDialog::getFont( &ok, m_font, this ); + if ( ok ) + setFont( font ); +} + + +void OptionsForm::setFont( TQFont font ) +{ + TQString label = font.family() + " " + + TQString::number( font.pointSize() ) + "pt"; + if ( font.bold() ) + label += " Bold"; + if ( font.italic() ) + label += " Italic"; + fontTextLabel->setText( label ); + m_font = font; +} |