1// Aseprite
2// Copyright (C) 2018-2019 Igara Studio S.A.
3// Copyright (C) 2016-2018 David Capello
4//
5// This program is distributed under the terms of
6// the End-User License Agreement for Aseprite.
7
8#ifndef APP_CLI_CLI_DELEGATE_H_INCLUDED
9#define APP_CLI_CLI_DELEGATE_H_INCLUDED
10#pragma once
11
12#include <string>
13
14namespace app {
15
16 class AppOptions;
17 class Context;
18 class DocExporter;
19 class Params;
20 struct CliOpenFile;
21
22 class CliDelegate {
23 public:
24 virtual ~CliDelegate() { }
25 virtual void showHelp(const AppOptions& options) { }
26 virtual void showVersion() { }
27 virtual void uiMode() { }
28 virtual void shellMode() { }
29 virtual void batchMode() { }
30 virtual void beforeOpenFile(const CliOpenFile& cof) { }
31 virtual void afterOpenFile(const CliOpenFile& cof) { }
32 virtual void saveFile(Context* ctx, const CliOpenFile& cof) { }
33 virtual void loadPalette(Context* ctx, const CliOpenFile& cof, const std::string& filename) { }
34 virtual void exportFiles(Context* ctx, DocExporter& exporter) { }
35#ifdef ENABLE_SCRIPTING
36 virtual int execScript(const std::string& filename,
37 const Params& params) {
38 return 0;
39 }
40#endif // ENABLE_SCRIPTING
41 };
42
43} // namespace app
44
45#endif
46