Widget handler: OnCursorChanged

Revision as of 04:49, 15 August 2023 by Move page script (talk | contribs) (Move page script moved page UIHANDLER OnCursorChanged to UIHANDLER OnCursorChanged without leaving a redirect)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Widget handlers < OnCursorChanged

DescriptionEdit

Called whenever the cursor in an edit box was moved. Note that the cursor is also moved when typing.

ArgumentsEdit

arg1
the new horizontal (x) position of the cursor in the edit box (the first column being 0, increasing to the right)
arg2
the new vertical (y) position of the cursor in the edit box (the first line being 0, DEcreasing downwards)
arg3
unknown
arg4
the height of one line

ExampleEdit

Say we have a plain textbox inside a scrollframe (inside UIPanelScrollFrameTemplate; as the only child-element, etc.), the following code will automatically move scrollframe viewport so that the cursor is inside it. (The ScrollingEdit_OnUpdate() function in UIPanelTemplates.lua does something akin to this also.)

<OnCursorChanged>
	local vs = this:GetParent():GetVerticalScroll();
	local h  = this:GetParent():GetHeight();

	if vs+arg2 > 0 or 0 > vs+arg2-arg4+h then
		this:GetParent():SetVerticalScroll(arg2*-1);
	end
</OnCursorChanged>