Public Slots | Signals | Public Member Functions | Protected Member Functions | Properties | Friends

QxtLabel Class Reference
[QxtGui]

A label which is able to show elided and rotated plain text. More...

#include <qxtlabel.h>

Collaboration diagram for QxtLabel:
Collaboration graph
[legend]

List of all members.

Public Slots

void setText (const QString &text)

Signals

void clicked ()
void textChanged (const QString &text)

Public Member Functions

 QxtLabel (QWidget *parent=0, Qt::WindowFlags flags=0)
 QxtLabel (const QString &text, QWidget *parent=0, Qt::WindowFlags flags=0)
virtual ~QxtLabel ()
QString text () const
Qt::Alignment alignment () const
void setAlignment (Qt::Alignment alignment)
Qt::TextElideMode elideMode () const
void setElideMode (Qt::TextElideMode mode)
Qxt::Rotation rotation () const
void setRotation (Qxt::Rotation rotation)
virtual QSize sizeHint () const
virtual QSize minimumSizeHint () const

Protected Member Functions

virtual void changeEvent (QEvent *event)
virtual void mousePressEvent (QMouseEvent *event)
virtual void mouseReleaseEvent (QMouseEvent *event)
virtual void paintEvent (QPaintEvent *event)

Properties

QString text
 This property holds the text of the label.
Qt::Alignment alignment
 This property holds the alignment of the text.
Qt::TextElideMode elideMode
 This property holds the elide mode of the text.
Qxt::Rotation rotation
 This property holds the rotation of the label.

Friends

class QxtLabelPrivate

Detailed Description

A label which is able to show elided and rotated plain text.

QxtLabel is a label which is able to show elided and rotated plain text. In addition, QxtLabel provides a signal for clicking.

qxtlabel.png

QxtLabel in action.

Definition at line 35 of file qxtlabel.h.


Constructor & Destructor Documentation

QxtLabel::QxtLabel ( QWidget *  parent = 0,
Qt::WindowFlags  flags = 0 
) [explicit]

Constructs a new QxtLabel with parent and flags.

Definition at line 92 of file qxtlabel.cpp.

References QXT_INIT_PRIVATE.

                                                       : QFrame(parent, flags)
{
    QXT_INIT_PRIVATE(QxtLabel);
    qxt_d().init();
}
QxtLabel::QxtLabel ( const QString &  text,
QWidget *  parent = 0,
Qt::WindowFlags  flags = 0 
) [explicit]

Constructs a new QxtLabel with text, parent and flags.

Definition at line 101 of file qxtlabel.cpp.

References QXT_INIT_PRIVATE.

                                                                            : QFrame(parent, flags)
{
    QXT_INIT_PRIVATE(QxtLabel);
    qxt_d().init(text);
}
QxtLabel::~QxtLabel (  ) [virtual]

Destructs the label.

Definition at line 110 of file qxtlabel.cpp.

{}

Member Function Documentation

Qt::Alignment QxtLabel::alignment (  ) const

Referenced by setAlignment().

void QxtLabel::changeEvent ( QEvent *  event ) [protected, virtual]

Definition at line 303 of file qxtlabel.cpp.

{
    QFrame::changeEvent(event);
    switch (event->type())
    {
    case QEvent::FontChange:
    case QEvent::ApplicationFontChange:
        qxt_d().updateLabel();
        break;
    default:
        // nothing to do
        break;
    }
}
QxtLabel::clicked (  ) [signal]

This signal is emitted whenever the label has been clicked.

Note:
A combination of mouse button press and release in shorter time than QApplication::doubleClickInterval is considered as a click.
See also:
QApplication::doubleClickInterval

Referenced by mouseReleaseEvent().

Qt::TextElideMode QxtLabel::elideMode (  ) const
QSize QxtLabel::minimumSizeHint (  ) const [virtual]

Definition at line 238 of file qxtlabel.cpp.

References sizeHint(), and Vertical_Mask.

{
    switch (qxt_d().mode)
    {
#if QT_VERSION >= 0x040200
    case Qt::ElideNone:
        return sizeHint();
#endif // QT_VERSION
    default:
    {
        const QFontMetrics& fm = fontMetrics();
        QSize size(fm.width("..."), fm.height());
        if (qxt_d().rot & Vertical_Mask)
            size.transpose();
        return size;
    }
    }
}
void QxtLabel::mousePressEvent ( QMouseEvent *  event ) [protected, virtual]

Definition at line 321 of file qxtlabel.cpp.

{
    QFrame::mousePressEvent(event);
    qxt_d().time.start();
}
void QxtLabel::mouseReleaseEvent ( QMouseEvent *  event ) [protected, virtual]

Definition at line 330 of file qxtlabel.cpp.

References clicked().

