//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    using System.Collections.Generic;
    /// <remarks> See <see cref="IQActionSignals"></see> for signals emitted by QAction
    /// </remarks>
    [SmokeClass("QAction")]
    public class QAction : QObject, IDisposable {
        protected QAction(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QAction), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QAction() {
            staticInterceptor = new SmokeInvocation(typeof(QAction), null);
        }
        public enum MenuRole {
            NoRole = 0,
            TextHeuristicRole = 1,
            ApplicationSpecificRole = 2,
            AboutQtRole = 3,
            AboutRole = 4,
            PreferencesRole = 5,
            QuitRole = 6,
        }
        public enum ActionEvent {
            Trigger = 0,
            Hover = 1,
        }
        [Q_PROPERTY("bool", "checkable")]
        public bool Checkable {
            get { return (bool) interceptor.Invoke("isCheckable", "isCheckable()", typeof(bool)); }
            set { interceptor.Invoke("setCheckable$", "setCheckable(bool)", typeof(void), typeof(bool), value); }
        }
        [Q_PROPERTY("bool", "checked")]
        public bool Checked {
            get { return (bool) interceptor.Invoke("isChecked", "isChecked()", typeof(bool)); }
            set { interceptor.Invoke("setChecked$", "setChecked(bool)", typeof(void), typeof(bool), value); }
        }
        [Q_PROPERTY("bool", "enabled")]
        public bool Enabled {
            get { return (bool) interceptor.Invoke("isEnabled", "isEnabled()", typeof(bool)); }
            set { interceptor.Invoke("setEnabled$", "setEnabled(bool)", typeof(void), typeof(bool), value); }
        }
        [Q_PROPERTY("QIcon", "icon")]
        public QIcon icon {
            get { return (QIcon) interceptor.Invoke("icon", "icon()", typeof(QIcon)); }
            set { interceptor.Invoke("setIcon#", "setIcon(QIcon)", typeof(void), typeof(QIcon), value); }
        }
        [Q_PROPERTY("QString", "text")]
        public string Text {
            get { return (string) interceptor.Invoke("text", "text()", typeof(string)); }
            set { interceptor.Invoke("setText$", "setText(QString)", typeof(void), typeof(string), value); }
        }
        [Q_PROPERTY("QString", "iconText")]
        public string IconText {
            get { return (string) interceptor.Invoke("iconText", "iconText()", typeof(string)); }
            set { interceptor.Invoke("setIconText$", "setIconText(QString)", typeof(void), typeof(string), value); }
        }
        [Q_PROPERTY("QString", "toolTip")]
        public string ToolTip {
            get { return (string) interceptor.Invoke("toolTip", "toolTip()", typeof(string)); }
            set { interceptor.Invoke("setToolTip$", "setToolTip(QString)", typeof(void), typeof(string), value); }
        }
        [Q_PROPERTY("QString", "statusTip")]
        public string StatusTip {
            get { return (string) interceptor.Invoke("statusTip", "statusTip()", typeof(string)); }
            set { interceptor.Invoke("setStatusTip$", "setStatusTip(QString)", typeof(void), typeof(string), value); }
        }
        [Q_PROPERTY("QString", "whatsThis")]
        public string WhatsThis {
            get { return (string) interceptor.Invoke("whatsThis", "whatsThis()", typeof(string)); }
            set { interceptor.Invoke("setWhatsThis$", "setWhatsThis(QString)", typeof(void), typeof(string), value); }
        }
        [Q_PROPERTY("QFont", "font")]
        public QFont Font {
            get { return (QFont) interceptor.Invoke("font", "font()", typeof(QFont)); }
            set { interceptor.Invoke("setFont#", "setFont(QFont)", typeof(void), typeof(QFont), value); }
        }
        [Q_PROPERTY("QKeySequence", "shortcut")]
        public QKeySequence Shortcut {
            get { return (QKeySequence) interceptor.Invoke("shortcut", "shortcut()", typeof(QKeySequence)); }
            set { interceptor.Invoke("setShortcut#", "setShortcut(QKeySequence)", typeof(void), typeof(QKeySequence), value); }
        }
        [Q_PROPERTY("Qt::ShortcutContext", "shortcutContext")]
        public new Qt.ShortcutContext ShortcutContext {
            get { return (Qt.ShortcutContext) interceptor.Invoke("shortcutContext", "shortcutContext()", typeof(Qt.ShortcutContext)); }
            set { interceptor.Invoke("setShortcutContext$", "setShortcutContext(Qt::ShortcutContext)", typeof(void), typeof(Qt.ShortcutContext), value); }
        }
        [Q_PROPERTY("bool", "autoRepeat")]
        public bool AutoRepeat {
            get { return (bool) interceptor.Invoke("autoRepeat", "autoRepeat()", typeof(bool)); }
            set { interceptor.Invoke("setAutoRepeat$", "setAutoRepeat(bool)", typeof(void), typeof(bool), value); }
        }
        [Q_PROPERTY("bool", "visible")]
        public bool Visible {
            get { return (bool) interceptor.Invoke("isVisible", "isVisible()", typeof(bool)); }
            set { interceptor.Invoke("setVisible$", "setVisible(bool)", typeof(void), typeof(bool), value); }
        }
        [Q_PROPERTY("QAction::MenuRole", "menuRole")]
        public QAction.MenuRole menuRole {
            get { return (QAction.MenuRole) interceptor.Invoke("menuRole", "menuRole()", typeof(QAction.MenuRole)); }
            set { interceptor.Invoke("setMenuRole$", "setMenuRole(QAction::MenuRole)", typeof(void), typeof(QAction.MenuRole), value); }
        }
        [Q_PROPERTY("bool", "iconVisibleInMenu")]
        public bool IconVisibleInMenu {
            get { return (bool) interceptor.Invoke("isIconVisibleInMenu", "isIconVisibleInMenu()", typeof(bool)); }
            set { interceptor.Invoke("setIconVisibleInMenu$", "setIconVisibleInMenu(bool)", typeof(void), typeof(bool), value); }
        }
        // QAction* QAction(QActionPrivate& arg1,QObject* arg2); >>>> NOT CONVERTED
        public QAction(QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QAction#", "QAction(QObject*)", typeof(void), typeof(QObject), parent);
        }
        public QAction(string text, QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QAction$#", "QAction(const QString&, QObject*)", typeof(void), typeof(string), text, typeof(QObject), parent);
        }
        public QAction(QIcon icon, string text, QObject parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QAction#$#", "QAction(const QIcon&, const QString&, QObject*)", typeof(void), typeof(QIcon), icon, typeof(string), text, typeof(QObject), parent);
        }
        public void SetActionGroup(QActionGroup group) {
            interceptor.Invoke("setActionGroup#", "setActionGroup(QActionGroup*)", typeof(void), typeof(QActionGroup), group);
        }
        public QActionGroup ActionGroup() {
            return (QActionGroup) interceptor.Invoke("actionGroup", "actionGroup() const", typeof(QActionGroup));
        }
        public QMenu Menu() {
            return (QMenu) interceptor.Invoke("menu", "menu() const", typeof(QMenu));
        }
        public void SetMenu(QMenu menu) {
            interceptor.Invoke("setMenu#", "setMenu(QMenu*)", typeof(void), typeof(QMenu), menu);
        }
        public void SetSeparator(bool b) {
            interceptor.Invoke("setSeparator$", "setSeparator(bool)", typeof(void), typeof(bool), b);
        }
        public bool IsSeparator() {
            return (bool) interceptor.Invoke("isSeparator", "isSeparator() const", typeof(bool));
        }
        public void SetShortcuts(List<QKeySequence> shortcuts) {
            interceptor.Invoke("setShortcuts?", "setShortcuts(const QList<QKeySequence>&)", typeof(void), typeof(List<QKeySequence>), shortcuts);
        }
        public void SetShortcuts(QKeySequence.StandardKey arg1) {
            interceptor.Invoke("setShortcuts$", "setShortcuts(QKeySequence::StandardKey)", typeof(void), typeof(QKeySequence.StandardKey), arg1);
        }
        public List<QKeySequence> Shortcuts() {
            return (List<QKeySequence>) interceptor.Invoke("shortcuts", "shortcuts() const", typeof(List<QKeySequence>));
        }
        public QVariant Data() {
            return (QVariant) interceptor.Invoke("data", "data() const", typeof(QVariant));
        }
        public void SetData(QVariant var) {
            interceptor.Invoke("setData#", "setData(const QVariant&)", typeof(void), typeof(QVariant), var);
        }
        public void Activate(QAction.ActionEvent arg1) {
            interceptor.Invoke("activate$", "activate(QAction::ActionEvent)", typeof(void), typeof(QAction.ActionEvent), arg1);
        }
        public bool ShowStatusText(QWidget widget) {
            return (bool) interceptor.Invoke("showStatusText#", "showStatusText(QWidget*)", typeof(bool), typeof(QWidget), widget);
        }
        public bool ShowStatusText() {
            return (bool) interceptor.Invoke("showStatusText", "showStatusText()", typeof(bool));
        }
        public QWidget ParentWidget() {
            return (QWidget) interceptor.Invoke("parentWidget", "parentWidget() const", typeof(QWidget));
        }
        public List<QWidget> AssociatedWidgets() {
            return (List<QWidget>) interceptor.Invoke("associatedWidgets", "associatedWidgets() const", typeof(List<QWidget>));
        }
        public List<QGraphicsWidget> AssociatedGraphicsWidgets() {
            return (List<QGraphicsWidget>) interceptor.Invoke("associatedGraphicsWidgets", "associatedGraphicsWidgets() const", typeof(List<QGraphicsWidget>));
        }
        [Q_SLOT("void trigger()")]
        public void Trigger() {
            interceptor.Invoke("trigger", "trigger()", typeof(void));
        }
        [Q_SLOT("void hover()")]
        public void Hover() {
            interceptor.Invoke("hover", "hover()", typeof(void));
        }
        [Q_SLOT("void setChecked(bool)")]
        public void SetChecked(bool arg1) {
            interceptor.Invoke("setChecked$", "setChecked(bool)", typeof(void), typeof(bool), arg1);
        }
        [Q_SLOT("void toggle()")]
        public void Toggle() {
            interceptor.Invoke("toggle", "toggle()", typeof(void));
        }
        [Q_SLOT("void setEnabled(bool)")]
        public void SetEnabled(bool arg1) {
            interceptor.Invoke("setEnabled$", "setEnabled(bool)", typeof(void), typeof(bool), arg1);
        }
        [Q_SLOT("void setDisabled(bool)")]
        public void SetDisabled(bool b) {
            interceptor.Invoke("setDisabled$", "setDisabled(bool)", typeof(void), typeof(bool), b);
        }
        [Q_SLOT("void setVisible(bool)")]
        public void SetVisible(bool arg1) {
            interceptor.Invoke("setVisible$", "setVisible(bool)", typeof(void), typeof(bool), arg1);
        }
        [SmokeMethod("event(QEvent*)")]
        protected new virtual bool Event(QEvent arg1) {
            return (bool) interceptor.Invoke("event#", "event(QEvent*)", typeof(bool), typeof(QEvent), arg1);
        }
        ~QAction() {
            interceptor.Invoke("~QAction", "~QAction()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~QAction", "~QAction()", 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 IQActionSignals Emit {
            get { return (IQActionSignals) Q_EMIT; }
        }
    }

    public interface IQActionSignals : IQObjectSignals {
        [Q_SIGNAL("void changed()")]
        void Changed();
        [Q_SIGNAL("void triggered(bool)")]
        void Triggered(bool arg1);
        [Q_SIGNAL("void triggered()")]
        void Triggered();
        [Q_SIGNAL("void hovered()")]
        void Hovered();
        [Q_SIGNAL("void toggled(bool)")]
        void Toggled(bool arg1);
    }
}
