Garry's Mod Wiki

Panel:LocalToScreen

  number, number Panel:LocalToScreen( number posX, number posY )

Description

Takes X and Y coordinates relative to the panel and returns their corresponding positions relative to the screen.

See also Panel:ScreenToLocal.

This function uses a cached value for the screen position of the panel, computed at the end of the last VGUI Think/Layout pass, so inaccurate results may be returned if the panel or any of its ancestors have been re-positioned outside of PANEL:Think or PANEL:PerformLayout within the last frame.
If the panel uses Panel:Dock, this function will return 0, 0 when the panel was created. The position will be updated in the next frame.

Arguments

1 number posX
The X coordinate of the position on the panel to translate.
2 number posY
The Y coordinate of the position on the panel to translate.

Returns

1 number
The X coordinate relative to the screen.
2 number
The Y coordinate relative to the screen.

Example: Basic Usages

Here we create a DFrame derivative and use it to display the screen coordinates of the center of the panel. For and explanation of the design structure read VGUI Creating Custom Elements

--Creating the table that we will use to make our table local PANEL = {} function PANEL:Init() self:SetSize(200,200) self:Center() self:MakePopup() self.Text = vgui.Create("DLabel",self) --Creating the DLabel to display our coordinates self.Text:Center() self.Text:SetColor(color_black) end function PANEL:Think() self.BaseClass.Think(self) --Allows us to keep the default DFrame think hook without overriding it. --Here we use the function to translate the center coordinate of our panel to the screen coordinate of at that same spot. self.ScreenXPos, self.ScreenYPos = self:LocalToScreen(self:GetWide() / 2,self:GetTall() / 2) --Updating our text display self.Text:SetText("X: " .. self.ScreenXPos .. " | Y: " .. self.ScreenYPos) self.Text:SizeToContents() end vgui.Register("WikiExample", PANEL, "DFrame") --You can create this panel using vgui.Create("WikiExample")
Output: