BEAWARE all game functionality is disabled with this commit for a while

* rework client modules
* hide main window when loading
* remake top menu functions
* rework modules autoload
* improve path resolving for otml and lua
* move core_widgets to core_lib
* fix tooltip issues
* split some styles
* add bit32 lua library
* fix assert issues
* fix compilation on linux 32 systems
* rework gcc compile options
* renable and fix some warnings
* remove unused constants
* speedup sprite cache
* move UIGame to lua (not funcional yet)
* fix a lot of issues in x11 window
* fix crash handler
* add some warnings do uiwidget
and much more...
This commit is contained in:
Eduardo Bart
2012-02-20 00:27:08 -02:00
parent 96358b317d
commit e03bf33f58
201 changed files with 1443 additions and 707 deletions

View File

@@ -1,39 +0,0 @@
MainWindow
size: 256 128
text: Add to VIP list
@onEnter: VipList.addVip()
@onEscape: VipList.destroyAddWindow()
Label
text: Please enter a character name:
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
LineEdit
id: name
anchors.top: prev.bottom
anchors.left: parent.left
anchors.right: parent.right
margin-top: 4
HorizontalSeparator
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: next.top
margin-bottom: 10
Button
text: Ok
width: 64
anchors.right: next.left
anchors.bottom: parent.bottom
margin-right: 10
@onClick: VipList.addVip()
Button
text: Cancel
width: 64
anchors.right: parent.right
anchors.bottom: parent.bottom
@onClick: VipList.destroyAddWindow()

View File

@@ -1,129 +0,0 @@
VipList = {}
-- private variables
local vipWindow
local vipButton
local addVipWindow
-- public functions
function VipList.create()
vipWindow = displayUI('viplist.otui', { parent = g_game.gameRightPanel })
vipWindow:hide()
vipButton = TopMenu.addGameButton('vipListButton', 'VIP list', 'viplist.png', VipList.toggle)
end
function VipList.destroy()
vipWindow:destroy()
vipWindow = nil
vipButton:destroy()
vipButton = nil
end
function VipList.toggle()
local visible = not vipWindow:isExplicitlyVisible()
vipWindow:setVisible(visible)
vipButton:setOn(visible)
end
function VipList.createAddWindow()
addVipWindow = displayUI('addvip.otui')
end
function VipList.destroyAddWindow()
addVipWindow:destroy()
addVipWindow = nil
end
function VipList.addVip()
g_game.addVip(addVipWindow:getChildById('name'):getText())
VipList.destroyAddWindow()
end
-- hooked events
function VipList.onAddVip(id, name, online)
local vipList = vipWindow:getChildById('vipList')
local label = createWidget('VipListLabel', nil)
label:setId('vip' .. id)
label:setText(name)
if online then
label:setColor('#00ff00')
else
label:setColor('#ff0000')
end
label.vipOnline = online
label:setPhantom(false)
connect(label, { onDoubleClick = function () g_game.openPrivateChannel(label:getText()) return true end } )
local nameLower = name:lower()
local childrenCount = vipList:getChildCount()
for i=1,childrenCount do
local child = vipList:getChildByIndex(i)
if online and not child.vipOnline then
vipList:insertChild(i, label)
return
end
if (not online and not child.vipOnline) or (online and child.vipOnline) then
local childText = child:getText():lower()
local length = math.min(childText:len(), nameLower:len())
for j=1,length do
if nameLower:byte(j) < childText:byte(j) then
vipList:insertChild(i, label)
return
elseif nameLower:byte(j) > childText:byte(j) then
break
end
end
end
end
vipList:insertChild(childrenCount+1, label)
end
function VipList.onVipStateChange(id, online)
local vipList = vipWindow:getChildById('vipList')
local label = vipList:getChildById('vip' .. id)
local text = label:getText()
vipList:removeChild(label)
VipList.onAddVip(id, text, online)
end
function VipList.onVipListMousePress(widget, mousePos, mouseButton)
if mouseButton ~= MouseRightButton then return end
local vipList = vipWindow:getChildById('vipList')
local menu = createWidget('PopupMenu')
menu:addOption('Add new VIP', function() VipList.createAddWindow() end)
menu:display(mousePos)
return true
end
function VipList.onVipListLabelMousePress(widget, mousePos, mouseButton)
if mouseButton ~= MouseRightButton then return end
local vipList = vipWindow:getChildById('vipList')
local menu = createWidget('PopupMenu')
menu:addOption('Add new VIP', function() VipList.createAddWindow() end)
menu:addOption('Remove ' .. widget:getText(), function() if widget then g_game.removeVip(widget:getId():sub(4)) vipList:removeChild(widget) end end)
menu:addSeparator()
menu:addOption('Copy Name', function() g_window.setClipboardText(widget:getText()) end)
menu:display(mousePos)
return true
end
connect(g_game, { onGameStart = VipList.create,
onGameEnd = VipList.destroy,
onAddVip = VipList.onAddVip,
onVipStateChange = VipList.onVipStateChange })

View File

@@ -1,7 +0,0 @@
Module
name: game_viplist
description: Manage vip list window
author: OTClient team
website: https://github.com/edubart/otclient
onLoad: |
dofile 'viplist'

View File

@@ -1,15 +0,0 @@
VipListLabel < GameLabel
font: verdana-11px-monochrome
phantom: false
&onMousePress: VipList.onVipListLabelMousePress
MiniWindow
id: vipWindow
text: VIP List
height: 100
UIWidget
id: vipList
layout: verticalBox
anchors.fill: parent
&onMousePress: VipList.onVipListMousePress

Binary file not shown.

Before

Width:  |  Height:  |  Size: 928 B