From f9a94c9a8c8e1065c5276b3f2f8cac531e58774c Mon Sep 17 00:00:00 2001 From: lordjaxom Date: Wed, 26 Jan 2005 20:38:45 +0000 Subject: - consistent parent element handling --- xml/display.c | 6 +++--- xml/display.h | 6 +++--- xml/function.h | 8 ++++++-- xml/string.c | 7 ++++--- xml/string.h | 11 ++++++++--- 5 files changed, 24 insertions(+), 14 deletions(-) diff --git a/xml/display.c b/xml/display.c index a64fe1c..a8268c4 100644 --- a/xml/display.c +++ b/xml/display.c @@ -1,5 +1,5 @@ /* - * $Id: display.c,v 1.3 2005/01/02 20:16:00 lordjaxom Exp $ + * $Id: display.c,v 1.4 2005/01/26 20:40:08 lordjaxom Exp $ */ #include "xml/display.h" @@ -9,9 +9,9 @@ static const std::string DisplayNames[] = "replaySmall", "menu" }; cxDisplay::cxDisplay(cxSkin *parent): + mSkin(parent), mType((eType)__COUNT_DISPLAY__), - mNumWindows(0), - mSkin(parent) + mNumWindows(0) { } diff --git a/xml/display.h b/xml/display.h index c7a617a..319cc7e 100644 --- a/xml/display.h +++ b/xml/display.h @@ -1,5 +1,5 @@ /* - * $Id: display.h,v 1.4 2005/01/02 20:16:00 lordjaxom Exp $ + * $Id: display.h,v 1.5 2005/01/26 20:40:08 lordjaxom Exp $ */ #ifndef VDR_TEXT2SKIN_DISPLAY_H @@ -29,15 +29,15 @@ public: }; private: + cxSkin *mSkin; eType mType; txWindow mWindows[MAXOSDAREAS]; int mNumWindows; int mNumMarquees; cxObjects mObjects; - cxSkin *mSkin; public: - cxDisplay(cxSkin *parent); + cxDisplay(cxSkin *Parent); static const std::string &GetType(eType Type); bool ParseType(const std::string &Text); diff --git a/xml/function.h b/xml/function.h index 72b887c..bef62b7 100644 --- a/xml/function.h +++ b/xml/function.h @@ -1,5 +1,5 @@ /* - * $Id: function.h,v 1.8 2005/01/11 18:17:46 lordjaxom Exp $ + * $Id: function.h,v 1.9 2005/01/26 20:40:08 lordjaxom Exp $ */ #ifndef VDR_TEXT2SKIN_XML_FUNCTION_H @@ -14,6 +14,9 @@ #define MAXPARAMETERS 512 +class cxObject; +class cxSkin; + class cxFunction { public: enum eType { @@ -37,6 +40,7 @@ public: }; private: + cxObject *mObject; cxSkin *mSkin; eType mType; cxString mString; @@ -49,7 +53,7 @@ protected: cxType FunPlugin(const cxType &Param) const; public: - cxFunction(cxSkin *Skin); + cxFunction(cxObject *Parent); cxFunction(const cxString &String); cxFunction(const cxFunction &Src); ~cxFunction(); diff --git a/xml/string.c b/xml/string.c index dec59a1..de4f703 100644 --- a/xml/string.c +++ b/xml/string.c @@ -1,5 +1,5 @@ /* - * $Id: string.c,v 1.14 2005/01/25 14:14:43 lordjaxom Exp $ + * $Id: string.c,v 1.15 2005/01/26 20:38:45 lordjaxom Exp $ */ #include "xml/string.h" @@ -54,8 +54,9 @@ std::string txToken::Token(const txToken &Token) cxString::tStringList cxString::mStrings; -cxString::cxString(cxSkin *Skin, bool Translate): - mSkin(Skin), +cxString::cxString(cxObject *Parent, bool Translate): + mObject(Parent), + mSkin(Parent->Skin()), mTranslate(Translate) { mStrings.push_back(this); diff --git a/xml/string.h b/xml/string.h index 50bc996..3ccaf8b 100644 --- a/xml/string.h +++ b/xml/string.h @@ -1,5 +1,5 @@ /* - * $Id: string.h,v 1.15 2005/01/21 20:41:23 lordjaxom Exp $ + * $Id: string.h,v 1.16 2005/01/26 20:38:45 lordjaxom Exp $ */ #ifndef VDR_TEXT2SKIN_XML_STRING_H @@ -191,6 +191,7 @@ inline bool operator< (const txToken &A, const txToken &B) : A.Type < B.Type; } +class cxObject; class cxSkin; class cxString { @@ -198,22 +199,26 @@ private: typedef std::vector tStringList; static tStringList mStrings; + cxObject *mObject; + cxSkin *mSkin; std::string mText; std::string mOriginal; std::vector mTokens; - cxSkin *mSkin; bool mTranslate; public: static void Reparse(void); - cxString(cxSkin *Skin, bool Translate); + cxString(cxObject *Parent, bool Translate); ~cxString(); bool Parse(const std::string &Text, bool Translate = false); cxType Evaluate(void) const; void SetListIndex(uint Index, int Tab); + + cxObject *Object(void) const { return mObject; } + cxSkin *Skin(void) const { return mSkin; } }; inline void cxString::SetListIndex(uint Index, int Tab) -- cgit v1.2.3