[aseprite] 72/250: Use generated "sprite_size.xml.h" file in "cmd_sprite_size.cpp"
Tobias Hansen
thansen at moszumanska.debian.org
Sun Dec 20 15:27:13 UTC 2015
This is an automated email from the git hooks/post-receive script.
thansen pushed a commit to branch master
in repository aseprite.
commit 4a94799d47ce46c08b8a30ed71079c01446fc1aa
Author: David Capello <davidcapello at gmail.com>
Date: Tue Sep 22 17:01:36 2015 -0300
Use generated "sprite_size.xml.h" file in "cmd_sprite_size.cpp"
---
src/app/commands/cmd_sprite_size.cpp | 200 +++++++++++++++++------------------
src/app/commands/cmd_sprite_size.h | 12 ---
2 files changed, 98 insertions(+), 114 deletions(-)
diff --git a/src/app/commands/cmd_sprite_size.cpp b/src/app/commands/cmd_sprite_size.cpp
index bf01d29..bd2b97b 100644
--- a/src/app/commands/cmd_sprite_size.cpp
+++ b/src/app/commands/cmd_sprite_size.cpp
@@ -12,6 +12,7 @@
#include "app/commands/cmd_sprite_size.h"
#include "app/commands/command.h"
#include "app/commands/params.h"
+#include "app/context.h"
#include "app/context_access.h"
#include "app/document_api.h"
#include "app/find_widget.h"
@@ -21,7 +22,6 @@
#include "app/modules/gui.h"
#include "app/modules/palettes.h"
#include "app/transaction.h"
-#include "app/ui_context.h"
#include "base/bind.h"
#include "base/unique_ptr.h"
#include "doc/algorithm/resize_image.h"
@@ -34,6 +34,8 @@
#include "doc/sprite.h"
#include "ui/ui.h"
+#include "sprite_size.xml.h"
+
#define PERC_FORMAT "%.1f"
namespace app {
@@ -155,6 +157,88 @@ protected:
};
+class SpriteSizeWindow : public app::gen::SpriteSize {
+public:
+ SpriteSizeWindow(Context* ctx, int new_width, int new_height) : m_ctx(ctx) {
+ lockRatio()->Click.connect(Bind<void>(&SpriteSizeWindow::onLockRatioClick, this));
+ widthPx()->Change.connect(Bind<void>(&SpriteSizeWindow::onWidthPxChange, this));
+ heightPx()->Change.connect(Bind<void>(&SpriteSizeWindow::onHeightPxChange, this));
+ widthPerc()->Change.connect(Bind<void>(&SpriteSizeWindow::onWidthPercChange, this));
+ heightPerc()->Change.connect(Bind<void>(&SpriteSizeWindow::onHeightPercChange, this));
+
+ widthPx()->setTextf("%d", new_width);
+ heightPx()->setTextf("%d", new_height);
+
+ method()->addItem("Nearest-neighbor");
+ method()->addItem("Bilinear");
+ method()->setSelectedItemIndex(get_config_int("SpriteSize", "Method",
+ doc::algorithm::RESIZE_METHOD_NEAREST_NEIGHBOR));
+ }
+
+private:
+
+ void onLockRatioClick() {
+ const ContextReader reader(m_ctx);
+ onWidthPxChange();
+ }
+
+ void onWidthPxChange() {
+ const ContextReader reader(m_ctx);
+ const Sprite* sprite(reader.sprite());
+ int width = widthPx()->getTextInt();
+ double perc = 100.0 * width / sprite->width();
+
+ widthPerc()->setTextf(PERC_FORMAT, perc);
+
+ if (lockRatio()->isSelected()) {
+ heightPerc()->setTextf(PERC_FORMAT, perc);
+ heightPx()->setTextf("%d", sprite->height() * width / sprite->width());
+ }
+ }
+
+ void onHeightPxChange() {
+ const ContextReader reader(m_ctx);
+ const Sprite* sprite(reader.sprite());
+ int height = heightPx()->getTextInt();
+ double perc = 100.0 * height / sprite->height();
+
+ heightPerc()->setTextf(PERC_FORMAT, perc);
+
+ if (lockRatio()->isSelected()) {
+ widthPerc()->setTextf(PERC_FORMAT, perc);
+ widthPx()->setTextf("%d", sprite->width() * height / sprite->height());
+ }
+ }
+
+ void onWidthPercChange() {
+ const ContextReader reader(m_ctx);
+ const Sprite* sprite(reader.sprite());
+ double width = widthPerc()->getTextDouble();
+
+ widthPx()->setTextf("%d", (int)(sprite->width() * width / 100));
+
+ if (lockRatio()->isSelected()) {
+ heightPx()->setTextf("%d", (int)(sprite->height() * width / 100));
+ heightPerc()->setText(widthPerc()->getText());
+ }
+ }
+
+ void onHeightPercChange() {
+ const ContextReader reader(m_ctx);
+ const Sprite* sprite(reader.sprite());
+ double height = heightPerc()->getTextDouble();
+
+ heightPx()->setTextf("%d", (int)(sprite->height() * height / 100));
+
+ if (lockRatio()->isSelected()) {
+ widthPx()->setTextf("%d", (int)(sprite->width() * height / 100));
+ widthPerc()->setText(heightPerc()->getText());
+ }
+ }
+
+ Context* m_ctx;
+};
+
SpriteSizeCommand::SpriteSizeCommand()
: Command("SpriteSize",
"Sprite Size",
@@ -218,44 +302,21 @@ void SpriteSizeCommand::onExecute(Context* context)
ResizeMethod resize_method = m_resizeMethod;
if (m_useUI && context->isUIAvailable()) {
- // load the window widget
- base::UniquePtr<Window> window(app::load_widget<Window>("sprite_size.xml", "sprite_size"));
- m_widthPx = app::find_widget<Entry>(window, "width_px");
- m_heightPx = app::find_widget<Entry>(window, "height_px");
- m_widthPerc = app::find_widget<Entry>(window, "width_perc");
- m_heightPerc = app::find_widget<Entry>(window, "height_perc");
- m_lockRatio = app::find_widget<CheckBox>(window, "lock_ratio");
- ComboBox* method = app::find_widget<ComboBox>(window, "method");
- Widget* ok = app::find_widget<Widget>(window, "ok");
-
- m_widthPx->setTextf("%d", new_width);
- m_heightPx->setTextf("%d", new_height);
-
- m_lockRatio->Click.connect(Bind<void>(&SpriteSizeCommand::onLockRatioClick, this));
- m_widthPx->Change.connect(Bind<void>(&SpriteSizeCommand::onWidthPxChange, this));
- m_heightPx->Change.connect(Bind<void>(&SpriteSizeCommand::onHeightPxChange, this));
- m_widthPerc->Change.connect(Bind<void>(&SpriteSizeCommand::onWidthPercChange, this));
- m_heightPerc->Change.connect(Bind<void>(&SpriteSizeCommand::onHeightPercChange, this));
-
- method->addItem("Nearest-neighbor");
- method->addItem("Bilinear");
- method->setSelectedItemIndex(get_config_int("SpriteSize", "Method",
- doc::algorithm::RESIZE_METHOD_NEAREST_NEIGHBOR));
-
- window->remapWindow();
- window->centerWindow();
-
- load_window_pos(window, "SpriteSize");
- window->setVisible(true);
- window->openWindowInForeground();
- save_window_pos(window, "SpriteSize");
-
- if (window->getKiller() != ok)
+ SpriteSizeWindow window(context, new_width, new_height);
+ window.remapWindow();
+ window.centerWindow();
+
+ load_window_pos(&window, "SpriteSize");
+ window.setVisible(true);
+ window.openWindowInForeground();
+ save_window_pos(&window, "SpriteSize");
+
+ if (window.getKiller() != window.ok())
return;
- new_width = m_widthPx->getTextInt();
- new_height = m_heightPx->getTextInt();
- resize_method = (ResizeMethod)method->getSelectedItemIndex();
+ new_width = window.widthPx()->getTextInt();
+ new_height = window.heightPx()->getTextInt();
+ resize_method = (ResizeMethod)window.method()->getSelectedItemIndex();
set_config_int("SpriteSize", "Method", resize_method);
}
@@ -269,71 +330,6 @@ void SpriteSizeCommand::onExecute(Context* context)
update_screen_for_document(reader.document());
}
-void SpriteSizeCommand::onLockRatioClick()
-{
- const ContextReader reader(UIContext::instance()); // TODO use the context in sprite size command
-
- onWidthPxChange();
-}
-
-void SpriteSizeCommand::onWidthPxChange()
-{
- const ContextReader reader(UIContext::instance()); // TODO use the context in sprite size command
- const Sprite* sprite(reader.sprite());
- int width = m_widthPx->getTextInt();
- double perc = 100.0 * width / sprite->width();
-
- m_widthPerc->setTextf(PERC_FORMAT, perc);
-
- if (m_lockRatio->isSelected()) {
- m_heightPerc->setTextf(PERC_FORMAT, perc);
- m_heightPx->setTextf("%d", sprite->height() * width / sprite->width());
- }
-}
-
-void SpriteSizeCommand::onHeightPxChange()
-{
- const ContextReader reader(UIContext::instance()); // TODO use the context in sprite size command
- const Sprite* sprite(reader.sprite());
- int height = m_heightPx->getTextInt();
- double perc = 100.0 * height / sprite->height();
-
- m_heightPerc->setTextf(PERC_FORMAT, perc);
-
- if (m_lockRatio->isSelected()) {
- m_widthPerc->setTextf(PERC_FORMAT, perc);
- m_widthPx->setTextf("%d", sprite->width() * height / sprite->height());
- }
-}
-
-void SpriteSizeCommand::onWidthPercChange()
-{
- const ContextReader reader(UIContext::instance()); // TODO use the context in sprite size command
- const Sprite* sprite(reader.sprite());
- double width = m_widthPerc->getTextDouble();
-
- m_widthPx->setTextf("%d", (int)(sprite->width() * width / 100));
-
- if (m_lockRatio->isSelected()) {
- m_heightPx->setTextf("%d", (int)(sprite->height() * width / 100));
- m_heightPerc->setText(m_widthPerc->getText());
- }
-}
-
-void SpriteSizeCommand::onHeightPercChange()
-{
- const ContextReader reader(UIContext::instance()); // TODO use the context in sprite size command
- const Sprite* sprite(reader.sprite());
- double height = m_heightPerc->getTextDouble();
-
- m_heightPx->setTextf("%d", (int)(sprite->height() * height / 100));
-
- if (m_lockRatio->isSelected()) {
- m_widthPx->setTextf("%d", (int)(sprite->width() * height / 100));
- m_widthPerc->setText(m_heightPerc->getText());
- }
-}
-
Command* CommandFactory::createSpriteSizeCommand()
{
return new SpriteSizeCommand;
diff --git a/src/app/commands/cmd_sprite_size.h b/src/app/commands/cmd_sprite_size.h
index ca3ddd0..9899c07 100644
--- a/src/app/commands/cmd_sprite_size.h
+++ b/src/app/commands/cmd_sprite_size.h
@@ -37,18 +37,6 @@ namespace app {
virtual void onExecute(Context* context) override;
private:
- void onLockRatioClick();
- void onWidthPxChange();
- void onHeightPxChange();
- void onWidthPercChange();
- void onHeightPercChange();
-
- ui::CheckBox* m_lockRatio;
- ui::Entry* m_widthPx;
- ui::Entry* m_heightPx;
- ui::Entry* m_widthPerc;
- ui::Entry* m_heightPerc;
-
bool m_useUI;
int m_width;
int m_height;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/aseprite.git
More information about the Pkg-games-commits
mailing list