
* Ported the project to CMake * Android and Mac support dropped for the time being. * Tests, BASS and Discord-RPC are now options * Restructured and reformated the project. * Merged `include` and `src` * Renamed `resource` to `data` * Renamed various files * External libraries headers are no longer included in `src` * Replaced header guards with #pragma once * Multiple refactors (keywords, headers) * Added Qt6 compatibility * Removed various unused functions and headers * Reworked AOPacket * When content is passed to AOPacket, it should be ensured that the content is already decoded. * Encoding/decoding are now static methods. * Fixed various memory leaks * Removed animation code for AOImage * AOImage is always using static images * Simplified ChatLogPiece
62 lines
1.2 KiB
C++
62 lines
1.2 KiB
C++
#include "aotextboxwidgets.h"
|
|
|
|
AOChatboxLabel::AOChatboxLabel(QWidget *parent)
|
|
: QLabel(parent)
|
|
{}
|
|
|
|
void AOChatboxLabel::setOutlineColor(QColor color)
|
|
{
|
|
m_outline_color = color;
|
|
}
|
|
|
|
void AOChatboxLabel::setOutlineWidth(int width)
|
|
{
|
|
m_outline_width = width;
|
|
}
|
|
|
|
void AOChatboxLabel::setIsOutlined(bool outlined)
|
|
{
|
|
m_outline = outlined;
|
|
}
|
|
|
|
void AOChatboxLabel::setTextColor(QColor color)
|
|
{
|
|
m_text_color = color;
|
|
}
|
|
|
|
void AOChatboxLabel::paintEvent(QPaintEvent *event)
|
|
{
|
|
if (m_outline)
|
|
{
|
|
QBrush brush;
|
|
QPen pen;
|
|
QPointF baseline(m_outline_width, fontMetrics().height());
|
|
|
|
// Set up brush (base text)
|
|
brush.setColor(m_text_color);
|
|
brush.setStyle(Qt::SolidPattern);
|
|
|
|
// Set up outline
|
|
pen.setColor(m_outline_color);
|
|
pen.setWidthF(m_outline_width);
|
|
|
|
QPainterPath path;
|
|
path.addText(baseline, font(), text());
|
|
|
|
QPainter painter(this);
|
|
painter.setRenderHint(QPainter::Antialiasing);
|
|
// draw outline
|
|
painter.setPen(pen);
|
|
painter.drawPath(path);
|
|
// remove outline pen, then draw text on top
|
|
painter.setPen(Qt::NoPen);
|
|
painter.setBrush(brush);
|
|
painter.drawPath(path);
|
|
}
|
|
else
|
|
{
|
|
// Use the default renderer
|
|
QLabel::paintEvent(event);
|
|
}
|
|
}
|