diff options
Diffstat (limited to 'editor/animation_track_editor.h')
-rw-r--r-- | editor/animation_track_editor.h | 163 |
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; |