"SfR Fresh" - the SfR Freeware/Shareware Archive 
As a special service "SfR Fresh" has tried to format the requested source page into HTML format using source code syntax highlighting with prefixed line numbers.
Alternatively you can here view or download the uninterpreted source code file.
That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.
1 '
2 ' ####################
3 ' ##### PROLOG #####
4 ' ####################
5 '
6 PROGRAM "acolors"
7 VERSION "0.0003"
8 '
9 IMPORT "xst"
10 IMPORT "xgr"
11 IMPORT "xui"
12 '
13 INTERNAL FUNCTION Entry ()
14 INTERNAL FUNCTION InitGui ()
15 INTERNAL FUNCTION InitProgram ()
16 INTERNAL FUNCTION CreateWindows ()
17 INTERNAL FUNCTION SolidColors (grid, message, v0, v1, v2, v3, r0, ANY)
18 INTERNAL FUNCTION SolidColorsCode (grid, message, v0, v1, v2, v3, kid, ANY)
19 '
20 '
21 ' ######################
22 ' ##### Entry () #####
23 ' ######################
24 '
25 FUNCTION Entry ()
26 SHARED terminateProgram
27 STATIC entry
28 '
29 IF entry THEN RETURN ' enter once
30 entry = $$TRUE ' enter occured
31 '
32 InitGui () ' initialize messages
33 InitProgram () ' initialize this program
34 CreateWindows () ' create main window and others
35 IF LIBRARY(0) THEN RETURN ' main program has message loop
36 '
37 DO ' the message loop
38 XgrProcessMessages (1) ' process one message
39 LOOP UNTIL terminateProgram ' and repeat until program is terminated
40 END FUNCTION
41 '
42 '
43 ' ########################
44 ' ##### InitGui () #####
45 ' ########################
46 '
47 ' InitGui() initializes cursor, icon, message, and display variables.
48 ' Programs can reference these variables, but must never change them.
49 '
50 FUNCTION InitGui ()
51 '
52 ' ***************************************
53 ' ***** Register Standard Cursors *****
54 ' ***************************************
55 '
56 XgrRegisterCursor (@"Arrow", @#cursorArrow)
57 XgrRegisterCursor (@"UpArrow", @#cursorArrowN)
58 XgrRegisterCursor (@"Arrow", @#cursorArrowNW)
59 XgrRegisterCursor (@"SizeNS", @#cursorArrowsNS)
60 XgrRegisterCursor (@"SizeWE", @#cursorArrowsWE)
61 XgrRegisterCursor (@"SizeNWSE", @#cursorArrowsNWSE)
62 XgrRegisterCursor (@"SizeNESW", @#cursorArrowsNESW)
63 XgrRegisterCursor (@"SizeAll", @#cursorArrowsAll)
64 XgrRegisterCursor (@"CrossHair", @#cursorCrosshair)
65 XgrRegisterCursor (@"Arrow", @#cursorDefault)
66 XgrRegisterCursor (@"Wait", @#cursorHourglass)
67 XgrRegisterCursor (@"Insert", @#cursorInsert)
68 XgrRegisterCursor (@"No", @#cursorNo)
69 XgrRegisterCursor (@"Arrow", @#defaultCursor)
70 '
71 '
72 ' ********************************************
73 ' ***** Register Standard Window Icons *****
74 ' ********************************************
75 '
76 XgrRegisterIcon (@"hand", @#iconHand)
77 XgrRegisterIcon (@"asterisk", @#iconAsterisk)
78 XgrRegisterIcon (@"question", @#iconQuestion)
79 XgrRegisterIcon (@"exclamation", @#iconExclamation)
80 XgrRegisterIcon (@"application", @#iconApplication)
81 '
82 XgrRegisterIcon (@"hand", @#iconStop) ' alias
83 XgrRegisterIcon (@"asterisk", @#iconInformation) ' alias
84 XgrRegisterIcon (@"application", @#iconBlank) ' alias
85 '
86 XgrRegisterIcon (@"window", @#iconWindow) ' custom
87 '
88 '
89 ' ******************************
90 ' ***** Register Messages ***** Create message numbers for message names
91 ' ******************************
92 '
93 XgrRegisterMessage (@"Callback", @#Callback)
94 XgrRegisterMessage (@"Cancel", @#Cancel)
95 XgrRegisterMessage (@"Change", @#Change)
96 XgrRegisterMessage (@"ContextChange", @#ContextChange)
97 XgrRegisterMessage (@"Create", @#Create)
98 XgrRegisterMessage (@"CreateValueArray", @#CreateValueArray)
99 XgrRegisterMessage (@"CreateWindow", @#CreateWindow)
100 XgrRegisterMessage (@"CursorH", @#CursorH)
101 XgrRegisterMessage (@"CursorV", @#CursorV)
102 XgrRegisterMessage (@"Destroy", @#Destroy)
103 XgrRegisterMessage (@"Destroyed", @#Destroyed)
104 XgrRegisterMessage (@"DestroyWindow", @#DestroyWindow)
105 XgrRegisterMessage (@"Disable", @#Disable)
106 XgrRegisterMessage (@"DisplayWindow", @#DisplayWindow)
107 XgrRegisterMessage (@"Enable", @#Enable)
108 XgrRegisterMessage (@"Enter", @#Enter)
109 XgrRegisterMessage (@"Find", @#Find)
110 XgrRegisterMessage (@"FindForward", @#FindForward)
111 XgrRegisterMessage (@"FindReverse", @#FindReverse)
112 XgrRegisterMessage (@"Forward", @#Forward)
113 XgrRegisterMessage (@"GetAlign", @#GetAlign)
114 XgrRegisterMessage (@"GetBorder", @#GetBorder)
115 XgrRegisterMessage (@"GetCallback", @#GetCallback)
116 XgrRegisterMessage (@"GetCallbackArgs", @#GetCallbackArgs)
117 XgrRegisterMessage (@"GetCan", @#GetCan)
118 XgrRegisterMessage (@"GetClipGrid", @#GetClipGrid)
119 XgrRegisterMessage (@"GetColor", @#GetColor)
120 XgrRegisterMessage (@"GetColorExtra", @#GetColorExtra)
121 XgrRegisterMessage (@"GetCursor", @#GetCursor)
122 XgrRegisterMessage (@"GetCursorXY", @#GetCursorXY)
123 XgrRegisterMessage (@"GetDisplay", @#GetDisplay)
124 XgrRegisterMessage (@"GetEnclosedGrids", @#GetEnclosedGrids)
125 XgrRegisterMessage (@"GetEnclosingGrid", @#GetEnclosingGrid)
126 XgrRegisterMessage (@"GetFont", @#GetFont)
127 XgrRegisterMessage (@"GetFontNumber", @#GetFontNumber)
128 XgrRegisterMessage (@"GetGridFunction", @#GetGridFunction)
129 XgrRegisterMessage (@"GetGridFunctionName", @#GetGridFunctionName)
130 XgrRegisterMessage (@"GetGridName", @#GetGridName)
131 XgrRegisterMessage (@"GetGridNumber", @#GetGridNumber)
132 XgrRegisterMessage (@"GetGridType", @#GetGridType)
133 XgrRegisterMessage (@"GetGridTypeName", @#GetGridTypeName)
134 XgrRegisterMessage (@"GetGroup", @#GetGroup)
135 XgrRegisterMessage (@"GetHelp", @#GetHelp)
136 XgrRegisterMessage (@"GetHelpFile", @#GetHelpFile)
137 XgrRegisterMessage (@"GetHelpString", @#GetHelpString)
138 XgrRegisterMessage (@"GetHelpStrings", @#GetHelpStrings)
139 XgrRegisterMessage (@"GetHintString", @#GetHintString)
140 XgrRegisterMessage (@"GetImage", @#GetImage)
141 XgrRegisterMessage (@"GetImageCoords", @#GetImageCoords)
142 XgrRegisterMessage (@"GetIndent", @#GetIndent)
143 XgrRegisterMessage (@"GetInfo", @#GetInfo)
144 XgrRegisterMessage (@"GetJustify", @#GetJustify)
145 XgrRegisterMessage (@"GetKeyboardFocus", @#GetKeyboardFocus)
146 XgrRegisterMessage (@"GetKeyboardFocusGrid", @#GetKeyboardFocusGrid)
147 XgrRegisterMessage (@"GetKidNumber", @#GetKidNumber)
148 XgrRegisterMessage (@"GetKids", @#GetKids)
149 XgrRegisterMessage (@"GetKidArray", @#GetKidArray)
150 XgrRegisterMessage (@"GetMaxMinSize", @#GetMaxMinSize)
151 XgrRegisterMessage (@"GetMessageFunc", @#GetMessageFunc)
152 XgrRegisterMessage (@"GetMessageFuncArray", @#GetMessageFuncArray)
153 XgrRegisterMessage (@"GetMessageSub", @#GetMessageSub)
154 XgrRegisterMessage (@"GetMessageSubArray", @#GetMessageSubArray)
155 XgrRegisterMessage (@"GetModalInfo", @#GetModalInfo)
156 XgrRegisterMessage (@"GetModalWindow", @#GetModalWindow)
157 XgrRegisterMessage (@"GetMouseFocus", @#GetMouseFocus)
158 XgrRegisterMessage (@"GetParent", @#GetParent)
159 XgrRegisterMessage (@"GetProtoInfo", @#GetProtoInfo)
160 XgrRegisterMessage (@"GetRedrawFlags", @#GetRedrawFlags)
161 XgrRegisterMessage (@"GetSize", @#GetSize)
162 XgrRegisterMessage (@"GetSizeRelative", @#GetSizeRelative)
163 XgrRegisterMessage (@"GetSmallestSize", @#GetSmallestSize)
164 XgrRegisterMessage (@"GetState", @#GetState)
165 XgrRegisterMessage (@"GetStyle", @#GetStyle)
166 XgrRegisterMessage (@"GetTabStops", @#GetTabStops)
167 XgrRegisterMessage (@"GetTabWidth", @#GetTabWidth)
168 XgrRegisterMessage (@"GetTextArray", @#GetTextArray)
169 XgrRegisterMessage (@"GetTextArrayBounds", @#GetTextArrayBounds)
170 XgrRegisterMessage (@"GetTextArrayLine", @#GetTextArrayLine)
171 XgrRegisterMessage (@"GetTextArrayLines", @#GetTextArrayLines)
172 XgrRegisterMessage (@"GetTextCursor", @#GetTextCursor)
173 XgrRegisterMessage (@"GetTextPosition", @#GetTextPosition)
174 XgrRegisterMessage (@"GetTextSelection", @#GetTextSelection)
175 XgrRegisterMessage (@"GetTextString", @#GetTextString)
176 XgrRegisterMessage (@"GetTextStrings", @#GetTextStrings)
177 XgrRegisterMessage (@"GetTexture", @#GetTexture)
178 XgrRegisterMessage (@"GetTimer", @#GetTimer)
179 XgrRegisterMessage (@"GetValue", @#GetValue)
180 XgrRegisterMessage (@"GetValues", @#GetValues)
181 XgrRegisterMessage (@"GetValueArray", @#GetValueArray)
182 XgrRegisterMessage (@"GetWindow", @#GetWindow)
183 XgrRegisterMessage (@"GetWindowFunction", @#GetWindowFunction)
184 XgrRegisterMessage (@"GetWindowGrid", @#GetWindowGrid)
185 XgrRegisterMessage (@"GetWindowIcon", @#GetWindowIcon)
186 XgrRegisterMessage (@"GetWindowSize", @#GetWindowSize)
187 XgrRegisterMessage (@"GetWindowTitle", @#GetWindowTitle)
188 XgrRegisterMessage (@"GotKeyboardFocus", @#GotKeyboardFocus)
189 XgrRegisterMessage (@"GrabArray", @#GrabArray)
190 XgrRegisterMessage (@"GrabTextArray", @#GrabTextArray)
191 XgrRegisterMessage (@"GrabTextString", @#GrabTextString)
192 XgrRegisterMessage (@"GrabValueArray", @#GrabValueArray)
193 XgrRegisterMessage (@"Help", @#Help)
194 XgrRegisterMessage (@"HideTextCursor", @#HideTextCursor)
195 XgrRegisterMessage (@"HideWindow", @#HideWindow)
196 XgrRegisterMessage (@"Initialize", @#Initialize)
197 XgrRegisterMessage (@"Initialized", @#Initialized)
198 XgrRegisterMessage (@"Inline", @#Inline)
199 XgrRegisterMessage (@"InquireText", @#InquireText)
200 XgrRegisterMessage (@"KeyboardFocusBackward", @#KeyboardFocusBackward)
201 XgrRegisterMessage (@"KeyboardFocusForward", @#KeyboardFocusForward)
202 XgrRegisterMessage (@"KeyDown", @#KeyDown)
203 XgrRegisterMessage (@"KeyUp", @#KeyUp)
204 XgrRegisterMessage (@"LostKeyboardFocus", @#LostKeyboardFocus)
205 XgrRegisterMessage (@"LostMouseFocus", @#LostMouseFocus)
206 XgrRegisterMessage (@"LostTextSelection", @#LostTextSelection)
207 XgrRegisterMessage (@"MaximizeWindow", @#MaximizeWindow)
208 XgrRegisterMessage (@"Maximum", @#Maximum)
209 XgrRegisterMessage (@"MinimizeWindow", @#MinimizeWindow)
210 XgrRegisterMessage (@"Minimum", @#Minimum)
211 XgrRegisterMessage (@"MonitorContext", @#MonitorContext)
212 XgrRegisterMessage (@"MonitorHelp", @#MonitorHelp)
213 XgrRegisterMessage (@"MonitorKeyboard", @#MonitorKeyboard)
214 XgrRegisterMessage (@"MonitorMouse", @#MonitorMouse)
215 XgrRegisterMessage (@"MouseDown", @#MouseDown)
216 XgrRegisterMessage (@"MouseDrag", @#MouseDrag)
217 XgrRegisterMessage (@"MouseEnter", @#MouseEnter)
218 XgrRegisterMessage (@"MouseExit", @#MouseExit)
219 XgrRegisterMessage (@"MouseMove", @#MouseMove)
220 XgrRegisterMessage (@"MouseUp", @#MouseUp)
221 XgrRegisterMessage (@"MuchLess", @#MuchLess)
222 XgrRegisterMessage (@"MuchMore", @#MuchMore)
223 XgrRegisterMessage (@"OneLess", @#OneLess)
224 XgrRegisterMessage (@"OneMore", @#OneMore)
225 XgrRegisterMessage (@"PokeArray", @#PokeArray)
226 XgrRegisterMessage (@"PokeTextArray", @#PokeTextArray)
227 XgrRegisterMessage (@"PokeTextString", @#PokeTextString)
228 XgrRegisterMessage (@"PokeValueArray", @#PokeValueArray)
229 XgrRegisterMessage (@"Print", @#Print)
230 XgrRegisterMessage (@"Redraw", @#Redraw)
231 XgrRegisterMessage (@"RedrawGrid", @#RedrawGrid)
232 XgrRegisterMessage (@"RedrawText", @#RedrawText)
233 XgrRegisterMessage (@"RedrawWindow", @#RedrawWindow)
234 XgrRegisterMessage (@"Replace", @#Replace)
235 XgrRegisterMessage (@"ReplaceForward", @#ReplaceForward)
236 XgrRegisterMessage (@"ReplaceReverse", @#ReplaceReverse)
237 XgrRegisterMessage (@"Reset", @#Reset)
238 XgrRegisterMessage (@"Resize", @#Resize)
239 XgrRegisterMessage (@"ResizeNot", @#ResizeNot)
240 XgrRegisterMessage (@"ResizeWindow", @#ResizeWindow)
241 XgrRegisterMessage (@"ResizeWindowToGrid", @#ResizeWindowToGrid)
242 XgrRegisterMessage (@"Resized", @#Resized)
243 XgrRegisterMessage (@"Reverse", @#Reverse)
244 XgrRegisterMessage (@"ScrollH", @#ScrollH)
245 XgrRegisterMessage (@"ScrollV", @#ScrollV)
246 XgrRegisterMessage (@"SelectWindow", @#SelectWindow)
247 XgrRegisterMessage (@"Selection", @#Selection)
248 XgrRegisterMessage (@"SetAlign", @#SetAlign)
249 XgrRegisterMessage (@"SetBorder", @#SetBorder)
250 XgrRegisterMessage (@"SetCallback", @#SetCallback)
251 XgrRegisterMessage (@"SetCan", @#SetCan)
252 XgrRegisterMessage (@"SetClipGrid", @#SetClipGrid)
253 XgrRegisterMessage (@"SetColor", @#SetColor)
254 XgrRegisterMessage (@"SetColorExtra", @#SetColorExtra)
255 XgrRegisterMessage (@"SetCursor", @#SetCursor)
256 XgrRegisterMessage (@"SetCursorXY", @#SetCursorXY)
257 XgrRegisterMessage (@"SetDisplay", @#SetDisplay)
258 XgrRegisterMessage (@"SetFont", @#SetFont)
259 XgrRegisterMessage (@"SetFontNumber", @#SetFontNumber)
260 XgrRegisterMessage (@"SetGridFunction", @#SetGridFunction)
261 XgrRegisterMessage (@"SetGridFunctionName", @#SetGridFunctionName)
262 XgrRegisterMessage (@"SetGridName", @#SetGridName)
263 XgrRegisterMessage (@"SetGridType", @#SetGridType)
264 XgrRegisterMessage (@"SetGridTypeName", @#SetGridTypeName)
265 XgrRegisterMessage (@"SetGroup", @#SetGroup)
266 XgrRegisterMessage (@"SetHelp", @#SetHelp)
267 XgrRegisterMessage (@"SetHelpFile", @#SetHelpFile)
268 XgrRegisterMessage (@"SetHelpString", @#SetHelpString)
269 XgrRegisterMessage (@"SetHelpStrings", @#SetHelpStrings)
270 XgrRegisterMessage (@"SetHintString", @#SetHintString)
271 XgrRegisterMessage (@"SetImage", @#SetImage)
272 XgrRegisterMessage (@"SetImageCoords", @#SetImageCoords)
273 XgrRegisterMessage (@"SetIndent", @#SetIndent)
274 XgrRegisterMessage (@"SetInfo", @#SetInfo)
275 XgrRegisterMessage (@"SetJustify", @#SetJustify)
276 XgrRegisterMessage (@"SetKeyboardFocus", @#SetKeyboardFocus)
277 XgrRegisterMessage (@"SetKeyboardFocusGrid", @#SetKeyboardFocusGrid)
278 XgrRegisterMessage (@"SetMaxMinSize", @#SetMaxMinSize)
279 XgrRegisterMessage (@"SetMessageFunc", @#SetMessageFunc)
280 XgrRegisterMessage (@"SetMessageFuncArray", @#SetMessageFuncArray)
281 XgrRegisterMessage (@"SetMessageSub", @#SetMessageSub)
282 XgrRegisterMessage (@"SetMessageSubArray", @#SetMessageSubArray)
283 XgrRegisterMessage (@"SetModalWindow", @#SetModalWindow)
284 XgrRegisterMessage (@"SetMouseFocus", @#SetMouseFocus)
285 XgrRegisterMessage (@"SetParent", @#SetParent)
286 XgrRegisterMessage (@"SetPosition", @#SetPosition)
287 XgrRegisterMessage (@"SetRedrawFlags", @#SetRedrawFlags)
288 XgrRegisterMessage (@"SetSize", @#SetSize)
289 XgrRegisterMessage (@"SetSizeRelative", @#SetSizeRelative)
290 XgrRegisterMessage (@"SetState", @#SetState)
291 XgrRegisterMessage (@"SetStyle", @#SetStyle)
292 XgrRegisterMessage (@"SetTabStops", @#SetTabStops)
293 XgrRegisterMessage (@"SetTabWidth", @#SetTabWidth)
294 XgrRegisterMessage (@"SetTextArray", @#SetTextArray)
295 XgrRegisterMessage (@"SetTextArrayLine", @#SetTextArrayLine)
296 XgrRegisterMessage (@"SetTextArrayLines", @#SetTextArrayLines)
297 XgrRegisterMessage (@"SetTextCursor", @#SetTextCursor)
298 XgrRegisterMessage (@"SetTextSelection", @#SetTextSelection)
299 XgrRegisterMessage (@"SetTextString", @#SetTextString)
300 XgrRegisterMessage (@"SetTextStrings", @#SetTextStrings)
301 XgrRegisterMessage (@"SetTexture", @#SetTexture)
302 XgrRegisterMessage (@"SetTimer", @#SetTimer)
303 XgrRegisterMessage (@"SetValue", @#SetValue)
304 XgrRegisterMessage (@"SetValues", @#SetValues)
305 XgrRegisterMessage (@"SetValueArray", @#SetValueArray)
306 XgrRegisterMessage (@"SetWindowFunction", @#SetWindowFunction)
307 XgrRegisterMessage (@"SetWindowIcon", @#SetWindowIcon)
308 XgrRegisterMessage (@"SetWindowTitle", @#SetWindowTitle)
309 XgrRegisterMessage (@"ShowTextCursor", @#ShowTextCursor)
310 XgrRegisterMessage (@"ShowWindow", @#ShowWindow)
311 XgrRegisterMessage (@"SomeLess", @#SomeLess)
312 XgrRegisterMessage (@"SomeMore", @#SomeMore)
313 XgrRegisterMessage (@"StartTimer", @#StartTimer)
314 XgrRegisterMessage (@"TextDelete", @#TextDelete)
315 XgrRegisterMessage (@"TextEvent", @#TextEvent)
316 XgrRegisterMessage (@"TextInsert", @#TextInsert)
317 XgrRegisterMessage (@"TextModified", @#TextModified)
318 XgrRegisterMessage (@"TextReplace", @#TextReplace)
319 XgrRegisterMessage (@"TimeOut", @#TimeOut)
320 XgrRegisterMessage (@"Update", @#Update)
321 XgrRegisterMessage (@"WindowCreate", @#WindowCreate)
322 XgrRegisterMessage (@"WindowDeselected", @#WindowDeselected)
323 XgrRegisterMessage (@"WindowDestroy", @#WindowDestroy)
324 XgrRegisterMessage (@"WindowDestroyed", @#WindowDestroyed)
325 XgrRegisterMessage (@"WindowDisplay", @#WindowDisplay)
326 XgrRegisterMessage (@"WindowDisplayed", @#WindowDisplayed)
327 XgrRegisterMessage (@"WindowExposed", @#WindowExposed)
328 XgrRegisterMessage (@"WindowGetDisplay", @#WindowGetDisplay)
329 XgrRegisterMessage (@"WindowGetIcon", @#WindowGetIcon)
330 XgrRegisterMessage (@"WindowGetKeyboardFocusGrid", @#WindowGetKeyboardFocusGrid)
331 XgrRegisterMessage (@"WindowGetSelectedWindow", @#WindowGetSelectedWindow)
332 XgrRegisterMessage (@"WindowGetSize", @#WindowGetSize)
333 XgrRegisterMessage (@"WindowGetTitle", @#WindowGetTitle)
334 XgrRegisterMessage (@"WindowHide", @#WindowHide)
335 XgrRegisterMessage (@"WindowHidden", @#WindowHidden)
336 XgrRegisterMessage (@"WindowKeyDown", @#WindowKeyDown)
337 XgrRegisterMessage (@"WindowKeyUp", @#WindowKeyUp)
338 XgrRegisterMessage (@"WindowMaximize", @#WindowMaximize)
339 XgrRegisterMessage (@"WindowMaximized", @#WindowMaximized)
340 XgrRegisterMessage (@"WindowMinimize", @#WindowMinimize)
341 XgrRegisterMessage (@"WindowMinimized", @#WindowMinimized)
342 XgrRegisterMessage (@"WindowMonitorContext", @#WindowMonitorContext)
343 XgrRegisterMessage (@"WindowMonitorHelp", @#WindowMonitorHelp)
344 XgrRegisterMessage (@"WindowMonitorKeyboard", @#WindowMonitorKeyboard)
345 XgrRegisterMessage (@"WindowMonitorMouse", @#WindowMonitorMouse)
346 XgrRegisterMessage (@"WindowMouseDown", @#WindowMouseDown)
347 XgrRegisterMessage (@"WindowMouseDrag", @#WindowMouseDrag)
348 XgrRegisterMessage (@"WindowMouseEnter", @#WindowMouseEnter)
349 XgrRegisterMessage (@"WindowMouseExit", @#WindowMouseExit)
350 XgrRegisterMessage (@"WindowMouseMove", @#WindowMouseMove)
351 XgrRegisterMessage (@"WindowMouseUp", @#WindowMouseUp)
352 XgrRegisterMessage (@"WindowRedraw", @#WindowRedraw)
353 XgrRegisterMessage (@"WindowRegister", @#WindowRegister)
354 XgrRegisterMessage (@"WindowResize", @#WindowResize)
355 XgrRegisterMessage (@"WindowResized", @#WindowResized)
356 XgrRegisterMessage (@"WindowResizeToGrid", @#WindowResizeToGrid)
357 XgrRegisterMessage (@"WindowSelect", @#WindowSelect)
358 XgrRegisterMessage (@"WindowSelected", @#WindowSelected)
359 XgrRegisterMessage (@"WindowSetDisplay", @#WindowSetDisplay)
360 XgrRegisterMessage (@"WindowSetIcon", @#WindowSetIcon)
361 XgrRegisterMessage (@"WindowSetKeyboardFocusGrid", @#WindowSetKeyboardFocusGrid)
362 XgrRegisterMessage (@"WindowSetTitle", @#WindowSetTitle)
363 XgrRegisterMessage (@"WindowShow", @#WindowShow)
364 XgrRegisterMessage (@"LastMessage", @#LastMessage)
365 '
366 XgrGetDisplaySize ("", @#displayWidth, @#displayHeight, @#windowBorderWidth, @#windowTitleHeight)
367 END FUNCTION
368 '
369 '
370 ' ############################
371 ' ##### InitProgram () #####
372 ' ############################
373 '
374 ' Add code to InitProgram() to initialize whatever needs initialization.
375 ' Do not delete this function - leave it empty if not needed.
376 '
377 FUNCTION InitProgram ()
378
379 END FUNCTION
380 '
381 '
382 ' ##############################
383 ' ##### CreateWindows () #####
384 ' ##############################
385 '
386 ' GuiDesigner puts code in CreateWindows() to create, initialize, display
387 ' every window you design graphically. Don't modify this function unless
388 ' absolutely necessary - GuiDesigner needs to read and update it at times.
389 '
390 ' CreateWindows() usually should not be executed when compiled as library.
391 ' Start CreateWindows() with "IF LIBRARY(0) THEN RETURN" to assure this.
392 '
393 FUNCTION CreateWindows ()
394 '
395 IF LIBRARY(0) THEN RETURN
396 '
397 SolidColors (@SolidColors, #CreateWindow, 0, 0, 0, 0, 0, 0)
398 XuiSendMessage (SolidColors, #SetCallback, SolidColors, &SolidColorsCode(), -1, -1, -1, 0)
399 XuiSendMessage (SolidColors, #DisplayWindow, 0, 0, 0, 0, 0, 0)
400 END FUNCTION
401 '
402 '
403 ' ############################
404 ' ##### SolidColors () #####
405 ' ############################
406 '
407 FUNCTION SolidColors (grid, message, v0, v1, v2, v3, r0, (r1, r1$, r1[], r1$[]))
408 STATIC designX, designY, designWidth, designHeight
409 STATIC SUBADDR sub[]
410 STATIC upperMessage
411 STATIC SolidColors
412 '
413 $SolidColors = 0 ' kid 0 grid type = SolidColors
414 $Black = 1 ' kid 1 grid type = XuiLabel
415 $Blue = 2 ' kid 2 grid type = XuiLabel
416 $LightBlue = 3 ' kid 3 grid type = XuiLabel
417 $Green = 4 ' kid 4 grid type = XuiLabel
418 $Cyan = 5 ' kid 5 grid type = XuiLabel
419 $LightGreen = 6 ' kid 6 grid type = XuiLabel
420 $LightCyan = 7 ' kid 7 grid type = XuiLabel
421 $Red = 8 ' kid 8 grid type = XuiLabel
422 $Magenta = 9 ' kid 9 grid type = XuiLabel
423 $Brown = 10 ' kid 10 grid type = XuiLabel
424 $Grey = 11 ' kid 11 grid type = XuiLabel
425 $BrightGrey = 12 ' kid 12 grid type = XuiLabel
426 $LightRed = 13 ' kid 13 grid type = XuiLabel
427 $LightMagenta = 14 ' kid 14 grid type = XuiLabel
428 $LightYellow = 15 ' kid 15 grid type = XuiLabel
429 $White = 16 ' kid 16 grid type = XuiLabel
430 $Line1 = 17 ' kid 17 grid type = XuiLabel
431 $Line2 = 18 ' kid 18 grid type = XuiLabel
432 $Line3 = 19 ' kid 19 grid type = XuiLabel
433 $Line4 = 20 ' kid 20 grid type = XuiLabel
434 $Line5 = 21 ' kid 21 grid type = XuiLabel
435 $Line6 = 22 ' kid 22 grid type = XuiLabel
436 $Line7 = 23 ' kid 23 grid type = XuiLabel
437 $Line8 = 24 ' kid 24 grid type = XuiLabel
438 $Quit = 25 ' kid 25 grid type = XuiPushButton
439 $UpperKid = 25 ' kid maximum
440 '
441 '
442 IFZ sub[] THEN GOSUB Initialize
443 ' XuiReportMessage (grid, message, v0, v1, v2, v3, r0, r1)
444 IF XuiProcessMessage (grid, message, @v0, @v1, @v2, @v3, @r0, @r1, SolidColors) THEN RETURN
445 IF (message <= upperMessage) THEN GOSUB @sub[message]
446 RETURN
447 '
448 '
449 ' ***** Callback ***** message = Callback : r1 = original message
450 '
451 SUB Callback
452 message = r1
453 callback = message
454 IF (message <= upperMessage) THEN GOSUB @sub[message]
455 END SUB
456 '
457 '
458 ' ***** Create ***** v0123 = xywh : r0 = window : r1 = parent
459 '
460 SUB Create
461 IF (v0 <= 0) THEN v0 = 0
462 IF (v1 <= 0) THEN v1 = 0
463 IF (v2 <= 0) THEN v2 = designWidth
464 IF (v3 <= 0) THEN v3 = designHeight
465 XuiCreateGrid (@grid, SolidColors, @v0, @v1, @v2, @v3, r0, r1, &SolidColors())
466 XuiSendMessage ( grid, #SetGridName, 0, 0, 0, 0, 0, @"SolidColors")
467 XuiSendMessage ( grid, #SetAlign, $$AlignMiddleCenter, 0, -1, -1, 0, 0)
468 XuiLabel (@g, #Create, 4, 4, 144, 68, r0, grid)
469 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Black")
470 XuiSendMessage ( g, #SetColor, $$Black, $$White, $$Black, $$White, 0, 0)
471 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
472 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
473 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"$$Black\n\n(drawing)\n(lowlight)\n(lowtext)")
474 XuiLabel (@g, #Create, 148, 4, 144, 68, r0, grid)
475 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Blue")
476 XuiSendMessage ( g, #SetColor, $$Blue, $$White, $$Black, $$White, 0, 0)
477 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
478 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
479 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"$$Blue\n$$MediumBlue")
480 XuiLabel (@g, #Create, 292, 4, 144, 68, r0, grid)
481 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"LightBlue")
482 XuiSendMessage ( g, #SetColor, $$LightBlue, $$White, $$Black, $$White, 0, 0)
483 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
484 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
485 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"$$LightBlue")
486 XuiLabel (@g, #Create, 436, 4, 144, 68, r0, grid)
487 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Green")
488 XuiSendMessage ( g, #SetColor, $$Green, $$White, $$Black, $$White, 0, 0)
489 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
490 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
491 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"$$Green\n$$MediumGreen")
492 XuiLabel (@g, #Create, 4, 72, 144, 68, r0, grid)
493 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Cyan")
494 XuiSendMessage ( g, #SetColor, $$Cyan, $$White, $$Black, $$White, 0, 0)
495 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
496 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
497 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"$$Cyan\n$$MediumCyan\n\n(dull)")
498 XuiLabel (@g, #Create, 148, 72, 144, 68, r0, grid)
499 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"LightGreen")
500 XuiSendMessage ( g, #SetColor, $$LightGreen, $$Black, $$Black, $$White, 0, 0)
501 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
502 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
503 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"$$LightGreen")
504 XuiLabel (@g, #Create, 292, 72, 144, 68, r0, grid)
505 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"LightCyan")
506 XuiSendMessage ( g, #SetColor, $$LightCyan, $$Black, $$Black, $$White, 0, 0)
507 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
508 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
509 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"$$LightCyan")
510 XuiLabel (@g, #Create, 436, 72, 144, 68, r0, grid)
511 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Red")
512 XuiSendMessage ( g, #SetColor, $$Red, $$White, $$Black, $$White, 0, 0)
513 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
514 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
515 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"$$Red\n$$MediumRed")
516 XuiLabel (@g, #Create, 4, 140, 144, 68, r0, grid)
517 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Magenta")
518 XuiSendMessage ( g, #SetColor, $$Magenta, $$White, $$Black, $$White, 0, 0)
519 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
520 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
521 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"$$Magenta\n$$MediumMagenta")
522 XuiLabel (@g, #Create, 148, 140, 144, 68, r0, grid)
523 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Brown")
524 XuiSendMessage ( g, #SetColor, $$Brown, $$White, $$Black, $$White, 0, 0)
525 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
526 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
527 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"$$Brown\n$$MediumBrown")
528 XuiLabel (@g, #Create, 292, 140, 144, 68, r0, grid)
529 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Grey")
530 XuiSendMessage ( g, #SetColor, $$Grey, $$White, $$Black, $$White, 0, 0)
531 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
532 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
533 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"$$Grey\n$$MediumGrey")
534 XuiLabel (@g, #Create, 436, 140, 144, 68, r0, grid)
535 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"BrightGrey")
536 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
537 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
538 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"$$BrightGrey\n\n(background)")
539 XuiLabel (@g, #Create, 4, 208, 144, 64, r0, grid)
540 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"LightRed")
541 XuiSendMessage ( g, #SetColor, $$LightRed, $$Black, $$Black, $$White, 0, 0)
542 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
543 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
544 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"$$LightRed")
545 XuiLabel (@g, #Create, 148, 208, 144, 64, r0, grid)
546 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"LightMagenta")
547 XuiSendMessage ( g, #SetColor, $$LightMagenta, $$Black, $$Black, $$White, 0, 0)
548 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
549 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
550 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"$$LightMagenta")
551 XuiLabel (@g, #Create, 292, 208, 144, 64, r0, grid)
552 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"LightYellow")
553 XuiSendMessage ( g, #SetColor, 120, $$Black, $$Black, $$White, 0, 0)
554 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
555 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
556 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"$$LightYellow\n\n(accent)")
557 XuiLabel (@g, #Create, 436, 208, 144, 64, r0, grid)
558 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"White")
559 XuiSendMessage ( g, #SetColor, $$White, $$Black, $$Black, $$White, 0, 0)
560 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
561 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
562 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"$$White\n\n(highlight)\n(hightext)")
563 XuiLabel (@g, #Create, 4, 272, 576, 16, r0, grid)
564 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Line1")
565 XuiSendMessage ( g, #SetColor, $$Black, $$Black, $$Black, $$White, 0, 0)
566 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
567 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"The colors above are almost always \"solid\" colors on most systems")
568 XuiLabel (@g, #Create, 4, 288, 576, 16, r0, grid)
569 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Line2")
570 XuiSendMessage ( g, #SetColor, $$Black, $$LightGreen, $$Black, $$White, 0, 0)
571 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
572 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
573 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Default colors (shown in parentheses) are usually solid colors")
574 XuiLabel (@g, #Create, 4, 304, 576, 16, r0, grid)
575 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Line3")
576 XuiSendMessage ( g, #SetColor, $$Black, $$LightCyan, $$Black, $$White, 0, 0)
577 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
578 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
579 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"IMPORT \"xgr\" defines these color name constants for programs")
580 XuiLabel (@g, #Create, 4, 320, 576, 16, r0, grid)
581 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Line4")
582 XuiSendMessage ( g, #SetColor, $$Black, $$LightRed, $$Black, $$White, 0, 0)
583 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
584 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
585 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Video card/monitor combinations display colors differently")
586 XuiLabel (@g, #Create, 4, 336, 576, 16, r0, grid)
587 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Line5")
588 XuiSendMessage ( g, #SetColor, $$Black, 120, $$Black, $$White, 0, 0)
589 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
590 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
591 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Most distributed programs should contain only these colors")
592 XuiLabel (@g, #Create, 4, 352, 576, 16, r0, grid)
593 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Line6")
594 XuiSendMessage ( g, #SetColor, $$Black, $$White, $$Black, $$White, 0, 0)
595 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
596 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
597 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Most distributed programs should alter few if any colors")
598 XuiLabel (@g, #Create, 4, 368, 576, 16, r0, grid)
599 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Line7")
600 XuiSendMessage ( g, #SetColor, $$Black, $$LightGreen, $$Black, $$White, 0, 0)
601 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
602 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
603 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Text grid background colors should always be solid")
604 XuiLabel (@g, #Create, 4, 384, 576, 16, r0, grid)
605 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Line8")
606 XuiSendMessage ( g, #SetColor, $$Black, $$LightCyan, $$Black, $$White, 0, 0)
607 XuiSendMessage ( g, #SetBorder, $$BorderNone, $$BorderNone, $$BorderNone, -1, 0, 0)
608 XuiSendMessage ( g, #SetTexture, $$TextureNone, 0, 0, 0, 0, 0)
609 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"3D effect colors should rarely be altered")
610 XuiPushButton (@g, #Create, 4, 400, 576, 48, r0, grid)
611 XuiSendMessage ( g, #SetCallback, grid, &SolidColors(), -1, -1, $Quit, grid)
612 XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Quit")
613 XuiSendMessage ( g, #SetColor, 76, $$LightCyan, $$Black, $$White, 0, 0)
614 XuiSendMessage ( g, #SetColorExtra, $$Grey, $$LightYellow, $$Black, $$LightCyan, 0, 0)
615 XuiSendMessage ( g, #SetBorder, $$BorderRaise4, $$BorderRaise4, $$BorderLower2, -1, 0, 0)
616 XuiSendMessage ( g, #SetTexture, $$TextureRaise1, 0, 0, 0, 0, 0)
617 XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"some non-solid colors like this are okay backgrounds\n*** PRESS THIS BUTTON TO QUIT ***")
618 GOSUB Resize
619 END SUB
620 '
621 '
622 ' ***** CreateWindow ***** v0123 = xywh : r0 = windowType : r1$ = display$
623 '
624 SUB CreateWindow
625 IF (v0 = 0) THEN v0 = designX
626 IF (v1 = 0) THEN v1 = designY
627 IF (v2 <= 0) THEN v2 = designWidth
628 IF (v3 <= 0) THEN v3 = designHeight
629 XuiWindow (@window, #WindowCreate, v0, v1, v2, v3, r0, @r1$)
630 v0 = 0 : v1 = 0 : r0 = window : ATTACH r1$ TO display$
631 GOSUB Create
632 r1 = 0 : ATTACH display$ TO r1$
633 XuiWindow (window, #WindowRegister, grid, -1, v2, v3, @r0, @"SolidColors")
634 END SUB
635 '
636 '
637 ' ***** GetSmallestSize ***** See "Anatomy of Grid Functions"
638 '
639 SUB GetSmallestSize
640 END SUB
641 '
642 '
643 ' ***** Resize ***** See "Anatomy of Grid Functions"
644 '
645 SUB Resize
646 END SUB
647 '
648 '
649 ' ***** Selection ***** See "Anatomy of Grid Functions"
650 '
651 SUB Selection
652 END SUB
653 '
654 '
655 ' ***** Initialize ***** ' see "Anatomy of Grid Functions"
656 '
657 SUB Initialize
658 XuiGetDefaultMessageFuncArray (@func[])
659 XgrMessageNameToNumber (@"LastMessage", @upperMessage)
660 '
661 func[#Callback] = &XuiCallback () ' disable to handle Callback messages internally
662 ' func[#GetSmallestSize] = 0 ' enable to add internal GetSmallestSize routine
663 ' func[#Resize] = 0 ' enable to add internal Resize routine
664 '
665 DIM sub[upperMessage]
666 ' sub[#Callback] = SUBADDRESS (Callback) ' enable to handle Callback messages internally
667 sub[#Create] = SUBADDRESS (Create) ' must be internal routine
668 sub[#CreateWindow] = SUBADDRESS (CreateWindow) ' must be internal routine
669 ' sub[#GetSmallestSize] = SUBADDRESS (GetSmallestSize) ' enable to add internal GetSmallestSize routine
670 ' sub[#Resize] = SUBADDRESS (Resize) ' enable to add internal Resize routine
671 sub[#Selection] = SUBADDRESS (Selection) ' routes Selection callbacks to subroutine
672 '
673 IF sub[0] THEN PRINT "SolidColors(): Initialize: Error::: (Undefined Message)"
674 IF func[0] THEN PRINT "SolidColors(): Initialize: Error::: (Undefined Message)"
675 XuiRegisterGridType (@SolidColors, "SolidColors", &SolidColors(), @func[], @sub[])
676 '
677 ' Don't remove the following 4 lines, or WindowFromFunction/WindowToFunction will not work
678 '
679 designX = 436
680 designY = 23
681 designWidth = 584
682 designHeight = 452
683 '
684 gridType = SolidColors
685 XuiSetGridTypeValue (gridType, @"x", designX)
686 XuiSetGridTypeValue (gridType, @"y", designY)
687 XuiSetGridTypeValue (gridType, @"width", designWidth)
688 XuiSetGridTypeValue (gridType, @"height", designHeight)
689 XuiSetGridTypeValue (gridType, @"maxWidth", designWidth)
690 XuiSetGridTypeValue (gridType, @"maxHeight", designHeight)
691 XuiSetGridTypeValue (gridType, @"minWidth", designWidth)
692 XuiSetGridTypeValue (gridType, @"minHeight", designHeight)
693 XuiSetGridTypeValue (gridType, @"border", $$BorderFrame)
694 XuiSetGridTypeValue (gridType, @"can", $$Focus OR $$Respond OR $$Callback)
695 XuiSetGridTypeValue (gridType, @"focusKid", $Quit)
696 IFZ message THEN RETURN
697 END SUB
698 END FUNCTION
699 '
700 '
701 ' ################################
702 ' ##### SolidColorsCode () #####
703 ' ################################
704 '
705 FUNCTION SolidColorsCode (grid, message, v0, v1, v2, v3, kid, r1)
706 '
707 $SolidColors = 0 ' kid 0 grid type = SolidColors
708 $Black = 1 ' kid 1 grid type = XuiLabel
709 $Blue = 2 ' kid 2 grid type = XuiLabel
710 $LightBlue = 3 ' kid 3 grid type = XuiLabel
711 $Green = 4 ' kid 4 grid type = XuiLabel
712 $Cyan = 5 ' kid 5 grid type = XuiLabel
713 $LightGreen = 6 ' kid 6 grid type = XuiLabel
714 $LightCyan = 7 ' kid 7 grid type = XuiLabel
715 $Red = 8 ' kid 8 grid type = XuiLabel
716 $Magenta = 9 ' kid 9 grid type = XuiLabel
717 $Brown = 10 ' kid 10 grid type = XuiLabel
718 $Grey = 11 ' kid 11 grid type = XuiLabel
719 $BrightGrey = 12 ' kid 12 grid type = XuiLabel
720 $LightRed = 13 ' kid 13 grid type = XuiLabel
721 $LightMagenta = 14 ' kid 14 grid type = XuiLabel
722 $LightYellow = 15 ' kid 15 grid type = XuiLabel
723 $White = 16 ' kid 16 grid type = XuiLabel
724 $Line1 = 17 ' kid 17 grid type = XuiLabel
725 $Line2 = 18 ' kid 18 grid type = XuiLabel
726 $Line3 = 19 ' kid 19 grid type = XuiLabel
727 $Line4 = 20 ' kid 20 grid type = XuiLabel
728 $Line5 = 21 ' kid 21 grid type = XuiLabel
729 $Line6 = 22 ' kid 22 grid type = XuiLabel
730 $Line7 = 23 ' kid 23 grid type = XuiLabel
731 $Line8 = 24 ' kid 24 grid type = XuiLabel
732 $Quit = 25 ' kid 25 grid type = XuiPushButton
733 $UpperKid = 25 ' kid maximum
734 '
735 ' XuiReportMessage (grid, message, v0, v1, v2, v3, kid, r1)
736 IF (message = #Callback) THEN message = r1
737 '
738 SELECT CASE message
739 CASE #Selection: GOSUB Selection ' Common callback message
740 ' CASE #TextEvent: GOSUB TextEvent ' KeyDown in TextArea or TextLine
741 END SELECT
742 RETURN
743 '
744 '
745 ' ***** Selection *****
746 '
747 SUB Selection
748 SELECT CASE kid
749 CASE $SolidColors :
750 CASE $Black :
751 CASE $Blue :
752 CASE $LightBlue :
753 CASE $Green :
754 CASE $Cyan :
755 CASE $LightGreen :
756 CASE $LightCyan :
757 CASE $Red :
758 CASE $Magenta :
759 CASE $Brown :
760 CASE $Grey :
761 CASE $BrightGrey :
762 CASE $LightRed :
763 CASE $LightMagenta :
764 CASE $LightYellow :
765 CASE $White :
766 CASE $Line1 :
767 CASE $Line2 :
768 CASE $Line3 :
769 CASE $Line4 :
770 CASE $Line5 :
771 CASE $Line6 :
772 CASE $Line7 :
773 CASE $Line8 :
774 CASE $Quit : QUIT (0)
775 END SELECT
776 END SUB
777 END FUNCTION
778 END PROGRAM