"SfR Fresh" - the SfR Freeware/Shareware Archive

Member "usr/xb-6.2.3/demo/acolors.x" of archive xbasic-6.2.3-linux-i386.tar.gz:


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