PcoWSkbVqDnWTu_dm2ix
We use cookies on this site to enhance your user experience
Collapse Sidebar

BindToClose

This function binds a function to the PluginGui|PluginGui’s close button, overriding the default behavior.

By default, when the user clicks the ‘x’ button in the top right corner of the PluginGui the LayerCollector/Enabled|Enabled property is set to false, closing the window. When a custom function is bound using BindToClose this behavior is overwritten, allowing you to check if the user really wants to close the window or give them an opportunity to save their work.

As the default closing behavior is overwritten by this function, you’ll need to configure the PluginGui to close manually by setting LayerCollector/Enabled|PluginGui.Enabled to false. For example, in the below snippet users are required to click a confirm button to close the GUI:

local closing = false
pluginGui:BindToClose(function()
	-- make sure we haven't already made a button
	if closing then
		return
	end
	closing = true

	-- create confirm button
	local confirmButton = Instance.new("TextButton")
	confirmButton.AnchorPoint = Vector2.new(0.5, 0.5)
	confirmButton.Size = UDim2.new(0.5, 0, 0.5, 0)
	confirmButton.Position = UDim2.new(0.5, 0, 0.5, 0)
	confirmButton.BackgroundColor3 = Color3.new(1, 0, 0)
	confirmButton.Text = "Close?"
	confirmButton.Parent = pluginGui

	-- listen for click
	confirmButton.Activated:Connect(function()
		-- close the gui
		pluginGui.Enabled = false
	
		-- remove confirm button
		confirmButton:Destroy()
	end)
end)

You can call BindToClose with no argument to ‘unbind’ and revert to the default behavior described above. For example:

pluginGui:BindToClose()

See also

  • Plugin/CreateDockWidgetPluginGui to create a PluginGui
  • DataModel/BindToClose, which can be used to bind a function to the game ending and should not be confused with this function

Parameters

Name Type Default Description
nil

The function to bind the close button to. If no function is specified then any previously specified function will be unbound

Returns

Return Type Summary

No return