Kage Studio 0.7.240121
A Simple Free and Open Source 2D Animation Software
Loading...
Searching...
No Matches
timeline.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) 2023-2024 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_TIMELINE_H
23 #define GTKMM_KAGE_TIMELINE_H
24
25 #include <gtkmm/drawingarea.h>
26 #include <time.h>
27 #include "../vectordatamanager.h"
28 #include "../data/point.h"
29
30 class Kage;
31
32 class KageTimeline : public Gtk::DrawingArea {
33 public:
34 static bool mouseIsDown;
35
36 static Glib::RefPtr<Gdk::Pixbuf> imageNULL;
37 static Glib::RefPtr<Gdk::Pixbuf> imageNULL_CUR;
38 static Glib::RefPtr<Gdk::Pixbuf> imageNULL_X;
39 static Glib::RefPtr<Gdk::Pixbuf> imageNULL_X_CUR;
40 static Glib::RefPtr<Gdk::Pixbuf> imageBLANK;
41 static Glib::RefPtr<Gdk::Pixbuf> imageBLANK_CUR;
42 static Glib::RefPtr<Gdk::Pixbuf> imageBLANK_CUR_SEL;
43 static Glib::RefPtr<Gdk::Pixbuf> imageBLANK_CUR_TWN;
44 static Glib::RefPtr<Gdk::Pixbuf> imageBLANK_CUR_SEL_TWN;
45 static Glib::RefPtr<Gdk::Pixbuf> imageBLANK_SEL;
46 static Glib::RefPtr<Gdk::Pixbuf> imageBLANK_SEL_TWN;
47 static Glib::RefPtr<Gdk::Pixbuf> imageBLANK_TWN;
48 static Glib::RefPtr<Gdk::Pixbuf> imageBLANK_X;
49 static Glib::RefPtr<Gdk::Pixbuf> imageBLANK_X_CUR;
50 static Glib::RefPtr<Gdk::Pixbuf> imageBLANK_X_CUR_SEL;
51 static Glib::RefPtr<Gdk::Pixbuf> imageBLANK_X_CUR_TWN;
52 static Glib::RefPtr<Gdk::Pixbuf> imageBLANK_X_CUR_SEL_TWN;
53 static Glib::RefPtr<Gdk::Pixbuf> imageBLANK_X_SEL;
54 static Glib::RefPtr<Gdk::Pixbuf> imageBLANK_X_SEL_TWN;
55 static Glib::RefPtr<Gdk::Pixbuf> imageBLANK_X_TWN;
56 static Glib::RefPtr<Gdk::Pixbuf> imageDRAWN;
57 static Glib::RefPtr<Gdk::Pixbuf> imageDRAWN_CUR;
58 static Glib::RefPtr<Gdk::Pixbuf> imageDRAWN_CUR_SEL;
59 static Glib::RefPtr<Gdk::Pixbuf> imageDRAWN_CUR_TWN;
60 static Glib::RefPtr<Gdk::Pixbuf> imageDRAWN_CUR_SEL_TWN;
61 static Glib::RefPtr<Gdk::Pixbuf> imageDRAWN_SEL;
62 static Glib::RefPtr<Gdk::Pixbuf> imageDRAWN_SEL_TWN;
63 static Glib::RefPtr<Gdk::Pixbuf> imageDRAWN_TWN;
64 static Glib::RefPtr<Gdk::Pixbuf> imageDRAWN_X;
65 static Glib::RefPtr<Gdk::Pixbuf> imageDRAWN_X_CUR;
66 static Glib::RefPtr<Gdk::Pixbuf> imageDRAWN_X_CUR_SEL;
67 static Glib::RefPtr<Gdk::Pixbuf> imageDRAWN_X_CUR_TWN;
68 static Glib::RefPtr<Gdk::Pixbuf> imageDRAWN_X_CUR_SEL_TWN;
69 static Glib::RefPtr<Gdk::Pixbuf> imageDRAWN_X_SEL;
70 static Glib::RefPtr<Gdk::Pixbuf> imageDRAWN_X_SEL_TWN;
71 static Glib::RefPtr<Gdk::Pixbuf> imageDRAWN_X_TWN;
72
73 static bool DEBUG_ON;
74
75 Glib::RefPtr<Gdk::Window> window;
76
77 KageTimeline(Kage* p_kage);
78 virtual ~KageTimeline();
79
80 void setSelected(bool p_selected);
81 bool isSelected();
83 void setFrameData(VectorDataManager p_vectorsData);
84 void setFocus();
85
86 void forceRender();
87 virtual bool invalidateToRender();
88
89 static bool _gotFocus;
90
91 std::vector<unsigned int> raiseSelectedShape(std::vector<unsigned int> p_selectedShapes);
92
94 protected:
96 //Override default signal handler:
97 virtual bool on_expose_event(GdkEventExpose *e);
98 virtual bool on_key_press_event(GdkEventKey *e) override;
99 virtual bool on_key_release_event(GdkEventKey *e) override;
100 virtual bool on_event(GdkEvent *e) override;
101
102 bool on_draw(const Cairo::RefPtr<Cairo::Context>& cr) override;
103
104 bool _null;
105 unsigned int _tweenX;
106 unsigned int _tweenY;
109
111
114 };
115#endif // GTKMM_KAGE_LIBRARY_H
Definition kage.h:74
unsigned int _tweenY
Definition timeline.h:106
static Glib::RefPtr< Gdk::Pixbuf > imageDRAWN_X_TWN
Definition timeline.h:71
static Glib::RefPtr< Gdk::Pixbuf > imageBLANK_X_SEL_TWN
Definition timeline.h:54
VectorDataManager getFrameData()
Definition timeline.cpp:634
virtual bool on_key_press_event(GdkEventKey *e) override
Definition timeline.cpp:151
PointData draw2
Definition timeline.h:113
void addDataToFrame(VectorDataManager v)
Definition timeline.cpp:655
virtual bool invalidateToRender()
Definition timeline.cpp:317
static Glib::RefPtr< Gdk::Pixbuf > imageDRAWN_CUR_SEL
Definition timeline.h:58
virtual bool on_key_release_event(GdkEventKey *e) override
Definition timeline.cpp:171
static Glib::RefPtr< Gdk::Pixbuf > imageDRAWN_CUR_SEL_TWN
Definition timeline.h:60
static Glib::RefPtr< Gdk::Pixbuf > imageBLANK_X_TWN
Definition timeline.h:55
static Glib::RefPtr< Gdk::Pixbuf > imageNULL_X
Definition timeline.h:38
static Glib::RefPtr< Gdk::Pixbuf > imageDRAWN_X_CUR_SEL_TWN
Definition timeline.h:68
void forceRender()
Definition timeline.cpp:311
static Glib::RefPtr< Gdk::Pixbuf > imageBLANK_CUR_TWN
Definition timeline.h:43
static Glib::RefPtr< Gdk::Pixbuf > imageBLANK_X_SEL
Definition timeline.h:53
static Glib::RefPtr< Gdk::Pixbuf > imageDRAWN_X
Definition timeline.h:64
static Glib::RefPtr< Gdk::Pixbuf > imageDRAWN_CUR
Definition timeline.h:57
static Glib::RefPtr< Gdk::Pixbuf > imageBLANK_CUR
Definition timeline.h:41
static Glib::RefPtr< Gdk::Pixbuf > imageDRAWN_X_CUR_SEL
Definition timeline.h:66
static Glib::RefPtr< Gdk::Pixbuf > imageDRAWN_X_SEL
Definition timeline.h:69
static Glib::RefPtr< Gdk::Pixbuf > imageBLANK_SEL_TWN
Definition timeline.h:46
PointData draw1
Definition timeline.h:112
static bool mouseIsDown
Definition timeline.h:34
static Glib::RefPtr< Gdk::Pixbuf > imageBLANK_X_CUR_SEL
Definition timeline.h:50
static Glib::RefPtr< Gdk::Pixbuf > imageNULL
Definition timeline.h:36
static Glib::RefPtr< Gdk::Pixbuf > imageDRAWN_TWN
Definition timeline.h:63
static Glib::RefPtr< Gdk::Pixbuf > imageBLANK_TWN
Definition timeline.h:47
void setFrameData(VectorDataManager p_vectorsData)
Definition timeline.cpp:643
std::vector< unsigned int > raiseSelectedShape(std::vector< unsigned int > p_selectedShapes)
Definition timeline.cpp:651
bool on_draw(const Cairo::RefPtr< Cairo::Context > &cr) override
Definition timeline.cpp:335
KageTimeline(Kage *p_kage)
Definition timeline.cpp:74
unsigned int _tweenX
Definition timeline.h:105
virtual ~KageTimeline()
Definition timeline.cpp:133
static Glib::RefPtr< Gdk::Pixbuf > imageBLANK
Definition timeline.h:40
Glib::RefPtr< Gdk::Window > window
Definition timeline.h:75
bool isSelected()
Definition timeline.cpp:630
static Glib::RefPtr< Gdk::Pixbuf > imageBLANK_X
Definition timeline.h:48
static Glib::RefPtr< Gdk::Pixbuf > imageDRAWN_X_CUR_TWN
Definition timeline.h:67
bool _selected
Definition timeline.h:107
static Glib::RefPtr< Gdk::Pixbuf > imageBLANK_X_CUR_TWN
Definition timeline.h:51
VectorDataManager vectorsData
Definition timeline.h:110
void setSelected(bool p_selected)
Definition timeline.cpp:626
static Glib::RefPtr< Gdk::Pixbuf > imageNULL_CUR
Definition timeline.h:37
void setFocus()
Definition timeline.cpp:647
static Glib::RefPtr< Gdk::Pixbuf > imageBLANK_X_CUR_SEL_TWN
Definition timeline.h:52
static Glib::RefPtr< Gdk::Pixbuf > imageBLANK_SEL
Definition timeline.h:45
static Glib::RefPtr< Gdk::Pixbuf > imageBLANK_CUR_SEL_TWN
Definition timeline.h:44
Kage * _kage
Definition timeline.h:95
bool _current
Definition timeline.h:108
static Glib::RefPtr< Gdk::Pixbuf > imageDRAWN
Definition timeline.h:56
static Glib::RefPtr< Gdk::Pixbuf > imageDRAWN_SEL
Definition timeline.h:61
static Glib::RefPtr< Gdk::Pixbuf > imageBLANK_X_CUR
Definition timeline.h:49
static Glib::RefPtr< Gdk::Pixbuf > imageNULL_X_CUR
Definition timeline.h:39
static Glib::RefPtr< Gdk::Pixbuf > imageBLANK_CUR_SEL
Definition timeline.h:42
static bool _gotFocus
Definition timeline.h:89
static Glib::RefPtr< Gdk::Pixbuf > imageDRAWN_SEL_TWN
Definition timeline.h:62
static bool DEBUG_ON
Definition timeline.h:73
virtual bool on_event(GdkEvent *e) override
Definition timeline.cpp:193
static Glib::RefPtr< Gdk::Pixbuf > imageDRAWN_CUR_TWN
Definition timeline.h:59
virtual bool on_expose_event(GdkEventExpose *e)
Definition timeline.cpp:182
static Glib::RefPtr< Gdk::Pixbuf > imageDRAWN_X_CUR
Definition timeline.h:65
static Glib::RefPtr< Gdk::Pixbuf > imageDRAWN_X_SEL_TWN
Definition timeline.h:70
bool _null
Definition timeline.h:104
Definition point.h:27
Definition vectordatamanager.h:35