OnClientGUIMouseDown: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(Replace to predefined variables.)
 
Line 18: Line 18:
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">


addEventHandler( "onClientGUIMouseDown", getRootElement( ),
addEventHandler( "onClientGUIMouseDown", root,
     function ( btn, x, y )
     function ( btn, x, y )
         if btn == "left" then
         if btn == "left" then
Line 28: Line 28:
);
);


addEventHandler( "onClientGUIMouseUp", getRootElement( ),
addEventHandler( "onClientGUIMouseUp", root,
     function ( btn, x, y )
     function ( btn, x, y )
         if btn == "left" then
         if btn == "left" then
Line 36: Line 36:
);
);


addEventHandler( "onClientCursorMove", getRootElement( ),
addEventHandler( "onClientCursorMove", root,
     function ( _, _, x, y )
     function ( _, _, x, y )
         if clickedElement then
         if clickedElement then

Latest revision as of 12:46, 2 April 2023

This event is fired when the user clicks certain mouse button on a GUI element.

Parameters

string button, int absoluteX, int absoluteY
  • button: the name of the mouse button that the GUI element was clicked with, can be left, right, or middle.
  • 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.

Source

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

Example

This example show how to add very basic click'n'drag feature for GUI elements (only for those which parent element is gui-root)


addEventHandler( "onClientGUIMouseDown", root,
    function ( btn, x, y )
        if btn == "left" then
            clickedElement = source; -- store the clicked element in a global variable
            local elementPos = { guiGetPosition( source, false ) };
            offsetPos = { x - elementPos[ 1 ], y - elementPos[ 2 ] }; -- get the offset position
        end
    end
);

addEventHandler( "onClientGUIMouseUp", root,
    function ( btn, x, y )
        if btn == "left" then
            clickedElement = nil;
        end
    end
);

addEventHandler( "onClientCursorMove", root,
    function ( _, _, x, y )
        if clickedElement then
            guiSetPosition( clickedElement, x - offsetPos[ 1 ], y - offsetPos[ 2 ], false );
        end
    end
);

See Also

Input

GUI


Client event functions