#ifndef __VIEW_H #define __VIEW_H #include #include #include #include #include #include "osdwrapper.h" #include "globals.h" #include "../libskindesignerapi/tokencontainer.h" #include "viewelementplugin.h" #include "viewelementscommon.h" #include "viewelementsdisplaychannel.h" #include "viewelementsdisplaymenu.h" #include "viewelementsdisplayreplay.h" #include "viewelementsdisplaytracks.h" #include "viewlist.h" class cView; #include "xmlparser.h" #include "animation.h" using namespace std; class cView : public cFadable, public cShiftable { private: void DoScaleTv(const cRect *frame); void SetClearOnDisplay(int ve, const char *clearOnDisplay); protected: cSdOsd sdOsd; static cAnimator *animator; cViewAttribs *attribs; cRect container; bool init; eViewType viewId; cGlobals *globals; char *viewName; int numViewElements; cViewElement **viewElements; cViewElement **viewElementsHorizontal; map viewElementNames; bool shifting; cRect tvFrame; cRect *currentTvFrame; cRect *newTvFrame; bool menuInit; int ViewElementId(const char *name); virtual void ClearVariables(void); virtual void SetViewElementObjects(void) { }; virtual void StartAnimation(void); virtual void WakeViewElements(void); cPoint ShiftStart(cRect &shiftbox); virtual cRect CoveredArea(void); void ScaleTv(void); void UnScaleTv(void); public: cView(void); virtual ~cView(void); //Loading and Caching functionality bool ReadFromXML(void); virtual void SetGlobals(cGlobals *globals); const char *GetViewName(void) { return viewName; }; void SetContainer(int x, int y, int width, int height); void SetAttributes(vector &attributes); void AddViewElement(const char *sViewElement, cViewElement *viewElement); bool ValidViewElement(const char *viewElement); virtual void AddViewList(cViewList *viewList) { }; bool ValidViewList(const char *viewList); virtual void PreCache(void); cRect *GetTvFrame(void) { return &tvFrame; }; virtual const cFont *GetTextAreaFont(void) { return NULL; }; virtual int GetTextAreaWidth(void) { return 0; }; virtual int GetListWidth(void) { return 0; }; static void AddAnimation(cAnimation *animation, bool startAnimation = true); static void RemoveAnimation(cAnimation *animation); //View API virtual bool Init(void); void Clear(int ve, bool forceClearBackground = false); void SetDirty(int ve); void Render(int ve, bool force = false); void Hide(int ve); void Show(int ve); virtual void Close(void); virtual void Flush(void); virtual void Debug(void); void SetViewelementsAnimOut(void); //Fadable int Delay(void) { return 0; }; int FadeTime(void); virtual void SetTransparency(int transparency, bool force = false); //Shiftable int ShiftTime(void); int ShiftMode(void); void ShiftPositions(cPoint *start, cPoint *end); virtual void SetPosition(cPoint &position, cPoint &reference, bool force = false); void SetStartShifting(void) { shifting = true; }; void SetEndShifting(void) { shifting = false; }; }; #endif //__VIEW_H