55 |
#define UNICODE_RIGHT_ARROW Glib::ustring(1, gunichar(0x2192)) |
#define UNICODE_RIGHT_ARROW Glib::ustring(1, gunichar(0x2192)) |
56 |
#define UNICODE_LEFT_ARROW Glib::ustring(1, gunichar(0x2190)) |
#define UNICODE_LEFT_ARROW Glib::ustring(1, gunichar(0x2190)) |
57 |
|
|
58 |
|
// taken from gdk/gdkkeysyms.h |
59 |
|
// (define on demand, to avoid unnecessary dev lib package build dependency) |
60 |
|
#ifndef GDK_KEY_Control_L |
61 |
|
# define GDK_KEY_Control_L 0xffe3 |
62 |
|
#endif |
63 |
|
#ifndef GDK_KEY_Control_R |
64 |
|
# define GDK_KEY_Control_R 0xffe4 |
65 |
|
#endif |
66 |
|
#ifndef GDK_KEY_Left |
67 |
|
# define GDK_KEY_Left 0xff51 |
68 |
|
#endif |
69 |
|
#ifndef GDK_KEY_Right |
70 |
|
# define GDK_KEY_Right 0xff53 |
71 |
|
#endif |
72 |
|
#ifndef GDK_KEY_Up |
73 |
|
# define GDK_KEY_Up 0xff52 |
74 |
|
#endif |
75 |
|
#ifndef GDK_KEY_Down |
76 |
|
# define GDK_KEY_Down 0xff54 |
77 |
|
#endif |
78 |
|
|
79 |
template<class T> inline std::string ToString(T o) { |
template<class T> inline std::string ToString(T o) { |
80 |
std::stringstream ss; |
std::stringstream ss; |
81 |
ss << o; |
ss << o; |
136 |
} |
} |
137 |
return false; |
return false; |
138 |
} |
} |
139 |
|
|
140 |
|
// prevent passing gig::dimension_none from creating a new pair |
141 |
|
// (TODO: other invalid gig::dimension_t values should be filtered here as well) |
142 |
|
int& operator[](const gig::dimension_t& k) { |
143 |
|
static int unused = 0; |
144 |
|
if (k == gig::dimension_none) { |
145 |
|
unused = 0; |
146 |
|
return unused; |
147 |
|
} |
148 |
|
return std::map<gig::dimension_t,int>::operator[](k); |
149 |
|
} |
150 |
}; |
}; |
151 |
|
|
152 |
|
//TODO: this function and caseOfDimRegion() from dimregionchooser.h are duplicates, eliminate either one of them! |
153 |
inline DimensionCase dimensionCaseOf(gig::DimensionRegion* dr) { |
inline DimensionCase dimensionCaseOf(gig::DimensionRegion* dr) { |
154 |
DimensionCase dimCase; |
DimensionCase dimCase; |
155 |
int idr = getDimensionRegionIndex(dr); |
int idr = getDimensionRegionIndex(dr); |
175 |
return v; |
return v; |
176 |
} |
} |
177 |
|
|
178 |
|
inline gig::DimensionRegion* dimensionRegionMatching(const DimensionCase& dimCase, gig::Region* rgn) { |
179 |
|
for (int idr = 0; idr < 256; ++idr) { |
180 |
|
if (!rgn->pDimensionRegions[idr]) continue; |
181 |
|
DimensionCase c = dimensionCaseOf(rgn->pDimensionRegions[idr]); |
182 |
|
if (c == dimCase) return rgn->pDimensionRegions[idr]; |
183 |
|
} |
184 |
|
return NULL; |
185 |
|
} |
186 |
|
|
187 |
#endif // GIGEDIT_GLOBAL_H |
#endif // GIGEDIT_GLOBAL_H |