HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HOM_hotkeys.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * COMMENTS:
7  */
8 
9 #ifndef __HOM_hotKeys_h__
10 #define __HOM_hotKeys_h__
11 
12 #include "HOM_API.h"
13 #include "HOM_Defines.h"
14 #include "HOM_Module.h"
15 #include "HOM_EnumValue.h"
16 #include "HOM_EnumModules.h"
17 #include "HOM_Errors.h"
18 #include <vector>
19 #include <map>
20 
21 SWIGOUT(%rename(hotkeys) HOM_hotkeys;)
23 {
24 public:
25  virtual ~HOM_hotkeys()
26  {}
27 
28  virtual std::string __repr__() = 0;
29 
30  // Hotkey information
31  virtual std::vector<std::string>
32  assignments(
33  const char *hotkey_symbol) = 0;
34  virtual std::string hotkeyDescription(
35  const char *hotkey_symbol) = 0;
36  virtual std::string hotkeyLabel(
37  const char *hotkey_symbol) = 0;
38  virtual bool isKeyMatch(const char *key,
39  const char *hotkey_symbol) = 0;
40  virtual bool isKeycodeMatch(int key_code,
41  const char *hotkey_symbol) = 0;
42  virtual std::vector<std::string>
43  findConflicts(const char *hotkey_symbol,
44  const char *key) = 0;
45  virtual std::vector<std::string>
46  _proto_findConflicts(
47  const char *context,
48  const char *command,
49  const char *key) = 0;
50 
51  virtual int changeIndex() = 0;
52 
53 
54  // Functions for manager UI
55  virtual std::vector< std::map<std::string, std::string> >
56  commandsInContext(const char * context) = 0;
57 
58  virtual std::vector< std::map<std::string, std::string> >
59  contextsInContext(const char *context) = 0;
60 
61  virtual std::vector< std::map<std::string, std::string> >
62  _proto_commandCategoriesInCategory(
63  const char *category) = 0;
64  virtual std::vector< std::map<std::string, std::string> >
65  _proto_commandsInCategory(
66  const char *category) = 0;
67  virtual std::vector< std::map<std::string, std::string> >
68  _proto_bindingContextsInContext(
69  const char *context) = 0;
70  virtual std::vector< std::map<std::string, std::string> >
71  _proto_commandBindingsInContext(
72  const char *context) = 0;
73 
74  virtual std::vector<std::string>
75  _proto_bindings(
76  const char *context,
77  const char *command,
78  bool resolve_refs = true) = 0;
79 
80 
81  // Modify hotkeys and key assignments
82  virtual bool addCommand(
83  const char *hotkey_symbol,
84  const char *label,
85  const char *description,
86  const std::vector<std::string> &assignments = std::vector<std::string>()) = 0;
87 
88  virtual bool addContext(const char *hotkey_symbol,
89  const char *label,
90  const char *description) = 0;
91 
92  virtual bool _proto_addCommandCategory(
93  const char *hotkey_symbol,
94  const char *label,
95  const char *description) = 0;
96  virtual bool _proto_addBindingContext(
97  const char *symbol,
98  const char *label,
99  const char *description) = 0;
100  virtual bool _proto_addBinding(
101  const char *context,
102  const char *command,
103  const std::vector<std::string> &assignments = std::vector<std::string>()) = 0;
104  virtual bool _proto_removeBinding(
105  const char *context,
106  const char *command) = 0;
107 
108 
109  virtual void removeHotkeySymbol(
110  const char* hotkey_symbol) = 0;
111 
112  virtual std::string hotkeySymbol(
113  const char *english_context,
114  const char *english_command = nullptr) = 0;
115  virtual bool clearAssignments(
116  const char *hotkey_symbol) = 0;
117  virtual bool addAssignment(const char *hotkey_symbol,
118  const char *key) = 0;
119  virtual bool removeAssignment(const char *hotkey_symbol,
120  const char *key) = 0;
121  virtual bool _proto_addAssignment(
122  const char *context,
123  const char *command,
124  const char *key) = 0;
125  virtual bool _proto_removeAssignment(
126  const char *context,
127  const char *command,
128  const char *key) = 0;
129 
130  virtual std::map<std::string, std::vector<std::string> >
131  _getHotkeysStatus(
132  const char *hotkey_symbol,
133  const std::vector<std::string> &layout_keys,
134  int modifier_mask = 0) = 0;
135 
136  virtual std::vector<int> availableKeycodes(
137  const char *hotkey_symbol,
138  const std::vector<int> &layout_keycodes,
139  int modifier_mask = 0) = 0;
140 
141  virtual std::vector<int> _proto_availableKeycodes(
142  const char *context,
143  const char *command,
144  const std::vector<int> &layout_keycodes,
145  int modifier_mask = 0) = 0;
146 
147 
148  // Key utilities
149  virtual std::string keycodeToString(int keycode,
150  short modifiers = 0) = 0;
151  virtual int stringToKeycode(const char *key,
152  short modifiers = 0) = 0;
153 
154 
155  // backup/restore/save
156  virtual void _createBackupTables() = 0;
157  virtual void _restoreBackupTables() = 0;
158  virtual void revertToDefaults(
159  const char *hotkey_symbol,
160  bool one_level_only) = 0;
161  virtual bool saveOverrides() = 0;
162 
163 
164  // Keymaps
165  virtual bool saveAsKeymap(
166  const char *name,
167  const char *path = nullptr) = 0;
168  virtual bool loadKeymap(
169  const char *name,
170  const char *path = nullptr) = 0;
171  virtual bool importKeymap(const char *name,
172  const char *path) = 0;
173  virtual std::vector<std::pair<std::string, std::string> >
174  keymaps() = 0;
175  virtual std::string currentKeymap() = 0;
176 };
177 
178 #endif
GLuint GLsizei const GLchar * label
Definition: glcorearb.h:2545
virtual ~HOM_hotkeys()
Definition: HOM_hotkeys.h:25
GLsizei const GLchar *const * string
Definition: glcorearb.h:814
GLsizei const GLchar *const * path
Definition: glcorearb.h:3341
#define SWIGOUT(x)
Definition: HOM_Defines.h:24
string __repr__(VtArray< T > const &self)
Definition: wrapArray.h:352
#define HOM_API
Definition: HOM_API.h:13
GLuint const GLchar * name
Definition: glcorearb.h:786
OIIO_UTIL_API bool rename(string_view from, string_view to, std::string &err)