//
//     Copyright 2008 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2007 Jim Bublitz also apply

//                 Generated by twine

// This file is part of PyKDE4.

// PyKDE4 is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of
// the License, or (at your option) any later version.

// PyKDE4 is distributed 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 this program.  If not, see <http://www.gnu.org/licenses/>.


class KPopupFrame : QFrame
{
%TypeHeaderCode
#include <kdatetable.h>
%End


protected:
    virtual void            keyPressEvent (QKeyEvent* e);

public:
    void                    close (int r);
                            KPopupFrame (QWidget* parent /TransferThis/ = 0);
    void                    setMainWidget (QWidget* m);
    virtual void            resizeEvent (QResizeEvent* resize);
    void                    popup (const QPoint& pos);
    int                     exec (const QPoint& p) /PyName=exec_/;
    int                     exec (int x, int y) /PyName=exec_/;

signals:
    void                    leaveModality ();

private:
                            KPopupFrame (const KPopupFrame&);
};   // KPopupFrame


class KDateValidator : QValidator
{
%TypeHeaderCode
#include <kdatetable.h>
%End


public:
                            KDateValidator (QWidget* parent /TransferThis/ = 0);
    virtual QValidator::State  validate (QString& text, int& e /In/) const;
    virtual void            fixup (QString& input) const;
    QValidator::State       date (const QString& text, QDate& date) const;
};   // KDateValidator


class KDateTable : QWidget
{
%TypeHeaderCode
#include <kdatetable.h>
%End


public:
    explicit                KDateTable (QWidget* parent /TransferThis/ = 0);
    explicit                KDateTable (const QDate&, QWidget* parent /TransferThis/ = 0);
    virtual QSize           sizeHint () const;
    void                    setFontSize (int size);
    bool                    setDate (const QDate& date);
    const QDate&            date () const;
    const KCalendarSystem*  calendar () const;
    bool                    setCalendar (KCalendarSystem* calendar = 0);
    bool                    setCalendar (const QString& calendarType);
    void                    setPopupMenuEnabled (bool enable);
    bool                    popupMenuEnabled () const;

    enum BackgroundMode
    {
        NoBgMode,
        RectangleMode,
        CircleMode
    };

    void                    setCustomDatePainting (const QDate& date, const QColor& fgColor, KDateTable::BackgroundMode bgMode = KDateTable::NoBgMode, const QColor& bgColor = QColor());
    void                    unsetCustomDatePainting (const QDate& date);

protected:
    virtual int             posFromDate (const QDate& date);
    virtual QDate           dateFromPos (int pos);
    virtual void            paintEvent (QPaintEvent* e);
    virtual void            mousePressEvent (QMouseEvent* e);
    virtual void            wheelEvent (QWheelEvent* e);
    virtual void            keyPressEvent (QKeyEvent* e);
    virtual void            focusInEvent (QFocusEvent* e);
    virtual void            focusOutEvent (QFocusEvent* e);

signals:
    void                    dateChanged (const QDate& date);
    void                    dateChanged (const QDate& cur, const QDate& old);
    void                    tableClicked ();
    void                    aboutToShowContextMenu (KMenu* menu, const QDate& date);

private:
                            KDateTable (const KDateTable&);
};   // KDateTable


