#define _CUSTOMWIDGETS_H_
#include <QLineEdit>
+#include <QPushButton>
#include <QLabel>
-#include <QIcon>
+#include <QStackedWidget>
+#include <QSpinBox>
/**
This class provides a QLineEdit which contains a greyed-out hinting
Q_PROPERTY( QString clickMessage READ clickMessage WRITE setClickMessage )
public:
ClickLineEdit( const QString &msg, QWidget *parent );
- virtual ~ClickLineEdit() {};
void setClickMessage( const QString &msg );
- QString clickMessage() const { return mClickMessage; }
+ const QString& clickMessage() const { return mClickMessage; }
virtual void setText( const QString& txt );
protected:
virtual void paintEvent( QPaintEvent *e );
bool mDrawClickMsg;
};
-class QToolButton;
-class SearchLineEdit : public QFrame
+class QVLCFramelessButton : public QPushButton
{
Q_OBJECT
public:
- SearchLineEdit( QWidget *parent );
+ QVLCFramelessButton( QWidget *parent = NULL );
+ QSize sizeHint() const;
+protected:
+ virtual void paintEvent( QPaintEvent * event );
+};
+
+class SearchLineEdit : public QLineEdit
+{
+ Q_OBJECT
+public:
+ SearchLineEdit( QWidget *parent = NULL );
private:
- ClickLineEdit *searchLine;
- QToolButton *clearButton;
+ void resizeEvent ( QResizeEvent * event );
+ void focusInEvent( QFocusEvent *event );
+ void focusOutEvent( QFocusEvent *event );
+ void paintEvent( QPaintEvent *event );
+ void setMessageVisible( bool on );
+ QVLCFramelessButton *clearButton;
+ bool message;
+
+public slots:
+ void clear();
private slots:
void updateText( const QString& );
+};
-signals:
- void textChanged( const QString& );
+class QVLCElidingLabel : public QLabel
+{
+public:
+ QVLCElidingLabel( const QString &s = QString(),
+ Qt::TextElideMode mode = Qt::ElideRight,
+ QWidget * parent = NULL );
+ void setElideMode( Qt::TextElideMode );
+private:
+ void paintEvent( QPaintEvent * event );
+ Qt::TextElideMode elideMode;
+};
+
+class QVLCStackedWidget : public QStackedWidget
+{
+public:
+ QVLCStackedWidget( QWidget *parent ) : QStackedWidget( parent ) { }
+ QSize minimumSizeHint () const
+ {
+ return currentWidget() ? currentWidget()->minimumSizeHint() : QSize();
+ }
};
-class QVLCIconLabel : public QLabel
+class DebugLevelSpinBox : public QSpinBox
{
Q_OBJECT
public:
- QVLCIconLabel( const QIcon&, QWidget *parent = 0 );
- void setIcon( const QIcon& );
-signals:
- void clicked();
+ DebugLevelSpinBox( QWidget *parent ) : QSpinBox( parent ) { };
protected:
- virtual void enterEvent( QEvent * );
- virtual void leaveEvent( QEvent * );
- virtual void mouseReleaseEvent( QMouseEvent * );
- virtual void resizeEvent( QResizeEvent * );
-private:
- inline void updatePixmap( );
- QIcon icon;
- QIcon::Mode iconMode;
+ QString textFromValue( int ) const;
+ int mapTextToValue ( bool * );
};
/* VLC Key/Wheel hotkeys interactions */