summaryrefslogtreecommitdiff
path: root/displaymenuview.c
diff options
context:
space:
mode:
authorSoeren Moch <smoch@web.de>2021-02-13 14:03:29 +0100
committerkamel5 <vdr.kamel5 (at) gmx (dot) net>2021-02-16 12:04:13 +0100
commit8edb4e42aedbe48e8c1e1d4caa54f116c83e2e18 (patch)
tree1e2d3e553fa6cb417eb2cae41b52706534ebf930 /displaymenuview.c
parent6bd0b842406f3098753161601899aefb680bd32c (diff)
downloadskin-nopacity-8edb4e42aedbe48e8c1e1d4caa54f116c83e2e18.tar.gz
skin-nopacity-8edb4e42aedbe48e8c1e1d4caa54f116c83e2e18.tar.bz2
Use MessageBox for DisplayMenu
Besides the unified message view this allows great code simplification. Signed-off-by: Soeren Moch <smoch@web.de>
Diffstat (limited to 'displaymenuview.c')
-rw-r--r--displaymenuview.c74
1 files changed, 11 insertions, 63 deletions
diff --git a/displaymenuview.c b/displaymenuview.c
index 9a94f25..ece34ca 100644
--- a/displaymenuview.c
+++ b/displaymenuview.c
@@ -3,8 +3,8 @@
cNopacityDisplayMenuView::cNopacityDisplayMenuView(cImageCache *imgCache) {
this->imgCache = imgCache;
diskUsageAlert = 95;
- pixmapStatus = NULL;
pixmapHeaderIcon = NULL;
+ messageBox = NULL;
}
cNopacityDisplayMenuView::~cNopacityDisplayMenuView(void) {
@@ -24,6 +24,7 @@ cNopacityDisplayMenuView::~cNopacityDisplayMenuView(void) {
osd->DestroyPixmap(pixmapDiskUsageLabel);
if (pixmapHeaderIcon)
osd->DestroyPixmap(pixmapHeaderIcon);
+ delete messageBox;
}
cOsd *cNopacityDisplayMenuView::createOsd(void) {
@@ -673,67 +674,14 @@ void cNopacityDisplayMenuView::ClearScrollbar(void) {
void cNopacityDisplayMenuView::DrawMessage(eMessageType Type, const char *Text) {
- tColor col = Theme.Color(clrMessageStatus);
- tColor colFont = Theme.Color(clrMessageFontStatus);
- eSkinElementType seType = seMessageMenuStatus;
- switch (Type) {
- case mtStatus:
- col = Theme.Color(clrMessageStatus);
- colFont = Theme.Color(clrMessageFontStatus);
- seType = seMessageMenuStatus;
- break;
- case mtInfo:
- col = Theme.Color(clrMessageInfo);
- colFont = Theme.Color(clrMessageFontInfo);
- seType = seMessageMenuInfo;
- break;
- case mtWarning:
- col = Theme.Color(clrMessageWarning);
- colFont = Theme.Color(clrMessageFontWarning);
- seType = seMessageMenuWarning;
- break;
- case mtError:
- col = Theme.Color(clrMessageError);
- colFont = Theme.Color(clrMessageFontError);
- seType = seMessageMenuError;
- break;
- }
- if (pixmapStatus) {
- ClearMessage();
- }
- pixmapStatus = osd->CreatePixmap(7, cRect(0.1*geoManager->osdWidth, 0.8*geoManager->osdHeight, geoManager->menuMessageWidth, geoManager->menuMessageHeight));
-
- pixmapStatus->Fill(clrTransparent);
- if (config.GetValue("displayType") == dtGraphical) {
- cImage *imgBack = imgCache->GetSkinElement(seType);
- if (imgBack) {
- pixmapStatus->DrawImage(cPoint(0, 0), *imgBack);
- }
- } else {
- pixmapStatus->Fill(col);
- if (config.GetValue("displayType") == dtBlending) {
- cImage imgBack = imgCache->GetBackground(Theme.Color(clrMenuBack), col, geoManager->menuMessageWidth-2, geoManager->menuMessageHeight-2, true);
- pixmapStatus->DrawImage(cPoint(1, 1), imgBack);
- }
- if (config.GetValue("roundedCorners")) {
- DrawRoundedCornersWithBorder(pixmapStatus, col, config.GetValue("cornerRadius"), geoManager->menuMessageWidth, geoManager->menuMessageHeight);
- }
- }
- int textWidth = fontManager->menuMessage->Width(Text);
- tColor clrFontBack = (config.GetValue("displayType") != dtFlat)?(clrTransparent):col;
- pixmapStatus->DrawText(cPoint((geoManager->menuMessageWidth - textWidth) / 2,
- (geoManager->menuMessageHeight - fontManager->menuMessage->Height()) / 2),
- Text,
- colFont,
- clrFontBack,
- fontManager->menuMessage);
-}
-
-void cNopacityDisplayMenuView::ClearMessage(void) {
- if (pixmapStatus) {
- osd->DestroyPixmap(pixmapStatus);
- pixmapStatus = NULL;
- }
+ DELETENULL(messageBox);
+ if (!Text)
+ return;
+ messageBox = new cNopacityMessageBox(osd, imgCache,
+ cRect((geoManager->osdWidth - geoManager->messageWidth) / 2,
+ geoManager->osdHeight * 9/10 - geoManager->messageHeight,
+ geoManager->messageWidth, geoManager->messageHeight),
+ Type, Text, true);
}
void cNopacityDisplayMenuView::SetDetailViewSize(eDetailViewType detailViewType, cNopacityDetailView *detailView) {
@@ -765,4 +713,4 @@ void cNopacityDisplayMenuView::SetDetailViewSize(eDetailViewType detailViewType,
}
detailView->SetGeometry(x, width, height, top, contentBorder, detailHeaderHeight);
detailView->SetScrollBar(pixmapScrollbar, pixmapScrollbarBack);
-} \ No newline at end of file
+}