ROVLib2
RISCOSC++applicationdevelopmentlibrary
wimp_window.h
1 #pragma once
2 
3 #include "wimp_basics.h"
4 #include "wimp_icons.h"
5 #include "wimp_messages.h"
6 
7 #ifdef __cplusplus
8 extern "C"
9 {
10 #endif
11 
12  typedef struct
13  {
14  unsigned wfOldHasTitlebar : 1;
15  unsigned wfIsMoveable : 1;
16  unsigned wfOldHasVerticalScrollbar : 1;
17  unsigned wfOldHasHorizontalScrollbar : 1;
18  unsigned wfWimpRedrawn : 1;
19  unsigned wfIsPane : 1;
20  unsigned wfCanOpenOffscreen : 1;
21  unsigned wfOldNoBackOrClose : 1;
22  unsigned wfScrollRequest : 1;
23  unsigned wfScrollRequestNoAutorepeat : 1;
24  unsigned wfWindowColoursAreGcol : 1;
25  unsigned wfAlwaysOnBottom : 1;
26  unsigned wfGenerateEvents : 1;
27  unsigned wfForceOnscreen : 1;
28  unsigned wfIgnoreRightExtent : 1;
29  unsigned wfIgnoreLowerExtent : 1;
30  unsigned wfIsOpen : 1;
31  unsigned wfIsUncovered : 1;
32  unsigned wfIsFullsize : 1;
33  unsigned wfOpenCausedByToggleSize : 1;
34  unsigned wfHasFocus : 1;
35  unsigned wfForceToScreen : 1;
36  unsigned : 2;
37  unsigned wfHasBackIcon : 1;
38  unsigned wfHasCloseIcon : 1;
39  unsigned wfHasTitlebar : 1;
40  unsigned wfHasToggleSizeIcon : 1;
41  unsigned wfHasVerticalScrollbar : 1;
42  unsigned wfHasAdjustSizeIcon : 1;
43  unsigned wfHasHorizontalScrollbar : 1;
44  unsigned wfUsesNewBits : 1;
45  } sWindowFlags; // wf
46 
47  typedef struct
48  {
49  tLocation lVisibleMinimum;
50  tLocation lVisibleMaximum;
51  tLocation lScrollOffset;
52  tWindowHandle whBehind;
53  union
54  {
55  sWindowFlags wfFlags;
56  unsigned int uiFlags;
57  };
58  struct
59  {
60  unsigned bTitleForegroundColour : 8;
61  unsigned bTitleBackgroundColour : 8;
62  unsigned bWorkAreaForegroundColour : 8;
63  unsigned bWorkAreaBackgroundColour : 8;
64  unsigned bScrollbarOuterColour : 8;
65  unsigned bScrollbarInnerColour : 8;
66  unsigned bTitleFocusBackgroundColour : 8;
67  unsigned bReserved : 8;
68  };
69  tLocation lWorkareaMinimum;
70  tLocation lWorkareaMaximum;
71  sIconFlags ifTitleBarIconFlags;
72  struct
73  {
74  unsigned : 12;
75  unsigned uWorkareaButtonType : 4;
76  unsigned : 16;
77  };
78  void* vpSpriteArea;
79  struct
80  {
81  unsigned ucMinimumXSize : 16;
82  unsigned ucMinimumYSize : 16;
83  };
84  uIconData idTitleData;
85  unsigned int uiIconCount;
86  } tWindowCreateBlock; // wcb
87 
92  tWindowHandle wimp_createwindow(const tWindowCreateBlock* kpwcbWindow);
93 
98  int wimp_deletewindow(const tWindowHandle kwhHandle);
99 
104  int wimp_openwindow(const tWindowOpenBlock* kpwobOpenBlock);
105 
110  int wimp_closewindow(const tWindowHandle kwhHandle);
111 
112 #ifdef __cplusplus
113 }
114 #endif