// qcombobox.sip generated by MetaSIP on Sun Nov  9 16:48:00 2014
//
// This file is part of the QtGui Python extension module.
//
// Copyright (c) 2014 Riverbank Computing Limited <info@riverbankcomputing.com>
// 
// This file is part of PyQt.
// 
// This file may be used under the terms of the GNU General Public
// License versions 2.0 or 3.0 as published by the Free Software
// Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
// included in the packaging of this file.  Alternatively you may (at
// your option) use any later version of the GNU General Public
// License if such license has been publicly approved by Riverbank
// Computing Limited (or its successors, if any) and the KDE Free Qt
// Foundation. In addition, as a special exception, Riverbank gives you
// certain additional rights. These rights are described in the Riverbank
// GPL Exception version 1.1, which can be found in the file
// GPL_EXCEPTION.txt in this package.
// 
// If you are unsure which license is appropriate for your use, please
// contact the sales department at sales@riverbankcomputing.com.
// 
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.


class QComboBox : QWidget
{
%TypeHeaderCode
#include <qcombobox.h>
%End

public:
    explicit QComboBox(QWidget *parent /TransferThis/ = 0);
    virtual ~QComboBox();
    int maxVisibleItems() const;
    void setMaxVisibleItems(int maxItems);
    int count() const /__len__/;
    void setMaxCount(int max);
    int maxCount() const;
    bool autoCompletion() const;
    void setAutoCompletion(bool enable);
    Qt::CaseSensitivity autoCompletionCaseSensitivity() const;
    void setAutoCompletionCaseSensitivity(Qt::CaseSensitivity sensitivity);
    bool duplicatesEnabled() const;
    void setDuplicatesEnabled(bool enable);
    void setFrame(bool);
    bool hasFrame() const;
    int findText(const QString &text, Qt::MatchFlags flags = Qt::MatchExactly|Qt::MatchCaseSensitive) const;
    int findData(const QVariant &data, int role = Qt::UserRole, Qt::MatchFlags flags = Qt::MatchExactly|Qt::MatchCaseSensitive) const;

    enum InsertPolicy
    {
        NoInsert,
        InsertAtTop,
        InsertAtCurrent,
        InsertAtBottom,
        InsertAfterCurrent,
        InsertBeforeCurrent,
%If (Qt_4_2_0 -)
        InsertAlphabetically,
%End
    };

    QComboBox::InsertPolicy insertPolicy() const;
    void setInsertPolicy(QComboBox::InsertPolicy policy);

    enum SizeAdjustPolicy
    {
        AdjustToContents,
        AdjustToContentsOnFirstShow,
        AdjustToMinimumContentsLength,
%If (Qt_4_3_0 -)
        AdjustToMinimumContentsLengthWithIcon,
%End
    };

    QComboBox::SizeAdjustPolicy sizeAdjustPolicy() const;
    void setSizeAdjustPolicy(QComboBox::SizeAdjustPolicy policy);
    int minimumContentsLength() const;
    void setMinimumContentsLength(int characters);
    QSize iconSize() const;
    void setIconSize(const QSize &size);
    bool isEditable() const;
    void setEditable(bool editable);
    void setLineEdit(QLineEdit *edit /Transfer/);
    QLineEdit *lineEdit() const;
    void setValidator(const QValidator *v /KeepReference/);
    const QValidator *validator() const;
    QAbstractItemDelegate *itemDelegate() const;
    void setItemDelegate(QAbstractItemDelegate *delegate /KeepReference/);
    QAbstractItemModel *model() const;
    void setModel(QAbstractItemModel *model /KeepReference/);
    QModelIndex rootModelIndex() const;
    void setRootModelIndex(const QModelIndex &index);
    int modelColumn() const;
    void setModelColumn(int visibleColumn);
    int currentIndex() const;
    void setCurrentIndex(int index);
    QString currentText() const;
    QString itemText(int index) const;
    QIcon itemIcon(int index) const;
    QVariant itemData(int index, int role = Qt::UserRole) const;
    void addItems(const QStringList &texts);
    void addItem(const QString &text, const QVariant &userData /DocValue="Py_v3:None"/ = QVariant());
    void addItem(const QIcon &icon, const QString &text, const QVariant &userData /DocValue="Py_v3:None"/ = QVariant());
    void insertItem(int index, const QString &text, const QVariant &userData /DocValue="Py_v3:None"/ = QVariant());
    void insertItem(int index, const QIcon &icon, const QString &text, const QVariant &userData /DocValue="Py_v3:None"/ = QVariant());
    void insertItems(int index, const QStringList &texts);
    void removeItem(int index);
    void setItemText(int index, const QString &text);
    void setItemIcon(int index, const QIcon &icon);
    void setItemData(int index, const QVariant &value, int role = Qt::UserRole);
    QAbstractItemView *view() const;
    void setView(QAbstractItemView *itemView /Transfer/);
    virtual QSize sizeHint() const;
    virtual QSize minimumSizeHint() const;
    virtual void showPopup();
    virtual void hidePopup();
    virtual bool event(QEvent *event);
%If (Qt_4_2_0 -)
    void setCompleter(QCompleter *c /KeepReference/);
%End
%If (Qt_4_2_0 -)
    QCompleter *completer() const;
%End
%If (Qt_4_4_0 -)
    void insertSeparator(int index);
%End

public slots:
    void clear();
    void clearEditText();
    void setEditText(const QString &text);
%If (Qt_5_0_0 -)
    void setCurrentText(const QString &text);
%End

signals:
    void editTextChanged(const QString &);
    void activated(int index);
    void activated(const QString &);
    void currentIndexChanged(int index);
    void currentIndexChanged(const QString &);
%If (Qt_5_0_0 -)
    void currentTextChanged(const QString &);
%End
    void highlighted(int index);
    void highlighted(const QString &);

protected:
%If (Qt_4_3_0 -)
    void initStyleOption(QStyleOptionComboBox *option) const;
%End
    virtual void focusInEvent(QFocusEvent *e);
    virtual void focusOutEvent(QFocusEvent *e);
    virtual void changeEvent(QEvent *e);
    virtual void resizeEvent(QResizeEvent *e);
    virtual void paintEvent(QPaintEvent *e);
    virtual void showEvent(QShowEvent *e);
    virtual void hideEvent(QHideEvent *e);
    virtual void mousePressEvent(QMouseEvent *e);
    virtual void mouseReleaseEvent(QMouseEvent *e);
    virtual void keyPressEvent(QKeyEvent *e);
    virtual void keyReleaseEvent(QKeyEvent *e);
    virtual void wheelEvent(QWheelEvent *e);
    virtual void contextMenuEvent(QContextMenuEvent *e);
    virtual void inputMethodEvent(QInputMethodEvent *);
%If (- Qt_5_0_0)
    virtual QVariant inputMethodQuery(Qt::InputMethodQuery) const;
%End

public:
%If (Qt_5_0_0 -)
    virtual QVariant inputMethodQuery(Qt::InputMethodQuery) const;
%End

private:
    QComboBox(const QComboBox &);
};
