// This is the SIP interface definition for TQDateEdit, TQDateTimeEdit and
// TQTimeEdit.
//
// Copyright (c) 2007
// 	Riverbank Computing Limited <info@riverbankcomputing.co.uk>
// 
// This file is part of PyTQt.
// 
// This copy of PyTQt is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by the Free
// Software Foundation; either version 2, or (at your option) any later
// version.
// 
// PyTQt is supplied in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
// FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
// details.
// 
// You should have received a copy of the GNU General Public License along with
// PyTQt; see the file LICENSE.  If not, write to the Free Software Foundation,
// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.


%ExportedDoc
<Sect2><Title>TQDateEdit (TQt v3+)</Title>
<Para>
<Literal>TQDateEdit</Literal> is fully implemented.
</Para>
</Sect2>

<Sect2><Title>TQTimeEdit (TQt v3+)</Title>
<Para>
<Literal>TQTimeEdit</Literal> is fully implemented.
</Para>
</Sect2>

<Sect2><Title>TQDateTimeEdit (TQt v3+)</Title>
<Para>
<Literal>TQDateTimeEdit</Literal> is fully implemented.
</Para>
</Sect2>
%End


// TQDateEdit actually inherits TQDateTimeEditBase but that's an internal class
// and isn't exported under Windows in all versions.

class TQDateEdit : TQWidget
{
%TypeHeaderCode
#include <tqdatetimeedit.h>
%End

public:
	TQDateEdit(TQWidget * /TransferThis/ = 0,const char * = 0);
	TQDateEdit(const TQDate &,TQWidget * /TransferThis/ = 0,const char * = 0);

	enum Order {
		DMY,
		MDY,
		YMD,
		YDM
	};

	TQSize sizeHint() const;
	TQSize minimumSizeHint() const;
	TQDate date() const;
	virtual void setOrder(Order);
	Order order() const;
	virtual void setAutoAdvance(bool);
	bool autoAdvance() const;

	virtual void setMinValue(const TQDate &);
	TQDate minValue() const;
	virtual void setMaxValue(const TQDate &);
	TQDate maxValue() const;
	virtual void setRange(const TQDate &,const TQDate &);
	TQString separator() const;
	virtual void setSeparator(const TQString &);

	void removeFirstNumber(int);

public slots:
	virtual void setDate(const TQDate &);

signals:
	void valueChanged(const TQDate &);

protected:
	bool event(TQEvent *);
	void timerEvent(TQTimerEvent *);
	void resizeEvent(TQResizeEvent *);
	void stepUp();
	void stepDown();
	TQString sectionFormattedText(int);
	void addNumber(int,int);
	void removeLastNumber(int);
	bool setFocusSection(int);
    
	virtual void setYear(int);
	virtual void setMonth(int);
	virtual void setDay(int);
	virtual void fix();
	virtual bool outOfRange(int,int,int) const;

protected slots:
	void updateButtons();    

private:
	TQDateEdit(const TQDateEdit &);
};


// TQDateEdit actually inherits TQDateTimeEditBase but that's an internal class
// and isn't exported under Windows in all versions.

class TQTimeEdit : TQWidget
{
%TypeHeaderCode
#include <tqdatetimeedit.h>
%End

public:
	enum Display {
		Hours,
		Minutes,
		Seconds,
		AMPM
	};

	TQTimeEdit(TQWidget * /TransferThis/ = 0,const char * = 0);
	TQTimeEdit(const TQTime &,TQWidget * /TransferThis/ = 0,const char * = 0);

	TQSize sizeHint() const;
	TQSize minimumSizeHint() const;
	TQTime time() const;
	virtual void setAutoAdvance(bool);
	bool autoAdvance() const;

	virtual void setMinValue(const TQTime &);
	TQTime minValue() const;
	virtual void setMaxValue(const TQTime &);
	TQTime maxValue() const;
	virtual void setRange(const TQTime &,const TQTime &);
	TQString separator() const;
	virtual void setSeparator(const TQString &);

	uint display() const;
	void setDisplay(uint);

	void removeFirstNumber(int);

public slots:
	virtual void setTime(const TQTime &);

signals:
	void valueChanged(const TQTime &);

protected:
	bool event(TQEvent *);
	void timerEvent(TQTimerEvent *);
	void resizeEvent(TQResizeEvent *);
	void stepUp();
	void stepDown();
	TQString sectionFormattedText(int);
	void addNumber(int,int);
	void removeLastNumber(int);
	bool setFocusSection(int);
    
	virtual bool outOfRange(int,int,int) const;
	virtual void setHour(int);
	virtual void setMinute(int);
	virtual void setSecond(int);
    
protected slots:
	void updateButtons();

private:
	TQTimeEdit(const TQTimeEdit &);
};


class TQDateTimeEdit : TQWidget
{
%TypeHeaderCode
#include <tqdatetimeedit.h>
%End

public:
	TQDateTimeEdit(TQWidget * /TransferThis/ = 0,const char * = 0);
	TQDateTimeEdit(const TQDateTime &,TQWidget * /TransferThis/ = 0,
		      const char * = 0);

	TQSize sizeHint() const;
	TQSize minimumSizeHint() const;
	TQDateTime dateTime() const;

	TQDateEdit* dateEdit();
	TQTimeEdit* timeEdit();

	virtual void setAutoAdvance(bool);
	bool autoAdvance() const;

public slots:
	virtual void setDateTime(const TQDateTime &);

signals:
	void valueChanged(const TQDateTime &);

protected:
	void init();
	void resizeEvent(TQResizeEvent *);

protected slots:
	void newValue(const TQDate &);
	void newValue(const TQTime &);

private:
	TQDateTimeEdit(const TQDateTimeEdit &);
};
