-
Notifications
You must be signed in to change notification settings - Fork 281
/
Copy pathpencildef.h
320 lines (287 loc) · 10.9 KB
/
pencildef.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
/*
Pencil2D - Traditional Animation Software
Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
Copyright (C) 2012-2020 Matthew Chiawen Chang
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
*/
#ifndef PENCILDEF_H
#define PENCILDEF_H
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
#define STRINGIFY(x) #x
#define TOSTRING(x) STRINGIFY(x)
#define S__GIT_TIMESTAMP TOSTRING(GIT_TIMESTAMP)
#define S__GIT_COMMIT_HASH TOSTRING(GIT_CURRENT_SHA1)
enum ToolType : int
{
INVALID_TOOL = -1,
PENCIL = 0,
ERASER,
SELECT,
MOVE,
HAND,
SMUDGE,
CAMERA,
PEN,
POLYLINE,
BUCKET,
EYEDROPPER,
BRUSH,
TOOL_TYPE_COUNT
};
enum ToolPropertyType
{
WIDTH,
FEATHER,
PRESSURE,
INVISIBILITY,
PRESERVEALPHA,
BEZIER,
USEFEATHER,
VECTORMERGE,
ANTI_ALIASING,
FILL_MODE,
STABILIZATION,
TOLERANCE,
FILLCONTOUR,
AUTOSWITCHTOOL,
SHOWSELECTIONINFO,
USETOLERANCE,
BUCKETFILLEXPAND,
USEBUCKETFILLEXPAND,
BUCKETFILLLAYERREFERENCEMODE,
CAMERAPATH,
};
enum class DotColorType {
RED,
BLUE,
GREEN,
BLACK,
WHITE
};
enum BackgroundStyle
{
};
enum StabilizationLevel
{
NONE,
SIMPLE,
STRONG
};
enum TimecodeTextLevel
{
NOTEXT,
FRAMES, // FF
SMPTE, // HH:MM:SS:FF
SFF // S:FF
};
enum class LayerVisibility
{
CURRENTONLY = 0,
RELATED = 1,
ALL = 2,
// If you are adding new enum values here, be sure to update the ++/-- operators below
};
inline LayerVisibility& operator++(LayerVisibility& vis)
{
return vis = (vis == LayerVisibility::ALL) ? LayerVisibility::CURRENTONLY : static_cast<LayerVisibility>(static_cast<int>(vis)+1);
}
inline LayerVisibility& operator--(LayerVisibility& vis)
{
return vis = (vis == LayerVisibility::CURRENTONLY) ? LayerVisibility::ALL : static_cast<LayerVisibility>(static_cast<int>(vis)-1);
}
// Max frames that can be imported and loaded onto the timeline
const static int MaxFramesBound = 9999;
// Spacer for rotation handle offset
const static float RotationHandleOffset = 50;
// shortcuts command code
#define CMD_NEW_FILE "CmdNewFile"
#define CMD_OPEN_FILE "CmdOpenFile"
#define CMD_SAVE_FILE "CmdSaveFile"
#define CMD_SAVE_AS "CmdSaveAs"
#define CMD_IMPORT_IMAGE "CmdImportImage"
#define CMD_IMPORT_IMAGE_SEQ "CmdImportImageSequence"
#define CMD_IMPORT_MOVIE_VIDEO "CmdImportMovieVideo"
#define CMD_IMPORT_MOVIE_AUDIO "CmdImportMovieAudio"
#define CMD_IMPORT_PALETTE "CmdImportPalette"
#define CMD_IMPORT_SOUND "CmdImportSound"
#define CMD_EXPORT_IMAGE_SEQ "CmdExportImageSequence"
#define CMD_EXPORT_IMAGE "CmdExportImage"
#define CMD_EXPORT_MOVIE "CmdExportMovie"
#define CMD_EXPORT_PALETTE "CmdExportPalette"
#define CMD_EXPORT_SOUND "CmdExportSound"
#define CMD_UNDO "CmdUndo"
#define CMD_REDO "CmdRedo"
#define CMD_CUT "CmdCut"
#define CMD_COPY "CmdCopy"
#define CMD_PASTE "CmdPaste"
#define CMD_PASTE_FROM_PREVIOUS "CmdPasteFromPrevious"
#define CMD_SELECT_ALL "CmdSelectAll"
#define CMD_DESELECT_ALL "CmdDeselectAll"
#define CMD_CLEAR_FRAME "CmdClearFrame"
#define CMD_PREFERENCE "CmdPreferences"
#define CMD_RESET_WINDOWS "CmdResetWindows"
#define CMD_ZOOM_IN "CmdZoomIn"
#define CMD_ZOOM_OUT "CmdZoomOut"
#define CMD_ROTATE_CLOCK "CmdRotateClockwise"
#define CMD_ROTATE_ANTI_CLOCK "CmdRotateAntiClockwise"
#define CMD_RESET_ROTATION "CmdResetRotation"
#define CMD_RESET_ZOOM_ROTATE "CmdResetZoomRotate"
#define CMD_CENTER_VIEW "CmdCenterView"
#define CMD_ZOOM_400 "CmdZoom400"
#define CMD_ZOOM_300 "CmdZoom300"
#define CMD_ZOOM_200 "CmdZoom200"
#define CMD_ZOOM_100 "CmdZoom100"
#define CMD_ZOOM_50 "CmdZoom50"
#define CMD_ZOOM_33 "CmdZoom33"
#define CMD_ZOOM_25 "CmdZoom25"
#define CMD_FLIP_HORIZONTAL "CmdFlipHorizontal"
#define CMD_FLIP_VERTICAL "CmdFlipVertical"
#define CMD_PREVIEW "CmdPreview"
#define CMD_GRID "CmdGrid"
#define CMD_ONIONSKIN_PREV "CmdOnionSkinPrevious"
#define CMD_ONIONSKIN_NEXT "CmdOnionSkinNext"
#define CMD_TOGGLE_STATUS_BAR "CmdToggleStatusBar"
#define CMD_PLAY "CmdPlay"
#define CMD_LOOP "CmdLoop"
#define CMD_FLIP_INBETWEEN "CmdFlipInBetween"
#define CMD_FLIP_ROLLING "CmdFlipRolling"
#define CMD_GOTO_NEXT_FRAME "CmdGotoNextFrame"
#define CMD_GOTO_PREV_FRAME "CmdGotoPreviousFrame"
#define CMD_GOTO_NEXT_KEY_FRAME "CmdGotoNextKeyFrame"
#define CMD_GOTO_PREV_KEY_FRAME "CmdGotoPreviousKeyFrame"
#define CMD_ADD_FRAME "CmdAddFrame"
#define CMD_DUPLICATE_FRAME "CmdDuplicateFrame"
#define CMD_REMOVE_FRAME "CmdRemoveFrame"
#define CMD_REVERSE_SELECTED_FRAMES "CmdReverseSelectedFrames"
#define CMD_REMOVE_SELECTED_FRAMES "CmdRemoveSelectedFrames"
#define CMD_SELECTION_ADD_FRAME_EXPOSURE "CmdSelectionAddFrameExposure"
#define CMD_SELECTION_SUBTRACT_FRAME_EXPOSURE "CmdSelectionSubtractFrameExposure"
#define CMD_MOVE_FRAME_BACKWARD "CmdMoveFrameBackward"
#define CMD_MOVE_FRAME_FORWARD "CmdMoveFrameForward"
#define CMD_TOOL_MOVE "CmdToolMove"
#define CMD_TOOL_SELECT "CmdToolSelect"
#define CMD_TOOL_BRUSH "CmdToolBrush"
#define CMD_TOOL_POLYLINE "CmdToolPolyline"
#define CMD_TOOL_SMUDGE "CmdToolSmudge"
#define CMD_TOOL_PEN "CmdToolPen"
#define CMD_TOOL_HAND "CmdToolHand"
#define CMD_TOOL_PENCIL "CmdToolPencil"
#define CMD_TOOL_BUCKET "CmdToolBucket"
#define CMD_TOOL_EYEDROPPER "CmdToolEyedropper"
#define CMD_TOOL_ERASER "CmdToolEraser"
#define CMD_NEW_BITMAP_LAYER "CmdNewBitmapLayer"
#define CMD_NEW_VECTOR_LAYER "CmdNewVectorLayer"
#define CMD_NEW_SOUND_LAYER "CmdNewSoundLayer"
#define CMD_NEW_CAMERA_LAYER "CmdNewCameraLayer"
#define CMD_DELETE_CUR_LAYER "CmdDeleteCurrentLayer"
#define CMD_CURRENT_LAYER_VISIBILITY "CmdLayerVisibilityCurrentOnly"
#define CMD_RELATIVE_LAYER_VISIBILITY "CmdLayerVisibilityRelative"
#define CMD_ALL_LAYER_VISIBILITY "CmdLayerVisibilityAll"
#define CMD_HELP "CmdHelp"
#define CMD_TOGGLE_TOOLBOX "CmdToggleToolBox"
#define CMD_TOGGLE_TOOL_OPTIONS "CmdToggleToolOptions"
#define CMD_TOGGLE_COLOR_WHEEL "CmdToggleColorWheel"
#define CMD_TOGGLE_COLOR_INSPECTOR "CmdToggleColorInspector"
#define CMD_TOGGLE_COLOR_LIBRARY "CmdToggleColorLibrary"
#define CMD_TOGGLE_ONION_SKIN "CmdToggleOnionSkin"
#define CMD_TOGGLE_TIMELINE "CmdToggleTimeline"
#define CMD_INCREASE_SIZE "CmdIncreaseSize"
#define CMD_DECREASE_SIZE "CmdDecreaseSize"
#define CMD_EXIT "CmdExit"
// Save / Export
#define LAST_PCLX_PATH "LastFilePath"
// Import
#define IMPORT_REPOSITION_TYPE "ImportRepositionType"
// Settings Group/Key Name
#define PENCIL2D "Pencil"
#define SHORTCUTS_GROUP "Shortcuts"
#define SETTING_AUTO_SAVE "AutoSave"
#define SETTING_AUTO_SAVE_NUMBER "AutosaveNumber"
#define SETTING_TOOL_CURSOR "ToolCursors"
#define SETTING_DOTTED_CURSOR "DottedCursors"
#define SETTING_HIGH_RESOLUTION "HighResPosition"
#define SETTING_BACKGROUND_STYLE "Background"
#define SETTING_WINDOW_OPACITY "WindowOpacity"
#define SETTING_WINDOW_GEOMETRY "WindowGeometry"
#define SETTING_WINDOW_STATE "WindowState"
#define SETTING_SHOW_STATUS_BAR "ShowStatusBar"
#define SETTING_CURVE_SMOOTHING "CurveSmoothing"
#define SETTING_DISPLAY_EFFECT "RenderEffect"
#define SETTING_SHORT_SCRUB "ShortScrub"
#define SETTING_FPS "Fps"
#define SETTING_FIELD_W "FieldW"
#define SETTING_FIELD_H "FieldH"
#define SETTING_FRAME_SIZE "FrameSize"
#define SETTING_TIMELINE_SIZE "TimelineSize"
#define SETTING_LABEL_FONT_SIZE "LabelFontSize"
#define SETTING_DRAW_LABEL "DrawLabel"
#define SETTING_QUICK_SIZING "QuickSizing"
#define SETTING_LAYOUT_LOCK "LayoutLock"
#define SETTING_ROTATION_INCREMENT "RotationIncrement"
#define SETTING_SHOW_SELECTION_INFO "ShowSelectionInfo"
#define SETTING_ASK_FOR_PRESET "AskForPreset"
#define SETTING_LOAD_MOST_RECENT "LoadMostRecent"
#define SETTING_LOAD_DEFAULT_PRESET "LoadDefaultPreset"
#define SETTING_DEFAULT_PRESET "DefaultPreset"
#define SETTING_INVERT_DRAG_ZOOM_DIRECTION "InvertDragZoomDirection"
#define SETTING_INVERT_SCROLL_ZOOM_DIRECTION "InvertScrollZoomDirection"
#define SETTING_ANTIALIAS "Antialiasing"
#define SETTING_SHOW_GRID "ShowGrid"
#define SETTING_COUNT "Count"
#define SETTING_SHADOW "Shadow"
#define SETTING_PREV_ONION "PrevOnion"
#define SETTING_NEXT_ONION "NextOnion"
#define SETTING_MULTILAYER_ONION "MultilayerOnion"
#define SETTING_AXIS "Axis"
#define SETTING_CAMERABORDER "CameraBorder"
#define SETTING_INVISIBLE_LINES "InvisibleLines"
#define SETTING_OUTLINES "Outlines"
#define SETTING_ONION_BLUE "OnionBlue"
#define SETTING_ONION_RED "OnionRed"
#define SETTING_FRAME_POOL_SIZE "FramePoolSizeInMB"
#define SETTING_GRID_SIZE_W "GridSizeW"
#define SETTING_GRID_SIZE_H "GridSizeH"
#define SETTING_OVERLAY_CENTER "OverlayCenter"
#define SETTING_OVERLAY_THIRDS "OverlayThirds"
#define SETTING_OVERLAY_GOLDEN "OverlayGolden"
#define SETTING_OVERLAY_SAFE "OverlaySafe"
#define SETTING_OVERLAY_PERSPECTIVE1 "OverlayPerspective1"
#define SETTING_OVERLAY_PERSPECTIVE2 "OverlayPerspective2"
#define SETTING_OVERLAY_PERSPECTIVE3 "OverlayPerspective3"
#define SETTING_OVERLAY_ANGLE "OverlayAngle"
#define SETTING_TITLE_SAFE_ON "TitleSafeOn"
#define SETTING_TITLE_SAFE "TitleSafe"
#define SETTING_ACTION_SAFE_ON "ActionSafeOn"
#define SETTING_ACTION_SAFE "ActionSafe"
#define SETTING_OVERLAY_SAFE_HELPER_TEXT_ON "OverlaySafeHelperTextOn"
#define SETTING_TIMECODE_TEXT "TimecodeText"
#define SETTING_ONION_MAX_OPACITY "OnionMaxOpacity"
#define SETTING_ONION_MIN_OPACITY "OnionMinOpacity"
#define SETTING_ONION_PREV_FRAMES_NUM "OnionPrevFramesNum"
#define SETTING_ONION_NEXT_FRAMES_NUM "OnionNextFramesNum"
#define SETTING_ONION_WHILE_PLAYBACK "OnionWhilePlayback"
#define SETTING_ONION_TYPE "OnionType"
#define SETTING_FLIP_ROLL_MSEC "FlipRoll"
#define SETTING_FLIP_ROLL_DRAWINGS "FlipRollDrawings"
#define SETTING_FLIP_INBETWEEN_MSEC "FlipInbetween"
#define SETTING_SOUND_SCRUB_ACTIVE "SoundScrubActive"
#define SETTING_SOUND_SCRUB_MSEC "SoundScrubMsec"
#define SETTING_BUCKET_TOLERANCE "Tolerance"
#define SETTING_BUCKET_TOLERANCE_ON "BucketToleranceEnabled"
#define SETTING_BUCKET_FILL_EXPAND "BucketFillExpand"
#define SETTING_BUCKET_FILL_EXPAND_ON "BucketFillExpandEnabled"
#define SETTING_BUCKET_FILL_REFERENCE_MODE "BucketFillReferenceMode"
#define SETTING_FILL_MODE "FillMode"
#define SETTING_LAYER_VISIBILITY "LayerVisibility"
#define SETTING_LAYER_VISIBILITY_THRESHOLD "LayerVisibilityThreshold"
#define SETTING_DRAW_ON_EMPTY_FRAME_ACTION "DrawOnEmptyFrameAction"
#define SETTING_LANGUAGE "Language"
#endif // PENCILDEF_H