OnDgsMouseClick: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
 
(21 intermediate revisions by 2 users not shown)
Line 3: Line 3:
This event happens when any dgs-element clicked
This event happens when any dgs-element clicked
{{Note|The '''player''' who clicked the dgs-element is always the [[localPlayer]].}}
{{Note|The '''player''' who clicked the dgs-element is always the [[localPlayer]].}}
{{Note|If you want to ask why everything is triggered... See the forth parameter of [[addEventHandler]]}}
{{Note|This event will not trigger when [[onDgsMousePreClick]] is cancelled.}}


==Parameters==  
==Parameters==  
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
string button, string state, int absoluteX, int absoluteY
string button, string state, int absoluteX, int absoluteY, bool isCoolingDown
</syntaxhighlight>
</syntaxhighlight>
*'''button:''' the name of the button which will be clicked , it can be ''left'', ''right'', ''middle''
*'''button:''' the name of the button which will be clicked , it can be ''left'', ''right'', ''middle''
*'''state:''' the state of the mouse button, will be ''down'' if the mouse button was pushed, or ''up'' if it was released.  '''Please note currently both ''up'' and ''down'' state are supported that is different from ''onClientGUIClick''.'''
*'''state:''' the state of the mouse button, will be ''down'' if the mouse button was pushed, or ''up'' if it was released.  '''Please note currently both ''up'' and ''down'' state are supported, which is different from ''onClientGUIClick''.''' For only ''up'' or ''down'', see [[onDgsMouseClickUp]]/[[onDgsMouseClickDown]]
*'''absoluteX:''' the X position of the mouse cursor, in pixels, measured from the left side of the screen.
*'''absoluteX:''' the X position of the mouse cursor, in pixels, measured from the left side of the screen.
*'''absoluteY:''' the Y position of the mouse cursor, in pixels, measured from the top of the screen.
*'''absoluteY:''' the Y position of the mouse cursor, in pixels, measured from the top of the screen.
 
