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 
13 namespace tools {
14   class Tool;
15 }
16 
17 namespace app {
18   class Editor;
19   class FrameTagProvider;
20 
21   class EditorCustomizationDelegate {
22   public:
~EditorCustomizationDelegate()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 FrameTagProvider* getFrameTagProvider() = 0;
36   };
37 
38 } // namespace app
39 
40 #endif  // APP_UI_EDITOR_CUSTOMIZATION_DELEGATE_H_INCLUDED
41