Skip to main content

ButtonHighlightModel

Contains model information for the current button.

Usage with Blend!

function Button.new()
	local self = setmetatable(BaseObject.new(), Button)

	-- Store the button model in the actual button so we can ensure it cleans up
	-- this assumes only one render. We can also construct it in the Button.Render

	self._buttonModel = ButtonHighlightModel.new()
	self._maid:GiveTask(self._buttonModel)

	return self
end

function Button:Render()
	...
	return Blend.New "ImageButton" {
		...
		[Blend.Instance] = function(button)
			self._buttonModel:SetButton(button)
		end;
		BackgroundTransparency = Blend.Computed(self._buttonModel:ObservePercentPressed(), function(pressed)
			return 1 - pressed
		end);
	}
end

Functions​

new​

ButtonHighlightModel.new(
button?: GuiObject,
onUpdate: function?
) → ButtonHighlightModel

A model that dictates the current state of a button.

SetButton​

ButtonHighlightModel.SetButton() → () → ()

Sets the button for the highlight model.

IsPressed​

ButtonHighlightModel.IsPressed(self: ButtonHighlightModel) → boolean

Gets if the button is pressed

ObserveIsPressed​

ButtonHighlightModel.ObserveIsPressed(self: ButtonHighlightModel) → Observable<boolean>

Observes if the button is pressed

ObservePercentPressed​

ButtonHighlightModel.ObservePercentPressed(
acceleration: number?
) → Observable<number>

Observes how pressed down the button is

ObservePercentPressedTarget​

ButtonHighlightModel.ObservePercentPressedTarget(self: ButtonHighlightModel) → Observable<number>

Observes target for how pressed the button is

IsHighlighted​

ButtonHighlightModel.IsHighlighted(self: ButtonHighlightModel) → boolean

Returns true if highlighted

ObserveIsHighlighted​

ButtonHighlightModel.ObserveIsHighlighted(self: ButtonHighlightModel) → Observable<boolean>

Observes if we're highlighted

ObservePercentHighlightedTarget​

ButtonHighlightModel.ObservePercentHighlightedTarget(self: ButtonHighlightModel) → Observable<number>

Observes target for how highlighted the button is

ObservePercentHighlighted​

ButtonHighlightModel.ObservePercentHighlighted(
acceleration: number?
) → Observable<number>

Observes how highlighted the button is

IsSelected​

ButtonHighlightModel.IsSelected(self: ButtonHighlightModel) → boolean

Returns true if selected

ObserveIsSelected​

ButtonHighlightModel.ObserveIsSelected(self: ButtonHighlightModel) → Observable<boolean>

Returns an observable for if we're selected

IsMouseOrTouchOver​

ButtonHighlightModel.IsMouseOrTouchOver(self: ButtonHighlightModel) → Observable<boolean>

Gets if mouse or touch is over specifically. This can be used for hover effects.

ObserveIsMouseOrTouchOver​

ButtonHighlightModel.ObserveIsMouseOrTouchOver(self: ButtonHighlightModel) → Observable<boolean>

Observes if mouse or touch is over specifically. This can be used for hover effects.

SetIsChoosen​

ButtonHighlightModel.SetIsChoosen(
isChoosen: boolean,
doNotAnimate: boolean?
) → ()

Sets whether the model is choosen

IsChoosen​

ButtonHighlightModel.IsChoosen(self: ButtonHighlightModel) → boolean

Returns true if choosen

ObserveIsChoosen​

ButtonHighlightModel.ObserveIsChoosen(self: ButtonHighlightModel) → boolean

Observes if the instance is "choosen"

ObservePercentChoosenTarget​

ButtonHighlightModel.ObservePercentChoosenTarget(self: ButtonHighlightModel) → Observable<number>

Observes target for if the button is selected or not

ObservePercentChoosen​

ButtonHighlightModel.ObservePercentChoosen(
acceleration: number?
) → Observable<number>

Observes how choosen the button is

SetInteractionEnabled​

ButtonHighlightModel.SetInteractionEnabled(
interactionEnabled: boolean
) → () → ()

Sets whether interaction is enabled

IsInteractionEnabled​

ButtonHighlightModel.IsInteractionEnabled(self: ButtonHighlightModel) → boolean

Gets if interaction enabled

ObserveIsInteractionEnabled​

ButtonHighlightModel.ObserveIsInteractionEnabled(self: ButtonHighlightModel) → Observable<boolean>

Observes if interaction enabled

SetKeyDown​

ButtonHighlightModel.SetKeyDown(
isKeyDown: boolean,
doNotAnimate: boolean?
) → ()

Sets whether a key is down

