Kage Studio 0.7.230612
A Simple Free and Open Source 2D Animation Software
Loading...
Searching...
No Matches
kage.h
Go to the documentation of this file.
1/*
2 * Kage Studio - a simple free and open source vector-based 2D animation software
3 * Copyright (C) 2011~2022 Mj Mendoza IV
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18 * MA 02110-1301, USA. Or, see <https://www.gnu.org/licenses/>.
19 *
20 */
21
22#ifndef GTKMM_KAGE_H
23 #define GTKMM_KAGE_H
24
25 #include <gtkmm/togglebutton.h>
26 #include <gtkmm/paned.h>
27 #include <gtkmm/scrolledwindow.h>
28 #include <gtkmm/separator.h>
29 #include <gtkmm/scrollbar.h>
30 #include <gtkmm/uimanager.h>
31 #include <gtkmm/statusbar.h>
32 #include <gtkmm/radioaction.h>
33 #include <gtkmm/messagedialog.h>
34 #include <gtkmm/filechooserdialog.h>
35 #include <gtkmm/cssprovider.h>
38 #include "kage/stage/stage.h"
40 #include "kage/library/library.h"
46 #include "kage/data/frame.h"
47 #include "kage/data/layer.h"
48 #include "kage/data/scene.h"
49 #include "kage/document.h"
50 #include "about.h"
51// #include "register.h" -- not implemented yet; this is to gather users for support group
52
53 #include "kage/unre/kagedo.h"
54 #include "kage/unre/unre.h"
55
56 #include "util/xml/xmltoken.h"
58 #include "util/xml/xmltag.h"
59 #include "util/xml/xml.h"
62
63 #include <fstream> //ofstream
64 #include <iostream> //cerr
65
66 #include <gdkmm/cursor.h>
67 #include <gdkmm/frameclock.h>
68
69 class Kage : public Gtk::Window {
70 public:
71 Kage(string p_filePath);
72 virtual ~Kage();
73
74 void addDataToFrame(VectorDataManager v, bool p_force = false);
75 VectorDataManager getFrameData(bool p_force = false);
76 VectorDataManager getFrameDataAt(unsigned int p_frame);
77 void setFrameData(VectorDataManager p_vectorsData);
78 void setFrameData(VectorDataManager p_vectorsData, bool p_force);
79 bool isFrameEmpty();
80 void forceRenderFrames();
81 void renderOnionFrames();
82 void renderFrames();
85 string saveFrame();
86 string dumpFrame(bool bKS);
87 string dumpFrameToSvg();
88
89 unsigned int getTween();
90
91 string int255ToHex(unsigned int p);
92 char int15ToHex(unsigned int p);
93 unsigned int hexToInt255(string p);
94 unsigned int hexToInt15(char p);
95
99
100 protected:
101 //Signal handlers:
102 void updateStatus(Glib::ustring status_msg);
103 void Quit_onClick();
104 void LayerAdd_onClick();
105 void LayerRename_onClick();
108 void LayerDel_onClick();
110 void LayerMoveUp_onClick();
115 void ToggleOnion_onClick();
116 void ToolButtons_onClick(Gtk::ToggleButton *p_sourceButton);
117 void onActionActivate();
118 //void Undo_onClick();
119 //void Redo_onClick();
120 void Cut_onClick();
121 void Copy_onClick();
122 void Paste_onClick();
123 void Delete_onClick();
124 void Duplicate_onClick();
125 void SelectAll_onClick();
126 void Deselect_onClick();
131 void ShapeGroup_onClick();
133 void Raise_onClick();
134 void Lower_onClick();
135 void RaiseToTop_onClick();
139
141 void Tween_onClick();
142
144 void NextFrame_onClick();
145 void ToggleLoop_onClick();
146
147 void AddFrame_onClick();
148 void ExtendFrame_onClick();
150 void RemoveFrame_onClick();
151 void CutFrame_onClick();
152 void CopyFrame_onClick();
153 void PasteFrame_onClick();
154 void DeleteFrame_onClick();
155 void TweenFrame_onClick();
157// void New_onClick();
158 void OpenKSF_onClick();
159 void Save_onClick();
160 void SaveAs_onClick();
161 void ExportKS_onClick();
162 void ExportHTML5_onClick();
163 void ExportSVG_onClick();
164 void ExportPNG_onClick();
168 void ExportVideo_onClick();
169 void ProjectSave_onClick(); //place holder
170 void ImportAsset_onClick();
171
172 virtual bool on_delete_event(GdkEventAny* any_event);
173 virtual bool on_key_press_event(GdkEventKey *e) override;
174 virtual bool on_key_release_event(GdkEventKey *e) override;
175
176 void doOpen();
177 void doSaveDialog(string p_title);
178 void doSave(string p_filename);
179
180 void doExportPNGDialog(string p_title, bool p_transparent);
181
182 //Member widgets:
183 Gtk::VBox m_VBoxRoot;
184 Gtk::HBox m_HBoxToolbar;
186 Gtk::HPaned m_Timeline_HPaned;
190
194 Gtk::Button _btnLayerAdd;
196 Glib::RefPtr<Gdk::Pixbuf> _btnLayerAdd_pixbuf;
197 Gtk::Button _btnLayerDelete;
199 Glib::RefPtr<Gdk::Pixbuf> _btnLayerDelete_pixbuf;
200 Gtk::Button _btnLayerMoveTop;
202 Glib::RefPtr<Gdk::Pixbuf> _btnLayerMoveTop_pixbuf;
203 Gtk::Button _btnLayerMoveUp;
205 Glib::RefPtr<Gdk::Pixbuf> _btnLayerMoveUp_pixbuf;
206 Gtk::Button _btnLayerMoveDown;
208 Glib::RefPtr<Gdk::Pixbuf> _btnLayerMoveDown_pixbuf;
211 Glib::RefPtr<Gdk::Pixbuf> _btnLayerMoveBottom_pixbuf;
212
215 Glib::RefPtr<Gdk::Pixbuf> _btnTimelineRewind_pixbuf;
218 Glib::RefPtr<Gdk::Pixbuf> _btnTimelinePrevious_pixbuf;
219 Gtk::Button _btnTimelinePlay;
221 Glib::RefPtr<Gdk::Pixbuf> _btnTimelinePlay_pixbuf;
222 Gtk::Button _btnTimelineNext;
224 Glib::RefPtr<Gdk::Pixbuf> _btnTimelineNext_pixbuf;
225 Gtk::Button _btnTimelineStop;
227 Glib::RefPtr<Gdk::Pixbuf> _btnTimelineStop_pixbuf;
228 Gtk::ToggleButton _btnTimelineLoop;
230 Glib::RefPtr<Gdk::Pixbuf> _btnTimelineLoop_pixbuf;
231 public:
232 Gtk::ToggleButton _toggleOnion;
233 protected:
235 Glib::RefPtr<Gdk::Pixbuf> _toggleOnion_pixbuf;
236 public:
237 Gtk::ToggleButton _toggleOnionLayer;
238 protected:
240 Glib::RefPtr<Gdk::Pixbuf> _toggleOnionLayer_pixbuf;
245 Gtk::VBox m_VBoxTimelineFrame; //to be deleted
249 Gtk::HBox m_Box1;
250 Gtk::VBox m_PropertyBox;
251 Gtk::HSeparator m_Separator;
252 Gtk::HSeparator m_Separator_Toolbar1;
253 Gtk::HSeparator m_Separator_Toolbar2;
254 Gtk::HSeparator m_Separator_Toolbar3;
255 Gtk::HSeparator m_Separator_Toolbar4;
256 Gtk::HSeparator m_Separator_Library1;
257 Gtk::HSeparator m_Separator_Library2;
258 Gtk::Label m_LabelProp;
261 Gtk::Label m_LabelLibrary;
262
264 Gtk::ScrolledWindow m_Stage_Pane_ScrolledWindow;
265 Glib::RefPtr<Gtk::UIManager> m_refUIManager;
266 Glib::RefPtr<Gtk::ActionGroup> m_refActionGroup;
267
268 void addToolButton(const Glib::ustring &label);
269 Gtk::ToggleButton m_ToggleBtnSelect;
270 void btnDebug_onClick();
271 void btnAbout_onClick();
272 void CheckUpdate_onClick();
273 void Website_onClick();
274 void openWebsite(string p_url);
275 std::vector<Gtk::ToggleButton*> toggleButtons;
276 std::vector<Glib::RefPtr<Gdk::Pixbuf>> toggleButtons_pixbuf;
277 std::vector<Gtk::Image> toggleButtons_img;
278 std::vector<Gtk::Tooltip*> tooltips;
279 Gtk::ToggleButton* currentTool;
280
282 Gtk::HScrollbar m_Timeline_HScrollbar;
283 Gtk::VScrollbar m_Timeline_VScrollbar;
285
286 Gtk::VPaned m_VPane_Timeline;
288 Gtk::Statusbar m_Statusbar;
290
291 unsigned m_ContextId;
292
294 string ksfPath;
295 std::ofstream ksfFile;
296
298 string expPath;
299 std::ofstream expFile;
300 bool dtrace(string p_msg);
301 bool saveKageStudio(string p_path, string p_msg);
302 bool exportHtml5(string p_path, string p_msg);
303 bool exportSvg(string p_path, string p_msg);
304 bool exportKonsolScript(string p_path, string p_msg);
305 bool dump(string p_path, string p_msg);
306 bool fileWrite(string p_path, string p_msg, std::ofstream &p_file, bool &p_flag);
307
308 string openTextFile(string p_path);
309 vector<double> parseNumbers(string p_numbers);
310 vector<int> parseColorString(string p_color);
311 void parseKSF_Children(vector<XmlTag> p_children);
312 void parseKSF(string p_content);
313 bool runExternal(string p_cmd, string p_param);
314
315 void Play_onClick();
316 void PlayFrame_onClick();
317// void Stop_onClick();
318// void ToolSelect_onClick();
319 void ToolNode_onClick();
320 void ToolPoly_onClick();
321 void ToolPencil_onClick();
322 void ToolOval_onClick();
324 void ToolStroke_onClick();
325 void ToolFill_onClick();
326 void ToolEyedrop_onClick();
327 void ToolZoom_onClick();
328
329 bool on_tick(const Glib::RefPtr<Gdk::FrameClock>& frame_clock);
330 guint m_tick_id = 0;
331 gint64 m_start_time = 0;
332 const gint64 cycle_time = 3000000; // microseconds
333
334 unsigned int tickCounter;
336 //bool _isPlaying;
337
338 vector<VectorData> _undoBase;
339
341
345
346 bool m_LabelLibrary_onClick(GdkEventButton *event);//, gpointer user_data);
347 public:
350 bool _propFillVisible = false;
351 bool _propStrokeVisible = false;
358 Gdk::Color m_Color; //fill or stroke?
359 void Undo_onClick();
360 void Redo_onClick();
361 void Stop_onClick();
363
364 void toolsButtonToggle(string p_toolTip);
365
366 void ToolSelect_onClick();
367
368 static void timestamp();
369 static void timestamp_IN();
370 static void timestamp_OUT();
371 static unsigned int TAB_COUNT;
372
374 bool switchToNextFrame();
375
376 void propStageSetVisible(bool p_visible);
377 void propFillStrokeSetVisible(bool p_visible);
378 void propShapePropertiesSetVisible(bool p_visible);
379 void propNodeXYSetVisible(bool p_visible);
380 void propFrameTweenSetVisible(bool p_visible);
381 void updateColors();
383 void updateNodeXY();
384 void updateSelectedShapeColor(bool p_doFill = true, bool p_doStroke = true);
385
387 void stackDo();
388 void stackDoZoom(PointData p_originBefore, PointData p_originAfter, PointData p_zoomReference, double p_zoomRatio);
389
390 void New_onClick();
391 bool doDeleteFrame();
392
393 bool isLayerLocked();
394 unsigned int getCurrentLayer();
395 void setCurrentLayer(unsigned int p_layer);
396 unsigned int getCurrentFrame();
397 void setCurrentLayerByID(unsigned int p_layerID);
398 void setCurrentFrame(unsigned int p_layer);
399
400 void displayMouseXY(double p_x, double p_y);
401
403
404 void refreshUI();
405 void focusOnStage();
406
408
409 void setStageBG(Gdk::Color p_Color);
410 Gdk::Color getStageBG();
411 };
412
413#endif //GTKMM_KAGE_H
Definition: assetmanager.h:34
Definition: document.h:84
Definition: kage.h:69
PropertyFrameTween m_propFrameTween
Definition: kage.h:356
void LayerDel_onClick()
Definition: kage.cpp:1472
std::ofstream ksfFile
Definition: kage.h:295
Gtk::Button _btnTimelinePrevious
Definition: kage.h:216
bool continueNewFileWithUnsavedWork()
Definition: kage.cpp:2048
PropertyLocationSize m_propLocationSize
Definition: kage.h:353
void ToolEyedrop_onClick()
Definition: kage.cpp:1690
const gint64 cycle_time
Definition: kage.h:332
void ToolSelect_onClick()
Definition: kage.cpp:1592
bool saveKageStudio(string p_path, string p_msg)
Definition: kage.cpp:2997
int _area_timeline_pane
Definition: kage.h:342
void ToggleOnionLayer_onClick()
Definition: kage.cpp:1531
bool exportHtml5(string p_path, string p_msg)
Definition: kage.cpp:3006
bool dump(string p_path, string p_msg)
Definition: kage.cpp:2994
void Duplicate_onClick()
Definition: kage.cpp:1021
Glib::RefPtr< Gdk::Pixbuf > _btnLayerAdd_pixbuf
Definition: kage.h:196
unsigned int tickCounter
Definition: kage.h:334
void propStageSetVisible(bool p_visible)
Definition: kage.cpp:1716
KageAssetManager _assetManager
Definition: kage.h:97
KageDocument _document
Definition: kage.h:407
std::ofstream expFile
Definition: kage.h:299
std::vector< Gtk::Tooltip * > tooltips
Definition: kage.h:278
void addToolButton(const Glib::ustring &label)
Definition: kage.cpp:2925
void Raise_onClick()
Definition: kage.cpp:1126
Gtk::VBox m_VBoxTimelineLayer
Definition: kage.h:185
void PasteFrame_onClick()
Definition: kage.cpp:1358
void ToggleProperties_onClick()
Definition: kage.cpp:1078
void Paste_onClick()
Definition: kage.cpp:1014
vector< double > parseNumbers(string p_numbers)
Definition: kage.cpp:3463
Gtk::Button _btnTimelinePlay
Definition: kage.h:219
void Deselect_onClick()
Definition: kage.cpp:1045
void RemoveTweenFrame_onClick()
Definition: kage.cpp:1422
Glib::RefPtr< Gdk::Pixbuf > _btnLayerMoveUp_pixbuf
Definition: kage.h:205
bool doDeleteFrame()
Definition: kage.cpp:1376
Gtk::HSeparator m_Separator
Definition: kage.h:251
void propNodeXYSetVisible(bool p_visible)
Definition: kage.cpp:1729
Gtk::HSeparator m_Separator_Toolbar1
Definition: kage.h:252
bool on_tick(const Glib::RefPtr< Gdk::FrameClock > &frame_clock)
Definition: kage.cpp:2889
Gtk::VBox m_Timeline_Layer_VBox2
Definition: kage.h:189
Gtk::HPaned m_HPane_DrawingArea
Definition: kage.h:287
PropertyNodeXY m_propNodeXY
Definition: kage.h:355
void forceRenderFrames()
Definition: kage.cpp:1870
KageTimeline _timeline
Definition: kage.h:98
Gtk::HSeparator m_Separator_Toolbar4
Definition: kage.h:255
virtual ~Kage()
Definition: kage.cpp:959
bool exportKonsolScript(string p_path, string p_msg)
Definition: kage.cpp:3023
void doExportPNGDialog(string p_title, bool p_transparent)
Definition: kage.cpp:2397
Glib::RefPtr< Gdk::Pixbuf > _toggleOnionLayer_pixbuf
Definition: kage.h:240
void updateShapeProperties()
Definition: kage.cpp:1765
void Cut_onClick()
Definition: kage.cpp:996
void ExportPNG_onClick()
Definition: kage.cpp:2389
Gtk::HBox m_HBoxToolbar
Definition: kage.h:184
void updateColors()
We're updating the GUI's colors based on KageStage's Fill and Stroke colors.
Definition: kage.cpp:1741
Gtk::Image _btnTimelineRewind_img
Definition: kage.h:214
void Play_onClick()
Definition: kage.cpp:2866
KageStage _stage
Definition: kage.h:348
void setCurrentLayerByID(unsigned int p_layerID)
Definition: kage.cpp:1998
void ImportAsset_onClick()
Definition: kage.cpp:2579
void LayerRename_onClick()
Definition: kage.cpp:1461
static void timestamp_IN()
Definition: kage.cpp:3736
bool m_LabelLibrary_onClick(GdkEventButton *event)
Definition: kage.cpp:940
void LayerMoveTop_onClick()
Definition: kage.cpp:1486
bool fileWrite(string p_path, string p_msg, std::ofstream &p_file, bool &p_flag)
Definition: kage.cpp:2975
std::vector< Glib::RefPtr< Gdk::Pixbuf > > toggleButtons_pixbuf
Definition: kage.h:276
void TweenFrame_onClick()
Definition: kage.cpp:1406
string dumpFrameToSvg()
Definition: kage.cpp:3269
std::vector< Gtk::Image > toggleButtons_img
Definition: kage.h:277
void ToolStroke_onClick()
Definition: kage.cpp:1664
vector< VectorData > _undoBase
Definition: kage.h:338
Glib::RefPtr< Gdk::Pixbuf > _btnTimelinePlay_pixbuf
Definition: kage.h:221
void LayerAdd_onClick()
Definition: kage.cpp:1454
void Redo_onClick()
Definition: kage.cpp:985
bool _UPDATE_SHAPE_COLORS
Definition: kage.h:349
virtual bool on_key_release_event(GdkEventKey *e) override
Definition: kage.cpp:949
Glib::RefPtr< Gdk::Pixbuf > _toggleOnion_pixbuf
Definition: kage.h:235
virtual bool on_key_press_event(GdkEventKey *e) override
Definition: kage.cpp:945
Glib::RefPtr< Gdk::Pixbuf > _btnTimelineRewind_pixbuf
Definition: kage.h:215
unsigned int hexToInt15(char p)
Definition: kage.cpp:3433
void refreshUI()
Definition: kage.cpp:1281
Gtk::Image _btnLayerMoveDown_img
Definition: kage.h:207
void setStageBG(Gdk::Color p_Color)
Definition: kage.cpp:3755
Gtk::ScrolledWindow m_Timeline_Layer_ScrolledWindow
Definition: kage.h:246
void LayerMoveUp_onClick()
Definition: kage.cpp:1497
void updateNodeXY()
Definition: kage.cpp:1772
bool expInited
Definition: kage.h:297
bool exportSvg(string p_path, string p_msg)
Definition: kage.cpp:3014
void ToolZoom_onClick()
Definition: kage.cpp:1703
Gtk::Button _btnLayerDelete
Definition: kage.h:197
void ExportPNGSequence_onClick()
Definition: kage.cpp:2502
void Save_onClick()
Definition: kage.cpp:2110
unsigned int getCurrentLayer()
Definition: kage.cpp:1984
Gtk::Button _btnTimelineStop
Definition: kage.h:225
void renderFramesBelowCurrentLayer()
Definition: kage.cpp:1940
Gtk::Button _btnLayerMoveUp
Definition: kage.h:203
Gtk::ScrolledWindow m_Timeline_Frame_ScrolledWindow
Definition: kage.h:247
static void timestamp_OUT()
Definition: kage.cpp:3743
int _area_properties_pane1
Definition: kage.h:343
bool runExternal(string p_cmd, string p_param)
Definition: kage.cpp:3672
void renderFramesAboveCurrentLayer()
Definition: kage.cpp:1964
void propShapePropertiesSetVisible(bool p_visible)
Definition: kage.cpp:1724
void ExportPNGSpritesheet_onClick()
Definition: kage.cpp:2437
bool switchToNextFrame()
Definition: kage.cpp:1445
void parseKSF_Children(vector< XmlTag > p_children)
Definition: kage.cpp:3490
Gtk::Label m_Timeline_Label
Definition: kage.h:193
void doOpen()
Definition: kage.cpp:2092
Gtk::Button _btnTimelineNext
Definition: kage.h:222
Glib::RefPtr< Gdk::Pixbuf > _btnTimelineStop_pixbuf
Definition: kage.h:227
void PreviousFrame_onClick()
Definition: kage.cpp:1247
void PlayFrame_onClick()
Definition: kage.cpp:2876
void ExportHTML5_onClick()
Definition: kage.cpp:2252
void ToolFill_onClick()
Definition: kage.cpp:1677
Gtk::ScrolledWindow m_Property_Pane_ScrolledWindow
Definition: kage.h:259
void ToggleOnionSkin_onClick()
Definition: kage.cpp:1526
void ShowHideLayer_onClick()
Definition: kage.cpp:1464
void ToolRectangle_onClick()
Definition: kage.cpp:1652
void ToggleTimeline_onClick()
Definition: kage.cpp:1066
Gtk::HSeparator m_Separator_Toolbar2
Definition: kage.h:253
void ToolNode_onClick()
Definition: kage.cpp:1603
Gtk::Image _toggleOnion_img
Definition: kage.h:234
Gtk::HBox m_Box1
Definition: kage.h:249
void doSaveDialog(string p_title)
Definition: kage.cpp:2121
bool isLayerLocked()
Definition: kage.cpp:1981
void focusOnStage()
Definition: kage.cpp:3750
Gtk::ToggleButton _toggleOnion
Definition: kage.h:232
void ToolPencil_onClick()
Definition: kage.cpp:1628
std::vector< Gtk::ToggleButton * > toggleButtons
Definition: kage.h:275
void ExtendFrame_onClick()
Definition: kage.cpp:1263
Gtk::Image _btnTimelinePlay_img
Definition: kage.h:220
VectorDataManager getFrameDataAt(unsigned int p_frame)
Definition: kage.cpp:1843
void TogglePropertiesFill_onClick()
Definition: kage.cpp:1089
Glib::RefPtr< Gtk::UIManager > m_refUIManager
Definition: kage.h:265
void RecenterRotationPoint_onClick()
Definition: kage.cpp:1216
Gtk::Image _btnTimelineStop_img
Definition: kage.h:226
Gdk::Color m_Color
Definition: kage.h:358
void toolsButtonToggle(string p_toolTip)
Definition: kage.cpp:1542
Gtk::Image _toggleOnionLayer_img
Definition: kage.h:239
Gtk::VBox m_Timeline_Layer_VBox1
Definition: kage.h:188
void FlipVertical_onClick()
Definition: kage.cpp:1201
void Stop_onClick()
Definition: kage.cpp:2882
void CheckUpdate_onClick()
Definition: kage.cpp:2956
Gtk::HSeparator m_Separator_Toolbar3
Definition: kage.h:254
void NextFrame_onClick()
Definition: kage.cpp:1251
void stackDoZoom(PointData p_originBefore, PointData p_originAfter, PointData p_zoomReference, double p_zoomRatio)
Definition: kage.cpp:970
Glib::RefPtr< Gdk::Pixbuf > _btnLayerMoveDown_pixbuf
Definition: kage.h:208
Gtk::VBox m_Timeline_Layer_VBox
Definition: kage.h:187
void btnDebug_onClick()
Definition: kage.cpp:2945
Gtk::VBox m_Timeline_Frame_VBox2
Definition: kage.h:244
void Copy_onClick()
Definition: kage.cpp:1007
Gtk::HSeparator m_Separator_Library2
Definition: kage.h:257
static void timestamp()
Definition: kage.cpp:3693
void ShapeUngroup_onClick()
Definition: kage.cpp:1109
Gtk::Label m_Timeline_CurrentFrame
Definition: kage.h:241
void ProjectSave_onClick()
Definition: kage.cpp:2840
void RemoveFrame_onClick()
Definition: kage.cpp:1274
string expPath
Definition: kage.h:298
void propFrameTweenSetVisible(bool p_visible)
Definition: kage.cpp:1734
Gtk::VPaned m_VPane_Timeline
Definition: kage.h:286
vector< int > parseColorString(string p_color)
Definition: kage.cpp:3471
Gtk::Image _btnLayerDelete_img
Definition: kage.h:198
Glib::RefPtr< Gdk::Pixbuf > _btnTimelineLoop_pixbuf
Definition: kage.h:230
VectorDataManager getFrameData(bool p_force=false)
Definition: kage.cpp:1828
Gtk::VBox m_VBoxRoot
Definition: kage.h:183
void ToggleLoop_onClick()
Definition: kage.cpp:1255
Gtk::Image _btnTimelineLoop_img
Definition: kage.h:229
KageLibrary _library
Definition: kage.h:357
Gtk::Label _labelStatusMouseXY
Definition: kage.h:289
unsigned m_ContextId
Definition: kage.h:291
PropertyStage m_PropStage
Definition: kage.h:352
bool dtrace(string p_msg)
Definition: kage.cpp:3032
void SaveAs_onClick()
Definition: kage.cpp:2117
void Undo_onClick()
Definition: kage.cpp:974
void FlipHorizontal_onClick()
Definition: kage.cpp:1187
Glib::RefPtr< Gdk::Pixbuf > _btnLayerMoveTop_pixbuf
Definition: kage.h:202
void LayerMoveBottom_onClick()
Definition: kage.cpp:1519
string dumpFrame(bool bKS)
Definition: kage.cpp:3131
void Quit_onClick()
Definition: kage.cpp:1795
void DuplicateFrame_onClick()
Definition: kage.cpp:1269
void LowerToBottom_onClick()
Definition: kage.cpp:1171
Gtk::Label m_TimelineFrame_Label
Definition: kage.h:243
string openTextFile(string p_path)
Definition: kage.cpp:3453
string ksfPath
Definition: kage.h:294
void setCurrentLayer(unsigned int p_layer)
Definition: kage.cpp:1988
void renderFrames()
Definition: kage.cpp:1915
void setFrameData(VectorDataManager p_vectorsData)
Definition: kage.cpp:1852
void setCurrentFrame(unsigned int p_layer)
Definition: kage.cpp:2004
bool _isPlaying
Definition: kage.h:362
void registerPropertiesPane()
Definition: kage.cpp:954
void btnAbout_onClick()
Definition: kage.cpp:2950
Gtk::Image _btnLayerMoveTop_img
Definition: kage.h:201
Glib::RefPtr< Gdk::Pixbuf > _btnTimelineNext_pixbuf
Definition: kage.h:224
Gtk::ToggleButton * currentTool
Definition: kage.h:279
guint m_tick_id
Definition: kage.h:330
Gtk::VBox m_Timeline_Frame_VBox1
Definition: kage.h:242
void OpenKSF_onClick()
Definition: kage.cpp:2064
void displayMouseXY(double p_x, double p_y)
Definition: kage.cpp:963
void LockUnlockLayer_onClick()
Definition: kage.cpp:1468
Gtk::Image _btnTimelineNext_img
Definition: kage.h:223
void TogglePropertiesStroke_onClick()
Definition: kage.cpp:1092
void ExportVideo_onClick()
Definition: kage.cpp:2662
Gtk::VBox m_VBoxTimelineFrame
Definition: kage.h:245
Gtk::Image _btnLayerMoveUp_img
Definition: kage.h:204
void Tween_onClick()
Definition: kage.cpp:1382
Gtk::VScrollbar m_Timeline_VScrollbar
Definition: kage.h:283
Glib::RefPtr< Gdk::Pixbuf > _btnLayerDelete_pixbuf
Definition: kage.h:199
unsigned int getCurrentFrame()
Definition: kage.cpp:1995
void AddFrame_onClick()
Definition: kage.cpp:1258
Gtk::ToggleButton _toggleOnionLayer
Definition: kage.h:237
void doSave(string p_filename)
Definition: kage.cpp:2145
void parseKSF(string p_content)
Definition: kage.cpp:3640
KageLayerManager _layerManager
Definition: kage.h:96
Gtk::Label m_LabelLibrary
Definition: kage.h:261
int _area_properties_pane2
Definition: kage.h:344
void onActionActivate()
Definition: kage.cpp:2862
void CopyFrame_onClick()
Definition: kage.cpp:1347
void stackDo()
Definition: kage.cpp:1777
void Website_onClick()
Definition: kage.cpp:2961
Glib::RefPtr< Gtk::ActionGroup > m_refActionGroup
Definition: kage.h:266
Gtk::Image _btnLayerMoveBottom_img
Definition: kage.h:210
Gtk::VScrollbar m_Property_Pane_VScrollbar
Definition: kage.h:260
void updateSelectedShapeColor(bool p_doFill=true, bool p_doStroke=true)
Used by Fill and Stroke tools.
Definition: kage.cpp:3042
gint64 m_start_time
Definition: kage.h:331
void ExportSVG_onClick()
Definition: kage.cpp:2330
Gtk::HBox m_Timeline_Controls_HBox
Definition: kage.h:192
void DeleteFrame_onClick()
Definition: kage.cpp:1370
PropertyFillStroke m_propFillStroke
Definition: kage.h:354
Glib::RefPtr< Gdk::Pixbuf > _btnTimelinePrevious_pixbuf
Definition: kage.h:218
void ExportPNGTransparent_onClick()
Definition: kage.cpp:2393
Gtk::Button _btnLayerMoveDown
Definition: kage.h:206
Gtk::HBox m_Timeline_HBox
Definition: kage.h:284
Gdk::Color getStageBG()
Definition: kage.cpp:3762
Gtk::Statusbar m_Statusbar
Definition: kage.h:288
void ToolPoly_onClick()
Definition: kage.cpp:1616
bool _propStrokeVisible
Definition: kage.h:351
void Delete_onClick()
Definition: kage.cpp:1231
void Lower_onClick()
Definition: kage.cpp:1141
void SelectAll_onClick()
Definition: kage.cpp:1035
virtual bool on_delete_event(GdkEventAny *any_event)
Definition: kage.cpp:1802
Gtk::VBox m_PropertyBox
Definition: kage.h:250
UnRe _undoRedoManager
Definition: kage.h:386
bool ksfInited
Definition: kage.h:293
Gtk::Button _btnLayerMoveTop
Definition: kage.h:200
string saveFrame()
Definition: kage.cpp:3064
Gtk::HPaned m_Timeline_HPaned
Definition: kage.h:186
Gtk::ScrolledWindow m_Stage_Pane_ScrolledWindow
Definition: kage.h:264
guint frameCounter
Definition: kage.h:335
void updateStatus(Glib::ustring status_msg)
Definition: kage.cpp:966
Gtk::Label m_LabelProp
Definition: kage.h:258
void New_onClick()
Definition: kage.cpp:2010
static unsigned int TAB_COUNT
Definition: kage.h:371
void openWebsite(string p_url)
Definition: kage.cpp:2965
bool _propFillVisible
Definition: kage.h:350
Gtk::Image _btnLayerAdd_img
Definition: kage.h:195
unsigned int getTween()
Definition: kage.cpp:1862
Gtk::HScrollbar m_Timeline_HScrollbar
Definition: kage.h:282
Gtk::HBox m_Timeline_Layer_Controls_HBox
Definition: kage.h:191
void RaiseToTop_onClick()
Definition: kage.cpp:1156
Gtk::VBox m_VBoxToolbar_Holder
Definition: kage.h:248
void addDataToFrame(VectorDataManager v, bool p_force=false)
Definition: kage.cpp:1818
bool isFrameEmpty()
Definition: kage.cpp:1866
string int255ToHex(unsigned int p)
Definition: kage.cpp:3374
void renderOnionFrames()
Definition: kage.cpp:1882
Gtk::Image _btnTimelinePrevious_img
Definition: kage.h:217
Gtk::Button _btnTimelineRewind
Definition: kage.h:213
char int15ToHex(unsigned int p)
Definition: kage.cpp:3410
void ToolOval_onClick()
Definition: kage.cpp:1640
Gtk::ToggleButton _btnTimelineLoop
Definition: kage.h:228
void propFillStrokeSetVisible(bool p_visible)
Definition: kage.cpp:1720
void ToolButtons_onClick(Gtk::ToggleButton *p_sourceButton)
Definition: kage.cpp:1558
Gtk::HSeparator m_Separator_Library1
Definition: kage.h:256
bool switchToPreviousFrame()
Definition: kage.cpp:1436
Gtk::Button _btnLayerAdd
Definition: kage.h:194
Gtk::ToggleButton m_ToggleBtnSelect
Definition: kage.h:269
Gtk::Label m_LblHolder_Toolbar
Definition: kage.h:263
Glib::RefPtr< Gdk::Pixbuf > _btnLayerMoveBottom_pixbuf
Definition: kage.h:211
void LayerMoveDown_onClick()
Definition: kage.cpp:1508
void CutFrame_onClick()
Definition: kage.cpp:1336
void ShapeGroup_onClick()
Definition: kage.cpp:1096
Gtk::Button _btnLayerMoveBottom
Definition: kage.h:209
void ToggleOnion_onClick()
Definition: kage.cpp:1536
unsigned int hexToInt255(string p)
Definition: kage.cpp:3389
void ExportKS_onClick()
Definition: kage.cpp:2206
Gtk::HScrollbar m_Timeline_Layer_HScrollbar
Definition: kage.h:281
Definition: layermanager.h:33
forward declaration
Definition: library.h:31
Definition: stage.h:39
forward declaration
Definition: timeline.h:32
Definition: point.h:27
Definition: fillstroke.h:37
Definition: frametween.h:34
Definition: locationsize.h:35
Definition: nodexy.h:35
Definition: stage.h:35
Definition: unre.h:35
Definition: vectordatamanager.h:37