outfit window working, still needs radio group and remove test button
This commit is contained in:
parent
b1e1487745
commit
aad540f5b5
|
@ -46,3 +46,32 @@ ColorBox < UICheckBox
|
||||||
image:
|
image:
|
||||||
source: /core_styles/images/colorbox.png
|
source: /core_styles/images/colorbox.png
|
||||||
coords: 0 0 16 16
|
coords: 0 0 16 16
|
||||||
|
|
||||||
|
ButtonBox < UICheckBox
|
||||||
|
font: verdana-11px-antialised
|
||||||
|
background-color: white
|
||||||
|
color: #f0ad4dff
|
||||||
|
size: 106 24
|
||||||
|
box-size: 106 24
|
||||||
|
text-offset: 0 0
|
||||||
|
text-align: center
|
||||||
|
|
||||||
|
border-image:
|
||||||
|
source: /core_styles/images/button.png
|
||||||
|
border: 5
|
||||||
|
|
||||||
|
$hover:
|
||||||
|
border-image:
|
||||||
|
source: /core_styles/images/button_hover.png
|
||||||
|
border: 5
|
||||||
|
|
||||||
|
$checked:
|
||||||
|
text-offset: 1 1
|
||||||
|
border-image:
|
||||||
|
source: /core_styles/images/button_down.png
|
||||||
|
border: 5
|
||||||
|
|
||||||
|
$disabled:
|
||||||
|
color: #f0ad4d88
|
||||||
|
background-color: #ffffff88
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ local m_outfit = nil
|
||||||
local m_outfits = nil
|
local m_outfits = nil
|
||||||
local m_currentOutfit = 1
|
local m_currentOutfit = 1
|
||||||
local m_currentColor = nil
|
local m_currentColor = nil
|
||||||
|
local m_currentClothe = nil
|
||||||
|
|
||||||
-- private functions
|
-- private functions
|
||||||
local function onAddonCheckChange(addon, value)
|
local function onAddonCheckChange(addon, value)
|
||||||
|
@ -18,6 +19,60 @@ local function onAddonCheckChange(addon, value)
|
||||||
m_creature:setOutfit(m_outfit)
|
m_creature:setOutfit(m_outfit)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function onColorCheckChange(color)
|
||||||
|
if color == m_currentColor then
|
||||||
|
color.onCheckChange = nil
|
||||||
|
color:setChecked(true)
|
||||||
|
color.onCheckChange = function() onColorCheckChange(color) end
|
||||||
|
else
|
||||||
|
m_currentColor.onCheckChange = nil
|
||||||
|
m_currentColor:setChecked(false)
|
||||||
|
local color2 = m_currentColor
|
||||||
|
m_currentColor.onCheckChange = function() onColorCheckChange(color2) end
|
||||||
|
|
||||||
|
m_currentColor = color
|
||||||
|
|
||||||
|
if m_currentClothe:getId() == 'head' then
|
||||||
|
m_outfit.head = m_currentColor.colorId
|
||||||
|
elseif m_currentClothe:getId() == 'primary' then
|
||||||
|
m_outfit.body = m_currentColor.colorId
|
||||||
|
elseif m_currentClothe:getId() == 'secondary' then
|
||||||
|
m_outfit.legs = m_currentColor.colorId
|
||||||
|
elseif m_currentClothe:getId() == 'detail' then
|
||||||
|
m_outfit.feet = m_currentColor.colorId
|
||||||
|
end
|
||||||
|
|
||||||
|
m_creature:setOutfit(m_outfit)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function onClotheCheckChange(clothe)
|
||||||
|
if clothe == m_currentClothe then
|
||||||
|
clothe.onCheckChange = nil
|
||||||
|
clothe:setChecked(true)
|
||||||
|
clothe.onCheckChange = function() onClotheCheckChange(clothe) end
|
||||||
|
else
|
||||||
|
m_currentClothe.onCheckChange = nil
|
||||||
|
m_currentClothe:setChecked(false)
|
||||||
|
local clothe2 = m_currentClothe
|
||||||
|
m_currentClothe.onCheckChange = function() onClotheCheckChange(clothe2) end
|
||||||
|
|
||||||
|
m_currentClothe = clothe
|
||||||
|
|
||||||
|
local color = 0
|
||||||
|
if m_currentClothe:getId() == 'head' then
|
||||||
|
color = m_outfit.head
|
||||||
|
elseif m_currentClothe:getId() == 'primary' then
|
||||||
|
color = m_outfit.body
|
||||||
|
elseif m_currentClothe:getId() == 'secondary' then
|
||||||
|
color = m_outfit.legs
|
||||||
|
elseif m_currentClothe:getId() == 'detail' then
|
||||||
|
color = m_outfit.feet
|
||||||
|
end
|
||||||
|
window:getChildById('color' .. color):setChecked(true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local function update()
|
local function update()
|
||||||
local nameWidget = window:getChildById('name')
|
local nameWidget = window:getChildById('name')
|
||||||
nameWidget:setText(m_outfits[currentOutfit][2])
|
nameWidget:setText(m_outfits[currentOutfit][2])
|
||||||
|
@ -64,24 +119,6 @@ local function update()
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local function onColorCheckChange(color)
|
|
||||||
if color == m_currentColor then
|
|
||||||
color.onCheckChange = nil
|
|
||||||
color:setChecked(true)
|
|
||||||
color.onCheckChange = function() onColorCheckChange(color) end
|
|
||||||
else
|
|
||||||
m_currentColor.onCheckChange = nil
|
|
||||||
m_currentColor:setChecked(false)
|
|
||||||
local color2 = m_currentColor
|
|
||||||
m_currentColor.onCheckChange = function() onColorCheckChange(color2) end
|
|
||||||
|
|
||||||
m_currentColor = color
|
|
||||||
|
|
||||||
m_outfit.head = m_currentColor.colorId
|
|
||||||
m_creature:setOutfit(m_outfit)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- public functions
|
-- public functions
|
||||||
function Outfit.test()
|
function Outfit.test()
|
||||||
local button = UIButton.create()
|
local button = UIButton.create()
|
||||||
|
@ -101,6 +138,16 @@ function Outfit.create(creature, outfitList)
|
||||||
|
|
||||||
m_outfit = creature:getOutfit()
|
m_outfit = creature:getOutfit()
|
||||||
|
|
||||||
|
m_currentClothe = window:getChildById('head')
|
||||||
|
local head = window:getChildById('head')
|
||||||
|
local primary = window:getChildById('primary')
|
||||||
|
local secondary = window:getChildById('secondary')
|
||||||
|
local detail = window:getChildById('detail')
|
||||||
|
head.onCheckChange = function() onClotheCheckChange(head) end
|
||||||
|
primary.onCheckChange = function() onClotheCheckChange(primary) end
|
||||||
|
secondary.onCheckChange = function() onClotheCheckChange(secondary) end
|
||||||
|
detail.onCheckChange = function() onClotheCheckChange(detail) end
|
||||||
|
|
||||||
local creatureWidget = window:getChildById('creature')
|
local creatureWidget = window:getChildById('creature')
|
||||||
creatureWidget:setCreature(creature)
|
creatureWidget:setCreature(creature)
|
||||||
|
|
||||||
|
@ -110,6 +157,7 @@ function Outfit.create(creature, outfitList)
|
||||||
window:addChild(color)
|
window:addChild(color)
|
||||||
|
|
||||||
local outfitColor = getOufitColor(j*19 + i)
|
local outfitColor = getOufitColor(j*19 + i)
|
||||||
|
color:setId('color' .. j*19+i)
|
||||||
color.colorId = j*19 + i
|
color.colorId = j*19 + i
|
||||||
color:setStyle('Color')
|
color:setStyle('Color')
|
||||||
color:setBackgroundColor(outfitColor)
|
color:setBackgroundColor(outfitColor)
|
||||||
|
|
|
@ -27,26 +27,27 @@ Window
|
||||||
anchors.left: name.left
|
anchors.left: name.left
|
||||||
margin-top: 5
|
margin-top: 5
|
||||||
|
|
||||||
Button
|
ButtonBox
|
||||||
id: head
|
id: head
|
||||||
text: Head
|
text: Head
|
||||||
anchors.top: creature.top
|
anchors.top: creature.top
|
||||||
anchors.left: creature.right
|
anchors.left: creature.right
|
||||||
margin-left: 10
|
margin-left: 10
|
||||||
|
checked: true
|
||||||
|
|
||||||
Button
|
ButtonBox
|
||||||
id: primary
|
id: primary
|
||||||
text: Primary
|
text: Primary
|
||||||
anchors.top: prev.bottom
|
anchors.top: prev.bottom
|
||||||
anchors.left: prev.left
|
anchors.left: prev.left
|
||||||
|
|
||||||
Button
|
ButtonBox
|
||||||
id: secondary
|
id: secondary
|
||||||
text: Secondary
|
text: Secondary
|
||||||
anchors.top: prev.bottom
|
anchors.top: prev.bottom
|
||||||
anchors.left: prev.left
|
anchors.left: prev.left
|
||||||
|
|
||||||
Button
|
ButtonBox
|
||||||
id: detail
|
id: detail
|
||||||
text: Detail
|
text: Detail
|
||||||
anchors.top: prev.bottom
|
anchors.top: prev.bottom
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "uicheckbox.h"
|
#include "uicheckbox.h"
|
||||||
|
#include "uitranslator.h"
|
||||||
#include <framework/otml/otmlnode.h>
|
#include <framework/otml/otmlnode.h>
|
||||||
#include <framework/graphics/image.h>
|
#include <framework/graphics/image.h>
|
||||||
#include <framework/graphics/font.h>
|
#include <framework/graphics/font.h>
|
||||||
|
@ -30,6 +31,7 @@
|
||||||
UICheckBox::UICheckBox()
|
UICheckBox::UICheckBox()
|
||||||
{
|
{
|
||||||
m_focusable = false;
|
m_focusable = false;
|
||||||
|
m_textAlign = Fw::AlignLeft;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UICheckBox::render()
|
void UICheckBox::render()
|
||||||
|
@ -46,7 +48,7 @@ void UICheckBox::render()
|
||||||
if(m_text.length()) {
|
if(m_text.length()) {
|
||||||
Rect textRect(m_rect);
|
Rect textRect(m_rect);
|
||||||
textRect.setTopLeft(textRect.topLeft() + m_textOffset);
|
textRect.setTopLeft(textRect.topLeft() + m_textOffset);
|
||||||
m_font->renderText(m_text, textRect, Fw::AlignLeft, m_foregroundColor);
|
m_font->renderText(m_text, textRect, m_textAlign, m_foregroundColor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,6 +69,8 @@ void UICheckBox::onStyleApply(const OTMLNodePtr& styleNode)
|
||||||
m_text = node->value();
|
m_text = node->value();
|
||||||
else if(node->tag() == "box-size")
|
else if(node->tag() == "box-size")
|
||||||
m_boxSize = node->value<Size>();
|
m_boxSize = node->value<Size>();
|
||||||
|
else if(node->tag() == "text-align")
|
||||||
|
m_textAlign = Fw::translateAlignment(node->value());
|
||||||
else if(node->tag() == "checked") {
|
else if(node->tag() == "checked") {
|
||||||
// must be scheduled because setChecked can change the style again
|
// must be scheduled because setChecked can change the style again
|
||||||
g_dispatcher.addEvent(std::bind(&UICheckBox::setChecked, asUICheckBox(), node->value<bool>()));
|
g_dispatcher.addEvent(std::bind(&UICheckBox::setChecked, asUICheckBox(), node->value<bool>()));
|
||||||
|
|
|
@ -46,6 +46,7 @@ protected:
|
||||||
std::string m_text;
|
std::string m_text;
|
||||||
Size m_boxSize;
|
Size m_boxSize;
|
||||||
Point m_textOffset;
|
Point m_textOffset;
|
||||||
|
Fw::AlignmentFlag m_textAlign;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue