Added transparent fill to windows

This commit is contained in:
GPayne
2022-01-18 20:48:03 -07:00
parent 07a291a388
commit 5e9a8f737c
2 changed files with 15 additions and 9 deletions
@@ -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,