OnDgsBlur

From Multi Theft Auto: Wiki
Revision as of 13:37, 20 January 2018 by Thisdp (talk | contribs) (→‎Notes)
Jump to navigation Jump to search

This event is triggered each time a DGS element looses input focus (mainly useful for windows, editboxes and memos but triggered for all DGS elements nevertheless).

Parameters

None

Source

The source of this event is the DGS element which just lost input focus.

Example

local window, editbox = nil, nil
DGS = exports.dgs
addCommandHandler("example",
function()
	local screenWidth, screenHeight = guiGetScreenSize()
	local windowWidth, windowHeight = 263, 90
	local left = screenWidth/2 - windowWidth/2
	local top = screenHeight/2 - windowHeight/2
	window = DGS:dgsCreateWindow(left, top, windowWidth, windowHeight, "Example Window", false)		
	editbox = DGS:dgsCreateEdit(11, 41, 241, 22, "", false, window)
	addEventHandler("onDgsFocus", editbox, onDGSFocus_editbox, true) --true because for the example we want propagated events
	addEventHandler("onDgsBlur", editbox, onDGSBlur_editbox, true) --true because for the example we want propagated events
	showCursor(true)
end)

function onDGSFocus_editbox()
	if source == editbox then
		outputChatBox("Example editBox received input focus")
	elseif source == window then
		outputChatBox("Example window received input focus")
	end
end

function onDGSBlur_editbox()
	if source == editbox then
		outputChatBox("Example editBox lost input focus")
	elseif source == window then
		outputChatBox("Example window lost input focus")
	end
end

Notes

  • When the focus is transfered from one DGS element to an other, it is guaranteed that onDgsBlur on the element that lost focus is triggered before onDgsBlur on the element that just gained focus
  • When the focus of a full window is lost (transfered to an other window or lost), onDgsBlur is only triggered for the window itself even if one of its widgets had focus too. It's important in this case to use the 4th parameter of addEventHandler if you are only registered for the events of a child widget (cf. Example)
  • When a window is hidden with dgsSetVisible, it (or its child widget having focus) keeps focus internally until an other window gains focus or the chatbox is used

See Also

DGS events

General

Check Box

Combo Box

Drag'N Drop

Edit

Grid List

Menu

Selector

Mouse

Radio Button

Switch Button

Tab

Animation

Plugin

Media

Color Picker

QRCode

Remote Image

Client event functions