UIHANDLER OnCursorChanged

From Warcraft Wiki
Jump to navigation Jump to search


Description

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

Arguments

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
the width of the displayed cursor
arg4
the height of one line/the displayed cursor

Example

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 = self:GetParent():GetVerticalScroll();
	local h  = self:GetParent():GetHeight();

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