diff options
author | Soeren Moch <smoch@web.de> | 2021-02-13 14:03:29 +0100 |
---|---|---|
committer | kamel5 <vdr.kamel5 (at) gmx (dot) net> | 2021-02-16 12:04:13 +0100 |
commit | 8edb4e42aedbe48e8c1e1d4caa54f116c83e2e18 (patch) | |
tree | 1e2d3e553fa6cb417eb2cae41b52706534ebf930 /displaymenuview.c | |
parent | 6bd0b842406f3098753161601899aefb680bd32c (diff) | |
download | skin-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.c | 74 |
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 +} |