This is an automated email from the git hooks/post-receive script. thansen pushed a commit to branch master in repository aseprite.
commit c09dfa89f0887ef482869f787ce257086e6a0c0c Author: David Capello <[email protected]> Date: Wed Feb 24 19:37:20 2016 -0300 Show grayscale colors in color buttons when we're editing a grayscale image --- src/app/modules/gfx.cpp | 38 +++++++++++++++++++++++++++----------- src/app/modules/gfx.h | 14 ++++++++++---- src/app/ui/color_button.cpp | 6 ++++-- src/app/ui/context_bar.cpp | 3 ++- src/app/ui/palette_view.cpp | 2 +- src/app/ui/status_bar.cpp | 11 +++++++---- 6 files changed, 51 insertions(+), 23 deletions(-) diff --git a/src/app/modules/gfx.cpp b/src/app/modules/gfx.cpp index 848430e..738ac20 100644 --- a/src/app/modules/gfx.cpp +++ b/src/app/modules/gfx.cpp @@ -1,5 +1,5 @@ // Aseprite -// Copyright (C) 2001-2015 David Capello +// Copyright (C) 2001-2016 David Capello // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -62,12 +62,16 @@ static void rectgrid(ui::Graphics* g, const gfx::Rect& rc, const gfx::Size& tile } } -void draw_color(ui::Graphics* g, const Rect& rc, const app::Color& color) +void draw_color(ui::Graphics* g, + const Rect& rc, + const app::Color& _color, + const doc::ColorMode colorMode) { if (rc.w < 1 || rc.h < 1) return; - app::Color::Type type = color.getType(); + app::Color color = _color; + int alpha = color.getAlpha(); if (alpha < 255) { @@ -78,7 +82,13 @@ void draw_color(ui::Graphics* g, const Rect& rc, const app::Color& color) } if (alpha > 0) { - if (type == app::Color::IndexType) { + if (colorMode == doc::ColorMode::GRAYSCALE) { + color = app::Color::fromGray( + color.getGray(), + color.getAlpha()); + } + + if (color.getType() == app::Color::IndexType) { int index = color.getIndex(); if (index >= 0 && index < get_current_palette()->size()) { @@ -91,24 +101,30 @@ void draw_color(ui::Graphics* g, const Rect& rc, const app::Color& color) gfx::Point(rc.x+1, rc.y+rc.h-2)); } } - else + else { g->fillRect(color_utils::color_for_ui(color), rc); + } } } void draw_color_button(ui::Graphics* g, - const Rect& rc, const app::Color& color, - bool hot, bool drag) + const Rect& rc, + const app::Color& color, + const doc::ColorMode colorMode, + const bool hot, + const bool drag) { SkinTheme* theme = SkinTheme::instance(); int scale = ui::guiscale(); // Draw background (the color) draw_color(g, - Rect(rc.x+1*scale, - rc.y+1*scale, - rc.w-2*scale, - rc.h-2*scale), color); + Rect(rc.x+1*scale, + rc.y+1*scale, + rc.w-2*scale, + rc.h-2*scale), + color, + colorMode); // Draw opaque border theme->drawRect( diff --git a/src/app/modules/gfx.h b/src/app/modules/gfx.h index afc060d..b9a465a 100644 --- a/src/app/modules/gfx.h +++ b/src/app/modules/gfx.h @@ -1,5 +1,5 @@ // Aseprite -// Copyright (C) 2001-2015 David Capello +// Copyright (C) 2001-2016 David Capello // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -10,6 +10,7 @@ #pragma once #include "app/color.h" +#include "doc/color_mode.h" #include "gfx/color.h" #include "gfx/rect.h" #include "ui/base.h" @@ -19,11 +20,16 @@ namespace app { using namespace doc; void draw_color(ui::Graphics* g, - const gfx::Rect& rc, const app::Color& color); + const gfx::Rect& rc, + const app::Color& color, + const doc::ColorMode colorMode); void draw_color_button(ui::Graphics* g, - const gfx::Rect& rc, const app::Color& color, - bool hot, bool drag); + const gfx::Rect& rc, + const app::Color& color, + const doc::ColorMode colorMode, + const bool hot, + const bool drag); } // namespace app diff --git a/src/app/ui/color_button.cpp b/src/app/ui/color_button.cpp index a48f2a7..cdaa429 100644 --- a/src/app/ui/color_button.cpp +++ b/src/app/ui/color_button.cpp @@ -1,5 +1,5 @@ // Aseprite -// Copyright (C) 2001-2015 David Capello +// Copyright (C) 2001-2016 David Capello // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -209,7 +209,9 @@ void ColorButton::onPaint(PaintEvent& ev) } draw_color_button(g, rc, - color, hasMouseOver(), false); + color, + (doc::ColorMode)m_pixelFormat, + hasMouseOver(), false); // Draw text std::string str = m_color.toHumanReadableString(m_pixelFormat, diff --git a/src/app/ui/context_bar.cpp b/src/app/ui/context_bar.cpp index 53ef26d..7367157 100644 --- a/src/app/ui/context_bar.cpp +++ b/src/app/ui/context_bar.cpp @@ -609,7 +609,8 @@ class ContextBar::InkShadesField : public HBox { color = app::Color::fromMask(); } - draw_color(g, box, color); + draw_color(g, box, color, + (doc::ColorMode)app_get_current_pixel_format()); if (m_hotIndex == i) hotBounds = box; diff --git a/src/app/ui/palette_view.cpp b/src/app/ui/palette_view.cpp index 16f035c..7a8a0d2 100644 --- a/src/app/ui/palette_view.cpp +++ b/src/app/ui/palette_view.cpp @@ -992,7 +992,7 @@ gfx::Color PaletteView::drawEntry(ui::Graphics* g, const gfx::Rect& box, int pal rgba_geta(palColor)); g->drawRect(gfx::rgba(0, 0, 0), gfx::Rect(box).enlarge(guiscale())); - draw_color(g, box, appColor); + draw_color(g, box, appColor, doc::ColorMode::RGB); return gfxColor; } diff --git a/src/app/ui/status_bar.cpp b/src/app/ui/status_bar.cpp index e82349a..6795925 100644 --- a/src/app/ui/status_bar.cpp +++ b/src/app/ui/status_bar.cpp @@ -1,5 +1,5 @@ // Aseprite -// Copyright (C) 2001-2015 David Capello +// Copyright (C) 2001-2016 David Capello // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -435,13 +435,16 @@ void StatusBar::onPaint(ui::PaintEvent& ev) } // Draw color - draw_color_button(g, gfx::Rect(x, rc.y, 32*guiscale(), rc.h), - m_color, false, false); + draw_color_button( + g, gfx::Rect(x, rc.y, 32*guiscale(), rc.h), + m_color, + (doc::ColorMode)app_get_current_pixel_format(), false, false); x += (32+4)*guiscale(); // Draw color description - std::string str = m_color.toHumanReadableString(app_get_current_pixel_format(), + std::string str = m_color.toHumanReadableString( + app_get_current_pixel_format(), app::Color::LongHumanReadableString); if (m_color.getAlpha() < 255) { char buf[256]; -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/aseprite.git _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

