mirror of
https://github.com/aseprite/aseprite.git
synced 2025-03-29 19:20:09 +00:00
Merge branch 'master'
This commit is contained in:
commit
e5f96a2bce
@ -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. 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. 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. 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. 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. 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. 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. 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. Use a negative number to remove rows." />
|
||||
</grid>
|
||||
|
||||
<separator horizontal="true" />
|
||||
|
@ -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 (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 (in pixels)" />
|
||||
<entry id="height" maxsize="8" cell_align="horizontal" suffix="px" />
|
||||
</grid>
|
||||
|
||||
<separator text="Color Mode:" left="true" horizontal="true" />
|
||||
|
@ -59,8 +59,12 @@ void SwitchColorsCommand::onExecute(Context* context)
|
||||
ColorBar* colorbar = ColorBar::instance();
|
||||
app::Color fg = colorbar->getFgColor();
|
||||
app::Color bg = colorbar->getBgColor();
|
||||
colorbar->setFgColor(bg);
|
||||
|
||||
// Change the background and then the foreground color so the color
|
||||
// spectrum and color wheel shows the foreground color as the
|
||||
// selected one.
|
||||
colorbar->setBgColor(fg);
|
||||
colorbar->setFgColor(bg);
|
||||
}
|
||||
|
||||
Command* CommandFactory::createSwitchColorsCommand()
|
||||
|
@ -318,6 +318,7 @@ void ColorBar::setColorSelector(ColorSelector selector)
|
||||
if (!m_spectrum) {
|
||||
m_spectrum = new ColorSpectrum;
|
||||
m_spectrum->setExpansive(true);
|
||||
m_spectrum->selectColor(m_fgColor.getColor());
|
||||
m_spectrum->ColorChange.connect(&ColorBar::onPickSpectrum, this);
|
||||
m_selectorPlaceholder.addChild(m_spectrum);
|
||||
}
|
||||
@ -772,6 +773,9 @@ void ColorBar::onColorButtonChange(const app::Color& color)
|
||||
m_paletteView.invalidate();
|
||||
}
|
||||
|
||||
if (m_spectrum && m_spectrum->isVisible())
|
||||
m_spectrum->selectColor(color);
|
||||
|
||||
if (m_wheel && m_wheel->isVisible())
|
||||
m_wheel->selectColor(color);
|
||||
}
|
||||
|
@ -14,6 +14,7 @@
|
||||
#include "app/color_utils.h"
|
||||
#include "app/ui/skin/skin_theme.h"
|
||||
#include "app/ui/status_bar.h"
|
||||
#include "she/surface.h"
|
||||
#include "ui/graphics.h"
|
||||
#include "ui/message.h"
|
||||
#include "ui/paint_event.h"
|
||||
@ -69,6 +70,12 @@ app::Color ColorSpectrum::pickColor(const gfx::Point& pos) const
|
||||
MID(0, val, 100));
|
||||
}
|
||||
|
||||
void ColorSpectrum::selectColor(const app::Color& color)
|
||||
{
|
||||
m_color = color;
|
||||
invalidate();
|
||||
}
|
||||
|
||||
void ColorSpectrum::onPreferredSize(PreferredSizeEvent& ev)
|
||||
{
|
||||
ev.setPreferredSize(gfx::Size(32*ui::guiscale(), 32*ui::guiscale()));
|
||||
@ -122,6 +129,20 @@ void ColorSpectrum::onPaint(ui::PaintEvent& ev)
|
||||
g->putPixel(color, rc.x+x, rc.y+y);
|
||||
}
|
||||
}
|
||||
|
||||
if (m_color.getType() != app::Color::MaskType) {
|
||||
int hue = m_color.getHue();
|
||||
int sat = m_color.getSaturation();
|
||||
int val = m_color.getValue();
|
||||
int lit = (200 - sat) * val / 200;
|
||||
gfx::Point pos(rc.x + hue * rc.w / 360,
|
||||
rc.y + rc.h - (lit * rc.h / 100));
|
||||
|
||||
she::Surface* icon = theme->parts.colorWheelIndicator()->getBitmap(0);
|
||||
g->drawRgbaSurface(icon,
|
||||
pos.x-icon->width()/2,
|
||||
pos.y-icon->height()/2);
|
||||
}
|
||||
}
|
||||
|
||||
bool ColorSpectrum::onProcessMessage(ui::Message* msg)
|
||||
|
@ -22,6 +22,7 @@ namespace app {
|
||||
~ColorSpectrum();
|
||||
|
||||
app::Color pickColor(const gfx::Point& pos) const;
|
||||
void selectColor(const app::Color& color);
|
||||
|
||||
// Signals
|
||||
Signal2<void, const app::Color&, ui::MouseButtons> ColorChange;
|
||||
@ -31,6 +32,9 @@ namespace app {
|
||||
void onResize(ui::ResizeEvent& ev) override;
|
||||
void onPaint(ui::PaintEvent& ev) override;
|
||||
bool onProcessMessage(ui::Message* msg) override;
|
||||
|
||||
private:
|
||||
app::Color m_color;
|
||||
};
|
||||
|
||||
} // namespace app
|
||||
|
@ -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()) &&
|
||||
|
Loading…
x
Reference in New Issue
Block a user