GuiCreateWindow: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 1: Line 1:
__NOTOC__  
__NOTOC__  
This function is for creating a new GUI window
{{Client function}}
This function is for creating a new GUI window.  This provides a base for other gui elements to be created within.  However, windows do not have a parent and cannot be created in any GUI elements.


==Syntax==  
==Syntax==  
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
element guiCreateWindow ( float x, float y, float width, float height, string text, bool relative )
element guiCreateWindow ( float x, float y, float width, float height, string titleBarText, bool relative )
</syntaxhighlight>  
</syntaxhighlight>  


===Required Arguments===  
===Required Arguments===  
<!-- List each argument one per line. This should be the argument's name as in the argument list above, NOT the argument's data type -->
*'''x:''' A float of the 2D x position of the GUI window on a player's screen.  This is affected by the ''relative'' argument.
*'''argumentName:''' description
*'''y:''' A float of the 2D y position of the GUI window on a player's screen. This is affected by the ''relative'' argument.
*'''width:''' A float of the width of the GUI window. This is affected by the ''relative'' argument.
*'''height:''' A float of the height of the GUI window. This is affected by the ''relative'' argument.
*'''titleBarText:''' A string of the text that will be displayed in the title bar of the window.
*'''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/positions as a fraction of the screen size.


<!-- Only include this section below if there are optional arguments -->
===Optional Arguments===
{{OptionalArg}}
*'''argumentName2:''' description
*'''argumentName3:''' description


===Returns===
===Returns===
<!-- Make this descriptive. Explain what cases will return false. If you're unsure, add a tag to it so we can check -->
Returns a gui window element if it was created successfully, false otherwise.
Returns ''true'' if blah, ''false'' otherwise.


==Example==  
==Example==  
<!-- Explain what the example is in a single sentance -->
'''Example 1:''' This example creates a information window and adds two tabs to a "tabPanel" tabpanel, and adds some other gui elements to it.
This example does...
<!-- Add the code below, an emphasis should be on making it clear, not optimized. You could provide two versions if you wish, one clear and well commented, the other optimized -->
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
--This line does...
local myWindow = guiCreateWindow ( 0, 0, 0.5, 0.4, "Information", true )--create a window which has "Information" in the title bar.
blabhalbalhb --abababa
local tabPanel = guiCreateTabPanel ( 0, 0, 2, 1, true, myWindow ) --create a tab panel which fills the whole window
--This line does this...
local tabMap = guiCreateTab( "Map Information", tabPanel ) -- create a tab named "Map Information" on 'tabPanel'
mooo
local tabHelp = guiCreateTab( "Help", tabPanel ) -- create another tab named "Help" on 'tabPanel'
 
-- adds a label (text) to each tab
guiCreateLabel(0.02,0.04,0.94,0.2,"This is information about the current map",true,tabMap)
guiCreateLabel(0.02,0.04,0.94,0.92,"This is help text.",true,tabHelp)
</syntaxhighlight>
 
'''Example 2:''' This example creates a weapon selection screen, complete with a window, gridlist and a button.  Users can select a handgun and an uzi.  The window is not movable or sizable.
<syntaxhighlight lang="lua">
--Setup some tables
handguns = {
"colt45",
"deagle",
"silenced" }
 
uzis = {
"Uzi",
"MP5",
"Tec-9" }
 
function setupWeaponSelection ( theResource )
if theResource ~= getThisResource() then return end --if the resource started is not this one, dont bother creating the gui
---Create a window for our spawnscreen, with the title "Select your weaposn".
spawnScreenMenu = guiCreateWindow ( 0.15, 0.33, 0.7, 0.34, "Select your weapons", true )
--create an OK button to allow the user to confirm their seclections, and attach it to the confirmSelection funnction
spawnScreenOKButton = guiCreateButton ( 0.4, 0.85, 0.20, 0.15, "OK", true, spawnScreenMenu )
--ensure the user doesnt move or resize our spawnscreen.
guiWindowSetMovable ( spawnScreenMenu, false )
guiWindowSetSizable ( spawnScreenMenu, false )
--create our gridlist, which fills up most of the window.
spawnScreenGridList = guiCreateGridList ( 0, 0.1, 1, 0.9, true, spawnScreenMenu )
--Since we have 3 sets of weapons to select, we create 3 new columns, one for handgun, uzi and heavy weapon.
guiGridListAddColumn ( spawnScreenGridList, "Handgun", 0.3 )
guiGridListAddColumn ( spawnScreenGridList, "Uzi", 0.3 )
-- next, we loop through our handguns table to add handgun items to the gridlist
for key,weaponName in pairs(handguns) do
--add a new row to our gridlist each time
local row = guiGridListAddRow ( spawnScreenGridList ) --get our new row
--next, we set that rows text to the weapon name.  Column is 1 since the "Handgun" column was created first.
guiGridListSetItemText ( spawnScreenGridList, row, 1, weaponName, false, false )
end
--we repeat the process for other weapon lists, changing the column number
row = 0
for key,weaponName in pairs(uzis) do
--we dont bother creating new rows, since we already have done that
--next, we set that rows text to the weapon name.  Column is 2 since the "Uzis" column was created second.
guiGridListSetItemText ( spawnScreenGridList, row, 2, weaponName, false, false )
row = row + 1 --increase the row number
end
end
addEventHandler ( "onClientResourceStart", getRootElement(), setupWeaponSelection )
</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 -->
{{GUI_functions}}
{{GUI_functions}}
[[Category:Incomplete]] -- leave this unless you complete the function

Revision as of 14:16, 4 August 2007

This function is for creating a new GUI window. This provides a base for other gui elements to be created within. However, windows do not have a parent and cannot be created in any GUI elements.

Syntax

element guiCreateWindow ( float x, float y, float width, float height, string titleBarText, bool relative )

Required Arguments

  • x: A float of the 2D x position of the GUI window on a player's screen. This is affected by the relative argument.
  • y: A float of the 2D y position of the GUI window on a player's screen. This is affected by the relative argument.
  • width: A float of the width of the GUI window. This is affected by the relative argument.
  • height: A float of the height of the GUI window. This is affected by the relative argument.
  • titleBarText: A string of the text that will be displayed in the title bar of the window.
  • 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/positions as a fraction of the screen size.


Returns

Returns a gui window element if it was created successfully, false otherwise.

Example

Example 1: This example creates a information window and adds two tabs to a "tabPanel" tabpanel, and adds some other gui elements to it.

local myWindow = guiCreateWindow ( 0, 0, 0.5, 0.4, "Information", true )--create a window which has "Information" in the title bar.
local tabPanel = guiCreateTabPanel ( 0, 0, 2, 1, true, myWindow ) --create a tab panel which fills the whole window
local tabMap = guiCreateTab( "Map Information", tabPanel ) -- create a tab named "Map Information" on 'tabPanel'
local tabHelp = guiCreateTab( "Help", tabPanel ) -- create another tab named "Help" on 'tabPanel'

-- adds a label (text) to each tab
guiCreateLabel(0.02,0.04,0.94,0.2,"This is information about the current map",true,tabMap)
guiCreateLabel(0.02,0.04,0.94,0.92,"This is help text.",true,tabHelp)

Example 2: This example creates a weapon selection screen, complete with a window, gridlist and a button. Users can select a handgun and an uzi. The window is not movable or sizable.

--Setup some tables
handguns = {
"colt45",
"deagle",
"silenced" }

uzis = {
"Uzi",
"MP5",
"Tec-9" }

function setupWeaponSelection ( theResource )
	if theResource ~= getThisResource() then return end --if the resource started is not this one, dont bother creating the gui
	---Create a window for our spawnscreen, with the title "Select your weaposn".
	spawnScreenMenu = guiCreateWindow ( 0.15, 0.33, 0.7, 0.34, "Select your weapons", true )
	--create an OK button to allow the user to confirm their seclections, and attach it to the confirmSelection funnction
	spawnScreenOKButton = guiCreateButton ( 0.4, 0.85, 0.20, 0.15, "OK", true, spawnScreenMenu )
	--ensure the user doesnt move or resize our spawnscreen.
	guiWindowSetMovable ( spawnScreenMenu, false )
	guiWindowSetSizable ( spawnScreenMenu, false )
	--create our gridlist, which fills up most of the window.
	spawnScreenGridList = guiCreateGridList ( 0, 0.1, 1, 0.9, true, spawnScreenMenu )
	--Since we have 3 sets of weapons to select, we create 3 new columns, one for handgun, uzi and heavy weapon.
	guiGridListAddColumn ( spawnScreenGridList, "Handgun", 0.3 )
	guiGridListAddColumn ( spawnScreenGridList, "Uzi", 0.3 )
	-- next, we loop through our handguns table to add handgun items to the gridlist
	for key,weaponName in pairs(handguns) do
		--add a new row to our gridlist each time
		local row = guiGridListAddRow ( spawnScreenGridList ) --get our new row
		--next, we set that rows text to the weapon name.  Column is 1 since the "Handgun" column was created first.
		guiGridListSetItemText ( spawnScreenGridList, row, 1, weaponName, false, false )
	end
	--we repeat the process for other weapon lists, changing the column number
	row = 0
	for key,weaponName in pairs(uzis) do
		--we dont bother creating new rows, since we already have done that
		--next, we set that rows text to the weapon name.  Column is 2 since the "Uzis" column was created second.
		guiGridListSetItemText ( spawnScreenGridList, row, 2, weaponName, false, false )
		row = row + 1 --increase the row number
	end
end
addEventHandler ( "onClientResourceStart", getRootElement(), setupWeaponSelection )

See Also

General functions

Browsers

Buttons

Checkboxes

Comboboxes

Edit Boxes

Gridlists

Memos

Progressbars

Radio Buttons

Scrollbars

Scrollpanes

Static Images

Tab Panels

Tabs

Text Labels

Windows