πŸ“–drag-drop

drag and drop library

the library allows you to create draggable objects

example of usage:

local dragging = require("morion/drag-drop")

local x_pos = ui:new_slider_int("x pos", 50, engine.get_screen_size( ).x)
local y_pos = ui:new_slider_int("y pos", 50, engine.get_screen_size( ).y)

local new_drag_obj = dragging.push({ x, y }, vector_2d(100, 100), "new-object", function(self)
    draw.rect_filled( self.position.x, self.position.y, self.size.x, self.size.y, color_rgb(255, 255, 255) )
end)

callbacks.init("on_paint", function()
    new_drag_obj:draw()

    -- saving x & y for new_drag_obj
    for k, v in pairs(new_drag_obj:get_elements()) do
        v:set( k == "x" and new_drag_obj:get_position().x or new_drag_obj:get_position().y )
    end
end)

functions:

push

.push(xy: table, size: vector_2d, name: string, draw: function): drag_elem

classes:

draw

<drag_elem>:draw()

drawing draggable element

get_elements

<drag_elem>:get_elements() array of 'menu_element'

returns gui elements from draggable element

get_position

<drag_elem>:get_position() vector_2d

returns draggable element position

Last updated