kalarm/lib

timespinbox.h
1/*
2 * timespinbox.h - time spinbox widget
3 * Program: kalarm
4 * Copyright © 2001-2008 by David Jarvie <djarvie@kde.org>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program; if not, write to the Free Software Foundation, Inc.,
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 */
20
21#ifndef TIMESPINBOX_H
22#define TIMESPINBOX_H
23
24#include <tqdatetime.h>
25#include "spinbox2.h"
26
27
45class TimeSpinBox : public SpinBox2
46{
47 TQ_OBJECT
48
49 public:
56 explicit TimeSpinBox(bool use24hour, TQWidget* parent = 0, const char* name = 0);
63 TimeSpinBox(int minMinute, int maxMinute, TQWidget* parent = 0, const char* name = 0);
67 bool isValid() const;
72 void setValid(bool);
76 TQTime time() const;
80 virtual void setMinValue(int minutes);
84 virtual void setMaxValue(int minutes) { SpinBox2::setMaxValue(minutes); }
86 void setMaxValue(const TQTime& t) { SpinBox2::setMaxValue(t.hour()*60 + t.minute()); }
88 TQTime maxTime() const { int mv = maxValue(); return TQTime(mv/60, mv%60); }
92 static TQString shiftWhatsThis();
93
94 virtual TQSize sizeHint() const;
95 virtual TQSize minimumSizeHint() const;
96
97 public slots:
101 virtual void setValue(int minutes);
103 void setValue(const TQTime& t) { setValue(t.hour()*60 + t.minute()); }
107 virtual void stepUp();
111 virtual void stepDown();
112
113 protected:
114 virtual TQString mapValueToText(int v);
115 virtual int mapTextToValue(bool* ok);
116 private slots:
117 void slotValueChanged(int value);
118 private:
119 class TimeValidator;
120 TimeValidator* mValidator;
121 int mMinimumValue; // real minimum value, excluding special value for "**:**"
122 bool m12Hour; // use 12-hour clock
123 bool mPm; // use PM for manually entered values (with 12-hour clock)
124 bool mInvalid; // value is currently invalid (asterisks)
125 bool mEnteredSetValue; // to prevent infinite recursion in setValue()
126};
127
128#endif // TIMESPINBOX_H
Spin box with a pair of spin buttons on either side.
Definition spinbox2.h:57
int maxValue() const
Returns the maximum value of the spin box.
Definition spinbox2.h:140
virtual void setMaxValue(int val)
Sets the maximum value of the spin box.
Definition spinbox2.cpp:202
int value() const
Returns the current value of the spin box.
Definition spinbox2.h:148
Hours/minutes time entry widget.
Definition timespinbox.h:46
virtual void stepUp()
Increments the spin box value.
static TQString shiftWhatsThis()
Returns a text describing use of the shift key as an accelerator for the spin buttons,...
virtual void setMinValue(int minutes)
Sets the maximum value which can be held in the spin box.
virtual void setValue(int minutes)
Sets the value of the spin box.
void setValue(const TQTime &t)
Sets the value of the spin box.
TQTime time() const
Returns the current value held in the spin box.
bool isValid() const
Returns true if the spin box holds a valid value.
void setMaxValue(const TQTime &t)
Sets the maximum value which can be held in the spin box.
Definition timespinbox.h:86
TQTime maxTime() const
Returns the maximum value which can be held in the spin box.
Definition timespinbox.h:88
virtual void stepDown()
Decrements the spin box value.
void setValid(bool)
Sets the spin box as holding a valid or invalid value.
virtual void setMaxValue(int minutes)
Sets the maximum value which can be held in the spin box.
Definition timespinbox.h:84