1 #ifndef __gtk_ardour_editing_h__
2 #define __gtk_ardour_editing_h__
6 #include <ardour/types.h>
8 // This involves some cpp magic. --taybin
10 #define SNAPTYPE(a) /*empty*/
11 #define SNAPMODE(a) /*empty*/
12 #define REGIONLISTSORTTYPE(a) /*empty*/
13 #define MOUSEMODE(a) /*empty*/
14 #define ZOOMFOCUS(a) /*empty*/
15 #define DISPLAYCONTROL(a) /*empty*/
16 #define COLORID(a) /*empty*/
22 #define SNAPTYPE(a) a,
24 #include "editing_syms.h"
28 #define SNAPTYPE(s) #s,
29 static const char *snaptypestrs[] = {
30 #include "editing_syms.h"
32 inline const char* enum2str(SnapType m) {return snaptypestrs[m];}
33 SnapType str2snaptype(ARDOUR::stringcr_t);
36 #define SNAPTYPE(a) /*empty*/
40 #define SNAPMODE(a) a,
42 #include "editing_syms.h"
46 #define SNAPMODE(s) #s,
47 static const char *snapmodestrs[] = {
48 #include "editing_syms.h"
50 inline const char* enum2str(SnapMode m) {return snapmodestrs[m];}
51 SnapMode str2snapmode(ARDOUR::stringcr_t);
54 #define SNAPMODE(a) /*empty*/
57 #undef REGIONLISTSORTTYPE
58 #define REGIONLISTSORTTYPE(a) a,
59 enum RegionListSortType {
60 #include "editing_syms.h"
63 #undef REGIONLISTSORTTYPE
64 #define REGIONLISTSORTTYPE(s) #s,
65 static const char *regionlistsorttypestrs[] = {
66 #include "editing_syms.h"
68 inline const char* enum2str(RegionListSortType m) {return regionlistsorttypestrs[m];}
69 RegionListSortType str2regionlistsorttype(ARDOUR::stringcr_t);
71 #undef REGIONLISTSORTTYPE
72 #define REGIONLISTSORTTYPE(a) /*empty*/
76 #define MOUSEMODE(a) a,
78 #include "editing_syms.h"
82 #define MOUSEMODE(s) #s,
83 static const char *mousemodestrs[] = {
84 #include "editing_syms.h"
86 inline const char* enum2str(MouseMode m) {return mousemodestrs[m];}
87 MouseMode str2mousemode(ARDOUR::stringcr_t);
90 #define MOUSEMODE(a) /*empty*/
94 #define ZOOMFOCUS(a) a,
96 #include "editing_syms.h"
100 #define ZOOMFOCUS(s) #s,
101 static const char *zoomfocusstrs[] = {
102 #include "editing_syms.h"
104 inline const char* enum2str(ZoomFocus m) {return zoomfocusstrs[m];}
105 ZoomFocus str2zoomfocus(ARDOUR::stringcr_t);
108 #define ZOOMFOCUS(a) /*empty*/
111 #undef DISPLAYCONTROL
112 #define DISPLAYCONTROL(a) a,
113 enum DisplayControl {
114 #include "editing_syms.h"
117 #undef DISPLAYCONTROL
118 #define DISPLAYCONTROL(s) #s,
119 static const char *displaycontrolstrs[] = {
120 #include "editing_syms.h"
122 inline const char* enum2str(DisplayControl m) {return displaycontrolstrs[m];}
123 DisplayControl str2displaycontrol (ARDOUR::stringcr_t);
125 #undef DISPLAYCONTROL
126 #define DISPLAYCONTROL(a) /*empty*/
129 #define COLORID(a) a,
131 #include "editing_syms.h"
135 #define COLORID(s) #s,
136 static const char *color_id_strs[] = {
137 #include "editing_syms.h"
139 inline const char* enum2str(ColorID m) {return color_id_strs[m];}
140 ColorID str2color_id (ARDOUR::stringcr_t);
143 #define COLORID(a) /*empty*/
145 /////////////////////
146 // These don't need their state saved. yet...
166 typedef std::map<Editing::ColorID,int> ColorMap;
167 extern ColorMap color_map;
169 } // namespace Editing
171 #endif // __gtk_ardour_editing_h__