Files
rtabmap/guilib/src/3rdParty/QMultiComboBox.h

93 lines
2.0 KiB
C
Raw Normal View History

/****************************************************************************
**
** Copyright (C) 2010 Richard Steffen and/or its subsidiary(-ies).
** All rights reserved.
** Contact: rsteffen@messbild.de, rsteffen@uni-bonn.de
**
** Observe the License Information
**
****************************************************************************/
#ifndef __MULTIBOXCOMBO_H__
#define __MULTIBOXCOMBO_H__
#include <iostream>
using namespace std;
#include <QComboBox>
#include <QListWidget>
#include <QVBoxLayout>
#include <QStylePainter>
class QMultiComboBox: public QComboBox
{
Q_OBJECT
public:
/// Constructor
QMultiComboBox(QWidget *widget = 0);
virtual ~QMultiComboBox();
/// the main display text
void SetDisplayText(QString text);
/// get the main display text
QString GetDisplayText() const;
/// add a item to the list
void addItem(const QString& text, const QVariant& userData = QVariant());
/// custom paint
virtual void paintEvent(QPaintEvent *e);
/// set the height of the popup
void setPopupHeight(int h);
/// replace standard QComboBox Popup
void showPopup();
void hidePopup();
/// replace neccessary data access
int count();
void setCurrentIndex(int index);
QString currentText();
QString itemText(int row);
QVariant itemData(int row);
void setItemChecked(int row, bool checked);
signals:
/// item changed
void itemChanged();
public slots:
/// react on changes of the item checkbox
void scanItemSelect(QListWidgetItem* item);
/// the init style
void initStyleOption(QStyleOptionComboBox *option) const;
void clear();
protected:
/// the height of the popup
int popheight_;
/// lower/upper screen bound
int screenbound_;
/// hold the main display text
QString m_DisplayText_;
/// popup frame
QFrame popframe_;
/// multi selection list in the popup frame
QListWidget vlist_;
};
#endif