fix crashing bug caused by recursive set_state() nonsense; sync snap_type, snap_mode...
[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 extern const char *snaptypestrs[];
28 inline const char* enum2str(SnapType m) {return snaptypestrs[m];}
29 SnapType str2snaptype(const std::string &);
30
31 #undef SNAPTYPE
32 #define SNAPTYPE(a) /*empty*/
33
34 // SNAPMODE
35 #undef SNAPMODE
36 #define SNAPMODE(a) a,
37 enum SnapMode {
38         #include "editing_syms.h"
39 };
40
41 extern const char *snapmodestrs[];
42 inline const char* enum2str(SnapMode m) {return snapmodestrs[m];}
43 SnapMode str2snapmode(const std::string &);
44
45 #undef SNAPMODE
46 #define SNAPMODE(a) /*empty*/
47
48 // REGIONLISTSORTTYPE
49 #undef REGIONLISTSORTTYPE
50 #define REGIONLISTSORTTYPE(a) a,
51 enum RegionListSortType {
52         #include "editing_syms.h"
53 };
54
55 extern const char *regionlistsorttypestrs[];
56 inline const char* enum2str(RegionListSortType m) {return regionlistsorttypestrs[m];}
57 RegionListSortType str2regionlistsorttype(const std::string &);
58
59 #undef REGIONLISTSORTTYPE
60 #define REGIONLISTSORTTYPE(a) /*empty*/
61
62 // MOUSEMODE
63 #undef MOUSEMODE
64 #define MOUSEMODE(a) a,
65 enum MouseMode {
66         #include "editing_syms.h"
67 };
68
69 extern const char *mousemodestrs[];
70 inline const char* enum2str(MouseMode m) {return mousemodestrs[m];}
71 MouseMode str2mousemode(const std::string &);
72
73 #undef MOUSEMODE
74 #define MOUSEMODE(a) /*empty*/
75
76 // ZOOMFOCUS
77 #undef ZOOMFOCUS
78 #define ZOOMFOCUS(a) a,
79 enum ZoomFocus {
80         #include "editing_syms.h"
81 };
82
83 extern const char *zoomfocusstrs[];
84 inline const char* enum2str(ZoomFocus m) {return zoomfocusstrs[m];}
85 ZoomFocus str2zoomfocus(const std::string &);
86
87 #undef ZOOMFOCUS
88 #define ZOOMFOCUS(a) /*empty*/
89
90 // DISPLAYCONTROL
91 #undef DISPLAYCONTROL
92 #define DISPLAYCONTROL(a) a,
93 enum DisplayControl {
94         #include "editing_syms.h"
95 };
96
97 extern const char *displaycontrolstrs[];
98 inline const char* enum2str(DisplayControl m) {return displaycontrolstrs[m];}
99 DisplayControl str2displaycontrol (const std::string &);
100
101 #undef DISPLAYCONTROL
102 #define DISPLAYCONTROL(a) /*empty*/
103
104 // IMPORTMODE
105 #undef IMPORTMODE
106 #define IMPORTMODE(a) a,
107 enum ImportMode {
108         #include "editing_syms.h"
109 };
110
111 extern const char *importmodestrs[];
112 inline const char* enum2str(ImportMode m) {return importmodestrs[m];}
113 ImportMode str2importmode (const std::string &);
114
115 #undef IMPORTMODE
116 #define IMPORTMODE(a) /*empty*/
117
118 /////////////////////
119 // These don't need their state saved. yet...
120 enum CutCopyOp {
121         Cut,
122         Copy,
123         Clear
124 };
125
126 enum XFadeType {
127         Pre,
128         Post,
129         At
130 };
131
132 } // namespace Editing
133
134 #endif // __gtk_ardour_editing_h__