diff options
Diffstat (limited to 'Src/Wasabi/api/skin/widgets/layer.h')
-rw-r--r-- | Src/Wasabi/api/skin/widgets/layer.h | 287 |
1 files changed, 287 insertions, 0 deletions
diff --git a/Src/Wasabi/api/skin/widgets/layer.h b/Src/Wasabi/api/skin/widgets/layer.h new file mode 100644 index 00000000..efc607d2 --- /dev/null +++ b/Src/Wasabi/api/skin/widgets/layer.h @@ -0,0 +1,287 @@ +//PORTABLE +#ifndef _LAYER_H +#define _LAYER_H + +#ifndef _NOSTUDIO + +#include <api/script/objects/smap.h> +#ifdef WASABI_WIDGETS_GUIOBJECT +#include <api/script/objects/guiobj.h> +#endif +#include <api/wnd/basewnd.h> +#include <tataki/bitmap/bitmap.h> +#include <api/wnd/virtualwnd.h> +#include <tataki/region/region.h> +#include <tataki/bitmap/autobitmap.h> +#include <api/wnd/wndclass/qpaintwnd.h> + +#endif + +#include <api/script/script.h> +#ifdef WASABI_WIDGETS_GUIOBJECT +#include <api/script/objects/guiobj.h> +#endif + +// {5AB9FA15-9A7D-4557-ABC8-6557A6C67CA9} +static const GUID layerGuid = +{ 0x5ab9fa15, 0x9a7d, 0x4557, { 0xab, 0xc8, 0x65, 0x57, 0xa6, 0xc6, 0x7c, 0xa9 } }; + +#define LAYER_PARENT GuiObjectWnd +#ifdef WASABI_WIDGETS_GUIOBJECT +class LayerScriptController : 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 LayerScriptController *layerController; +#endif +#ifndef _NOSTUDIO + +#define RESIZE_NONE 0 +#define RESIZE_TOP 1 +#define RESIZE_BOTTOM 2 +#define RESIZE_LEFT 4 +#define RESIZE_RIGHT 8 +#define RESIZE_TOPLEFT RESIZE_TOP | RESIZE_LEFT +#define RESIZE_TOPRIGHT RESIZE_TOP | RESIZE_RIGHT +#define RESIZE_BOTTOMLEFT RESIZE_BOTTOM | RESIZE_LEFT +#define RESIZE_BOTTOMRIGHT RESIZE_BOTTOM | RESIZE_RIGHT + +class FxDynamicMove; + +class Layer : public LAYER_PARENT, public SkinCallbackI +{ +public: + Layer(); + virtual ~Layer(); + + virtual int onInit(); + virtual int onPaint(Canvas *canvas); + virtual int onLeftButtonDown(int x, int y); + virtual int onLeftButtonUp(int x, int y); + virtual int onMouseMove(int x, int y); + virtual int onLeftButtonDblClk(int x, int y); + virtual int getCursorType(int x, int y); + virtual int onResize(); + virtual int onActivate(); + virtual int onDeactivate(); + virtual int getPreferences(int what); + + virtual void setDblClickParam(const wchar_t *p); + virtual const wchar_t *getDblClickParam(); + + virtual void timerCallback(int id); + + virtual void setRegionFromBitmap(const wchar_t *bmpid); + + virtual void setRegionFromMap(SMap *map, int byte, int inversed); + virtual void setRegion(SRegion *reg); + virtual int onSiblingInvalidateRgn(api_region *r, ifc_window *who, int who_idx, int my_idx); + + virtual int wantSiblingInvalidations(); + + virtual int getSourceOffsetX(); + virtual int getSourceOffsetY(); + + virtual void layer_adjustDest(RECT *r) {} + + virtual void onBeginResize(RECT r); + virtual void onEndResize(RECT r); + virtual SkinBitmap *getBitmap(); + + virtual void onSetVisible(int show); + + void setResize(int r); + void setScaler(int m); + virtual void invalidateRegionCache(); + + virtual api_region *getRegion(); // stretched and tiled as needed + virtual api_region *getBitmapRegion(); // not stretched or tiled + virtual void makeRegion(); + virtual void deleteRegion(); + + virtual void setTiling(int t); + virtual int getTiling(); + + virtual void setBitmap(const wchar_t *name); + virtual int getWidth(); + virtual int getHeight(); + + virtual int setXuiParam(int _xuihandle, int id, const wchar_t *paramname, const wchar_t *strvalue); + + virtual void setRegionOp(int i); + + virtual void setInactiveBitmap(const wchar_t *name); + virtual void onCancelCapture(); + + virtual int applyResizeRestrictions(int way, int *side=NULL); + + virtual bool layer_isInvalid(); + //FG> fx + +#if defined(WA3COMPATIBILITY) || defined(GEN_FF) + virtual void fx_setEnabled(int i); + virtual int fx_getEnabled(void); + virtual void fx_setWrap(int i); + virtual int fx_getWrap(void); + virtual void fx_setRect(int i); + virtual int fx_getRect(void); + virtual void fx_setBilinear(int i); + virtual int fx_getBilinear(void); + virtual void fx_setAlphaMode(int i); + virtual int fx_getAlphaMode(void); + virtual void fx_setBgFx(int i); + virtual int fx_getBgFx(void); + virtual void fx_setClear(int i); + virtual int fx_getClear(void); + virtual void fx_setLocalized(int i); + virtual int fx_getLocalized(void); + virtual void fx_setGridSize(int x, int y); + virtual void fx_update(void); + virtual void fx_restart(void); + virtual void fx_onInit(void); + virtual void fx_onFrame(void); + virtual void fx_setSpeed(int d); + virtual int fx_getSpeed(void); + virtual void fx_setRealtime(int r); + virtual int fx_getRealtime(void); + virtual double fx_onGetPixelA(double r, double d, double x, double y); + virtual double fx_onGetPixelX(double r, double d, double x, double y); + virtual double fx_onGetPixelY(double r, double d, double x, double y); + virtual double fx_onGetPixelR(double r, double d, double x, double y); + virtual double fx_onGetPixelD(double r, double d, double x, double y); +#endif + + virtual int skincb_onColorThemeChanged(const wchar_t *newcolortheme); + + enum { + LAYER_SETIMAGE=0, + LAYER_SETRESIZE, + LAYER_SETSCALE, + LAYER_SETREGION, + LAYER_SETTILE, + LAYER_SETDBLCLICKACTION, + LAYER_DBLCLICKPARAM, + LAYER_SETINACTIVEIMAGE, + LAYER_SETMYCURSOR, + LAYER_SETQUALITY, + // LAYER_NUMPARAMS, // martin> there is no reference for this elsewhere in gen_ff, so CUT + + }; + + int l_customcursor; + +protected: +/*static */void CreateXMLParameters(int master_handle); + const wchar_t *layer_getBitmapName(); + SkinBitmap *layer_getBitmap(); + +private: +static XMLParamPair params[]; + AutoSkinBitmap bitmap; + int resizer, resizeway, resizing, resizerect; + int cap, scaler, scalerway, scaling; + POINT anchor; + int clickthrough; + RegionI *rgn, *secrgn, *rgnclone; + int tiling; + StringW bitmapname; + int hasInactiveImage; + StringW inactiveImageName; + AutoSkinBitmap inactiveBitmap; + int xuihandle; + StringW dblclickparam; + + int fx_on; + int fx_wrap; + int fx_rect; + int fx_grid_x; + int fx_grid_y; + int fx_bilinear; + int fx_alphamode; + int fx_alphaonce; + int fx_bgfx; + int fx_clear; + int fx_delay; + int fx_timeron; + int fx_local; + int fx_realtime; + int last_w, last_h; + FxDynamicMove *fx_dmove; + + StringW dblClickAction; + StringW statustext; + +// FG> +// -- SCRIPT ----------------------------------------------------- + +public: + static scriptVar script_vcpu_onBeginResize(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar l, scriptVar t, scriptVar w, scriptVar h); + static scriptVar script_vcpu_onEndResize(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar l, scriptVar t, scriptVar w, scriptVar h); + static scriptVar script_vcpu_setRegionFromMap(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar map, scriptVar byte, scriptVar inversed); + static scriptVar script_vcpu_setRegion(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar reg); + + static scriptVar script_vcpu_isInvalid(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + + static scriptVar script_vcpu_fx_setEnabled(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar a); + static scriptVar script_vcpu_fx_getEnabled(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_fx_setWrap(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar a); + static scriptVar script_vcpu_fx_getWrap(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_fx_setRect(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar a); + static scriptVar script_vcpu_fx_getRect(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_fx_setBgFx(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar a); + static scriptVar script_vcpu_fx_getBgFx(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_fx_setClear(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar a); + static scriptVar script_vcpu_fx_getClear(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_fx_setRealtime(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar a); + static scriptVar script_vcpu_fx_getRealtime(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_fx_setLocalized(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar a); + static scriptVar script_vcpu_fx_getLocalized(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_fx_setBilinear(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar a); + static scriptVar script_vcpu_fx_getBilinear(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_fx_setAlphaMode(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar a); + static scriptVar script_vcpu_fx_getAlphaMode(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_fx_setGridSize(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar x, scriptVar y); + static scriptVar script_vcpu_fx_update(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_fx_restart(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_fx_onInit(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_fx_onFrame(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_fx_setSpeed(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar s); + static scriptVar script_vcpu_fx_getSpeed(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_fx_onGetPixelA(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar r, scriptVar d, scriptVar x, scriptVar y); + static scriptVar script_vcpu_fx_onGetPixelX(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar r, scriptVar d, scriptVar x, scriptVar y); + static scriptVar script_vcpu_fx_onGetPixelY(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar r, scriptVar d, scriptVar x, scriptVar y); + static scriptVar script_vcpu_fx_onGetPixelR(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar r, scriptVar d, scriptVar x, scriptVar y); + static scriptVar script_vcpu_fx_onGetPixelD(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar r, scriptVar d, scriptVar x, scriptVar y); + +#else +class Layer : public LAYER_SCRIPTPARENT { + +#endif + +public: + +// INSERT_SCRIPT_OBJECT_CONTROL + +}; +#ifdef WASABI_WIDGETS_GUIOBJECT +extern const wchar_t layerXuiObjectStr[]; +extern char layerXuiSvcName[]; +class LayerXuiSvc : public XuiObjectSvc<Layer, layerXuiObjectStr, layerXuiSvcName> {}; +#endif +#endif |