shared_ptr<Region> fixes
[ardour.git] / gtk2_ardour / editing.h
1 #ifndef __gtk_ardour_editing_h__
2 #define __gtk_ardour_editing_h__
3
4 #include <string>
5 #include <map>
6 #include <ardour/types.h>
7
8 // This involves some cpp magic. --taybin
9
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 IMPORTMODE(a) /*empty*/
17
18 namespace Editing {
19
20 // SNAPTYPE
21 #undef SNAPTYPE
22 #define SNAPTYPE(a) a,
23 enum SnapType {
24         #include "editing_syms.h"
25 };
26
27 #undef SNAPTYPE
28 #define SNAPTYPE(s) #s,
29 static const char *snaptypestrs[] = {
30         #include "editing_syms.h"
31 };
32 inline const char* enum2str(SnapType m) {return snaptypestrs[m];}
33 SnapType str2snaptype(const std::string &);
34
35 #undef SNAPTYPE
36 #define SNAPTYPE(a) /*empty*/
37
38 // SNAPMODE
39 #undef SNAPMODE
40 #define SNAPMODE(a) a,
41 enum SnapMode {
42         #include "editing_syms.h"
43 };
44
45 #undef SNAPMODE
46 #define SNAPMODE(s) #s,
47 static const char *snapmodestrs[] = {
48         #include "editing_syms.h"
49 };
50 inline const char* enum2str(SnapMode m) {return snapmodestrs[m];}
51 SnapMode str2snapmode(const std::string &);
52
53 #undef SNAPMODE
54 #define SNAPMODE(a) /*empty*/
55
56 // REGIONLISTSORTTYPE
57 #undef REGIONLISTSORTTYPE
58 #define REGIONLISTSORTTYPE(a) a,
59 enum RegionListSortType {
60         #include "editing_syms.h"
61 };
62
63 #undef REGIONLISTSORTTYPE
64 #define REGIONLISTSORTTYPE(s) #s,
65 static const char *regionlistsorttypestrs[] = {
66         #include "editing_syms.h"
67 };
68 inline const char* enum2str(RegionListSortType m) {return regionlistsorttypestrs[m];}
69 RegionListSortType str2regionlistsorttype(const std::string &);
70
71 #undef REGIONLISTSORTTYPE
72 #define REGIONLISTSORTTYPE(a) /*empty*/
73
74 // MOUSEMODE
75 #undef MOUSEMODE
76 #define MOUSEMODE(a) a,
77 enum MouseMode {
78         #include "editing_syms.h"
79 };
80
81 #undef MOUSEMODE
82 #define MOUSEMODE(s) #s,
83 static const char *mousemodestrs[] = {
84         #include "editing_syms.h"
85 };
86 inline const char* enum2str(MouseMode m) {return mousemodestrs[m];}
87 MouseMode str2mousemode(const std::string &);
88
89 #undef MOUSEMODE
90 #define MOUSEMODE(a) /*empty*/
91
92 // ZOOMFOCUS
93 #undef ZOOMFOCUS
94 #define ZOOMFOCUS(a) a,
95 enum ZoomFocus {
96         #include "editing_syms.h"
97 };
98
99 #undef ZOOMFOCUS
100 #define ZOOMFOCUS(s) #s,
101 static const char *zoomfocusstrs[] = {
102         #include "editing_syms.h"
103 };
104 inline const char* enum2str(ZoomFocus m) {return zoomfocusstrs[m];}
105 ZoomFocus str2zoomfocus(const std::string &);
106
107 #undef ZOOMFOCUS
108 #define ZOOMFOCUS(a) /*empty*/
109
110 // DISPLAYCONTROL
111 #undef DISPLAYCONTROL
112 #define DISPLAYCONTROL(a) a,
113 enum DisplayControl {
114         #include "editing_syms.h"
115 };
116
117 #undef DISPLAYCONTROL
118 #define DISPLAYCONTROL(s) #s,
119 static const char *displaycontrolstrs[] = {
120         #include "editing_syms.h"
121 };
122 inline const char* enum2str(DisplayControl m) {return displaycontrolstrs[m];}
123 DisplayControl str2displaycontrol (const std::string &);
124
125 #undef DISPLAYCONTROL
126 #define DISPLAYCONTROL(a) /*empty*/
127
128 // IMPORTMODE
129 #undef IMPORTMODE
130 #define IMPORTMODE(a) a,
131 enum ImportMode {
132         #include "editing_syms.h"
133 };
134
135 #undef IMPORTMODE
136 #define IMPORTMODE(s) #s,
137 static const char *importmodestrs[] = {
138         #include "editing_syms.h"
139 };
140 inline const char* enum2str(ImportMode m) {return importmodestrs[m];}
141 ImportMode str2importmode (const std::string &);
142
143 #undef IMPORTMODE
144 #define IMPORTMODE(a) /*empty*/
145
146 /////////////////////
147 // These don't need their state saved. yet...
148 enum CutCopyOp {
149         Cut,
150         Copy,
151         Clear
152 };
153
154 enum XFadeType {
155         Pre,
156         Post,
157         At
158 };
159
160 } // namespace Editing
161
162 #endif // __gtk_ardour_editing_h__