summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--displaymenuview.c3
-rw-r--r--displaymessage.c3
-rw-r--r--helpers.c17
3 files changed, 23 insertions, 0 deletions
diff --git a/displaymenuview.c b/displaymenuview.c
index 55399f3..c513dd4 100644
--- a/displaymenuview.c
+++ b/displaymenuview.c
@@ -826,6 +826,9 @@ void cNopacityDisplayMenuView::DrawMessage(eMessageType Type, const char *Text)
imgLoader.DrawBackground2(Theme.Color(clrMenuBack), col, messageWidth-2, messageHeight-2);
pixmapStatus->DrawImage(cPoint(1, 1), imgLoader.GetImage());
}
+ if (config.roundedCorners) {
+ DrawRoundedCornersWithBorder(pixmapStatus, col, config.cornerRadius, messageWidth, messageHeight);
+ }
int textWidth = fontMessage->Width(Text);
tColor clrFontBack = (config.doBlending)?(clrTransparent):col;
pixmapStatus->DrawText(cPoint((messageWidth - textWidth) / 2, (messageHeight - fontMessage->Height()) / 2), Text, Theme.Color(clrMenuFontMessages), clrFontBack, fontMessage);
diff --git a/displaymessage.c b/displaymessage.c
index e44e5a0..aa15005 100644
--- a/displaymessage.c
+++ b/displaymessage.c
@@ -56,6 +56,9 @@ void cNopacityDisplayMessage::SetMessage(eMessageType Type, const char *Text) {
imgLoader.DrawBackground2(Theme.Color(clrMessageBlend), col, width-2, height-2);
pixmap->DrawImage(cPoint(1, 1), imgLoader.GetImage());
}
+ if (config.roundedCorners) {
+ DrawRoundedCornersWithBorder(pixmap, col, config.cornerRadius, width, height);
+ }
int textWidth = font->Width(Text);
pixmap->DrawText(cPoint((width - textWidth) / 2, (height - font->Height()) / 2), Text, colFont, (config.doBlending)?clrTransparent:col, font);
if (config.messageFadeTime)
diff --git a/helpers.c b/helpers.c
index a5ca8a0..7304046 100644
--- a/helpers.c
+++ b/helpers.c
@@ -49,6 +49,23 @@ static void DrawRoundedCorners(cPixmap *p, int radius, int x, int y, int width,
}
}
+static void DrawRoundedCornersWithBorder(cPixmap *p, tColor borderColor, int radius, int width, int height) {
+ if (radius < 3)
+ return;
+ p->DrawEllipse(cRect(0,0,radius,radius), borderColor, -2);
+ p->DrawEllipse(cRect(-1,-1,radius,radius), clrTransparent, -2);
+
+ p->DrawEllipse(cRect(width-radius,0,radius,radius), borderColor, -1);
+ p->DrawEllipse(cRect(width-radius+1,-1,radius,radius), clrTransparent, -1);
+
+ p->DrawEllipse(cRect(0,height-radius,radius,radius), borderColor, -3);
+ p->DrawEllipse(cRect(-1,height-radius+1,radius,radius), clrTransparent, -3);
+
+ p->DrawEllipse(cRect(width-radius,height-radius,radius,radius), borderColor, -4);
+ p->DrawEllipse(cRect(width-radius+1,height-radius+1,radius,radius), clrTransparent, -4);
+
+}
+
static int Minimum(int a, int b, int c, int d, int e, int f) {
int min = a;
if (b < min) min = b;