mirror of
https://github.com/godotengine/godot.git
synced 2025-11-01 14:11:15 +00:00
Unite GradientEdit and GradientEditor as editor-only widget
This commit is contained in:
parent
a5db03efa7
commit
93078ea551
4 changed files with 160 additions and 179 deletions
|
|
@ -37,62 +37,6 @@
|
|||
#include "editor/editor_undo_redo_manager.h"
|
||||
#include "node_3d_editor_plugin.h"
|
||||
|
||||
Size2 GradientEditor::get_minimum_size() const {
|
||||
return Size2(0, 60) * EDSCALE;
|
||||
}
|
||||
|
||||
void GradientEditor::_gradient_changed() {
|
||||
if (editing) {
|
||||
return;
|
||||
}
|
||||
|
||||
editing = true;
|
||||
Vector<Gradient::Point> points = gradient->get_points();
|
||||
set_points(points);
|
||||
set_interpolation_mode(gradient->get_interpolation_mode());
|
||||
queue_redraw();
|
||||
editing = false;
|
||||
}
|
||||
|
||||
void GradientEditor::_ramp_changed() {
|
||||
editing = true;
|
||||
Ref<EditorUndoRedoManager> undo_redo = EditorNode::get_undo_redo();
|
||||
undo_redo->create_action(TTR("Gradient Edited"), UndoRedo::MERGE_ENDS);
|
||||
undo_redo->add_do_method(gradient.ptr(), "set_offsets", get_offsets());
|
||||
undo_redo->add_do_method(gradient.ptr(), "set_colors", get_colors());
|
||||
undo_redo->add_do_method(gradient.ptr(), "set_interpolation_mode", get_interpolation_mode());
|
||||
undo_redo->add_undo_method(gradient.ptr(), "set_offsets", gradient->get_offsets());
|
||||
undo_redo->add_undo_method(gradient.ptr(), "set_colors", gradient->get_colors());
|
||||
undo_redo->add_undo_method(gradient.ptr(), "set_interpolation_mode", gradient->get_interpolation_mode());
|
||||
undo_redo->commit_action();
|
||||
editing = false;
|
||||
}
|
||||
|
||||
void GradientEditor::_bind_methods() {
|
||||
}
|
||||
|
||||
void GradientEditor::set_gradient(const Ref<Gradient> &p_gradient) {
|
||||
gradient = p_gradient;
|
||||
connect("ramp_changed", callable_mp(this, &GradientEditor::_ramp_changed));
|
||||
gradient->connect("changed", callable_mp(this, &GradientEditor::_gradient_changed));
|
||||
set_points(gradient->get_points());
|
||||
set_interpolation_mode(gradient->get_interpolation_mode());
|
||||
}
|
||||
|
||||
void GradientEditor::reverse_gradient() {
|
||||
gradient->reverse();
|
||||
set_points(gradient->get_points());
|
||||
emit_signal(SNAME("ramp_changed"));
|
||||
queue_redraw();
|
||||
}
|
||||
|
||||
GradientEditor::GradientEditor() {
|
||||
GradientEdit::get_popup()->connect("about_to_popup", callable_mp(EditorNode::get_singleton(), &EditorNode::setup_color_picker).bind(GradientEdit::get_picker()));
|
||||
editing = false;
|
||||
}
|
||||
|
||||
///////////////////////
|
||||
|
||||
void GradientReverseButton::_notification(int p_what) {
|
||||
switch (p_what) {
|
||||
case NOTIFICATION_DRAW: {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue