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

Subversion Repositories riscv_vhdl

[/] [riscv_vhdl/] [trunk/] [debugger/] [src/] [gui_plugin/] [PeriphWidgets/] [LedArea.cpp] - Blame information for rev 2

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

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

powered by: WebSVN 2.1.0

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