mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-04-23 04:30:09 -05:00
Added transparent fill to windows
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#ifndef MONITORBOX_H
|
||||
#define MONITORBOX_H
|
||||
|
||||
#include <QColor>
|
||||
#include <QIntValidator>
|
||||
#include <QLineEdit>
|
||||
#include <QPainter>
|
||||
@@ -38,7 +39,7 @@ protected:
|
||||
private:
|
||||
void paintWidgetBorder(QPainter& painter, int width, int height);
|
||||
void paintMonitorOutlines(QPainter& painter);
|
||||
void paintWindowOutline(QPainter& painter, unsigned int monIdx, unsigned int winIdx);
|
||||
void paintWindow(QPainter& painter, unsigned int monIdx, unsigned int winIdx);
|
||||
void paintOutOfBoundsAreas(QPainter& painter, unsigned int monIdx,unsigned int winIdx);
|
||||
void paintWindowNumber(QPainter& painter, unsigned int monIdx, unsigned int winIdx);
|
||||
void setPenSpecificToWindow(QPainter& painter, unsigned int windowIdx,
|
||||
@@ -70,6 +71,11 @@ private:
|
||||
{{0.0, 0.0, 0.0, 0.0},
|
||||
{0.0, 0.0, 0.0, 0.0}}
|
||||
};
|
||||
QColor _colorWindow[2] = {
|
||||
{0x1C, 0x1B, 0x8B},
|
||||
{0xCD, 0x6D, 0x1D}
|
||||
};
|
||||
int _alphaWindowTransparency = 111;
|
||||
float _monitorScaleFactor = 1.0;
|
||||
float _offset[2] = {10.0, 10.0};
|
||||
bool _showLabel = false;
|
||||
|
||||
@@ -28,7 +28,7 @@ void MonitorBox::paintEvent(QPaintEvent *event)
|
||||
//Draw window outline(s)
|
||||
for (unsigned int i = 0; i < _nMonitors ; ++i) {
|
||||
for (unsigned int j = 0; j < _nWindows[i]; ++j) {
|
||||
paintWindowOutline(painter, i, j);
|
||||
paintWindow(painter, i, j);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -53,12 +53,17 @@ void MonitorBox::paintMonitorOutlines(QPainter& painter) {
|
||||
}
|
||||
}
|
||||
|
||||
void MonitorBox::paintWindowOutline(QPainter& painter, unsigned int monIdx,
|
||||
void MonitorBox::paintWindow(QPainter& painter, unsigned int monIdx,
|
||||
unsigned int winIdx)
|
||||
{
|
||||
setPenSpecificToWindow(painter, winIdx, true);
|
||||
if (winIdx <= _windowRendering[monIdx].size()) {
|
||||
painter.drawRect(_windowRendering[monIdx][winIdx]);
|
||||
QColor fillColor = _colorWindow[winIdx];
|
||||
fillColor.setAlpha(_alphaWindowTransparency);
|
||||
QBrush brush(fillColor);
|
||||
brush.setStyle(Qt::SolidPattern);
|
||||
painter.fillRect(_windowRendering[monIdx][winIdx], brush);
|
||||
//Draw areas of window that are past the monitor boundaries
|
||||
if (_outOfBoundsRect[monIdx][winIdx].size() > 0) {
|
||||
paintOutOfBoundsAreas(painter, monIdx, winIdx);
|
||||
@@ -95,12 +100,7 @@ void MonitorBox::setPenSpecificToWindow(QPainter& painter, unsigned int windowId
|
||||
bool visibleBorder)
|
||||
{
|
||||
int penWidth = (visibleBorder) ? 1 : -1;
|
||||
if (windowIdx == 0) {
|
||||
painter.setPen(QPen(QColor(0x1C, 0x1B, 0x8B), penWidth));
|
||||
}
|
||||
else if (windowIdx == 1) {
|
||||
painter.setPen(QPen(QColor(0xCD, 0x6D, 0x1D), penWidth));
|
||||
}
|
||||
painter.setPen(QPen(_colorWindow[windowIdx], penWidth));
|
||||
}
|
||||
|
||||
void MonitorBox::windowDimensionsChanged(unsigned int monitorIdx, unsigned int windowIdx,
|
||||
|
||||
Reference in New Issue
Block a user