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 >
Wrap
Text File
|
1995-07-22
|
42KB
|
1,040 lines
'
' ####################
' ##### PROLOG #####
' ####################
'
PROGRAM "warning"
VERSION "0.0007"
'
IMPORT "xst"
IMPORT "xui"
IMPORT "xgr"
'
EXPORT
DECLARE FUNCTION Entry ()
DECLARE FUNCTION Blowback ()
END EXPORT
INTERNAL FUNCTION InitGui ()
INTERNAL FUNCTION InitProgram ()
INTERNAL FUNCTION CreateWindows ()
EXPORT
DECLARE FUNCTION XuiWarning1B (grid, message, v0, v1, v2, v3, kid, ANY)
DECLARE FUNCTION XuiWarning2B (grid, message, v0, v1, v2, v3, kid, ANY)
DECLARE FUNCTION XuiWarning3B (grid, message, v0, v1, v2, v3, kid, ANY)
DECLARE FUNCTION XuiWarning4B (grid, message, v0, v1, v2, v3, kid, ANY)
END EXPORT
'
'
' ######################
' ##### Entry () #####
' ######################
'
FUNCTION Entry ()
SHARED terminateProgram
STATIC entry
'
IF entry THEN RETURN
entry = $$TRUE
'
Xui () ' initialize GuiDesigner
InitGui () ' initialize messages
InitProgram () ' initialize this program
CreateWindows () ' create main window and others
IF LIBRARY(0) THEN RETURN ' Return to main program message loop
'
DO ' the message loop
XgrProcessMessages (1) ' process one message
LOOP UNTIL terminateProgram ' and repeat until program is terminated
END FUNCTION
'
'
' #########################
' ##### Blowback () #####
' #########################
'
FUNCTION Blowback ()
' PRINT "warning.x:Blowback()"
END FUNCTION
'
'
' ########################
' ##### InitGui () #####
' ########################
'
' InitGui() initializes cursor, icon, message, and display variables.
' Programs can reference these variables, but must never change them.
'
FUNCTION InitGui ()
'
' ***************************************
' ***** Register Standard Cursors *****
' ***************************************
'
XgrRegisterCursor (@"default", @#cursorDefault)
XgrRegisterCursor (@"arrow", @#cursorArrow)
XgrRegisterCursor (@"n", @#cursorN)
XgrRegisterCursor (@"s", @#cursorS)
XgrRegisterCursor (@"e", @#cursorE)
XgrRegisterCursor (@"w", @#cursorW)
XgrRegisterCursor (@"ns", @#cursorArrowsNS)
XgrRegisterCursor (@"ns", @#cursorArrowsSN)
XgrRegisterCursor (@"ew", @#cursorArrowsEW)
XgrRegisterCursor (@"ew", @#cursorArrowsWE)
XgrRegisterCursor (@"nwse", @#cursorArrowsNWSE)
XgrRegisterCursor (@"nesw", @#cursorArrowsNESW)
XgrRegisterCursor (@"all", @#cursorArrowsAll)
XgrRegisterCursor (@"plus", @#cursorPlus)
XgrRegisterCursor (@"wait", @#cursorWait)
XgrRegisterCursor (@"insert", @#cursorInsert)
XgrRegisterCursor (@"crosshair", @#cursorCrosshair)
XgrRegisterCursor (@"hourglass", @#cursorHourglass)
'
#defaultCursor = #cursorDefault
'
'
' ********************************************
' ***** Register Standard Window Icons *****
' ********************************************
'
XgrRegisterIcon (@"hand", @#iconHand)
XgrRegisterIcon (@"asterisk", @#iconAsterisk)
XgrRegisterIcon (@"question", @#iconQuestion)
XgrRegisterIcon (@"exclamation", @#iconExclamation)
XgrRegisterIcon (@"application", @#iconApplication)
'
XgrRegisterIcon (@"hand", @#iconStop) ' alias
XgrRegisterIcon (@"asterisk", @#iconInformation) ' alias
XgrRegisterIcon (@"application", @#iconBlank) ' alias
'
XgrRegisterIcon (@"window", @#iconWindow) ' custom
'
'
' ******************************
' ***** Register Messages ***** Create message numbers for message names
' ******************************
'
XgrRegisterMessage (@"Callback", @#Callback)
XgrRegisterMessage (@"Cancel", @#Cancel)
XgrRegisterMessage (@"Change", @#Change)
XgrRegisterMessage (@"CloseWindow", @#CloseWindow)
XgrRegisterMessage (@"ContextChange", @#ContextChange)
XgrRegisterMessage (@"Create", @#Create)
XgrRegisterMessage (@"CreateValueArray", @#CreateValueArray)
XgrRegisterMessage (@"CreateWindow", @#CreateWindow)
XgrRegisterMessage (@"CursorH", @#CursorH)
XgrRegisterMessage (@"CursorV", @#CursorV)
XgrRegisterMessage (@"Deselected", @#Deselected)
XgrRegisterMessage (@"Destroy", @#Destroy)
XgrRegisterMessage (@"Destroyed", @#Destroyed)
XgrRegisterMessage (@"DestroyWindow", @#DestroyWindow)
XgrRegisterMessage (@"Disable", @#Disable)
XgrRegisterMessage (@"Disabled", @#Disabled)
XgrRegisterMessage (@"Displayed", @#Displayed)
XgrRegisterMessage (@"DisplayWindow", @#DisplayWindow)
XgrRegisterMessage (@"Enable", @#Enable)
XgrRegisterMessage (@"Enabled", @#Enabled)
XgrRegisterMessage (@"Enter", @#Enter)
XgrRegisterMessage (@"ExitMessageLoop", @#ExitMessageLoop)
XgrRegisterMessage (@"Find", @#Find)
XgrRegisterMessage (@"FindForward", @#FindForward)
XgrRegisterMessage (@"FindReverse", @#FindReverse)
XgrRegisterMessage (@"Forward", @#Forward)
XgrRegisterMessage (@"GetAlign", @#GetAlign)
XgrRegisterMessage (@"GetBorder", @#GetBorder)
XgrRegisterMessage (@"GetBorderOffset", @#GetBorderOffset)
XgrRegisterMessage (@"GetCallback", @#GetCallback)
XgrRegisterMessage (@"GetCallbackArgs", @#GetCallbackArgs)
XgrRegisterMessage (@"GetCan", @#GetCan)
XgrRegisterMessage (@"GetClipGrid", @#GetClipGrid)
XgrRegisterMessage (@"GetColor", @#GetColor)
XgrRegisterMessage (@"GetColorExtra", @#GetColorExtra)
XgrRegisterMessage (@"GetCursor", @#GetCursor)
XgrRegisterMessage (@"GetCursorXY", @#GetCursorXY)
XgrRegisterMessage (@"GetDisplay", @#GetDisplay)
XgrRegisterMessage (@"GetEnclosedGrids", @#GetEnclosedGrids)
XgrRegisterMessage (@"GetEnclosingGrid", @#GetEnclosingGrid)
XgrRegisterMessage (@"GetFont", @#GetFont)
XgrRegisterMessage (@"GetFontNumber", @#GetFontNumber)
XgrRegisterMessage (@"GetGridFunction", @#GetGridFunction)
XgrRegisterMessage (@"GetGridFunctionName", @#GetGridFunctionName)
XgrRegisterMessage (@"GetGridName", @#GetGridName)
XgrRegisterMessage (@"GetGridNumber", @#GetGridNumber)
XgrRegisterMessage (@"GetGridType", @#GetGridType)
XgrRegisterMessage (@"GetGridTypeName", @#GetGridTypeName)
XgrRegisterMessage (@"GetGroup", @#GetGroup)
XgrRegisterMessage (@"GetHelp", @#GetHelp)
XgrRegisterMessage (@"GetHelpFile", @#GetHelpFile)
XgrRegisterMessage (@"GetHelpString", @#GetHelpString)
XgrRegisterMessage (@"GetHelpStrings", @#GetHelpStrings)
XgrRegisterMessage (@"GetHintString", @#GetHintString)
XgrRegisterMessage (@"GetImage", @#GetImage)
XgrRegisterMessage (@"GetImageCoords", @#GetImageCoords)
XgrRegisterMessage (@"GetIndent", @#GetIndent)
XgrRegisterMessage (@"GetInfo", @#GetInfo)
XgrRegisterMessage (@"GetJustify", @#GetJustify)
XgrRegisterMessage (@"GetKeyboardFocus", @#GetKeyboardFocus)
XgrRegisterMessage (@"GetKeyboardFocusGrid", @#GetKeyboardFocusGrid)
XgrRegisterMessage (@"GetKidNumber", @#GetKidNumber)
XgrRegisterMessage (@"GetKids", @#GetKids)
XgrRegisterMessage (@"GetKidArray", @#GetKidArray)
XgrRegisterMessage (@"GetKind", @#GetKind)
XgrRegisterMessage (@"GetMaxMinSize", @#GetMaxMinSize)
XgrRegisterMessage (@"GetMessageFunc", @#GetMessageFunc)
XgrRegisterMessage (@"GetMessageFuncArray", @#GetMessageFuncArray)
XgrRegisterMessage (@"GetMessageSub", @#GetMessageSub)
XgrRegisterMessage (@"GetMessageSubArray", @#GetMessageSubArray)
XgrRegisterMessage (@"GetModalInfo", @#GetModalInfo)
XgrRegisterMessage (@"GetModalWindow", @#GetModalWindow)
XgrRegisterMessage (@"GetParent", @#GetParent)
XgrRegisterMessage (@"GetPosition", @#GetPosition)
XgrRegisterMessage (@"GetProtoInfo", @#GetProtoInfo)
XgrRegisterMessage (@"GetRedrawFlags", @#GetRedrawFlags)
XgrRegisterMessage (@"GetSize", @#GetSize)
XgrRegisterMessage (@"GetSmallestSize", @#GetSmallestSize)
XgrRegisterMessage (@"GetState", @#GetState)
XgrRegisterMessage (@"GetStyle", @#GetStyle)
XgrRegisterMessage (@"GetTabArray", @#GetTabArray)
XgrRegisterMessage (@"GetTabWidth", @#GetTabWidth)
XgrRegisterMessage (@"GetTextArray", @#GetTextArray)
XgrRegisterMessage (@"GetTextArrayBounds", @#GetTextArrayBounds)
XgrRegisterMessage (@"GetTextArrayLine", @#GetTextArrayLine)
XgrRegisterMessage (@"GetTextArrayLines", @#GetTextArrayLines)
XgrRegisterMessage (@"GetTextCursor", @#GetTextCursor)
XgrRegisterMessage (@"GetTextPosition", @#GetTextPosition)
XgrRegisterMessage (@"GetTextSelection", @#GetTextSelection)
XgrRegisterMessage (@"GetTextString", @#GetTextString)
XgrRegisterMessage (@"GetTextStrings", @#GetTextStrings)
XgrRegisterMessage (@"GetTexture", @#GetTexture)
XgrRegisterMessage (@"GetTimer", @#GetTimer)
XgrRegisterMessage (@"GetValue", @#GetValue)
XgrRegisterMessage (@"GetValues", @#GetValues)
XgrRegisterMessage (@"GetValueArray", @#GetValueArray)
XgrRegisterMessage (@"GetWindow", @#GetWindow)
XgrRegisterMessage (@"GetWindowFunction", @#GetWindowFunction)
XgrRegisterMessage (@"GetWindowGrid", @#GetWindowGrid)
XgrRegisterMessage (@"GetWindowIcon", @#GetWindowIcon)
XgrRegisterMessage (@"GetWindowSize", @#GetWindowSize)
XgrRegisterMessage (@"GetWindowTitle", @#GetWindowTitle)
XgrRegisterMessage (@"GotKeyboardFocus", @#GotKeyboardFocus)
XgrRegisterMessage (@"GrabArray", @#GrabArray)
XgrRegisterMessage (@"GrabTextArray", @#GrabTextArray)
XgrRegisterMessage (@"GrabTextString", @#GrabTextString)
XgrRegisterMessage (@"GrabValueArray", @#GrabValueArray)
XgrRegisterMessage (@"Help", @#Help)
XgrRegisterMessage (@"Hidden", @#Hidden)
XgrRegisterMessage (@"HideTextCursor", @#HideTextCursor)
XgrRegisterMessage (@"HideWindow", @#HideWindow)
XgrRegisterMessage (@"Initialize", @#Initialize)
XgrRegisterMessage (@"Initialized", @#Initialized)
XgrRegisterMessage (@"Inline", @#Inline)
XgrRegisterMessage (@"InquireText", @#InquireText)
XgrRegisterMessage (@"KeyboardFocusBackward", @#KeyboardFocusBackward)
XgrRegisterMessage (@"KeyboardFocusForward", @#KeyboardFocusForward)
XgrRegisterMessage (@"KeyDown", @#KeyDown)
XgrRegisterMessage (@"KeyUp", @#KeyUp)
XgrRegisterMessage (@"LostKeyboardFocus", @#LostKeyboardFocus)
XgrRegisterMessage (@"LostTextSelection", @#LostTextSelection)
XgrRegisterMessage (@"Maximized", @#Maximized)
XgrRegisterMessage (@"MaximizeWindow", @#MaximizeWindow)
XgrRegisterMessage (@"Maximum", @#Maximum)
XgrRegisterMessage (@"Minimized", @#Minimized)
XgrRegisterMessage (@"MinimizeWindow", @#MinimizeWindow)
XgrRegisterMessage (@"Minimum", @#Minimum)
XgrRegisterMessage (@"MonitorContext", @#MonitorContext)
XgrRegisterMessage (@"MonitorHelp", @#MonitorHelp)
XgrRegisterMessage (@"MonitorKeyboard", @#MonitorKeyboard)
XgrRegisterMessage (@"MonitorMouse", @#MonitorMouse)
XgrRegisterMessage (@"MouseDown", @#MouseDown)
XgrRegisterMessage (@"MouseDrag", @#MouseDrag)
XgrRegisterMessage (@"MouseEnter", @#MouseEnter)
XgrRegisterMessage (@"MouseExit", @#MouseExit)
XgrRegisterMessage (@"MouseMove", @#MouseMove)
XgrRegisterMessage (@"MouseUp", @#MouseUp)
XgrRegisterMessage (@"MuchLess", @#MuchLess)
XgrRegisterMessage (@"MuchMore", @#MuchMore)
XgrRegisterMessage (@"OneLess", @#OneLess)
XgrRegisterMessage (@"OneMore", @#OneMore)
XgrRegisterMessage (@"PokeArray", @#PokeArray)
XgrRegisterMessage (@"PokeTextArray", @#PokeTextArray)
XgrRegisterMessage (@"PokeTextString", @#PokeTextString)
XgrRegisterMessage (@"PokeValueArray", @#PokeValueArray)
XgrRegisterMessage (@"Print", @#Print)
XgrRegisterMessage (@"Redraw", @#Redraw)
XgrRegisterMessage (@"RedrawGrid", @#RedrawGrid)
XgrRegisterMessage (@"RedrawLines", @#RedrawLines)
XgrRegisterMessage (@"RedrawText", @#RedrawText)
XgrRegisterMessage (@"RedrawWindow", @#RedrawWindow)
XgrRegisterMessage (@"Replace", @#Replace)
XgrRegisterMessage (@"ReplaceForward", @#ReplaceForward)
XgrRegisterMessage (@"ReplaceReverse", @#ReplaceReverse)
XgrRegisterMessage (@"Reset", @#Reset)
XgrRegisterMessage (@"Resize", @#Resize)
XgrRegisterMessage (@"Resized", @#Resized)
XgrRegisterMessage (@"ResizeNot", @#ResizeNot)
XgrRegisterMessage (@"ResizeWindow", @#ResizeWindow)
XgrRegisterMessage (@"ResizeWindowToGrid", @#ResizeWindowToGrid)
XgrRegisterMessage (@"Resized", @#Resized)
XgrRegisterMessage (@"Reverse", @#Reverse)
XgrRegisterMessage (@"ScrollH", @#ScrollH)
XgrRegisterMessage (@"ScrollV", @#ScrollV)
XgrRegisterMessage (@"Selected", @#Selected)
XgrRegisterMessage (@"SelectWindow", @#SelectWindow)
XgrRegisterMessage (@"Selection", @#Selection)
XgrRegisterMessage (@"SetAlign", @#SetAlign)
XgrRegisterMessage (@"SetBorder", @#SetBorder)
XgrRegisterMessage (@"SetBorderOffset", @#SetBorderOffset)
XgrRegisterMessage (@"SetCallback", @#SetCallback)
XgrRegisterMessage (@"SetCan", @#SetCan)
XgrRegisterMessage (@"SetClipGrid", @#SetClipGrid)
XgrRegisterMessage (@"SetColor", @#SetColor)
XgrRegisterMessage (@"SetColorExtra", @#SetColorExtra)
XgrRegisterMessage (@"SetCursor", @#SetCursor)
XgrRegisterMessage (@"SetCursorXY", @#SetCursorXY)
XgrRegisterMessage (@"SetDisplay", @#SetDisplay)
XgrRegisterMessage (@"SetFont", @#SetFont)
XgrRegisterMessage (@"SetFontNumber", @#SetFontNumber)
XgrRegisterMessage (@"SetGridFunction", @#SetGridFunction)
XgrRegisterMessage (@"SetGridFunctionName", @#SetGridFunctionName)
XgrRegisterMessage (@"SetGridName", @#SetGridName)
XgrRegisterMessage (@"SetGridType", @#SetGridType)
XgrRegisterMessage (@"SetGridTypeName", @#SetGridTypeName)
XgrRegisterMessage (@"SetGroup", @#SetGroup)
XgrRegisterMessage (@"SetHelp", @#SetHelp)
XgrRegisterMessage (@"SetHelpFile", @#SetHelpFile)
XgrRegisterMessage (@"SetHelpString", @#SetHelpString)
XgrRegisterMessage (@"SetHelpStrings", @#SetHelpStrings)
XgrRegisterMessage (@"SetHintString", @#SetHintString)
XgrRegisterMessage (@"SetImage", @#SetImage)
XgrRegisterMessage (@"SetImageCoords", @#SetImageCoords)
XgrRegisterMessage (@"SetIndent", @#SetIndent)
XgrRegisterMessage (@"SetInfo", @#SetInfo)
XgrRegisterMessage (@"SetJustify", @#SetJustify)
XgrRegisterMessage (@"SetKeyboardFocus", @#SetKeyboardFocus)
XgrRegisterMessage (@"SetKeyboardFocusGrid", @#SetKeyboardFocusGrid)
XgrRegisterMessage (@"SetMaxMinSize", @#SetMaxMinSize)
XgrRegisterMessage (@"SetMessageFunc", @#SetMessageFunc)
XgrRegisterMessage (@"SetMessageFuncArray", @#SetMessageFuncArray)
XgrRegisterMessage (@"SetMessageSub", @#SetMessageSub)
XgrRegisterMessage (@"SetMessageSubArray", @#SetMessageSubArray)
XgrRegisterMessage (@"SetModalWindow", @#SetModalWindow)
XgrRegisterMessage (@"SetParent", @#SetParent)
XgrRegisterMessage (@"SetPosition", @#SetPosition)
XgrRegisterMessage (@"SetRedrawFlags", @#SetRedrawFlags)
XgrRegisterMessage (@"SetSize", @#SetSize)
XgrRegisterMessage (@"SetState", @#SetState)
XgrRegisterMessage (@"SetStyle", @#SetStyle)
XgrRegisterMessage (@"SetTabArray", @#SetTabArray)
XgrRegisterMessage (@"SetTabWidth", @#SetTabWidth)
XgrRegisterMessage (@"SetTextArray", @#SetTextArray)
XgrRegisterMessage (@"SetTextArrayLine", @#SetTextArrayLine)
XgrRegisterMessage (@"SetTextArrayLines", @#SetTextArrayLines)
XgrRegisterMessage (@"SetTextCursor", @#SetTextCursor)
XgrRegisterMessage (@"SetTextSelection", @#SetTextSelection)
XgrRegisterMessage (@"SetTextString", @#SetTextString)
XgrRegisterMessage (@"SetTextStrings", @#SetTextStrings)
XgrRegisterMessage (@"SetTexture", @#SetTexture)
XgrRegisterMessage (@"SetTimer", @#SetTimer)
XgrRegisterMessage (@"SetValue", @#SetValue)
XgrRegisterMessage (@"SetValues", @#SetValues)
XgrRegisterMessage (@"SetValueArray", @#SetValueArray)
XgrRegisterMessage (@"SetWindowFunction", @#SetWindowFunction)
XgrRegisterMessage (@"SetWindowIcon", @#SetWindowIcon)
XgrRegisterMessage (@"SetWindowTitle", @#SetWindowTitle)
XgrRegisterMessage (@"ShowTextCursor", @#ShowTextCursor)
XgrRegisterMessage (@"ShowWindow", @#ShowWindow)
XgrRegisterMessage (@"SomeLess", @#SomeLess)
XgrRegisterMessage (@"SomeMore", @#SomeMore)
XgrRegisterMessage (@"StartTimer", @#StartTimer)
XgrRegisterMessage (@"TextDelete", @#TextDelete)
XgrRegisterMessage (@"TextEvent", @#TextEvent)
XgrRegisterMessage (@"TextInsert", @#TextInsert)
XgrRegisterMessage (@"TextModified", @#TextModified)
XgrRegisterMessage (@"TextReplace", @#TextReplace)
XgrRegisterMessage (@"TimeOut", @#TimeOut)
XgrRegisterMessage (@"Update", @#Update)
XgrRegisterMessage (@"WindowCreate", @#WindowCreate)
XgrRegisterMessage (@"WindowDeselected", @#WindowDeselected)
XgrRegisterMessage (@"WindowDestroy", @#WindowDestroy)
XgrRegisterMessage (@"WindowDestroyed", @#WindowDestroyed)
XgrRegisterMessage (@"WindowDisplay", @#WindowDisplay)
XgrRegisterMessage (@"WindowDisplayed", @#WindowDisplayed)
XgrRegisterMessage (@"WindowGetDisplay", @#WindowGetDisplay)
XgrRegisterMessage (@"WindowGetFunction", @#WindowGetFunction)
XgrRegisterMessage (@"WindowGetIcon", @#WindowGetIcon)
XgrRegisterMessage (@"WindowGetKeyboardFocusGrid", @#WindowGetKeyboardFocusGrid)
XgrRegisterMessage (@"WindowGetSelectedWindow", @#WindowGetSelectedWindow)
XgrRegisterMessage (@"WindowGetSize", @#WindowGetSize)
XgrRegisterMessage (@"WindowGetTitle", @#WindowGetTitle)
XgrRegisterMessage (@"WindowClose", @#WindowClose)
XgrRegisterMessage (@"WindowHide", @#WindowHide)
XgrRegisterMessage (@"WindowHidden", @#WindowHidden)
XgrRegisterMessage (@"WindowKeyDown", @#WindowKeyDown)
XgrRegisterMessage (@"WindowKeyUp", @#WindowKeyUp)
XgrRegisterMessage (@"WindowMaximize", @#WindowMaximize)
XgrRegisterMessage (@"WindowMaximized", @#WindowMaximized)
XgrRegisterMessage (@"WindowMinimize", @#WindowMinimize)
XgrRegisterMessage (@"WindowMinimized", @#WindowMinimized)
XgrRegisterMessage (@"WindowMonitorContext", @#WindowMonitorContext)
XgrRegisterMessage (@"WindowMonitorHelp", @#WindowMonitorHelp)
XgrRegisterMessage (@"WindowMonitorKeyboard", @#WindowMonitorKeyboard)
XgrRegisterMessage (@"WindowMonitorMouse", @#WindowMonitorMouse)
XgrRegisterMessage (@"WindowMouseDown", @#WindowMouseDown)
XgrRegisterMessage (@"WindowMouseDrag", @#WindowMouseDrag)
XgrRegisterMessage (@"WindowMouseEnter", @#WindowMouseEnter)
XgrRegisterMessage (@"WindowMouseExit", @#WindowMouseExit)
XgrRegisterMessage (@"WindowMouseMove", @#WindowMouseMove)
XgrRegisterMessage (@"WindowMouseUp", @#WindowMouseUp)
XgrRegisterMessage (@"WindowRedraw", @#WindowRedraw)
XgrRegisterMessage (@"WindowRegister", @#WindowRegister)
XgrRegisterMessage (@"WindowResize", @#WindowResize)
XgrRegisterMessage (@"WindowResized", @#WindowResized)
XgrRegisterMessage (@"WindowResizeToGrid", @#WindowResizeToGrid)
XgrRegisterMessage (@"WindowSelect", @#WindowSelect)
XgrRegisterMessage (@"WindowSelected", @#WindowSelected)
XgrRegisterMessage (@"WindowSetDisplay", @#WindowSetDisplay)
XgrRegisterMessage (@"WindowSetFunction", @#WindowSetFunction)
XgrRegisterMessage (@"WindowSetIcon", @#WindowSetIcon)
XgrRegisterMessage (@"WindowSetKeyboardFocusGrid", @#WindowSetKeyboardFocusGrid)
XgrRegisterMessage (@"WindowSetTitle", @#WindowSetTitle)
XgrRegisterMessage (@"WindowShow", @#WindowShow)
XgrRegisterMessage (@"LastMessage", @#LastMessage)
'
XgrGetDisplaySize ("", @#displayWidth, @#displayHeight, @#windowBorderWidth, @#windowTitleHeight)
END FUNCTION
'
'
' ############################
' ##### InitProgram () #####
' ############################
'
' Add code to InitProgram() to initialize whatever needs initialization.
' Do not delete this function - leave it empty if not needed.
'
FUNCTION InitProgram ()
XuiWarning1B (0, 0, 0, 0, 0, 0, 0, 0)
XuiWarning2B (0, 0, 0, 0, 0, 0, 0, 0)
XuiWarning3B (0, 0, 0, 0, 0, 0, 0, 0)
XuiWarning4B (0, 0, 0, 0, 0, 0, 0, 0)
END FUNCTION
'
'
' ##############################
' ##### CreateWindows () #####
' ##############################
'
' GuiDesigner puts code in CreateWindows() to create, initialize, display
' every window you design graphically. Don't modify this function unless
' absolutely necessary - GuiDesigner needs to read and update it at times.
'
FUNCTION CreateWindows ()
'
IF LIBRARY(0) THEN RETURN
END FUNCTION
'
'
' #############################
' ##### XuiWarning1B () ##### Label and PushButton
' #############################
'
FUNCTION XuiWarning1B (grid, message, v0, v1, v2, v3, r0, (r1, r1$, r1[], r1$[]))
STATIC designX, designY, designWidth, designHeight
STATIC SUBADDR sub[]
STATIC upperMessage
STATIC XuiWarning1B
'
$Warning1B = 0
$Label = 1
$Button0 = 2
'
IFZ sub[] THEN GOSUB Initialize
IF XuiProcessMessage (grid, message, @v0, @v1, @v2, @v3, @r0, @r1, XuiWarning1B) THEN RETURN
GOSUB @sub[message]
RETURN
'
'
' ***** Create ***** v0123 = xywh : r0 = window : r1 = parent
'
SUB Create
IF (v0 <= 0) THEN v0 = 0
IF (v1 <= 0) THEN v1 = 0
IF (v2 <= 0) THEN v2 = designWidth
IF (v3 <= 0) THEN v3 = designHeight
XuiCreateGrid (@grid, XuiWarning1B, @v0, @v1, @v2, @v3, r0, r1, &XuiWarning1B())
XuiLabel (@g, #Create, 0, 0, 0, 0, r0, grid)
XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Label")
XuiPushButton (@g, #Create, 0, 0, 0, 0, r0, grid)
XuiSendMessage ( g, #SetCallback, grid, &XuiWarning1B(), -1, -1, $Button0, grid)
XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"PushButton")
XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Cancel")
GOSUB Resize
END SUB
'
'
' ***** CreateWindow ***** r0 = windowType : r1 = &WindowFunc()
'
SUB CreateWindow
IF (v0 <= 0) THEN v0 = designX
IF (v1 <= 0) THEN v1 = designY
IF (v2 <= 0) THEN v2 = designWidth
IF (v3 <= 0) THEN v3 = designHeight
XuiWindow (@window, #WindowCreate, v0, v1, v2, v3, r0, r1)
v0 = 0 : v1 = 0 : r0 = window : r1 = 0
GOSUB Create
XuiWindow (window, #WindowRegister, grid, -1, v2, v3, @r0, @"XuiWarning1B")
END SUB
'
'
' ***** GetSmallestSize *****
'
SUB GetSmallestSize
XuiGetBorder (grid, #GetBorder, 0, 0, 0, 0, 0, @bw)
'
XuiSendToKid (grid, #GetSmallestSize, @labelWidth, @labelHeight, 0, 0, $Label, 8)
XuiSendToKid (grid, #GetSmallestSize, @width, @height, 0, 0, $Button0, 8)
IF (width > buttonWidth) THEN buttonWidth = width
IF (height > buttonHeight) THEN buttonHeight = height
'
width = buttonWidth
height = labelHeight + buttonHeight
IF (width < labelWidth) THEN width = labelWidth
v2 = width + bw + bw
v3 = height + bw + bw
END SUB
'
'
' ***** Resize ***** This reconfigures window to current text sizes
'
SUB Resize
vv2 = v2
vv3 = v3
GOSUB GetSmallestSize
v2 = MAX (vv2, v2)
v3 = MAX (vv3, v3)
'
XuiPositionGrid (grid, @v0, @v1, @v2, @v3)
IF (v3 >= (labelHeight + buttonHeight + bw + bw + 4)) THEN buttonHeight = buttonHeight + 4
'
labelWidth = v2 - bw - bw
labelHeight = v3 - buttonHeight - bw - bw
buttonWidth = labelWidth
'
x = bw
y = bw
XuiSendToKid (grid, #Resize, x, y, labelWidth, labelHeight, $Label, 0)
'
y = y + labelHeight
XuiSendToKid (grid, #Resize, x, y, buttonWidth, buttonHeight, $Button0, 0)
XuiResizeWindowToGrid (grid, #ResizeWindowToGrid, v0, v1, v2, v3, 0, 0)
END SUB
'
'
' ***** Initialize ****
'
SUB Initialize
XuiGetDefaultMessageFuncArray (@func[])
XgrMessageNameToNumber (@"LastMessage", @upperMessage)
'
func[#Callback] = &XuiCallback()
func[#GetSmallestSize] = 0
func[#Resize] = 0
'
DIM sub[upperMessage]
sub[#Create] = SUBADDRESS (Create)
sub[#CreateWindow] = SUBADDRESS (CreateWindow)
sub[#GetSmallestSize] = SUBADDRESS (GetSmallestSize)
sub[#Resize] = SUBADDRESS (Resize)
'
IF sub[0] THEN PRINT "XuiWarning1B() : Initialize : error::: (undefined message)"
IF func[0] THEN PRINT "XuiWarning1B() : Initialize : error::: (undefined message)"
XuiRegisterGridType (@XuiWarning1B, @"XuiWarning1B", &XuiWarning1B(), @func[], @sub[])
'
designX = 8
designY = 27
designWidth = 80
designHeight = 48
'
gridType = XuiWarning1B
XuiSetGridTypeValue (gridType, @"x", designX)
XuiSetGridTypeValue (gridType, @"y", designY)
XuiSetGridTypeValue (gridType, @"width", designWidth)
XuiSetGridTypeValue (gridType, @"height", designHeight)
XuiSetGridTypeValue (gridType, @"minWidth", 32)
XuiSetGridTypeValue (gridType, @"minHeight", 16)
XuiSetGridTypeValue (gridType, @"border", $$BorderFrame)
XuiSetGridTypeValue (gridType, @"can", $$Focus OR $$Respond OR $$Callback)
XuiSetGridTypeValue (gridType, @"focusKid", $Button0)
XuiSetGridTypeValue (gridType, @"redrawFlags", $$RedrawBorder)
IFZ message THEN RETURN
END SUB
END FUNCTION
'
'
' #############################
' ##### XuiWarning2B () ##### Label and 2 PushButtons
' #############################
'
FUNCTION XuiWarning2B (grid, message, v0, v1, v2, v3, r0, (r1, r1$, r1[], r1$[]))
STATIC designX, designY, designWidth, designHeight
STATIC SUBADDR sub[]
STATIC upperMessage
STATIC XuiWarning2B
'
$Warning2B = 0
$Label = 1
$Button0 = 2
$Button1 = 3
'
IFZ sub[] THEN GOSUB Initialize
IF XuiProcessMessage (grid, message, @v0, @v1, @v2, @v3, @r0, @r1, XuiWarning2B) THEN RETURN
GOSUB @sub[message]
RETURN
'
'
' ***** Create ***** v0123 = xywh : r0 = window : r1 = parent
'
SUB Create
IF (v0 <= 0) THEN v0 = 0
IF (v1 <= 0) THEN v1 = 0
IF (v2 <= 0) THEN v2 = designWidth
IF (v3 <= 0) THEN v3 = designHeight
XuiCreateGrid (@grid, XuiWarning2B, @v0, @v1, @v2, @v3, r0, r1, &XuiWarning2B())
XuiLabel (@g, #Create, 0, 0, 0, 0, r0, grid)
XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Label")
XuiPushButton (@g, #Create, 0, 0, 0, 0, r0, grid)
XuiSendMessage ( g, #SetCallback, grid, &XuiWarning2B(), -1, -1, $Button0, grid)
XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Button0")
XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Enter")
XuiPushButton (@g, #Create, 0, 0, 0, 0, r0, grid)
XuiSendMessage ( g, #SetCallback, grid, &XuiWarning2B(), -1, -1, $Button1, grid)
XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Button1")
XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Cancel")
GOSUB Resize
END SUB
'
'
' ***** CreateWindow ***** r0 = windowType : r1 = &WindowFunc()
'
SUB CreateWindow
IF (v0 <= 0) THEN v0 = designX
IF (v1 <= 0) THEN v1 = designY
IF (v2 <= 0) THEN v2 = designWidth
IF (v3 <= 0) THEN v3 = designHeight
XuiWindow (@window, #WindowCreate, v0, v1, v2, v3, r0, r1)
v0 = 0 : v1 = 0 : r0 = window : r1 = 0
GOSUB Create
XuiWindow (window, #WindowRegister, grid, -1, v2, v3, @r0, @"XuiWarning2B")
END SUB
'
'
' ***** GetSmallestSize *****
'
SUB GetSmallestSize
XuiGetBorder (grid, #GetBorder, 0, 0, 0, 0, 0, @bw)
XuiSendToKid (grid, #GetSmallestSize, @labelWidth, @labelHeight, 0, 0, $Label, 8)
FOR i = $Button0 TO $Button1
XuiSendToKid (grid, #GetSmallestSize, @width, @height, 0, 0, i, 8)
IF (width > buttonWidth) THEN buttonWidth = width
IF (height > buttonHeight) THEN buttonHeight = height
NEXT i
width = buttonWidth + buttonWidth
height = labelHeight + buttonHeight
IF (width < labelWidth) THEN width = labelWidth
v2 = width + bw + bw
v3 = height + bw + bw
END SUB
'
'
' ***** Resize *****
'
SUB Resize
vv2 = v2
vv3 = v3
GOSUB GetSmallestSize
v2 = MAX (vv2, v2)
v3 = MAX (vv3, v3)
'
XuiPositionGrid (grid, @v0, @v1, @v2, @v3)
IF (v3 >= (labelHeight + buttonHeight + bw + bw + 4)) THEN buttonHeight = buttonHeight + 4
'
labelWidth = v2 - bw - bw
labelHeight = v3 - buttonHeight - bw - bw
buttonWidth = labelWidth >> 1
width0 = buttonWidth
width1 = labelWidth - width0
'
x = bw
y = bw
XuiSendToKid (grid, #Resize, x, y, labelWidth, labelHeight, $Label, 0)
'
h = buttonHeight
y = y + labelHeight
XuiSendToKid (grid, #Resize, x, y, width0, h, $Button0, 0) : x = x + width0
XuiSendToKid (grid, #Resize, x, y, width1, h, $Button1, 0)
XuiResizeWindowToGrid (grid, #ResizeWindowToGrid, v0, v1, v2, v3, 0, 0)
END SUB
'
'
' ***** Initialize ****
'
SUB Initialize
XuiGetDefaultMessageFuncArray (@func[])
XgrMessageNameToNumber (@"LastMessage", @upperMessage)
'
func[#Callback] = &XuiCallback()
func[#GetSmallestSize] = 0
func[#Resize] = 0
'
DIM sub[upperMessage]
sub[#Create] = SUBADDRESS (Create)
sub[#CreateWindow] = SUBADDRESS (CreateWindow)
sub[#GetSmallestSize] = SUBADDRESS (GetSmallestSize)
sub[#Resize] = SUBADDRESS (Resize)
'
IF sub[0] THEN PRINT "XuiWarning2B() : Initialize : error::: (undefined message)"
IF func[0] THEN PRINT "XuiWarning2B() : Initialize : error::: (undefined message)"
XuiRegisterGridType (@XuiWarning2B, @"XuiWarning2B", &XuiWarning2B(), @func[], @sub[])
'
designX = 8
designY = 27
designWidth = 160
designHeight = 48
'
gridType = XuiWarning2B
XuiSetGridTypeValue (gridType, @"x", designX)
XuiSetGridTypeValue (gridType, @"y", designY)
XuiSetGridTypeValue (gridType, @"width", designWidth)
XuiSetGridTypeValue (gridType, @"height", designHeight)
XuiSetGridTypeValue (gridType, @"minWidth", 32)
XuiSetGridTypeValue (gridType, @"minHeight", 16)
XuiSetGridTypeValue (gridType, @"border", $$BorderFrame)
XuiSetGridTypeValue (gridType, @"can", $$Focus OR $$Respond OR $$Callback)
XuiSetGridTypeValue (gridType, @"focusKid", $Button0)
XuiSetGridTypeValue (gridType, @"redrawFlags", $$RedrawBorder)
IFZ message THEN RETURN
END SUB
END FUNCTION
'
'
' #############################
' ##### XuiWarning3B () ##### Label and 3 PushButtons
' #############################
'
FUNCTION XuiWarning3B (grid, message, v0, v1, v2, v3, r0, (r1, r1$, r1[], r1$[]))
STATIC designX, designY, designWidth, designHeight
STATIC SUBADDR sub[]
STATIC upperMessage
STATIC XuiWarning3B
'
$Warning3B = 0
$Label = 1
$Button0 = 2
$Button1 = 3
$Button2 = 4
'
IFZ sub[] THEN GOSUB Initialize
IF XuiProcessMessage (grid, message, @v0, @v1, @v2, @v3, @r0, @r1, XuiWarning3B) THEN RETURN
GOSUB @sub[message]
RETURN
'
'
' ***** Create ***** v0123 = xywh : r0 = window : r1 = parent
'
SUB Create
IF (v0 <= 0) THEN v0 = 0
IF (v1 <= 0) THEN v1 = 0
IF (v2 <= 0) THEN v2 = designWidth
IF (v3 <= 0) THEN v3 = designHeight
XuiCreateGrid (@grid, XuiWarning3B, @v0, @v1, @v2, @v3, r0, r1, &XuiWarning3B())
XuiLabel (@g, #Create, 0, 0, 0, 0, r0, grid)
XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Label")
XuiPushButton (@g, #Create, 0, 0, 0, 0, r0, grid)
XuiSendMessage ( g, #SetCallback, grid, &XuiWarning3B(), -1, -1, $Button0, grid)
XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Button0")
XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Enter")
XuiPushButton (@g, #Create, 0, 0, 0, 0, r0, grid)
XuiSendMessage ( g, #SetCallback, grid, &XuiWarning3B(), -1, -1, $Button1, grid)
XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Button1")
XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Option")
XuiPushButton (@g, #Create, 0, 0, 0, 0, r0, grid)
XuiSendMessage ( g, #SetCallback, grid, &XuiWarning3B(), -1, -1, $Button2, grid)
XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Button2")
XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Cancel")
GOSUB Resize
END SUB
'
'
' ***** CreateWindow ***** r0 = windowType : r1 = &WindowFunc()
'
SUB CreateWindow
IF (v0 <= 0) THEN v0 = designX
IF (v1 <= 0) THEN v1 = designY
IF (v2 <= 0) THEN v2 = designWidth
IF (v3 <= 0) THEN v3 = designHeight
XuiWindow (@window, #WindowCreate, v0, v1, v2, v3, r0, r1)
v0 = 0 : v1 = 0 : r0 = window : r1 = 0
GOSUB Create
XuiWindow (window, #WindowRegister, grid, -1, v2, v3, @r0, @"XuiWarning3B")
END SUB
'
'
' ***** GetSmallestSize *****
'
SUB GetSmallestSize
XuiGetBorder (grid, #GetBorder, 0, 0, 0, 0, 0, @bw)
XuiSendToKid (grid, #GetSmallestSize, @labelWidth, @labelHeight, 0, 0, $Label, 8)
FOR i = $Button0 TO $Button2
XuiSendToKid (grid, #GetSmallestSize, @width, @height, 0, 0, i, 8)
IF (width > buttonWidth) THEN buttonWidth = width
IF (height > buttonHeight) THEN buttonHeight = height
NEXT i
width = buttonWidth + buttonWidth + buttonWidth
height = labelHeight + buttonHeight
IF (width < labelWidth) THEN width = labelWidth
v2 = width + bw + bw
v3 = height + bw + bw
END SUB
'
'
' ***** Resize ***** This reconfigures window to current text sizes
'
SUB Resize
vv2 = v2
vv3 = v3
GOSUB GetSmallestSize
v2 = MAX(vv2, v2)
v3 = MAX(vv3, v3)
'
width = buttonWidth + buttonWidth + buttonWidth
height = labelHeight + buttonHeight + bw + bw
IF (width < labelWidth) THEN width = labelWidth
width = width + bw + bw
'
XuiPositionGrid (grid, @v0, @v1, @v2, @v3)
IF (v3 >= (labelHeight + buttonHeight + bw + bw + 4)) THEN buttonHeight = buttonHeight + 4
'
labelWidth = v2 - bw - bw
labelHeight = v3 - buttonHeight - bw - bw
buttonWidth = labelWidth / 3
width0 = buttonWidth
width1 = buttonWidth
width2 = labelWidth - width0 - width1
'
x = bw
y = bw
XuiSendToKid (grid, #Resize, x, y, labelWidth, labelHeight, $Label, 0)
'
h = buttonHeight
y = y + labelHeight
XuiSendToKid (grid, #Resize, x, y, width0, h, $Button0, 0) : x = x + width0
XuiSendToKid (grid, #Resize, x, y, width1, h, $Button1, 0) : x = x + width1
XuiSendToKid (grid, #Resize, x, y, width2, h, $Button2, 0) : x = x + width2
XuiResizeWindowToGrid (grid, #ResizeWindowToGrid, v0, v1, v2, v3, 0, 0)
END SUB
'
'
' ***** Initialize ****
'
SUB Initialize
XuiGetDefaultMessageFuncArray (@func[])
XgrMessageNameToNumber (@"LastMessage", @upperMessage)
'
func[#Callback] = &XuiCallback()
func[#GetSmallestSize] = 0
func[#Resize] = 0
'
DIM sub[upperMessage]
sub[#Create] = SUBADDRESS (Create)
sub[#CreateWindow] = SUBADDRESS (CreateWindow)
sub[#GetSmallestSize] = SUBADDRESS (GetSmallestSize)
sub[#Resize] = SUBADDRESS (Resize)
'
IF sub[0] THEN PRINT "XuiWarning3B() : Initialize : error::: (undefined message)"
IF func[0] THEN PRINT "XuiWarning3B() : Initialize : error::: (undefined message)"
XuiRegisterGridType (@XuiWarning3B, @"XuiWarning3B", &XuiWarning3B(), @func[], @sub[])
'
designX = 8
designY = 27
designWidth = 240
designHeight = 48
'
gridType = XuiWarning3B
XuiSetGridTypeValue (gridType, @"x", designX)
XuiSetGridTypeValue (gridType, @"y", designY)
XuiSetGridTypeValue (gridType, @"width", designWidth)
XuiSetGridTypeValue (gridType, @"height", designHeight)
XuiSetGridTypeValue (gridType, @"minWidth", 32)
XuiSetGridTypeValue (gridType, @"minHeight", 16)
XuiSetGridTypeValue (gridType, @"border", $$BorderFrame)
XuiSetGridTypeValue (gridType, @"can", $$Focus OR $$Respond OR $$Callback)
XuiSetGridTypeValue (gridType, @"focusKid", $Button0)
XuiSetGridTypeValue (gridType, @"redrawFlags", $$RedrawBorder)
IFZ message THEN RETURN
END SUB
END FUNCTION
'
'
' #############################
' ##### XuiWarning4B () ##### Label and 4 PushButtons
' #############################
'
FUNCTION XuiWarning4B (grid, message, v0, v1, v2, v3, r0, (r1, r1$, r1[], r1$[]))
STATIC designX, designY, designWidth, designHeight
STATIC SUBADDR sub[]
STATIC upperMessage
STATIC XuiWarning4B
'
$Warning4B = 0 ' kid 0
$Label = 1 ' kid 1
$Button0 = 2 ' kid 2
$Button1 = 3 ' kid 3
$Button2 = 4 ' kid 4
$Button3 = 5 ' kid 5
'
IFZ sub[] THEN GOSUB Initialize
IF XuiProcessMessage (grid, message, @v0, @v1, @v2, @v3, @r0, @r1, XuiWarning4B) THEN RETURN
GOSUB @sub[message]
RETURN
'
'
' ***** Create ***** v0123 = xywh : r0 = window : r1 = parent
'
SUB Create
IF (v0 <= 0) THEN v0 = 0
IF (v1 <= 0) THEN v1 = 0
IF (v2 <= 0) THEN v2 = designWidth
IF (v3 <= 0) THEN v3 = designHeight
XuiCreateGrid (@grid, XuiWarning4B, @v0, @v1, @v2, @v3, r0, r1, &XuiWarning4B())
XuiLabel (@g, #Create, 4, 4, 400, 28, r0, grid)
XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Label")
XuiPushButton (@g, #Create, 4, 32, 100, 28, r0, grid)
XuiSendMessage ( g, #SetCallback, grid, &XuiWarning4B(), -1, -1, $Button0, grid)
XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Button0")
XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Enter")
XuiPushButton (@g, #Create, 104, 32, 100, 28, r0, grid)
XuiSendMessage ( g, #SetCallback, grid, &XuiWarning4B(), -1, -1, $Button1, grid)
XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Button1")
XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Update")
XuiPushButton (@g, #Create, 204, 32, 100, 28, r0, grid)
XuiSendMessage ( g, #SetCallback, grid, &XuiWarning4B(), -1, -1, $Button2, grid)
XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Button2")
XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Retry")
XuiPushButton (@g, #Create, 304, 32, 100, 28, r0, grid)
XuiSendMessage ( g, #SetCallback, grid, &XuiWarning4B(), -1, -1, $Button3, grid)
XuiSendMessage ( g, #SetGridName, 0, 0, 0, 0, 0, @"Button3")
XuiSendMessage ( g, #SetTextString, 0, 0, 0, 0, 0, @"Cancel")
GOSUB Resize
END SUB
'
'
' ***** CreateWindow ***** r0 = windowType : r1 = &WindowFunc()
'
SUB CreateWindow
IF (v0 <= 0) THEN v0 = designX
IF (v1 <= 0) THEN v1 = designY
IF (v2 <= 0) THEN v2 = designWidth
IF (v3 <= 0) THEN v3 = designHeight
XuiWindow (@window, #WindowCreate, v0, v1, v2, v3, r0, r1)
v0 = 0 : v1 = 0 : r0 = window : r1 = 0
GOSUB Create
XuiWindow (window, #WindowRegister, grid, -1, v2, v3, @r0, @"XuiWarning4B")
END SUB
'
'
' ***** GetSmallestSize *****
'
SUB GetSmallestSize
XuiGetBorder (grid, #GetBorder, 0, 0, 0, 0, 0, @bw)
XuiSendToKid (grid, #GetSmallestSize, @labelWidth, @labelHeight, 0, 0, $Label, 8)
FOR i = $Button0 TO $Button3
XuiSendToKid (grid, #GetSmallestSize, @width, @height, 0, 0, i, 8)
IF (width > buttonWidth) THEN buttonWidth = width
IF (height > buttonHeight) THEN buttonHeight = height
NEXT i
width = buttonWidth << 2
height = labelHeight + buttonHeight
IF (width < labelWidth) THEN width = labelWidth
v2 = width + bw + bw
v3 = height + bw + bw
END SUB
'
'
' ***** Resize ***** This reconfigures window to current text sizes
'
SUB Resize
vv2 = v2
vv3 = v3
GOSUB GetSmallestSize
v2 = MAX (vv2, v2)
v3 = MAX (vv3, v3)
'
width = buttonWidth + buttonWidth + buttonWidth
height = labelHeight + buttonHeight + bw + bw
IF (width < labelWidth) THEN width = labelWidth
width = width + bw + bw
'
XuiPositionGrid (grid, @v0, @v1, @v2, @v3)
IF (v3 >= (labelHeight + buttonHeight + bw + bw + 4)) THEN buttonHeight = buttonHeight + 4
'
labelWidth = v2 - bw - bw
labelHeight = v3 - buttonHeight - bw - bw
buttonWidth = labelWidth >> 2
width0 = buttonWidth
width1 = buttonWidth
width2 = buttonWidth
width3 = labelWidth - width0 - width1 - width2
'
x = bw
y = bw
XuiSendToKid (grid, #Resize, x, y, labelWidth, labelHeight, $Label, 0)
'
h = buttonHeight
y = y + labelHeight
XuiSendToKid (grid, #Resize, x, y, width0, h, $Button0, 0) : x = x + width0
XuiSendToKid (grid, #Resize, x, y, width1, h, $Button1, 0) : x = x + width1
XuiSendToKid (grid, #Resize, x, y, width2, h, $Button2, 0) : x = x + width2
XuiSendToKid (grid, #Resize, x, y, width3, h, $Button3, 0) : x = x + width3
XuiResizeWindowToGrid (grid, #ResizeWindowToGrid, v0, v1, v2, v3, 0, 0)
END SUB
'
'
' ***** Initialize ****
'
SUB Initialize
XuiGetDefaultMessageFuncArray (@func[])
XgrMessageNameToNumber (@"LastMessage", @upperMessage)
'
func[#Callback] = &XuiCallback()
func[#GetSmallestSize] = 0
func[#Resize] = 0
'
DIM sub[upperMessage]
sub[#Create] = SUBADDRESS (Create)
sub[#CreateWindow] = SUBADDRESS (CreateWindow)
sub[#GetSmallestSize] = SUBADDRESS (GetSmallestSize)
sub[#Resize] = SUBADDRESS (Resize)
'
IF sub[0] THEN PRINT "XuiWarning4B() : Initialize : error::: (undefined message)"
IF func[0] THEN PRINT "XuiWarning4B() : Initialize : error::: (undefined message)"
XuiRegisterGridType (@XuiWarning4B, @"XuiWarning4B", &XuiWarning4B(), @func[], @sub[])
'
designX = 8
designY = 27
designWidth = 320
designHeight = 48
'
gridType = XuiWarning4B
XuiSetGridTypeValue (gridType, @"x", designX)
XuiSetGridTypeValue (gridType, @"y", designY)
XuiSetGridTypeValue (gridType, @"width", designWidth)
XuiSetGridTypeValue (gridType, @"height", designHeight)
XuiSetGridTypeValue (gridType, @"minWidth", 32)
XuiSetGridTypeValue (gridType, @"minHeight", 16)
XuiSetGridTypeValue (gridType, @"border", $$BorderFrame)
XuiSetGridTypeValue (gridType, @"can", $$Focus OR $$Respond OR $$Callback)
XuiSetGridTypeValue (gridType, @"focusKid", $Button0)
XuiSetGridTypeValue (gridType, @"redrawFlags", $$RedrawBorder)
IFZ message THEN RETURN
END SUB
END FUNCTION
END PROGRAM