add options style for UIComboBox, fix push values of otml nodes

This commit is contained in:
Eduardo Bart 2012-01-16 06:26:57 -02:00
parent 186e3dc86b
commit e6cb3de637
5 changed files with 25 additions and 10 deletions

1
TODO
View File

@ -64,6 +64,7 @@ change win32 mouse cursor icon
[bart] make set of background/icon/image width alone work
[bart] check for recursive anchors and print a error instead of crashing
[bart] make api to enable/disable capture of events to avoid massive event processing
[bart] review style apply system
== Client modules
[bart] make possible to reload modules

View File

@ -55,8 +55,8 @@ local function onWidgetStyleApply(widget, styleName, styleNode)
end
end
connect(UIWidget, { onStyleApply = onWidgetStyleApply,
onHoverChange = onWidgetHoverChange})
--connect(UIWidget, { onStyleApply = onWidgetStyleApply,
-- onHoverChange = onWidgetHoverChange})
-- UIWidget extensions
function UIWidget:setTooltip(text)

View File

@ -13,7 +13,7 @@ function UIComboBox:setCurrentOption(text)
if v.text == text and self.m_currentIndex ~= i then
self.m_currentIndex = i
self:setText(text)
self:onOptionChange(text, data)
self:onOptionChange(text, v.data)
return
end
end
@ -38,6 +38,14 @@ function UIComboBox:onMousePress(mousePos, mouseButton)
return true
end
function UIComboBox:onStyleApply(styleName, styleNode)
if styleNode.options then
for k,option in pairs(styleNode.options) do
self:addOption(option)
end
end
end
function UIComboBox:onOptionChange(optionText, optionData)
-- nothing todo
end

View File

@ -219,16 +219,19 @@ void push_otml_subnode_luavalue(const OTMLNodePtr& node)
} else if(node->hasChildren()) {
g_lua.newTable();
bool pushedChild = false;
int currentIndex = 1;
for(const OTMLNodePtr& cnode : node->children()) {
if(cnode->isUnique()) {
push_luavalue(cnode);
push_otml_subnode_luavalue(cnode);
if(!g_lua.isNil()) {
g_lua.setField(cnode->tag());
if(cnode->isUnique()) {
g_lua.pushString(cnode->tag());
g_lua.rawSet();
} else
g_lua.rawSeti(currentIndex++);
pushedChild = true;
} else
g_lua.pop();
}
}
if(!pushedChild) {
g_lua.pop();
g_lua.pushNil();

View File

@ -364,6 +364,9 @@ void UIWidget::unlockChild(const UIWidgetPtr& child)
void UIWidget::applyStyle(const OTMLNodePtr& styleNode)
{
if(styleNode->size() == 0)
return;
m_loadingStyle = true;
try {
onStyleApply(styleNode->tag(), styleNode);