Show raw api
{
    "functions": [
        {
            "name": "new",
            "desc": "A model that dictates the current state of a button.",
            "params": [
                {
                    "name": "button?",
                    "desc": "",
                    "lua_type": "GuiObject"
                },
                {
                    "name": "onUpdate",
                    "desc": "",
                    "lua_type": "function?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 130,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "SetButton",
            "desc": "Sets the button for the highlight model.",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                },
                {
                    "name": "button",
                    "desc": "",
                    "lua_type": "GuiObject?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "() -> ()\n"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 197,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "IsPressed",
            "desc": "Gets if the button is pressed",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 322,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "ObserveIsPressed",
            "desc": "Observes if the button is pressed",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<boolean>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 330,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "ObservePercentPressed",
            "desc": "Observes how pressed down the button is",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                },
                {
                    "name": "acceleration",
                    "desc": "",
                    "lua_type": "number?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<number>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 340,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "ObservePercentPressedTarget",
            "desc": "Observes target for how pressed the button is",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<number>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 358,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "IsHighlighted",
            "desc": "Returns true if highlighted",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 371,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "ObserveIsHighlighted",
            "desc": "Observes if we're highlighted",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<boolean>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 380,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "ObservePercentHighlightedTarget",
            "desc": "Observes target for how highlighted the button is",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<number>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 388,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "ObservePercentHighlighted",
            "desc": "Observes how highlighted the button is",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                },
                {
                    "name": "acceleration",
                    "desc": "",
                    "lua_type": "number?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<number>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 402,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "IsSelected",
            "desc": "Returns true if selected",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 414,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "ObserveIsSelected",
            "desc": "Returns an observable for if we're selected",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<boolean>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 423,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "IsMouseOrTouchOver",
            "desc": "Gets if mouse or touch is over specifically. This can be used\nfor hover effects.",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<boolean>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 433,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "ObserveIsMouseOrTouchOver",
            "desc": "Observes if mouse or touch is over specifically. This can be used\nfor hover effects.",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<boolean>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 443,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "SetIsChoosen",
            "desc": "Sets whether the model is choosen",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                },
                {
                    "name": "isChoosen",
                    "desc": "",
                    "lua_type": "boolean"
                },
                {
                    "name": "doNotAnimate",
                    "desc": "",
                    "lua_type": "boolean?"
                }
            ],
            "returns": [],
            "function_type": "static",
            "source": {
                "line": 452,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "IsChoosen",
            "desc": "Returns true if choosen",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 463,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "ObserveIsChoosen",
            "desc": "Observes if the instance is \"choosen\"",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 472,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "ObservePercentChoosenTarget",
            "desc": "Observes target for if the button is selected or not",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<number>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 480,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "ObservePercentChoosen",
            "desc": "Observes how choosen the button is",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                },
                {
                    "name": "acceleration",
                    "desc": "",
                    "lua_type": "number?"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<number>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 494,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "SetInteractionEnabled",
            "desc": "Sets whether interaction is enabled",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                },
                {
                    "name": "interactionEnabled",
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "() -> ()\n"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 513,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "IsInteractionEnabled",
            "desc": "Gets if interaction enabled",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "boolean"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 521,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "ObserveIsInteractionEnabled",
            "desc": "Observes if interaction enabled",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<boolean>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 529,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        },
        {
            "name": "SetKeyDown",
            "desc": "Sets whether a key is down",
            "params": [
                {
                    "name": "self",
                    "desc": "",
                    "lua_type": "ButtonHighlightModel"
                },
                {
                    "name": "isKeyDown",
                    "desc": "",
                    "lua_type": "boolean"
                },
                {
                    "name": "doNotAnimate",
                    "desc": "",
                    "lua_type": "boolean?"
                }
            ],
            "returns": [],
            "function_type": "static",
            "source": {
                "line": 538,
                "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
            }
        }
    ],
    "properties": [],
    "types": [],
    "name": "ButtonHighlightModel",
    "desc": "Contains model information for the current button.\n\nUsage with Blend!\n\n```lua\nfunction Button.new()\n\tlocal self = setmetatable(BaseObject.new(), Button)\n\n\t-- Store the button model in the actual button so we can ensure it cleans up\n\t-- this assumes only one render. We can also construct it in the Button.Render\n\n\tself._buttonModel = ButtonHighlightModel.new()\n\tself._maid:GiveTask(self._buttonModel)\n\n\treturn self\nend\n\nfunction Button:Render()\n\t...\n\treturn Blend.New \"ImageButton\" {\n\t\t...\n\t\t[Blend.Instance] = function(button)\n\t\t\tself._buttonModel:SetButton(button)\n\t\tend;\n\t\tBackgroundTransparency = Blend.Computed(self._buttonModel:ObservePercentPressed(), function(pressed)\n\t\t\treturn 1 - pressed\n\t\tend);\n\t}\nend\n```",
    "source": {
        "line": 36,
        "path": "src/buttonhighlightmodel/src/Client/ButtonHighlightModel.lua"
    }
}