3974d9590070e6acab9f501e16ec5571fea6767a
[mussa.git] / qui / ThresholdWidget.cxx
1 #include "qui/ThresholdWidget.h"
2
3 #include <QHBoxLayout>
4 #include <QLCDNumber>
5 #include <QSlider>
6
7 // This is completely and totally derived from the Qt example
8 // LCDRange.cpp
9 ThresholdWidget::ThresholdWidget(QWidget *parent, int min, int max) 
10   : QWidget(parent)
11 {
12   QLCDNumber *lcd = new QLCDNumber(threshold_max_display_digits);
13   lcd->setSegmentStyle(QLCDNumber::Flat);
14
15   slider = new QSlider(Qt::Horizontal);
16   slider->setRange(min, max);
17
18   connect(slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int)));
19   connect(slider, SIGNAL(valueChanged(int)), 
20           this, SIGNAL(thresholdChanged(int)));
21
22   slider->setValue(min);
23   lcd->display(min);
24
25   QHBoxLayout *layout = new QHBoxLayout;
26   layout->addWidget(slider);
27   layout->addWidget(lcd);
28   setLayout(layout);
29 }
30 /*
31 void ThresholdWidget::setMinimumThreshold(int min)
32 {
33   slider->setMinimum(min);
34 }
35
36 int ThresholdWidget::getMinimumThreshold()
37 {
38   return slider->minimum();
39 }
40
41 void ThresholdWidget::setMaximumThreshold(int max)
42 {
43   slider->setMaximum(max);
44 }
45
46 int ThresholdWidget::getMaximumThreshold()
47 {
48   return slider->maximum();
49 }
50 */
51 void ThresholdWidget::setRange(int min, int max)
52 {
53   slider->setRange(min, max);
54 }
55
56 float ThresholdWidget::percent() const
57 {
58   return ((float)threshold())/((float)slider->maximum()); 
59 }
60
61 void ThresholdWidget::setThreshold(int threshold)
62 {
63   if (slider->value() != threshold)
64   {
65     slider->setValue(threshold);
66     emit thresholdChanged(threshold);
67   }
68 }
69
70 int ThresholdWidget::threshold() const
71 {
72   return slider->value();
73 }
74
75