Libraries.Interface.Forms.FormBehavior Documentation
This class represents a generic way for an item in the form interface to conduct a behavior. By design, it can run itself, with a Run action, can take action over time using its Update action, can cleanup any items when it is finished using Dispose, and can determine when it is completed with its IsFinished action. Behavior itself does not do anything itself, but is heavily subclassed for specific kinds of actions. The classes that use Behaviors of one kind or another the most are the user interface controls, like Button, TextBox, or others, and the InputTable class. Together, these classes provide a way to efficiently route user input throughout the system.
Example Code
use Libraries.Interface.Forms.Form
use Libraries.Interface.Forms.Page
use Libraries.Interface.Forms.FormBehavior
use Libraries.Interface.Events.BehaviorEvent
use Libraries.Interface.Item2D
use Libraries.Interface.Controls.Button
class Main is FormBehavior
action Main
// create the app
Form form
Page homePage = form:GetMainPage()
Page pageTwo = form:AddPage("PageTwo")
Page pageThree = form:AddPage("PageThree")
homePage:SetTitle("Home Page")
Button button = homePage:AddButton("Next Page")
button:SetBehavior(me)
pageTwo:SetTitle("Page Two")
Button buttonTwo = pageTwo:AddButton("Next Page")
buttonTwo:SetBehavior(me)
pageThree:SetTitle("Page Three")
Button buttonThree = pageThree:AddButton("Next Page")
buttonThree:SetBehavior(me)
form:Display()
end
action Run(BehaviorEvent event)
Form form = GetForm()
Page page = GetPage()
if (page:GetName() = "Main")
form:SetPage("PageTwo")
elseif (page:GetName() = "PageTwo")
form:SetPage("PageThree")
else
form:SetPage("Main")
end
end
end
Inherits from: Libraries.Language.Object, Libraries.Interface.Behaviors.Behavior
Actions Documentation
Compare(Libraries.Language.Object object)
This action compares two object hash codes and returns an integer. The result is larger if this hash code is larger than the object passed as a parameter, smaller, or equal. In this case, -1 means smaller, 0 means equal, and 1 means larger. This action was changed in Quorum 7 to return an integer, instead of a CompareResult object, because the previous implementation was causing efficiency issues.
Parameters
- Libraries.Language.Object: The object to compare to.
Return
integer: The Compare result, Smaller, Equal, or Larger.
Example
Object o
Object t
integer result = o:Compare(t) //1 (larger), 0 (equal), or -1 (smaller)
Dispose()
Dispose does nothing by default, but can be overridden to conduct cleanup actions when a behavior is finished. Note that, as discussed in the comment for the Update action, Dispose is only called if the behavior is added through AddBehavior, not if its set as a default Behavior on an interface element (e.g., a Button’s default clicking behavior).
Equals(Libraries.Language.Object object)
This action determines if two objects are equal based on their hash code values.
Parameters
- Libraries.Language.Object: The to be compared.
Return
boolean: True if the hash codes are equal and false if they are not equal.
Example
use Libraries.Language.Object
use Libraries.Language.Types.Text
Object o
Text t
boolean result = o:Equals(t)
GetForm()
GetHashCode()
This action gets the hash code for an object.
Return
integer: The integer hash code of the object.
Example
Object o
integer hash = o:GetHashCode()
GetPage()
HasBeenRun()
This action returns true if the Behavior has been run by a current item that it has been added to. This is an internal flag used by the engine, and most users will never need this functionality.
Return
boolean:
IsFinished()
This action ends the game loop.
Return
boolean:
IsRunningOnUpdate()
The IsRunningOnUpdate action returns true if this Behavior calls its Run action during the Game's update loop, and returns false if the Behavior calls its Run action immediately upon being added to an Item. The default value is false.
Return
boolean:
Run(Libraries.Interface.Events.BehaviorEvent event)
When an action is taken with this Behavior, run is called. For example, if a button is clicked in the user interface, Run would be called.
Parameters
SetHasRunFlag(boolean hasRun)
This action sets a flag indicating if the Behavior has been run by the current Item this Behavior has been added to. This is used internally by the engine, and most users should never need this functionality.
Parameters
- boolean hasRun
SetRunOnUpdate(boolean run)
The SetRunOnUpdate action determines when a behavior should be first run when the behavior is added to an Item. If the value is false, then the Behavior's Run action will be called immediately when it is added to an Item. If it is true, it will be called during the next update loop.
Parameters
- boolean run
Update(number seconds)
Behaviors can optionally be set to Update on every frame of a running program, depending on context. By default, however, not all behaviors do this. For example, in a button, Update is never called on its default behavior, just Run. In contrast, if you call AddBehavior on an item, Update would be called on every frame.
Parameters
- number seconds