add style for colorbox in outfit window
This commit is contained in:
parent
c999a49dc7
commit
ba62863ff7
|
@ -17,7 +17,7 @@ Checkout our website at {http://otclient.info}[http://otclient.info/] for tutori
|
|||
== Need help?
|
||||
|
||||
If you have any questions or are looking for more information, please feel free to ask on our official
|
||||
forum at http://otclient.info/
|
||||
forum at http://otclient.info
|
||||
|
||||
== Bugs
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 250 B |
|
@ -31,3 +31,18 @@ CheckBox < UICheckBox
|
|||
$disabled:
|
||||
background-color: #ffffff88
|
||||
color: #aaaaaa88
|
||||
|
||||
ColorBox < UICheckBox
|
||||
size: 16 16
|
||||
box-size: 16 16
|
||||
background-color: #ffffffff
|
||||
|
||||
$checked:
|
||||
image:
|
||||
source: /core_styles/images/colorbox.png
|
||||
coords: 16 0 16 16
|
||||
|
||||
$!checked:
|
||||
image:
|
||||
source: /core_styles/images/colorbox.png
|
||||
coords: 0 0 16 16
|
||||
|
|
|
@ -78,8 +78,8 @@ function Outfit.create(creature, outfitList)
|
|||
|
||||
color:setStyle('Color')
|
||||
color:setBackgroundColor(outfitColor)
|
||||
color:setMarginTop(j * 3 + j * 12)
|
||||
color:setMarginLeft(i * 3 + i * 12)
|
||||
color:setMarginTop(j * 3 + j * 14)
|
||||
color:setMarginLeft(i * 3 + i * 14)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,24 +1,16 @@
|
|||
ColorCheckBox < UICheckBox
|
||||
size: 12 12
|
||||
box-size: 12 12
|
||||
background-color: #ffffffff
|
||||
|
||||
image:
|
||||
source: /core_styles/images/empty_rect.png
|
||||
|
||||
ColorFirst < UIWidget
|
||||
id: color
|
||||
margin.left: 20
|
||||
anchors.top: creature.top
|
||||
anchors.left: creature.right
|
||||
|
||||
Color < ColorCheckBox
|
||||
Color < ColorBox
|
||||
anchors.top: color.top
|
||||
anchors.left: color.right
|
||||
|
||||
Window
|
||||
title: Select Outfit
|
||||
size: 420 280
|
||||
size: 450 280
|
||||
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
|
|
@ -163,13 +163,14 @@ bool luavalue_cast(int index, Rect& rect)
|
|||
rect.setWidth(g_lua.popInteger());
|
||||
g_lua.getField("height", index);
|
||||
rect.setHeight(g_lua.popInteger());
|
||||
return true;
|
||||
} else if(g_lua.isString()) {
|
||||
return Fw::cast(g_lua.toString(index), rect);
|
||||
} else if(g_lua.isNil()) {
|
||||
rect = Rect();
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
// point
|
||||
|
@ -196,7 +197,7 @@ bool luavalue_cast(int index, Point& point)
|
|||
point = Point();
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
// size
|
||||
|
@ -223,7 +224,7 @@ bool luavalue_cast(int index, Size& size)
|
|||
size = Size();
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
// otml nodes
|
||||
|
@ -270,9 +271,9 @@ bool luavalue_cast(int index, OTMLNodePtr& node)
|
|||
node->writeAt(cnodeName, g_lua.toString());
|
||||
g_lua.pop();
|
||||
}
|
||||
} else
|
||||
return false;
|
||||
return true;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// object ptr
|
||||
|
|
|
@ -48,7 +48,7 @@ void UICheckBox::render()
|
|||
void UICheckBox::onMouseRelease(const Point& mousePos, Fw::MouseButton button)
|
||||
{
|
||||
if(isPressed() && getRect().contains(mousePos))
|
||||
setState(Fw::CheckedState, !isChecked());
|
||||
setChecked(!isChecked());
|
||||
}
|
||||
|
||||
void UICheckBox::onStyleApply(const OTMLNodePtr& styleNode)
|
||||
|
@ -68,3 +68,14 @@ void UICheckBox::onStyleApply(const OTMLNodePtr& styleNode)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool UICheckBox::isChecked()
|
||||
{
|
||||
return hasState(Fw::CheckedState);
|
||||
}
|
||||
|
||||
void UICheckBox::setChecked(bool checked)
|
||||
{
|
||||
if(setState(Fw::CheckedState, checked))
|
||||
callLuaField("onCheckChange", checked);
|
||||
}
|
||||
|
|
|
@ -30,8 +30,8 @@ class UICheckBox : public UIWidget
|
|||
public:
|
||||
void render();
|
||||
|
||||
bool isChecked() { return hasState(Fw::CheckedState); }
|
||||
void setChecked(bool checked) { setState(Fw::CheckedState, checked); }
|
||||
bool isChecked();
|
||||
void setChecked(bool checked);
|
||||
|
||||
void setText(const std::string& text) { m_text = text; }
|
||||
std::string getText() { return m_text; }
|
||||
|
|
|
@ -615,10 +615,10 @@ void UIWidget::updateLayout()
|
|||
m_layout->update();
|
||||
}
|
||||
|
||||
void UIWidget::setState(Fw::WidgetState state, bool on)
|
||||
bool UIWidget::setState(Fw::WidgetState state, bool on)
|
||||
{
|
||||
if(state == Fw::InvalidState)
|
||||
return;
|
||||
return false;
|
||||
|
||||
int oldStates = m_states;
|
||||
if(on)
|
||||
|
@ -626,8 +626,11 @@ void UIWidget::setState(Fw::WidgetState state, bool on)
|
|||
else
|
||||
m_states &= ~state;
|
||||
|
||||
if(oldStates != m_states)
|
||||
if(oldStates != m_states) {
|
||||
updateStyle();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool UIWidget::hasState(Fw::WidgetState state)
|
||||
|
@ -700,9 +703,7 @@ void UIWidget::updateState(Fw::WidgetState state)
|
|||
child->updateState(state);
|
||||
}
|
||||
|
||||
if(newStatus != oldStatus) {
|
||||
setState(state, newStatus);
|
||||
|
||||
if(setState(state, newStatus)) {
|
||||
if(state == Fw::FocusState) {
|
||||
g_dispatcher.addEvent(std::bind(&UIWidget::onFocusChange, asUIWidget(), newStatus, m_lastFocusReason));
|
||||
} else if(state == Fw::HoverState)
|
||||
|
|
|
@ -149,7 +149,7 @@ public:
|
|||
|
||||
void updateStates();
|
||||
virtual void updateState(Fw::WidgetState state);
|
||||
void setState(Fw::WidgetState state, bool on);
|
||||
bool setState(Fw::WidgetState state, bool on);
|
||||
bool hasState(Fw::WidgetState state);
|
||||
|
||||
void updateStyle();
|
||||
|
|
|
@ -39,6 +39,9 @@
|
|||
#include <otclient/ui/uimap.h>
|
||||
#include <otclient/core/outfit.h>
|
||||
|
||||
void push_luavalue(const Outfit& outfit);
|
||||
bool luavalue_cast(int index, Outfit& outfit);
|
||||
|
||||
void OTClient::registerLuaFunctions()
|
||||
{
|
||||
g_lua.bindGlobalFunction("exit", std::bind(&OTClient::exit, &g_client));
|
||||
|
@ -90,3 +93,40 @@ void OTClient::registerLuaFunctions()
|
|||
g_lua.bindClassStaticFunction<Game>("talkPrivate", std::bind(&Game::talkPrivate, &g_game, _1, _2, _3));
|
||||
#endif
|
||||
}
|
||||
|
||||
void push_luavalue(const Outfit& outfit)
|
||||
{
|
||||
g_lua.newTable();
|
||||
g_lua.pushInteger(outfit.getType());
|
||||
g_lua.setField("type");
|
||||
g_lua.pushInteger(outfit.getAddons());
|
||||
g_lua.setField("addons");
|
||||
g_lua.pushInteger(outfit.getHead());
|
||||
g_lua.setField("head");
|
||||
g_lua.pushInteger(outfit.getBody());
|
||||
g_lua.setField("body");
|
||||
g_lua.pushInteger(outfit.getLegs());
|
||||
g_lua.setField("legs");
|
||||
g_lua.pushInteger(outfit.getFeet());
|
||||
g_lua.setField("feet");
|
||||
}
|
||||
|
||||
bool luavalue_cast(int index, Outfit& outfit)
|
||||
{
|
||||
if(g_lua.isTable(index)) {
|
||||
g_lua.getField("type", index);
|
||||
outfit.setType(g_lua.popInteger());
|
||||
g_lua.getField("addons", index);
|
||||
outfit.setAddons(g_lua.popInteger());
|
||||
g_lua.getField("head", index);
|
||||
outfit.setHead(g_lua.popInteger());
|
||||
g_lua.getField("body", index);
|
||||
outfit.setBody(g_lua.popInteger());
|
||||
g_lua.getField("legs", index);
|
||||
outfit.setLegs(g_lua.popInteger());
|
||||
g_lua.getField("feet", index);
|
||||
outfit.setFeet(g_lua.popInteger());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue