/usr/local/CPAN/Qt/SlidersGroup.pm
package SlidersGroup;
use strict;
use warnings;
use QtCore4;
use QtGui4;
# [0]
use QtCore4::isa qw( Qt::GroupBox );
use QtCore4::signals
valueChanged => ['int'];
use QtCore4::slots
setValue => ['int'],
setMinimum => ['int'],
setMaximum => ['int'],
invertAppearance => ['bool'],
invertKeyBindings => ['bool'];
sub slider() {
return this->{slider};
}
sub scrollBar() {
return this->{scrollBar};
}
sub dial() {
return this->{dial};
}
# [0]
# [0]
sub NEW {
my ( $class, $orientation, $title, $parent) = @_;
$class->SUPER::NEW( $title, $parent );
my $slider = this->{slider} = Qt::Slider($orientation);
$slider->setFocusPolicy(Qt::StrongFocus());
$slider->setTickPosition(Qt::Slider::TicksBothSides());
$slider->setTickInterval(10);
$slider->setSingleStep(1);
my $scrollBar = this->{scrollBar} = Qt::ScrollBar($orientation);
$scrollBar->setFocusPolicy(Qt::StrongFocus());
my $dial = this->{dial} = Qt::Dial();
$dial->setFocusPolicy(Qt::StrongFocus());
this->connect($slider, SIGNAL 'valueChanged(int)', $scrollBar, SLOT 'setValue(int)');
this->connect($scrollBar, SIGNAL 'valueChanged(int)', $dial, SLOT 'setValue(int)');
this->connect($dial, SIGNAL 'valueChanged(int)', $slider, SLOT 'setValue(int)');
# [0] //! [1]
this->connect($dial, SIGNAL 'valueChanged(int)', this, SIGNAL 'valueChanged(int)');
# [1] //! [2]
# [2] //! [3]
my $direction;
# [3] //! [4]
if ($orientation == Qt::Horizontal()) {
$direction = Qt::BoxLayout::TopToBottom();
}
else {
$direction = Qt::BoxLayout::LeftToRight();
}
my $slidersLayout = Qt::BoxLayout($direction);
$slidersLayout->addWidget($slider);
$slidersLayout->addWidget($scrollBar);
$slidersLayout->addWidget($dial);
this->setLayout($slidersLayout);
}
# [4]
# [5]
sub setValue {
# [5] //! [6]
my ($value) = @_;
this->slider->setValue($value);
}
# [6]
# [7]
sub setMinimum {
# [7] //! [8]
my ($value) = @_;
this->slider->setMinimum($value);
this->scrollBar->setMinimum($value);
this->dial->setMinimum($value);
}
# [8]
# [9]
sub setMaximum {
# [9] //! [10]
my ($value) = @_;
this->slider->setMaximum($value);
this->scrollBar->setMaximum($value);
this->dial->setMaximum($value);
}
# [10]
# [11]
sub invertAppearance {
# [11] //! [12]
my ($invert) = @_;
this->slider->setInvertedAppearance($invert);
this->scrollBar->setInvertedAppearance($invert);
this->dial->setInvertedAppearance($invert);
}
# [12]
# [13]
sub invertKeyBindings {
# [13] //! [14]
my ($invert) = @_;
this->slider->setInvertedControls($invert);
this->scrollBar->setInvertedControls($invert);
this->dial->setInvertedControls($invert);
}
# [14]
1;