{
    QFrame::mouseReleaseEvent(event);
    if (qxt_d().time.elapsed() < qApp->doubleClickInterval())
        emit clicked();
}
void QxtLabel::paintEvent ( QPaintEvent *  event ) [protected, virtual]

Definition at line 260 of file qxtlabel.cpp.

References Qxt::Clockwise, Qxt::CounterClockwise, text(), Qxt::UpsideDown, and Vertical_Mask.

{
    QFrame::paintEvent(event);
    QPainter p(this);
    p.rotate(qxt_d().rot);
    QRect r = contentsRect();
    switch (qxt_d().rot)
    {
    case Qxt::UpsideDown:
        p.translate(-r.width(), -r.height());
        break;

    case Qxt::Clockwise:
        p.translate(0, -r.width());
        break;

    case Qxt::CounterClockwise:
        p.translate(-r.height(), 0);
        break;

    default:
        // nothing to do
        break;
    }

    if (qxt_d().rot & Vertical_Mask)
    {
        QSize s = r.size();
        s.transpose();
        r = QRect(r.topLeft(), s);
    }

#if QT_VERSION < 0x040200
    const QString elidedText = QAbstractItemDelegate::elidedText(fontMetrics(), r.width(), qxt_d().mode, qxt_d().text);
#else // QT_VERSION >= 0x040200
    const QString elidedText = fontMetrics().elidedText(qxt_d().text, qxt_d().mode, r.width());
#endif // QT_VERSION
    p.drawText(r, qxt_d().align, elidedText);
}
Qxt::Rotation QxtLabel::rotation (  ) const

Referenced by setRotation().

void QxtLabel::setAlignment ( Qt::Alignment  alignment )

Definition at line 146 of file qxtlabel.cpp.

References alignment().

{
    if (qxt_d().align != alignment)
    {
        qxt_d().align = alignment;
        update(); // no geometry change, repaint is sufficient
    }
}
void QxtLabel::setElideMode ( Qt::TextElideMode  mode )

Definition at line 169 of file qxtlabel.cpp.

{
    if (qxt_d().mode != mode)
    {
        qxt_d().mode = mode;
        qxt_d().updateLabel();
    }
}
void QxtLabel::setRotation ( Qxt::Rotation  rotation )

Definition at line 192 of file qxtlabel.cpp.

References Qxt::Clockwise, Qxt::CounterClockwise, Qxt::NoRotation, rotation(), Qxt::UpsideDown, and Vertical_Mask.

{
    if (qxt_d().rot != rotation)
    {
        Qxt::Rotation prev = qxt_d().rot;
        qxt_d().rot = rotation;
        switch (rotation)
        {
        case Qxt::NoRotation:
        case Qxt::UpsideDown:
            if (prev & Vertical_Mask)
            {
                updateGeometry();
            }
            break;

        case Qxt::Clockwise:
        case Qxt::CounterClockwise:
            if ((prev & Vertical_Mask) == 0)
            {
                updateGeometry();
            }
            break;
        default:
            // nothing to do
            break;
        }
    }
    update();
}
void QxtLabel::setText ( const QString &  text ) [slot]

Definition at line 122 of file qxtlabel.cpp.

References text(), and textChanged().

{
    if (qxt_d().text != text)
    {
        qxt_d().text = text;
        qxt_d().updateLabel();
        emit textChanged(text);
    }
}
QSize QxtLabel::sizeHint (  ) const [virtual]

Definition at line 226 of file qxtlabel.cpp.

References text(), and Vertical_Mask.

Referenced by minimumSizeHint().

{
    const QFontMetrics& fm = fontMetrics();
    QSize size(fm.width(qxt_d().text), fm.height());
    if (qxt_d().rot & Vertical_Mask)
        size.transpose();
    return size;
}
QString QxtLabel::text (  ) const

Referenced by paintEvent(), setText(), and sizeHint().

void QxtLabel::textChanged ( const QString &  text ) [signal]

Referenced by setText().


Friends And Related Function Documentation

friend class QxtLabelPrivate [friend]

Definition at line 38 of file qxtlabel.h.


Property Documentation

Qt::Alignment QxtLabel::alignment [read, write]

This property holds the alignment of the text.

The text is aligned according to this property. The default value is Qt::AlignCenter.

See also:
text, Qt::Alignment

Definition at line 40 of file qxtlabel.h.

Qt::TextElideMode QxtLabel::elideMode [read, write]

This property holds the elide mode of the text.

The text is elided according to this property. The default value is Qt::ElideMiddle.

See also:
text, Qt::TextElideMode

Definition at line 41 of file qxtlabel.h.

Qxt::Rotation QxtLabel::rotation [read, write]

This property holds the rotation of the label.

The label is rotated according to this property. The default value is Qxt::NoRotation.

See also:
Qxt::Rotation

Definition at line 42 of file qxtlabel.h.

QString QxtLabel::text [read, write]

This property holds the text of the label.

Definition at line 38 of file qxtlabel.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines