//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    using System.Collections.Generic;
    /// <remarks> See <see cref="IQCalendarWidgetSignals"></see> for signals emitted by QCalendarWidget
    /// </remarks>
    [SmokeClass("QCalendarWidget")]
    public class QCalendarWidget : QWidget, IDisposable {
        protected QCalendarWidget(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QCalendarWidget), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QCalendarWidget() {
            staticInterceptor = new SmokeInvocation(typeof(QCalendarWidget), null);
        }
        public enum HorizontalHeaderFormat {
            NoHorizontalHeader = 0,
            SingleLetterDayNames = 1,
            ShortDayNames = 2,
            LongDayNames = 3,
        }
        public enum VerticalHeaderFormat {
            NoVerticalHeader = 0,
            ISOWeekNumbers = 1,
        }
        public enum SelectionMode {
            NoSelection = 0,
            SingleSelection = 1,
        }
        [Q_PROPERTY("QDate", "selectedDate")]
        public QDate SelectedDate {
            get { return (QDate) interceptor.Invoke("selectedDate", "selectedDate()", typeof(QDate)); }
            set { interceptor.Invoke("setSelectedDate#", "setSelectedDate(QDate)", typeof(void), typeof(QDate), value); }
        }
        [Q_PROPERTY("QDate", "minimumDate")]
        public QDate MinimumDate {
            get { return (QDate) interceptor.Invoke("minimumDate", "minimumDate()", typeof(QDate)); }
            set { interceptor.Invoke("setMinimumDate#", "setMinimumDate(QDate)", typeof(void), typeof(QDate), value); }
        }
        [Q_PROPERTY("QDate", "maximumDate")]
        public QDate MaximumDate {
            get { return (QDate) interceptor.Invoke("maximumDate", "maximumDate()", typeof(QDate)); }
            set { interceptor.Invoke("setMaximumDate#", "setMaximumDate(QDate)", typeof(void), typeof(QDate), value); }
        }
        [Q_PROPERTY("Qt::DayOfWeek", "firstDayOfWeek")]
        public Qt.DayOfWeek FirstDayOfWeek {
            get { return (Qt.DayOfWeek) interceptor.Invoke("firstDayOfWeek", "firstDayOfWeek()", typeof(Qt.DayOfWeek)); }
            set { interceptor.Invoke("setFirstDayOfWeek$", "setFirstDayOfWeek(Qt::DayOfWeek)", typeof(void), typeof(Qt.DayOfWeek), value); }
        }
        [Q_PROPERTY("bool", "gridVisible")]
        public bool GridVisible {
            get { return (bool) interceptor.Invoke("isGridVisible", "isGridVisible()", typeof(bool)); }
            set { interceptor.Invoke("setGridVisible$", "setGridVisible(bool)", typeof(void), typeof(bool), value); }
        }
        [Q_PROPERTY("QCalendarWidget::SelectionMode", "selectionMode")]
        public QCalendarWidget.SelectionMode selectionMode {
            get { return (QCalendarWidget.SelectionMode) interceptor.Invoke("selectionMode", "selectionMode()", typeof(QCalendarWidget.SelectionMode)); }
            set { interceptor.Invoke("setSelectionMode$", "setSelectionMode(QCalendarWidget::SelectionMode)", typeof(void), typeof(QCalendarWidget.SelectionMode), value); }
        }
        [Q_PROPERTY("QCalendarWidget::HorizontalHeaderFormat", "horizontalHeaderFormat")]
        public QCalendarWidget.HorizontalHeaderFormat horizontalHeaderFormat {
            get { return (QCalendarWidget.HorizontalHeaderFormat) interceptor.Invoke("horizontalHeaderFormat", "horizontalHeaderFormat()", typeof(QCalendarWidget.HorizontalHeaderFormat)); }
            set { interceptor.Invoke("setHorizontalHeaderFormat$", "setHorizontalHeaderFormat(QCalendarWidget::HorizontalHeaderFormat)", typeof(void), typeof(QCalendarWidget.HorizontalHeaderFormat), value); }
        }
        [Q_PROPERTY("QCalendarWidget::VerticalHeaderFormat", "verticalHeaderFormat")]
        public QCalendarWidget.VerticalHeaderFormat verticalHeaderFormat {
            get { return (QCalendarWidget.VerticalHeaderFormat) interceptor.Invoke("verticalHeaderFormat", "verticalHeaderFormat()", typeof(QCalendarWidget.VerticalHeaderFormat)); }
            set { interceptor.Invoke("setVerticalHeaderFormat$", "setVerticalHeaderFormat(QCalendarWidget::VerticalHeaderFormat)", typeof(void), typeof(QCalendarWidget.VerticalHeaderFormat), value); }
        }
        [Q_PROPERTY("bool", "headerVisible")]
        public bool HeaderVisible {
            get { return (bool) interceptor.Invoke("isHeaderVisible", "isHeaderVisible()", typeof(bool)); }
            set { interceptor.Invoke("setHeaderVisible$", "setHeaderVisible(bool)", typeof(void), typeof(bool), value); }
        }
        [Q_PROPERTY("bool", "navigationBarVisible")]
        public bool NavigationBarVisible {
            get { return (bool) interceptor.Invoke("isNavigationBarVisible", "isNavigationBarVisible()", typeof(bool)); }
            set { interceptor.Invoke("setNavigationBarVisible$", "setNavigationBarVisible(bool)", typeof(void), typeof(bool), value); }
        }
        [Q_PROPERTY("bool", "dateEditEnabled")]
        public bool DateEditEnabled {
            get { return (bool) interceptor.Invoke("isDateEditEnabled", "isDateEditEnabled()", typeof(bool)); }
            set { interceptor.Invoke("setDateEditEnabled$", "setDateEditEnabled(bool)", typeof(void), typeof(bool), value); }
        }
        [Q_PROPERTY("int", "dateEditAcceptDelay")]
        public int DateEditAcceptDelay {
            get { return (int) interceptor.Invoke("dateEditAcceptDelay", "dateEditAcceptDelay()", typeof(int)); }
            set { interceptor.Invoke("setDateEditAcceptDelay$", "setDateEditAcceptDelay(int)", typeof(void), typeof(int), value); }
        }
        public QCalendarWidget(QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QCalendarWidget#", "QCalendarWidget(QWidget*)", typeof(void), typeof(QWidget), parent);
        }
        public QCalendarWidget() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QCalendarWidget", "QCalendarWidget()", typeof(void));
        }
        [SmokeMethod("sizeHint() const")]
        public override QSize SizeHint() {
            return (QSize) interceptor.Invoke("sizeHint", "sizeHint() const", typeof(QSize));
        }
        [SmokeMethod("minimumSizeHint() const")]
        public override QSize MinimumSizeHint() {
            return (QSize) interceptor.Invoke("minimumSizeHint", "minimumSizeHint() const", typeof(QSize));
        }
        public int YearShown() {
            return (int) interceptor.Invoke("yearShown", "yearShown() const", typeof(int));
        }
        public int MonthShown() {
            return (int) interceptor.Invoke("monthShown", "monthShown() const", typeof(int));
        }
        public QTextCharFormat HeaderTextFormat() {
            return (QTextCharFormat) interceptor.Invoke("headerTextFormat", "headerTextFormat() const", typeof(QTextCharFormat));
        }
        public void SetHeaderTextFormat(QTextCharFormat format) {
            interceptor.Invoke("setHeaderTextFormat#", "setHeaderTextFormat(const QTextCharFormat&)", typeof(void), typeof(QTextCharFormat), format);
        }
        public QTextCharFormat WeekdayTextFormat(Qt.DayOfWeek dayOfWeek) {
            return (QTextCharFormat) interceptor.Invoke("weekdayTextFormat$", "weekdayTextFormat(Qt::DayOfWeek) const", typeof(QTextCharFormat), typeof(Qt.DayOfWeek), dayOfWeek);
        }
        public void SetWeekdayTextFormat(Qt.DayOfWeek dayOfWeek, QTextCharFormat format) {
            interceptor.Invoke("setWeekdayTextFormat$#", "setWeekdayTextFormat(Qt::DayOfWeek, const QTextCharFormat&)", typeof(void), typeof(Qt.DayOfWeek), dayOfWeek, typeof(QTextCharFormat), format);
        }
        public Dictionary<QDate, QTextCharFormat> DateTextFormat() {
            return (Dictionary<QDate, QTextCharFormat>) interceptor.Invoke("dateTextFormat", "dateTextFormat() const", typeof(Dictionary<QDate, QTextCharFormat>));
        }
        public QTextCharFormat DateTextFormat(QDate date) {
            return (QTextCharFormat) interceptor.Invoke("dateTextFormat#", "dateTextFormat(const QDate&) const", typeof(QTextCharFormat), typeof(QDate), date);
        }
        public void SetDateTextFormat(QDate date, QTextCharFormat color) {
            interceptor.Invoke("setDateTextFormat##", "setDateTextFormat(const QDate&, const QTextCharFormat&)", typeof(void), typeof(QDate), date, typeof(QTextCharFormat), color);
        }
        [Q_SLOT("void setSelectedDate(QDate)")]
        public void SetSelectedDate(QDate date) {
            interceptor.Invoke("setSelectedDate#", "setSelectedDate(const QDate&)", typeof(void), typeof(QDate), date);
        }
        [Q_SLOT("void setDateRange(QDate, QDate)")]
        public void SetDateRange(QDate min, QDate max) {
            interceptor.Invoke("setDateRange##", "setDateRange(const QDate&, const QDate&)", typeof(void), typeof(QDate), min, typeof(QDate), max);
        }
        [Q_SLOT("void setCurrentPage(int, int)")]
        public void SetCurrentPage(int year, int month) {
            interceptor.Invoke("setCurrentPage$$", "setCurrentPage(int, int)", typeof(void), typeof(int), year, typeof(int), month);
        }
        [Q_SLOT("void setGridVisible(bool)")]
        public void SetGridVisible(bool show) {
            interceptor.Invoke("setGridVisible$", "setGridVisible(bool)", typeof(void), typeof(bool), show);
        }
        [Q_SLOT("void setNavigationBarVisible(bool)")]
        public void SetNavigationBarVisible(bool visible) {
            interceptor.Invoke("setNavigationBarVisible$", "setNavigationBarVisible(bool)", typeof(void), typeof(bool), visible);
        }
        [Q_SLOT("void showNextMonth()")]
        public void ShowNextMonth() {
            interceptor.Invoke("showNextMonth", "showNextMonth()", typeof(void));
        }
        [Q_SLOT("void showPreviousMonth()")]
        public void ShowPreviousMonth() {
            interceptor.Invoke("showPreviousMonth", "showPreviousMonth()", typeof(void));
        }
        [Q_SLOT("void showNextYear()")]
        public void ShowNextYear() {
            interceptor.Invoke("showNextYear", "showNextYear()", typeof(void));
        }
        [Q_SLOT("void showPreviousYear()")]
        public void ShowPreviousYear() {
            interceptor.Invoke("showPreviousYear", "showPreviousYear()", typeof(void));
        }
        [Q_SLOT("void showSelectedDate()")]
        public void ShowSelectedDate() {
            interceptor.Invoke("showSelectedDate", "showSelectedDate()", typeof(void));
        }
        [Q_SLOT("void showToday()")]
        public void ShowToday() {
            interceptor.Invoke("showToday", "showToday()", typeof(void));
        }
        [SmokeMethod("event(QEvent*)")]
        protected override bool Event(QEvent arg1) {
            return (bool) interceptor.Invoke("event#", "event(QEvent*)", typeof(bool), typeof(QEvent), arg1);
        }
        [SmokeMethod("mousePressEvent(QMouseEvent*)")]
        protected override void MousePressEvent(QMouseEvent arg1) {
            interceptor.Invoke("mousePressEvent#", "mousePressEvent(QMouseEvent*)", typeof(void), typeof(QMouseEvent), arg1);
        }
        [SmokeMethod("resizeEvent(QResizeEvent*)")]
        protected override void ResizeEvent(QResizeEvent arg1) {
            interceptor.Invoke("resizeEvent#", "resizeEvent(QResizeEvent*)", typeof(void), typeof(QResizeEvent), arg1);
        }
        [SmokeMethod("keyPressEvent(QKeyEvent*)")]
        protected override void KeyPressEvent(QKeyEvent arg1) {
            interceptor.Invoke("keyPressEvent#", "keyPressEvent(QKeyEvent*)", typeof(void), typeof(QKeyEvent), arg1);
        }
        [SmokeMethod("paintCell(QPainter*, const QRect&, const QDate&) const")]
        protected virtual void PaintCell(QPainter painter, QRect rect, QDate date) {
            interceptor.Invoke("paintCell###", "paintCell(QPainter*, const QRect&, const QDate&) const", typeof(void), typeof(QPainter), painter, typeof(QRect), rect, typeof(QDate), date);
        }
        protected void UpdateCell(QDate date) {
            interceptor.Invoke("updateCell#", "updateCell(const QDate&)", typeof(void), typeof(QDate), date);
        }
        protected void UpdateCells() {
            interceptor.Invoke("updateCells", "updateCells()", typeof(void));
        }
        ~QCalendarWidget() {
            interceptor.Invoke("~QCalendarWidget", "~QCalendarWidget()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~QCalendarWidget", "~QCalendarWidget()", typeof(void));
        }
        public static new string Tr(string s, string c) {
            return (string) staticInterceptor.Invoke("tr$$", "tr(const char*, const char*)", typeof(string), typeof(string), s, typeof(string), c);
        }
        public static new string Tr(string s) {
            return (string) staticInterceptor.Invoke("tr$", "tr(const char*)", typeof(string), typeof(string), s);
        }
        protected new IQCalendarWidgetSignals Emit {
            get { return (IQCalendarWidgetSignals) Q_EMIT; }
        }
    }

    public interface IQCalendarWidgetSignals : IQWidgetSignals {
        [Q_SIGNAL("void selectionChanged()")]
        void SelectionChanged();
        [Q_SIGNAL("void clicked(QDate)")]
        void Clicked(QDate date);
        [Q_SIGNAL("void activated(QDate)")]
        void Activated(QDate date);
        [Q_SIGNAL("void currentPageChanged(int, int)")]
        void CurrentPageChanged(int year, int month);
    }
}
