aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/script/objects/compoobj.h
blob: 6e18f84b4cc748cf1b858a541154eb7e0e90756c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#ifndef _COMPONENTOBJ_H
#define _COMPONENTOBJ_H

#include <api/script/script.h>
#include <api/script/scriptobj.h>
#include <api/wnd/wndclass/guiobjwnd.h>
#include <api/script/objects/guiobj.h>

class SMap;
class SRegion;
class Container;
class Layout;
class CompWnd;

// {403ABCC0-6F22-4bd6-8BA4-10C829932547}
static const GUID componentObjectGuid = 
{ 0x403abcc0, 0x6f22, 0x4bd6, { 0x8b, 0xa4, 0x10, 0xc8, 0x29, 0x93, 0x25, 0x47 } };

#define COMPONENTOBJECT_PARENT GuiObjectWnd

class CompoObjScriptController : 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 *);

  private:

    static function_descriptor_struct exportedFunction[];
    
};

extern CompoObjScriptController *compoController;


#ifndef _NOSTUDIO

#include <api/wnd/virtualwnd.h>

class ComponentObject : public COMPONENTOBJECT_PARENT {
public:
  ComponentObject();
  virtual ~ComponentObject();

  virtual int setXmlParam(const wchar_t *name, const wchar_t *value);

	virtual int onResize();
	virtual void onSetVisible(int s);
  virtual int handleRatio();

  void deniedComponentCompWnd(CompWnd *c, GUID g);
  void grantedComponentCompWnd(CompWnd *c, GUID g);
  int wantGUID(GUID *g);

  void onReleaseComponent();
  void onGetComponent(GUID g);

  void onBeforeGetWac(GUID g, CompWnd *c);
  void onBeforeGiveUpWac(GUID g, CompWnd *c);

	void setGUID(GUID g);
	void setCompGUID(GUID g);
	GUID getGUID(void);
  int getAutoClose();
  void setAcceptWac(int a);
  int getAnimatedRects() { return !noanimrects; }
  virtual int getPreferences(int what);

	virtual void script_resetRegion();
	virtual void script_setRegionFromMap(SMap *map, int byte, int inv);
	virtual void script_setRegion(SRegion *r);
  virtual int handleDesktopAlpha();
  virtual int handleTransparency();

  // VCPU
  static scriptVar script_vcpu_getGUID(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
  static scriptVar script_vcpu_getWac(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
  static scriptVar script_vcpu_onShow(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
  static scriptVar script_vcpu_onHide(SCRIPT_FUNCTION_PARAMS, ScriptObject *o);
  static scriptVar script_vcpu_onGetWac(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar wac);
  static scriptVar script_vcpu_onGiveUpWac(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar wac);
  static scriptVar script_vcpu_setRegionFromMap(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar map, scriptVar byte, scriptVar inv);
  static scriptVar script_vcpu_setRegion(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar r);
  static scriptVar script_vcpu_setAcceptWac(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar on);
  // End VCPU

private:
  GUID myGUID;
  GUID myCompGuid;

  int deleting;

  CompWnd *compwnd;
  int noshowcmdbar;
  int noshowbtnbar;

  api_region *my_region_clone;
  int autoopen, autoclose;
  int accept;
  int denyDesktopAlpha;
  int denyTransparency;
  int noanimrects;

#else 
class ComponentObject : public COMPONENTOBJECT_SCRIPTPARENT {
#endif

};


#endif