*'''isCoolingDown:''' A bool indicates whether this dgs element is cooling down. See [[DGS_General_Basic_Properties#clickCoolDown|Property:clickCoolDown]]
==Source==
==Source==
The [[event system#Event source|source]] of this event is the DGS element that was clicked.
The [[event system#Event source|source]] of this event is the DGS element that was clicked.
Line 19: Line 21:
This example creates an edit box alongside an "Output!" button. When the button is clicked with the left mouse button, it will output the message in the edit box into the chat box.
This example creates an edit box alongside an "Output!" button. When the button is clicked with the left mouse button, it will output the message in the edit box into the chat box.
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
DGS = exports.dgs
-- When client's resource starts, create the GUI
-- When client's resource starts, create the GUI
function initGUI( )
function initGUI( )
     -- Create our button
     -- Create our button
     btnOutput = guiCreateButton( 0.7, 0.1, 0.2, 0.1, "Output!", true )
     btnOutput = DGS:dgsCreateButton( 0.7, 0.1, 0.2, 0.1, "Output!", true )


     -- And attach our button to the outputEditBox function
     -- And attach our button to the outputEditBox function
     addEventHandler ( "onClientGUIClick", btnOutput, outputEditBox, false )
     addEventHandler ( "onDgsMouseClick", btnOutput, outputEditBox )


     -- Create an edit box and define it as "editBox".
     -- Create an edit box and define it as "editBox".
     editBox = guiCreateEdit( 0.3, 0.1, 0.4, 0.1, "Type your message here!", true )
     editBox = DGS:dgsCreateEdit( 0.3, 0.1, 0.4, 0.1, "Type your message here!", true )
    guiEditSetMaxLength ( editBox, 128 ) -- The max chatbox text length is 128, so force this
end
end
addEventHandler( "onClientResourceStart", getResourceRootElement( getThisResource( ) ), initGUI )
addEventHandler( "onClientResourceStart", getResourceRootElement( getThisResource( ) ), initGUI )


-- Setup our function to output the message to the chatbox
-- Setup our function to output the message to the chatbox
function outputEditBox ( button )
function outputEditBox ( button, state )
     if button == "left" then
     if button == "left" and state == "down" then
         local text = guiGetText ( editBox )-- Get the text from the edit box
         local text = DGS:dgsGetText( editBox )-- Get the text from the edit box
         outputChatBox ( text ) -- Output that text
         outputChatBox ( text ) -- Output that text
     end
     end
Line 42: Line 44:
</syntaxhighlight>
</syntaxhighlight>


[[pl:onClientGUIClick]]
===Clear Example===
<syntaxhighlight lang="lua">
DGS = exports.dgs
 
btnOutput = DGS:dgsCreateButton( 0.7, 0.1, 0.2, 0.1, "Output!", true )
 
function outputEditBox ( button, state )
    if button == "left" and state == "down" then
        outputChatBox ( "Hey bro, you clicked me, your state is "..state )
    end
end
addEventHandler ( "onDgsMouseClick", btnOutput, outputEditBox )
</syntaxhighlight>


==See Also==
==See Also==
===DGS events===
===DGS events===
{{GUI_events}}
{{DGSEVENTS}}
===Client event functions===
===Client event functions===
{{Client_event_functions}}
{{Client_event_functions}}

Latest revision as of 14:16, 16 February 2021

This event happens when any dgs-element clicked

[[{{{image}}}|link=|]] Note: The player who clicked the dgs-element is always the localPlayer.
[[{{{image}}}|link=|]] Note: If you want to ask why everything is triggered... See the forth parameter of addEventHandler
[[{{{image}}}|link=|]] Note: This event will not trigger when onDgsMousePreClick is cancelled.

Parameters

string button, string state, int absoluteX, int absoluteY, bool isCoolingDown
  • button: the name of the button which will be clicked , it can be left, right, middle
  • state: the state of the mouse button, will be down if the mouse button was pushed, or up if it was released. Please note currently both up and down state are supported, which is different from onClientGUIClick. For only up or down, see onDgsMouseClickUp/onDgsMouseClickDown
  • absoluteX: the X position of the mouse cursor, in pixels, measured from the left side of the screen.
  • absoluteY: the Y position of the mouse cursor, in pixels, measured from the top of the screen.
  • isCoolingDown: A bool indicates whether this dgs element is cooling down. See Property:clickCoolDown

Source

The source of this event is the DGS element that was clicked.

Example

This example creates an edit box alongside an "Output!" button. When the button is clicked with the left mouse button, it will output the message in the edit box into the chat box.

DGS = exports.dgs
-- When client's resource starts, create the GUI
function initGUI( )
    -- Create our button
    btnOutput = DGS:dgsCreateButton( 0.7, 0.1, 0.2, 0.1, "Output!", true )

    -- And attach our button to the outputEditBox function
    addEventHandler ( "onDgsMouseClick", btnOutput, outputEditBox )

    -- Create an edit box and define it as "editBox".
    editBox = DGS:dgsCreateEdit( 0.3, 0.1, 0.4, 0.1, "Type your message here!", true )
end
addEventHandler( "onClientResourceStart", getResourceRootElement( getThisResource( ) ), initGUI )

-- Setup our function to output the message to the chatbox
function outputEditBox ( button, state )
    if button == "left" and state == "down" then
        local text = DGS:dgsGetText( editBox )-- Get the text from the edit box
        outputChatBox ( text ) -- Output that text
    end
end

Clear Example

DGS = exports.dgs

btnOutput = DGS:dgsCreateButton( 0.7, 0.1, 0.2, 0.1, "Output!", true )

function outputEditBox ( button, state )
    if button == "left" and state == "down" then
        outputChatBox ( "Hey bro, you clicked me, your state is "..state )
    end
end
addEventHandler ( "onDgsMouseClick", btnOutput, outputEditBox )

See Also

DGS events

General

Check Box

Combo Box

Drag'N Drop

Edit

Grid List

Menu

Selector

Mouse

Radio Button

Switch Button

Tab

Animation

Plugin

Media

Color Picker

QRCode

Remote Image

Client event functions