2 Copyright © 1995-2013, The AROS Development Team. All rights reserved.
3 Copyright © 2001-2003, The MorphOS Development Team. All Rights Reserved.
7 #include <proto/layers.h>
8 #include "intuition_intern.h"
9 #include "inputhandler_actions.h"
11 #ifdef ChangeLayerShape
13 struct ChangeWindowShapeActionMsg
15 struct IntuiActionMsg msg
;
16 struct Window
*window
;
18 struct Hook
*callback
;
21 static VOID
int_changewindowshape(struct ChangeWindowShapeActionMsg
*msg
,
22 struct IntuitionBase
*IntuitionBase
);
26 /*****************************************************************************
29 #include <proto/intuition.h>
31 AROS_LH3(struct Region
*, ChangeWindowShape
,
34 AROS_LHA(struct Window
*, window
, A0
),
35 AROS_LHA(struct Region
*, newshape
, A1
),
36 AROS_LHA(struct Hook
*, callback
, A2
),
39 struct IntuitionBase
*, IntuitionBase
, 143, Intuition
)
44 window - The window to affect.
49 This function is also present in MorphOS v50, however
50 not implemented and reserved.
60 *****************************************************************************/
64 #ifdef ChangeLayerShape
65 struct ChangeWindowShapeActionMsg msg
;
67 ASSERT_VALID_PTR(window
);
69 if (IS_GZZWINDOW(window
)) return NULL
;
73 msg
.callback
= callback
;
74 DoSyncAction((APTR
)int_changewindowshape
, &msg
.msg
, IntuitionBase
);
79 /* shut up the compiler */
80 IntuitionBase
= IntuitionBase
;
90 } /* ChangeWindowShape */
93 #ifdef ChangeLayerShape
94 static VOID
int_changewindowshape(struct ChangeWindowShapeActionMsg
*msg
,
95 struct IntuitionBase
*IntuitionBase
)
97 struct LayersBase
*LayersBase
= GetPrivIBase(IntuitionBase
)->LayersBase
;
98 struct Window
*window
= msg
->window
;
99 struct Region
*shape
= msg
->shape
;
100 struct Hook
*callback
= msg
->callback
;
101 struct Screen
*screen
= window
->WScreen
;
103 if (!ResourceExisting(window
, RESOURCE_WINDOW
, IntuitionBase
)) return;
105 LOCK_REFRESH(screen
);
106 msg
->shape
= ChangeLayerShape(window
->WLayer
, shape
, callback
);
107 UNLOCK_REFRESH(screen
);
109 CheckLayers(screen
, IntuitionBase
);