summaryrefslogtreecommitdiff
path: root/displaymenuview.c
diff options
context:
space:
mode:
Diffstat (limited to 'displaymenuview.c')
-rw-r--r--displaymenuview.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/displaymenuview.c b/displaymenuview.c
index 0a7e4ee..0feea31 100644
--- a/displaymenuview.c
+++ b/displaymenuview.c
@@ -1,3 +1,4 @@
+#include "status.h"
#include "displaymenuview.h"
cNopacityDisplayMenuView::cNopacityDisplayMenuView(cOsd *osd) {
@@ -5,6 +6,9 @@ cNopacityDisplayMenuView::cNopacityDisplayMenuView(cOsd *osd) {
diskUsageAlert = 95;
pixmapHeaderIcon = NULL;
messageBox = NULL;
+ volumeBox = NULL;
+ lastVolume = statusMonitor->GetVolume();
+ lastVolumeTime = time(NULL);
menuAdjustLeft = config.GetValue("menuAdjustLeft");
SetDescriptionTextWindowSize();
CreatePixmaps();
@@ -29,6 +33,7 @@ cNopacityDisplayMenuView::~cNopacityDisplayMenuView(void) {
if (pixmapHeaderIcon)
osd->DestroyPixmap(pixmapHeaderIcon);
delete messageBox;
+ delete volumeBox;
}
void cNopacityDisplayMenuView::SetDescriptionTextWindowSize(void) {
@@ -195,6 +200,8 @@ void cNopacityDisplayMenuView::SetAlpha(int Alpha) {
pixmapDiskUsageLabel->SetAlpha(Alpha);
if (pixmapHeaderIcon)
pixmapHeaderIcon->SetAlpha(Alpha);
+ if (volumeBox)
+ volumeBox->SetAlpha(Alpha);
}
void cNopacityDisplayMenuView::GetMenuItemSize(eMenuCategory menuCat, cPoint *itemSize) {
@@ -652,6 +659,7 @@ void cNopacityDisplayMenuView::ClearScrollbar(void) {
void cNopacityDisplayMenuView::DrawMessage(eMessageType Type, const char *Text) {
+ DELETENULL(volumeBox);
DELETENULL(messageBox);
if (!Text)
return;
@@ -661,3 +669,21 @@ void cNopacityDisplayMenuView::DrawMessage(eMessageType Type, const char *Text)
geoManager->messageWidth, geoManager->messageHeight),
Type, Text, true);
}
+
+void cNopacityDisplayMenuView::DrawVolume(void) {
+ int volume = statusMonitor->GetVolume();
+ if (volume != lastVolume) {
+ if (!volumeBox) {
+ int left = (geoManager->osdWidth - geoManager->volumeWidth) / 2;
+ int top = geoManager->osdHeight - geoManager->volumeHeight - config.GetValue("menuBorderVolumeBottom");
+ volumeBox = new cNopacityVolumeBox(osd, cRect(left, top, geoManager->volumeWidth, geoManager->volumeHeight), fontManager->volumeText);
+ }
+ volumeBox->SetVolume(volume, MAXVOLUME, volume ? false : true);
+ lastVolumeTime = time(NULL);
+ lastVolume = volume;
+ }
+ else {
+ if (volumeBox && (time(NULL) - lastVolumeTime > 2))
+ DELETENULL(volumeBox);
+ }
+}