Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
240
Src/Wasabi/api/skin/widgets/text.h
Normal file
240
Src/Wasabi/api/skin/widgets/text.h
Normal file
|
@ -0,0 +1,240 @@
|
|||
//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
|
Loading…
Add table
Add a link
Reference in a new issue