tibia-client/modules/corelib/mouse.lua

60 lines
1.5 KiB
Lua
Raw Normal View History

2012-06-26 00:13:30 +02:00
-- @docclass
g_mouse = {}
2012-01-08 16:42:23 +01:00
2012-03-29 00:42:02 +02:00
local cursorChanged = false
2012-06-26 00:13:30 +02:00
function g_mouse.setTargetCursor()
2012-06-19 10:46:49 +02:00
g_window.setMouseCursor('/cursors/targetcursor.png', {x=9,y=9})
cursorChanged = true
end
2012-06-26 00:13:30 +02:00
function g_mouse.setHorizontalCursor()
2012-06-19 10:46:49 +02:00
g_window.setMouseCursor('/cursors/horizontal.png', {x=9,y=4})
cursorChanged = true
end
2012-06-26 00:13:30 +02:00
function g_mouse.setVerticalCursor()
2012-06-19 10:46:49 +02:00
g_window.setMouseCursor('/cursors/vertical.png', {x=4,y=9})
cursorChanged = true
end
2012-06-26 00:13:30 +02:00
function g_mouse.restoreCursor()
g_window.restoreMouseCursor()
cursorChanged = false
end
2012-06-26 00:13:30 +02:00
function g_mouse.isCursorChanged()
return cursorChanged
end
2012-06-26 00:13:30 +02:00
function g_mouse.isPressed(button)
if not button then button = MouseLeftButton end
return g_window.isMouseButtonPressed(button)
end
function g_mouse.bindAutoPress(widget, callback, delay, button)
local button = button or MouseLeftButton
connect(widget, { onMousePress = function(widget, mousePos, mouseButton)
if mouseButton ~= button then
return false
end
local startTime = g_clock.millis()
callback(widget, mousePos, mouseButton, 0)
periodicalEvent(function()
callback(widget, g_window.getMousePosition(), mouseButton, g_clock.millis() - startTime)
end, function()
return g_mouse.isPressed(mouseButton)
end, 30, delay)
return true
end })
end
2012-06-26 00:13:30 +02:00
function g_mouse.bindPressMove(widget, callback)
connect(widget, { onMouseMove = function(widget, mousePos, mouseMoved)
if widget:isPressed() then
callback(mousePos, mouseMoved)
end
return true
end })
end