grub2: bring back build of aros-side grub2 tools
[AROS.git] / workbench / libs / popupmenu / pmtopography.h
blob467f881e68eb20baed95f2fb8ba2dc320b79c4db
1 //
2 // pmtopography.h
3 //
4 // PopupMenu Library - Topographical Menu Map
5 //
6 // Copyright ©2000 Henrik Isaksson <henrik@boing.nu>
7 // All Rights Reserved.
8 //
10 #ifndef PM_TOPOGRAPHY_H
11 #define PM_TOPOGRAPHY_H
13 #ifndef PM_SHADOW_H
14 #include "pmshadow.h"
15 #endif
17 #define PMSHADOW_HORIZ 0x01 // Adjust shadow width
18 #define PMSHADOW_VERT 0x02 // Adjust shadow height
19 #define PMSHADOW_LEFT 0x04 // Adjust shadow left pos
20 #define PMSHADOW_TOP 0x08 // Adjust shadow top pos
22 struct PMTopographicRect {
23 PMGLN n;
24 WORD Left;
25 WORD Top;
26 WORD Right;
27 WORD Bottom;
28 WORD Height; // Height over 'ground' measured in menu levels
31 typedef struct PMTopographicRect PMTR;
32 typedef struct MinList PMTRList;
34 #define PM_InitTopographicList() ((PMTRList *)PM_InitList())
35 #define PM_FreeTopographicList(l) PM_FreeList((PMDList *)l)
36 #define PM_CopyTopographicList(l) ((PMTRList *)PM_CopyList((PMDList *)l))
37 #define PM_RegionOverlap(A, B) PM_ShadowOverlap((PMSR *)A, (PMSR *)B)
38 #define PM_AddRegionToList(l, A) PM_AddToList((PMDList *)l, (PMNode *)A)
39 #define PM_UnlinkRegion(l, A) PM_Unlink((PMDList *)l, (PMNode *)A)
40 #define PM_FreeTopographicNode(A) PM_FreeNode((PMNode *)A)
42 BOOL PM_AddTopographicRegion(PMTRList *lst, // Add a rectangular region of height
43 WORD l, WORD t, WORD r, WORD b, WORD h); // 'h' to the topographic map.
45 BOOL PM_MapShadow(PMTRList *top, PMSRList *delta,
46 WORD x, WORD y, WORD w, WORD h,
47 UWORD menulevel, UWORD direction);
49 PMTR *PM_CopyTopographicNode(PMTR *A);
51 BOOL PM_SubTopographicRects(PMTRList *dest, PMTR *worknode, PMTR *rect);
53 #endif