OnDgsMouseDown: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(Created page with "{{Client event}} __NOTOC__ This event is fired when the user clicks certain mouse button on a DGS element. ==Parameters== <syntaxhighlight lang="lua"> string button, int abs...")
 
No edit summary
 
(3 intermediate revisions by 2 users not shown)
Line 2: Line 2:
__NOTOC__
__NOTOC__
This event is fired when the user clicks certain mouse button on a DGS element.
This event is fired when the user clicks certain mouse button on a DGS element.
{{Note|This event will not trigger when [[onDgsMousePreClick]] is cancelled.}}


==Parameters==  
==Parameters==  
Line 18: Line 19:
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
DGS = exports.dgs
DGS = exports.dgs
addEventHandler( "onDgsMouseDown", getRootElement( ),
addEventHandler( "onDgsMouseDown", root,
     function ( btn, x, y )
     function ( btn, x, y )
         if btn == "left" then
         if btn == "left" then
             clickedElement = source; -- store the clicked element in a global variable
             clickedElement = source; -- store the clicked element in a global variable
             local elementPos = { guiGetPosition( source, false ) };
             local elementPos = { DGS:dgsGetPosition( source, false ) };
             offsetPos = { x - elementPos[ 1 ], y - elementPos[ 2 ] }; -- get the offset position
             offsetPos = { x - elementPos[ 1 ], y - elementPos[ 2 ] }; -- get the offset position
         end
         end
Line 28: Line 29:
);
);


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


addEventHandler( "onDgsMouseMove", getRootElement( ),
addEventHandler( "onDgsMouseMove", root,
     function ( x, y )
     function ( x, y )
         if clickedElement then
         if clickedElement then
             DGS:dgsSetPosition( clickedElement, x - offsetPos[ 1 ], y - offsetPos[ 2 ], false );
             DGS:dgsSetPosition( clickedElement, x - offsetPos[ 1 ], y - offsetPos[ 2 ], false );
Line 44: Line 45:
);
);
</syntaxhighlight>
</syntaxhighlight>
==See Also==
==See Also==
===DGS events===
===DGS events===
{{DGSEVENTS}}
{{DGSEVENTS}}

Latest revision as of 14:17, 16 February 2021

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

[[{{{image}}}|link=|]] Note: This event will not trigger when onDgsMousePreClick is cancelled.

Parameters

string button, int absoluteX, int absoluteY
  • button: the name of the mouse button that was released on a DGS element, 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 DGS element on top of which the mouse button was released.

Example

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

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

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

addEventHandler( "onDgsMouseMove", root,
    function ( x, y )
        if clickedElement then
            DGS:dgsSetPosition( clickedElement, x - offsetPos[ 1 ], y - offsetPos[ 2 ], false );
        end
    end
);

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