summaryrefslogtreecommitdiff
path: root/editor/animation_track_editor.h
diff options
context:
space:
mode:
Diffstat (limited to 'editor/animation_track_editor.h')
-rw-r--r--editor/animation_track_editor.h163
1 files changed, 83 insertions, 80 deletions
diff --git a/editor/animation_track_editor.h b/editor/animation_track_editor.h
index 1baebc469e..07c3ed9990 100644
--- a/editor/animation_track_editor.h
+++ b/editor/animation_track_editor.h
@@ -46,7 +46,6 @@
#include "scene/resources/animation.h"
#include "scene_tree_editor.h"
-class AnimationPlayer;
class AnimationTrackEdit;
class ViewPanner;
@@ -54,27 +53,27 @@ class AnimationTimelineEdit : public Range {
GDCLASS(AnimationTimelineEdit, Range);
Ref<Animation> animation;
- AnimationTrackEdit *track_edit;
- int name_limit;
- Range *zoom;
- Range *h_scroll;
- float play_position_pos;
+ AnimationTrackEdit *track_edit = nullptr;
+ int name_limit = 0;
+ Range *zoom = nullptr;
+ Range *h_scroll = nullptr;
+ float play_position_pos = 0.0f;
- HBoxContainer *len_hb;
- EditorSpinSlider *length;
- Button *loop;
- TextureRect *time_icon;
+ HBoxContainer *len_hb = nullptr;
+ EditorSpinSlider *length = nullptr;
+ Button *loop = nullptr;
+ TextureRect *time_icon = nullptr;
- MenuButton *add_track;
- Control *play_position; //separate control used to draw so updates for only position changed are much faster
- HScrollBar *hscroll;
+ MenuButton *add_track = nullptr;
+ Control *play_position = nullptr; //separate control used to draw so updates for only position changed are much faster
+ HScrollBar *hscroll = nullptr;
void _zoom_changed(double);
void _anim_length_changed(double p_new_len);
void _anim_loop_pressed();
void _play_position_draw();
- UndoRedo *undo_redo;
+ UndoRedo *undo_redo = nullptr;
Rect2 hsize_rect;
bool editing = false;
@@ -87,8 +86,8 @@ class AnimationTimelineEdit : public Range {
bool dragging_timeline = false;
bool dragging_hsize = false;
- float dragging_hsize_from;
- float dragging_hsize_at;
+ float dragging_hsize_from = 0.0f;
+ float dragging_hsize_at = 0.0f;
virtual void gui_input(const Ref<InputEvent> &p_event) override;
void _track_added(int p_track);
@@ -146,17 +145,18 @@ class AnimationTrackEdit : public Control {
MENU_KEY_ADD_RESET,
MENU_KEY_DELETE
};
- AnimationTimelineEdit *timeline;
- UndoRedo *undo_redo;
- Popup *path_popup;
- LineEdit *path;
- Node *root;
- Control *play_position; //separate control used to draw so updates for only position changed are much faster
- float play_position_pos;
+
+ AnimationTimelineEdit *timeline = nullptr;
+ UndoRedo *undo_redo = nullptr;
+ Popup *path_popup = nullptr;
+ LineEdit *path = nullptr;
+ Node *root = nullptr;
+ Control *play_position = nullptr; //separate control used to draw so updates for only position changed are much faster
+ float play_position_pos = 0.0f;
NodePath node_path;
Ref<Animation> animation;
- int track;
+ int track = 0;
Rect2 check_rect;
Rect2 path_rect;
@@ -169,9 +169,11 @@ class AnimationTrackEdit : public Control {
Ref<Texture2D> type_icon;
Ref<Texture2D> selected_icon;
- PopupMenu *menu;
+ PopupMenu *menu = nullptr;
+ bool hovered = false;
bool clicking_on_name = false;
+ int hovering_key_idx = -1;
void _zoom_changed();
@@ -186,15 +188,15 @@ class AnimationTrackEdit : public Control {
Ref<Texture2D> _get_key_type_icon() const;
- mutable int dropping_at;
- float insert_at_pos;
+ mutable int dropping_at = 0;
+ float insert_at_pos = 0.0f;
bool moving_selection_attempt = false;
- int select_single_attempt;
+ int select_single_attempt = -1;
bool moving_selection = false;
- float moving_selection_from_ofs;
+ float moving_selection_from_ofs = 0.0f;
bool in_group = false;
- AnimationTrackEditor *editor;
+ AnimationTrackEditor *editor = nullptr;
protected:
static void _bind_methods();
@@ -285,27 +287,27 @@ class AnimationTrackEditor : public VBoxContainer {
GDCLASS(AnimationTrackEditor, VBoxContainer);
Ref<Animation> animation;
- Node *root;
-
- MenuButton *edit;
+ Node *root = nullptr;
- PanelContainer *main_panel;
- HScrollBar *hscroll;
- ScrollContainer *scroll;
- VBoxContainer *track_vbox;
- AnimationBezierTrackEdit *bezier_edit;
+ MenuButton *edit = nullptr;
- Label *info_message;
+ PanelContainer *main_panel = nullptr;
+ HScrollBar *hscroll = nullptr;
+ ScrollContainer *scroll = nullptr;
+ VBoxContainer *track_vbox = nullptr;
+ AnimationBezierTrackEdit *bezier_edit = nullptr;
- AnimationTimelineEdit *timeline;
- HSlider *zoom;
- EditorSpinSlider *step;
- TextureRect *zoom_icon;
- Button *snap;
- Button *bezier_edit_icon;
- OptionButton *snap_mode;
+ Label *info_message = nullptr;
- Button *imported_anim_warning;
+ AnimationTimelineEdit *timeline = nullptr;
+ HSlider *zoom = nullptr;
+ EditorSpinSlider *step = nullptr;
+ TextureRect *zoom_icon = nullptr;
+ Button *snap = nullptr;
+ Button *bezier_edit_icon = nullptr;
+ OptionButton *snap_mode = nullptr;
+
+ Button *imported_anim_warning = nullptr;
void _show_imported_anim_warning();
void _snap_mode_changed(int p_mode);
@@ -321,9 +323,10 @@ class AnimationTrackEditor : public VBoxContainer {
void _name_limit_changed();
void _timeline_changed(float p_new_pos, bool p_drag, bool p_timeline_only);
void _track_remove_request(int p_track);
+ void _animation_track_remove_request(int p_track, Ref<Animation> p_from_animation);
void _track_grab_focus(int p_track);
- UndoRedo *undo_redo;
+ UndoRedo *undo_redo = nullptr;
void _update_scroll(double);
void _update_step(double p_new_step);
@@ -336,10 +339,10 @@ class AnimationTrackEditor : public VBoxContainer {
void _update_step_spinbox();
- PropertySelector *prop_selector;
- PropertySelector *method_selector;
- SceneTreeDialog *pick_track;
- int adding_track_type;
+ PropertySelector *prop_selector = nullptr;
+ PropertySelector *method_selector = nullptr;
+ SceneTreeDialog *pick_track = nullptr;
+ int adding_track_type = 0;
NodePath adding_track_path;
bool keying = false;
@@ -351,12 +354,12 @@ class AnimationTrackEditor : public VBoxContainer {
Variant value;
String query;
bool advance = false;
- }; /* insert_data;*/
+ };
- Label *insert_confirm_text;
- CheckBox *insert_confirm_bezier;
- CheckBox *insert_confirm_reset;
- ConfirmationDialog *insert_confirm;
+ Label *insert_confirm_text = nullptr;
+ CheckBox *insert_confirm_bezier = nullptr;
+ CheckBox *insert_confirm_reset = nullptr;
+ ConfirmationDialog *insert_confirm = nullptr;
bool insert_queue = false;
List<InsertData> insert_data;
@@ -375,7 +378,7 @@ class AnimationTrackEditor : public VBoxContainer {
TrackIndices _confirm_insert(InsertData p_id, TrackIndices p_next_tracks, bool p_create_reset, Ref<Animation> p_reset_anim, bool p_create_beziers);
void _insert_track(bool p_create_reset, bool p_create_beziers);
- void _root_removed(Node *p_root);
+ void _root_removed();
PropertyInfo _find_hint_for_track(int p_idx, NodePath &r_base_path, Variant *r_current_val = nullptr);
@@ -386,8 +389,8 @@ class AnimationTrackEditor : public VBoxContainer {
void _timeline_value_changed(double);
- float insert_key_from_track_call_ofs;
- int insert_key_from_track_call_track;
+ float insert_key_from_track_call_ofs = 0.0f;
+ int insert_key_from_track_call_track = 0;
void _insert_key_from_track(float p_ofs, int p_track);
void _add_method_key(const String &p_method);
@@ -407,25 +410,25 @@ class AnimationTrackEditor : public VBoxContainer {
float pos = 0;
};
- Map<SelectedKey, KeyInfo> selection;
+ RBMap<SelectedKey, KeyInfo> selection;
void _key_selected(int p_key, bool p_single, int p_track);
void _key_deselected(int p_key, int p_track);
bool moving_selection = false;
- float moving_selection_offset;
+ float moving_selection_offset = 0.0f;
void _move_selection_begin();
void _move_selection(float p_offset);
void _move_selection_commit();
void _move_selection_cancel();
- AnimationTrackKeyEdit *key_edit;
- AnimationMultiTrackKeyEdit *multi_key_edit;
+ AnimationTrackKeyEdit *key_edit = nullptr;
+ AnimationMultiTrackKeyEdit *multi_key_edit = nullptr;
void _update_key_edit();
void _clear_key_edit();
- Control *box_selection;
+ Control *box_selection = nullptr;
void _box_selection_draw();
bool box_selecting = false;
Vector2 box_selecting_from;
@@ -440,37 +443,37 @@ class AnimationTrackEditor : public VBoxContainer {
////////////// edit menu stuff
- ConfirmationDialog *optimize_dialog;
- SpinBox *optimize_linear_error;
- SpinBox *optimize_angular_error;
- SpinBox *optimize_max_angle;
+ ConfirmationDialog *optimize_dialog = nullptr;
+ SpinBox *optimize_linear_error = nullptr;
+ SpinBox *optimize_angular_error = nullptr;
+ SpinBox *optimize_max_angle = nullptr;
- ConfirmationDialog *cleanup_dialog;
- CheckBox *cleanup_keys;
- CheckBox *cleanup_tracks;
- CheckBox *cleanup_all;
+ ConfirmationDialog *cleanup_dialog = nullptr;
+ CheckBox *cleanup_keys = nullptr;
+ CheckBox *cleanup_tracks = nullptr;
+ CheckBox *cleanup_all = nullptr;
- ConfirmationDialog *scale_dialog;
- SpinBox *scale;
+ ConfirmationDialog *scale_dialog = nullptr;
+ SpinBox *scale = nullptr;
void _select_all_tracks_for_copy();
void _edit_menu_about_to_popup();
void _edit_menu_pressed(int p_option);
- int last_menu_track_opt;
+ int last_menu_track_opt = 0;
void _cleanup_animation(Ref<Animation> p_animation);
void _anim_duplicate_keys(bool transpose);
void _view_group_toggle();
- Button *view_group;
- Button *selected_filter;
+ Button *view_group = nullptr;
+ Button *selected_filter = nullptr;
void _selection_changed();
- ConfirmationDialog *track_copy_dialog;
- Tree *track_copy_select;
+ ConfirmationDialog *track_copy_dialog = nullptr;
+ Tree *track_copy_select = nullptr;
struct TrackClipboard {
NodePath full_path;