home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 August / PCWorld_2000-08_cd.bin / Software / TemaCD / xbasic / xbpro.exe / xb / warning.x < prev    next >
Text File  |  1995-07-22  |  42KB  |  1,040 lines

  1. '
  2. ' ####################
  3. ' #####  PROLOG  #####
  4. ' ####################
  5. '
  6. PROGRAM    "warning"
  7. VERSION    "0.0007"
  8. '
  9. IMPORT  "xst"
  10. IMPORT  "xui"
  11. IMPORT  "xgr"
  12. '
  13. EXPORT
  14. DECLARE  FUNCTION  Entry         ()
  15. DECLARE  FUNCTION  Blowback      ()
  16. END EXPORT
  17. INTERNAL FUNCTION  InitGui       ()
  18. INTERNAL FUNCTION  InitProgram   ()
  19. INTERNAL FUNCTION  CreateWindows ()
  20. EXPORT
  21. DECLARE  FUNCTION  XuiWarning1B  (grid, message, v0, v1, v2, v3, kid, ANY)
  22. DECLARE  FUNCTION  XuiWarning2B  (grid, message, v0, v1, v2, v3, kid, ANY)
  23. DECLARE  FUNCTION  XuiWarning3B  (grid, message, v0, v1, v2, v3, kid, ANY)
  24. DECLARE  FUNCTION  XuiWarning4B  (grid, message, v0, v1, v2, v3, kid, ANY)
  25. END EXPORT
  26. '
  27. '
  28. ' ######################
  29. ' #####  Entry ()  #####
  30. ' ######################
  31. '
  32. FUNCTION  Entry ()
  33.     SHARED  terminateProgram
  34.     STATIC    entry
  35. '
  36.     IF entry THEN RETURN
  37.     entry = $$TRUE
  38. '
  39.     Xui ()                                                ' initialize GuiDesigner
  40.     InitGui ()                                        ' initialize messages
  41.     InitProgram ()                                ' initialize this program
  42.     CreateWindows ()                            ' create main window and others
  43.     IF LIBRARY(0) THEN RETURN            ' Return to main program message loop
  44. '
  45.     DO                                                        ' the message loop
  46.         XgrProcessMessages (1)            ' process one message
  47.     LOOP UNTIL terminateProgram        ' and repeat until program is terminated
  48. END FUNCTION
  49. '
  50. '
  51. ' #########################
  52. ' #####  Blowback ()  #####
  53. ' #########################
  54. '
  55. FUNCTION  Blowback ()
  56. '    PRINT "warning.x:Blowback()"
  57. END FUNCTION
  58. '
  59. '
  60. ' ########################
  61. ' #####  InitGui ()  #####
  62. ' ########################
  63. '
  64. ' InitGui() initializes cursor, icon, message, and display variables.
  65. ' Programs can reference these variables, but must never change them.
  66. '
  67. FUNCTION  InitGui ()
  68. '
  69. ' ***************************************
  70. ' *****  Register Standard Cursors  *****
  71. ' ***************************************
  72. '
  73.     XgrRegisterCursor (@"default",      @#cursorDefault)
  74.     XgrRegisterCursor (@"arrow",        @#cursorArrow)
  75.     XgrRegisterCursor (@"n",            @#cursorN)
  76.     XgrRegisterCursor (@"s",            @#cursorS)
  77.     XgrRegisterCursor (@"e",            @#cursorE)
  78.     XgrRegisterCursor (@"w",            @#cursorW)
  79.     XgrRegisterCursor (@"ns",           @#cursorArrowsNS)
  80.     XgrRegisterCursor (@"ns",           @#cursorArrowsSN)
  81.     XgrRegisterCursor (@"ew",           @#cursorArrowsEW)
  82.     XgrRegisterCursor (@"ew",           @#cursorArrowsWE)
  83.     XgrRegisterCursor (@"nwse",         @#cursorArrowsNWSE)
  84.     XgrRegisterCursor (@"nesw",         @#cursorArrowsNESW)
  85.     XgrRegisterCursor (@"all",          @#cursorArrowsAll)
  86.     XgrRegisterCursor (@"plus",         @#cursorPlus)
  87.     XgrRegisterCursor (@"wait",         @#cursorWait)
  88.     XgrRegisterCursor (@"insert",       @#cursorInsert)
  89.     XgrRegisterCursor (@"crosshair",    @#cursorCrosshair)
  90.     XgrRegisterCursor (@"hourglass",    @#cursorHourglass)
  91. '
  92.     #defaultCursor = #cursorDefault
  93. '
  94. '
  95. ' ********************************************
  96. ' *****  Register Standard Window Icons  *****
  97. ' ********************************************
  98. '
  99.     XgrRegisterIcon (@"hand",                    @#iconHand)
  100.     XgrRegisterIcon (@"asterisk",            @#iconAsterisk)
  101.     XgrRegisterIcon (@"question",            @#iconQuestion)
  102.     XgrRegisterIcon (@"exclamation",    @#iconExclamation)
  103.     XgrRegisterIcon (@"application",    @#iconApplication)
  104. '
  105.     XgrRegisterIcon (@"hand",                    @#iconStop)                        ' alias
  106.     XgrRegisterIcon (@"asterisk",            @#iconInformation)        ' alias
  107.     XgrRegisterIcon (@"application",  @#iconBlank)                    ' alias
  108. '
  109.     XgrRegisterIcon (@"window",                @#iconWindow)                    ' custom
  110. '
  111. '
  112. ' ******************************
  113. ' *****  Register Messages *****  Create message numbers for message names
  114. ' ******************************
  115. '
  116.     XgrRegisterMessage (@"Callback",                                        @#Callback)
  117.     XgrRegisterMessage (@"Cancel",                                            @#Cancel)
  118.     XgrRegisterMessage (@"Change",                                            @#Change)
  119.     XgrRegisterMessage (@"CloseWindow",                                    @#CloseWindow)
  120.     XgrRegisterMessage (@"ContextChange",                                @#ContextChange)
  121.     XgrRegisterMessage (@"Create",                                            @#Create)
  122.     XgrRegisterMessage (@"CreateValueArray",                        @#CreateValueArray)
  123.     XgrRegisterMessage (@"CreateWindow",                                @#CreateWindow)
  124.     XgrRegisterMessage (@"CursorH",                                            @#CursorH)
  125.     XgrRegisterMessage (@"CursorV",                                            @#CursorV)
  126.     XgrRegisterMessage (@"Deselected",                                    @#Deselected)
  127.     XgrRegisterMessage (@"Destroy",                                            @#Destroy)
  128.     XgrRegisterMessage (@"Destroyed",                                        @#Destroyed)
  129.     XgrRegisterMessage (@"DestroyWindow",                                @#DestroyWindow)
  130.     XgrRegisterMessage (@"Disable",                                            @#Disable)
  131.     XgrRegisterMessage (@"Disabled",                                        @#Disabled)
  132.     XgrRegisterMessage (@"Displayed",                                        @#Displayed)
  133.     XgrRegisterMessage (@"DisplayWindow",                                @#DisplayWindow)
  134.     XgrRegisterMessage (@"Enable",                                            @#Enable)
  135.     XgrRegisterMessage (@"Enabled",                                            @#Enabled)
  136.     XgrRegisterMessage (@"Enter",                                                @#Enter)
  137.     XgrRegisterMessage (@"ExitMessageLoop",                            @#ExitMessageLoop)
  138.     XgrRegisterMessage (@"Find",                                                @#Find)
  139.     XgrRegisterMessage (@"FindForward",                                    @#FindForward)
  140.     XgrRegisterMessage (@"FindReverse",                                    @#FindReverse)
  141.     XgrRegisterMessage (@"Forward",                                            @#Forward)
  142.     XgrRegisterMessage (@"GetAlign",                                        @#GetAlign)
  143.     XgrRegisterMessage (@"GetBorder",                                        @#GetBorder)
  144.     XgrRegisterMessage (@"GetBorderOffset",                            @#GetBorderOffset)
  145.     XgrRegisterMessage (@"GetCallback",                                    @#GetCallback)
  146.     XgrRegisterMessage (@"GetCallbackArgs",                            @#GetCallbackArgs)
  147.     XgrRegisterMessage (@"GetCan",                                            @#GetCan)
  148.     XgrRegisterMessage (@"GetClipGrid",                                    @#GetClipGrid)
  149.     XgrRegisterMessage (@"GetColor",                                        @#GetColor)
  150.     XgrRegisterMessage (@"GetColorExtra",                                @#GetColorExtra)
  151.     XgrRegisterMessage (@"GetCursor",                                        @#GetCursor)
  152.     XgrRegisterMessage (@"GetCursorXY",                                    @#GetCursorXY)
  153.     XgrRegisterMessage (@"GetDisplay",                                    @#GetDisplay)
  154.     XgrRegisterMessage (@"GetEnclosedGrids",                        @#GetEnclosedGrids)
  155.     XgrRegisterMessage (@"GetEnclosingGrid",                        @#GetEnclosingGrid)
  156.     XgrRegisterMessage (@"GetFont",                                            @#GetFont)
  157.     XgrRegisterMessage (@"GetFontNumber",                                @#GetFontNumber)
  158.     XgrRegisterMessage (@"GetGridFunction",                            @#GetGridFunction)
  159.     XgrRegisterMessage (@"GetGridFunctionName",                    @#GetGridFunctionName)
  160.     XgrRegisterMessage (@"GetGridName",                                    @#GetGridName)
  161.     XgrRegisterMessage (@"GetGridNumber",                                @#GetGridNumber)
  162.     XgrRegisterMessage (@"GetGridType",                                    @#GetGridType)
  163.     XgrRegisterMessage (@"GetGridTypeName",                            @#GetGridTypeName)
  164.     XgrRegisterMessage (@"GetGroup",                                        @#GetGroup)
  165.     XgrRegisterMessage (@"GetHelp",                                            @#GetHelp)
  166.     XgrRegisterMessage (@"GetHelpFile",                                    @#GetHelpFile)
  167.     XgrRegisterMessage (@"GetHelpString",                                @#GetHelpString)
  168.     XgrRegisterMessage (@"GetHelpStrings",                            @#GetHelpStrings)
  169.     XgrRegisterMessage (@"GetHintString",                                @#GetHintString)
  170.     XgrRegisterMessage (@"GetImage",                                        @#GetImage)
  171.     XgrRegisterMessage (@"GetImageCoords",                            @#GetImageCoords)
  172.     XgrRegisterMessage (@"GetIndent",                                        @#GetIndent)
  173.     XgrRegisterMessage (@"GetInfo",                                            @#GetInfo)
  174.     XgrRegisterMessage (@"GetJustify",                                    @#GetJustify)
  175.     XgrRegisterMessage (@"GetKeyboardFocus",                        @#GetKeyboardFocus)
  176.     XgrRegisterMessage (@"GetKeyboardFocusGrid",                @#GetKeyboardFocusGrid)
  177.     XgrRegisterMessage (@"GetKidNumber",                                @#GetKidNumber)
  178.     XgrRegisterMessage (@"GetKids",                                            @#GetKids)
  179.     XgrRegisterMessage (@"GetKidArray",                                    @#GetKidArray)
  180.     XgrRegisterMessage (@"GetKind",                                            @#GetKind)
  181.     XgrRegisterMessage (@"GetMaxMinSize",                                @#GetMaxMinSize)
  182.     XgrRegisterMessage (@"GetMessageFunc",                            @#GetMessageFunc)
  183.     XgrRegisterMessage (@"GetMessageFuncArray",                    @#GetMessageFuncArray)
  184.     XgrRegisterMessage (@"GetMessageSub",                                @#GetMessageSub)
  185.     XgrRegisterMessage (@"GetMessageSubArray",                    @#GetMessageSubArray)
  186.     XgrRegisterMessage (@"GetModalInfo",                                @#GetModalInfo)
  187.     XgrRegisterMessage (@"GetModalWindow",                            @#GetModalWindow)
  188.     XgrRegisterMessage (@"GetParent",                                        @#GetParent)
  189.     XgrRegisterMessage (@"GetPosition",                                    @#GetPosition)
  190.     XgrRegisterMessage (@"GetProtoInfo",                                @#GetProtoInfo)
  191.     XgrRegisterMessage (@"GetRedrawFlags",                            @#GetRedrawFlags)
  192.     XgrRegisterMessage (@"GetSize",                                            @#GetSize)
  193.     XgrRegisterMessage (@"GetSmallestSize",                            @#GetSmallestSize)
  194.     XgrRegisterMessage (@"GetState",                                        @#GetState)
  195.     XgrRegisterMessage (@"GetStyle",                                        @#GetStyle)
  196.     XgrRegisterMessage (@"GetTabArray",                                    @#GetTabArray)
  197.     XgrRegisterMessage (@"GetTabWidth",                                    @#GetTabWidth)
  198.     XgrRegisterMessage (@"GetTextArray",                                @#GetTextArray)
  199.     XgrRegisterMessage (@"GetTextArrayBounds",                    @#GetTextArrayBounds)
  200.     XgrRegisterMessage (@"GetTextArrayLine",                        @#GetTextArrayLine)
  201.     XgrRegisterMessage (@"GetTextArrayLines",                        @#GetTextArrayLines)
  202.     XgrRegisterMessage (@"GetTextCursor",                                @#GetTextCursor)
  203.     XgrRegisterMessage (@"GetTextPosition",                            @#GetTextPosition)
  204.     XgrRegisterMessage (@"GetTextSelection",                        @#GetTextSelection)
  205.     XgrRegisterMessage (@"GetTextString",                                @#GetTextString)
  206.     XgrRegisterMessage (@"GetTextStrings",                            @#GetTextStrings)
  207.     XgrRegisterMessage (@"GetTexture",                                    @#GetTexture)
  208.     XgrRegisterMessage (@"GetTimer",                                        @#GetTimer)
  209.     XgrRegisterMessage (@"GetValue",                                        @#GetValue)
  210.     XgrRegisterMessage (@"GetValues",                                        @#GetValues)
  211.     XgrRegisterMessage (@"GetValueArray",                                @#GetValueArray)
  212.     XgrRegisterMessage (@"GetWindow",                                        @#GetWindow)
  213.     XgrRegisterMessage (@"GetWindowFunction",                        @#GetWindowFunction)
  214.     XgrRegisterMessage (@"GetWindowGrid",                                @#GetWindowGrid)
  215.     XgrRegisterMessage (@"GetWindowIcon",                                @#GetWindowIcon)
  216.     XgrRegisterMessage (@"GetWindowSize",                                @#GetWindowSize)
  217.     XgrRegisterMessage (@"GetWindowTitle",                            @#GetWindowTitle)
  218.     XgrRegisterMessage (@"GotKeyboardFocus",                        @#GotKeyboardFocus)
  219.     XgrRegisterMessage (@"GrabArray",                                        @#GrabArray)
  220.     XgrRegisterMessage (@"GrabTextArray",                                @#GrabTextArray)
  221.     XgrRegisterMessage (@"GrabTextString",                            @#GrabTextString)
  222.     XgrRegisterMessage (@"GrabValueArray",                            @#GrabValueArray)
  223.     XgrRegisterMessage (@"Help",                                                @#Help)
  224.     XgrRegisterMessage (@"Hidden",                                            @#Hidden)
  225.     XgrRegisterMessage (@"HideTextCursor",                            @#HideTextCursor)
  226.     XgrRegisterMessage (@"HideWindow",                                    @#HideWindow)
  227.     XgrRegisterMessage (@"Initialize",                                    @#Initialize)
  228.     XgrRegisterMessage (@"Initialized",                                    @#Initialized)
  229.     XgrRegisterMessage (@"Inline",                                            @#Inline)
  230.     XgrRegisterMessage (@"InquireText",                                    @#InquireText)
  231.     XgrRegisterMessage (@"KeyboardFocusBackward",                @#KeyboardFocusBackward)
  232.     XgrRegisterMessage (@"KeyboardFocusForward",                @#KeyboardFocusForward)
  233.     XgrRegisterMessage (@"KeyDown",                                            @#KeyDown)
  234.     XgrRegisterMessage (@"KeyUp",                                                @#KeyUp)
  235.     XgrRegisterMessage (@"LostKeyboardFocus",                        @#LostKeyboardFocus)
  236.     XgrRegisterMessage (@"LostTextSelection",                        @#LostTextSelection)
  237.     XgrRegisterMessage (@"Maximized",                                        @#Maximized)
  238.     XgrRegisterMessage (@"MaximizeWindow",                            @#MaximizeWindow)
  239.     XgrRegisterMessage (@"Maximum",                                            @#Maximum)
  240.     XgrRegisterMessage (@"Minimized",                                        @#Minimized)
  241.     XgrRegisterMessage (@"MinimizeWindow",                            @#MinimizeWindow)
  242.     XgrRegisterMessage (@"Minimum",                                            @#Minimum)
  243.     XgrRegisterMessage (@"MonitorContext",                            @#MonitorContext)
  244.     XgrRegisterMessage (@"MonitorHelp",                                    @#MonitorHelp)
  245.     XgrRegisterMessage (@"MonitorKeyboard",                            @#MonitorKeyboard)
  246.     XgrRegisterMessage (@"MonitorMouse",                                @#MonitorMouse)
  247.     XgrRegisterMessage (@"MouseDown",                                        @#MouseDown)
  248.     XgrRegisterMessage (@"MouseDrag",                                        @#MouseDrag)
  249.     XgrRegisterMessage (@"MouseEnter",                                    @#MouseEnter)
  250.     XgrRegisterMessage (@"MouseExit",                                        @#MouseExit)
  251.     XgrRegisterMessage (@"MouseMove",                                        @#MouseMove)
  252.     XgrRegisterMessage (@"MouseUp",                                            @#MouseUp)
  253.     XgrRegisterMessage (@"MuchLess",                                        @#MuchLess)
  254.     XgrRegisterMessage (@"MuchMore",                                        @#MuchMore)
  255.     XgrRegisterMessage (@"OneLess",                                            @#OneLess)
  256.     XgrRegisterMessage (@"OneMore",                                            @#OneMore)
  257.     XgrRegisterMessage (@"PokeArray",                                        @#PokeArray)
  258.     XgrRegisterMessage (@"PokeTextArray",                                @#PokeTextArray)
  259.     XgrRegisterMessage (@"PokeTextString",                            @#PokeTextString)
  260.     XgrRegisterMessage (@"PokeValueArray",                            @#PokeValueArray)
  261.     XgrRegisterMessage (@"Print",                                                @#Print)
  262.     XgrRegisterMessage (@"Redraw",                                            @#Redraw)
  263.     XgrRegisterMessage (@"RedrawGrid",                                    @#RedrawGrid)
  264.     XgrRegisterMessage (@"RedrawLines",                                    @#RedrawLines)
  265.     XgrRegisterMessage (@"RedrawText",                                    @#RedrawText)
  266.     XgrRegisterMessage (@"RedrawWindow",                                @#RedrawWindow)
  267.     XgrRegisterMessage (@"Replace",                                            @#Replace)
  268.     XgrRegisterMessage (@"ReplaceForward",                            @#ReplaceForward)
  269.     XgrRegisterMessage (@"ReplaceReverse",                            @#ReplaceReverse)
  270.     XgrRegisterMessage (@"Reset",                                                @#Reset)
  271.     XgrRegisterMessage (@"Resize",                                            @#Resize)
  272.     XgrRegisterMessage (@"Resized",                                            @#Resized)
  273.     XgrRegisterMessage (@"ResizeNot",                                        @#ResizeNot)
  274.     XgrRegisterMessage (@"ResizeWindow",                                @#ResizeWindow)
  275.     XgrRegisterMessage (@"ResizeWindowToGrid",                    @#ResizeWindowToGrid)
  276.     XgrRegisterMessage (@"Resized",                                            @#Resized)
  277.     XgrRegisterMessage (@"Reverse",                                            @#Reverse)
  278.     XgrRegisterMessage (@"ScrollH",                                            @#ScrollH)
  279.     XgrRegisterMessage (@"ScrollV",                                            @#ScrollV)
  280.     XgrRegisterMessage (@"Selected",                                        @#Selected)
  281.     XgrRegisterMessage (@"SelectWindow",                                @#SelectWindow)
  282.     XgrRegisterMessage (@"Selection",                                        @#Selection)
  283.     XgrRegisterMessage (@"SetAlign",                                        @#SetAlign)
  284.     XgrRegisterMessage (@"SetBorder",                                        @#SetBorder)
  285.     XgrRegisterMessage (@"SetBorderOffset",                            @#SetBorderOffset)
  286.     XgrRegisterMessage (@"SetCallback",                                    @#SetCallback)
  287.     XgrRegisterMessage (@"SetCan",                                            @#SetCan)
  288.     XgrRegisterMessage (@"SetClipGrid",                                    @#SetClipGrid)
  289.     XgrRegisterMessage (@"SetColor",                                        @#SetColor)
  290.     XgrRegisterMessage (@"SetColorExtra",                                @#SetColorExtra)
  291.     XgrRegisterMessage (@"SetCursor",                                        @#SetCursor)
  292.     XgrRegisterMessage (@"SetCursorXY",                                    @#SetCursorXY)
  293.     XgrRegisterMessage (@"SetDisplay",                                    @#SetDisplay)
  294.     XgrRegisterMessage (@"SetFont",                                            @#SetFont)
  295.     XgrRegisterMessage (@"SetFontNumber",                                @#SetFontNumber)
  296.     XgrRegisterMessage (@"SetGridFunction",                            @#SetGridFunction)
  297.     XgrRegisterMessage (@"SetGridFunctionName",                    @#SetGridFunctionName)
  298.     XgrRegisterMessage (@"SetGridName",                                    @#SetGridName)
  299.     XgrRegisterMessage (@"SetGridType",                                    @#SetGridType)
  300.     XgrRegisterMessage (@"SetGridTypeName",                            @#SetGridTypeName)
  301.     XgrRegisterMessage (@"SetGroup",                                        @#SetGroup)
  302.     XgrRegisterMessage (@"SetHelp",                                            @#SetHelp)
  303.     XgrRegisterMessage (@"SetHelpFile",                                    @#SetHelpFile)
  304.     XgrRegisterMessage (@"SetHelpString",                                @#SetHelpString)
  305.     XgrRegisterMessage (@"SetHelpStrings",                            @#SetHelpStrings)
  306.     XgrRegisterMessage (@"SetHintString",                                @#SetHintString)
  307.     XgrRegisterMessage (@"SetImage",                                        @#SetImage)
  308.     XgrRegisterMessage (@"SetImageCoords",                            @#SetImageCoords)
  309.     XgrRegisterMessage (@"SetIndent",                                        @#SetIndent)
  310.     XgrRegisterMessage (@"SetInfo",                                            @#SetInfo)
  311.     XgrRegisterMessage (@"SetJustify",                                    @#SetJustify)
  312.     XgrRegisterMessage (@"SetKeyboardFocus",                        @#SetKeyboardFocus)
  313.     XgrRegisterMessage (@"SetKeyboardFocusGrid",                @#SetKeyboardFocusGrid)
  314.     XgrRegisterMessage (@"SetMaxMinSize",                                @#SetMaxMinSize)
  315.     XgrRegisterMessage (@"SetMessageFunc",                            @#SetMessageFunc)
  316.     XgrRegisterMessage (@"SetMessageFuncArray",                    @#SetMessageFuncArray)
  317.     XgrRegisterMessage (@"SetMessageSub",                                @#SetMessageSub)
  318.     XgrRegisterMessage (@"SetMessageSubArray",                    @#SetMessageSubArray)
  319.     XgrRegisterMessage (@"SetModalWindow",                            @#SetModalWindow)
  320.     XgrRegisterMessage (@"SetParent",                                        @#SetParent)
  321.     XgrRegisterMessage (@"SetPosition",                                    @#SetPosition)
  322.     XgrRegisterMessage (@"SetRedrawFlags",                            @#SetRedrawFlags)
  323.     XgrRegisterMessage (@"SetSize",                                            @#SetSize)
  324.     XgrRegisterMessage (@"SetState",                                        @#SetState)
  325.     XgrRegisterMessage (@"SetStyle",                                        @#SetStyle)
  326.     XgrRegisterMessage (@"SetTabArray",                                    @#SetTabArray)
  327.     XgrRegisterMessage (@"SetTabWidth",                                    @#SetTabWidth)
  328.     XgrRegisterMessage (@"SetTextArray",                                @#SetTextArray)
  329.     XgrRegisterMessage (@"SetTextArrayLine",                        @#SetTextArrayLine)
  330.     XgrRegisterMessage (@"SetTextArrayLines",                        @#SetTextArrayLines)
  331.     XgrRegisterMessage (@"SetTextCursor",                                @#SetTextCursor)
  332.     XgrRegisterMessage (@"SetTextSelection",                        @#SetTextSelection)
  333.     XgrRegisterMessage (@"SetTextString",                                @#SetTextString)
  334.     XgrRegisterMessage (@"SetTextStrings",                            @#SetTextStrings)
  335.     XgrRegisterMessage (@"SetTexture",                                    @#SetTexture)
  336.     XgrRegisterMessage (@"SetTimer",                                        @#SetTimer)
  337.     XgrRegisterMessage (@"SetValue",                                        @#SetValue)
  338.     XgrRegisterMessage (@"SetValues",                                        @#SetValues)
  339.     XgrRegisterMessage (@"SetValueArray",                                @#SetValueArray)
  340.     XgrRegisterMessage (@"SetWindowFunction",                        @#SetWindowFunction)
  341.     XgrRegisterMessage (@"SetWindowIcon",                                @#SetWindowIcon)
  342.     XgrRegisterMessage (@"SetWindowTitle",                            @#SetWindowTitle)
  343.     XgrRegisterMessage (@"ShowTextCursor",                            @#ShowTextCursor)
  344.     XgrRegisterMessage (@"ShowWindow",                                    @#ShowWindow)
  345.     XgrRegisterMessage (@"SomeLess",                                        @#SomeLess)
  346.     XgrRegisterMessage (@"SomeMore",                                        @#SomeMore)
  347.     XgrRegisterMessage (@"StartTimer",                                    @#StartTimer)
  348.     XgrRegisterMessage (@"TextDelete",                                    @#TextDelete)
  349.     XgrRegisterMessage (@"TextEvent",                                        @#TextEvent)
  350.     XgrRegisterMessage (@"TextInsert",                                    @#TextInsert)
  351.     XgrRegisterMessage (@"TextModified",                                @#TextModified)
  352.     XgrRegisterMessage (@"TextReplace",                                    @#TextReplace)
  353.     XgrRegisterMessage (@"TimeOut",                                            @#TimeOut)
  354.     XgrRegisterMessage (@"Update",                                            @#Update)
  355.     XgrRegisterMessage (@"WindowCreate",                                @#WindowCreate)
  356.     XgrRegisterMessage (@"WindowDeselected",                        @#WindowDeselected)
  357.     XgrRegisterMessage (@"WindowDestroy",                                @#WindowDestroy)
  358.     XgrRegisterMessage (@"WindowDestroyed",                            @#WindowDestroyed)
  359.     XgrRegisterMessage (@"WindowDisplay",                                @#WindowDisplay)
  360.     XgrRegisterMessage (@"WindowDisplayed",                            @#WindowDisplayed)
  361.     XgrRegisterMessage (@"WindowGetDisplay",                        @#WindowGetDisplay)
  362.     XgrRegisterMessage (@"WindowGetFunction",                        @#WindowGetFunction)
  363.     XgrRegisterMessage (@"WindowGetIcon",                                @#WindowGetIcon)
  364.     XgrRegisterMessage (@"WindowGetKeyboardFocusGrid",    @#WindowGetKeyboardFocusGrid)
  365.     XgrRegisterMessage (@"WindowGetSelectedWindow",            @#WindowGetSelectedWindow)
  366.     XgrRegisterMessage (@"WindowGetSize",                                @#WindowGetSize)
  367.     XgrRegisterMessage (@"WindowGetTitle",                            @#WindowGetTitle)
  368.     XgrRegisterMessage (@"WindowClose",                                    @#WindowClose)
  369.     XgrRegisterMessage (@"WindowHide",                                    @#WindowHide)
  370.     XgrRegisterMessage (@"WindowHidden",                                @#WindowHidden)
  371.     XgrRegisterMessage (@"WindowKeyDown",                                @#WindowKeyDown)
  372.     XgrRegisterMessage (@"WindowKeyUp",                                    @#WindowKeyUp)
  373.     XgrRegisterMessage (@"WindowMaximize",                            @#WindowMaximize)
  374.     XgrRegisterMessage (@"WindowMaximized",                            @#WindowMaximized)
  375.     XgrRegisterMessage (@"WindowMinimize",                            @#WindowMinimize)
  376.     XgrRegisterMessage (@"WindowMinimized",                            @#WindowMinimized)
  377.     XgrRegisterMessage (@"WindowMonitorContext",                @#WindowMonitorContext)
  378.     XgrRegisterMessage (@"WindowMonitorHelp",                        @#WindowMonitorHelp)
  379.     XgrRegisterMessage (@"WindowMonitorKeyboard",                @#WindowMonitorKeyboard)
  380.     XgrRegisterMessage (@"WindowMonitorMouse",                    @#WindowMonitorMouse)
  381.     XgrRegisterMessage (@"WindowMouseDown",                            @#WindowMouseDown)
  382.     XgrRegisterMessage (@"WindowMouseDrag",                            @#WindowMouseDrag)
  383.     XgrRegisterMessage (@"WindowMouseEnter",                        @#WindowMouseEnter)
  384.     XgrRegisterMessage (@"WindowMouseExit",                            @#WindowMouseExit)
  385.     XgrRegisterMessage (@"WindowMouseMove",                            @#WindowMouseMove)
  386.     XgrRegisterMessage (@"WindowMouseUp",                                @#WindowMouseUp)
  387.     XgrRegisterMessage (@"WindowRedraw",                                @#WindowRedraw)
  388.     XgrRegisterMessage (@"WindowRegister",                            @#WindowRegister)
  389.     XgrRegisterMessage (@"WindowResize",                                @#WindowResize)
  390.     XgrRegisterMessage (@"WindowResized",                                @#WindowResized)
  391.     XgrRegisterMessage (@"WindowResizeToGrid",                    @#WindowResizeToGrid)
  392.     XgrRegisterMessage (@"WindowSelect",                                @#WindowSelect)
  393.     XgrRegisterMessage (@"WindowSelected",                            @#WindowSelected)
  394.     XgrRegisterMessage (@"WindowSetDisplay",                        @#WindowSetDisplay)
  395.     XgrRegisterMessage (@"WindowSetFunction",                        @#WindowSetFunction)
  396.     XgrRegisterMessage (@"WindowSetIcon",                                @#WindowSetIcon)
  397.     XgrRegisterMessage (@"WindowSetKeyboardFocusGrid",    @#WindowSetKeyboardFocusGrid)
  398.     XgrRegisterMessage (@"WindowSetTitle",                            @#WindowSetTitle)
  399.     XgrRegisterMessage (@"WindowShow",                                    @#WindowShow)
  400.     XgrRegisterMessage (@"LastMessage",                                    @#LastMessage)
  401. '
  402.     XgrGetDisplaySize ("", @#displayWidth, @#displayHeight, @#windowBorderWidth, @#windowTitleHeight)
  403. END FUNCTION
  404. '
  405. '
  406. ' ############################
  407. ' #####  InitProgram ()  #####
  408. ' ############################
  409. '
  410. ' Add code to InitProgram() to initialize whatever needs initialization.
  411. ' Do not delete this function - leave it empty if not needed.
  412. '
  413. FUNCTION  InitProgram ()
  414.     XuiWarning1B (0, 0, 0, 0, 0, 0, 0, 0)
  415.     XuiWarning2B (0, 0, 0, 0, 0, 0, 0, 0)
  416.     XuiWarning3B (0, 0, 0, 0, 0, 0, 0, 0)
  417.     XuiWarning4B (0, 0, 0, 0, 0, 0, 0, 0)
  418. END FUNCTION
  419. '
  420. '
  421. ' ##############################
  422. ' #####  CreateWindows ()  #####
  423. ' ##############################
  424. '
  425. ' GuiDesigner puts code in CreateWindows() to create, initialize, display
  426. ' every window you design graphically.  Don't modify this function unless
  427. ' absolutely necessary - GuiDesigner needs to read and update it at times.
  428. '
  429. FUNCTION  CreateWindows ()
  430. '
  431.     IF LIBRARY(0) THEN RETURN
  432. END FUNCTION
  433. '
  434. '
  435. ' #############################
  436. ' #####  XuiWarning1B ()  #####  Label and PushButton
  437. ' #############################
  438. '
  439. FUNCTION  XuiWarning1B (grid, message, v0, v1, v2, v3, r0, (r1, r1$, r1[], r1$[]))
  440.     STATIC    designX,  designY,  designWidth,  designHeight
  441.     STATIC    SUBADDR  sub[]
  442.     STATIC    upperMessage
  443.     STATIC    XuiWarning1B
  444. '
  445.     $Warning1B        = 0
  446.     $Label                = 1
  447.     $Button0            = 2
  448. '
  449.     IFZ sub[] THEN GOSUB Initialize
  450.     IF XuiProcessMessage (grid, message, @v0, @v1, @v2, @v3, @r0, @r1, XuiWarning1B) THEN RETURN
  451.     GOSUB @sub[message]
  452.     RETURN
  453. '
  454. '
  455. ' *****  Create  *****  v0123 = xywh : r0 = window : r1 = parent
  456. '
  457. SUB Create
  458.     IF (v0 <= 0) THEN v0 = 0
  459.     IF (v1 <= 0) THEN v1 = 0
  460.     IF (v2 <= 0) THEN v2 = designWidth
  461.     IF (v3 <= 0) THEN v3 = designHeight
  462.     XuiCreateGrid  (@grid, XuiWarning1B, @v0, @v1, @v2, @v3, r0, r1, &XuiWarning1B())
  463.     XuiLabel       (@g, #Create, 0, 0, 0, 0, r0, grid)
  464.     XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Label")
  465.     XuiPushButton  (@g, #Create, 0, 0, 0, 0, r0, grid)
  466.     XuiSendMessage ( g, #SetCallback, grid, &XuiWarning1B(), -1, -1, $Button0, grid)
  467.     XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"PushButton")
  468.     XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Cancel")
  469.     GOSUB Resize
  470. END SUB
  471. '
  472. '
  473. ' *****  CreateWindow  *****  r0 = windowType : r1 = &WindowFunc()
  474. '
  475. SUB CreateWindow
  476.     IF (v0 <= 0) THEN v0 = designX
  477.     IF (v1 <= 0) THEN v1 = designY
  478.     IF (v2 <= 0) THEN v2 = designWidth
  479.     IF (v3 <= 0) THEN v3 = designHeight
  480.     XuiWindow (@window, #WindowCreate, v0, v1, v2, v3, r0, r1)
  481.     v0 = 0 : v1 = 0 : r0 = window : r1 = 0
  482.     GOSUB Create
  483.     XuiWindow (window, #WindowRegister, grid, -1, v2, v3, @r0, @"XuiWarning1B")
  484. END SUB
  485. '
  486. '
  487. ' *****  GetSmallestSize  *****
  488. '
  489. SUB GetSmallestSize
  490.     XuiGetBorder (grid, #GetBorder, 0, 0, 0, 0, 0, @bw)
  491. '
  492.     XuiSendToKid (grid, #GetSmallestSize, @labelWidth, @labelHeight, 0, 0, $Label, 8)
  493.     XuiSendToKid (grid, #GetSmallestSize, @width, @height, 0, 0, $Button0, 8)
  494.     IF (width > buttonWidth) THEN buttonWidth = width
  495.     IF (height > buttonHeight) THEN buttonHeight = height
  496. '
  497.     width = buttonWidth
  498.     height = labelHeight + buttonHeight
  499.     IF (width < labelWidth) THEN width = labelWidth
  500.     v2 = width + bw + bw
  501.     v3 = height + bw + bw
  502. END SUB
  503. '
  504. '
  505. ' *****  Resize  *****        This reconfigures window to current text sizes
  506. '
  507. SUB Resize
  508.     vv2 = v2
  509.     vv3 = v3
  510.     GOSUB GetSmallestSize
  511.     v2 = MAX (vv2, v2)
  512.     v3 = MAX (vv3, v3)
  513. '
  514.     XuiPositionGrid (grid, @v0, @v1, @v2, @v3)
  515.     IF (v3 >= (labelHeight + buttonHeight + bw + bw + 4)) THEN buttonHeight = buttonHeight + 4
  516. '
  517.     labelWidth = v2 - bw - bw
  518.     labelHeight = v3 - buttonHeight - bw - bw
  519.     buttonWidth = labelWidth
  520. '
  521.     x = bw
  522.     y = bw
  523.     XuiSendToKid (grid, #Resize, x, y, labelWidth, labelHeight, $Label, 0)
  524. '
  525.     y = y + labelHeight
  526.     XuiSendToKid (grid, #Resize, x, y, buttonWidth, buttonHeight, $Button0, 0)
  527.     XuiResizeWindowToGrid (grid, #ResizeWindowToGrid, v0, v1, v2, v3, 0, 0)
  528. END SUB
  529. '
  530. '
  531. ' *****  Initialize  ****
  532. '
  533. SUB Initialize
  534.     XuiGetDefaultMessageFuncArray (@func[])
  535.     XgrMessageNameToNumber (@"LastMessage", @upperMessage)
  536. '
  537.     func[#Callback]                        = &XuiCallback()
  538.     func[#GetSmallestSize]        = 0
  539.     func[#Resize]                            = 0
  540. '
  541.     DIM sub[upperMessage]
  542.     sub[#Create]                            = SUBADDRESS (Create)
  543.     sub[#CreateWindow]                = SUBADDRESS (CreateWindow)
  544.     sub[#GetSmallestSize]            = SUBADDRESS (GetSmallestSize)
  545.     sub[#Resize]                            = SUBADDRESS (Resize)
  546. '
  547.     IF sub[0] THEN PRINT "XuiWarning1B() : Initialize : error::: (undefined message)"
  548.     IF func[0] THEN PRINT "XuiWarning1B() : Initialize : error::: (undefined message)"
  549.     XuiRegisterGridType (@XuiWarning1B, @"XuiWarning1B", &XuiWarning1B(), @func[], @sub[])
  550. '
  551.     designX = 8
  552.     designY = 27
  553.     designWidth = 80
  554.     designHeight = 48
  555. '
  556.     gridType = XuiWarning1B
  557.     XuiSetGridTypeValue (gridType, @"x",               designX)
  558.     XuiSetGridTypeValue (gridType, @"y",               designY)
  559.     XuiSetGridTypeValue (gridType, @"width",           designWidth)
  560.     XuiSetGridTypeValue (gridType, @"height",          designHeight)
  561.     XuiSetGridTypeValue (gridType, @"minWidth",        32)
  562.     XuiSetGridTypeValue (gridType, @"minHeight",       16)
  563.     XuiSetGridTypeValue (gridType, @"border",          $$BorderFrame)
  564.     XuiSetGridTypeValue (gridType, @"can",             $$Focus OR $$Respond OR $$Callback)
  565.     XuiSetGridTypeValue (gridType, @"focusKid",         $Button0)
  566.     XuiSetGridTypeValue (gridType, @"redrawFlags",     $$RedrawBorder)
  567.     IFZ message THEN RETURN
  568. END SUB
  569. END FUNCTION
  570. '
  571. '
  572. ' #############################
  573. ' #####  XuiWarning2B ()  #####  Label and 2 PushButtons
  574. ' #############################
  575. '
  576. FUNCTION  XuiWarning2B (grid, message, v0, v1, v2, v3, r0, (r1, r1$, r1[], r1$[]))
  577.     STATIC    designX,  designY,  designWidth,  designHeight
  578.     STATIC    SUBADDR  sub[]
  579.     STATIC    upperMessage
  580.     STATIC    XuiWarning2B
  581. '
  582.     $Warning2B        = 0
  583.     $Label                = 1
  584.     $Button0            = 2
  585.     $Button1            = 3
  586. '
  587.     IFZ sub[] THEN GOSUB Initialize
  588.     IF XuiProcessMessage (grid, message, @v0, @v1, @v2, @v3, @r0, @r1, XuiWarning2B) THEN RETURN
  589.     GOSUB @sub[message]
  590.     RETURN
  591. '
  592. '
  593. ' *****  Create  *****  v0123 = xywh : r0 = window : r1 = parent
  594. '
  595. SUB Create
  596.     IF (v0 <= 0) THEN v0 = 0
  597.     IF (v1 <= 0) THEN v1 = 0
  598.     IF (v2 <= 0) THEN v2 = designWidth
  599.     IF (v3 <= 0) THEN v3 = designHeight
  600.     XuiCreateGrid  (@grid, XuiWarning2B, @v0, @v1, @v2, @v3, r0, r1, &XuiWarning2B())
  601.     XuiLabel       (@g, #Create, 0, 0, 0, 0, r0, grid)
  602.     XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Label")
  603.     XuiPushButton  (@g, #Create, 0, 0, 0, 0, r0, grid)
  604.     XuiSendMessage ( g, #SetCallback, grid, &XuiWarning2B(), -1, -1, $Button0, grid)
  605.     XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Button0")
  606.     XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Enter")
  607.     XuiPushButton  (@g, #Create, 0, 0, 0, 0, r0, grid)
  608.     XuiSendMessage ( g, #SetCallback, grid, &XuiWarning2B(), -1, -1, $Button1, grid)
  609.     XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Button1")
  610.     XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Cancel")
  611.     GOSUB Resize
  612. END SUB
  613. '
  614. '
  615. ' *****  CreateWindow  *****  r0 = windowType : r1 = &WindowFunc()
  616. '
  617. SUB CreateWindow
  618.     IF (v0 <= 0) THEN v0 = designX
  619.     IF (v1 <= 0) THEN v1 = designY
  620.     IF (v2 <= 0) THEN v2 = designWidth
  621.     IF (v3 <= 0) THEN v3 = designHeight
  622.     XuiWindow (@window, #WindowCreate, v0, v1, v2, v3, r0, r1)
  623.     v0 = 0 : v1 = 0 : r0 = window : r1 = 0
  624.     GOSUB Create
  625.     XuiWindow (window, #WindowRegister, grid, -1, v2, v3, @r0, @"XuiWarning2B")
  626. END SUB
  627. '
  628. '
  629. ' *****  GetSmallestSize  *****
  630. '
  631. SUB GetSmallestSize
  632.     XuiGetBorder (grid, #GetBorder, 0, 0, 0, 0, 0, @bw)
  633.     XuiSendToKid (grid, #GetSmallestSize, @labelWidth, @labelHeight, 0, 0, $Label, 8)
  634.     FOR i = $Button0 TO $Button1
  635.         XuiSendToKid (grid, #GetSmallestSize, @width, @height, 0, 0, i, 8)
  636.         IF (width > buttonWidth) THEN buttonWidth = width
  637.         IF (height > buttonHeight) THEN buttonHeight = height
  638.     NEXT i
  639.     width = buttonWidth + buttonWidth
  640.     height = labelHeight + buttonHeight
  641.     IF (width < labelWidth) THEN width = labelWidth
  642.     v2 = width + bw + bw
  643.     v3 = height + bw + bw
  644. END SUB
  645. '
  646. '
  647. ' *****  Resize  *****
  648. '
  649. SUB Resize
  650.     vv2 = v2
  651.     vv3 = v3
  652.     GOSUB GetSmallestSize
  653.     v2 = MAX (vv2, v2)
  654.     v3 = MAX (vv3, v3)
  655. '
  656.     XuiPositionGrid (grid, @v0, @v1, @v2, @v3)
  657.     IF (v3 >= (labelHeight + buttonHeight + bw + bw + 4)) THEN buttonHeight = buttonHeight + 4
  658. '
  659.     labelWidth = v2 - bw - bw
  660.     labelHeight = v3 - buttonHeight - bw - bw
  661.     buttonWidth = labelWidth >> 1
  662.     width0 = buttonWidth
  663.     width1 = labelWidth - width0
  664. '
  665.     x = bw
  666.     y = bw
  667.     XuiSendToKid (grid, #Resize, x, y, labelWidth, labelHeight, $Label, 0)
  668. '
  669.     h = buttonHeight
  670.     y = y + labelHeight
  671.     XuiSendToKid (grid, #Resize, x, y, width0, h, $Button0, 0) : x = x + width0
  672.     XuiSendToKid (grid, #Resize, x, y, width1, h, $Button1, 0)
  673.     XuiResizeWindowToGrid (grid, #ResizeWindowToGrid, v0, v1, v2, v3, 0, 0)
  674. END SUB
  675. '
  676. '
  677. ' *****  Initialize  ****
  678. '
  679. SUB Initialize
  680.     XuiGetDefaultMessageFuncArray (@func[])
  681.     XgrMessageNameToNumber (@"LastMessage", @upperMessage)
  682. '
  683.     func[#Callback]                        = &XuiCallback()
  684.     func[#GetSmallestSize]        = 0
  685.     func[#Resize]                            = 0
  686. '
  687.     DIM sub[upperMessage]
  688.     sub[#Create]                            = SUBADDRESS (Create)
  689.     sub[#CreateWindow]                = SUBADDRESS (CreateWindow)
  690.     sub[#GetSmallestSize]            = SUBADDRESS (GetSmallestSize)
  691.     sub[#Resize]                            = SUBADDRESS (Resize)
  692. '
  693.     IF sub[0] THEN PRINT "XuiWarning2B() : Initialize : error::: (undefined message)"
  694.     IF func[0] THEN PRINT "XuiWarning2B() : Initialize : error::: (undefined message)"
  695.     XuiRegisterGridType (@XuiWarning2B, @"XuiWarning2B", &XuiWarning2B(), @func[], @sub[])
  696. '
  697.     designX = 8
  698.     designY = 27
  699.     designWidth = 160
  700.     designHeight = 48
  701. '
  702.     gridType = XuiWarning2B
  703.     XuiSetGridTypeValue (gridType, @"x",               designX)
  704.     XuiSetGridTypeValue (gridType, @"y",               designY)
  705.     XuiSetGridTypeValue (gridType, @"width",           designWidth)
  706.     XuiSetGridTypeValue (gridType, @"height",          designHeight)
  707.     XuiSetGridTypeValue (gridType, @"minWidth",        32)
  708.     XuiSetGridTypeValue (gridType, @"minHeight",       16)
  709.     XuiSetGridTypeValue (gridType, @"border",          $$BorderFrame)
  710.     XuiSetGridTypeValue (gridType, @"can",             $$Focus OR $$Respond OR $$Callback)
  711.     XuiSetGridTypeValue (gridType, @"focusKid",         $Button0)
  712.     XuiSetGridTypeValue (gridType, @"redrawFlags",     $$RedrawBorder)
  713.     IFZ message THEN RETURN
  714. END SUB
  715. END FUNCTION
  716. '
  717. '
  718. ' #############################
  719. ' #####  XuiWarning3B ()  #####  Label and 3 PushButtons
  720. ' #############################
  721. '
  722. FUNCTION  XuiWarning3B (grid, message, v0, v1, v2, v3, r0, (r1, r1$, r1[], r1$[]))
  723.     STATIC    designX,  designY,  designWidth,  designHeight
  724.     STATIC    SUBADDR  sub[]
  725.     STATIC    upperMessage
  726.     STATIC    XuiWarning3B
  727. '
  728.     $Warning3B        = 0
  729.     $Label                = 1
  730.     $Button0            = 2
  731.     $Button1            = 3
  732.     $Button2            = 4
  733. '
  734.     IFZ sub[] THEN GOSUB Initialize
  735.     IF XuiProcessMessage (grid, message, @v0, @v1, @v2, @v3, @r0, @r1, XuiWarning3B) THEN RETURN
  736.     GOSUB @sub[message]
  737.     RETURN
  738. '
  739. '
  740. ' *****  Create  *****  v0123 = xywh : r0 = window : r1 = parent
  741. '
  742. SUB Create
  743.     IF (v0 <= 0) THEN v0 = 0
  744.     IF (v1 <= 0) THEN v1 = 0
  745.     IF (v2 <= 0) THEN v2 = designWidth
  746.     IF (v3 <= 0) THEN v3 = designHeight
  747.     XuiCreateGrid  (@grid, XuiWarning3B, @v0, @v1, @v2, @v3, r0, r1, &XuiWarning3B())
  748.     XuiLabel       (@g, #Create, 0, 0, 0, 0, r0, grid)
  749.     XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Label")
  750.     XuiPushButton  (@g, #Create, 0, 0, 0, 0, r0, grid)
  751.     XuiSendMessage ( g, #SetCallback, grid, &XuiWarning3B(), -1, -1, $Button0, grid)
  752.     XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Button0")
  753.     XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Enter")
  754.     XuiPushButton  (@g, #Create, 0, 0, 0, 0, r0, grid)
  755.     XuiSendMessage ( g, #SetCallback, grid, &XuiWarning3B(), -1, -1, $Button1, grid)
  756.     XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Button1")
  757.     XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Option")
  758.     XuiPushButton  (@g, #Create, 0, 0, 0, 0, r0, grid)
  759.     XuiSendMessage ( g, #SetCallback, grid, &XuiWarning3B(), -1, -1, $Button2, grid)
  760.     XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Button2")
  761.     XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Cancel")
  762.     GOSUB Resize
  763. END SUB
  764. '
  765. '
  766. ' *****  CreateWindow  *****  r0 = windowType : r1 = &WindowFunc()
  767. '
  768. SUB CreateWindow
  769.     IF (v0 <= 0) THEN v0 = designX
  770.     IF (v1 <= 0) THEN v1 = designY
  771.     IF (v2 <= 0) THEN v2 = designWidth
  772.     IF (v3 <= 0) THEN v3 = designHeight
  773.     XuiWindow (@window, #WindowCreate, v0, v1, v2, v3, r0, r1)
  774.     v0 = 0 : v1 = 0 : r0 = window : r1 = 0
  775.     GOSUB Create
  776.     XuiWindow (window, #WindowRegister, grid, -1, v2, v3, @r0, @"XuiWarning3B")
  777. END SUB
  778. '
  779. '
  780. ' *****  GetSmallestSize  *****
  781. '
  782. SUB GetSmallestSize
  783.     XuiGetBorder (grid, #GetBorder, 0, 0, 0, 0, 0, @bw)
  784.     XuiSendToKid (grid, #GetSmallestSize, @labelWidth, @labelHeight, 0, 0, $Label, 8)
  785.     FOR i = $Button0 TO $Button2
  786.         XuiSendToKid (grid, #GetSmallestSize, @width, @height, 0, 0, i, 8)
  787.         IF (width > buttonWidth) THEN buttonWidth = width
  788.         IF (height > buttonHeight) THEN buttonHeight = height
  789.     NEXT i
  790.     width = buttonWidth + buttonWidth + buttonWidth
  791.     height = labelHeight + buttonHeight
  792.     IF (width < labelWidth) THEN width = labelWidth
  793.     v2 = width + bw + bw
  794.     v3 = height + bw + bw
  795. END SUB
  796. '
  797. '
  798. ' *****  Resize  *****        This reconfigures window to current text sizes
  799. '
  800. SUB Resize
  801.     vv2 = v2
  802.     vv3 = v3
  803.     GOSUB GetSmallestSize
  804.     v2 = MAX(vv2, v2)
  805.     v3 = MAX(vv3, v3)
  806. '
  807.     width = buttonWidth + buttonWidth + buttonWidth
  808.     height = labelHeight + buttonHeight + bw + bw
  809.     IF (width < labelWidth) THEN width = labelWidth
  810.     width = width + bw + bw
  811. '
  812.     XuiPositionGrid (grid, @v0, @v1, @v2, @v3)
  813.     IF (v3 >= (labelHeight + buttonHeight + bw + bw + 4)) THEN buttonHeight = buttonHeight + 4
  814. '
  815.     labelWidth = v2 - bw - bw
  816.     labelHeight = v3 - buttonHeight - bw - bw
  817.     buttonWidth = labelWidth / 3
  818.     width0 = buttonWidth
  819.     width1 = buttonWidth
  820.     width2 = labelWidth - width0 - width1
  821. '
  822.     x = bw
  823.     y = bw
  824.     XuiSendToKid (grid, #Resize, x, y, labelWidth, labelHeight, $Label, 0)
  825. '
  826.     h = buttonHeight
  827.     y = y + labelHeight
  828.     XuiSendToKid (grid, #Resize, x, y, width0, h, $Button0, 0) : x = x + width0
  829.     XuiSendToKid (grid, #Resize, x, y, width1, h, $Button1, 0) : x = x + width1
  830.     XuiSendToKid (grid, #Resize, x, y, width2, h, $Button2, 0) : x = x + width2
  831.     XuiResizeWindowToGrid (grid, #ResizeWindowToGrid, v0, v1, v2, v3, 0, 0)
  832. END SUB
  833. '
  834. '
  835. ' *****  Initialize  ****
  836. '
  837. SUB Initialize
  838.     XuiGetDefaultMessageFuncArray (@func[])
  839.     XgrMessageNameToNumber (@"LastMessage", @upperMessage)
  840. '
  841.     func[#Callback]                        = &XuiCallback()
  842.     func[#GetSmallestSize]        = 0
  843.     func[#Resize]                            = 0
  844. '
  845.     DIM sub[upperMessage]
  846.     sub[#Create]                            = SUBADDRESS (Create)
  847.     sub[#CreateWindow]                = SUBADDRESS (CreateWindow)
  848.     sub[#GetSmallestSize]            = SUBADDRESS (GetSmallestSize)
  849.     sub[#Resize]                            = SUBADDRESS (Resize)
  850. '
  851.     IF sub[0] THEN PRINT "XuiWarning3B() : Initialize : error::: (undefined message)"
  852.     IF func[0] THEN PRINT "XuiWarning3B() : Initialize : error::: (undefined message)"
  853.     XuiRegisterGridType (@XuiWarning3B, @"XuiWarning3B", &XuiWarning3B(), @func[], @sub[])
  854. '
  855.     designX = 8
  856.     designY = 27
  857.     designWidth = 240
  858.     designHeight = 48
  859. '
  860.     gridType = XuiWarning3B
  861.     XuiSetGridTypeValue (gridType, @"x",               designX)
  862.     XuiSetGridTypeValue (gridType, @"y",               designY)
  863.     XuiSetGridTypeValue (gridType, @"width",           designWidth)
  864.     XuiSetGridTypeValue (gridType, @"height",          designHeight)
  865.     XuiSetGridTypeValue (gridType, @"minWidth",        32)
  866.     XuiSetGridTypeValue (gridType, @"minHeight",       16)
  867.     XuiSetGridTypeValue (gridType, @"border",          $$BorderFrame)
  868.     XuiSetGridTypeValue (gridType, @"can",             $$Focus OR $$Respond OR $$Callback)
  869.     XuiSetGridTypeValue (gridType, @"focusKid",         $Button0)
  870.     XuiSetGridTypeValue (gridType, @"redrawFlags",     $$RedrawBorder)
  871.     IFZ message THEN RETURN
  872. END SUB
  873. END FUNCTION
  874. '
  875. '
  876. ' #############################
  877. ' #####  XuiWarning4B ()  #####  Label and 4 PushButtons
  878. ' #############################
  879. '
  880. FUNCTION  XuiWarning4B (grid, message, v0, v1, v2, v3, r0, (r1, r1$, r1[], r1$[]))
  881.     STATIC    designX,  designY,  designWidth,  designHeight
  882.     STATIC    SUBADDR  sub[]
  883.     STATIC    upperMessage
  884.     STATIC    XuiWarning4B
  885. '
  886.     $Warning4B    = 0  ' kid 0
  887.     $Label            = 1  ' kid 1
  888.     $Button0        = 2  ' kid 2
  889.     $Button1        = 3  ' kid 3
  890.     $Button2        = 4  ' kid 4
  891.     $Button3        = 5  ' kid 5
  892. '
  893.     IFZ sub[] THEN GOSUB Initialize
  894.     IF XuiProcessMessage (grid, message, @v0, @v1, @v2, @v3, @r0, @r1, XuiWarning4B) THEN RETURN
  895.     GOSUB @sub[message]
  896.     RETURN
  897. '
  898. '
  899. ' *****  Create  *****  v0123 = xywh : r0 = window : r1 = parent
  900. '
  901. SUB Create
  902.     IF (v0 <= 0) THEN v0 = 0
  903.     IF (v1 <= 0) THEN v1 = 0
  904.     IF (v2 <= 0) THEN v2 = designWidth
  905.     IF (v3 <= 0) THEN v3 = designHeight
  906.     XuiCreateGrid  (@grid, XuiWarning4B, @v0, @v1, @v2, @v3, r0, r1, &XuiWarning4B())
  907.     XuiLabel       (@g, #Create, 4, 4, 400, 28, r0, grid)
  908.     XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Label")
  909.     XuiPushButton  (@g, #Create, 4, 32, 100, 28, r0, grid)
  910.     XuiSendMessage ( g, #SetCallback, grid, &XuiWarning4B(), -1, -1, $Button0, grid)
  911.     XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Button0")
  912.     XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Enter")
  913.     XuiPushButton  (@g, #Create, 104, 32, 100, 28, r0, grid)
  914.     XuiSendMessage ( g, #SetCallback, grid, &XuiWarning4B(), -1, -1, $Button1, grid)
  915.     XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Button1")
  916.     XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Update")
  917.     XuiPushButton  (@g, #Create, 204, 32, 100, 28, r0, grid)
  918.     XuiSendMessage ( g, #SetCallback, grid, &XuiWarning4B(), -1, -1, $Button2, grid)
  919.     XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Button2")
  920.     XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Retry")
  921.     XuiPushButton  (@g, #Create, 304, 32, 100, 28, r0, grid)
  922.     XuiSendMessage ( g, #SetCallback, grid, &XuiWarning4B(), -1, -1, $Button3, grid)
  923.     XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Button3")
  924.     XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Cancel")
  925.     GOSUB Resize
  926. END SUB
  927. '
  928. '
  929. ' *****  CreateWindow  *****  r0 = windowType : r1 = &WindowFunc()
  930. '
  931. SUB CreateWindow
  932.     IF (v0 <= 0) THEN v0 = designX
  933.     IF (v1 <= 0) THEN v1 = designY
  934.     IF (v2 <= 0) THEN v2 = designWidth
  935.     IF (v3 <= 0) THEN v3 = designHeight
  936.     XuiWindow (@window, #WindowCreate, v0, v1, v2, v3, r0, r1)
  937.     v0 = 0 : v1 = 0 : r0 = window : r1 = 0
  938.     GOSUB Create
  939.     XuiWindow (window, #WindowRegister, grid, -1, v2, v3, @r0, @"XuiWarning4B")
  940. END SUB
  941. '
  942. '
  943. ' *****  GetSmallestSize  *****
  944. '
  945. SUB GetSmallestSize
  946.     XuiGetBorder (grid, #GetBorder, 0, 0, 0, 0, 0, @bw)
  947.     XuiSendToKid (grid, #GetSmallestSize, @labelWidth, @labelHeight, 0, 0, $Label, 8)
  948.     FOR i = $Button0 TO $Button3
  949.         XuiSendToKid (grid, #GetSmallestSize, @width, @height, 0, 0, i, 8)
  950.         IF (width > buttonWidth) THEN buttonWidth = width
  951.         IF (height > buttonHeight) THEN buttonHeight = height
  952.     NEXT i
  953.     width = buttonWidth << 2
  954.     height = labelHeight + buttonHeight
  955.     IF (width < labelWidth) THEN width = labelWidth
  956.     v2 = width + bw + bw
  957.     v3 = height + bw + bw
  958. END SUB
  959. '
  960. '
  961. ' *****  Resize  *****        This reconfigures window to current text sizes
  962. '
  963. SUB Resize
  964.     vv2 = v2
  965.     vv3 = v3
  966.     GOSUB GetSmallestSize
  967.     v2 = MAX (vv2, v2)
  968.     v3 = MAX (vv3, v3)
  969. '
  970.     width = buttonWidth + buttonWidth + buttonWidth
  971.     height = labelHeight + buttonHeight + bw + bw
  972.     IF (width < labelWidth) THEN width = labelWidth
  973.     width = width + bw + bw
  974. '
  975.     XuiPositionGrid (grid, @v0, @v1, @v2, @v3)
  976.     IF (v3 >= (labelHeight + buttonHeight + bw + bw + 4)) THEN buttonHeight = buttonHeight + 4
  977. '
  978.     labelWidth = v2 - bw - bw
  979.     labelHeight = v3 - buttonHeight - bw - bw
  980.     buttonWidth = labelWidth >> 2
  981.     width0 = buttonWidth
  982.     width1 = buttonWidth
  983.     width2 = buttonWidth
  984.     width3 = labelWidth - width0 - width1 - width2
  985. '
  986.     x = bw
  987.     y = bw
  988.     XuiSendToKid (grid, #Resize, x, y, labelWidth, labelHeight, $Label, 0)
  989. '
  990.     h = buttonHeight
  991.     y = y + labelHeight
  992.     XuiSendToKid (grid, #Resize, x, y, width0, h, $Button0, 0) : x = x + width0
  993.     XuiSendToKid (grid, #Resize, x, y, width1, h, $Button1, 0) : x = x + width1
  994.     XuiSendToKid (grid, #Resize, x, y, width2, h, $Button2, 0) : x = x + width2
  995.     XuiSendToKid (grid, #Resize, x, y, width3, h, $Button3, 0) : x = x + width3
  996.     XuiResizeWindowToGrid (grid, #ResizeWindowToGrid, v0, v1, v2, v3, 0, 0)
  997. END SUB
  998. '
  999. '
  1000. ' *****  Initialize  ****
  1001. '
  1002. SUB Initialize
  1003.     XuiGetDefaultMessageFuncArray (@func[])
  1004.     XgrMessageNameToNumber (@"LastMessage", @upperMessage)
  1005. '
  1006.     func[#Callback]                        = &XuiCallback()
  1007.     func[#GetSmallestSize]        = 0
  1008.     func[#Resize]                            = 0
  1009. '
  1010.     DIM sub[upperMessage]
  1011.     sub[#Create]                            = SUBADDRESS (Create)
  1012.     sub[#CreateWindow]                = SUBADDRESS (CreateWindow)
  1013.     sub[#GetSmallestSize]            = SUBADDRESS (GetSmallestSize)
  1014.     sub[#Resize]                            = SUBADDRESS (Resize)
  1015. '
  1016.     IF sub[0] THEN PRINT "XuiWarning4B() : Initialize : error::: (undefined message)"
  1017.     IF func[0] THEN PRINT "XuiWarning4B() : Initialize : error::: (undefined message)"
  1018.     XuiRegisterGridType (@XuiWarning4B, @"XuiWarning4B", &XuiWarning4B(), @func[], @sub[])
  1019. '
  1020.     designX = 8
  1021.     designY = 27
  1022.     designWidth = 320
  1023.     designHeight = 48
  1024. '
  1025.     gridType = XuiWarning4B
  1026.     XuiSetGridTypeValue (gridType, @"x",               designX)
  1027.     XuiSetGridTypeValue (gridType, @"y",               designY)
  1028.     XuiSetGridTypeValue (gridType, @"width",           designWidth)
  1029.     XuiSetGridTypeValue (gridType, @"height",          designHeight)
  1030.     XuiSetGridTypeValue (gridType, @"minWidth",        32)
  1031.     XuiSetGridTypeValue (gridType, @"minHeight",       16)
  1032.     XuiSetGridTypeValue (gridType, @"border",          $$BorderFrame)
  1033.     XuiSetGridTypeValue (gridType, @"can",             $$Focus OR $$Respond OR $$Callback)
  1034.     XuiSetGridTypeValue (gridType, @"focusKid",         $Button0)
  1035.     XuiSetGridTypeValue (gridType, @"redrawFlags",     $$RedrawBorder)
  1036.     IFZ message THEN RETURN
  1037. END SUB
  1038. END FUNCTION
  1039. END PROGRAM