mirror of https://github.com/aseprite/aseprite.git
				
				
				
			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…
	
		Reference in New Issue