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,
onUpdatefunction?
) → ButtonHighlightModel

A model that dictates the current state of a button.

SetButton

ButtonHighlightModel.SetButton() → ()

Sets the button for the highlight model.

IsPressed

ButtonHighlightModel.IsPressed(selfButtonHighlightModel) → boolean

Gets if the button is pressed

ObserveIsPressed

ButtonHighlightModel.ObserveIsPressed(selfButtonHighlightModel) → Observable<boolean>

Observes if the button is pressed

ObservePercentPressed

ButtonHighlightModel.ObservePercentPressed(
accelerationnumber?
) → Observable<number>

Observes how pressed down the button is

ObservePercentPressedTarget

ButtonHighlightModel.ObservePercentPressedTarget(selfButtonHighlightModel) → Observable<number>

Observes target for how pressed the button is

IsHighlighted

ButtonHighlightModel.IsHighlighted(selfButtonHighlightModel) → boolean

Returns true if highlighted

ObserveIsHighlighted

ButtonHighlightModel.ObserveIsHighlighted(selfButtonHighlightModel) → Observable<boolean>

Observes if we're highlighted

ObservePercentHighlightedTarget

ButtonHighlightModel.ObservePercentHighlightedTarget(selfButtonHighlightModel) → Observable<number>

Observes target for how highlighted the button is

ObservePercentHighlighted

ButtonHighlightModel.ObservePercentHighlighted(
accelerationnumber?
) → Observable<number>

Observes how highlighted the button is

IsSelected

ButtonHighlightModel.IsSelected(selfButtonHighlightModel) → boolean

Returns true if selected

ObserveIsSelected

ButtonHighlightModel.ObserveIsSelected(selfButtonHighlightModel) → Observable<boolean>

Returns an observable for if we're selected

IsMouseOrTouchOver

ButtonHighlightModel.IsMouseOrTouchOver(selfButtonHighlightModel) → Observable<boolean>

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

ObserveIsMouseOrTouchOver

ButtonHighlightModel.ObserveIsMouseOrTouchOver(selfButtonHighlightModel) → Observable<boolean>

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

SetIsChoosen

ButtonHighlightModel.SetIsChoosen(
isChoosenboolean,
doNotAnimateboolean
) → ()

Sets whether the model is choosen

IsChoosen

ButtonHighlightModel.IsChoosen(selfButtonHighlightModel) → boolean

Returns true if choosen

ObserveIsChoosen

ButtonHighlightModel.ObserveIsChoosen(selfButtonHighlightModel) → boolean

Observes if the instance is "choosen"

ObservePercentChoosenTarget

ButtonHighlightModel.ObservePercentChoosenTarget(selfButtonHighlightModel) → Observable<number>

Observes target for if the button is selected or not

ObservePercentChoosen

ButtonHighlightModel.ObservePercentChoosen(
accelerationnumber?
) → Observable<number>

Observes how choosen the button is

SetInteractionEnabled

ButtonHighlightModel.SetInteractionEnabled(
interactionEnabledboolean
) → ()

Sets whether interaction is enabled

IsInteractionEnabled

ButtonHighlightModel.IsInteractionEnabled(selfButtonHighlightModel) → boolean

Gets if interaction enabled

ObserveIsInteractionEnabled

ButtonHighlightModel.ObserveIsInteractionEnabled(selfButtonHighlightModel) → Observable<boolean>

Observes if interaction enabled

SetKeyDown

ButtonHighlightModel.SetKeyDown(
isKeyDownboolean,
doNotAnimateboolean--

Optional

) → ()

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": 128,
                "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": [],
            "function_type": "static",
            "source": {
                "line": 195,
                "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": 321,
                "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": 329,
                "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": 339,
                "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": 357,
                "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": 370,
                "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": 379,
                "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\n"
                }
            ],
            "returns": [
                {
                    "desc": "",
                    "lua_type": "Observable<number>"
                }
            ],
            "function_type": "static",
            "source": {
                "line": 387,
                "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": 403,
                "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": 415,
                "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": 424,
                "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": 434,
                "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": 444,
                "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": 453,
                "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": 464,
                "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": 473,
                "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": 481,
                "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": 495,
                "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": [],
            "function_type": "static",
            "source": {
                "line": 514,
                "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": 522,
                "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": 530,
                "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": "Optional",
                    "lua_type": "boolean"
                }
            ],
            "returns": [],
            "function_type": "static",
            "source": {
                "line": 539,
                "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"
    }
}