OpenCores
URL https://opencores.org/ocsvn/riscv_vhdl/riscv_vhdl/trunk

Subversion Repositories riscv_vhdl

[/] [riscv_vhdl/] [trunk/] [debugger/] [src/] [gui_plugin/] [PeriphWidgets/] [DipArea.cpp] - Rev 2

Go to most recent revision | Compare with Previous | Blame | View Log

/**
 * @file
 * @copyright  Copyright 2016 GNSS Sensor Ltd. All right reserved.
 * @author     Sergey Khabarov - sergeykhbr@gmail.com
 * @brief      DIP's area renderer definition.
 */
 
#include "DipArea.h"
#include "moc_DipArea.h"
 
#include <QtGui/QPainter>
 
namespace debugger {
 
DipArea::DipArea(QWidget *parent) : QWidget(parent) {
    dipTotal_.make_int64(8);
    dips_ = 0xF0;
 
    QImage img(tr(":/images/dip_t4_l21_up.png"));
    pixmapBody_ = QPixmap(size()).fromImage(img);
 
    QImage img2(tr(":/images/dip_down.png"));
    pixmapDown_ = QPixmap(size()).fromImage(img2);
 
    setMinimumWidth(pixmapBody_.size().width() * dipTotal_.to_int());
    setMinimumHeight(pixmapBody_.size().height());
}
 
 
void DipArea::paintEvent(QPaintEvent *event) {
    QPainter p(this);
 
    for (int i = 0; i < dipTotal_.to_int(); i++) {
        QPoint pos(i * pixmapBody_.size().width(), 0);
        p.drawPixmap(pos, pixmapBody_);
        // Count from left (DIP[0]) to right (DIP[n-1])
        if (((dips_ >> (dipTotal_.to_int() - 1 - i)) & 0x1) == 0) {
            pos += QPoint(4, 21);
            p.drawPixmap(pos, pixmapDown_);
        }
    }
    p.end();
}
 
void DipArea::slotUpdate(uint32_t value) {
    dips_ = value;
    update();
}
 
}  // namespace debugger
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.