mirror of
https://github.com/edubart/otclient.git
synced 2025-10-14 11:34:54 +02:00
reorganize modules
This commit is contained in:
@@ -1,138 +0,0 @@
|
||||
-- AnchorEdge
|
||||
AnchorNone = 0
|
||||
AnchorTop = 1
|
||||
AnchorBottom = 2
|
||||
AnchorLeft = 3
|
||||
AnchorRight = 4
|
||||
AnchorVerticalCenter = 5
|
||||
AnchorHorizontalCenter = 6
|
||||
|
||||
LogDebug = 0
|
||||
LogInfo = 1
|
||||
LogWarning = 2
|
||||
LogError = 3
|
||||
LogFatal = 4
|
||||
|
||||
ActiveFocusReason = 2
|
||||
|
||||
EmptyFunction = function() end
|
||||
|
||||
-- KeyCodes
|
||||
KeyUnknown = 0
|
||||
KeyEscape = 1
|
||||
KeyTab = 2
|
||||
KeyBackspace = 3
|
||||
KeyReturn = 4
|
||||
KeyEnter = 5
|
||||
KeyInsert = 6
|
||||
KeyDelete = 7
|
||||
KeyPause = 8
|
||||
KeyPrintScreen = 9
|
||||
KeyHome = 10
|
||||
KeyEnd = 11
|
||||
KeyPageUp = 12
|
||||
KeyPageDown = 13
|
||||
KeyUp = 14
|
||||
KeyDown = 15
|
||||
KeyLeft = 16
|
||||
KeyRight = 17
|
||||
KeyNumLock = 18
|
||||
KeyScrollLock = 19
|
||||
KeyCapsLock = 20
|
||||
KeyCtrl = 21
|
||||
KeyShift = 22
|
||||
KeyAlt = 23
|
||||
KeyAltGr = 24
|
||||
KeyMeta = 25
|
||||
KeyMenu = 26
|
||||
KeySpace = 32 -- ' '
|
||||
KeyExclamation = 33 -- !
|
||||
KeyQuote = 34 -- "
|
||||
KeyNumberSign = 35 -- #
|
||||
KeyDollar = 36 -- $
|
||||
KeyPercent = 37 -- %
|
||||
KeyAmpersand = 38 -- &
|
||||
KeyApostrophe = 39 -- '
|
||||
KeyLeftParen = 40 -- (
|
||||
KeyRightParen = 41 -- )
|
||||
KeyAsterisk = 42 -- *
|
||||
KeyPlus = 43 -- +
|
||||
KeyComma = 44 --
|
||||
KeyMinus = 45 -- -
|
||||
KeyPeriod = 46 -- .
|
||||
KeySlash = 47 -- /
|
||||
Key0 = 48 -- 0
|
||||
Key1 = 49 -- 1
|
||||
Key2 = 50 -- 2
|
||||
Key3 = 51 -- 3
|
||||
Key4 = 52 -- 4
|
||||
Key5 = 53 -- 5
|
||||
Key6 = 54 -- 6
|
||||
Key7 = 55 -- 7
|
||||
Key8 = 56 -- 8
|
||||
Key9 = 57 -- 9
|
||||
KeyColon = 58 -- :
|
||||
KeySemicolon = 59 -- ;
|
||||
KeyLess = 60 -- <
|
||||
KeyEqual = 61 -- =
|
||||
KeyGreater = 62 -- >
|
||||
KeyQuestion = 63 -- ?
|
||||
KeyAtSign = 64 -- @
|
||||
KeyA = 65 -- a
|
||||
KeyB = 66 -- b
|
||||
KeyC = 67 -- c
|
||||
KeyD = 68 -- d
|
||||
KeyE = 69 -- e
|
||||
KeyF = 70 -- f
|
||||
KeyG = 71 -- g
|
||||
KeyH = 72 -- h
|
||||
KeyI = 73 -- i
|
||||
KeyJ = 74 -- j
|
||||
KeyK = 75 -- k
|
||||
KeyL = 76 -- l
|
||||
KeyM = 77 -- m
|
||||
KeyN = 78 -- n
|
||||
KeyO = 79 -- o
|
||||
KeyP = 80 -- p
|
||||
KeyQ = 81 -- q
|
||||
KeyR = 82 -- r
|
||||
KeyS = 83 -- s
|
||||
KeyT = 84 -- t
|
||||
KeyU = 85 -- u
|
||||
KeyV = 86 -- v
|
||||
KeyW = 87 -- w
|
||||
KeyX = 88 -- x
|
||||
KeyY = 89 -- y
|
||||
KeyZ = 90 -- z
|
||||
KeyLeftBracket = 91 -- [
|
||||
KeyBackslash = 92 -- '\'
|
||||
KeyRightBracket = 93 -- ]
|
||||
KeyCaret = 94 -- ^
|
||||
KeyUnderscore = 95 -- _
|
||||
KeyGrave = 96 -- `
|
||||
KeyLeftCurly = 123 -- {
|
||||
KeyBar = 124 -- |
|
||||
KeyRightCurly = 125 -- }
|
||||
KeyTilde = 126 -- ~
|
||||
KeyF1 = 128
|
||||
KeyF2 = 129
|
||||
KeyF3 = 130
|
||||
KeyF4 = 131
|
||||
KeyF5 = 132
|
||||
KeyF6 = 134
|
||||
KeyF7 = 135
|
||||
KeyF8 = 136
|
||||
KeyF9 = 137
|
||||
KeyF10 = 138
|
||||
KeyF11 = 139
|
||||
KeyF12 = 140
|
||||
|
||||
KeyboardNoModifier = 0
|
||||
KeyboardCtrlModifier = 1
|
||||
KeyboardAltModifier = 2
|
||||
KeyboardShiftModifier = 4
|
||||
|
||||
MouseNoButton = 0
|
||||
MouseLeftButton = 1
|
||||
MouseRightButton = 2
|
||||
MouseMidButton = 3
|
@@ -3,19 +3,15 @@ Module
|
||||
description: Contains lua classes, functions and constants used by other modules
|
||||
author: OTClient team
|
||||
website: https://github.com/edubart/otclient
|
||||
|
||||
// core must be loaded before other modules
|
||||
autoLoad: true
|
||||
autoLoadPriority: 10
|
||||
|
||||
// NOTE: order does matter
|
||||
dependencies:
|
||||
- core_fonts
|
||||
- core_styles
|
||||
|
||||
onLoad: |
|
||||
require 'ext/table'
|
||||
require 'ext/string'
|
||||
require 'constants'
|
||||
require 'util'
|
||||
require 'dispatcher'
|
||||
require 'widget'
|
||||
require 'ui'
|
||||
require 'gfx'
|
||||
return true
|
||||
- core_scripts
|
||||
- core_widgets
|
||||
|
||||
|
@@ -1,43 +0,0 @@
|
||||
local eventId = 0
|
||||
local eventsTable = { }
|
||||
local orig = { scheduleEvent = scheduleEvent,
|
||||
addEvent = addEvent }
|
||||
|
||||
-- fix original scheduleEvent
|
||||
function scheduleEvent(func, delay)
|
||||
eventId = eventId + 1
|
||||
local id = eventId
|
||||
local function proxyFunc()
|
||||
if eventsTable[id] then
|
||||
func()
|
||||
eventsTable[id] = nil
|
||||
end
|
||||
end
|
||||
eventsTable[id] = proxyFunc
|
||||
orig.scheduleEvent(proxyFunc, delay)
|
||||
return id
|
||||
end
|
||||
|
||||
-- FIXME: the event function can be collected
|
||||
-- and the dispatcher would call an invalid function, generating an warning
|
||||
function removeEvent(id)
|
||||
if id and eventsTable[id] then
|
||||
eventsTable[id] = nil
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
-- fix original addEvent
|
||||
function addEvent(func)
|
||||
eventId = eventId + 1
|
||||
local id = eventId
|
||||
local function proxyFunc()
|
||||
if eventsTable[id] then
|
||||
func()
|
||||
eventsTable[id] = nil
|
||||
end
|
||||
end
|
||||
eventsTable[id] = proxyFunc
|
||||
orig.addEvent(proxyFunc)
|
||||
return id
|
||||
end
|
@@ -1 +0,0 @@
|
||||
Color = {}
|
@@ -1 +0,0 @@
|
||||
Point = {}
|
@@ -1 +0,0 @@
|
||||
Rect = {}
|
@@ -1 +0,0 @@
|
||||
Size = {}
|
@@ -1,26 +0,0 @@
|
||||
function string:split(sep)
|
||||
local t = { }
|
||||
local function helper(word)
|
||||
table.insert(t, word)
|
||||
return ""
|
||||
end
|
||||
if not self:gsub("%w+", helper):find("%S") then
|
||||
return t
|
||||
end
|
||||
end
|
||||
|
||||
function string:starts(start)
|
||||
return self:sub(1, #start) == start
|
||||
end
|
||||
|
||||
function string.trim(str)
|
||||
return str:match'^%s*(.*%S)' or ''
|
||||
end
|
||||
|
||||
function toboolean(str)
|
||||
str = string.trim(str)
|
||||
if str == '1' or str == 'true' then
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
@@ -1,34 +0,0 @@
|
||||
function table.dump(t, depth)
|
||||
if not depth then depth = 0 end
|
||||
for k,v in pairs(t) do
|
||||
str = string.rep(' ', depth * 2) .. k .. ': '
|
||||
if type(v) ~= "table" then
|
||||
print(str .. tostring(v))
|
||||
else
|
||||
print(str)
|
||||
table.dump(v, depth+1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function table.copy(t)
|
||||
local res = {}
|
||||
for k,v in pairs(t) do
|
||||
res[k] = v
|
||||
end
|
||||
return res
|
||||
end
|
||||
|
||||
function table.selective_copy(t, keys)
|
||||
local res = { }
|
||||
for i,v in ipairs(keys) do
|
||||
res[v] = t[v]
|
||||
end
|
||||
return res
|
||||
end
|
||||
|
||||
function table.merge(t, src)
|
||||
for k,v in pairs(src) do
|
||||
t[k] = v
|
||||
end
|
||||
end
|
@@ -1,26 +0,0 @@
|
||||
GFX = { }
|
||||
|
||||
function GFX.fadeIn(widget, time, elapsed)
|
||||
if not elapsed then elapsed = 0 end
|
||||
if not time then time = 250 end
|
||||
widget:setOpacity(math.min((255*elapsed)/time, 255))
|
||||
if elapsed < time then
|
||||
scheduleEvent(function()
|
||||
GFX.fadeIn(widget, time, elapsed + 30)
|
||||
end, 30)
|
||||
end
|
||||
end
|
||||
|
||||
function GFX.fadeOut(widget, time, elapsed)
|
||||
if not elapsed then elapsed = 0 end
|
||||
if not time then time = 250 end
|
||||
widget:setOpacity((255*(time - elapsed))/time)
|
||||
if elapsed < time then
|
||||
scheduleEvent(function()
|
||||
GFX.fadeOut(widget, time, elapsed + 30)
|
||||
end, 30)
|
||||
else
|
||||
widget:destroy()
|
||||
end
|
||||
end
|
||||
|
@@ -1,38 +0,0 @@
|
||||
UI = { }
|
||||
UI.root = getRootWidget()
|
||||
|
||||
-- public functions
|
||||
function UI.display(arg1, options)
|
||||
local widget
|
||||
local parent
|
||||
if options then parent = options.parent end
|
||||
parent = parent or UI.root
|
||||
|
||||
-- display otui files
|
||||
if type(arg1) == 'string' then
|
||||
local otuiFilePath = resolveFileFullPath(arg1, 2)
|
||||
widget = loadUI(otuiFilePath, parent)
|
||||
-- display already loaded widgets
|
||||
else
|
||||
widget = arg1
|
||||
if parent:hasChild(widget) then
|
||||
widget:focus()
|
||||
widget:show()
|
||||
else
|
||||
parent:addChild(widget)
|
||||
widget:show()
|
||||
end
|
||||
end
|
||||
|
||||
-- apply display options
|
||||
if widget and options then
|
||||
for option,value in pairs(options) do
|
||||
if option == 'locked' and value then
|
||||
widget:lock()
|
||||
elseif option == 'visible' then
|
||||
widget:setVisible(value)
|
||||
end
|
||||
end
|
||||
end
|
||||
return widget
|
||||
end
|
@@ -1,55 +0,0 @@
|
||||
function print(...)
|
||||
local msg = ""
|
||||
for i,v in ipairs(arg) do
|
||||
msg = msg .. tostring(v) .. "\t"
|
||||
end
|
||||
Logger.log(LogInfo, msg)
|
||||
end
|
||||
|
||||
function createEnvironment()
|
||||
local env = { }
|
||||
setmetatable(env, { __index = _G} )
|
||||
return env
|
||||
end
|
||||
|
||||
function connect(object, signalsAndSlots)
|
||||
for signal,slot in pairs(signalsAndSlots) do
|
||||
if not object[signal] then
|
||||
object[signal] = slot
|
||||
elseif type(object[signal]) == 'function' then
|
||||
object[signal] = { object[signal], slot }
|
||||
elseif type(object[signal]) == 'table' then
|
||||
table.insert(object[signal], #object[signal]+1, slot)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function dumpWidgets()
|
||||
for i=1,UI.root:getChildCount() do
|
||||
print(UI.root:getChildByIndex(i):getId())
|
||||
end
|
||||
end
|
||||
|
||||
function getCallingScriptSourcePath(depth)
|
||||
depth = depth or 2
|
||||
local info = debug.getinfo(1+depth, "Sn")
|
||||
local path
|
||||
if info.short_src then
|
||||
path = info.short_src:match("(.*)/.*")
|
||||
end
|
||||
if not path then
|
||||
path = '/'
|
||||
elseif path:sub(0, 1) ~= '/' then
|
||||
path = '/' .. path
|
||||
end
|
||||
return path
|
||||
end
|
||||
|
||||
function resolveFileFullPath(filePath, depth)
|
||||
depth = depth or 1
|
||||
if filePath:sub(0, 1) ~= '/' then
|
||||
return getCallingScriptSourcePath(depth+1) .. '/' .. filePath
|
||||
else
|
||||
return filePath
|
||||
end
|
||||
end
|
@@ -1,19 +0,0 @@
|
||||
function UIWidget:setMargin(...)
|
||||
local params = {...}
|
||||
if #params == 1 then
|
||||
self:setMarginTop(params[1])
|
||||
self:setMarginRight(params[1])
|
||||
self:setMarginBottom(params[1])
|
||||
self:setMarginLeft(params[1])
|
||||
elseif #params == 2 then
|
||||
self:setMarginTop(params[1])
|
||||
self:setMarginRight(params[2])
|
||||
self:setMarginBottom(params[1])
|
||||
self:setMarginLeft(params[2])
|
||||
elseif #params == 4 then
|
||||
self:setMarginTop(params[1])
|
||||
self:setMarginRight(params[2])
|
||||
self:setMarginBottom(params[3])
|
||||
self:setMarginLeft(params[4])
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user