DgsSetPosition: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
m (Thisdp moved page Dgs/DgsSetPosition to DgsSetPosition)
m (little correction)
 
(4 intermediate revisions by 2 users not shown)
Line 5: Line 5:
==Syntax==  
==Syntax==  
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
bool dgsSetPosition ( element theElement, float x, float y, bool relative )
bool dgsSetPosition ( element theElement, float x, float y, bool relative [, bool isCenterPosition = false ] )
</syntaxhighlight>  
</syntaxhighlight>  
{{DGS/OOP|The variable is a conjunction: '''position.x''' (set X position), '''position.y''' (set Y position) and '''position.relative''' (set Relative property)|DGSElement:setPosition||position|dgsGetPosition||}}


===Required Arguments===  
===Required Arguments===  
Line 13: Line 14:
*'''x:''' Position over the X axis
*'''x:''' Position over the X axis
*'''y:''' Position over the Y axis
*'''y:''' Position over the Y axis
*'''relative:''' Bool that indicates if the x/y positions are relative to the screen size
*'''relative:''' This is whether sizes and positioning are relative. If this is true, then all x,y,width,height floats must be between 0 and 1, representing sizes relative to the parent.
 
===Optional Arguments===
*'''isCenterPosition:''' A bool of whether the input x/y is the center position of a dgs element.


===Returns===
===Returns===
Line 24: Line 28:
DGS = exports.dgs
DGS = exports.dgs
--create an empty label
--create an empty label
local myLabel = DGS:dgsDxCreateLabel ( 0, 0, 1, 1, "", true )
local myLabel = DGS:dgsCreateLabel ( 0, 0, 1, 1, "", true )


function addLabelOnClick ( button, state, absoluteX, absoluteY, worldX, worldY, worldZ, clickedElement )
function addLabelOnClick ( button, state, absoluteX, absoluteY, worldX, worldY, worldZ, clickedElement )
Line 32: Line 36:
local elementType = DGS:dgsGetType ( clickedElement )
local elementType = DGS:dgsGetType ( clickedElement )
--change the label text to that element type
--change the label text to that element type
DGS:dgsDxGUISetText ( myLabel, elementType )
DGS:dgsSetText ( myLabel, elementType )
--and place it in the position of where the element is
--and place it in the position of where the element is
DGS:dgsSetPosition ( myLabel, absoluteX, absoluteY, false )
DGS:dgsSetPosition ( myLabel, absoluteX, absoluteY, false )
--hide the text by passing an empty string 5 seconds later
--hide the text by passing an empty string 5 seconds later
setTimer ( DGS:dgsDxGUISetText, 5000, 1, myLabel, "" )
setTimer ( DGS:dgsSetText, 5000, 1, myLabel, "" )
end
end
end
end
addEventHandler ( "onClientDgsDxMouseClick", getRootElement(), addLabelOnClick )
addEventHandler ( "onDgsMouseClick", getRootElement(), addLabelOnClick )
</syntaxhighlight>
</syntaxhighlight>


==See Also==
==See Also==
<!-- Change FunctionArea to the area that this function is in on the main function list page, e.g. Server, Player, Vehicle etc -->
 
{{DGSFUNCTIONS}}
===<span style="color:#eb3f00;text-shadow:0.05em 0.05em 0.2em #00000099;">General Functions</span>===
{{DGS General Functions}}
 
===<span style="color:#eb3f00;text-shadow:0.05em 0.05em 0.2em #00000099;">General Events</span>===
{{DGS Events/General}}

Latest revision as of 18:23, 16 April 2021

This function sets the position of a DGS element.

Syntax

bool dgsSetPosition ( element theElement, float x, float y, bool relative [, bool isCenterPosition = false ] )

DGS OOP Syntax Help! I don't understand this!

Required Arguments

  • theElement: The DGS element to change position for
  • x: Position over the X axis
  • y: Position over the Y axis
  • relative: This is whether sizes and positioning are relative. If this is true, then all x,y,width,height floats must be between 0 and 1, representing sizes relative to the parent.

Optional Arguments

  • isCenterPosition: A bool of whether the input x/y is the center position of a dgs element.

Returns

Returns true if the position has been successfully set, false otherwise.

Example

This example creates a label. When an element is clicked, the label displays in the position of the element telling you what kind of element you have clicked. It hides after 5 seconds.

DGS = exports.dgs
--create an empty label
local myLabel = DGS:dgsCreateLabel  ( 0, 0, 1, 1, "", true )

function addLabelOnClick ( button, state, absoluteX, absoluteY, worldX, worldY, worldZ, clickedElement )
	--if an element was clicked on screen
	if ( clickedElement ) then
		--retreive the element type
		local elementType = DGS:dgsGetType ( clickedElement )
		--change the label text to that element type
		DGS:dgsSetText ( myLabel, elementType )
		--and place it in the position of where the element is
		DGS:dgsSetPosition ( myLabel, absoluteX, absoluteY, false )
		--hide the text by passing an empty string 5 seconds later
		setTimer ( DGS:dgsSetText, 5000, 1, myLabel, "" )
	end
end
addEventHandler ( "onDgsMouseClick", getRootElement(), addLabelOnClick )

See Also

General Functions

General Events