diff options
Diffstat (limited to 'displaymessage.c')
-rw-r--r-- | displaymessage.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/displaymessage.c b/displaymessage.c new file mode 100644 index 0000000..f64a898 --- /dev/null +++ b/displaymessage.c @@ -0,0 +1,43 @@ +#include "displaymessage.h" + +cSDDisplayMessage::cSDDisplayMessage(cTemplate *messageTemplate) { + doOutput = true; + initial = true; + if (!messageTemplate) { + doOutput = false; + esyslog("skindesigner: displayMessage no valid template - aborting"); + return; + } + messageView = new cDisplayMessageView(messageTemplate->GetRootView()); + if (!messageView->createOsd()) { + doOutput = false; + return; + } + messageView->DrawBackground(); +} + +cSDDisplayMessage::~cSDDisplayMessage() { + if (!doOutput) + return; + delete messageView; +} + +void cSDDisplayMessage::SetMessage(eMessageType Type, const char *Text) { + if (!doOutput) + return; + if (!Text) + return; + messageView->DrawMessage(Type, Text); +} + + +void cSDDisplayMessage::Flush(void) { + if (!doOutput) + return; + if (initial) { + messageView->DoFadeIn(); + initial = false; + } else { + messageView->Flush(); + } +} |