Better fix for icon button alignment
This commit is contained in:
parent
60d5233782
commit
fb4ecf6a00
@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<stkgui>
|
||||
<div x="1%" y="0" width="98%" layout="horizontal-row" height="9%">
|
||||
<icon-button id="back" height="100%" align="left" icon="gui/icons/back.png"/>
|
||||
<spacer proportion="1" height="5"/>
|
||||
<icon-button id="reload" y="5%" height="90%" align="right" icon="gui/icons/restart.png"/>
|
||||
<icon-button id="back" height="100%" icon_align="left" icon="gui/icons/back.png"/>
|
||||
<spacer proportion="1" height="1"/>
|
||||
<icon-button id="reload" y="5%" height="90%" icon_align="right" icon="gui/icons/restart.png"/>
|
||||
</div>
|
||||
|
||||
<div x="0%" y="1%" width="100%" height="98%" layout="vertical-row" >
|
||||
|
@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<stkgui>
|
||||
<div x="1%" y="0" width="98%" layout="horizontal-row" height="9%">
|
||||
<icon-button id="back" height="100%" x="0%" icon="gui/icons/back.png"/>
|
||||
<spacer proportion="1" height="5"/>
|
||||
<icon-button id="reload" y="5%" height="90%" x="0%" icon="gui/icons/restart.png"/>
|
||||
<icon-button id="back" height="100%" icon_align="left" icon="gui/icons/back.png"/>
|
||||
<spacer proportion="1" height="1"/>
|
||||
<icon-button id="reload" y="5%" height="90%" icon_align="right" icon="gui/icons/restart.png"/>
|
||||
</div>
|
||||
|
||||
<div x="0%" y="1%" width="100%" height="98%" layout="vertical-row" >
|
||||
|
@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<stkgui>
|
||||
<div x="1%" y="0" width="98%" layout="horizontal-row" height="9%">
|
||||
<icon-button id="back" height="100%" x="0%" icon="gui/icons/back.png"/>
|
||||
<spacer proportion="1" height="5"/>
|
||||
<icon-button id="reload" y="5%" height="90%" x="0%" icon="gui/icons/restart.png"/>
|
||||
<icon-button id="back" height="100%" icon_align="left" icon="gui/icons/back.png"/>
|
||||
<spacer proportion="1" height="1"/>
|
||||
<icon-button id="reload" y="5%" height="90%" icon_align="right" icon="gui/icons/restart.png"/>
|
||||
</div>
|
||||
|
||||
<div x="0%" y="1%" width="100%" height="98%" layout="vertical-row" >
|
||||
|
@ -213,6 +213,7 @@ if(prop_name != NULL) widget.m_properties[prop_flag] = core::stringc(prop_name).
|
||||
READ_PROPERTY(layout, PROP_LAYOUT);
|
||||
READ_PROPERTY(align, PROP_ALIGN);
|
||||
READ_PROPERTY(custom_ratio, PROP_CUSTOM_RATIO);
|
||||
READ_PROPERTY(icon_align, PROP_ICON_ALIGN);
|
||||
|
||||
READ_PROPERTY(icon, PROP_ICON);
|
||||
READ_PROPERTY(focus_icon, PROP_FOCUS_ICON);
|
||||
|
@ -114,6 +114,7 @@ namespace GUIEngine
|
||||
PROP_DIV_PADDING,
|
||||
PROP_KEEP_SELECTION,
|
||||
PROP_CUSTOM_RATIO,
|
||||
PROP_ICON_ALIGN,
|
||||
};
|
||||
|
||||
bool isWithinATextBox();
|
||||
|
@ -146,15 +146,14 @@ void IconButtonWidget::add()
|
||||
suggested_h = (int)(suggested_h*needed_scale_factor);
|
||||
}
|
||||
|
||||
// This is a bit messy, because m_x gives position of left side of an image,
|
||||
// but in most cases we need to scale it based on center of the image, so
|
||||
// this is the default action here.
|
||||
// There are some cases when it causes issues though, for example when we
|
||||
// explicitly want particular widget position or left/right align. So let's
|
||||
// just use left/right align in this case.
|
||||
bool left_horizontal = m_properties[PROP_X].size() > 0 ||
|
||||
m_properties[PROP_ALIGN] == "left";
|
||||
bool right_horizontal = m_properties[PROP_ALIGN] == "right";
|
||||
bool left_horizontal = m_properties[PROP_ICON_ALIGN] == "left";
|
||||
bool right_horizontal = m_properties[PROP_ICON_ALIGN] == "right";
|
||||
|
||||
// Assume left align if align property is not specified, but x property is specified
|
||||
if (m_properties[PROP_X].size() > 0 && m_properties[PROP_ICON_ALIGN].empty())
|
||||
{
|
||||
left_horizontal = true;
|
||||
}
|
||||
|
||||
const int x_from = right_horizontal ? m_x + (m_w - suggested_w) :
|
||||
left_horizontal ? m_x :
|
||||
|
Loading…
Reference in New Issue
Block a user