home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 August / PCWorld_2000-08_cd.bin / Software / TemaCD / xbasic / xbpro.exe / xb / awindow.x < prev    next >
Text File  |  1999-12-14  |  44KB  |  903 lines

  1. '
  2. ' ####################
  3. ' #####  PROLOG  #####
  4. ' ####################
  5. '
  6. PROGRAM    "awindow"
  7. VERSION    "0.0005"
  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  XitMain       (grid, message, v0, v1, v2, v3, kid, ANY)
  18. INTERNAL FUNCTION  XitMainCode   (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.     Xui ()                                                ' initialize GuiDesigner
  33.     InitGui ()                                        ' initialize messages
  34.     InitProgram ()                                ' initialize this program
  35.     CreateWindows ()                            ' create main window and others
  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 (@"Blowback",                                        @#Blowback)
  94.     XgrRegisterMessage (@"Callback",                                        @#Callback)
  95.     XgrRegisterMessage (@"Cancel",                                            @#Cancel)
  96.     XgrRegisterMessage (@"Change",                                            @#Change)
  97.     XgrRegisterMessage (@"CloseWindow",                                    @#CloseWindow)
  98.     XgrRegisterMessage (@"ContextChange",                                @#ContextChange)
  99.     XgrRegisterMessage (@"Create",                                            @#Create)
  100.     XgrRegisterMessage (@"CreateValueArray",                        @#CreateValueArray)
  101.     XgrRegisterMessage (@"CreateWindow",                                @#CreateWindow)
  102.     XgrRegisterMessage (@"CursorH",                                            @#CursorH)
  103.     XgrRegisterMessage (@"CursorV",                                            @#CursorV)
  104.     XgrRegisterMessage (@"Deselected",                                    @#Deselected)
  105.     XgrRegisterMessage (@"Destroy",                                            @#Destroy)
  106.     XgrRegisterMessage (@"Destroyed",                                        @#Destroyed)
  107.     XgrRegisterMessage (@"DestroyWindow",                                @#DestroyWindow)
  108.     XgrRegisterMessage (@"Disable",                                            @#Disable)
  109.     XgrRegisterMessage (@"Disabled",                                        @#Disabled)
  110.     XgrRegisterMessage (@"Displayed",                                        @#Displayed)
  111.     XgrRegisterMessage (@"DisplayWindow",                                @#DisplayWindow)
  112.     XgrRegisterMessage (@"Enable",                                            @#Enable)
  113.     XgrRegisterMessage (@"Enabled",                                            @#Enabled)
  114.     XgrRegisterMessage (@"Enter",                                                @#Enter)
  115.     XgrRegisterMessage (@"ExitMessageLoop",                            @#ExitMessageLoop)
  116.     XgrRegisterMessage (@"Find",                                                @#Find)
  117.     XgrRegisterMessage (@"FindForward",                                    @#FindForward)
  118.     XgrRegisterMessage (@"FindReverse",                                    @#FindReverse)
  119.     XgrRegisterMessage (@"Forward",                                            @#Forward)
  120.     XgrRegisterMessage (@"GetAlign",                                        @#GetAlign)
  121.     XgrRegisterMessage (@"GetBorder",                                        @#GetBorder)
  122.     XgrRegisterMessage (@"GetBorderOffset",                            @#GetBorderOffset)
  123.     XgrRegisterMessage (@"GetCallback",                                    @#GetCallback)
  124.     XgrRegisterMessage (@"GetCallbackArgs",                            @#GetCallbackArgs)
  125.     XgrRegisterMessage (@"GetCan",                                            @#GetCan)
  126.     XgrRegisterMessage (@"GetCharacterMapArray",                @#GetCharacterMapArray)
  127.     XgrRegisterMessage (@"GetClipGrid",                                    @#GetClipGrid)
  128.     XgrRegisterMessage (@"GetColor",                                        @#GetColor)
  129.     XgrRegisterMessage (@"GetColorExtra",                                @#GetColorExtra)
  130.     XgrRegisterMessage (@"GetCursor",                                        @#GetCursor)
  131.     XgrRegisterMessage (@"GetCursorXY",                                    @#GetCursorXY)
  132.     XgrRegisterMessage (@"GetDisplay",                                    @#GetDisplay)
  133.     XgrRegisterMessage (@"GetEnclosedGrids",                        @#GetEnclosedGrids)
  134.     XgrRegisterMessage (@"GetEnclosingGrid",                        @#GetEnclosingGrid)
  135.     XgrRegisterMessage (@"GetFocusColor",                                @#GetFocusColor)
  136.     XgrRegisterMessage (@"GetFocusColorExtra",                    @#GetFocusColorExtra)
  137.     XgrRegisterMessage (@"GetFont",                                            @#GetFont)
  138.     XgrRegisterMessage (@"GetFontNumber",                                @#GetFontNumber)
  139.     XgrRegisterMessage (@"GetGridFunction",                            @#GetGridFunction)
  140.     XgrRegisterMessage (@"GetGridFunctionName",                    @#GetGridFunctionName)
  141.     XgrRegisterMessage (@"GetGridName",                                    @#GetGridName)
  142.     XgrRegisterMessage (@"GetGridNumber",                                @#GetGridNumber)
  143.     XgrRegisterMessage (@"GetGridType",                                    @#GetGridType)
  144.     XgrRegisterMessage (@"GetGridTypeName",                            @#GetGridTypeName)
  145.     XgrRegisterMessage (@"GetGroup",                                        @#GetGroup)
  146.     XgrRegisterMessage (@"GetHelp",                                            @#GetHelp)
  147.     XgrRegisterMessage (@"GetHelpFile",                                    @#GetHelpFile)
  148.     XgrRegisterMessage (@"GetHelpString",                                @#GetHelpString)
  149.     XgrRegisterMessage (@"GetHelpStrings",                            @#GetHelpStrings)
  150.     XgrRegisterMessage (@"GetHintString",                                @#GetHintString)
  151.     XgrRegisterMessage (@"GetImage",                                        @#GetImage)
  152.     XgrRegisterMessage (@"GetImageCoords",                            @#GetImageCoords)
  153.     XgrRegisterMessage (@"GetIndent",                                        @#GetIndent)
  154.     XgrRegisterMessage (@"GetInfo",                                            @#GetInfo)
  155.     XgrRegisterMessage (@"GetJustify",                                    @#GetJustify)
  156.     XgrRegisterMessage (@"GetKeyboardFocus",                        @#GetKeyboardFocus)
  157.     XgrRegisterMessage (@"GetKeyboardFocusGrid",                @#GetKeyboardFocusGrid)
  158.     XgrRegisterMessage (@"GetKidNumber",                                @#GetKidNumber)
  159.     XgrRegisterMessage (@"GetKids",                                            @#GetKids)
  160.     XgrRegisterMessage (@"GetKidArray",                                    @#GetKidArray)
  161.     XgrRegisterMessage (@"GetKind",                                            @#GetKind)
  162.     XgrRegisterMessage (@"GetMaxMinSize",                                @#GetMaxMinSize)
  163.     XgrRegisterMessage (@"GetMessageFunc",                            @#GetMessageFunc)
  164.     XgrRegisterMessage (@"GetMessageFuncArray",                    @#GetMessageFuncArray)
  165.     XgrRegisterMessage (@"GetMessageSub",                                @#GetMessageSub)
  166.     XgrRegisterMessage (@"GetMessageSubArray",                    @#GetMessageSubArray)
  167.     XgrRegisterMessage (@"GetModalInfo",                                @#GetModalInfo)
  168.     XgrRegisterMessage (@"GetModalWindow",                            @#GetModalWindow)
  169.     XgrRegisterMessage (@"GetParent",                                        @#GetParent)
  170.     XgrRegisterMessage (@"GetPosition",                                    @#GetPosition)
  171.     XgrRegisterMessage (@"GetProtoInfo",                                @#GetProtoInfo)
  172.     XgrRegisterMessage (@"GetRedrawFlags",                            @#GetRedrawFlags)
  173.     XgrRegisterMessage (@"GetSize",                                            @#GetSize)
  174.     XgrRegisterMessage (@"GetSmallestSize",                            @#GetSmallestSize)
  175.     XgrRegisterMessage (@"GetState",                                        @#GetState)
  176.     XgrRegisterMessage (@"GetStyle",                                        @#GetStyle)
  177.     XgrRegisterMessage (@"GetTabArray",                                    @#GetTabArray)
  178.     XgrRegisterMessage (@"GetTabWidth",                                    @#GetTabWidth)
  179.     XgrRegisterMessage (@"GetTextArray",                                @#GetTextArray)
  180.     XgrRegisterMessage (@"GetTextArrayBounds",                    @#GetTextArrayBounds)
  181.     XgrRegisterMessage (@"GetTextArrayLine",                        @#GetTextArrayLine)
  182.     XgrRegisterMessage (@"GetTextArrayLines",                        @#GetTextArrayLines)
  183.     XgrRegisterMessage (@"GetTextCursor",                                @#GetTextCursor)
  184.     XgrRegisterMessage (@"GetTextFilename",                            @#GetTextFilename)
  185.     XgrRegisterMessage (@"GetTextPosition",                            @#GetTextPosition)
  186.     XgrRegisterMessage (@"GetTextSelection",                        @#GetTextSelection)
  187.     XgrRegisterMessage (@"GetTextString",                                @#GetTextString)
  188.     XgrRegisterMessage (@"GetTextStrings",                            @#GetTextStrings)
  189.     XgrRegisterMessage (@"GetTexture",                                    @#GetTexture)
  190.     XgrRegisterMessage (@"GetTimer",                                        @#GetTimer)
  191.     XgrRegisterMessage (@"GetValue",                                        @#GetValue)
  192.     XgrRegisterMessage (@"GetValues",                                        @#GetValues)
  193.     XgrRegisterMessage (@"GetValueArray",                                @#GetValueArray)
  194.     XgrRegisterMessage (@"GetWindow",                                        @#GetWindow)
  195.     XgrRegisterMessage (@"GetWindowFunction",                        @#GetWindowFunction)
  196.     XgrRegisterMessage (@"GetWindowGrid",                                @#GetWindowGrid)
  197.     XgrRegisterMessage (@"GetWindowIcon",                                @#GetWindowIcon)
  198.     XgrRegisterMessage (@"GetWindowSize",                                @#GetWindowSize)
  199.     XgrRegisterMessage (@"GetWindowTitle",                            @#GetWindowTitle)
  200.     XgrRegisterMessage (@"GotKeyboardFocus",                        @#GotKeyboardFocus)
  201.     XgrRegisterMessage (@"GrabArray",                                        @#GrabArray)
  202.     XgrRegisterMessage (@"GrabTextArray",                                @#GrabTextArray)
  203.     XgrRegisterMessage (@"GrabTextString",                            @#GrabTextString)
  204.     XgrRegisterMessage (@"GrabValueArray",                            @#GrabValueArray)
  205.     XgrRegisterMessage (@"Help",                                                @#Help)
  206.     XgrRegisterMessage (@"Hidden",                                            @#Hidden)
  207.     XgrRegisterMessage (@"HideTextCursor",                            @#HideTextCursor)
  208.     XgrRegisterMessage (@"HideWindow",                                    @#HideWindow)
  209.     XgrRegisterMessage (@"Initialize",                                    @#Initialize)
  210.     XgrRegisterMessage (@"Initialized",                                    @#Initialized)
  211.     XgrRegisterMessage (@"Inline",                                            @#Inline)
  212.     XgrRegisterMessage (@"InquireText",                                    @#InquireText)
  213.     XgrRegisterMessage (@"KeyboardFocusBackward",                @#KeyboardFocusBackward)
  214.     XgrRegisterMessage (@"KeyboardFocusForward",                @#KeyboardFocusForward)
  215.     XgrRegisterMessage (@"KeyDown",                                            @#KeyDown)
  216.     XgrRegisterMessage (@"KeyUp",                                                @#KeyUp)
  217.     XgrRegisterMessage (@"LostKeyboardFocus",                        @#LostKeyboardFocus)
  218.     XgrRegisterMessage (@"LostTextSelection",                        @#LostTextSelection)
  219.     XgrRegisterMessage (@"Maximized",                                        @#Maximized)
  220.     XgrRegisterMessage (@"MaximizeWindow",                            @#MaximizeWindow)
  221.     XgrRegisterMessage (@"Maximum",                                            @#Maximum)
  222.     XgrRegisterMessage (@"Minimized",                                        @#Minimized)
  223.     XgrRegisterMessage (@"MinimizeWindow",                            @#MinimizeWindow)
  224.     XgrRegisterMessage (@"Minimum",                                            @#Minimum)
  225.     XgrRegisterMessage (@"MonitorContext",                            @#MonitorContext)
  226.     XgrRegisterMessage (@"MonitorHelp",                                    @#MonitorHelp)
  227.     XgrRegisterMessage (@"MonitorKeyboard",                            @#MonitorKeyboard)
  228.     XgrRegisterMessage (@"MonitorMouse",                                @#MonitorMouse)
  229.     XgrRegisterMessage (@"MouseDown",                                        @#MouseDown)
  230.     XgrRegisterMessage (@"MouseDrag",                                        @#MouseDrag)
  231.     XgrRegisterMessage (@"MouseEnter",                                    @#MouseEnter)
  232.     XgrRegisterMessage (@"MouseExit",                                        @#MouseExit)
  233.     XgrRegisterMessage (@"MouseMove",                                        @#MouseMove)
  234.     XgrRegisterMessage (@"MouseUp",                                            @#MouseUp)
  235.     XgrRegisterMessage (@"MuchLess",                                        @#MuchLess)
  236.     XgrRegisterMessage (@"MuchMore",                                        @#MuchMore)
  237.     XgrRegisterMessage (@"OneLess",                                            @#OneLess)
  238.     XgrRegisterMessage (@"OneMore",                                            @#OneMore)
  239.     XgrRegisterMessage (@"PokeArray",                                        @#PokeArray)
  240.     XgrRegisterMessage (@"PokeTextArray",                                @#PokeTextArray)
  241.     XgrRegisterMessage (@"PokeTextString",                            @#PokeTextString)
  242.     XgrRegisterMessage (@"PokeValueArray",                            @#PokeValueArray)
  243.     XgrRegisterMessage (@"Print",                                                @#Print)
  244.     XgrRegisterMessage (@"Redraw",                                            @#Redraw)
  245.     XgrRegisterMessage (@"RedrawGrid",                                    @#RedrawGrid)
  246.     XgrRegisterMessage (@"RedrawLines",                                    @#RedrawLines)
  247.     XgrRegisterMessage (@"RedrawText",                                    @#RedrawText)
  248.     XgrRegisterMessage (@"RedrawWindow",                                @#RedrawWindow)
  249.     XgrRegisterMessage (@"Replace",                                            @#Replace)
  250.     XgrRegisterMessage (@"ReplaceForward",                            @#ReplaceForward)
  251.     XgrRegisterMessage (@"ReplaceReverse",                            @#ReplaceReverse)
  252.     XgrRegisterMessage (@"Reset",                                                @#Reset)
  253.     XgrRegisterMessage (@"Resize",                                            @#Resize)
  254.     XgrRegisterMessage (@"Resized",                                            @#Resized)
  255.     XgrRegisterMessage (@"ResizeNot",                                        @#ResizeNot)
  256.     XgrRegisterMessage (@"ResizeWindow",                                @#ResizeWindow)
  257.     XgrRegisterMessage (@"ResizeWindowToGrid",                    @#ResizeWindowToGrid)
  258.     XgrRegisterMessage (@"Resized",                                            @#Resized)
  259.     XgrRegisterMessage (@"Reverse",                                            @#Reverse)
  260.     XgrRegisterMessage (@"ScrollH",                                            @#ScrollH)
  261.     XgrRegisterMessage (@"ScrollV",                                            @#ScrollV)
  262.     XgrRegisterMessage (@"Select",                                            @#Select)
  263.     XgrRegisterMessage (@"Selected",                                        @#Selected)
  264.     XgrRegisterMessage (@"Selection",                                        @#Selection)
  265.     XgrRegisterMessage (@"SelectWindow",                                @#SelectWindow)
  266.     XgrRegisterMessage (@"SetAlign",                                        @#SetAlign)
  267.     XgrRegisterMessage (@"SetBorder",                                        @#SetBorder)
  268.     XgrRegisterMessage (@"SetBorderOffset",                            @#SetBorderOffset)
  269.     XgrRegisterMessage (@"SetCallback",                                    @#SetCallback)
  270.     XgrRegisterMessage (@"SetCan",                                            @#SetCan)
  271.     XgrRegisterMessage (@"SetCharacterMapArray",                @#SetCharacterMapArray)
  272.     XgrRegisterMessage (@"SetClipGrid",                                    @#SetClipGrid)
  273.     XgrRegisterMessage (@"SetColor",                                        @#SetColor)
  274.     XgrRegisterMessage (@"SetColorAll",                                    @#SetColorAll)
  275.     XgrRegisterMessage (@"SetColorExtra",                                @#SetColorExtra)
  276.     XgrRegisterMessage (@"SetColorExtraAll",                        @#SetColorExtraAll)
  277.     XgrRegisterMessage (@"SetCursor",                                        @#SetCursor)
  278.     XgrRegisterMessage (@"SetCursorXY",                                    @#SetCursorXY)
  279.     XgrRegisterMessage (@"SetDisplay",                                    @#SetDisplay)
  280.     XgrRegisterMessage (@"SetFocusColor",                                @#SetFocusColor)
  281.     XgrRegisterMessage (@"SetFocusColorExtra",                    @#SetFocusColorExtra)
  282.     XgrRegisterMessage (@"SetFont",                                            @#SetFont)
  283.     XgrRegisterMessage (@"SetFontNumber",                                @#SetFontNumber)
  284.     XgrRegisterMessage (@"SetGridFunction",                            @#SetGridFunction)
  285.     XgrRegisterMessage (@"SetGridFunctionName",                    @#SetGridFunctionName)
  286.     XgrRegisterMessage (@"SetGridName",                                    @#SetGridName)
  287.     XgrRegisterMessage (@"SetGridType",                                    @#SetGridType)
  288.     XgrRegisterMessage (@"SetGridTypeName",                            @#SetGridTypeName)
  289.     XgrRegisterMessage (@"SetGroup",                                        @#SetGroup)
  290.     XgrRegisterMessage (@"SetHelp",                                            @#SetHelp)
  291.     XgrRegisterMessage (@"SetHelpFile",                                    @#SetHelpFile)
  292.     XgrRegisterMessage (@"SetHelpString",                                @#SetHelpString)
  293.     XgrRegisterMessage (@"SetHelpStrings",                            @#SetHelpStrings)
  294.     XgrRegisterMessage (@"SetHintString",                                @#SetHintString)
  295.     XgrRegisterMessage (@"SetImage",                                        @#SetImage)
  296.     XgrRegisterMessage (@"SetImageCoords",                            @#SetImageCoords)
  297.     XgrRegisterMessage (@"SetIndent",                                        @#SetIndent)
  298.     XgrRegisterMessage (@"SetInfo",                                            @#SetInfo)
  299.     XgrRegisterMessage (@"SetJustify",                                    @#SetJustify)
  300.     XgrRegisterMessage (@"SetKeyboardFocus",                        @#SetKeyboardFocus)
  301.     XgrRegisterMessage (@"SetKeyboardFocusGrid",                @#SetKeyboardFocusGrid)
  302.     XgrRegisterMessage (@"SetMaxMinSize",                                @#SetMaxMinSize)
  303.     XgrRegisterMessage (@"SetMessageFunc",                            @#SetMessageFunc)
  304.     XgrRegisterMessage (@"SetMessageFuncArray",                    @#SetMessageFuncArray)
  305.     XgrRegisterMessage (@"SetMessageSub",                                @#SetMessageSub)
  306.     XgrRegisterMessage (@"SetMessageSubArray",                    @#SetMessageSubArray)
  307.     XgrRegisterMessage (@"SetModalWindow",                            @#SetModalWindow)
  308.     XgrRegisterMessage (@"SetParent",                                        @#SetParent)
  309.     XgrRegisterMessage (@"SetPosition",                                    @#SetPosition)
  310.     XgrRegisterMessage (@"SetRedrawFlags",                            @#SetRedrawFlags)
  311.     XgrRegisterMessage (@"SetSize",                                            @#SetSize)
  312.     XgrRegisterMessage (@"SetState",                                        @#SetState)
  313.     XgrRegisterMessage (@"SetStyle",                                        @#SetStyle)
  314.     XgrRegisterMessage (@"SetTabArray",                                    @#SetTabArray)
  315.     XgrRegisterMessage (@"SetTabWidth",                                    @#SetTabWidth)
  316.     XgrRegisterMessage (@"SetTextArray",                                @#SetTextArray)
  317.     XgrRegisterMessage (@"SetTextArrayLine",                        @#SetTextArrayLine)
  318.     XgrRegisterMessage (@"SetTextArrayLines",                        @#SetTextArrayLines)
  319.     XgrRegisterMessage (@"SetTextCursor",                                @#SetTextCursor)
  320.     XgrRegisterMessage (@"SetTextFilename",                            @#SetTextFilename)
  321.     XgrRegisterMessage (@"SetTextSelection",                        @#SetTextSelection)
  322.     XgrRegisterMessage (@"SetTextString",                                @#SetTextString)
  323.     XgrRegisterMessage (@"SetTextStrings",                            @#SetTextStrings)
  324.     XgrRegisterMessage (@"SetTexture",                                    @#SetTexture)
  325.     XgrRegisterMessage (@"SetTimer",                                        @#SetTimer)
  326.     XgrRegisterMessage (@"SetValue",                                        @#SetValue)
  327.     XgrRegisterMessage (@"SetValues",                                        @#SetValues)
  328.     XgrRegisterMessage (@"SetValueArray",                                @#SetValueArray)
  329.     XgrRegisterMessage (@"SetWindowFunction",                        @#SetWindowFunction)
  330.     XgrRegisterMessage (@"SetWindowIcon",                                @#SetWindowIcon)
  331.     XgrRegisterMessage (@"SetWindowTitle",                            @#SetWindowTitle)
  332.     XgrRegisterMessage (@"ShowTextCursor",                            @#ShowTextCursor)
  333.     XgrRegisterMessage (@"ShowWindow",                                    @#ShowWindow)
  334.     XgrRegisterMessage (@"SomeLess",                                        @#SomeLess)
  335.     XgrRegisterMessage (@"SomeMore",                                        @#SomeMore)
  336.     XgrRegisterMessage (@"StartTimer",                                    @#StartTimer)
  337.     XgrRegisterMessage (@"SystemMessage",                                @#SystemMessage)
  338.     XgrRegisterMessage (@"TextDelete",                                    @#TextDelete)
  339.     XgrRegisterMessage (@"TextEvent",                                        @#TextEvent)
  340.     XgrRegisterMessage (@"TextInsert",                                    @#TextInsert)
  341.     XgrRegisterMessage (@"TextModified",                                @#TextModified)
  342.     XgrRegisterMessage (@"TextReplace",                                    @#TextReplace)
  343.     XgrRegisterMessage (@"TimeOut",                                            @#TimeOut)
  344.     XgrRegisterMessage (@"Update",                                            @#Update)
  345.     XgrRegisterMessage (@"WindowClose",                                    @#WindowClose)
  346.     XgrRegisterMessage (@"WindowCreate",                                @#WindowCreate)
  347.     XgrRegisterMessage (@"WindowDeselected",                        @#WindowDeselected)
  348.     XgrRegisterMessage (@"WindowDestroy",                                @#WindowDestroy)
  349.     XgrRegisterMessage (@"WindowDestroyed",                            @#WindowDestroyed)
  350.     XgrRegisterMessage (@"WindowDisplay",                                @#WindowDisplay)
  351.     XgrRegisterMessage (@"WindowDisplayed",                            @#WindowDisplayed)
  352.     XgrRegisterMessage (@"WindowGetDisplay",                        @#WindowGetDisplay)
  353.     XgrRegisterMessage (@"WindowGetFunction",                        @#WindowGetFunction)
  354.     XgrRegisterMessage (@"WindowGetIcon",                                @#WindowGetIcon)
  355.     XgrRegisterMessage (@"WindowGetKeyboardFocusGrid",    @#WindowGetKeyboardFocusGrid)
  356.     XgrRegisterMessage (@"WindowGetSelectedWindow",            @#WindowGetSelectedWindow)
  357.     XgrRegisterMessage (@"WindowGetSize",                                @#WindowGetSize)
  358.     XgrRegisterMessage (@"WindowGetTitle",                            @#WindowGetTitle)
  359.     XgrRegisterMessage (@"WindowHelp",                                    @#WindowHelp)
  360.     XgrRegisterMessage (@"WindowHide",                                    @#WindowHide)
  361.     XgrRegisterMessage (@"WindowHidden",                                @#WindowHidden)
  362.     XgrRegisterMessage (@"WindowKeyDown",                                @#WindowKeyDown)
  363.     XgrRegisterMessage (@"WindowKeyUp",                                    @#WindowKeyUp)
  364.     XgrRegisterMessage (@"WindowMaximize",                            @#WindowMaximize)
  365.     XgrRegisterMessage (@"WindowMaximized",                            @#WindowMaximized)
  366.     XgrRegisterMessage (@"WindowMinimize",                            @#WindowMinimize)
  367.     XgrRegisterMessage (@"WindowMinimized",                            @#WindowMinimized)
  368.     XgrRegisterMessage (@"WindowMonitorContext",                @#WindowMonitorContext)
  369.     XgrRegisterMessage (@"WindowMonitorHelp",                        @#WindowMonitorHelp)
  370.     XgrRegisterMessage (@"WindowMonitorKeyboard",                @#WindowMonitorKeyboard)
  371.     XgrRegisterMessage (@"WindowMonitorMouse",                    @#WindowMonitorMouse)
  372.     XgrRegisterMessage (@"WindowMouseDown",                            @#WindowMouseDown)
  373.     XgrRegisterMessage (@"WindowMouseDrag",                            @#WindowMouseDrag)
  374.     XgrRegisterMessage (@"WindowMouseEnter",                        @#WindowMouseEnter)
  375.     XgrRegisterMessage (@"WindowMouseExit",                            @#WindowMouseExit)
  376.     XgrRegisterMessage (@"WindowMouseMove",                            @#WindowMouseMove)
  377.     XgrRegisterMessage (@"WindowMouseUp",                                @#WindowMouseUp)
  378.     XgrRegisterMessage (@"WindowRedraw",                                @#WindowRedraw)
  379.     XgrRegisterMessage (@"WindowRegister",                            @#WindowRegister)
  380.     XgrRegisterMessage (@"WindowResize",                                @#WindowResize)
  381.     XgrRegisterMessage (@"WindowResized",                                @#WindowResized)
  382.     XgrRegisterMessage (@"WindowResizeToGrid",                    @#WindowResizeToGrid)
  383.     XgrRegisterMessage (@"WindowSelect",                                @#WindowSelect)
  384.     XgrRegisterMessage (@"WindowSelected",                            @#WindowSelected)
  385.     XgrRegisterMessage (@"WindowSetFunction",                        @#WindowSetFunction)
  386.     XgrRegisterMessage (@"WindowSetIcon",                                @#WindowSetIcon)
  387.     XgrRegisterMessage (@"WindowSetKeyboardFocusGrid",    @#WindowSetKeyboardFocusGrid)
  388.     XgrRegisterMessage (@"WindowSetTitle",                            @#WindowSetTitle)
  389.     XgrRegisterMessage (@"WindowShow",                                    @#WindowShow)
  390.     XgrRegisterMessage (@"WindowSystemMessage",                    @#WindowSystemMessage)
  391.     XgrRegisterMessage (@"LastMessage",                                    @#LastMessage)
  392. '
  393.     XgrGetDisplaySize ("", @#displayWidth, @#displayHeight, @#windowBorderWidth, @#windowTitleHeight)
  394. END FUNCTION
  395. '
  396. '
  397. ' ############################
  398. ' #####  InitProgram ()  #####
  399. ' ############################
  400. '
  401. ' Add code to InitProgram() to initialize whatever needs initialization.
  402. ' Do not delete this function - leave it empty if not needed.
  403. '
  404. FUNCTION  InitProgram ()
  405.  
  406. END FUNCTION
  407. '
  408. '
  409. ' ##############################
  410. ' #####  CreateWindows ()  #####
  411. ' ##############################
  412. '
  413. ' GuiDesigner puts code in CreateWindows() to create, initialize, display
  414. ' every window you design graphically.  Don't modify this function unless
  415. ' absolutely necessary - GuiDesigner needs to read and update it at times.
  416. '
  417. FUNCTION  CreateWindows ()
  418. '
  419.   XitMain        (@XitMain, #CreateWindow, 0, 0, 0, 0, 0, 0)
  420.   XuiSendMessage ( XitMain, #SetCallback, XitMain, &XitMainCode(), -1, -1, -1, 0)
  421.   XuiSendMessage ( XitMain, #Initialize, 0, 0, 0, 0, 0, 0)
  422.   XuiSendMessage ( XitMain, #DisplayWindow, 0, 0, 0, 0, 0, 0)
  423. END FUNCTION
  424. '
  425. '
  426. ' ########################
  427. ' #####  XitMain ()  #####
  428. ' ########################
  429. '
  430. FUNCTION  XitMain (grid, message, v0, v1, v2, v3, r0, (r1, r1$, r1[], r1$[]))
  431.   STATIC    designX,  designY,  designWidth,  designHeight
  432.   STATIC    SUBADDR  sub[]
  433.     STATIC    upperMessage
  434.   STATIC    XitMain
  435. '
  436.   $XitMain              =  0  ' kid  0 grid type = XitMain
  437.   $MenuBar              =  1  ' kid  1 grid type = XuiMenu
  438.   $FileLabel            =  2  ' kid  2 grid type = XuiLabel
  439.   $TextUpper            =  3  ' kid  3 grid type = XuiTextArea
  440.   $FunctionLabel        =  4  ' kid  4 grid type = XuiLabel
  441.   $StatusLabel          =  5  ' kid  5 grid type = XuiLabel
  442.   $ErrorLabel           =  6  ' kid  6 grid type = XuiLabel
  443.   $HotStart             =  7  ' kid  7 grid type = XuiPushButton
  444.   $HotContinue          =  8  ' kid  8 grid type = XuiPushButton
  445.   $HotPause             =  9  ' kid  9 grid type = XuiPushButton
  446.   $HotKill              = 10  ' kid 10 grid type = XuiPushButton
  447.   $HotToCursor          = 11  ' kid 11 grid type = XuiPushButton
  448.   $HotStepLocal         = 12  ' kid 12 grid type = XuiPushButton
  449.   $HotStepGlobal        = 13  ' kid 13 grid type = XuiPushButton
  450.   $HotVariables         = 14  ' kid 14 grid type = XuiPushButton
  451.   $HotFrames            = 15  ' kid 15 grid type = XuiPushButton
  452.   $HotAssembly          = 16  ' kid 16 grid type = XuiPushButton
  453.   $HotFind              = 17  ' kid 17 grid type = XuiPushButton
  454.   $HotReplace           = 18  ' kid 18 grid type = XuiPushButton
  455.   $HotToggleBreakpoint  = 19  ' kid 19 grid type = XuiPushButton
  456.   $HotClearBreakpoints  = 20  ' kid 20 grid type = XuiPushButton
  457.   $HotGui               = 21  ' kid 21 grid type = XuiPushButton
  458.   $HotAbort             = 22  ' kid 22 grid type = XuiPushButton
  459.   $TextLower            = 23  ' kid 23 grid type = XuiTextArea
  460.   $UpperKid             = 23  ' kid maximum
  461. '
  462. '
  463.   IFZ sub[] THEN GOSUB Initialize
  464. '    XuiReportMessage (grid, message, v0, v1, v2, v3, r0, r1)
  465.   IF XuiProcessMessage (grid, message, @v0, @v1, @v2, @v3, @r0, @r1, XitMain) THEN RETURN
  466.   IF (message <= upperMessage) THEN GOSUB @sub[message]
  467.   RETURN
  468. '
  469. '
  470. ' *****  Callback  *****  message = Callback : r1 = original message
  471. '
  472. SUB Callback
  473.   message = r1
  474.   IF (message <= upperMessage) THEN GOSUB @sub[message]
  475. END SUB
  476. '
  477. '
  478. ' *****  Create  *****  v0123 = xywh : r0 = window : r1 = parent
  479. '
  480. SUB Create
  481.   IF (v0 <= 0) THEN v0 = 0
  482.   IF (v1 <= 0) THEN v1 = 0
  483.   IF (v2 <= 0) THEN v2 = designWidth
  484.   IF (v3 <= 0) THEN v3 = designHeight
  485.   XuiCreateGrid (@grid, XitMain, @v0, @v1, @v2, @v3, r0, r1, &XitMain())
  486.   XuiSendMessage (grid, #SetGridName, 0, 0, 0, 0, 0, @"XitMain")
  487.   XuiSendMessage (grid, #SetBorder, 0, 0, $$BorderFrame, -1, 0, 0)
  488.   XuiMenu       (@g, #Create, 0, 0, 468, 24, r0, grid)
  489.   XuiSendMessage (g, #SetCallback, grid, &XitMain(), -1, -1, $MenuBar, grid)
  490.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"MenuBar")
  491.   DIM text$[61]
  492.   text$[ 0] = "_File  "
  493.   text$[ 1] = " _New"
  494.     text$[ 2] = " _TextLoad"
  495.     text$[ 3] = " _Load"
  496.     text$[ 4] = " _Save"
  497.     text$[ 5] = " _Mode"
  498.     text$[ 6] = " _Rename"
  499.     text$[ 7] = " _Quit"
  500.     text$[ 8] = "_Edit  "
  501.   text$[ 9] = " _Cut"
  502.     text$[10] = " _Grab"
  503.     text$[11] = " _Paste"
  504.     text$[12] = " _Delete"
  505.     text$[13] = " _Buffer"
  506.     text$[14] = " _Insert"
  507.     text$[15] = " _Erase"
  508.     text$[16] = " _Find"
  509.     text$[17] = " _Read"
  510.     text$[18] = " _Write"
  511.     text$[19] = " _Abandon"
  512.   text$[20] = "_View  "
  513.   text$[21] = " _Function"
  514.     text$[22] = " _PriorFunction"
  515.     text$[23] = " _NewFunction"
  516.     text$[24] = " _DeleteFunction"
  517.     text$[25] = " _RenameFunction"
  518.     text$[26] = " _CloneFunction"
  519.     text$[27] = " _LoadFunction"
  520.     text$[28] = " _SaveFunction"
  521.     text$[29] = " _Merge PROLOG"
  522.   text$[30] = "_Option  "
  523.   text$[31] = " _Compile"
  524.     text$[32] = " _TabWidth (pixels)"
  525.   text$[33] = "_Run  "
  526.   text$[34] = " _Start"
  527.     text$[35] = " _Continue"
  528.     text$[36] = " _Jump"
  529.     text$[37] = " _Pause"
  530.     text$[38] = " _Kill"
  531.     text$[39] = " _Recompile"
  532.     text$[40] = " _Assembly"
  533.     text$[41] = " _Library"
  534.     text$[42] = "_Debug  "
  535.   text$[43] = " _ToggleBreakpoint"
  536.     text$[44] = " _ClearAllBreakpoints"
  537.     text$[45] = " _EraseLocalBreakpoints"
  538.     text$[46] = " _Memory"
  539.     text$[47] = " _Assembly"
  540.     text$[48] = " _Registers"
  541.     text$[49] = "_Status  "
  542.   text$[50] = " _CompilationErrors"
  543.     text$[51] = " _RuntimeErrors"
  544.     text$[52] = "_Help  "
  545.   text$[53] = " _Message"
  546.     text$[54] = " _Language"
  547.     text$[55] = " _Operator"
  548.     text$[56] = " _DotCommand"
  549.     text$[57] = " MathLibrary"
  550.     text$[58] = " StandardLibrary"
  551.     text$[59] = " GraphicsLibrary"
  552.     text$[60] = " GuiDesignerLibrary"
  553.     text$[61] = " ComplexNumberLibrary"
  554.   XuiSendMessage (g, #SetTextArray, 0, 0, 0, 0, 0, @text$[])
  555.   XuiLabel      (@g, #Create, 468, 0, 132, 24, r0, grid)
  556.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"FileLabel")
  557.   XuiSendMessage (g, #SetAlign, $$AlignMiddleLeft, -1, 4, 0, 0, 0)
  558.   XuiTextArea   (@g, #Create, 0, 24, 468, 72, r0, grid)
  559.   XuiSendMessage (g, #SetCallback, grid, &XitMain(), -1, -1, $TextUpper, grid)
  560.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"TextUpper")
  561.   XuiSendMessage (g, #SetTextString, 0, 0, 0, 0, 0, @"!!! Click right button on any grid for InstantHelp !!!\n.c\n")
  562.   DIM text$[0]
  563.   text$[0] = "!!!!!  This is awindow.x - not the PDE  !!!!!"
  564.   XuiSendMessage (g, #SetTextArray, 0, 0, 0, 0, 0, @text$[])
  565.   XuiLabel      (@g, #Create, 468, 24, 132, 24, r0, grid)
  566.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"FunctionLabel")
  567.   XuiSendMessage (g, #SetAlign, $$AlignMiddleLeft, -1, 4, 0, 0, 0)
  568.   XuiLabel      (@g, #Create, 468, 48, 132, 24, r0, grid)
  569.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"StatusLabel")
  570.   XuiSendMessage (g, #SetAlign, $$AlignMiddleLeft, -1, 4, 0, 0, 0)
  571.   XuiLabel      (@g, #Create, 468, 72, 132, 24, r0, grid)
  572.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"ErrorLabel")
  573.   XuiSendMessage (g, #SetAlign, $$AlignMiddleLeft, -1, 4, 0, 0, 0)
  574.   XuiPushButton (@g, #Create, 0, 96, 32, 32, r0, grid)
  575.   XuiSendMessage (g, #SetCallback, grid, &XitMain(), -1, -1, $HotStart, grid)
  576.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"HotStart")
  577.   XuiSendMessage (g, #SetBorder, $$BorderRaise1, $$BorderRaise1, 0, -1, 0, 0)
  578.   XuiSendMessage (g, #SetImage, 0, 0, 0, 0, 0, @"\\xb\\xxx\\xstart.bmp")
  579.   XuiSendMessage (g, #SetImageCoords, 0, 0, 32, 32, 0, 0)
  580.   XuiPushButton (@g, #Create, 32, 96, 32, 32, r0, grid)
  581.   XuiSendMessage (g, #SetCallback, grid, &XitMain(), -1, -1, $HotContinue, grid)
  582.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"HotContinue")
  583.   XuiSendMessage (g, #SetBorder, $$BorderRaise1, $$BorderRaise1, 0, -1, 0, 0)
  584.   XuiSendMessage (g, #SetImage, 0, 0, 0, 0, 0, @"\\xb\\xxx\\xcontin.bmp")
  585.   XuiSendMessage (g, #SetImageCoords, 0, 0, 32, 32, 0, 0)
  586.   XuiPushButton (@g, #Create, 64, 96, 32, 32, r0, grid)
  587.   XuiSendMessage (g, #SetCallback, grid, &XitMain(), -1, -1, $HotPause, grid)
  588.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"HotPause")
  589.   XuiSendMessage (g, #SetBorder, $$BorderRaise1, $$BorderRaise1, 0, -1, 0, 0)
  590.   XuiSendMessage (g, #SetImage, 0, 0, 0, 0, 0, @"\\xb\\xxx\\xpause.bmp")
  591.   XuiSendMessage (g, #SetImageCoords, 0, 0, 32, 32, 0, 0)
  592.   XuiPushButton (@g, #Create, 96, 96, 32, 32, r0, grid)
  593.   XuiSendMessage (g, #SetCallback, grid, &XitMain(), -1, -1, $HotKill, grid)
  594.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"HotKill")
  595.   XuiSendMessage (g, #SetBorder, $$BorderRaise1, $$BorderRaise1, 0, -1, 0, 0)
  596.   XuiSendMessage (g, #SetImage, 0, 0, 0, 0, 0, @"\\xb\\xxx\\xkill.bmp")
  597.   XuiSendMessage (g, #SetImageCoords, 0, 0, 32, 32, 0, 0)
  598.   XuiPushButton (@g, #Create, 132, 96, 32, 32, r0, grid)
  599.   XuiSendMessage (g, #SetCallback, grid, &XitMain(), -1, -1, $HotToCursor, grid)
  600.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"HotToCursor")
  601.   XuiSendMessage (g, #SetBorder, $$BorderRaise1, $$BorderRaise1, 0, -1, 0, 0)
  602.   XuiSendMessage (g, #SetImage, 0, 0, 0, 0, 0, @"\\xb\\xxx\\xtocurs.bmp")
  603.   XuiSendMessage (g, #SetImageCoords, 0, 0, 32, 32, 0, 0)
  604.   XuiPushButton (@g, #Create, 164, 96, 32, 32, r0, grid)
  605.   XuiSendMessage (g, #SetCallback, grid, &XitMain(), -1, -1, $HotStepLocal, grid)
  606.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"HotStepLocal")
  607.   XuiSendMessage (g, #SetBorder, $$BorderRaise1, $$BorderRaise1, 0, -1, 0, 0)
  608.   XuiSendMessage (g, #SetImage, 0, 0, 0, 0, 0, @"\\xb\\xxx\\xsteploc.bmp")
  609.   XuiSendMessage (g, #SetImageCoords, 0, 0, 32, 32, 0, 0)
  610.   XuiPushButton (@g, #Create, 196, 96, 32, 32, r0, grid)
  611.   XuiSendMessage (g, #SetCallback, grid, &XitMain(), -1, -1, $HotStepGlobal, grid)
  612.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"HotStepGlobal")
  613.   XuiSendMessage (g, #SetBorder, $$BorderRaise1, $$BorderRaise1, 0, -1, 0, 0)
  614.   XuiSendMessage (g, #SetImage, 0, 0, 0, 0, 0, @"\\xb\\xxx\\xstepglo.bmp")
  615.   XuiSendMessage (g, #SetImageCoords, 0, 0, 32, 32, 0, 0)
  616.   XuiPushButton (@g, #Create, 232, 96, 32, 32, r0, grid)
  617.   XuiSendMessage (g, #SetCallback, grid, &XitMain(), -1, -1, $HotVariables, grid)
  618.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"HotVariables")
  619.   XuiSendMessage (g, #SetBorder, $$BorderRaise1, $$BorderRaise1, 0, -1, 0, 0)
  620.   XuiSendMessage (g, #SetImage, 0, 0, 0, 0, 0, @"\\xb\\xxx\\xvar.bmp")
  621.   XuiSendMessage (g, #SetImageCoords, 0, 0, 32, 32, 0, 0)
  622.   XuiPushButton (@g, #Create, 264, 96, 32, 32, r0, grid)
  623.   XuiSendMessage (g, #SetCallback, grid, &XitMain(), -1, -1, $HotFrames, grid)
  624.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"HotFrames")
  625.   XuiSendMessage (g, #SetBorder, $$BorderRaise1, $$BorderRaise1, 0, -1, 0, 0)
  626.   XuiSendMessage (g, #SetImage, 0, 0, 0, 0, 0, @"\\xb\\xxx\\xframe.bmp")
  627.   XuiSendMessage (g, #SetImageCoords, 0, 0, 32, 32, 0, 0)
  628.   XuiPushButton (@g, #Create, 296, 96, 32, 32, r0, grid)
  629.   XuiSendMessage (g, #SetCallback, grid, &XitMain(), -1, -1, $HotAssembly, grid)
  630.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"HotAssembly")
  631.   XuiSendMessage (g, #SetBorder, $$BorderRaise1, $$BorderRaise1, 0, -1, 0, 0)
  632.   XuiSendMessage (g, #SetImage, 0, 0, 0, 0, 0, @"\\xb\\xxx\\xasm.bmp")
  633.   XuiSendMessage (g, #SetImageCoords, 0, 0, 32, 32, 0, 0)
  634.   XuiPushButton (@g, #Create, 332, 96, 32, 32, r0, grid)
  635.   XuiSendMessage (g, #SetCallback, grid, &XitMain(), -1, -1, $HotFind, grid)
  636.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"HotFind")
  637.   XuiSendMessage (g, #SetBorder, $$BorderRaise1, $$BorderRaise1, 0, -1, 0, 0)
  638.   XuiSendMessage (g, #SetImage, 0, 0, 0, 0, 0, @"\\xb\\xxx\\xfind.bmp")
  639.   XuiSendMessage (g, #SetImageCoords, 0, 0, 32, 32, 0, 0)
  640.   XuiPushButton (@g, #Create, 364, 96, 32, 32, r0, grid)
  641.   XuiSendMessage (g, #SetCallback, grid, &XitMain(), -1, -1, $HotReplace, grid)
  642.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"HotReplace")
  643.   XuiSendMessage (g, #SetBorder, $$BorderRaise1, $$BorderRaise1, 0, -1, 0, 0)
  644.   XuiSendMessage (g, #SetImage, 0, 0, 0, 0, 0, @"\\xb\\xxx\\xreplace.bmp")
  645.   XuiSendMessage (g, #SetImageCoords, 0, 0, 32, 32, 0, 0)
  646.   XuiPushButton (@g, #Create, 400, 96, 32, 32, r0, grid)
  647.   XuiSendMessage (g, #SetCallback, grid, &XitMain(), -1, -1, $HotToggleBreakpoint, grid)
  648.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"HotToggleBreakpoint")
  649.   XuiSendMessage (g, #SetBorder, $$BorderRaise1, $$BorderRaise1, 0, -1, 0, 0)
  650.   XuiSendMessage (g, #SetImage, 0, 0, 0, 0, 0, @"\\xb\\xxx\\xtogbpt.bmp")
  651.   XuiSendMessage (g, #SetImageCoords, 0, 0, 32, 32, 0, 0)
  652.   XuiPushButton (@g, #Create, 432, 96, 32, 32, r0, grid)
  653.   XuiSendMessage (g, #SetCallback, grid, &XitMain(), -1, -1, $HotClearBreakpoints, grid)
  654.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"HotClearBreakpoints")
  655.   XuiSendMessage (g, #SetBorder, $$BorderRaise1, $$BorderRaise1, 0, -1, 0, 0)
  656.   XuiSendMessage (g, #SetImage, 0, 0, 0, 0, 0, @"\\xb\\xxx\\xclrbpts.bmp")
  657.   XuiSendMessage (g, #SetImageCoords, 0, 0, 32, 32, 0, 0)
  658.   XuiPushButton (@g, #Create, 468, 96, 32, 32, r0, grid)
  659.   XuiSendMessage (g, #SetCallback, grid, &XitMain(), -1, -1, $HotGui, grid)
  660.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"HotGui")
  661.   XuiSendMessage (g, #SetBorder, $$BorderRaise1, $$BorderRaise1, 0, -1, 0, 0)
  662.   XuiSendMessage (g, #SetImage, 0, 0, 0, 0, 0, @"\\xb\\xxx\\xtoolkit.bmp")
  663.   XuiSendMessage (g, #SetImageCoords, 0, 0, 32, 32, 0, 0)
  664.   XuiPushButton (@g, #Create, 568, 96, 32, 32, r0, grid)
  665.   XuiSendMessage (g, #SetCallback, grid, &XitMain(), -1, -1, $HotAbort, grid)
  666.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"HotAbort")
  667.   XuiSendMessage (g, #SetBorder, $$BorderRaise1, $$BorderRaise1, 0, -1, 0, 0)
  668.   XuiSendMessage (g, #SetImage, 0, 0, 0, 0, 0, @"\\xb\\xxx\\xabort.bmp")
  669.   XuiSendMessage (g, #SetImageCoords, 0, 0, 32, 32, 0, 0)
  670.   XuiTextArea   (@g, #Create, 0, 128, 600, 72, r0, grid)
  671.   XuiSendMessage (g, #SetCallback, grid, &XitMain(), -1, -1, $TextLower, grid)
  672.   XuiSendMessage (g, #SetGridName, 0, 0, 0, 0, 0, @"TextLower")
  673.   GOSUB Resize
  674. END SUB
  675. '
  676. '
  677. ' *****  CreateWindow  *****  v0123 = xywh : r0 = windowType : r1$ = display$
  678. '
  679. SUB CreateWindow
  680.   IF (v0  = 0) THEN v0 = designX
  681.   IF (v1  = 0) THEN v1 = designY
  682.   IF (v2 <= 0) THEN v2 = designWidth
  683.   IF (v3 <= 0) THEN v3 = designHeight
  684.   XuiWindow (@window, #WindowCreate, v0, v1, v2, v3, r0, @r1$)
  685.   v0 = 0 : v1 = 0 : r0 = window : ATTACH r1$ TO display$
  686.   GOSUB Create
  687.     r1 = 0 : ATTACH display$ TO r1$
  688.   XuiWindow (window, #WindowRegister, grid, -1, v2, v3, @r0, @"XitMain")
  689. END SUB
  690. '
  691. '
  692. ' *****  GetSmallestSize  *****
  693. '
  694. SUB GetSmallestSize
  695.     XuiSendToKid (grid, #GetSmallestSize, @w, @h, @ww, @hh, $MenuBar, 0)
  696.     v2 = ww + 132
  697.     v3 = designHeight
  698.     IF (v2 < designWidth) THEN v2 = designWidth
  699. END SUB
  700. '
  701. '
  702. ' *****  Resize  *****
  703. '
  704. SUB Resize
  705.     vv0 = v0
  706.     vv1 = v1
  707.     vv2 = v2
  708.     vv3 = v3
  709.     GOSUB GetSmallestSize                        ' get minWidth and minHeight in v2,v3
  710.     v0 = vv0                                                ' recover v0
  711.     v1 = vv1                                                ' recover v1
  712.     IF (v2 < vv2) THEN v2 = vv2            ' requested width greater than minWidth
  713.     IF (v3 < vv3) THEN v3 = vv3            ' requested height greater then minHeight
  714. '
  715.     width = v2
  716.     height = v3
  717. '
  718.     lx = width - 132
  719.     ax = width - 32
  720.     tw = width
  721.     th = height - 128
  722.     XuiPositionGrid (grid, @v0, @v1, @v2, @v3)
  723.     XuiSendMessage (grid, #Resize,   0,   0,  lx,  24, $MenuBar,             0)
  724.     XuiSendMessage (grid, #Resize,  lx,   0, 132,  24, $FileLabel,           0)
  725.     XuiSendMessage (grid, #Resize,   0,  24,  lx,  72, $TextUpper,           0)
  726.     XuiSendMessage (grid, #Resize,  lx,  24, 132,  24, $FunctionLabel,       0)
  727.     XuiSendMessage (grid, #Resize,  lx,  48, 132,  24, $StatusLabel,         0)
  728.     XuiSendMessage (grid, #Resize,  lx,  72, 132,  24, $ErrorLabel,          0)
  729.     XuiSendMessage (grid, #Resize,   0,  96,  32,  32, $HotStart,            0)
  730.     XuiSendMessage (grid, #Resize,  32,  96,  32,  32, $HotContinue,         0)
  731.     XuiSendMessage (grid, #Resize,  64,  96,  32,  32, $HotPause,            0)
  732.     XuiSendMessage (grid, #Resize,  96,  96,  32,  32, $HotKill,             0)
  733.     XuiSendMessage (grid, #Resize, 132,  96,  32,  32, $HotToCursor,         0)
  734.     XuiSendMessage (grid, #Resize, 164,  96,  32,  32, $HotStepLocal,        0)
  735.     XuiSendMessage (grid, #Resize, 196,  96,  32,  32, $HotStepGlobal,       0)
  736.     XuiSendMessage (grid, #Resize, 232,  96,  32,  32, $HotVariables,        0)
  737.     XuiSendMessage (grid, #Resize, 264,  96,  32,  32, $HotFrames,           0)
  738.     XuiSendMessage (grid, #Resize, 296,  96,  32,  32, $HotAssembly,         0)
  739.     XuiSendMessage (grid, #Resize, 332,  96,  32,  32, $HotFind,             0)
  740.     XuiSendMessage (grid, #Resize, 364,  96,  32,  32, $HotReplace,          0)
  741.     XuiSendMessage (grid, #Resize, 400,  96,  32,  32, $HotToggleBreakpoint, 0)
  742.     XuiSendMessage (grid, #Resize, 432,  96,  32,  32, $HotClearBreakpoints, 0)
  743.     XuiSendMessage (grid, #Resize, 468,  96,  32,  32, $HotGui,              0)
  744.     XuiSendMessage (grid, #Resize,  ax,  96,  32,  32, $HotAbort,            0)
  745.     XuiSendMessage (grid, #Resize,   0, 128,  tw,  th, $TextLower,           0)
  746.     XuiResizeWindowToGrid (grid, #ResizeWindowToGrid, 0, 0, 0, 0, 0, 0)
  747. END SUB
  748. '
  749. '
  750. ' *****  Initialize  *****
  751. '
  752. SUB Initialize
  753.   XuiGetDefaultMessageFuncArray (@func[])
  754.   XgrMessageNameToNumber (@"LastMessage", @upperMessage)
  755. '
  756.     func[#Callback]                        = &XuiCallback()
  757.     func[#GetSmallestSize]        = 0
  758.     func[#GotKeyboardFocus]        = &XuiGotKeyboardFocus()
  759.     func[#LostKeyboardFocus]    = &XuiLostKeyboardFocus()
  760.     func[#Resize]                            = 0
  761.     func[#SetKeyboardFocus]        = &XuiSetKeyboardFocus()
  762. '
  763.     DIM sub[upperMessage]
  764.     sub[#Create]                            = SUBADDRESS (Create)
  765.     sub[#CreateWindow]                = SUBADDRESS (CreateWindow)
  766.     sub[#GetSmallestSize]            = SUBADDRESS (GetSmallestSize)
  767.     sub[#Resize]                            = SUBADDRESS (Resize)
  768. '
  769.   IF sub[0] THEN PRINT "First(): Initialize: Error::: (Undefined Message)"
  770.   IF func[0] THEN PRINT "First(): Initialize: Error::: (Undefined Message)"
  771.     XuiRegisterGridType (@XitMain, @"XitMain", &XitMain(), @func[], @sub[])
  772. '
  773.   designX = 420
  774.   designY = 564
  775.   designWidth = 600
  776.   designHeight = 200
  777. '
  778.   gridType = XitMain
  779.   XuiSetGridTypeValue (gridType, @"x",                designX)
  780.   XuiSetGridTypeValue (gridType, @"y",                designY)
  781.   XuiSetGridTypeValue (gridType, @"width",            designWidth)
  782.   XuiSetGridTypeValue (gridType, @"height",           designHeight)
  783.   XuiSetGridTypeValue (gridType, @"border",           $$BorderFrame)
  784.   XuiSetGridTypeValue (gridType, @"can",              $$Focus OR $$Respond OR $$Callback OR $$InputTextArray)
  785.   XuiSetGridTypeValue (gridType, @"focusKid",         $TextLower)
  786.   XuiSetGridTypeValue (gridType, @"inputTextArray",   $TextLower)
  787.   IFZ message THEN RETURN
  788. END SUB
  789. END FUNCTION
  790. '
  791. '
  792. ' ############################
  793. ' #####  XitMainCode ()  #####
  794. ' ############################
  795. '
  796. FUNCTION  XitMainCode (grid, message, v0, v1, v2, v3, kid, r1)
  797. '
  798.   $XitMain              =  0  ' kid  0 grid type = XitMain
  799.   $MenuBar              =  1  ' kid  1 grid type = XuiMenu
  800.   $FileLabel            =  2  ' kid  2 grid type = XuiLabel
  801.   $TextUpper            =  3  ' kid  3 grid type = XuiTextArea
  802.   $FunctionLabel        =  4  ' kid  4 grid type = XuiLabel
  803.   $StatusLabel          =  5  ' kid  5 grid type = XuiLabel
  804.   $ErrorLabel           =  6  ' kid  6 grid type = XuiLabel
  805.   $HotStart             =  7  ' kid  7 grid type = XuiPushButton
  806.   $HotContinue          =  8  ' kid  8 grid type = XuiPushButton
  807.   $HotPause             =  9  ' kid  9 grid type = XuiPushButton
  808.   $HotKill              = 10  ' kid 10 grid type = XuiPushButton
  809.   $HotToCursor          = 11  ' kid 11 grid type = XuiPushButton
  810.   $HotStepLocal         = 12  ' kid 12 grid type = XuiPushButton
  811.   $HotStepGlobal        = 13  ' kid 13 grid type = XuiPushButton
  812.   $HotVariables         = 14  ' kid 14 grid type = XuiPushButton
  813.   $HotFrames            = 15  ' kid 15 grid type = XuiPushButton
  814.   $HotAssembly          = 16  ' kid 16 grid type = XuiPushButton
  815.   $HotFind              = 17  ' kid 17 grid type = XuiPushButton
  816.   $HotReplace           = 18  ' kid 18 grid type = XuiPushButton
  817.   $HotToggleBreakpoint  = 19  ' kid 19 grid type = XuiPushButton
  818.   $HotClearBreakpoints  = 20  ' kid 20 grid type = XuiPushButton
  819.   $HotGui               = 21  ' kid 21 grid type = XuiPushButton
  820.   $HotAbort             = 22  ' kid 22 grid type = XuiPushButton
  821.   $TextLower            = 23  ' kid 23 grid type = XuiTextArea
  822.   $UpperKid             = 23  ' kid maximum
  823. '
  824. '    XuiReportMessage (grid, message, v0, v1, v2, v3, kid, r1)
  825.   IF (message = #Callback) THEN message = r1
  826. '
  827.   SELECT CASE message
  828.     CASE #Selection        : GOSUB Selection   ' Common callback message
  829.     CASE #TextEvent        : GOSUB TextEvent   ' KeyDown in TextArea or TextLine
  830.         CASE #CloseWindow    : QUIT (0)
  831.   END SELECT
  832.   RETURN
  833. '
  834. '
  835. ' *****  Selection  *****
  836. '
  837. SUB Selection
  838.   SELECT CASE  kid
  839.     CASE $XitMain              :    XuiMessage (@"XitMain")
  840.     CASE $MenuBar              :    GOSUB MainMenu
  841.     CASE $FileLabel            :    XuiMessage (@"FileLabel")
  842.     CASE $TextUpper            :    XuiMessage (@"TextUpper")
  843.     CASE $FunctionLabel        :    XuiMessage (@"FunctionLabel")
  844.     CASE $StatusLabel          :    XuiMessage (@"StatusLabel")
  845.     CASE $ErrorLabel           :    XuiMessage (@"ErrorLabel")
  846.     CASE $HotStart             :    XuiMessage (@"HotStart")
  847.     CASE $HotContinue          :    XuiMessage (@"HotContinue")
  848.     CASE $HotPause             :    XuiMessage (@"HotPause")
  849.     CASE $HotKill              :    XuiMessage (@"HotKill")
  850.     CASE $HotToCursor          :    XuiMessage (@"HotToCursor")
  851.     CASE $HotStepLocal         :    XuiMessage (@"HotStepLocal")
  852.     CASE $HotStepGlobal        :    XuiMessage (@"HotStepGlobal")
  853.     CASE $HotVariables         :    XuiMessage (@"HotVariables")
  854.     CASE $HotFrames            :    XuiMessage (@"HotFrames")
  855.     CASE $HotAssembly          :    XuiMessage (@"HotAssembly")
  856.     CASE $HotFind              :    XuiMessage (@"HotFind")
  857.     CASE $HotReplace           :    XuiMessage (@"HotReplace")
  858.     CASE $HotToggleBreakpoint  :    XuiMessage (@"HotToggleBreakpoint")
  859.     CASE $HotClearBreakpoints  :    XuiMessage (@"HotClearBreakpoints")
  860.     CASE $HotGui               :    XuiMessage (@"HotToolkit")
  861.     CASE $HotAbort             :    QUIT (0)
  862.     CASE $TextLower            :    XuiMessage (@"TextLower")
  863.   END SELECT
  864. END SUB
  865. '
  866. '
  867. ' *****  MainMenu  *****
  868. '
  869. SUB MainMenu
  870.     XuiSendMessage (grid, #GetTextArray, 0, 0, 0, 0, kid, @text$[])
  871.     upper = UBOUND (text$[])
  872.     pulldown = 0
  873.     menu = 0
  874.     FOR i = 0 TO upper
  875.         menu$ = text$[i]
  876.         m$ = LTRIM$(menu$)
  877.         IF (m$ = menu$) THEN
  878.             INC menu
  879.             IF (menu = v0) THEN
  880.                 found = $$TRUE
  881.                 EXIT FOR
  882.             END IF
  883.         END IF
  884.     NEXT i
  885.     IF found THEN
  886.         menu$ = TRIM$ (menu$)
  887.         entry$ = TRIM$ (text$[i+v1+1])
  888.         XuiMessage ( "XuiMenu\n\nv0 = " + STRING$(v0) + " = \"" + menu$ + "\"\nv1 = " + STRING$(v1) + " = \"" + entry$ + "\"")
  889.     END IF
  890. END SUB
  891. '
  892. '
  893. ' *****  TextEvent  *****
  894. '
  895. SUB TextEvent
  896.     key = v2 AND 0x00FF
  897.     IF ((key >= '0') AND (key <= '9')) THEN kid = -1        ' kill keystroke
  898.     PRINT "XitMainCode(): TextEvent: Key = "; CHR$(key)
  899.     IF (kid = -1) THEN PRINT "*****  Keystroke Suppressed  *****"
  900. END SUB
  901. END FUNCTION
  902. END PROGRAM
  903.