change loadUI/UI.display lua API
This commit is contained in:
parent
63cbe11f7e
commit
55136fe866
|
@ -5,7 +5,7 @@ local about
|
||||||
|
|
||||||
-- public functions
|
-- public functions
|
||||||
function About.create()
|
function About.create()
|
||||||
about = UI.loadAndDisplay("/about/about.otui")
|
about = UI.display('about.otui')
|
||||||
UI.root:lockChild(about)
|
UI.root:lockChild(about)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ local background
|
||||||
|
|
||||||
-- public functions
|
-- public functions
|
||||||
function Background.create()
|
function Background.create()
|
||||||
background = UI.loadAndDisplay('/background/background.otui')
|
background = UI.display('background.otui')
|
||||||
end
|
end
|
||||||
|
|
||||||
function Background.destroy()
|
function Background.destroy()
|
||||||
|
|
|
@ -20,7 +20,7 @@ end
|
||||||
|
|
||||||
-- public functions
|
-- public functions
|
||||||
function Chat.create()
|
function Chat.create()
|
||||||
chatPanel = loadUI("/chat/chat.otui", Game.gameBottomPanel)
|
chatPanel = UI.display('chat.otui', { parent = Game.gameBottomPanel } )
|
||||||
chatBuffer = chatPanel:getChildById('chatBuffer')
|
chatBuffer = chatPanel:getChildById('chatBuffer')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -120,8 +120,7 @@ end
|
||||||
|
|
||||||
-- public functions
|
-- public functions
|
||||||
function Console.init()
|
function Console.init()
|
||||||
consoleWidget = UI.loadAndDisplay("/console/console.otui")
|
consoleWidget = UI.display('console.otui', { visible = false })
|
||||||
consoleWidget:hide()
|
|
||||||
connect(consoleWidget, { onKeyPress = onKeyPress })
|
connect(consoleWidget, { onKeyPress = onKeyPress })
|
||||||
|
|
||||||
commandLineEdit = consoleWidget:getChildById('commandLineEdit')
|
commandLineEdit = consoleWidget:getChildById('commandLineEdit')
|
||||||
|
|
|
@ -3,7 +3,7 @@ function table.dump(t, depth)
|
||||||
for k,v in pairs(t) do
|
for k,v in pairs(t) do
|
||||||
str = string.rep(' ', depth * 2) .. k .. ': '
|
str = string.rep(' ', depth * 2) .. k .. ': '
|
||||||
if type(v) ~= "table" then
|
if type(v) ~= "table" then
|
||||||
print(str .. v)
|
print(str .. tostring(v))
|
||||||
else
|
else
|
||||||
print(str)
|
print(str)
|
||||||
table.dump(v, depth+1)
|
table.dump(v, depth+1)
|
||||||
|
|
|
@ -1,22 +1,38 @@
|
||||||
UI = { }
|
UI = { }
|
||||||
UI.root = getRootWidget()
|
UI.root = getRootWidget()
|
||||||
|
|
||||||
function UI.loadAndDisplayLocked(otuiFile)
|
-- public functions
|
||||||
local widget = loadUI(otuiFile, UI.root)
|
function UI.display(arg1, options)
|
||||||
UI.root:lockChild(widget)
|
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
|
return widget
|
||||||
end
|
end
|
||||||
|
|
||||||
function UI.loadAndDisplay(otuiFile)
|
|
||||||
local widget = loadUI(otuiFile, UI.root)
|
|
||||||
return widget
|
|
||||||
end
|
|
||||||
|
|
||||||
function UI.display(widget)
|
|
||||||
UI.root:addChild(widget)
|
|
||||||
end
|
|
||||||
|
|
||||||
function UI.displayLocked(widget)
|
|
||||||
UI.root:addChild(widget)
|
|
||||||
UI.root:lockChild(widget)
|
|
||||||
end
|
|
||||||
|
|
|
@ -29,3 +29,27 @@ function dumpWidgets()
|
||||||
print(UI.root:getChildByIndex(i):getId())
|
print(UI.root:getChildByIndex(i):getId())
|
||||||
end
|
end
|
||||||
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
|
||||||
|
|
|
@ -56,7 +56,7 @@ function CharacterList.create(characters, premDays)
|
||||||
charactersWindow:destroy()
|
charactersWindow:destroy()
|
||||||
end
|
end
|
||||||
|
|
||||||
charactersWindow = UI.loadAndDisplay('/entergame/characterlist.otui')
|
charactersWindow = UI.display('characterlist.otui')
|
||||||
characterList = charactersWindow:getChildById('characterList')
|
characterList = charactersWindow:getChildById('characterList')
|
||||||
local accountStatusLabel = charactersWindow:getChildById('accountStatusLabel')
|
local accountStatusLabel = charactersWindow:getChildById('accountStatusLabel')
|
||||||
charactersWindow.onKeyPress = onCharactersWindowKeyPress
|
charactersWindow.onKeyPress = onCharactersWindowKeyPress
|
||||||
|
|
|
@ -51,7 +51,7 @@ end
|
||||||
|
|
||||||
-- public functions
|
-- public functions
|
||||||
function EnterGame.create()
|
function EnterGame.create()
|
||||||
enterGame = UI.loadAndDisplay('/entergame/entergame.otui')
|
enterGame = UI.display('entergame.otui')
|
||||||
|
|
||||||
local account = Configs.get('account')
|
local account = Configs.get('account')
|
||||||
local password = Configs.get('password')
|
local password = Configs.get('password')
|
||||||
|
|
|
@ -16,7 +16,7 @@ end
|
||||||
function Game.createInterface()
|
function Game.createInterface()
|
||||||
Background.hide()
|
Background.hide()
|
||||||
CharacterList.destroyLoadBox()
|
CharacterList.destroyLoadBox()
|
||||||
Game.gameUi = UI.loadAndDisplay('/game/game.otui')
|
Game.gameUi = UI.display('/game/game.otui')
|
||||||
UI.root:moveChildToIndex(Game.gameUi, 1)
|
UI.root:moveChildToIndex(Game.gameUi, 1)
|
||||||
Game.gameMapPanel = Game.gameUi:getChildById('mapPanel')
|
Game.gameMapPanel = Game.gameUi:getChildById('mapPanel')
|
||||||
Game.gameRightPanel = Game.gameUi:getChildById('rightPanel')
|
Game.gameRightPanel = Game.gameUi:getChildById('rightPanel')
|
||||||
|
|
|
@ -5,7 +5,7 @@ local healthManaPanel = nil
|
||||||
|
|
||||||
-- public functions
|
-- public functions
|
||||||
function HealthMana.create()
|
function HealthMana.create()
|
||||||
healthManaPanel = loadUI("/health_mana/health_mana.otui", Game.gameRightPanel)
|
healthManaPanel = UI.display('health_mana.otui', { parent = Game.gameRightPanel })
|
||||||
|
|
||||||
local healthBar = UIProgressBar.create()
|
local healthBar = UIProgressBar.create()
|
||||||
healthManaPanel:addChild(healthBar)
|
healthManaPanel:addChild(healthBar)
|
||||||
|
|
|
@ -16,7 +16,7 @@ local InventorySlotAmmo = 10
|
||||||
|
|
||||||
-- public functions
|
-- public functions
|
||||||
function Inventory.create()
|
function Inventory.create()
|
||||||
window = loadUI("/inventory/inventory.otui", Game.gameRightPanel)
|
window = UI.display('inventory.otui', { parent = Game.gameRightPanel })
|
||||||
|
|
||||||
local itemWidget = window:getChildById('feet')
|
local itemWidget = window:getChildById('feet')
|
||||||
window:setHeight(itemWidget:getPosition().y + itemWidget:getHeight() - window:getPosition().y)
|
window:setHeight(itemWidget:getPosition().y + itemWidget:getHeight() - window:getPosition().y)
|
||||||
|
|
|
@ -10,7 +10,7 @@ function MessageBox.create(title, text, flags)
|
||||||
setmetatable(box, MessageBox)
|
setmetatable(box, MessageBox)
|
||||||
|
|
||||||
-- create messagebox window
|
-- create messagebox window
|
||||||
local window = UI.loadAndDisplayLocked('/messagebox/messagebox.otui')
|
local window = UI.display('messagebox.otui', { locked = true })
|
||||||
window:setTitle(title)
|
window:setTitle(title)
|
||||||
|
|
||||||
local label = window:getChildById('messageBoxLabel')
|
local label = window:getChildById('messageBoxLabel')
|
||||||
|
|
|
@ -43,7 +43,7 @@ end
|
||||||
|
|
||||||
-- public functions
|
-- public functions
|
||||||
function Options.create()
|
function Options.create()
|
||||||
options = UI.loadAndDisplayLocked("/options/options.otui")
|
options = UI.display('options.otui', { locked = true })
|
||||||
|
|
||||||
local fpsBox = options:getChildById('fpsCheckBox')
|
local fpsBox = options:getChildById('fpsCheckBox')
|
||||||
local vsyncBox = options:getChildById('vsyncCheckBox')
|
local vsyncBox = options:getChildById('vsyncCheckBox')
|
||||||
|
|
|
@ -96,7 +96,7 @@ end
|
||||||
|
|
||||||
function Outfit.create(creature, outfitList)
|
function Outfit.create(creature, outfitList)
|
||||||
Outfit.destroy()
|
Outfit.destroy()
|
||||||
window = loadUI("/outfit/outfit.otui", UI.root)
|
window = UI.display('outfit.otui', { parent = UI.root })
|
||||||
window:lock()
|
window:lock()
|
||||||
|
|
||||||
m_outfit = creature:getOutfit()
|
m_outfit = creature:getOutfit()
|
||||||
|
|
|
@ -11,7 +11,7 @@ function UIItem.onMouseRelease(self, mousePos, mouseButton)
|
||||||
local menuFile = self:getStyle()['popup menu']
|
local menuFile = self:getStyle()['popup menu']
|
||||||
if not menuFile then return end
|
if not menuFile then return end
|
||||||
|
|
||||||
local popupMenu = UI.loadAndDisplay(menuFile)
|
local popupMenu = UI.display(menuFile)
|
||||||
if not popupMenu then return end
|
if not popupMenu then return end
|
||||||
|
|
||||||
popupMenu:moveTo(mousePos)
|
popupMenu:moveTo(mousePos)
|
||||||
|
|
|
@ -6,7 +6,7 @@ local skills = {"Fist Fighting", "Club Fighting", "Sword Fighting", "Axe Fightin
|
||||||
|
|
||||||
-- public functions
|
-- public functions
|
||||||
function Skills.create()
|
function Skills.create()
|
||||||
skillWindow = loadUI("/skills/skills.otui", Game.gameRightPanel)
|
skillWindow = UI.display('skills.otui', { parent = Game.gameRightPanel })
|
||||||
|
|
||||||
local skillPanel = skillWindow:getChildById('skillPanel')
|
local skillPanel = skillWindow:getChildById('skillPanel')
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ end
|
||||||
function ToolTip.display(text)
|
function ToolTip.display(text)
|
||||||
if text then
|
if text then
|
||||||
ToolTip.hide()
|
ToolTip.hide()
|
||||||
currentToolTip = UI.loadAndDisplay('/tooltip/tooltip.otui', UI.root)
|
currentToolTip = UI.display('tooltip.otui')
|
||||||
currentToolTip.onMouseMove = moveToolTip
|
currentToolTip.onMouseMove = moveToolTip
|
||||||
local label = currentToolTip:getChildById('toolTipText')
|
local label = currentToolTip:getChildById('toolTipText')
|
||||||
label:setText(text)
|
label:setText(text)
|
||||||
|
|
|
@ -5,7 +5,7 @@ local topMenu
|
||||||
|
|
||||||
-- public functions
|
-- public functions
|
||||||
function TopMenu.create()
|
function TopMenu.create()
|
||||||
topMenu = UI.loadAndDisplay("/topmenu/topmenu.otui")
|
topMenu = UI.display('topmenu.otui')
|
||||||
end
|
end
|
||||||
|
|
||||||
function TopMenu.destroy()
|
function TopMenu.destroy()
|
||||||
|
|
|
@ -5,7 +5,7 @@ local vipWindow = nil
|
||||||
|
|
||||||
-- public functions
|
-- public functions
|
||||||
function VipList.create()
|
function VipList.create()
|
||||||
vipWindow = loadUI("/viplist/viplist.otui", Game.gameRightPanel)
|
vipWindow = UI.display('viplist.otui', { parent = Game.gameRightPanel })
|
||||||
end
|
end
|
||||||
|
|
||||||
function VipList.destroy()
|
function VipList.destroy()
|
||||||
|
|
|
@ -156,10 +156,14 @@ void UIWidget::setStyleFromNode(const OTMLNodePtr& styleNode)
|
||||||
|
|
||||||
void UIWidget::setParent(const UIWidgetPtr& parent)
|
void UIWidget::setParent(const UIWidgetPtr& parent)
|
||||||
{
|
{
|
||||||
UIWidgetPtr self = asUIWidget();
|
|
||||||
|
|
||||||
// remove from old parent
|
// remove from old parent
|
||||||
UIWidgetPtr oldParent = getParent();
|
UIWidgetPtr oldParent = getParent();
|
||||||
|
|
||||||
|
// the parent is already the same
|
||||||
|
if(oldParent == parent)
|
||||||
|
return;
|
||||||
|
|
||||||
|
UIWidgetPtr self = asUIWidget();
|
||||||
if(oldParent && oldParent->hasChild(self))
|
if(oldParent && oldParent->hasChild(self))
|
||||||
oldParent->removeChild(self);
|
oldParent->removeChild(self);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue