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
|
#strict 2
local target;
local rect;
func Initialize()
{
SetVisibility(VIS_None);
}
func Set(object targetObj, array targetRect, string name)
{
target = targetObj;
name = name || target->GetName();
var category = target->GetCategory();
if(category & C4D_StaticBack)
{
category &= ~C4D_StaticBack;
category |= C4D_Structure;
}
SetName(name);
SetCategory(category | C4D_MouseIgnore);
SetAction("Attach", target);
rect = targetRect;
UpdateTransferZone();
SetGraphics(0, this, GetID(target), GFX_Overlay, GFXOV_MODE_Picture);
return this;
}
func AttachTargetLost()
{
RemoveObject();
}
func UpdateTransferZone()
{
if(rect)
{
SetVertex(0, VTX_X, - rect[0] + GetVertex(0, VTX_X, target), this, VTX_SetPermanentUpd);
SetVertex(0, VTX_Y, - rect[1] + GetVertex(0, VTX_Y, target), this, VTX_SetPermanentUpd);
SetShape(0, 0, rect[2], rect[3]);
}
}
func ControlLeft() { return target && target->~ControlLeft(...); }
func ControlLeftDouble() { return target && target->~ControlLeftDouble(...); }
func ControlLeftSingle() { return target && target->~ControlLeftSingle(...); }
func ControlLeftReleased() { return target && target->~ControlLeftReleased(...); }
func ControlRight() { return target && target->~ControlRight(...); }
func ControlRightDouble() { return target && target->~ControlRightDouble(...); }
func ControlRightSingle() { return target && target->~ControlRightSingle(...); }
func ControlRightReleased() { return target && target->~ControlRightReleased(...); }
func ControlUp() { return target && target->~ControlUp(...); }
func ControlUpDouble() { return target && target->~ControlUpDouble(...); }
func ControlUpSingle() { return target && target->~ControlUpSingle(...); }
func ControlUpReleased() { return target && target->~ControlUpReleased(...); }
func ControlDown() { return target && target->~ControlDown(...); }
func ControlDownDouble() { return target && target->~ControlDownDouble(...); }
func ControlDownSingle() { return target && target->~ControlDownSingle(...); }
func ControlDownReleased() { return target && target->~ControlDownReleased(...); }
func ControlThrow() { return target && target->~ControlThrow(...); }
func ControlThrowDouble() { return target && target->~ControlThrowDouble(...); }
func ControlThrowSingle() { return target && target->~ControlThrowSingle(...); }
func ControlThrowReleased() { return target && target->~ControlThrowReleased(...); }
func ControlDig() { return target && target->~ControlDig(...); }
func ControlDigDouble() { return target && target->~ControlDigDouble(...); }
func ControlDigSingle() { return target && target->~ControlDigSingle(...); }
func ControlDigReleased() { return target && target->~ControlDigReleased(...); }
func Grabbed() { return target && target->~Grabbed(...); }
global func AddGrabHelper()
{
return CreateObject(GH7I)->Set(this, ...);
}
|