1// Aseprite
2// Copyright (C) 2001-2017 David Capello
3//
4// This program is distributed under the terms of
5// the End-User License Agreement for Aseprite.
6
7#ifndef APP_UI_EDITOR_CUSTOMIZATION_DELEGATE_H_INCLUDED
8#define APP_UI_EDITOR_CUSTOMIZATION_DELEGATE_H_INCLUDED
9#pragma once
10
11#include "app/ui/keyboard_shortcuts.h"
12
13namespace tools {
14 class Tool;
15}
16
17namespace app {
18 class Editor;
19 class TagProvider;
20
21 class EditorCustomizationDelegate {
22 public:
23 virtual ~EditorCustomizationDelegate() { }
24 virtual void dispose() = 0;
25
26 // Called to know if the user is pressing a keyboard shortcut to
27 // select another tool temporarily (a "quick tool"). The given
28 // "currentTool" is the current tool selected in the toolbox.
29 virtual tools::Tool* getQuickTool(tools::Tool* currentTool) = 0;
30
31 // Returns what action is pressed at this moment.
32 virtual KeyAction getPressedKeyAction(KeyContext context) = 0;
33
34 // Returns the provider of active frame tag (it's the timeline).
35 virtual TagProvider* getTagProvider() = 0;
36 };
37
38} // namespace app
39
40#endif // APP_UI_EDITOR_CUSTOMIZATION_DELEGATE_H_INCLUDED
41