summaryrefslogtreecommitdiffstats
path: root/PerlTQt/tutorials/t9/LCDRange.pm
diff options
context:
space:
mode:
Diffstat (limited to 'PerlTQt/tutorials/t9/LCDRange.pm')
-rw-r--r--PerlTQt/tutorials/t9/LCDRange.pm43
1 files changed, 43 insertions, 0 deletions
diff --git a/PerlTQt/tutorials/t9/LCDRange.pm b/PerlTQt/tutorials/t9/LCDRange.pm
new file mode 100644
index 0000000..ab63af0
--- /dev/null
+++ b/PerlTQt/tutorials/t9/LCDRange.pm
@@ -0,0 +1,43 @@
+package LCDRange;
+use strict;
+use TQt;
+use TQt::isa qw(TQt::VBox);
+use TQt::slots
+ setValue => ['int'],
+ setRange => ['int', 'int'];
+use TQt::signals
+ valueChanged => ['int'];
+use TQt::attributes qw(
+ slider
+);
+
+sub NEW {
+ shift->SUPER::NEW(@_);
+
+ my $lcd = TQt::LCDNumber(2, this, "lcd");
+
+ slider = TQt::Slider(&Horizontal, this, "slider");
+ slider->setRange(0, 99);
+ slider->setValue(0);
+ $lcd->connect(slider, TQT_SIGNAL('valueChanged(int)'), TQT_SLOT('display(int)'));
+ this->connect(slider, TQT_SIGNAL('valueChanged(int)'), TQT_SIGNAL('valueChanged(int)'));
+
+ setFocusProxy(slider);
+}
+
+sub value { slider->value }
+
+sub setValue { slider->setValue(shift) }
+
+sub setRange {
+ my($minVal, $maxVal) = @_;
+ if($minVal < 0 || $maxVal > 99 || $minVal > $maxVal) {
+ warn "LCDRange::setRange($minVal,$maxVal)\n" .
+ "\tRange must be 0..99\n" .
+ "\tand minVal must not be greater than maxVal\n";
+ return;
+ }
+ slider->setRange($minVal, $maxVal);
+}
+
+1;