mirror of
https://github.com/aseprite/aseprite.git
synced 2024-11-20 14:21:45 +00:00
66 lines
1.5 KiB
C++
66 lines
1.5 KiB
C++
// Aseprite
|
|
// Copyright (C) 2001-2017 David Capello
|
|
//
|
|
// This program is distributed under the terms of
|
|
// the End-User License Agreement for Aseprite.
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
#include "config.h"
|
|
#endif
|
|
|
|
#include "app/app.h"
|
|
#include "app/commands/command.h"
|
|
#include "app/commands/commands.h"
|
|
#include "app/commands/params.h"
|
|
#include "app/pref/preferences.h"
|
|
#include "app/tools/tool.h"
|
|
#include "app/tools/tool_box.h"
|
|
|
|
namespace app {
|
|
|
|
class SetSameInkCommand : public Command {
|
|
public:
|
|
SetSameInkCommand();
|
|
|
|
protected:
|
|
bool onChecked(Context* context) override;
|
|
void onExecute(Context* context) override;
|
|
};
|
|
|
|
SetSameInkCommand::SetSameInkCommand()
|
|
: Command(CommandId::SetSameInk(), CmdUIOnlyFlag)
|
|
{
|
|
}
|
|
|
|
bool SetSameInkCommand::onChecked(Context* context)
|
|
{
|
|
return Preferences::instance().shared.shareInk();
|
|
}
|
|
|
|
void SetSameInkCommand::onExecute(Context* context)
|
|
{
|
|
Preferences& pref = Preferences::instance();
|
|
bool newState = !pref.shared.shareInk();
|
|
pref.shared.shareInk(newState);
|
|
|
|
if (newState) {
|
|
tools::Tool* activeTool = App::instance()->activeTool();
|
|
tools::InkType inkType = pref.tool(activeTool).ink();
|
|
int opacity = pref.tool(activeTool).opacity();
|
|
|
|
for (tools::Tool* tool : *App::instance()->toolBox()) {
|
|
if (tool != activeTool) {
|
|
pref.tool(tool).ink(inkType);
|
|
pref.tool(tool).opacity(opacity);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Command* CommandFactory::createSetSameInkCommand()
|
|
{
|
|
return new SetSameInkCommand;
|
|
}
|
|
|
|
} // namespace app
|