#ifndef ICONEDLABEL_H
#define ICONEDLABEL_H

#include <QLabel>
#include <QIcon>
#include "qad_types.h"


class QAD_EXPORT IconedLabel: public QFrame
{
	Q_OBJECT
	Q_ENUMS(Direction)
	Q_PROPERTY(QString text READ text WRITE setText)
	Q_PROPERTY(QIcon icon READ icon WRITE setIcon)
	Q_PROPERTY(QSize iconSize READ iconSize WRITE setIconSize)
	Q_PROPERTY(Direction direction READ direction WRITE setDirection)
public:
	enum Direction {LeftToRight = 0, RightToLeft = 1, TopToBottom = 2, BottomToTop = 3};

	explicit IconedLabel(QWidget * parent = 0);

	QString text() const {return label_.text();}
	QIcon icon() const;
	QSize iconSize() const {return size_;}
	Direction direction() const {return dir_;}

protected:
	virtual bool event(QEvent * e);
	QSize realIconSize() const;

	QLabel label_, icon_;
	QIcon sicon_;
	QSize size_;
	Direction dir_;
	
public slots:
	void setText(const QString & t) {label_.setText(t);}
	void setIcon(const QIcon & i);
	void setIconSize(const QSize & s);
	void setDirection(Direction d);

signals:
	
};

#endif // ICONEDLABEL_H
