summaryrefslogtreecommitdiffstats
path: root/libtdeedu/extdate/extdatetimeedit.h
diff options
context:
space:
mode:
Diffstat (limited to 'libtdeedu/extdate/extdatetimeedit.h')
-rw-r--r--libtdeedu/extdate/extdatetimeedit.h374
1 files changed, 374 insertions, 0 deletions
diff --git a/libtdeedu/extdate/extdatetimeedit.h b/libtdeedu/extdate/extdatetimeedit.h
new file mode 100644
index 00000000..4a2aaa16
--- /dev/null
+++ b/libtdeedu/extdate/extdatetimeedit.h
@@ -0,0 +1,374 @@
+/****************************************************************************
+**
+**
+** Definition of date and time edit classes
+**
+** Created : 001103
+**
+** Original TQDateTimeEdit Copyright (C) 2000 Trolltech AS. All rights reserved.
+**
+** >> modifications to introduce ExtDate (C) 2004 Jason Harris <jharris@30doradus.org>
+** >> ExtDate modifications are licensed under the GPL: http://www.gnu.org/licenses/gpl.html
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+**********************************************************************/
+
+#ifndef EXTDATETIMEEDIT_H
+#define EXTDATETIMEEDIT_H
+
+#include <tqwidget.h>
+#include <tqstring.h>
+#include <tqrangecontrol.h>
+
+#include "extdatetime.h"
+
+#ifndef TQT_NO_DATETIMEEDIT
+
+class TQTimeEdit;
+
+class ExtDateTimeEditBase : public TQWidget
+{
+ Q_OBJECT
+ TQ_OBJECT
+public:
+ ExtDateTimeEditBase( TQWidget* parent=0, const char* name=0 )
+ : TQWidget( parent, name ) {}
+
+ virtual bool setFocusSection( int sec ) = 0;
+ virtual TQString sectionFormattedText( int sec ) = 0;
+ virtual void addNumber( int sec, int num ) = 0;
+ virtual void removeLastNumber( int sec ) = 0;
+
+public slots:
+ virtual void stepUp() = 0;
+ virtual void stepDown() = 0;
+
+private:
+#if defined(TQ_DISABLE_COPY) // Disabled copy constructor and operator=
+ ExtDateTimeEditBase( const ExtDateTimeEditBase & );
+ ExtDateTimeEditBase &operator=( const ExtDateTimeEditBase & );
+#endif
+};
+
+class ExtDateEditPrivate;
+
+class KDE_EXPORT ExtDateEdit : public ExtDateTimeEditBase
+{
+ Q_OBJECT
+ TQ_OBJECT
+ Q_ENUMS( Order )
+ TQ_PROPERTY( Order order READ order WRITE setOrder )
+// TQ_PROPERTY( ExtDate date READ date WRITE setDate )
+ TQ_PROPERTY( bool autoAdvance READ autoAdvance WRITE setAutoAdvance )
+// TQ_PROPERTY( ExtDate maxValue READ maxValue WRITE setMaxValue )
+// TQ_PROPERTY( ExtDate minValue READ minValue WRITE setMinValue )
+
+public:
+ ExtDateEdit( TQWidget* parent=0, const char* name=0 );
+ ExtDateEdit( const ExtDate& date, TQWidget* parent=0, const char* name=0 );
+ ~ExtDateEdit();
+
+ enum Order { DMY /**< Day-Month-Year */,
+ MDY /**< Month-Day-Year */,
+ YMD /**< Year-Month-Day, also the default */,
+ YDM /**< Year-Day-Month @deprecated Included for completeness. */ };
+
+ TQSize tqsizeHint() const;
+ TQSize tqminimumSizeHint() const;
+
+public slots:
+ virtual void setDate( const ExtDate& date );
+
+public:
+ ExtDate date() const;
+ virtual void setOrder( Order order );
+ Order order() const;
+ virtual void setAutoAdvance( bool advance );
+ bool autoAdvance() const;
+
+ virtual void setMinValue( const ExtDate& d ) { setRange( d, maxValue() ); }
+ ExtDate minValue() const;
+ virtual void setMaxValue( const ExtDate& d ) { setRange( minValue(), d ); }
+ ExtDate maxValue() const;
+ virtual void setRange( const ExtDate& min, const ExtDate& max );
+ TQString separator() const;
+ virtual void setSeparator( const TQString& s );
+
+ // Make removeFirstNumber() virtual in ExtDateTimeEditBase in 4.0
+ void removeFirstNumber( int sec );
+
+signals:
+ void valueChanged( const ExtDate& date );
+
+protected:
+ bool event( TQEvent *e );
+ void timerEvent( TQTimerEvent * );
+ void resizeEvent( TQResizeEvent * );
+ void stepUp();
+ void stepDown();
+ TQString sectionFormattedText( int sec );
+ void addNumber( int sec, int num );
+
+ void removeLastNumber( int sec );
+ bool setFocusSection( int s );
+
+ virtual void setYear( int year );
+ virtual void setMonth( int month );
+ virtual void setDay( int day );
+ virtual void fix();
+ virtual bool outOfRange( int y, int m, int d ) const;
+
+protected slots:
+ void updateButtons();
+
+private:
+ void init();
+ int sectionOffsetEnd( int sec ) const;
+ int sectionLength( int sec ) const;
+ TQString sectionText( int sec ) const;
+ ExtDateEditPrivate* d;
+
+#if defined(TQ_DISABLE_COPY)
+ ExtDateEdit( const ExtDateEdit & );
+ ExtDateEdit &operator=( const ExtDateEdit & );
+#endif
+};
+
+// class TQTimeEditPrivate;
+//
+// class TQ_EXPORT TQTimeEdit : public ExtDateTimeEditBase
+// {
+// Q_OBJECT
+// TQ_OBJECT
+// TQ_SETS( Display )
+// TQ_PROPERTY( TQTime time READ time WRITE setTime )
+// TQ_PROPERTY( bool autoAdvance READ autoAdvance WRITE setAutoAdvance )
+// TQ_PROPERTY( TQTime maxValue READ maxValue WRITE setMaxValue )
+// TQ_PROPERTY( TQTime minValue READ minValue WRITE setMinValue )
+// TQ_PROPERTY( Display display READ display WRITE setDisplay )
+//
+// public:
+// enum Display {
+// Hours = 0x01,
+// Minutes = 0x02,
+// Seconds = 0x04,
+// /*Reserved = 0x08,*/
+// AMPM = 0x10
+// };
+//
+// TQTimeEdit( TQWidget* parent=0, const char* name=0 );
+// TQTimeEdit( const TQTime& time, TQWidget* parent=0, const char* name=0 );
+// ~TQTimeEdit();
+//
+// TQSize tqsizeHint() const;
+// TQSize tqminimumSizeHint() const;
+//
+// public slots:
+// virtual void setTime( const TQTime& time );
+//
+// public:
+// TQTime time() const;
+// virtual void setAutoAdvance( bool advance );
+// bool autoAdvance() const;
+//
+// virtual void setMinValue( const TQTime& d ) { setRange( d, maxValue() ); }
+// TQTime minValue() const;
+// virtual void setMaxValue( const TQTime& d ) { setRange( minValue(), d ); }
+// TQTime maxValue() const;
+// virtual void setRange( const TQTime& min, const TQTime& max );
+// TQString separator() const;
+// virtual void setSeparator( const TQString& s );
+//
+// uint display() const;
+// void setDisplay( uint disp );
+//
+// // Make removeFirstNumber() virtual in ExtDateTimeEditBase in 4.0
+// void removeFirstNumber( int sec );
+//
+// signals:
+// void valueChanged( const TQTime& time );
+//
+// protected:
+// bool event( TQEvent *e );
+// void timerEvent( TQTimerEvent *e );
+// void resizeEvent( TQResizeEvent * );
+// void stepUp();
+// void stepDown();
+// TQString sectionFormattedText( int sec );
+// void addNumber( int sec, int num );
+// void removeLastNumber( int sec );
+// bool setFocusSection( int s );
+//
+// virtual bool outOfRange( int h, int m, int s ) const;
+// virtual void setHour( int h );
+// virtual void setMinute( int m );
+// virtual void setSecond( int s );
+//
+// protected slots:
+// void updateButtons();
+//
+// private:
+// void init();
+// TQString sectionText( int sec );
+// TQTimeEditPrivate* d;
+//
+// #if defined(TQ_DISABLE_COPY)
+// TQTimeEdit( const TQTimeEdit & );
+// TQTimeEdit &operator=( const TQTimeEdit & );
+// #endif
+// };
+//
+
+class ExtDateTimeEditPrivate;
+
+class KDE_EXPORT ExtDateTimeEdit : public TQWidget
+{
+ Q_OBJECT
+ TQ_OBJECT
+// TQ_PROPERTY( ExtDateTime dateTime READ dateTime WRITE setDateTime )
+
+public:
+ ExtDateTimeEdit( TQWidget* parent=0, const char* name=0 );
+ ExtDateTimeEdit( const ExtDateTime& datetime, TQWidget* parent=0,
+ const char* name=0 );
+ ~ExtDateTimeEdit();
+
+ TQSize tqsizeHint() const;
+ TQSize tqminimumSizeHint() const;
+
+public slots:
+ virtual void setDateTime( const ExtDateTime & dt );
+
+public:
+ ExtDateTime dateTime() const;
+
+ ExtDateEdit* dateEdit() { return de; }
+ TQTimeEdit* timeEdit() { return te; }
+
+ virtual void setAutoAdvance( bool advance );
+ bool autoAdvance() const;
+
+signals:
+ void valueChanged( const ExtDateTime& datetime );
+
+protected:
+ // ### make init() private in TQt 4.0
+ void init();
+ void resizeEvent( TQResizeEvent * );
+
+protected slots:
+ // ### make these two functions private in TQt 4.0,
+ // and merge them into one with no parameter
+ void newValue( const ExtDate& d );
+ void newValue( const TQTime& t );
+
+private:
+ ExtDateEdit* de;
+ TQTimeEdit* te;
+ ExtDateTimeEditPrivate* d;
+
+#if defined(TQ_DISABLE_COPY)
+ ExtDateTimeEdit( const ExtDateTimeEdit & );
+ ExtDateTimeEdit &operator=( const ExtDateTimeEdit & );
+#endif
+};
+
+class TQNumberSection
+{
+public:
+ TQNumberSection( int selStart = 0, int selEnd = 0, bool separat = TRUE, int actual = -1 )
+ : selstart( selStart ), selend( selEnd ), act( actual ), sep( separat )
+ {}
+ int selectionStart() const { return selstart; }
+ void setSelectionStart( int s ) { selstart = s; }
+ int selectionEnd() const { return selend; }
+ void setSelectionEnd( int s ) { selend = s; }
+ int width() const { return selend - selstart; }
+ int index() const { return act; }
+ bool separator() const { return sep; }
+ TQ_DUMMY_COMPARISON_OPERATOR( TQNumberSection )
+private:
+ int selstart :12;
+ int selend :12;
+ int act :7;
+ bool sep :1;
+};
+
+class ExtDateTimeEditorPrivate;
+
+class ExtDateTimeEditor : public TQWidget
+{
+ Q_OBJECT
+ TQ_OBJECT
+public:
+ ExtDateTimeEditor( ExtDateTimeEditBase * parent=0,
+ const char * name=0 );
+ ~ExtDateTimeEditor();
+
+// void setControlWidget( ExtDateTimeEditBase * widget );
+// ExtDateTimeEditBase * controlWidget() const;
+
+ void setSeparator( const TQString& s );
+ TQString separator() const;
+
+ int focusSection() const;
+ bool setFocusSection( int s );
+ void appendSection( const TQNumberSection& sec );
+ void clearSections();
+ void setSectionSelection( int sec, int selstart, int selend );
+ bool eventFilter( TQObject *o, TQEvent *e );
+ int sectionAt( const TQPoint &p );
+ int mapSection( int sec );
+
+protected:
+ void init();
+ bool event( TQEvent *e );
+ void resizeEvent( TQResizeEvent * );
+ void paintEvent( TQPaintEvent * );
+ void mousePressEvent( TQMouseEvent *e );
+
+private:
+ ExtDateTimeEditBase* cw;
+ ExtDateTimeEditorPrivate* d;
+};
+
+class ExtDateTimeSpinWidget : public TQSpinWidget
+{
+ Q_OBJECT
+ TQ_OBJECT
+public:
+ ExtDateTimeSpinWidget( TQWidget *parent, const char *name )
+ : TQSpinWidget( parent, name )
+ {
+ }
+
+protected:
+#ifndef TQT_NO_WHEELEVENT
+ void wheelEvent( TQWheelEvent *e )
+ {
+ ExtDateTimeEditor *editor = (ExtDateTimeEditor*)editWidget()->qt_cast( "ExtDateTimeEditor" );
+ Q_ASSERT( editor );
+ if ( !editor )
+ return;
+
+ int section = editor->sectionAt( e->pos() );
+ editor->setFocusSection( section );
+
+ if ( section == -1 )
+ return;
+ TQSpinWidget::wheelEvent( e );
+ }
+#endif
+};
+
+#endif
+#endif