void WStatusLight::setPixmap(int iState, const QString& filename, SizeMode mode) { if (iState < 0 || iState >= m_pixmaps.size()) { return; } PaintablePointer pPixmap = WPixmapStore::getPaintable(filename, Paintable::STRETCH); if (!pPixmap.isNull() && !pPixmap->isNull()) { m_pixmaps[iState] = pPixmap; switch (mode) { case RESIZE: // Allow the pixmap to stretch or tile. setBaseSize(pPixmap->size()); break; case FIXED: // Set size of widget equal to pixmap size setFixedSize(pPixmap->size()); break; default: setFixedSize(pPixmap->size()); break; } } else { qDebug() << "WStatusLight: Error loading pixmap:" << filename << iState; m_pixmaps[iState].clear(); } }
void WBattery::setPixmap(PaintablePointer* ppPixmap, const PixmapSource& source, Paintable::DrawMode mode) { PaintablePointer pPixmap = WPixmapStore::getPaintable(source, mode); if (pPixmap.isNull() || pPixmap->isNull()) { qDebug() << this << "Error loading pixmap:" << source.getPath(); } else { *ppPixmap = pPixmap; setFixedSize(pPixmap->size()); } }
void WDisplay::setPixmap(QVector<PaintablePointer>* pPixmaps, int iPos, const QString& filename) { if (iPos < 0 || iPos >= pPixmaps->size()) { return; } PaintablePointer pPixmap = WPixmapStore::getPaintable(filename); if (pPixmap.isNull() || pPixmap->isNull()) { qDebug() << metaObject()->className() << "Error loading pixmap:" << filename; } else { (*pPixmaps)[iPos] = pPixmap; setFixedSize(pPixmap->size()); } }
void WStatusLight::setPixmap(int iState, PixmapSource source, Paintable::DrawMode mode) { if (iState < 0 || iState >= m_pixmaps.size()) { return; } PaintablePointer pPixmap = WPixmapStore::getPaintable(source, mode); if (!pPixmap.isNull() && !pPixmap->isNull()) { m_pixmaps[iState] = pPixmap; if (mode == Paintable::FIXED) { setFixedSize(pPixmap->size()); } } else { qDebug() << "WStatusLight: Error loading pixmap:" << source.getPath() << iState; m_pixmaps[iState].clear(); } }
void WStatusLight::paintEvent(QPaintEvent * /*unused*/) { QStyleOption option; option.initFrom(this); QStylePainter p(this); p.drawPrimitive(QStyle::PE_Widget, option); if (m_iPos < 0 || m_iPos >= m_pixmaps.size()) { return; } PaintablePointer pPixmap = m_pixmaps[m_iPos]; if (pPixmap.isNull() || pPixmap->isNull()) { return; } pPixmap->draw(rect(), &p); }
void WPushButton::setPixmap(int iState, bool bPressed, const QString &filename) { QVector<PaintablePointer>& pixmaps = bPressed ? m_pressedPixmaps : m_unpressedPixmaps; if (iState < 0 || iState >= pixmaps.size()) { return; } PaintablePointer pPixmap = WPixmapStore::getPaintable(filename, Paintable::STRETCH); if (pPixmap.isNull() || pPixmap->isNull()) { qDebug() << "WPushButton: Error loading pixmap:" << filename; } else { // Set size of widget equal to pixmap size setFixedSize(pPixmap->size()); } pixmaps.replace(iState, pPixmap); }
void WPushButton::paintEvent(QPaintEvent* e) { Q_UNUSED(e); QStyleOption option; option.initFrom(this); QStylePainter p(this); p.drawPrimitive(QStyle::PE_Widget, option); double value = getControlParameterDisplay(); if (m_iNoStates == 0) { return; } const QVector<PaintablePointer>& pixmaps = m_bPressed ? m_pressedPixmaps : m_unpressedPixmaps; int idx = static_cast<int>(value) % m_iNoStates; // Just in case m_iNoStates is somehow different from pixmaps.size(). if (idx < 0){ idx = 0; } else if (idx >= pixmaps.size()) { idx = pixmaps.size() - 1; } if (m_pPixmapBack) { m_pPixmapBack->draw(0, 0, &p); } PaintablePointer pPixmap = pixmaps.at(idx); if (!pPixmap.isNull() && !pPixmap->isNull()) { pPixmap->draw(0, 0, &p); } QString text = m_text.at(idx); if (!text.isEmpty()) { p.drawText(rect(), Qt::AlignCenter, text); } }