123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- //PORTABLE
- #ifndef _TEXT_H
- #define _TEXT_H
- #include <api/script/script.h>
- #include <api/script/objects/guiobj.h>
- #include <api/wnd/wndclass/guiobjwnd.h>
- #include <bfc/string/StringW.h>
- #include <bfc/depend.h>
- #include "textbase.h"
- #include <api/syscb/callbacks/svccbi.h>
- #include <api/syscb/callbacks/skincb.h>
- #define TEXT_PARENT TextBase
- class svc_textFeed;
- class TextScriptController : public GuiObjectScriptController {
- public:
- virtual const wchar_t *getClassName();
- virtual const wchar_t *getAncestorClassName();
- virtual ScriptObjectController *getAncestorController() { return guiController; }
- virtual int getNumFunctions();
- virtual const function_descriptor_struct *getExportedFunctions();
- virtual GUID getClassGuid();
- virtual ScriptObject *instantiate();
- virtual void destroy(ScriptObject *o);
- virtual void *encapsulate(ScriptObject *o);
- virtual void deencapsulate(void *o);
- private:
- static function_descriptor_struct exportedFunction[];
-
- };
- extern TextScriptController *textController;
- #include <api/wnd/wndclass/clickwnd.h>
- #ifdef WASABI_COMPILE_MEDIACORE
- #include <api/syscb/callbacks/corecbi.h>
- class Text : public TEXT_PARENT, public CoreCallbackI, public DependentViewerI, public SvcCallbackI{
- #else
- class Text : public TEXT_PARENT, public DependentViewerI, public SvcCallbackI {
- #endif
- public:
- Text();
- virtual ~Text();
- virtual int onInit();
- virtual int onBufferPaint(BltCanvas *canvas, int w, int h);
- virtual int onLeftButtonDown(int x, int y);
- virtual int onMouseMove(int x, int y);
- virtual int onLeftButtonUp(int x, int y);
- virtual int getPreferences(int what);
- virtual int setXuiParam(int xuihandle, int attribid, const wchar_t *name, const wchar_t *strval);
- virtual const wchar_t *vcpu_getClassName();
- virtual ScriptObjectController *vcpu_getController() { return textController; }
- virtual int getTextWidth();
- virtual int onDeferredCallback(intptr_t p1, intptr_t p2);
-
- virtual void getBufferPaintSize(int *w, int *h);
- virtual void getBufferPaintSource(RECT *r);
- virtual void onNewBuffer(int w, int h) { BufferPaintWnd::onNewBuffer(w, h); invalidateTextBuffer(); }
- int setTextSize(int newsize, int alt=0);
- void setTickering(int enable);
- void setDisplay(int disp);
-
-
-
- void setShadowColor(ARGB32 c, int alt=0);
- void setShadowX(int x, int alt=0); // relative offsets
- void setShadowY(int y, int alt=0);
- void setTimeTTS(int tts);
- void resetTicker();
- void setTimeColonWidth(int w);
- int getTimeColonWidth(int def);
- void setTimerOffStyle(int o);
- void setTimerHours(int o);
- void setTimerHoursRollover(int o);
- const wchar_t *getLastText() { return lasttxt; }
- void setAlternateName(const wchar_t *s);
- const wchar_t *getAlternateName(void);
- void setText(const wchar_t *t);
- void addCBSource(const wchar_t *cbsource);
- virtual void onTextChanged(const wchar_t *txt);
- virtual void onSetName();
- virtual void advanceTicker(int *upd);
- virtual void setTimeDisplayMode(int remaining); // will only do so if text is displaying time in the first place
- ARGB32 getShadowColor(int alt=0);
- #ifdef WASABI_COMPILE_MEDIACORE
- // core callbacks
- virtual int corecb_onStatusMsg(const wchar_t *text);
- virtual int corecb_onInfoChange(const wchar_t *text);
- virtual int corecb_onStarted();
- virtual int corecb_onStopped();
- virtual int corecb_onSeeked(int newpos);
- virtual int corecb_onBitrateChange(int kbps);
- virtual int corecb_onSampleRateChange(int hz);
- #endif
- static void textOut(Canvas *canvas, int x, int y, const wchar_t *txt, wchar_t widthchar, const Wasabi::FontInfo *fontInfo);
- virtual int viewer_onEvent(api_dependent *item, const GUID *classguid, int event, intptr_t param, void *ptr, size_t ptrlen);
- virtual int triggerEvent(int event, intptr_t p1, intptr_t p2);
- const wchar_t *getPrintedText();
- virtual void svccb_onSvcRegister(FOURCC type, waServiceFactory *svc);
-
- void initDisplay();
- void invalidateTextBuffer();
- enum {
- TEXT_SETDISPLAY=0,
- TEXT_SETTICKER,
- TEXT_SETTEXT,
- TEXT_SETSHADOWCOLOR,
- TEXT_SETALTSHADOWCOLOR,
- TEXT_SETSHADOWX,
- TEXT_SETSHADOWY,
- TEXT_SETALTSHADOWX,
- TEXT_SETALTSHADOWY,
- TEXT_SETTIMEROFFSTYLE,
- TEXT_SETTIMERHOURS,
- TEXT_SETTIMECOLONWIDTH,
- TEXT_SETNOGRAB,
- TEXT_SETSHOWLEN,
- TEXT_SETFORCEFIXED,
- TEXT_SETFORCEUPCASE,
- TEXT_SETFORCELOCASE,
- TEXT_SETCBSOURCE,
- TEXT_SETWRAPPED,
- TEXT_SETVALIGN,
- TEXT_SETALTVALIGN,
- TEXT_SETDBLCLKACTION,
- TEXT_SETRCLKACTION,
- TEXT_SETOFFSETX,
- TEXT_SETOFFSETY,
- TEXT_SETTICKERSTEP,
- TEXT_SETTIMERHOURSROLLOVER,
- TEXT_NUMPARAMS,
- };
-
- protected:
- /*static */void CreateXMLParameters(int master_handle);
- virtual void timerCallback(int id);
- private:
- static XMLParamPair params[];
-
- const wchar_t *parseText(const wchar_t *s);
- void registerToTextFeedService();
- int size[2];
- int textpos,tts,sens;
- int time_tts;
- int grab_x;
- int cur_len;
- int ticker;
- int display;
- int elapsed;
- int fixedTimerStyle;
-
- int nograb;
- int showlen;
- int forcefixed;
- int timeroffstyle;
-
- StringW displaystr;
- StringW alternatename;
- StringW lastText;
-
- FilteredColor shadowcolor[2];
-
- SkinColor sshadowcolor[2];
- int shadowcolor_mode[2];
- int shadowx[2], shadowy[2];
- int timecolonw;
- StringW deftext;
-
-
-
- PtrList<StringW> mycbid;
- StringW cbsource;
- int forceupcase, forcelocase;
- StringW lasttxt;
-
-
- int lastautowidth;
- svc_textFeed *textfeed;
- StringW feed_id;
- int registered_syscb;
- int wrapped;
- int valign[2];
- int xuihandle;
- int offsetx, offsety;
- StringW printedtxt;
- int tickerstep;
- int skipn;
- int skip;
- int skipcfgcount;
-
- int timerhours;
- int timerhoursRollover;
- int bufferinvalid;
- int cachedsizew;
- public:
- static scriptVar script_vcpu_setText(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar t);
- static scriptVar script_vcpu_setAlternateText(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar t);
- static scriptVar script_vcpu_getText(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
- static scriptVar script_vcpu_getTextWidth(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
- static scriptVar script_vcpu_onTextChanged(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar text);
- static wchar_t s_txt[WA_MAX_PATH];
- };
- extern const wchar_t textXuiObjectStr[];
- extern char textXuiSvcName[];
- class TextXuiSvc : public XuiObjectSvc<Text, textXuiObjectStr, textXuiSvcName> {};
- #endif
|