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] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 sergeykhbr
/**
2
 * @file
3
 * @copyright  Copyright 2016 GNSS Sensor Ltd. All right reserved.
4
 * @author     Sergey Khabarov - sergeykhbr@gmail.com
5
 * @brief      DIP's area renderer definition.
6
 */
7
 
8
#include "DipArea.h"
9
#include "moc_DipArea.h"
10
 
11
#include <QtGui/QPainter>
12
 
13
namespace debugger {
14
 
15
DipArea::DipArea(QWidget *parent) : QWidget(parent) {
16
    dipTotal_.make_int64(8);
17
    dips_ = 0xF0;
18
 
19
    QImage img(tr(":/images/dip_t4_l21_up.png"));
20
    pixmapBody_ = QPixmap(size()).fromImage(img);
21
 
22
    QImage img2(tr(":/images/dip_down.png"));
23
    pixmapDown_ = QPixmap(size()).fromImage(img2);
24
 
25
    setMinimumWidth(pixmapBody_.size().width() * dipTotal_.to_int());
26
    setMinimumHeight(pixmapBody_.size().height());
27
}
28
 
29
 
30
void DipArea::paintEvent(QPaintEvent *event) {
31
    QPainter p(this);
32
 
33
    for (int i = 0; i < dipTotal_.to_int(); i++) {
34
        QPoint pos(i * pixmapBody_.size().width(), 0);
35
        p.drawPixmap(pos, pixmapBody_);
36
        // Count from left (DIP[0]) to right (DIP[n-1])
37
        if (((dips_ >> (dipTotal_.to_int() - 1 - i)) & 0x1) == 0) {
38
            pos += QPoint(4, 21);
39
            p.drawPixmap(pos, pixmapDown_);
40
        }
41
    }
42
    p.end();
43
}
44
 
45
void DipArea::slotUpdate(uint32_t value) {
46
    dips_ = value;
47
    update();
48
}
49
 
50
}  // namespace debugger

powered by: WebSVN 2.1.0

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