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

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

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()

This action gets the form from the game state manager.

Return

Libraries.Interface.Forms.Form:

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()

This action gets the page from the form.

Return

Libraries.Interface.Forms.Page:

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