Add "px" suffix to New Sprite and Canvas Size fields (fix #875)

This commit is contained in:
David Capello 2015-11-24 19:54:10 -03:00
parent 48cc6d2dd0
commit 12ccaf883d
3 changed files with 24 additions and 21 deletions

View File

@ -1,5 +1,5 @@
<!-- ASEPRITE -->
<!-- Copyright (C) 2001-2014 by David Capello -->
<!-- Copyright (C) 2001-2015 by David Capello -->
<gui>
<window text="Canvas Size" id="canvas_size">
<vbox>
@ -7,9 +7,9 @@
<hbox>
<grid columns="2">
<label text="Width:" />
<entry text="0" id="width" maxsize="32" maxwidth="64" magnet="true" />
<entry text="0" id="width" maxsize="32" maxwidth="64" suffix="px" magnet="true" />
<label text="Height:" />
<entry text="0" id="height" maxsize="32" maxwidth="64" />
<entry text="0" id="height" maxsize="32" maxwidth="64" suffix="px" />
<hbox filler="true" cell_hspan="2" />
</grid>
<buttonset columns="3" id="dir">
@ -28,16 +28,16 @@
<separator text="Borders:" left="true" horizontal="true" />
<grid columns="4">
<label text="Left:" />
<entry text="0" id="left" maxsize="32" maxwidth="64" tooltip="Columns to be added/removed in the left side.&#10;Use a negative number to remove columns." />
<entry text="0" id="left" maxsize="32" maxwidth="64" suffix="px" tooltip="Columns to be added/removed in the left side.&#10;Use a negative number to remove columns." />
<label text="Top:" />
<entry text="0" id="top" maxsize="32" maxwidth="64" tooltip="Rows to be added/removed in the top side.&#10;Use a negative number to remove rows." />
<entry text="0" id="top" maxsize="32" maxwidth="64" suffix="px" tooltip="Rows to be added/removed in the top side.&#10;Use a negative number to remove rows." />
<label text="Right:" />
<entry text="0" id="right" maxsize="32" maxwidth="64" tooltip="Columns to be added/removed in the right side.&#10;Use a negative number to remove columns." />
<entry text="0" id="right" maxsize="32" maxwidth="64" suffix="px" tooltip="Columns to be added/removed in the right side.&#10;Use a negative number to remove columns." />
<label text="Bottom:" />
<entry text="0" id="bottom" maxsize="32" maxwidth="64" tooltip="Rows to be added/removed in the bottom side.&#10;Use a negative number to remove rows." />
<entry text="0" id="bottom" maxsize="32" maxwidth="64" suffix="px" tooltip="Rows to be added/removed in the bottom side.&#10;Use a negative number to remove rows." />
</grid>
<separator horizontal="true" />

View File

@ -7,9 +7,9 @@
<separator text="Size:" left="true" horizontal="true" />
<grid columns="2">
<label text="Width:" />
<entry id="width" maxsize="8" magnet="true" cell_align="horizontal" tooltip="Width of the new sprite&#10;(in pixels)" />
<entry id="width" maxsize="8" magnet="true" cell_align="horizontal" suffix="px" />
<label text="Height:" />
<entry id="height" maxsize="8" cell_align="horizontal" tooltip="Height of the new sprite&#10;(in pixels)" />
<entry id="height" maxsize="8" cell_align="horizontal" suffix="px" />
</grid>
<separator text="Color Mode:" left="true" horizontal="true" />

View File

@ -901,8 +901,7 @@ void SkinTheme::paintEntry(PaintEvent& ev)
gfx::Rect bounds = widget->getClientBounds();
bool password = widget->isPassword();
int scroll, caret, state, selbeg, selend;
std::string textString = widget->getText() + widget->getSuffix();
int suffixIndex = widget->getTextLength();
const std::string& textString = widget->getText();
int c, ch, x, y, w;
int caret_x;
@ -929,7 +928,6 @@ void SkinTheme::paintEntry(PaintEvent& ev)
base::utf8_const_iterator utf8_it = base::utf8_const_iterator(textString.begin());
int textlen = base::utf8_length(textString);
if (scroll < textlen)
utf8_it += scroll;
@ -955,15 +953,6 @@ void SkinTheme::paintEntry(PaintEvent& ev)
fg = colors.disabled();
}
// Suffix
if (c >= suffixIndex) {
if (widget->hasFocus())
break;
bg = ColorNone;
fg = colors.entrySuffix();
}
w = g->measureChar(ch).w;
if (x+w > bounds.x2()-3)
return;
@ -977,6 +966,20 @@ void SkinTheme::paintEntry(PaintEvent& ev)
drawEntryCaret(g, widget, caret_x, y);
}
// Draw suffix if there is enough space
if (!widget->getSuffix().empty()) {
Rect sufBounds(x, y,
bounds.x2()-3*guiscale()-x,
widget->getTextHeight());
IntersectClip clip(g, sufBounds);
if (clip) {
drawTextString(
g, widget->getSuffix().c_str(),
colors.entrySuffix(), ColorNone,
widget, sufBounds, 0);
}
}
// Draw the caret if it is next of the last character
if ((c == caret) && (state) &&
(widget->hasFocus()) &&