//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    using System.Collections.Generic;
    /// <remarks> See <see cref="IQComboBoxSignals"></see> for signals emitted by QComboBox
    /// </remarks>
    [SmokeClass("QComboBox")]
    public class QComboBox : QWidget, IDisposable {
        protected QComboBox(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QComboBox), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QComboBox() {
            staticInterceptor = new SmokeInvocation(typeof(QComboBox), null);
        }
        public enum InsertPolicy {
            NoInsert = 0,
            InsertAtTop = 1,
            InsertAtCurrent = 2,
            InsertAtBottom = 3,
            InsertAfterCurrent = 4,
            InsertBeforeCurrent = 5,
            InsertAlphabetically = 6,
        }
        public enum SizeAdjustPolicy {
            AdjustToContents = 0,
            AdjustToContentsOnFirstShow = 1,
            AdjustToMinimumContentsLength = 2,
            AdjustToMinimumContentsLengthWithIcon = 3,
        }
        [Q_PROPERTY("bool", "editable")]
        public bool Editable {
            get { return (bool) interceptor.Invoke("isEditable", "isEditable()", typeof(bool)); }
            set { interceptor.Invoke("setEditable$", "setEditable(bool)", typeof(void), typeof(bool), value); }
        }
        [Q_PROPERTY("int", "count")]
        public int Count {
            get { return (int) interceptor.Invoke("count", "count()", typeof(int)); }
        }
        [Q_PROPERTY("QString", "currentText")]
        public string CurrentText {
            get { return (string) interceptor.Invoke("currentText", "currentText()", typeof(string)); }
        }
        [Q_PROPERTY("int", "currentIndex")]
        public int CurrentIndex {
            get { return (int) interceptor.Invoke("currentIndex", "currentIndex()", typeof(int)); }
            set { interceptor.Invoke("setCurrentIndex$", "setCurrentIndex(int)", typeof(void), typeof(int), value); }
        }
        [Q_PROPERTY("int", "maxVisibleItems")]
        public int MaxVisibleItems {
            get { return (int) interceptor.Invoke("maxVisibleItems", "maxVisibleItems()", typeof(int)); }
            set { interceptor.Invoke("setMaxVisibleItems$", "setMaxVisibleItems(int)", typeof(void), typeof(int), value); }
        }
        [Q_PROPERTY("int", "maxCount")]
        public int MaxCount {
            get { return (int) interceptor.Invoke("maxCount", "maxCount()", typeof(int)); }
            set { interceptor.Invoke("setMaxCount$", "setMaxCount(int)", typeof(void), typeof(int), value); }
        }
        [Q_PROPERTY("QComboBox::InsertPolicy", "insertPolicy")]
        public QComboBox.InsertPolicy insertPolicy {
            get { return (QComboBox.InsertPolicy) interceptor.Invoke("insertPolicy", "insertPolicy()", typeof(QComboBox.InsertPolicy)); }
            set { interceptor.Invoke("setInsertPolicy$", "setInsertPolicy(QComboBox::InsertPolicy)", typeof(void), typeof(QComboBox.InsertPolicy), value); }
        }
        [Q_PROPERTY("QComboBox::SizeAdjustPolicy", "sizeAdjustPolicy")]
        public QComboBox.SizeAdjustPolicy sizeAdjustPolicy {
            get { return (QComboBox.SizeAdjustPolicy) interceptor.Invoke("sizeAdjustPolicy", "sizeAdjustPolicy()", typeof(QComboBox.SizeAdjustPolicy)); }
            set { interceptor.Invoke("setSizeAdjustPolicy$", "setSizeAdjustPolicy(QComboBox::SizeAdjustPolicy)", typeof(void), typeof(QComboBox.SizeAdjustPolicy), value); }
        }
        [Q_PROPERTY("int", "minimumContentsLength")]
        public int MinimumContentsLength {
            get { return (int) interceptor.Invoke("minimumContentsLength", "minimumContentsLength()", typeof(int)); }
            set { interceptor.Invoke("setMinimumContentsLength$", "setMinimumContentsLength(int)", typeof(void), typeof(int), value); }
        }
        [Q_PROPERTY("QSize", "iconSize")]
        public QSize IconSize {
            get { return (QSize) interceptor.Invoke("iconSize", "iconSize()", typeof(QSize)); }
            set { interceptor.Invoke("setIconSize#", "setIconSize(QSize)", typeof(void), typeof(QSize), value); }
        }
        [Q_PROPERTY("bool", "autoCompletion")]
        public bool AutoCompletion {
            get { return (bool) interceptor.Invoke("autoCompletion", "autoCompletion()", typeof(bool)); }
            set { interceptor.Invoke("setAutoCompletion$", "setAutoCompletion(bool)", typeof(void), typeof(bool), value); }
        }
        [Q_PROPERTY("Qt::CaseSensitivity", "autoCompletionCaseSensitivity")]
        public Qt.CaseSensitivity AutoCompletionCaseSensitivity {
            get { return (Qt.CaseSensitivity) interceptor.Invoke("autoCompletionCaseSensitivity", "autoCompletionCaseSensitivity()", typeof(Qt.CaseSensitivity)); }
            set { interceptor.Invoke("setAutoCompletionCaseSensitivity$", "setAutoCompletionCaseSensitivity(Qt::CaseSensitivity)", typeof(void), typeof(Qt.CaseSensitivity), value); }
        }
        [Q_PROPERTY("bool", "duplicatesEnabled")]
        public bool DuplicatesEnabled {
            get { return (bool) interceptor.Invoke("duplicatesEnabled", "duplicatesEnabled()", typeof(bool)); }
            set { interceptor.Invoke("setDuplicatesEnabled$", "setDuplicatesEnabled(bool)", typeof(void), typeof(bool), value); }
        }
        [Q_PROPERTY("bool", "frame")]
        public bool Frame {
            get { return (bool) interceptor.Invoke("hasFrame", "hasFrame()", typeof(bool)); }
            set { interceptor.Invoke("setFrame$", "setFrame(bool)", typeof(void), typeof(bool), value); }
        }
        [Q_PROPERTY("int", "modelColumn")]
        public int ModelColumn {
            get { return (int) interceptor.Invoke("modelColumn", "modelColumn()", typeof(int)); }
            set { interceptor.Invoke("setModelColumn$", "setModelColumn(int)", typeof(void), typeof(int), value); }
        }
        // QComboBox* QComboBox(QComboBoxPrivate& arg1,QWidget* arg2); >>>> NOT CONVERTED
        public QComboBox(QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QComboBox#", "QComboBox(QWidget*)", typeof(void), typeof(QWidget), parent);
        }
        public QComboBox() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QComboBox", "QComboBox()", typeof(void));
        }
        public int FindText(string text, uint flags) {
            return (int) interceptor.Invoke("findText$$", "findText(const QString&, Qt::MatchFlags) const", typeof(int), typeof(string), text, typeof(uint), flags);
        }
        public int FindText(string text) {
            return (int) interceptor.Invoke("findText$", "findText(const QString&) const", typeof(int), typeof(string), text);
        }
        public int FindData(QVariant data, int role, uint flags) {
            return (int) interceptor.Invoke("findData#$$", "findData(const QVariant&, int, Qt::MatchFlags) const", typeof(int), typeof(QVariant), data, typeof(int), role, typeof(uint), flags);
        }
        public int FindData(QVariant data, int role) {
            return (int) interceptor.Invoke("findData#$", "findData(const QVariant&, int) const", typeof(int), typeof(QVariant), data, typeof(int), role);
        }
        public int FindData(QVariant data) {
            return (int) interceptor.Invoke("findData#", "findData(const QVariant&) const", typeof(int), typeof(QVariant), data);
        }
        public void SetLineEdit(QLineEdit edit) {
            interceptor.Invoke("setLineEdit#", "setLineEdit(QLineEdit*)", typeof(void), typeof(QLineEdit), edit);
        }
        public QLineEdit LineEdit() {
            return (QLineEdit) interceptor.Invoke("lineEdit", "lineEdit() const", typeof(QLineEdit));
        }
        public void SetValidator(QValidator v) {
            interceptor.Invoke("setValidator#", "setValidator(const QValidator*)", typeof(void), typeof(QValidator), v);
        }
        public QValidator Validator() {
            return (QValidator) interceptor.Invoke("validator", "validator() const", typeof(QValidator));
        }
        public void SetCompleter(QCompleter c) {
            interceptor.Invoke("setCompleter#", "setCompleter(QCompleter*)", typeof(void), typeof(QCompleter), c);
        }
        public QCompleter Completer() {
            return (QCompleter) interceptor.Invoke("completer", "completer() const", typeof(QCompleter));
        }
        public QAbstractItemDelegate ItemDelegate() {
            return (QAbstractItemDelegate) interceptor.Invoke("itemDelegate", "itemDelegate() const", typeof(QAbstractItemDelegate));
        }
        public void SetItemDelegate(QAbstractItemDelegate arg1) {
            interceptor.Invoke("setItemDelegate#", "setItemDelegate(QAbstractItemDelegate*)", typeof(void), typeof(QAbstractItemDelegate), arg1);
        }
        public QAbstractItemModel Model() {
            return (QAbstractItemModel) interceptor.Invoke("model", "model() const", typeof(QAbstractItemModel));
        }
        public void SetModel(QAbstractItemModel model) {
            interceptor.Invoke("setModel#", "setModel(QAbstractItemModel*)", typeof(void), typeof(QAbstractItemModel), model);
        }
        public QModelIndex RootModelIndex() {
            return (QModelIndex) interceptor.Invoke("rootModelIndex", "rootModelIndex() const", typeof(QModelIndex));
        }
        public void SetRootModelIndex(QModelIndex index) {
            interceptor.Invoke("setRootModelIndex#", "setRootModelIndex(const QModelIndex&)", typeof(void), typeof(QModelIndex), index);
        }
        public string ItemText(int index) {
            return (string) interceptor.Invoke("itemText$", "itemText(int) const", typeof(string), typeof(int), index);
        }
        public QIcon ItemIcon(int index) {
            return (QIcon) interceptor.Invoke("itemIcon$", "itemIcon(int) const", typeof(QIcon), typeof(int), index);
        }
        public QVariant ItemData(int index, int role) {
            return (QVariant) interceptor.Invoke("itemData$$", "itemData(int, int) const", typeof(QVariant), typeof(int), index, typeof(int), role);
        }
        public QVariant ItemData(int index) {
            return (QVariant) interceptor.Invoke("itemData$", "itemData(int) const", typeof(QVariant), typeof(int), index);
        }
        public void AddItem(string text, QVariant userData) {
            interceptor.Invoke("addItem$#", "addItem(const QString&, const QVariant&)", typeof(void), typeof(string), text, typeof(QVariant), userData);
        }
        public void AddItem(string text) {
            interceptor.Invoke("addItem$", "addItem(const QString&)", typeof(void), typeof(string), text);
        }
        public void AddItem(QIcon icon, string text, QVariant userData) {
            interceptor.Invoke("addItem#$#", "addItem(const QIcon&, const QString&, const QVariant&)", typeof(void), typeof(QIcon), icon, typeof(string), text, typeof(QVariant), userData);
        }
        public void AddItem(QIcon icon, string text) {
            interceptor.Invoke("addItem#$", "addItem(const QIcon&, const QString&)", typeof(void), typeof(QIcon), icon, typeof(string), text);
        }
        public void AddItems(List<string> texts) {
            interceptor.Invoke("addItems?", "addItems(const QStringList&)", typeof(void), typeof(List<string>), texts);
        }
        public void InsertItem(int index, string text, QVariant userData) {
            interceptor.Invoke("insertItem$$#", "insertItem(int, const QString&, const QVariant&)", typeof(void), typeof(int), index, typeof(string), text, typeof(QVariant), userData);
        }
        public void InsertItem(int index, string text) {
            interceptor.Invoke("insertItem$$", "insertItem(int, const QString&)", typeof(void), typeof(int), index, typeof(string), text);
        }
        public void InsertItem(int index, QIcon icon, string text, QVariant userData) {
            interceptor.Invoke("insertItem$#$#", "insertItem(int, const QIcon&, const QString&, const QVariant&)", typeof(void), typeof(int), index, typeof(QIcon), icon, typeof(string), text, typeof(QVariant), userData);
        }
        public void InsertItem(int index, QIcon icon, string text) {
            interceptor.Invoke("insertItem$#$", "insertItem(int, const QIcon&, const QString&)", typeof(void), typeof(int), index, typeof(QIcon), icon, typeof(string), text);
        }
        public void InsertItems(int index, List<string> texts) {
            interceptor.Invoke("insertItems$?", "insertItems(int, const QStringList&)", typeof(void), typeof(int), index, typeof(List<string>), texts);
        }
        public void InsertSeparator(int index) {
            interceptor.Invoke("insertSeparator$", "insertSeparator(int)", typeof(void), typeof(int), index);
        }
        public void RemoveItem(int index) {
            interceptor.Invoke("removeItem$", "removeItem(int)", typeof(void), typeof(int), index);
        }
        public void SetItemText(int index, string text) {
            interceptor.Invoke("setItemText$$", "setItemText(int, const QString&)", typeof(void), typeof(int), index, typeof(string), text);
        }
        public void SetItemIcon(int index, QIcon icon) {
            interceptor.Invoke("setItemIcon$#", "setItemIcon(int, const QIcon&)", typeof(void), typeof(int), index, typeof(QIcon), icon);
        }
        public void SetItemData(int index, QVariant value, int role) {
            interceptor.Invoke("setItemData$#$", "setItemData(int, const QVariant&, int)", typeof(void), typeof(int), index, typeof(QVariant), value, typeof(int), role);
        }
        public void SetItemData(int index, QVariant value) {
            interceptor.Invoke("setItemData$#", "setItemData(int, const QVariant&)", typeof(void), typeof(int), index, typeof(QVariant), value);
        }
        public QAbstractItemView View() {
            return (QAbstractItemView) interceptor.Invoke("view", "view() const", typeof(QAbstractItemView));
        }
        public void SetView(QAbstractItemView itemView) {
            interceptor.Invoke("setView#", "setView(QAbstractItemView*)", typeof(void), typeof(QAbstractItemView), itemView);
        }
        [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));
        }
        [SmokeMethod("showPopup()")]
        public virtual void ShowPopup() {
            interceptor.Invoke("showPopup", "showPopup()", typeof(void));
        }
        [SmokeMethod("hidePopup()")]
        public virtual void HidePopup() {
            interceptor.Invoke("hidePopup", "hidePopup()", typeof(void));
        }
        [SmokeMethod("event(QEvent*)")]
        public new virtual bool Event(QEvent arg1) {
            return (bool) interceptor.Invoke("event#", "event(QEvent*)", typeof(bool), typeof(QEvent), arg1);
        }
        [Q_SLOT("void clear()")]
        public void Clear() {
            interceptor.Invoke("clear", "clear()", typeof(void));
        }
        [Q_SLOT("void clearEditText()")]
        public void ClearEditText() {
            interceptor.Invoke("clearEditText", "clearEditText()", typeof(void));
        }
        [Q_SLOT("void setEditText(QString)")]
        public void SetEditText(string text) {
            interceptor.Invoke("setEditText$", "setEditText(const QString&)", typeof(void), typeof(string), text);
        }
        [Q_SLOT("void setCurrentIndex(int)")]
        public void SetCurrentIndex(int index) {
            interceptor.Invoke("setCurrentIndex$", "setCurrentIndex(int)", typeof(void), typeof(int), index);
        }
        [SmokeMethod("focusInEvent(QFocusEvent*)")]
        protected override void FocusInEvent(QFocusEvent e) {
            interceptor.Invoke("focusInEvent#", "focusInEvent(QFocusEvent*)", typeof(void), typeof(QFocusEvent), e);
        }
        [SmokeMethod("focusOutEvent(QFocusEvent*)")]
        protected override void FocusOutEvent(QFocusEvent e) {
            interceptor.Invoke("focusOutEvent#", "focusOutEvent(QFocusEvent*)", typeof(void), typeof(QFocusEvent), e);
        }
        [SmokeMethod("changeEvent(QEvent*)")]
        protected override void ChangeEvent(QEvent e) {
            interceptor.Invoke("changeEvent#", "changeEvent(QEvent*)", typeof(void), typeof(QEvent), e);
        }
        [SmokeMethod("resizeEvent(QResizeEvent*)")]
        protected override void ResizeEvent(QResizeEvent e) {
            interceptor.Invoke("resizeEvent#", "resizeEvent(QResizeEvent*)", typeof(void), typeof(QResizeEvent), e);
        }
        [SmokeMethod("paintEvent(QPaintEvent*)")]
        protected override void PaintEvent(QPaintEvent e) {
            interceptor.Invoke("paintEvent#", "paintEvent(QPaintEvent*)", typeof(void), typeof(QPaintEvent), e);
        }
        [SmokeMethod("showEvent(QShowEvent*)")]
        protected override void ShowEvent(QShowEvent e) {
            interceptor.Invoke("showEvent#", "showEvent(QShowEvent*)", typeof(void), typeof(QShowEvent), e);
        }
        [SmokeMethod("hideEvent(QHideEvent*)")]
        protected override void HideEvent(QHideEvent e) {
            interceptor.Invoke("hideEvent#", "hideEvent(QHideEvent*)", typeof(void), typeof(QHideEvent), e);
        }
        [SmokeMethod("mousePressEvent(QMouseEvent*)")]
        protected override void MousePressEvent(QMouseEvent e) {
            interceptor.Invoke("mousePressEvent#", "mousePressEvent(QMouseEvent*)", typeof(void), typeof(QMouseEvent), e);
        }
        [SmokeMethod("mouseReleaseEvent(QMouseEvent*)")]
        protected override void MouseReleaseEvent(QMouseEvent e) {
            interceptor.Invoke("mouseReleaseEvent#", "mouseReleaseEvent(QMouseEvent*)", typeof(void), typeof(QMouseEvent), e);
        }
        [SmokeMethod("keyPressEvent(QKeyEvent*)")]
        protected override void KeyPressEvent(QKeyEvent e) {
            interceptor.Invoke("keyPressEvent#", "keyPressEvent(QKeyEvent*)", typeof(void), typeof(QKeyEvent), e);
        }
        [SmokeMethod("keyReleaseEvent(QKeyEvent*)")]
        protected override void KeyReleaseEvent(QKeyEvent e) {
            interceptor.Invoke("keyReleaseEvent#", "keyReleaseEvent(QKeyEvent*)", typeof(void), typeof(QKeyEvent), e);
        }
        [SmokeMethod("wheelEvent(QWheelEvent*)")]
        protected override void WheelEvent(QWheelEvent e) {
            interceptor.Invoke("wheelEvent#", "wheelEvent(QWheelEvent*)", typeof(void), typeof(QWheelEvent), e);
        }
        [SmokeMethod("contextMenuEvent(QContextMenuEvent*)")]
        protected override void ContextMenuEvent(QContextMenuEvent e) {
            interceptor.Invoke("contextMenuEvent#", "contextMenuEvent(QContextMenuEvent*)", typeof(void), typeof(QContextMenuEvent), e);
        }
        [SmokeMethod("inputMethodEvent(QInputMethodEvent*)")]
        protected override void InputMethodEvent(QInputMethodEvent arg1) {
            interceptor.Invoke("inputMethodEvent#", "inputMethodEvent(QInputMethodEvent*)", typeof(void), typeof(QInputMethodEvent), arg1);
        }
        [SmokeMethod("inputMethodQuery(Qt::InputMethodQuery) const")]
        protected new virtual QVariant InputMethodQuery(Qt.InputMethodQuery arg1) {
            return (QVariant) interceptor.Invoke("inputMethodQuery$", "inputMethodQuery(Qt::InputMethodQuery) const", typeof(QVariant), typeof(Qt.InputMethodQuery), arg1);
        }
        protected void InitStyleOption(QStyleOptionComboBox option) {
            interceptor.Invoke("initStyleOption#", "initStyleOption(QStyleOptionComboBox*) const", typeof(void), typeof(QStyleOptionComboBox), option);
        }
        ~QComboBox() {
            interceptor.Invoke("~QComboBox", "~QComboBox()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~QComboBox", "~QComboBox()", 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 IQComboBoxSignals Emit {
            get { return (IQComboBoxSignals) Q_EMIT; }
        }
    }

    public interface IQComboBoxSignals : IQWidgetSignals {
        [Q_SIGNAL("void editTextChanged(QString)")]
        void EditTextChanged(string arg1);
        [Q_SIGNAL("void activated(int)")]
        void Activated(int index);
        [Q_SIGNAL("void activated(QString)")]
        void Activated(string arg1);
        [Q_SIGNAL("void highlighted(int)")]
        void Highlighted(int index);
        [Q_SIGNAL("void highlighted(QString)")]
        void Highlighted(string arg1);
        [Q_SIGNAL("void currentIndexChanged(int)")]
        void CurrentIndexChanged(int index);
        [Q_SIGNAL("void currentIndexChanged(QString)")]
        void CurrentIndexChanged(string arg1);
    }
}
