summaryrefslogtreecommitdiff
path: root/render.h
diff options
context:
space:
mode:
authorAndreas Brugger <brougs78@gmx.net>2009-06-06 01:29:22 +0200
committerThomas Günther <tom@toms-cafe.de>2009-06-06 01:29:22 +0200
commit60cd7db51838bb076312fd10e08bca0f4a005f82 (patch)
tree2ce8a57369abbd1ac1fed4a0d6527140808fbc3c /render.h
parent5ace1ef884772e4a15d58839074785b89412c8ee (diff)
parentac64ce03ec6b5766691ff2da3af6f51ed800792a (diff)
downloadvdr-plugin-text2skin-60cd7db51838bb076312fd10e08bca0f4a005f82.tar.gz
vdr-plugin-text2skin-60cd7db51838bb076312fd10e08bca0f4a005f82.tar.bz2
Added brougs78-extensions (thanks to Andreas Brugger / references #39)
- added tokens for the next 3 timers: CurrentEventsTitle[123], CurrentEventsStartDateTime[123], CurrentEventsStopDateTime[123], CurrentEventsChannelNumber[123], CurrentEventsChannelName[123], CurrentEventsIsRecording[123] - added audio- and video-tokens: PresentLanguageCode, PresentLanguageDescription, PresentVideoAR and implemented the missing code for the Language-token - added tokens for replay: ReplayName, ReplayDateTime, ReplayShortText, ReplayDescription, ReplayLanguageCode, ReplayLanguageDescription, ReplayVideoAR - additional recording-tokens: RecordingVideoAR, RecordingSize - added a reset for scrolling text (configurable) - added recording-tokens: RecordingLength, RecordingCuttedLength - added tokens: OsdWidth, OsdHeight - switched the search-order for the fonts to priorise the skin-folder (this avoids error-messages in the log) - added the possibility to have a scrollbar in every menu - not fully implemented yet (to position in menu-lists is not necessarily correct, if there are more items with the same osd-text) - added a configuration option for showing the scrollbar in the menus - added token TimerConflicts using the service interface of the epgsearch plugin "Epgsearch-lastconflictinfo-v1.0" - added a test-feature to search for reruns of a program and add the information to the extended epg-info (trigger DEVELOPMENT_FEATURES). This uses a service interface of the epgsearch plugin "Epgsearch-searchresults-v1.0" - the extended epg-info and the recording-info are extended by AUX-Infos (configurable) there is also an option to strip known tags - the tab-widths are scaled for taking into account that different TT-Fonts have a different width than the default font from VDR - added tokens for signal-info: FrontendSTR, FrontendSNR, FrontendHasLock, FrontendHasSignal - added token PresentEventID for EPG-images - added tokens for recordings: RecordingFilename, RecordingPriority, RecordingLifetime - set EditableWidth. This is important for plugins like 'rotor' or 'extrecmenu'
Diffstat (limited to 'render.h')
-rw-r--r--render.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/render.h b/render.h
index 6797e1a..7f257a1 100644
--- a/render.h
+++ b/render.h
@@ -7,6 +7,7 @@
#include "common.h"
#include "scroller.h"
+#include "setup.h"
#include "xml/skin.h"
#include "xml/type.h"
#include <vdr/osd.h>
@@ -47,6 +48,7 @@ private:
std::string mBasePath;
bool mDirty;
+ uint mMaxItems;
cSkin *mFallback;
// update thread
@@ -115,6 +117,7 @@ protected:
virtual bool HasTabText(int Index, int n) { return false; }
virtual void SetEditableWidth(int Width) {}
virtual void SetMaxItems(int MaxItems) {}
+ inline int GetmMaxItems(void) { return mMaxItems; }
// functions for display renderer to control behaviour
void Flush(bool Force = false);
@@ -134,6 +137,33 @@ public:
static bool ItemColor(const std::string &Color, tColor &Result);
static std::string ImagePath(const std::string &Filename);
static cxType GetToken(const txToken &Token);
+
+ // provide scrollbar in every menu
+ struct tMenuScrollbar {
+ uint current; // overall (0 ... toal-1)
+ uint currentOnScreen; // on the current screen (0 ... maxItems-1)
+ uint total;
+ uint maxItems; // viewable on current screen
+ std::vector<std::string> items;
+
+ tMenuScrollbar(void) : current(0), currentOnScreen(0), total(0), maxItems(0) {}
+ bool Available(void) { return Text2SkinSetup.MenuScrollbar ? total > maxItems : false; }
+ uint Top(void) { return current - currentOnScreen; }
+ uint Bottom(void) { return total - Top() - maxItems; }
+ bool CanScrollUp(void) { return Text2SkinSetup.MenuScrollbar ? Top() > 0 : false; }
+ bool CanScrollDown(void) { return Text2SkinSetup.MenuScrollbar ? Bottom() > 0 : false; }
+ } mMenuScrollbar;
+
+ // update infos (e.g. timerConflict)
+ struct tUpdate {
+ bool timerConflict;
+ bool events;
+ std::string currentItem;
+ bool resetMarquee;
+ bool foundFirstItem;
+
+ tUpdate(void) : timerConflict(true), events(true), currentItem(""), resetMarquee(true), foundFirstItem(false) {}
+ } mUpdate;
};
inline void cText2SkinRender::Flush(bool Force)