diff options
Diffstat (limited to 'scene')
88 files changed, 1403 insertions, 864 deletions
diff --git a/scene/2d/camera_2d.cpp b/scene/2d/camera_2d.cpp index b11c1dd642..20571abdb9 100644 --- a/scene/2d/camera_2d.cpp +++ b/scene/2d/camera_2d.cpp @@ -552,11 +552,11 @@ float Camera2D::get_h_offset() const { return h_ofs; } -void Camera2D::_set_old_smoothing(float p_val) { +void Camera2D::_set_old_smoothing(float p_enable) { //compatibility - if (p_val > 0) { + if (p_enable > 0) { smoothing_enabled = true; - set_follow_smoothing(p_val); + set_follow_smoothing(p_enable); } } diff --git a/scene/2d/canvas_item.h b/scene/2d/canvas_item.h index 27842727ac..660ddcf930 100644 --- a/scene/2d/canvas_item.h +++ b/scene/2d/canvas_item.h @@ -297,7 +297,7 @@ public: void set_use_parent_material(bool p_use_parent_material); bool get_use_parent_material() const; - Ref<InputEvent> make_input_local(const Ref<InputEvent> &pevent) const; + Ref<InputEvent> make_input_local(const Ref<InputEvent> &p_event) const; Vector2 make_canvas_pos_local(const Vector2 &screen_point) const; Vector2 get_global_mouse_position() const; diff --git a/scene/2d/joints_2d.h b/scene/2d/joints_2d.h index b52b0f4670..f854ce51ee 100644 --- a/scene/2d/joints_2d.h +++ b/scene/2d/joints_2d.h @@ -81,7 +81,7 @@ protected: static void _bind_methods(); public: - void set_softness(real_t p_stiffness); + void set_softness(real_t p_softness); real_t get_softness() const; PinJoint2D(); diff --git a/scene/2d/light_2d.cpp b/scene/2d/light_2d.cpp index e8c2122bd1..ffe69fa93f 100644 --- a/scene/2d/light_2d.cpp +++ b/scene/2d/light_2d.cpp @@ -416,7 +416,7 @@ void Light2D::_bind_methods() { ADD_PROPERTY(PropertyInfo(Variant::BOOL, "editor_only"), "set_editor_only", "is_editor_only"); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "texture", PROPERTY_HINT_RESOURCE_TYPE, "Texture"), "set_texture", "get_texture"); ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "offset"), "set_texture_offset", "get_texture_offset"); - ADD_PROPERTY(PropertyInfo(Variant::REAL, "scale", PROPERTY_HINT_RANGE, "0.01,50,0.01"), "set_texture_scale", "get_texture_scale"); + ADD_PROPERTY(PropertyInfo(Variant::REAL, "texture_scale", PROPERTY_HINT_RANGE, "0.01,50,0.01"), "set_texture_scale", "get_texture_scale"); ADD_PROPERTY(PropertyInfo(Variant::COLOR, "color"), "set_color", "get_color"); ADD_PROPERTY(PropertyInfo(Variant::REAL, "energy", PROPERTY_HINT_RANGE, "0.01,100,0.01"), "set_energy", "get_energy"); ADD_PROPERTY(PropertyInfo(Variant::INT, "mode", PROPERTY_HINT_ENUM, "Add,Sub,Mix,Mask"), "set_mode", "get_mode"); diff --git a/scene/2d/navigation2d.cpp b/scene/2d/navigation2d.cpp index e579838903..383236b4ca 100644 --- a/scene/2d/navigation2d.cpp +++ b/scene/2d/navigation2d.cpp @@ -646,7 +646,8 @@ debug path break; } - path.push_back(begin_point); + if (path[path.size() - 1].distance_to(begin_point) > CMP_EPSILON) + path.push_back(begin_point); path.invert(); } diff --git a/scene/2d/node_2d.h b/scene/2d/node_2d.h index df9a05ff79..a6009851c7 100644 --- a/scene/2d/node_2d.h +++ b/scene/2d/node_2d.h @@ -49,7 +49,7 @@ class Node2D : public CanvasItem { void _update_transform(); // Deprecated, should be removed in a future version. - void _set_rotd(float p_angle); + void _set_rotd(float p_degrees); float _get_rotd() const; void _update_xform_values(); diff --git a/scene/2d/parallax_background.h b/scene/2d/parallax_background.h index 99d8dd3811..fce1bbd928 100644 --- a/scene/2d/parallax_background.h +++ b/scene/2d/parallax_background.h @@ -60,7 +60,7 @@ public: void set_scroll_offset(const Point2 &p_ofs); Point2 get_scroll_offset() const; - void set_scroll_scale(float p_ofs); + void set_scroll_scale(float p_scale); float get_scroll_scale() const; void set_scroll_base_offset(const Point2 &p_ofs); diff --git a/scene/2d/parallax_layer.h b/scene/2d/parallax_layer.h index 85e70b0a51..f2d0053342 100644 --- a/scene/2d/parallax_layer.h +++ b/scene/2d/parallax_layer.h @@ -48,7 +48,7 @@ protected: static void _bind_methods(); public: - void set_motion_offset(const Size2 &p_scale); + void set_motion_offset(const Size2 &p_offset); Size2 get_motion_offset() const; void set_motion_scale(const Size2 &p_scale); @@ -57,7 +57,7 @@ public: void set_mirroring(const Size2 &p_mirroring); Size2 get_mirroring() const; - void set_base_offset_and_scale(const Point2 &p_offsetf, float p_scale); + void set_base_offset_and_scale(const Point2 &p_offset, float p_scale); virtual String get_configuration_warning() const; ParallaxLayer(); diff --git a/scene/2d/particles_2d.cpp b/scene/2d/particles_2d.cpp index 4aa841131a..a2ec33f403 100644 --- a/scene/2d/particles_2d.cpp +++ b/scene/2d/particles_2d.cpp @@ -55,6 +55,8 @@ void Particles2D::set_one_shot(bool p_enable) { one_shot = p_enable; VS::get_singleton()->particles_set_one_shot(particles, one_shot); + if (!one_shot && emitting) + VisualServer::get_singleton()->particles_restart(particles); } void Particles2D::set_pre_process_time(float p_time) { diff --git a/scene/2d/particles_2d.h b/scene/2d/particles_2d.h index 23278ce746..a6ac0c37d3 100644 --- a/scene/2d/particles_2d.h +++ b/scene/2d/particles_2d.h @@ -80,7 +80,7 @@ public: void set_emitting(bool p_emitting); void set_amount(int p_amount); void set_lifetime(float p_lifetime); - void set_one_shot(bool p_enabled); + void set_one_shot(bool p_enable); void set_pre_process_time(float p_time); void set_explosiveness_ratio(float p_ratio); void set_randomness_ratio(float p_ratio); diff --git a/scene/2d/path_2d.h b/scene/2d/path_2d.h index b2dae17735..e80817cd3c 100644 --- a/scene/2d/path_2d.h +++ b/scene/2d/path_2d.h @@ -96,7 +96,7 @@ public: void set_loop(bool p_loop); bool has_loop() const; - void set_rotate(bool p_enabled); + void set_rotate(bool p_rotate); bool is_rotating() const; void set_cubic_interpolation(bool p_enable); diff --git a/scene/2d/physics_body_2d.cpp b/scene/2d/physics_body_2d.cpp index 2f1e8925b8..6ec1642138 100644 --- a/scene/2d/physics_body_2d.cpp +++ b/scene/2d/physics_body_2d.cpp @@ -982,11 +982,12 @@ Dictionary KinematicBody2D::_move(const Vector2 &p_motion) { if (move(p_motion, col)) { Dictionary d; d["position"] = col.collision; - d["normal"] = col.collision; + d["normal"] = col.normal; d["local_shape"] = col.local_shape; d["travel"] = col.travel; d["remainder"] = col.remainder; d["collider_id"] = col.collider; + d["collider_velocity"] = col.collider_vel; if (col.collider) { d["collider"] = ObjectDB::get_instance(col.collider); } else { diff --git a/scene/2d/polygon_2d.h b/scene/2d/polygon_2d.h index f2cc9452b9..3cc9db28b6 100644 --- a/scene/2d/polygon_2d.h +++ b/scene/2d/polygon_2d.h @@ -84,10 +84,10 @@ public: void set_texture_scale(const Size2 &p_scale); Size2 get_texture_scale() const; - void set_invert(bool p_rot); + void set_invert(bool p_invert); bool get_invert() const; - void set_invert_border(float p_border); + void set_invert_border(float p_invert_border); float get_invert_border() const; void set_offset(const Vector2 &p_offset); diff --git a/scene/2d/screen_button.h b/scene/2d/screen_button.h index 8923da2ae4..2a5935aaf1 100644 --- a/scene/2d/screen_button.h +++ b/scene/2d/screen_button.h @@ -61,7 +61,7 @@ private: VisibilityMode visibility; - void _input(const Ref<InputEvent> &p_Event); + void _input(const Ref<InputEvent> &p_event); bool _is_point_inside(const Point2 &p_point); diff --git a/scene/2d/tile_map.cpp b/scene/2d/tile_map.cpp index e4494742a1..68b026b1b3 100644 --- a/scene/2d/tile_map.cpp +++ b/scene/2d/tile_map.cpp @@ -1068,20 +1068,20 @@ Transform2D TileMap::get_custom_transform() const { return custom_transform; } -Vector2 TileMap::_map_to_world(int x, int y, bool p_ignore_ofs) const { +Vector2 TileMap::_map_to_world(int p_x, int p_y, bool p_ignore_ofs) const { - Vector2 ret = get_cell_transform().xform(Vector2(x, y)); + Vector2 ret = get_cell_transform().xform(Vector2(p_x, p_y)); if (!p_ignore_ofs) { switch (half_offset) { case HALF_OFFSET_X: { - if (ABS(y) & 1) { + if (ABS(p_y) & 1) { ret += get_cell_transform()[0] * 0.5; } } break; case HALF_OFFSET_Y: { - if (ABS(x) & 1) { + if (ABS(p_x) & 1) { ret += get_cell_transform()[1] * 0.5; } } break; diff --git a/scene/3d/camera.h b/scene/3d/camera.h index 43975892b4..70849791e5 100644 --- a/scene/3d/camera.h +++ b/scene/3d/camera.h @@ -126,9 +126,9 @@ public: virtual Transform get_camera_transform() const; - Vector3 project_ray_normal(const Point2 &p_point) const; - Vector3 project_ray_origin(const Point2 &p_point) const; - Vector3 project_local_ray_normal(const Point2 &p_point) const; + Vector3 project_ray_normal(const Point2 &p_pos) const; + Vector3 project_ray_origin(const Point2 &p_pos) const; + Vector3 project_local_ray_normal(const Point2 &p_pos) const; Point2 unproject_position(const Vector3 &p_pos) const; bool is_position_behind(const Vector3 &p_pos) const; Vector3 project_position(const Point2 &p_point) const; diff --git a/scene/3d/collision_shape.cpp b/scene/3d/collision_shape.cpp index 4fd215bd1a..2aa6a95718 100644 --- a/scene/3d/collision_shape.cpp +++ b/scene/3d/collision_shape.cpp @@ -89,13 +89,6 @@ void CollisionShape::_notification(int p_what) { parent->shape_owner_set_transform(owner_id, get_transform()); } } break; - case NOTIFICATION_EXIT_TREE: { - if (parent) { - parent->remove_shape_owner(owner_id); - } - owner_id = 0; - parent = NULL; - } break; case NOTIFICATION_UNPARENTED: { if (parent) { parent->remove_shape_owner(owner_id); diff --git a/scene/3d/immediate_geometry.h b/scene/3d/immediate_geometry.h index 2eb4bf1e6b..bc8452c7e0 100644 --- a/scene/3d/immediate_geometry.h +++ b/scene/3d/immediate_geometry.h @@ -52,8 +52,8 @@ public: void set_normal(const Vector3 &p_normal); void set_tangent(const Plane &p_tangent); void set_color(const Color &p_color); - void set_uv(const Vector2 &tex_uv); - void set_uv2(const Vector2 &tex_uv); + void set_uv(const Vector2 &p_uv); + void set_uv2(const Vector2 &p_uv2); void add_vertex(const Vector3 &p_vertex); diff --git a/scene/3d/navigation_mesh.cpp b/scene/3d/navigation_mesh.cpp index 4c93bcfb5e..5d4568f5d3 100644 --- a/scene/3d/navigation_mesh.cpp +++ b/scene/3d/navigation_mesh.cpp @@ -208,6 +208,8 @@ void NavigationMesh::_bind_methods() { ClassDB::bind_method(D_METHOD("get_polygon", "idx"), &NavigationMesh::get_polygon); ClassDB::bind_method(D_METHOD("clear_polygons"), &NavigationMesh::clear_polygons); + ClassDB::bind_method(D_METHOD("create_from_mesh", "mesh"), &NavigationMesh::create_from_mesh); + ClassDB::bind_method(D_METHOD("_set_polygons", "polygons"), &NavigationMesh::_set_polygons); ClassDB::bind_method(D_METHOD("_get_polygons"), &NavigationMesh::_get_polygons); diff --git a/scene/3d/particles.cpp b/scene/3d/particles.cpp index 081caf4419..e88a52c76a 100644 --- a/scene/3d/particles.cpp +++ b/scene/3d/particles.cpp @@ -63,6 +63,8 @@ void Particles::set_one_shot(bool p_one_shot) { one_shot = p_one_shot; VS::get_singleton()->particles_set_one_shot(particles, one_shot); + if (!one_shot && emitting) + VisualServer::get_singleton()->particles_restart(particles); } void Particles::set_pre_process_time(float p_time) { @@ -406,7 +408,7 @@ void ParticlesMaterial::init_shaders() { shader_names->anim_speed = "anim_speed"; shader_names->anim_offset = "anim_offset"; - shader_names->initial_linear_velocity = "initial_linear_velocity_random"; + shader_names->initial_linear_velocity_random = "initial_linear_velocity_random"; shader_names->initial_angle_random = "initial_angle_random"; shader_names->angular_velocity_random = "angular_velocity_random"; shader_names->orbit_velocity_random = "orbit_velocity_random"; @@ -753,18 +755,20 @@ void ParticlesMaterial::_update_shader() { code += " pos.z=0.0; \n"; } code += " //apply linear acceleration\n"; - code += " force+=normalize(VELOCITY) * (linear_accel+tex_linear_accel)*mix(1.0,rand_from_seed(alt_seed),linear_accel_random);\n"; + code += " force+= length(VELOCITY) > 0.0 ? normalize(VELOCITY) * (linear_accel+tex_linear_accel)*mix(1.0,rand_from_seed(alt_seed),linear_accel_random) : vec3(0.0);\n"; code += " //apply radial acceleration\n"; code += " vec3 org = vec3(0.0);\n"; - code += " // if (!p_system->local_coordinates)\n"; - code += " //org=p_transform.origin;\n"; - code += " force+=normalize(pos-org) * (radial_accel+tex_radial_accel)*mix(1.0,rand_from_seed(alt_seed),radial_accel_random);\n"; + code += " // if (!p_system->local_coordinates)\n"; + code += " //org=p_transform.origin;\n"; + code += " vec3 diff = pos-org;\n"; + code += " force+=length(diff) > 0.0 ? normalize(diff) * (radial_accel+tex_radial_accel)*mix(1.0,rand_from_seed(alt_seed),radial_accel_random) : vec3(0.0);\n"; code += " //apply tangential acceleration;\n"; if (flags[FLAG_DISABLE_Z]) { - code += " force+=vec3(normalize((pos-org).yx * vec2(-1.0,1.0)),0.0) * ((tangent_accel+tex_tangent_accel)*mix(1.0,rand_from_seed(alt_seed),radial_accel_random));\n"; + code += " force+=length(diff.yx) > 0.0 ? vec3(normalize(diff.yx * vec2(-1.0,1.0)),0.0) * ((tangent_accel+tex_tangent_accel)*mix(1.0,rand_from_seed(alt_seed),radial_accel_random)) : vec3(0.0);\n"; } else { - code += " force+=normalize(cross(normalize(pos-org),normalize(gravity))) * ((tangent_accel+tex_tangent_accel)*mix(1.0,rand_from_seed(alt_seed),radial_accel_random));\n"; + code += " vec3 crossDiff = cross(normalize(diff),normalize(gravity));\n"; + code += " force+=length(crossDiff) > 0.0 ? normalize(crossDiff) * ((tangent_accel+tex_tangent_accel)*mix(1.0,rand_from_seed(alt_seed),radial_accel_random)) : vec3(0.0);\n"; } code += " //apply attractor forces\n"; code += " VELOCITY+=force * DELTA;\n"; @@ -1264,9 +1268,8 @@ int ParticlesMaterial::get_emission_point_count() const { void ParticlesMaterial::set_trail_divisor(int p_divisor) { - VisualServer::get_singleton()->material_set_param(_get_material(), shader_names->trail_divisor, p_divisor); trail_divisor = p_divisor; - _change_notify(); + VisualServer::get_singleton()->material_set_param(_get_material(), shader_names->trail_divisor, p_divisor); } int ParticlesMaterial::get_trail_divisor() const { diff --git a/scene/3d/particles.h b/scene/3d/particles.h index 31ca85a59a..9c1436a47b 100644 --- a/scene/3d/particles.h +++ b/scene/3d/particles.h @@ -88,7 +88,7 @@ public: void set_emitting(bool p_emitting); void set_amount(int p_amount); void set_lifetime(float p_lifetime); - void set_one_shot(bool p_enabled); + void set_one_shot(bool p_one_shot); void set_pre_process_time(float p_time); void set_explosiveness_ratio(float p_ratio); void set_randomness_ratio(float p_ratio); diff --git a/scene/3d/proximity_group.cpp b/scene/3d/proximity_group.cpp index 5441904d81..d0410f2c55 100644 --- a/scene/3d/proximity_group.cpp +++ b/scene/3d/proximity_group.cpp @@ -116,9 +116,9 @@ void ProximityGroup::set_group_name(String p_group_name) { group_name = p_group_name; }; -void ProximityGroup::_notification(int what) { +void ProximityGroup::_notification(int p_what) { - switch (what) { + switch (p_what) { case NOTIFICATION_EXIT_TREE: ++group_version; diff --git a/scene/3d/skeleton.cpp b/scene/3d/skeleton.cpp index 0d91014314..cee97af244 100644 --- a/scene/3d/skeleton.cpp +++ b/scene/3d/skeleton.cpp @@ -82,9 +82,9 @@ bool Skeleton::_set(const StringName &p_path, const Variant &p_value) { return true; } -bool Skeleton::_get(const StringName &p_name, Variant &r_ret) const { +bool Skeleton::_get(const StringName &p_path, Variant &r_ret) const { - String path = p_name; + String path = p_path; if (!path.begins_with("bones/")) return false; diff --git a/scene/3d/skeleton.h b/scene/3d/skeleton.h index dc0adbb337..a6546af64e 100644 --- a/scene/3d/skeleton.h +++ b/scene/3d/skeleton.h @@ -91,8 +91,8 @@ class Skeleton : public Spatial { } protected: - bool _get(const StringName &p_name, Variant &r_ret) const; - bool _set(const StringName &p_name, const Variant &p_value); + bool _get(const StringName &p_path, Variant &r_ret) const; + bool _set(const StringName &p_path, const Variant &p_value); void _get_property_list(List<PropertyInfo> *p_list) const; void _notification(int p_what); static void _bind_methods(); @@ -113,7 +113,7 @@ public: void set_bone_parent(int p_bone, int p_parent); int get_bone_parent(int p_bone) const; - void unparent_bone_and_rest(int p_idx); + void unparent_bone_and_rest(int p_bone); void set_bone_disable_rest(int p_bone, bool p_disable); bool is_bone_rest_disabled(int p_bone) const; diff --git a/scene/3d/spatial_velocity_tracker.h b/scene/3d/spatial_velocity_tracker.h index 65f3eaca93..b8237613a7 100644 --- a/scene/3d/spatial_velocity_tracker.h +++ b/scene/3d/spatial_velocity_tracker.h @@ -20,7 +20,7 @@ protected: public: void reset(const Vector3 &p_new_pos); - void set_track_fixed_step(bool p_use_fixed_step); + void set_track_fixed_step(bool p_track_fixed_step); bool is_tracking_fixed_step() const; void update_position(const Vector3 &p_position); Vector3 get_tracked_linear_velocity() const; diff --git a/scene/3d/sprite_3d.h b/scene/3d/sprite_3d.h index b4600c00b8..7dc4cd4ffb 100644 --- a/scene/3d/sprite_3d.h +++ b/scene/3d/sprite_3d.h @@ -119,7 +119,7 @@ public: void set_pixel_size(float p_amount); float get_pixel_size() const; - void set_axis(Vector3::Axis p_amount); + void set_axis(Vector3::Axis p_axis); Vector3::Axis get_axis() const; void set_draw_flag(DrawFlags p_flag, bool p_enable); diff --git a/scene/3d/vehicle_body.cpp b/scene/3d/vehicle_body.cpp index 8d927e529e..adf235c525 100644 --- a/scene/3d/vehicle_body.cpp +++ b/scene/3d/vehicle_body.cpp @@ -893,9 +893,9 @@ real_t VehicleBody::get_friction() const { return friction; } -void VehicleBody::set_engine_force(float p_force) { +void VehicleBody::set_engine_force(float p_engine_force) { - engine_force = p_force; + engine_force = p_engine_force; } float VehicleBody::get_engine_force() const { diff --git a/scene/3d/vehicle_body.h b/scene/3d/vehicle_body.h index 7ed9bce730..d778800814 100644 --- a/scene/3d/vehicle_body.h +++ b/scene/3d/vehicle_body.h @@ -196,7 +196,7 @@ public: void set_engine_force(float p_engine_force); float get_engine_force() const; - void set_brake(float p_force); + void set_brake(float p_brake); float get_brake() const; void set_steering(float p_steering); diff --git a/scene/animation/animation_player.h b/scene/animation/animation_player.h index 96fc70a3ad..01b709205a 100644 --- a/scene/animation/animation_player.h +++ b/scene/animation/animation_player.h @@ -271,7 +271,7 @@ public: void set_speed_scale(float p_speed); float get_speed_scale() const; - void set_autoplay(const String &pname); + void set_autoplay(const String &p_name); String get_autoplay() const; void set_animation_process_mode(AnimationProcessMode p_mode); diff --git a/scene/animation/animation_tree_player.h b/scene/animation/animation_tree_player.h index 062b4e1eeb..47f18795bd 100644 --- a/scene/animation/animation_tree_player.h +++ b/scene/animation/animation_tree_player.h @@ -312,7 +312,7 @@ private: Map<StringName, NodeBase *> node_map; // return time left to finish animation - float _process_node(const StringName &p_node, AnimationNode **r_prev_anim, float p_step, bool p_seek = false, float p_fallback_weight = 1.0, HashMap<NodePath, float> *p_weights = NULL); + float _process_node(const StringName &p_node, AnimationNode **r_prev_anim, float p_time, bool p_seek = false, float p_fallback_weight = 1.0, HashMap<NodePath, float> *p_weights = NULL); void _process_animation(float p_delta); bool reset_request; @@ -367,7 +367,7 @@ public: float oneshot_node_get_autorestart_delay(const StringName &p_node) const; float oneshot_node_get_autorestart_random_delay(const StringName &p_node) const; - void oneshot_node_set_mix_mode(const StringName &p_node, bool p_enabled); + void oneshot_node_set_mix_mode(const StringName &p_node, bool p_mix); bool oneshot_node_get_mix_mode(const StringName &p_node) const; void oneshot_node_start(const StringName &p_node); @@ -428,8 +428,8 @@ public: void remove_node(const StringName &p_node); Error connect_nodes(const StringName &p_src_node, const StringName &p_dst_node, int p_dst_input); - bool are_nodes_connected(const StringName &p_src_node, const StringName &p_dst_node, int p_input) const; - void disconnect_nodes(const StringName &p_src_node, int p_input); + bool are_nodes_connected(const StringName &p_src_node, const StringName &p_dst_node, int p_dst_input) const; + void disconnect_nodes(const StringName &p_node, int p_input); void set_base_path(const NodePath &p_path); NodePath get_base_path() const; diff --git a/scene/animation/tween.h b/scene/animation/tween.h index f89f3bdc44..43234fab86 100644 --- a/scene/animation/tween.h +++ b/scene/animation/tween.h @@ -132,7 +132,7 @@ private: void _tween_process(float p_delta); void _set_process(bool p_process, bool p_force = false); - void _remove(Object *p_node, String p_key, bool first_only); + void _remove(Object *p_object, String p_key, bool first_only); protected: bool _set(const StringName &p_name, const Variant &p_value); @@ -156,34 +156,34 @@ public: float get_speed_scale() const; bool start(); - bool reset(Object *p_node, String p_key); + bool reset(Object *p_object, String p_key); bool reset_all(); - bool stop(Object *p_node, String p_key); + bool stop(Object *p_object, String p_key); bool stop_all(); - bool resume(Object *p_node, String p_key); + bool resume(Object *p_object, String p_key); bool resume_all(); - bool remove(Object *p_node, String p_key); + bool remove(Object *p_object, String p_key); bool remove_all(); bool seek(real_t p_time); real_t tell() const; real_t get_runtime() const; - bool interpolate_property(Object *p_node, String p_property, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); + bool interpolate_property(Object *p_object, String p_property, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); - bool interpolate_method(Object *p_node, String p_method, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); + bool interpolate_method(Object *p_object, String p_method, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); bool interpolate_callback(Object *p_object, real_t p_duration, String p_callback, VARIANT_ARG_DECLARE); bool interpolate_deferred_callback(Object *p_object, real_t p_duration, String p_callback, VARIANT_ARG_DECLARE); - bool follow_property(Object *p_node, String p_property, Variant p_initial_val, Object *p_target, String p_target_property, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); + bool follow_property(Object *p_object, String p_property, Variant p_initial_val, Object *p_target, String p_target_property, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); - bool follow_method(Object *p_node, String p_method, Variant p_initial_val, Object *p_target, String p_target_method, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); + bool follow_method(Object *p_object, String p_method, Variant p_initial_val, Object *p_target, String p_target_method, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); - bool targeting_property(Object *p_node, String p_property, Object *p_initial, String p_initial_property, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); + bool targeting_property(Object *p_object, String p_property, Object *p_initial, String p_initial_property, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); - bool targeting_method(Object *p_node, String p_method, Object *p_initial, String p_initial_method, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); + bool targeting_method(Object *p_object, String p_method, Object *p_initial, String p_initial_method, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay = 0); Tween(); ~Tween(); diff --git a/scene/gui/color_picker.cpp b/scene/gui/color_picker.cpp index dddd53dd95..5e110362c8 100644 --- a/scene/gui/color_picker.cpp +++ b/scene/gui/color_picker.cpp @@ -314,9 +314,9 @@ void ColorPicker::_hsv_draw(int p_which, Control *c) { } } -void ColorPicker::_uv_input(const Ref<InputEvent> &ev) { +void ColorPicker::_uv_input(const Ref<InputEvent> &p_event) { - Ref<InputEventMouseButton> bev = ev; + Ref<InputEventMouseButton> bev = p_event; if (bev.is_valid()) { if (bev->is_pressed() && bev->get_button_index() == BUTTON_LEFT) { @@ -335,7 +335,7 @@ void ColorPicker::_uv_input(const Ref<InputEvent> &ev) { } } - Ref<InputEventMouseMotion> mev = ev; + Ref<InputEventMouseMotion> mev = p_event; if (mev.is_valid()) { if (!changing_color) @@ -352,9 +352,9 @@ void ColorPicker::_uv_input(const Ref<InputEvent> &ev) { } } -void ColorPicker::_w_input(const Ref<InputEvent> &ev) { +void ColorPicker::_w_input(const Ref<InputEvent> &p_event) { - Ref<InputEventMouseButton> bev = ev; + Ref<InputEventMouseButton> bev = p_event; if (bev.is_valid()) { @@ -372,7 +372,7 @@ void ColorPicker::_w_input(const Ref<InputEvent> &ev) { emit_signal("color_changed", color); } - Ref<InputEventMouseMotion> mev = ev; + Ref<InputEventMouseMotion> mev = p_event; if (mev.is_valid()) { @@ -388,9 +388,9 @@ void ColorPicker::_w_input(const Ref<InputEvent> &ev) { } } -void ColorPicker::_preset_input(const Ref<InputEvent> &ev) { +void ColorPicker::_preset_input(const Ref<InputEvent> &p_event) { - Ref<InputEventMouseButton> bev = ev; + Ref<InputEventMouseButton> bev = p_event; if (bev.is_valid()) { @@ -407,7 +407,7 @@ void ColorPicker::_preset_input(const Ref<InputEvent> &ev) { emit_signal("color_changed", color); } - Ref<InputEventMouseMotion> mev = ev; + Ref<InputEventMouseMotion> mev = p_event; if (mev.is_valid()) { @@ -423,9 +423,9 @@ void ColorPicker::_preset_input(const Ref<InputEvent> &ev) { } } -void ColorPicker::_screen_input(const Ref<InputEvent> &ev) { +void ColorPicker::_screen_input(const Ref<InputEvent> &p_event) { - Ref<InputEventMouseButton> bev = ev; + Ref<InputEventMouseButton> bev = p_event; if (bev.is_valid()) { @@ -435,7 +435,7 @@ void ColorPicker::_screen_input(const Ref<InputEvent> &ev) { } } - Ref<InputEventMouseMotion> mev = ev; + Ref<InputEventMouseMotion> mev = p_event; if (mev.is_valid()) { Viewport *r = get_tree()->get_root(); diff --git a/scene/gui/color_picker.h b/scene/gui/color_picker.h index 1a79266409..d35182e062 100644 --- a/scene/gui/color_picker.h +++ b/scene/gui/color_picker.h @@ -81,10 +81,10 @@ private: void _sample_draw(); void _hsv_draw(int p_which, Control *c); - void _uv_input(const Ref<InputEvent> &p_input); - void _w_input(const Ref<InputEvent> &p_input); - void _preset_input(const Ref<InputEvent> &p_input); - void _screen_input(const Ref<InputEvent> &p_input); + void _uv_input(const Ref<InputEvent> &p_event); + void _w_input(const Ref<InputEvent> &p_event); + void _preset_input(const Ref<InputEvent> &p_event); + void _screen_input(const Ref<InputEvent> &p_event); void _add_preset_pressed(); void _screen_pick_pressed(); diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp index 01570e28c4..c97426ad42 100644 --- a/scene/gui/control.cpp +++ b/scene/gui/control.cpp @@ -51,6 +51,12 @@ Variant Control::edit_get_state() const { s["rect"] = get_rect(); s["rot"] = get_rotation(); s["scale"] = get_scale(); + Array anchors; + anchors.push_back(get_anchor(MARGIN_LEFT)); + anchors.push_back(get_anchor(MARGIN_TOP)); + anchors.push_back(get_anchor(MARGIN_RIGHT)); + anchors.push_back(get_anchor(MARGIN_BOTTOM)); + s["anchors"] = anchors; return s; } void Control::edit_set_state(const Variant &p_state) { @@ -62,6 +68,11 @@ void Control::edit_set_state(const Variant &p_state) { set_size(state.size); set_rotation(s["rot"]); set_scale(s["scale"]); + Array anchors = s["anchors"]; + set_anchor(MARGIN_LEFT, anchors[0]); + set_anchor(MARGIN_TOP, anchors[1]); + set_anchor(MARGIN_RIGHT, anchors[2]); + set_anchor(MARGIN_BOTTOM, anchors[3]); } void Control::set_custom_minimum_size(const Size2 &p_custom) { @@ -1212,21 +1223,7 @@ void Control::_size_changed() { for (int i = 0; i < 4; i++) { float area = parent_size[i & 1]; - switch (data.anchor[i]) { - - case ANCHOR_BEGIN: { - - margin_pos[i] = data.margin[i]; - } break; - case ANCHOR_END: { - - margin_pos[i] = area - data.margin[i]; - } break; - case ANCHOR_CENTER: { - - margin_pos[i] = (area / 2) - data.margin[i]; - } break; - } + margin_pos[i] = data.margin[i] + (data.anchor[i] * area); } Point2 new_pos_cache = Point2(margin_pos[0], margin_pos[1]); @@ -1299,59 +1296,38 @@ float Control::_get_range(int p_idx) const { return to - from; } -float Control::_s2a(float p_val, AnchorType p_anchor, float p_range) const { - - switch (p_anchor) { - - case ANCHOR_BEGIN: { - return p_val; - } break; - case ANCHOR_END: { - return p_range - p_val; - } break; - case ANCHOR_CENTER: { - return (p_range / 2) - p_val; - } break; - } - - return 0; +float Control::_s2a(float p_val, float p_anchor, float p_range) const { + return p_val - (p_anchor * p_range); } -float Control::_a2s(float p_val, AnchorType p_anchor, float p_range) const { - - switch (p_anchor) { - - case ANCHOR_BEGIN: { - return Math::floor(p_val); - } break; - case ANCHOR_END: { - return Math::floor(p_range - p_val); - } break; - case ANCHOR_CENTER: { - return Math::floor((p_range / 2) - p_val); - } break; - } - return 0; +float Control::_a2s(float p_val, float p_anchor, float p_range) const { + return Math::floor(p_val + (p_anchor * p_range)); } -void Control::set_anchor(Margin p_margin, AnchorType p_anchor, bool p_keep_margin) { +void Control::set_anchor(Margin p_margin, float p_anchor, bool p_keep_margin, bool p_push_opposite_anchor) { + bool pushed = false; + data.anchor[p_margin] = CLAMP(p_anchor, 0.0, 1.0); - if (!is_inside_tree()) { + if (((p_margin == MARGIN_LEFT || p_margin == MARGIN_TOP) && data.anchor[p_margin] > data.anchor[(p_margin + 2) % 4]) || + ((p_margin == MARGIN_RIGHT || p_margin == MARGIN_BOTTOM) && data.anchor[p_margin] < data.anchor[(p_margin + 2) % 4])) { + if (p_push_opposite_anchor) { + data.anchor[(p_margin + 2) % 4] = data.anchor[p_margin]; + pushed = true; + } else { + data.anchor[p_margin] = data.anchor[(p_margin + 2) % 4]; + } + } - data.anchor[p_margin] = p_anchor; - } else if (!p_keep_margin) { - float pr = _get_parent_range(p_margin); - float s = _a2s(data.margin[p_margin], data.anchor[p_margin], pr); - data.anchor[p_margin] = p_anchor; - data.margin[p_margin] = _s2a(s, p_anchor, pr); - } else { - data.anchor[p_margin] = p_anchor; - _size_changed(); + if (is_inside_tree()) { + if (p_keep_margin) { + _size_changed(); + } } + update(); _change_notify(); } -void Control::_set_anchor(Margin p_margin, AnchorType p_anchor) { +void Control::_set_anchor(Margin p_margin, float p_anchor) { #ifdef TOOLS_ENABLED if (is_inside_tree() && get_tree()->is_editor_hint()) { set_anchor(p_margin, p_anchor, EDITOR_DEF("editors/2d/keep_margins_when_changing_anchors", false)); @@ -1363,13 +1339,127 @@ void Control::_set_anchor(Margin p_margin, AnchorType p_anchor) { #endif } -void Control::set_anchor_and_margin(Margin p_margin, AnchorType p_anchor, float p_pos) { +void Control::set_anchor_and_margin(Margin p_margin, float p_anchor, float p_pos, bool p_push_opposite_anchor) { - set_anchor(p_margin, p_anchor); + set_anchor(p_margin, p_anchor, false, p_push_opposite_anchor); set_margin(p_margin, p_pos); } -Control::AnchorType Control::get_anchor(Margin p_margin) const { +void Control::set_anchors_preset(LayoutPreset p_preset, bool p_keep_margin) { + //Left + switch (p_preset) { + case PRESET_TOP_LEFT: + case PRESET_BOTTOM_LEFT: + case PRESET_CENTER_LEFT: + case PRESET_TOP_WIDE: + case PRESET_BOTTOM_WIDE: + case PRESET_LEFT_WIDE: + case PRESET_HCENTER_WIDE: + case PRESET_WIDE: + set_anchor(MARGIN_LEFT, ANCHOR_BEGIN, p_keep_margin); + break; + + case PRESET_CENTER_TOP: + case PRESET_CENTER_BOTTOM: + case PRESET_CENTER: + case PRESET_VCENTER_WIDE: + set_anchor(MARGIN_LEFT, 0.5, p_keep_margin); + break; + + case PRESET_TOP_RIGHT: + case PRESET_BOTTOM_RIGHT: + case PRESET_CENTER_RIGHT: + case PRESET_RIGHT_WIDE: + set_anchor(MARGIN_LEFT, ANCHOR_END, p_keep_margin); + break; + } + + // Top + switch (p_preset) { + case PRESET_TOP_LEFT: + case PRESET_TOP_RIGHT: + case PRESET_CENTER_TOP: + case PRESET_LEFT_WIDE: + case PRESET_RIGHT_WIDE: + case PRESET_TOP_WIDE: + case PRESET_VCENTER_WIDE: + case PRESET_WIDE: + set_anchor(MARGIN_TOP, ANCHOR_BEGIN, p_keep_margin); + break; + + case PRESET_CENTER_LEFT: + case PRESET_CENTER_RIGHT: + case PRESET_CENTER: + case PRESET_HCENTER_WIDE: + set_anchor(MARGIN_TOP, 0.5, p_keep_margin); + break; + + case PRESET_BOTTOM_LEFT: + case PRESET_BOTTOM_RIGHT: + case PRESET_CENTER_BOTTOM: + case PRESET_BOTTOM_WIDE: + set_anchor(MARGIN_TOP, ANCHOR_END, p_keep_margin); + break; + } + + // Right + switch (p_preset) { + case PRESET_TOP_LEFT: + case PRESET_BOTTOM_LEFT: + case PRESET_CENTER_LEFT: + case PRESET_LEFT_WIDE: + set_anchor(MARGIN_RIGHT, ANCHOR_BEGIN, p_keep_margin); + break; + + case PRESET_CENTER_TOP: + case PRESET_CENTER_BOTTOM: + case PRESET_CENTER: + case PRESET_VCENTER_WIDE: + set_anchor(MARGIN_RIGHT, 0.5, p_keep_margin); + break; + + case PRESET_TOP_RIGHT: + case PRESET_BOTTOM_RIGHT: + case PRESET_CENTER_RIGHT: + case PRESET_TOP_WIDE: + case PRESET_RIGHT_WIDE: + case PRESET_BOTTOM_WIDE: + case PRESET_HCENTER_WIDE: + case PRESET_WIDE: + set_anchor(MARGIN_RIGHT, ANCHOR_END, p_keep_margin); + break; + } + + // Bottom + switch (p_preset) { + case PRESET_TOP_LEFT: + case PRESET_TOP_RIGHT: + case PRESET_CENTER_TOP: + case PRESET_TOP_WIDE: + set_anchor(MARGIN_BOTTOM, ANCHOR_BEGIN, p_keep_margin); + break; + + case PRESET_CENTER_LEFT: + case PRESET_CENTER_RIGHT: + case PRESET_CENTER: + case PRESET_HCENTER_WIDE: + set_anchor(MARGIN_BOTTOM, 0.5, p_keep_margin); + break; + + case PRESET_BOTTOM_LEFT: + case PRESET_BOTTOM_RIGHT: + case PRESET_CENTER_BOTTOM: + case PRESET_LEFT_WIDE: + case PRESET_RIGHT_WIDE: + case PRESET_BOTTOM_WIDE: + case PRESET_VCENTER_WIDE: + case PRESET_WIDE: + set_anchor(MARGIN_BOTTOM, ANCHOR_END, p_keep_margin); + break; + } +} + +float Control::get_anchor(Margin p_margin) const { return data.anchor[p_margin]; } @@ -1523,11 +1613,13 @@ Rect2 Control::get_item_rect() const { void Control::set_area_as_parent_rect(int p_margin) { data.anchor[MARGIN_LEFT] = ANCHOR_BEGIN; + data.margin[MARGIN_LEFT] = p_margin; data.anchor[MARGIN_TOP] = ANCHOR_BEGIN; + data.margin[MARGIN_TOP] = p_margin; data.anchor[MARGIN_RIGHT] = ANCHOR_END; + data.margin[MARGIN_RIGHT] = -p_margin; data.anchor[MARGIN_BOTTOM] = ANCHOR_END; - for (int i = 0; i < 4; i++) - data.margin[i] = p_margin; + data.margin[MARGIN_BOTTOM] = -p_margin; _size_changed(); } @@ -2371,11 +2463,12 @@ void Control::_bind_methods() { ClassDB::bind_method(D_METHOD("accept_event"), &Control::accept_event); ClassDB::bind_method(D_METHOD("get_minimum_size"), &Control::get_minimum_size); ClassDB::bind_method(D_METHOD("get_combined_minimum_size"), &Control::get_combined_minimum_size); - ClassDB::bind_method(D_METHOD("set_anchor", "margin", "anchor_mode", "keep_margin"), &Control::set_anchor, DEFVAL(false)); - ClassDB::bind_method(D_METHOD("_set_anchor", "margin", "anchor_mode"), &Control::_set_anchor); + ClassDB::bind_method(D_METHOD("set_anchor", "margin", "anchor", "keep_margin", "push_opposite_anchor"), &Control::set_anchor, DEFVAL(false), DEFVAL(true)); + ClassDB::bind_method(D_METHOD("_set_anchor", "margin", "anchor"), &Control::_set_anchor); + ClassDB::bind_method(D_METHOD("set_anchors_preset", "preset", "keep_margin"), &Control::set_anchors_preset, DEFVAL(false)); ClassDB::bind_method(D_METHOD("get_anchor", "margin"), &Control::get_anchor); ClassDB::bind_method(D_METHOD("set_margin", "margin", "offset"), &Control::set_margin); - ClassDB::bind_method(D_METHOD("set_anchor_and_margin", "margin", "anchor_mode", "offset"), &Control::set_anchor_and_margin); + ClassDB::bind_method(D_METHOD("set_anchor_and_margin", "margin", "anchor", "offset", "push_opposite_anchor"), &Control::set_anchor_and_margin, DEFVAL(false)); ClassDB::bind_method(D_METHOD("set_begin", "pos"), &Control::set_begin); ClassDB::bind_method(D_METHOD("set_end", "pos"), &Control::set_end); ClassDB::bind_method(D_METHOD("set_position", "pos"), &Control::set_position); @@ -2497,10 +2590,10 @@ void Control::_bind_methods() { BIND_VMETHOD(MethodInfo("drop_data", PropertyInfo(Variant::VECTOR2, "pos"), PropertyInfo(Variant::NIL, "data"))); ADD_GROUP("Anchor", "anchor_"); - ADD_PROPERTYINZ(PropertyInfo(Variant::INT, "anchor_left", PROPERTY_HINT_ENUM, "Begin,End,Center"), "_set_anchor", "get_anchor", MARGIN_LEFT); - ADD_PROPERTYINZ(PropertyInfo(Variant::INT, "anchor_top", PROPERTY_HINT_ENUM, "Begin,End,Center"), "_set_anchor", "get_anchor", MARGIN_TOP); - ADD_PROPERTYINZ(PropertyInfo(Variant::INT, "anchor_right", PROPERTY_HINT_ENUM, "Begin,End,Center"), "_set_anchor", "get_anchor", MARGIN_RIGHT); - ADD_PROPERTYINZ(PropertyInfo(Variant::INT, "anchor_bottom", PROPERTY_HINT_ENUM, "Begin,End,Center"), "_set_anchor", "get_anchor", MARGIN_BOTTOM); + ADD_PROPERTYI(PropertyInfo(Variant::REAL, "anchor_left", PROPERTY_HINT_RANGE, "0,1,0.01"), "_set_anchor", "get_anchor", MARGIN_LEFT); + ADD_PROPERTYI(PropertyInfo(Variant::REAL, "anchor_top", PROPERTY_HINT_RANGE, "0,1,0.01"), "_set_anchor", "get_anchor", MARGIN_TOP); + ADD_PROPERTYI(PropertyInfo(Variant::REAL, "anchor_right", PROPERTY_HINT_RANGE, "0,1,0.01"), "_set_anchor", "get_anchor", MARGIN_RIGHT); + ADD_PROPERTYI(PropertyInfo(Variant::REAL, "anchor_bottom", PROPERTY_HINT_RANGE, "0,1,0.01"), "_set_anchor", "get_anchor", MARGIN_BOTTOM); ADD_GROUP("Margin", "margin_"); ADD_PROPERTYINZ(PropertyInfo(Variant::INT, "margin_left", PROPERTY_HINT_RANGE, "-4096,4096"), "set_margin", "get_margin", MARGIN_LEFT); @@ -2541,9 +2634,6 @@ void Control::_bind_methods() { ADD_PROPERTYNZ(PropertyInfo(Variant::OBJECT, "theme", PROPERTY_HINT_RESOURCE_TYPE, "Theme"), "set_theme", "get_theme"); ADD_GROUP("", ""); - BIND_CONSTANT(ANCHOR_BEGIN); - BIND_CONSTANT(ANCHOR_END); - BIND_CONSTANT(ANCHOR_CENTER); BIND_CONSTANT(FOCUS_NONE); BIND_CONSTANT(FOCUS_CLICK); BIND_CONSTANT(FOCUS_ALL); @@ -2574,6 +2664,23 @@ void Control::_bind_methods() { BIND_CONSTANT(CURSOR_HSPLIT); BIND_CONSTANT(CURSOR_HELP); + BIND_CONSTANT(PRESET_TOP_LEFT); + BIND_CONSTANT(PRESET_TOP_RIGHT); + BIND_CONSTANT(PRESET_BOTTOM_LEFT); + BIND_CONSTANT(PRESET_BOTTOM_RIGHT); + BIND_CONSTANT(PRESET_CENTER_LEFT); + BIND_CONSTANT(PRESET_CENTER_TOP); + BIND_CONSTANT(PRESET_CENTER_RIGHT); + BIND_CONSTANT(PRESET_CENTER_BOTTOM); + BIND_CONSTANT(PRESET_CENTER); + BIND_CONSTANT(PRESET_LEFT_WIDE); + BIND_CONSTANT(PRESET_TOP_WIDE); + BIND_CONSTANT(PRESET_RIGHT_WIDE); + BIND_CONSTANT(PRESET_BOTTOM_WIDE); + BIND_CONSTANT(PRESET_VCENTER_WIDE); + BIND_CONSTANT(PRESET_HCENTER_WIDE); + BIND_CONSTANT(PRESET_WIDE); + BIND_CONSTANT(SIZE_EXPAND); BIND_CONSTANT(SIZE_FILL); BIND_CONSTANT(SIZE_EXPAND_FILL); @@ -2587,6 +2694,9 @@ void Control::_bind_methods() { BIND_CONSTANT(GROW_DIRECTION_BEGIN); BIND_CONSTANT(GROW_DIRECTION_END); + BIND_CONSTANT(ANCHOR_BEGIN); + BIND_CONSTANT(ANCHOR_END); + ADD_SIGNAL(MethodInfo("resized")); ADD_SIGNAL(MethodInfo("gui_input", PropertyInfo(Variant::OBJECT, "ev", PROPERTY_HINT_RESOURCE_TYPE, "InputEvent"))); ADD_SIGNAL(MethodInfo("mouse_entered")); diff --git a/scene/gui/control.h b/scene/gui/control.h index 86cf8f6dbd..d73ca3f7c9 100644 --- a/scene/gui/control.h +++ b/scene/gui/control.h @@ -51,10 +51,10 @@ class Control : public CanvasItem { OBJ_CATEGORY("GUI Nodes"); public: - enum AnchorType { - ANCHOR_BEGIN, - ANCHOR_END, - ANCHOR_CENTER, + enum Anchor { + + ANCHOR_BEGIN = 0, + ANCHOR_END = 1 }; enum GrowDirection { @@ -105,6 +105,25 @@ public: CURSOR_MAX }; + enum LayoutPreset { + PRESET_TOP_LEFT, + PRESET_TOP_RIGHT, + PRESET_BOTTOM_LEFT, + PRESET_BOTTOM_RIGHT, + PRESET_CENTER_LEFT, + PRESET_CENTER_TOP, + PRESET_CENTER_RIGHT, + PRESET_CENTER_BOTTOM, + PRESET_CENTER, + PRESET_LEFT_WIDE, + PRESET_TOP_WIDE, + PRESET_RIGHT_WIDE, + PRESET_BOTTOM_WIDE, + PRESET_VCENTER_WIDE, + PRESET_HCENTER_WIDE, + PRESET_WIDE + }; + private: struct CComparator { @@ -122,7 +141,7 @@ private: Size2 size_cache; float margin[4]; - AnchorType anchor[4]; + float anchor[4]; FocusMode focus_mode; GrowDirection h_grow; GrowDirection v_grow; @@ -182,12 +201,12 @@ private: void _window_find_focus_neighbour(const Vector2 &p_dir, Node *p_at, const Point2 *p_points, float p_min, float &r_closest_dist, Control **r_closest); Control *_get_focus_neighbour(Margin p_margin, int p_count = 0); - void _set_anchor(Margin p_margin, AnchorType p_anchor); + void _set_anchor(Margin p_margin, float p_anchor); float _get_parent_range(int p_idx) const; float _get_range(int p_idx) const; - float _s2a(float p_val, AnchorType p_anchor, float p_range) const; - float _a2s(float p_val, AnchorType p_anchor, float p_range) const; + float _s2a(float p_val, float p_anchor, float p_range) const; + float _a2s(float p_val, float p_anchor, float p_range) const; void _propagate_theme_changed(CanvasItem *p_at, Control *p_owner, bool p_assign = true); void _theme_changed(); @@ -275,10 +294,11 @@ public: /* POSITIONING */ - void set_anchor(Margin p_margin, AnchorType p_anchor, bool p_keep_margin = false); - void set_anchor_and_margin(Margin p_margin, AnchorType p_anchor, float p_pos); + void set_anchor(Margin p_margin, float p_anchor, bool p_keep_margin = false, bool p_push_opposite_anchor = true); + void set_anchor_and_margin(Margin p_margin, float p_anchor, float p_pos, bool p_push_opposite_anchor = true); + void set_anchors_preset(LayoutPreset p_preset, bool p_keep_margin = false); - AnchorType get_anchor(Margin p_margin) const; + float get_anchor(Margin p_margin) const; void set_margin(Margin p_margin, float p_value); @@ -425,11 +445,12 @@ public: ~Control(); }; -VARIANT_ENUM_CAST(Control::AnchorType); VARIANT_ENUM_CAST(Control::FocusMode); VARIANT_ENUM_CAST(Control::SizeFlags); VARIANT_ENUM_CAST(Control::CursorShape); +VARIANT_ENUM_CAST(Control::LayoutPreset); VARIANT_ENUM_CAST(Control::MouseFilter); VARIANT_ENUM_CAST(Control::GrowDirection); +VARIANT_ENUM_CAST(Control::Anchor); #endif diff --git a/scene/gui/dialogs.cpp b/scene/gui/dialogs.cpp index dedf44d407..8232a7a466 100644 --- a/scene/gui/dialogs.cpp +++ b/scene/gui/dialogs.cpp @@ -67,10 +67,10 @@ void WindowDialog::_fix_size() { right = panel_texture->get_expand_margin_size(MARGIN_RIGHT); } else if (panel->get_class() == "StyleBoxFlat") { Ref<StyleBoxFlat> panel_flat = panel->cast_to<StyleBoxFlat>(); - top = panel_flat->_get_additional_border_size(MARGIN_TOP); - left = panel_flat->_get_additional_border_size(MARGIN_LEFT); - bottom = panel_flat->_get_additional_border_size(MARGIN_BOTTOM); - right = panel_flat->_get_additional_border_size(MARGIN_RIGHT); + top = panel_flat->get_expand_margin_size(MARGIN_TOP); + left = panel_flat->get_expand_margin_size(MARGIN_LEFT); + bottom = panel_flat->get_expand_margin_size(MARGIN_BOTTOM); + right = panel_flat->get_expand_margin_size(MARGIN_RIGHT); } pos.x = MAX(left, MIN(pos.x, viewport_size.x - size.x - right)); @@ -215,7 +215,7 @@ void WindowDialog::_notification(int p_what) { close_button->set_pressed_texture(get_icon("close", "WindowDialog")); close_button->set_hover_texture(get_icon("close_highlight", "WindowDialog")); close_button->set_anchor(MARGIN_LEFT, ANCHOR_END); - close_button->set_begin(Point2(get_constant("close_h_ofs", "WindowDialog"), -get_constant("close_v_ofs", "WindowDialog"))); + close_button->set_begin(Point2(-get_constant("close_h_ofs", "WindowDialog"), -get_constant("close_v_ofs", "WindowDialog"))); } break; case NOTIFICATION_MOUSE_EXIT: { @@ -546,7 +546,7 @@ AcceptDialog::AcceptDialog() { label->set_anchor(MARGIN_RIGHT, ANCHOR_END); label->set_anchor(MARGIN_BOTTOM, ANCHOR_END); label->set_begin(Point2(margin, margin)); - label->set_end(Point2(margin, button_margin + 10)); + label->set_end(Point2(-margin, -button_margin - 10)); //label->set_autowrap(true); add_child(label); diff --git a/scene/gui/graph_edit.cpp b/scene/gui/graph_edit.cpp index e85ef73f4e..ec1932ed5a 100644 --- a/scene/gui/graph_edit.cpp +++ b/scene/gui/graph_edit.cpp @@ -269,14 +269,14 @@ void GraphEdit::_notification(int p_what) { Size2 hmin = h_scroll->get_combined_minimum_size(); Size2 vmin = v_scroll->get_combined_minimum_size(); - v_scroll->set_anchor_and_margin(MARGIN_LEFT, ANCHOR_END, vmin.width); + v_scroll->set_anchor_and_margin(MARGIN_LEFT, ANCHOR_END, -vmin.width); v_scroll->set_anchor_and_margin(MARGIN_RIGHT, ANCHOR_END, 0); v_scroll->set_anchor_and_margin(MARGIN_TOP, ANCHOR_BEGIN, 0); v_scroll->set_anchor_and_margin(MARGIN_BOTTOM, ANCHOR_END, 0); h_scroll->set_anchor_and_margin(MARGIN_LEFT, ANCHOR_BEGIN, 0); h_scroll->set_anchor_and_margin(MARGIN_RIGHT, ANCHOR_END, 0); - h_scroll->set_anchor_and_margin(MARGIN_TOP, ANCHOR_END, hmin.height); + h_scroll->set_anchor_and_margin(MARGIN_TOP, ANCHOR_END, -hmin.height); h_scroll->set_anchor_and_margin(MARGIN_BOTTOM, ANCHOR_END, 0); zoom_minus->set_icon(get_icon("minus")); diff --git a/scene/gui/input_action.h b/scene/gui/input_action.h index 6d13d8bd40..5c91d2be28 100644 --- a/scene/gui/input_action.h +++ b/scene/gui/input_action.h @@ -45,7 +45,7 @@ protected: public: void set_shortcut(const Ref<InputEvent> &p_shortcut); Ref<InputEvent> get_shortcut() const; - bool is_shortcut(const Ref<InputEvent> &p_Event) const; + bool is_shortcut(const Ref<InputEvent> &p_event) const; bool is_valid() const; String get_as_text() const; diff --git a/scene/gui/item_list.cpp b/scene/gui/item_list.cpp index 484051f546..d90f0c7898 100644 --- a/scene/gui/item_list.cpp +++ b/scene/gui/item_list.cpp @@ -736,10 +736,10 @@ void ItemList::_notification(int p_what) { Ref<StyleBox> bg = get_stylebox("bg"); int mw = scroll_bar->get_minimum_size().x; - scroll_bar->set_anchor_and_margin(MARGIN_LEFT, ANCHOR_END, mw + bg->get_margin(MARGIN_RIGHT)); - scroll_bar->set_anchor_and_margin(MARGIN_RIGHT, ANCHOR_END, bg->get_margin(MARGIN_RIGHT)); + scroll_bar->set_anchor_and_margin(MARGIN_LEFT, ANCHOR_END, -mw + bg->get_margin(MARGIN_RIGHT)); + scroll_bar->set_anchor_and_margin(MARGIN_RIGHT, ANCHOR_END, -bg->get_margin(MARGIN_RIGHT)); scroll_bar->set_anchor_and_margin(MARGIN_TOP, ANCHOR_BEGIN, bg->get_margin(MARGIN_TOP)); - scroll_bar->set_anchor_and_margin(MARGIN_BOTTOM, ANCHOR_END, bg->get_margin(MARGIN_BOTTOM)); + scroll_bar->set_anchor_and_margin(MARGIN_BOTTOM, ANCHOR_END, -bg->get_margin(MARGIN_BOTTOM)); Size2 size = get_size(); diff --git a/scene/gui/item_list.h b/scene/gui/item_list.h index 137eff8885..5bf343daa5 100644 --- a/scene/gui/item_list.h +++ b/scene/gui/item_list.h @@ -171,7 +171,7 @@ public: void set_same_column_width(bool p_enable); int is_same_column_width() const; - void set_max_text_lines(int p_amount); + void set_max_text_lines(int p_lines); int get_max_text_lines() const; void set_max_columns(int p_amount); diff --git a/scene/gui/line_edit.h b/scene/gui/line_edit.h index 73c5a46937..fb0eaa9446 100644 --- a/scene/gui/line_edit.h +++ b/scene/gui/line_edit.h @@ -177,7 +177,7 @@ public: virtual Size2 get_minimum_size() const; - void set_expand_to_text_length(bool p_len); + void set_expand_to_text_length(bool p_enabled); bool get_expand_to_text_length() const; virtual bool is_text_field() const; diff --git a/scene/gui/option_button.cpp b/scene/gui/option_button.cpp index 25ac8d5259..00df266a09 100644 --- a/scene/gui/option_button.cpp +++ b/scene/gui/option_button.cpp @@ -185,21 +185,21 @@ void OptionButton::clear() { current = -1; } -void OptionButton::_select(int p_idx, bool p_emit) { +void OptionButton::_select(int p_which, bool p_emit) { - if (p_idx < 0) + if (p_which < 0) return; - if (p_idx == current) + if (p_which == current) return; - ERR_FAIL_INDEX(p_idx, popup->get_item_count()); + ERR_FAIL_INDEX(p_which, popup->get_item_count()); for (int i = 0; i < popup->get_item_count(); i++) { - popup->set_item_checked(i, i == p_idx); + popup->set_item_checked(i, i == p_which); } - current = p_idx; + current = p_which; set_text(popup->get_item_text(current)); set_icon(popup->get_item_icon(current)); diff --git a/scene/gui/patch_9_rect.h b/scene/gui/patch_9_rect.h index 602a6d22bf..636b9127e7 100644 --- a/scene/gui/patch_9_rect.h +++ b/scene/gui/patch_9_rect.h @@ -67,7 +67,7 @@ public: void set_region_rect(const Rect2 &p_region_rect); Rect2 get_region_rect() const; - void set_draw_center(bool p_enable); + void set_draw_center(bool p_draw); bool get_draw_center() const; void set_h_axis_stretch_mode(AxisStretchMode p_mode); diff --git a/scene/gui/popup.cpp b/scene/gui/popup.cpp index 8979e0f111..f2ba6bfbc4 100644 --- a/scene/gui/popup.cpp +++ b/scene/gui/popup.cpp @@ -108,13 +108,10 @@ void Popup::set_as_minsize() { float margin_begin = c->get_margin(m_beg); float margin_end = c->get_margin(m_end); - AnchorType anchor_begin = c->get_anchor(m_beg); - AnchorType anchor_end = c->get_anchor(m_end); + float anchor_begin = c->get_anchor(m_beg); + float anchor_end = c->get_anchor(m_end); - if (anchor_begin == ANCHOR_BEGIN) - minsize[j] += margin_begin; - if (anchor_end == ANCHOR_END) - minsize[j] += margin_end; + minsize[j] += margin_begin * (ANCHOR_END - anchor_begin) + margin_end * anchor_end; } total_minsize.width = MAX(total_minsize.width, minsize.width); @@ -145,13 +142,10 @@ void Popup::popup_centered_minsize(const Size2 &p_minsize) { float margin_begin = c->get_margin(m_beg); float margin_end = c->get_margin(m_end); - AnchorType anchor_begin = c->get_anchor(m_beg); - AnchorType anchor_end = c->get_anchor(m_end); + float anchor_begin = c->get_anchor(m_beg); + float anchor_end = c->get_anchor(m_end); - if (anchor_begin == ANCHOR_BEGIN) - minsize[j] += margin_begin; - if (anchor_end == ANCHOR_END) - minsize[j] += margin_end; + minsize[j] += margin_begin * (ANCHOR_END - anchor_begin) + margin_end * anchor_end; } total_minsize.width = MAX(total_minsize.width, minsize.width); @@ -209,15 +203,15 @@ void Popup::popup_centered_ratio(float p_screen_ratio) { popped_up = true; } -void Popup::popup(const Rect2 &bounds) { +void Popup::popup(const Rect2 &p_bounds) { emit_signal("about_to_show"); show_modal(exclusive); // Fit the popup into the optionally provided bounds. - if (!bounds.has_no_area()) { - set_position(bounds.position); - set_size(bounds.size); + if (!p_bounds.has_no_area()) { + set_position(p_bounds.position); + set_size(p_bounds.size); } _fix_size(); diff --git a/scene/gui/popup_menu.h b/scene/gui/popup_menu.h index cbfe7873e6..37714ee989 100644 --- a/scene/gui/popup_menu.h +++ b/scene/gui/popup_menu.h @@ -140,7 +140,7 @@ public: uint32_t get_item_accelerator(int p_idx) const; Variant get_item_metadata(int p_idx) const; bool is_item_disabled(int p_idx) const; - String get_item_submenu(int p_ID) const; + String get_item_submenu(int p_idx) const; bool is_item_separator(int p_idx) const; bool is_item_checkable(int p_idx) const; String get_item_tooltip(int p_idx) const; diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp index 0e4004c27b..42084ade25 100644 --- a/scene/gui/rich_text_label.cpp +++ b/scene/gui/rich_text_label.cpp @@ -594,7 +594,7 @@ void RichTextLabel::_update_scroll() { main->first_invalid_line = 0; scroll_w = vscroll->get_combined_minimum_size().width; vscroll->show(); - vscroll->set_anchor_and_margin(MARGIN_LEFT, ANCHOR_END, scroll_w); + vscroll->set_anchor_and_margin(MARGIN_LEFT, ANCHOR_END, -scroll_w); _validate_line_caches(main); } else { diff --git a/scene/gui/rich_text_label.h b/scene/gui/rich_text_label.h index 409a8f6b3f..71fa766958 100644 --- a/scene/gui/rich_text_label.h +++ b/scene/gui/rich_text_label.h @@ -296,7 +296,7 @@ public: void push_align(Align p_align); void push_indent(int p_level); void push_list(ListType p_list); - void push_meta(const Variant &p_data); + void push_meta(const Variant &p_meta); void push_table(int p_columns); void set_table_column_expand(int p_column, bool p_expand, int p_ratio = 1); int get_current_table_column() const; diff --git a/scene/gui/scroll_bar.cpp b/scene/gui/scroll_bar.cpp index bd66cd2745..2ccdbb05a9 100644 --- a/scene/gui/scroll_bar.cpp +++ b/scene/gui/scroll_bar.cpp @@ -233,7 +233,14 @@ void ScrollBar::_notification(int p_what) { Ref<Texture> decr = highlight == HIGHLIGHT_DECR ? get_icon("decrement_highlight") : get_icon("decrement"); Ref<Texture> incr = highlight == HIGHLIGHT_INCR ? get_icon("increment_highlight") : get_icon("increment"); Ref<StyleBox> bg = has_focus() ? get_stylebox("scroll_focus") : get_stylebox("scroll"); - Ref<StyleBox> grabber = (drag.active || highlight == HIGHLIGHT_RANGE) ? get_stylebox("grabber_highlight") : get_stylebox("grabber"); + + Ref<StyleBox> grabber; + if (drag.active) + grabber = get_stylebox("grabber_pressed"); + else if (highlight == HIGHLIGHT_RANGE) + grabber = get_stylebox("grabber_highlight"); + else + grabber = get_stylebox("grabber"); Point2 ofs; diff --git a/scene/gui/scroll_container.cpp b/scene/gui/scroll_container.cpp index cc1a637d2b..939bdd8d0c 100644 --- a/scene/gui/scroll_container.cpp +++ b/scene/gui/scroll_container.cpp @@ -187,14 +187,14 @@ void ScrollContainer::_update_scrollbar_pos() { Size2 hmin = h_scroll->get_combined_minimum_size(); Size2 vmin = v_scroll->get_combined_minimum_size(); - v_scroll->set_anchor_and_margin(MARGIN_LEFT, ANCHOR_END, vmin.width); + v_scroll->set_anchor_and_margin(MARGIN_LEFT, ANCHOR_END, -vmin.width); v_scroll->set_anchor_and_margin(MARGIN_RIGHT, ANCHOR_END, 0); v_scroll->set_anchor_and_margin(MARGIN_TOP, ANCHOR_BEGIN, 0); v_scroll->set_anchor_and_margin(MARGIN_BOTTOM, ANCHOR_END, 0); h_scroll->set_anchor_and_margin(MARGIN_LEFT, ANCHOR_BEGIN, 0); h_scroll->set_anchor_and_margin(MARGIN_RIGHT, ANCHOR_END, 0); - h_scroll->set_anchor_and_margin(MARGIN_TOP, ANCHOR_END, hmin.height); + h_scroll->set_anchor_and_margin(MARGIN_TOP, ANCHOR_END, -hmin.height); h_scroll->set_anchor_and_margin(MARGIN_BOTTOM, ANCHOR_END, 0); h_scroll->raise(); diff --git a/scene/gui/tab_container.cpp b/scene/gui/tab_container.cpp index 4b8b180b0e..1352569f33 100644 --- a/scene/gui/tab_container.cpp +++ b/scene/gui/tab_container.cpp @@ -371,8 +371,10 @@ void TabContainer::add_child_notify(Node *p_child) { if (tabs_visible) c->set_margin(MARGIN_TOP, _get_top_margin()); Ref<StyleBox> sb = get_stylebox("panel"); - for (int i = 0; i < 4; i++) - c->set_margin(Margin(i), c->get_margin(Margin(i)) + sb->get_margin(Margin(i))); + c->set_margin(Margin(MARGIN_TOP), c->get_margin(Margin(MARGIN_TOP)) + sb->get_margin(Margin(MARGIN_TOP))); + c->set_margin(Margin(MARGIN_LEFT), c->get_margin(Margin(MARGIN_LEFT)) + sb->get_margin(Margin(MARGIN_LEFT))); + c->set_margin(Margin(MARGIN_RIGHT), c->get_margin(Margin(MARGIN_RIGHT)) - sb->get_margin(Margin(MARGIN_RIGHT))); + c->set_margin(Margin(MARGIN_BOTTOM), c->get_margin(Margin(MARGIN_BOTTOM)) - sb->get_margin(Margin(MARGIN_BOTTOM))); update(); p_child->connect("renamed", this, "_child_renamed_callback"); @@ -402,8 +404,10 @@ void TabContainer::set_current_tab(int p_current) { c->set_area_as_parent_rect(); if (tabs_visible) c->set_margin(MARGIN_TOP, _get_top_margin()); - for (int i = 0; i < 4; i++) - c->set_margin(Margin(i), c->get_margin(Margin(i)) + sb->get_margin(Margin(i))); + c->set_margin(Margin(MARGIN_TOP), c->get_margin(Margin(MARGIN_TOP)) + sb->get_margin(Margin(MARGIN_TOP))); + c->set_margin(Margin(MARGIN_LEFT), c->get_margin(Margin(MARGIN_LEFT)) + sb->get_margin(Margin(MARGIN_LEFT))); + c->set_margin(Margin(MARGIN_RIGHT), c->get_margin(Margin(MARGIN_RIGHT)) - sb->get_margin(Margin(MARGIN_RIGHT))); + c->set_margin(Margin(MARGIN_BOTTOM), c->get_margin(Margin(MARGIN_BOTTOM)) - sb->get_margin(Margin(MARGIN_BOTTOM))); } else c->hide(); @@ -544,11 +548,11 @@ Ref<Texture> TabContainer::get_tab_icon(int p_tab) const { return Ref<Texture>(); } -void TabContainer::set_tab_disabled(int p_tab, bool p_enabled) { +void TabContainer::set_tab_disabled(int p_tab, bool p_disabled) { Control *child = _get_tab(p_tab); ERR_FAIL_COND(!child); - child->set_meta("_tab_disabled", p_enabled); + child->set_meta("_tab_disabled", p_disabled); update(); } diff --git a/scene/gui/tab_container.h b/scene/gui/tab_container.h index 1105c6b298..3e1a2c1598 100644 --- a/scene/gui/tab_container.h +++ b/scene/gui/tab_container.h @@ -54,7 +54,7 @@ private: bool tabs_visible; bool buttons_visible_cache; TabAlign align; - Control *_get_tab(int idx) const; + Control *_get_tab(int p_idx) const; int _get_top_margin() const; Popup *popup; diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index 7b0d14c1a9..2b47539c42 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -2933,7 +2933,7 @@ void TextEdit::_base_remove_text(int p_from_line, int p_from_column, int p_to_li } } -void TextEdit::_insert_text(int p_line, int p_char, const String &p_text, int *r_end_line, int *r_end_column) { +void TextEdit::_insert_text(int p_line, int p_char, const String &p_text, int *r_end_line, int *r_end_char) { if (!setting_text) idle_detect->start(); @@ -2946,8 +2946,8 @@ void TextEdit::_insert_text(int p_line, int p_char, const String &p_text, int *r _base_insert_text(p_line, p_char, p_text, retline, retchar); if (r_end_line) *r_end_line = retline; - if (r_end_column) - *r_end_column = retchar; + if (r_end_char) + *r_end_char = retchar; if (!undo_enabled) return; diff --git a/scene/gui/text_edit.h b/scene/gui/text_edit.h index afb4b1c547..4c17347a5d 100644 --- a/scene/gui/text_edit.h +++ b/scene/gui/text_edit.h @@ -152,7 +152,7 @@ class TextEdit : public Control { int get_line_width(int p_line) const; int get_max_width() const; const Map<int, ColorRegionInfo> &get_color_region_info(int p_line); - void set(int p_line, const String &p_string); + void set(int p_line, const String &p_text); void set_marked(int p_line, bool p_marked) { text[p_line].marked = p_marked; } bool is_marked(int p_line) const { return text[p_line].marked; } void set_breakpoint(int p_line, bool p_breakpoint) { text[p_line].breakpoint = p_breakpoint; } @@ -288,8 +288,8 @@ class TextEdit : public Control { int get_char_count(); - int get_char_pos_for(int p_px, String p_pos) const; - int get_column_x_offset(int p_column, String p_pos); + int get_char_pos_for(int p_px, String p_str) const; + int get_column_x_offset(int p_char, String p_str); void adjust_viewport_to_cursor(); void _scroll_moved(double); @@ -320,7 +320,7 @@ class TextEdit : public Control { /* super internal api, undo/redo builds on it */ - void _base_insert_text(int p_line, int p_column, const String &p_text, int &r_end_line, int &r_end_column); + void _base_insert_text(int p_line, int p_char, const String &p_text, int &r_end_line, int &r_end_column); String _base_get_text(int p_from_line, int p_from_column, int p_to_line, int p_to_column) const; void _base_remove_text(int p_from_line, int p_from_column, int p_to_line, int p_to_column); @@ -339,10 +339,10 @@ class TextEdit : public Control { protected: virtual String get_tooltip(const Point2 &p_pos) const; - void _insert_text(int p_line, int p_column, const String &p_text, int *r_end_line = NULL, int *r_end_char = NULL); + void _insert_text(int p_line, int p_char, const String &p_text, int *r_end_line = NULL, int *r_end_char = NULL); void _remove_text(int p_from_line, int p_from_column, int p_to_line, int p_to_column); void _insert_text_at_cursor(const String &p_text); - void _gui_input(const Ref<InputEvent> &p_input); + void _gui_input(const Ref<InputEvent> &p_gui_input); void _notification(int p_what); void _consume_pair_symbol(CharType ch); diff --git a/scene/gui/texture_button.cpp b/scene/gui/texture_button.cpp index 00849c4e5a..7abf8380ce 100644 --- a/scene/gui/texture_button.cpp +++ b/scene/gui/texture_button.cpp @@ -286,8 +286,8 @@ void TextureButton::set_expand(bool p_expand) { update(); } -void TextureButton::set_stretch_mode(StretchMode p_mode) { - stretch_mode = p_mode; +void TextureButton::set_stretch_mode(StretchMode p_stretch_mode) { + stretch_mode = p_stretch_mode; update(); } diff --git a/scene/gui/texture_button.h b/scene/gui/texture_button.h index 9c31912a32..8df30cd35a 100644 --- a/scene/gui/texture_button.h +++ b/scene/gui/texture_button.h @@ -69,7 +69,7 @@ public: void set_hover_texture(const Ref<Texture> &p_hover); void set_disabled_texture(const Ref<Texture> &p_disabled); void set_focused_texture(const Ref<Texture> &p_focused); - void set_click_mask(const Ref<BitMap> &p_image); + void set_click_mask(const Ref<BitMap> &p_click_mask); Ref<Texture> get_normal_texture() const; Ref<Texture> get_pressed_texture() const; @@ -81,7 +81,7 @@ public: bool get_expand() const; void set_expand(bool p_expand); - void set_stretch_mode(StretchMode stretch_mode); + void set_stretch_mode(StretchMode p_stretch_mode); StretchMode get_stretch_mode() const; TextureButton(); diff --git a/scene/gui/tree.h b/scene/gui/tree.h index d3715c3c43..81880122a9 100644 --- a/scene/gui/tree.h +++ b/scene/gui/tree.h @@ -471,7 +471,7 @@ private: TreeItem *_search_item_text(TreeItem *p_at, const String &p_find, int *r_col, bool p_selectable, bool p_backwards = false); - TreeItem *_find_item_at_pos(TreeItem *p_current, const Point2 &p_pos, int &r_column, int &h, int §ion) const; + TreeItem *_find_item_at_pos(TreeItem *p_item, const Point2 &p_pos, int &r_column, int &h, int §ion) const; /* float drag_speed; float drag_accum; @@ -524,7 +524,7 @@ public: void set_column_expand(int p_column, bool p_expand); int get_column_width(int p_column) const; - void set_hide_root(bool p_eanbled); + void set_hide_root(bool p_enabled); TreeItem *get_next_selected(TreeItem *p_item); TreeItem *get_selected() const; int get_selected_column() const; diff --git a/scene/gui/video_player.h b/scene/gui/video_player.h index 1d70718a6a..87c452509b 100644 --- a/scene/gui/video_player.h +++ b/scene/gui/video_player.h @@ -105,7 +105,7 @@ public: String get_stream_name() const; float get_stream_pos() const; - void set_autoplay(bool p_vol); + void set_autoplay(bool p_enable); bool has_autoplay() const; void set_audio_track(int p_track); diff --git a/scene/main/canvas_layer.h b/scene/main/canvas_layer.h index 1be6f8be24..b14a915fe8 100644 --- a/scene/main/canvas_layer.h +++ b/scene/main/canvas_layer.h @@ -55,7 +55,7 @@ class CanvasLayer : public Node { int sort_index; // Deprecated, should be removed in a future version. - void _set_rotationd(real_t p_rotation); + void _set_rotationd(real_t p_degrees); real_t _get_rotationd() const; void _update_xform(); diff --git a/scene/main/node.cpp b/scene/main/node.cpp index 0d872d906e..0474c6fd26 100755 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -1301,8 +1301,9 @@ String Node::_generate_serial_child_name(Node *p_child) { } } + int num_places = nums.length(); for (;;) { - String attempt = (name + (num > 0 || explicit_zero ? nnsep + itos(num) : "")).strip_edges(); + String attempt = (name + (num > 0 || explicit_zero ? nnsep + itos(num).pad_zeros(num_places) : "")).strip_edges(); bool found = false; for (int i = 0; i < data.children.size(); i++) { if (data.children[i] == p_child) diff --git a/scene/main/node.h b/scene/main/node.h index 0447deccc1..bb8d80a0c8 100644 --- a/scene/main/node.h +++ b/scene/main/node.h @@ -32,8 +32,8 @@ #include "class_db.h" #include "map.h" -#include "object.h" #include "node_path.h" +#include "object.h" #include "project_settings.h" #include "scene/main/scene_tree.h" #include "script_language.h" @@ -303,14 +303,14 @@ public: float get_fixed_process_delta_time() const; bool is_fixed_processing() const; - void set_process(bool p_process); + void set_process(bool p_idle_process); float get_process_delta_time() const; bool is_processing() const; - void set_fixed_process_internal(bool p_process); + void set_fixed_process_internal(bool p_process_internal); bool is_fixed_processing_internal() const; - void set_process_internal(bool p_process); + void set_process_internal(bool p_idle_process_internal); bool is_processing_internal() const; void set_process_input(bool p_enable); diff --git a/scene/main/scene_tree.cpp b/scene/main/scene_tree.cpp index 067bcbff3e..66eafa1070 100644 --- a/scene/main/scene_tree.cpp +++ b/scene/main/scene_tree.cpp @@ -801,11 +801,11 @@ Ref<Material> SceneTree::get_debug_navigation_material() { return navigation_material; Ref<SpatialMaterial> line_material = Ref<SpatialMaterial>(memnew(SpatialMaterial)); - /* line_material->set_flag(Material::FLAG_UNSHADED, true); - line_material->set_line_width(3.0); - line_material->set_fixed_flag(SpatialMaterial::FLAG_USE_ALPHA, true); - line_material->set_fixed_flag(SpatialMaterial::FLAG_USE_COLOR_ARRAY, true); - line_material->set_parameter(SpatialMaterial::PARAM_DIFFUSE,get_debug_navigation_color());*/ + line_material->set_flag(SpatialMaterial::FLAG_UNSHADED, true); + line_material->set_feature(SpatialMaterial::FEATURE_TRANSPARENT, true); + line_material->set_flag(SpatialMaterial::FLAG_SRGB_VERTEX_COLOR, true); + line_material->set_flag(SpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR, true); + line_material->set_albedo(get_debug_navigation_color()); navigation_material = line_material; @@ -818,11 +818,11 @@ Ref<Material> SceneTree::get_debug_navigation_disabled_material() { return navigation_disabled_material; Ref<SpatialMaterial> line_material = Ref<SpatialMaterial>(memnew(SpatialMaterial)); - /* line_material->set_flag(Material::FLAG_UNSHADED, true); - line_material->set_line_width(3.0); - line_material->set_fixed_flag(SpatialMaterial::FLAG_USE_ALPHA, true); - line_material->set_fixed_flag(SpatialMaterial::FLAG_USE_COLOR_ARRAY, true); - line_material->set_parameter(SpatialMaterial::PARAM_DIFFUSE,get_debug_navigation_disabled_color());*/ + line_material->set_flag(SpatialMaterial::FLAG_UNSHADED, true); + line_material->set_feature(SpatialMaterial::FEATURE_TRANSPARENT, true); + line_material->set_flag(SpatialMaterial::FLAG_SRGB_VERTEX_COLOR, true); + line_material->set_flag(SpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR, true); + line_material->set_albedo(get_debug_navigation_disabled_color()); navigation_disabled_material = line_material; @@ -834,11 +834,11 @@ Ref<Material> SceneTree::get_debug_collision_material() { return collision_material; Ref<SpatialMaterial> line_material = Ref<SpatialMaterial>(memnew(SpatialMaterial)); - /*line_material->set_flag(Material::FLAG_UNSHADED, true); - line_material->set_line_width(3.0); - line_material->set_fixed_flag(SpatialMaterial::FLAG_USE_ALPHA, true); - line_material->set_fixed_flag(SpatialMaterial::FLAG_USE_COLOR_ARRAY, true); - line_material->set_parameter(SpatialMaterial::PARAM_DIFFUSE,get_debug_collisions_color());*/ + line_material->set_flag(SpatialMaterial::FLAG_UNSHADED, true); + line_material->set_feature(SpatialMaterial::FEATURE_TRANSPARENT, true); + line_material->set_flag(SpatialMaterial::FLAG_SRGB_VERTEX_COLOR, true); + line_material->set_flag(SpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR, true); + line_material->set_albedo(get_debug_collisions_color()); collision_material = line_material; @@ -852,11 +852,12 @@ Ref<ArrayMesh> SceneTree::get_debug_contact_mesh() { debug_contact_mesh = Ref<ArrayMesh>(memnew(ArrayMesh)); - Ref<SpatialMaterial> mat = memnew(SpatialMaterial); - /*mat->set_flag(Material::FLAG_UNSHADED,true); - mat->set_flag(Material::FLAG_DOUBLE_SIDED,true); - mat->set_fixed_flag(SpatialMaterial::FLAG_USE_ALPHA,true); - mat->set_parameter(SpatialMaterial::PARAM_DIFFUSE,get_debug_collision_contact_color());*/ + Ref<SpatialMaterial> mat = Ref<SpatialMaterial>(memnew(SpatialMaterial)); + mat->set_flag(SpatialMaterial::FLAG_UNSHADED, true); + mat->set_feature(SpatialMaterial::FEATURE_TRANSPARENT, true); + mat->set_flag(SpatialMaterial::FLAG_SRGB_VERTEX_COLOR, true); + mat->set_flag(SpatialMaterial::FLAG_ALBEDO_FROM_VERTEX_COLOR, true); + mat->set_albedo(get_debug_collision_contact_color()); Vector3 diamond[6] = { Vector3(-1, 0, 0), diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index 717e76c5fd..a22d897669 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -1473,8 +1473,8 @@ void Viewport::_gui_show_tooltip() { gui.tooltip_label->set_anchor_and_margin(MARGIN_LEFT, Control::ANCHOR_BEGIN, ttp->get_margin(MARGIN_LEFT)); gui.tooltip_label->set_anchor_and_margin(MARGIN_TOP, Control::ANCHOR_BEGIN, ttp->get_margin(MARGIN_TOP)); - gui.tooltip_label->set_anchor_and_margin(MARGIN_RIGHT, Control::ANCHOR_END, ttp->get_margin(MARGIN_RIGHT)); - gui.tooltip_label->set_anchor_and_margin(MARGIN_BOTTOM, Control::ANCHOR_END, ttp->get_margin(MARGIN_BOTTOM)); + gui.tooltip_label->set_anchor_and_margin(MARGIN_RIGHT, Control::ANCHOR_END, -ttp->get_margin(MARGIN_RIGHT)); + gui.tooltip_label->set_anchor_and_margin(MARGIN_BOTTOM, Control::ANCHOR_END, -ttp->get_margin(MARGIN_BOTTOM)); gui.tooltip_label->set_text(tooltip); Rect2 r(gui.tooltip_pos + Point2(10, 10), gui.tooltip_label->get_combined_minimum_size() + ttp->get_minimum_size()); Rect2 vr = gui.tooltip_label->get_viewport_rect(); @@ -1932,8 +1932,7 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { Control *top = gui.modal_stack.back()->get(); if (over != top && !top->is_a_parent_of(over)) { - - return; // don't send motion event to anything below modal stack top + over = NULL; //nothing can be found outside the modal stack } } diff --git a/scene/resources/animation.cpp b/scene/resources/animation.cpp index 459d3ffe41..a2ff45c623 100644 --- a/scene/resources/animation.cpp +++ b/scene/resources/animation.cpp @@ -733,7 +733,7 @@ int Animation::track_find_key(int p_track, float p_time, bool p_exact) const { return -1; } -void Animation::track_insert_key(int p_track, float p_time, const Variant &p_value, float p_transition) { +void Animation::track_insert_key(int p_track, float p_time, const Variant &p_key, float p_transition) { ERR_FAIL_INDEX(p_track, tracks.size()); Track *t = tracks[p_track]; @@ -742,7 +742,7 @@ void Animation::track_insert_key(int p_track, float p_time, const Variant &p_val case TYPE_TRANSFORM: { - Dictionary d = p_value; + Dictionary d = p_key; Vector3 loc; if (d.has("loc")) loc = d["loc"]; @@ -766,7 +766,7 @@ void Animation::track_insert_key(int p_track, float p_time, const Variant &p_val TKey<Variant> k; k.time = p_time; k.transition = p_transition; - k.value = p_value; + k.value = p_key; _insert(p_time, vt->values, k); } break; @@ -774,9 +774,9 @@ void Animation::track_insert_key(int p_track, float p_time, const Variant &p_val MethodTrack *mt = static_cast<MethodTrack *>(t); - ERR_FAIL_COND(p_value.get_type() != Variant::DICTIONARY); + ERR_FAIL_COND(p_key.get_type() != Variant::DICTIONARY); - Dictionary d = p_value; + Dictionary d = p_key; ERR_FAIL_COND(!d.has("method") || d["method"].get_type() != Variant::STRING); ERR_FAIL_COND(!d.has("args") || !d["args"].is_array()); @@ -1871,7 +1871,7 @@ bool Animation::_transform_track_optimize_key(const TKey<TransformKey> &t0, cons return erase; } -void Animation::_transform_track_optimize(int p_idx, float p_alowed_linear_err, float p_alowed_angular_err, float p_max_optimizable_angle) { +void Animation::_transform_track_optimize(int p_idx, float p_allowed_linear_err, float p_allowed_angular_err, float p_max_optimizable_angle) { ERR_FAIL_INDEX(p_idx, tracks.size()); ERR_FAIL_COND(tracks[p_idx]->type != TYPE_TRANSFORM); @@ -1887,12 +1887,12 @@ void Animation::_transform_track_optimize(int p_idx, float p_alowed_linear_err, TKey<TransformKey> &t1 = tt->transforms[i]; TKey<TransformKey> &t2 = tt->transforms[i + 1]; - bool erase = _transform_track_optimize_key(t0, t1, t2, p_alowed_linear_err, p_alowed_angular_err, p_max_optimizable_angle, norm); + bool erase = _transform_track_optimize_key(t0, t1, t2, p_allowed_linear_err, p_allowed_angular_err, p_max_optimizable_angle, norm); if (erase && !prev_erased) { norm = (t2.value.loc - t1.value.loc).normalized(); } - if (prev_erased && !_transform_track_optimize_key(t0, first_erased, t2, p_alowed_linear_err, p_alowed_angular_err, p_max_optimizable_angle, norm)) { + if (prev_erased && !_transform_track_optimize_key(t0, first_erased, t2, p_allowed_linear_err, p_allowed_angular_err, p_max_optimizable_angle, norm)) { //avoid error to go beyond first erased key erase = false; } @@ -1914,12 +1914,12 @@ void Animation::_transform_track_optimize(int p_idx, float p_alowed_linear_err, } } -void Animation::optimize(float p_allowed_linear_err, float p_allowed_angular_err, float p_angle_max) { +void Animation::optimize(float p_allowed_linear_err, float p_allowed_angular_err, float p_max_optimizable_angle) { for (int i = 0; i < tracks.size(); i++) { if (tracks[i]->type == TYPE_TRANSFORM) - _transform_track_optimize(i, p_allowed_linear_err, p_allowed_angular_err, p_angle_max); + _transform_track_optimize(i, p_allowed_linear_err, p_allowed_angular_err, p_max_optimizable_angle); } } diff --git a/scene/resources/animation.h b/scene/resources/animation.h index b363f2b666..27c58aba8c 100644 --- a/scene/resources/animation.h +++ b/scene/resources/animation.h @@ -212,7 +212,7 @@ private: } bool _transform_track_optimize_key(const TKey<TransformKey> &t0, const TKey<TransformKey> &t1, const TKey<TransformKey> &t2, float p_alowed_linear_err, float p_alowed_angular_err, float p_max_optimizable_angle, const Vector3 &p_norm); - void _transform_track_optimize(int p_idx, float p_allowed_err = 0.05, float p_alowed_angular_err = 0.01, float p_max_optimizable_angle = Math_PI * 0.125); + void _transform_track_optimize(int p_idx, float p_allowed_linear_err = 0.05, float p_allowed_angular_err = 0.01, float p_max_optimizable_angle = Math_PI * 0.125); protected: bool _set(const StringName &p_name, const Variant &p_value); diff --git a/scene/resources/color_ramp.h b/scene/resources/color_ramp.h index d7ec20b324..d9f14205bb 100644 --- a/scene/resources/color_ramp.h +++ b/scene/resources/color_ramp.h @@ -60,7 +60,7 @@ public: void add_point(float p_offset, const Color &p_color); void remove_point(int p_index); - void set_points(Vector<Point> &points); + void set_points(Vector<Point> &p_points); Vector<Point> &get_points(); void set_offset(int pos, const float offset); @@ -69,10 +69,10 @@ public: void set_color(int pos, const Color &color); Color get_color(int pos) const; - void set_offsets(const Vector<float> &offsets); + void set_offsets(const Vector<float> &p_offsets); Vector<float> get_offsets() const; - void set_colors(const Vector<Color> &colors); + void set_colors(const Vector<Color> &p_colors); Vector<Color> get_colors() const; _FORCE_INLINE_ Color get_color_at_offset(float p_offset) { diff --git a/scene/resources/curve.h b/scene/resources/curve.h index 2815c12c4b..e302f1e0af 100644 --- a/scene/resources/curve.h +++ b/scene/resources/curve.h @@ -174,7 +174,7 @@ public: void bake(); int get_bake_resolution() const { return _bake_resolution; } - void set_bake_resolution(int p_interval); + void set_bake_resolution(int p_resolution); real_t interpolate_baked(real_t offset); protected: @@ -242,7 +242,7 @@ public: Vector2 interpolate(int p_index, float p_offset) const; Vector2 interpolatef(real_t p_findex) const; - void set_bake_interval(float p_distance); + void set_bake_interval(float p_tolerance); float get_bake_interval() const; float get_baked_length() const; @@ -309,7 +309,7 @@ public: Vector3 interpolate(int p_index, float p_offset) const; Vector3 interpolatef(real_t p_findex) const; - void set_bake_interval(float p_distance); + void set_bake_interval(float p_tolerance); float get_bake_interval() const; float get_baked_length() const; diff --git a/scene/resources/default_theme/default_theme.cpp b/scene/resources/default_theme/default_theme.cpp index 3e612c745f..03288e45bf 100644 --- a/scene/resources/default_theme/default_theme.cpp +++ b/scene/resources/default_theme/default_theme.cpp @@ -203,7 +203,7 @@ static Ref<StyleBox> make_empty_stylebox(float p_margin_left = -1, float p_margi return style; } -void fill_default_theme(Ref<Theme> &t, const Ref<Font> &default_font, const Ref<Font> &large_font, Ref<Texture> &default_icon, Ref<StyleBox> &default_style, float p_scale) { +void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const Ref<Font> &large_font, Ref<Texture> &default_icon, Ref<StyleBox> &default_style, float p_scale) { scale = p_scale; @@ -223,7 +223,7 @@ void fill_default_theme(Ref<Theme> &t, const Ref<Font> &default_font, const Ref< // Panel - t->set_stylebox("panel", "Panel", make_stylebox(panel_bg_png, 0, 0, 0, 0)); + theme->set_stylebox("panel", "Panel", make_stylebox(panel_bg_png, 0, 0, 0, 0)); // Focus @@ -240,63 +240,63 @@ void fill_default_theme(Ref<Theme> &t, const Ref<Font> &default_font, const Ref< Ref<StyleBox> sb_button_disabled = sb_expand(make_stylebox(button_disabled_png, 4, 4, 4, 4, 6, 2, 6, 2), 2, 2, 2, 2); Ref<StyleBox> sb_button_focus = sb_expand(make_stylebox(button_focus_png, 4, 4, 4, 4, 6, 2, 6, 2), 2, 2, 2, 2); - t->set_stylebox("normal", "Button", sb_button_normal); - t->set_stylebox("pressed", "Button", sb_button_pressed); - t->set_stylebox("hover", "Button", sb_button_hover); - t->set_stylebox("disabled", "Button", sb_button_disabled); - t->set_stylebox("focus", "Button", sb_button_focus); + theme->set_stylebox("normal", "Button", sb_button_normal); + theme->set_stylebox("pressed", "Button", sb_button_pressed); + theme->set_stylebox("hover", "Button", sb_button_hover); + theme->set_stylebox("disabled", "Button", sb_button_disabled); + theme->set_stylebox("focus", "Button", sb_button_focus); - t->set_font("font", "Button", default_font); + theme->set_font("font", "Button", default_font); - t->set_color("font_color", "Button", control_font_color); - t->set_color("font_color_pressed", "Button", control_font_color_pressed); - t->set_color("font_color_hover", "Button", control_font_color_hover); - t->set_color("font_color_disabled", "Button", control_font_color_disabled); + theme->set_color("font_color", "Button", control_font_color); + theme->set_color("font_color_pressed", "Button", control_font_color_pressed); + theme->set_color("font_color_hover", "Button", control_font_color_hover); + theme->set_color("font_color_disabled", "Button", control_font_color_disabled); - t->set_constant("hseparation", "Button", 2 * scale); + theme->set_constant("hseparation", "Button", 2 * scale); // LinkButton - t->set_font("font", "LinkButton", default_font); + theme->set_font("font", "LinkButton", default_font); - t->set_color("font_color", "LinkButton", control_font_color); - t->set_color("font_color_pressed", "LinkButton", control_font_color_pressed); - t->set_color("font_color_hover", "LinkButton", control_font_color_hover); + theme->set_color("font_color", "LinkButton", control_font_color); + theme->set_color("font_color_pressed", "LinkButton", control_font_color_pressed); + theme->set_color("font_color_hover", "LinkButton", control_font_color_hover); - t->set_constant("underline_spacing", "LinkButton", 2 * scale); + theme->set_constant("underline_spacing", "LinkButton", 2 * scale); // ColorPickerButton - t->set_stylebox("normal", "ColorPickerButton", sb_button_normal); - t->set_stylebox("pressed", "ColorPickerButton", sb_button_pressed); - t->set_stylebox("hover", "ColorPickerButton", sb_button_hover); - t->set_stylebox("disabled", "ColorPickerButton", sb_button_disabled); - t->set_stylebox("focus", "ColorPickerButton", sb_button_focus); + theme->set_stylebox("normal", "ColorPickerButton", sb_button_normal); + theme->set_stylebox("pressed", "ColorPickerButton", sb_button_pressed); + theme->set_stylebox("hover", "ColorPickerButton", sb_button_hover); + theme->set_stylebox("disabled", "ColorPickerButton", sb_button_disabled); + theme->set_stylebox("focus", "ColorPickerButton", sb_button_focus); - t->set_font("font", "ColorPickerButton", default_font); + theme->set_font("font", "ColorPickerButton", default_font); - t->set_color("font_color", "ColorPickerButton", Color(1, 1, 1, 1)); - t->set_color("font_color_pressed", "ColorPickerButton", Color(0.8, 0.8, 0.8, 1)); - t->set_color("font_color_hover", "ColorPickerButton", Color(1, 1, 1, 1)); - t->set_color("font_color_disabled", "ColorPickerButton", Color(0.9, 0.9, 0.9, 0.3)); + theme->set_color("font_color", "ColorPickerButton", Color(1, 1, 1, 1)); + theme->set_color("font_color_pressed", "ColorPickerButton", Color(0.8, 0.8, 0.8, 1)); + theme->set_color("font_color_hover", "ColorPickerButton", Color(1, 1, 1, 1)); + theme->set_color("font_color_disabled", "ColorPickerButton", Color(0.9, 0.9, 0.9, 0.3)); - t->set_constant("hseparation", "ColorPickerButton", 2 * scale); + theme->set_constant("hseparation", "ColorPickerButton", 2 * scale); // ToolButton - t->set_stylebox("normal", "ToolButton", make_empty_stylebox(6, 4, 6, 4)); - t->set_stylebox("pressed", "ToolButton", make_stylebox(button_pressed_png, 4, 4, 4, 4, 6, 4, 6, 4)); - t->set_stylebox("hover", "ToolButton", make_stylebox(button_normal_png, 4, 4, 4, 4, 6, 4, 6, 4)); - t->set_stylebox("disabled", "ToolButton", make_empty_stylebox(6, 4, 6, 4)); - t->set_stylebox("focus", "ToolButton", focus); - t->set_font("font", "ToolButton", default_font); + theme->set_stylebox("normal", "ToolButton", make_empty_stylebox(6, 4, 6, 4)); + theme->set_stylebox("pressed", "ToolButton", make_stylebox(button_pressed_png, 4, 4, 4, 4, 6, 4, 6, 4)); + theme->set_stylebox("hover", "ToolButton", make_stylebox(button_normal_png, 4, 4, 4, 4, 6, 4, 6, 4)); + theme->set_stylebox("disabled", "ToolButton", make_empty_stylebox(6, 4, 6, 4)); + theme->set_stylebox("focus", "ToolButton", focus); + theme->set_font("font", "ToolButton", default_font); - t->set_color("font_color", "ToolButton", control_font_color); - t->set_color("font_color_pressed", "ToolButton", control_font_color_pressed); - t->set_color("font_color_hover", "ToolButton", control_font_color_hover); - t->set_color("font_color_disabled", "ToolButton", Color(0.9, 0.95, 1, 0.3)); + theme->set_color("font_color", "ToolButton", control_font_color); + theme->set_color("font_color_pressed", "ToolButton", control_font_color_pressed); + theme->set_color("font_color_hover", "ToolButton", control_font_color_hover); + theme->set_color("font_color_disabled", "ToolButton", Color(0.9, 0.95, 1, 0.3)); - t->set_constant("hseparation", "ToolButton", 3); + theme->set_constant("hseparation", "ToolButton", 3); // OptionButton @@ -306,44 +306,44 @@ void fill_default_theme(Ref<Theme> &t, const Ref<Font> &default_font, const Ref< Ref<StyleBox> sb_optbutton_disabled = sb_expand(make_stylebox(option_button_disabled_png, 4, 4, 21, 4, 6, 2, 21, 2), 2, 2, 2, 2); Ref<StyleBox> sb_optbutton_focus = sb_expand(make_stylebox(button_focus_png, 4, 4, 4, 4, 6, 2, 6, 2), 2, 2, 2, 2); - t->set_stylebox("normal", "OptionButton", sb_optbutton_normal); - t->set_stylebox("pressed", "OptionButton", sb_optbutton_pressed); - t->set_stylebox("hover", "OptionButton", sb_optbutton_hover); - t->set_stylebox("disabled", "OptionButton", sb_optbutton_disabled); - t->set_stylebox("focus", "OptionButton", sb_button_focus); + theme->set_stylebox("normal", "OptionButton", sb_optbutton_normal); + theme->set_stylebox("pressed", "OptionButton", sb_optbutton_pressed); + theme->set_stylebox("hover", "OptionButton", sb_optbutton_hover); + theme->set_stylebox("disabled", "OptionButton", sb_optbutton_disabled); + theme->set_stylebox("focus", "OptionButton", sb_button_focus); - t->set_icon("arrow", "OptionButton", make_icon(option_arrow_png)); + theme->set_icon("arrow", "OptionButton", make_icon(option_arrow_png)); - t->set_font("font", "OptionButton", default_font); + theme->set_font("font", "OptionButton", default_font); - t->set_color("font_color", "OptionButton", control_font_color); - t->set_color("font_color_pressed", "OptionButton", control_font_color_pressed); - t->set_color("font_color_hover", "OptionButton", control_font_color_hover); - t->set_color("font_color_disabled", "OptionButton", control_font_color_disabled); + theme->set_color("font_color", "OptionButton", control_font_color); + theme->set_color("font_color_pressed", "OptionButton", control_font_color_pressed); + theme->set_color("font_color_hover", "OptionButton", control_font_color_hover); + theme->set_color("font_color_disabled", "OptionButton", control_font_color_disabled); - t->set_constant("hseparation", "OptionButton", 2 * scale); - t->set_constant("arrow_margin", "OptionButton", 2 * scale); + theme->set_constant("hseparation", "OptionButton", 2 * scale); + theme->set_constant("arrow_margin", "OptionButton", 2 * scale); // MenuButton - t->set_stylebox("normal", "MenuButton", sb_button_normal); - t->set_stylebox("pressed", "MenuButton", sb_button_pressed); - t->set_stylebox("hover", "MenuButton", sb_button_pressed); - t->set_stylebox("disabled", "MenuButton", make_empty_stylebox(0, 0, 0, 0)); - t->set_stylebox("focus", "MenuButton", sb_button_focus); + theme->set_stylebox("normal", "MenuButton", sb_button_normal); + theme->set_stylebox("pressed", "MenuButton", sb_button_pressed); + theme->set_stylebox("hover", "MenuButton", sb_button_pressed); + theme->set_stylebox("disabled", "MenuButton", make_empty_stylebox(0, 0, 0, 0)); + theme->set_stylebox("focus", "MenuButton", sb_button_focus); - t->set_font("font", "MenuButton", default_font); + theme->set_font("font", "MenuButton", default_font); - t->set_color("font_color", "MenuButton", control_font_color); - t->set_color("font_color_pressed", "MenuButton", control_font_color_pressed); - t->set_color("font_color_hover", "MenuButton", control_font_color_hover); - t->set_color("font_color_disabled", "MenuButton", Color(1, 1, 1, 0.3)); + theme->set_color("font_color", "MenuButton", control_font_color); + theme->set_color("font_color_pressed", "MenuButton", control_font_color_pressed); + theme->set_color("font_color_hover", "MenuButton", control_font_color_hover); + theme->set_color("font_color_disabled", "MenuButton", Color(1, 1, 1, 0.3)); - t->set_constant("hseparation", "MenuButton", 3 * scale); + theme->set_constant("hseparation", "MenuButton", 3 * scale); // ButtonGroup - t->set_stylebox("panel", "ButtonGroup", memnew(StyleBoxEmpty)); + theme->set_stylebox("panel", "ButtonGroup", memnew(StyleBoxEmpty)); // CheckBox @@ -358,26 +358,26 @@ void fill_default_theme(Ref<Theme> &t, const Ref<Font> &default_font, const Ref< cbx_focus->set_default_margin(MARGIN_TOP, 4 * scale); cbx_focus->set_default_margin(MARGIN_BOTTOM, 5 * scale); - t->set_stylebox("normal", "CheckBox", cbx_empty); - t->set_stylebox("pressed", "CheckBox", cbx_empty); - t->set_stylebox("disabled", "CheckBox", cbx_empty); - t->set_stylebox("hover", "CheckBox", cbx_empty); - t->set_stylebox("focus", "CheckBox", cbx_focus); + theme->set_stylebox("normal", "CheckBox", cbx_empty); + theme->set_stylebox("pressed", "CheckBox", cbx_empty); + theme->set_stylebox("disabled", "CheckBox", cbx_empty); + theme->set_stylebox("hover", "CheckBox", cbx_empty); + theme->set_stylebox("focus", "CheckBox", cbx_focus); - t->set_icon("checked", "CheckBox", make_icon(checked_png)); - t->set_icon("unchecked", "CheckBox", make_icon(unchecked_png)); - t->set_icon("radio_checked", "CheckBox", make_icon(radio_checked_png)); - t->set_icon("radio_unchecked", "CheckBox", make_icon(radio_unchecked_png)); + theme->set_icon("checked", "CheckBox", make_icon(checked_png)); + theme->set_icon("unchecked", "CheckBox", make_icon(unchecked_png)); + theme->set_icon("radio_checked", "CheckBox", make_icon(radio_checked_png)); + theme->set_icon("radio_unchecked", "CheckBox", make_icon(radio_unchecked_png)); - t->set_font("font", "CheckBox", default_font); + theme->set_font("font", "CheckBox", default_font); - t->set_color("font_color", "CheckBox", control_font_color); - t->set_color("font_color_pressed", "CheckBox", control_font_color_pressed); - t->set_color("font_color_hover", "CheckBox", control_font_color_hover); - t->set_color("font_color_disabled", "CheckBox", control_font_color_disabled); + theme->set_color("font_color", "CheckBox", control_font_color); + theme->set_color("font_color_pressed", "CheckBox", control_font_color_pressed); + theme->set_color("font_color_hover", "CheckBox", control_font_color_hover); + theme->set_color("font_color_disabled", "CheckBox", control_font_color_disabled); - t->set_constant("hseparation", "CheckBox", 4 * scale); - t->set_constant("check_vadjust", "CheckBox", 0 * scale); + theme->set_constant("hseparation", "CheckBox", 4 * scale); + theme->set_constant("check_vadjust", "CheckBox", 0 * scale); // CheckButton @@ -387,170 +387,172 @@ void fill_default_theme(Ref<Theme> &t, const Ref<Font> &default_font, const Ref< cb_empty->set_default_margin(MARGIN_TOP, 4 * scale); cb_empty->set_default_margin(MARGIN_BOTTOM, 4 * scale); - t->set_stylebox("normal", "CheckButton", cb_empty); - t->set_stylebox("pressed", "CheckButton", cb_empty); - t->set_stylebox("disabled", "CheckButton", cb_empty); - t->set_stylebox("hover", "CheckButton", cb_empty); - t->set_stylebox("focus", "CheckButton", focus); + theme->set_stylebox("normal", "CheckButton", cb_empty); + theme->set_stylebox("pressed", "CheckButton", cb_empty); + theme->set_stylebox("disabled", "CheckButton", cb_empty); + theme->set_stylebox("hover", "CheckButton", cb_empty); + theme->set_stylebox("focus", "CheckButton", focus); - t->set_icon("on", "CheckButton", make_icon(toggle_on_png)); - t->set_icon("off", "CheckButton", make_icon(toggle_off_png)); + theme->set_icon("on", "CheckButton", make_icon(toggle_on_png)); + theme->set_icon("off", "CheckButton", make_icon(toggle_off_png)); - t->set_font("font", "CheckButton", default_font); + theme->set_font("font", "CheckButton", default_font); - t->set_color("font_color", "CheckButton", control_font_color); - t->set_color("font_color_pressed", "CheckButton", control_font_color_pressed); - t->set_color("font_color_hover", "CheckButton", control_font_color_hover); - t->set_color("font_color_disabled", "CheckButton", control_font_color_disabled); + theme->set_color("font_color", "CheckButton", control_font_color); + theme->set_color("font_color_pressed", "CheckButton", control_font_color_pressed); + theme->set_color("font_color_hover", "CheckButton", control_font_color_hover); + theme->set_color("font_color_disabled", "CheckButton", control_font_color_disabled); - t->set_constant("hseparation", "CheckButton", 4 * scale); - t->set_constant("check_vadjust", "CheckButton", 0 * scale); + theme->set_constant("hseparation", "CheckButton", 4 * scale); + theme->set_constant("check_vadjust", "CheckButton", 0 * scale); // Label - t->set_font("font", "Label", default_font); + theme->set_font("font", "Label", default_font); - t->set_color("font_color", "Label", Color(1, 1, 1)); - t->set_color("font_color_shadow", "Label", Color(0, 0, 0, 0)); + theme->set_color("font_color", "Label", Color(1, 1, 1)); + theme->set_color("font_color_shadow", "Label", Color(0, 0, 0, 0)); - t->set_constant("shadow_offset_x", "Label", 1 * scale); - t->set_constant("shadow_offset_y", "Label", 1 * scale); - t->set_constant("shadow_as_outline", "Label", 0 * scale); - t->set_constant("line_spacing", "Label", 3 * scale); + theme->set_constant("shadow_offset_x", "Label", 1 * scale); + theme->set_constant("shadow_offset_y", "Label", 1 * scale); + theme->set_constant("shadow_as_outline", "Label", 0 * scale); + theme->set_constant("line_spacing", "Label", 3 * scale); // LineEdit - t->set_stylebox("normal", "LineEdit", make_stylebox(line_edit_png, 5, 5, 5, 5)); - t->set_stylebox("focus", "LineEdit", focus); - t->set_stylebox("read_only", "LineEdit", make_stylebox(line_edit_disabled_png, 6, 6, 6, 6)); + theme->set_stylebox("normal", "LineEdit", make_stylebox(line_edit_png, 5, 5, 5, 5)); + theme->set_stylebox("focus", "LineEdit", focus); + theme->set_stylebox("read_only", "LineEdit", make_stylebox(line_edit_disabled_png, 6, 6, 6, 6)); - t->set_font("font", "LineEdit", default_font); + theme->set_font("font", "LineEdit", default_font); - t->set_color("font_color", "LineEdit", control_font_color); - t->set_color("font_color_selected", "LineEdit", Color(0, 0, 0)); - t->set_color("cursor_color", "LineEdit", control_font_color_hover); - t->set_color("selection_color", "LineEdit", font_color_selection); + theme->set_color("font_color", "LineEdit", control_font_color); + theme->set_color("font_color_selected", "LineEdit", Color(0, 0, 0)); + theme->set_color("cursor_color", "LineEdit", control_font_color_hover); + theme->set_color("selection_color", "LineEdit", font_color_selection); - t->set_constant("minimum_spaces", "LineEdit", 12 * scale); + theme->set_constant("minimum_spaces", "LineEdit", 12 * scale); // ProgressBar - t->set_stylebox("bg", "ProgressBar", make_stylebox(progress_bar_png, 4, 4, 4, 4, 0, 0, 0, 0)); - t->set_stylebox("fg", "ProgressBar", make_stylebox(progress_fill_png, 6, 6, 6, 6, 2, 1, 2, 1)); + theme->set_stylebox("bg", "ProgressBar", make_stylebox(progress_bar_png, 4, 4, 4, 4, 0, 0, 0, 0)); + theme->set_stylebox("fg", "ProgressBar", make_stylebox(progress_fill_png, 6, 6, 6, 6, 2, 1, 2, 1)); - t->set_font("font", "ProgressBar", default_font); + theme->set_font("font", "ProgressBar", default_font); - t->set_color("font_color", "ProgressBar", control_font_color_hover); - t->set_color("font_color_shadow", "ProgressBar", Color(0, 0, 0)); + theme->set_color("font_color", "ProgressBar", control_font_color_hover); + theme->set_color("font_color_shadow", "ProgressBar", Color(0, 0, 0)); // TextEdit - t->set_stylebox("normal", "TextEdit", make_stylebox(tree_bg_png, 3, 3, 3, 3)); - t->set_stylebox("focus", "TextEdit", focus); - t->set_stylebox("completion", "TextEdit", make_stylebox(tree_bg_png, 3, 3, 3, 3)); - - t->set_icon("tab", "TextEdit", make_icon(tab_png)); - - t->set_font("font", "TextEdit", default_font); - - t->set_color("background_color", "TextEdit", Color(0, 0, 0, 0)); - t->set_color("completion_background_color", "TextEdit", Color::html("2C2A32")); - t->set_color("completion_selected_color", "TextEdit", Color::html("434244")); - t->set_color("completion_existing_color", "TextEdit", Color::html("21dfdfdf")); - t->set_color("completion_scroll_color", "TextEdit", control_font_color_pressed); - t->set_color("completion_font_color", "TextEdit", Color::html("aaaaaa")); - t->set_color("font_color", "TextEdit", control_font_color); - t->set_color("font_color_selected", "TextEdit", Color(0, 0, 0)); - t->set_color("selection_color", "TextEdit", font_color_selection); - t->set_color("mark_color", "TextEdit", Color(1.0, 0.4, 0.4, 0.4)); - t->set_color("breakpoint_color", "TextEdit", Color(0.8, 0.8, 0.4, 0.2)); - t->set_color("current_line_color", "TextEdit", Color(0.25, 0.25, 0.26, 0.8)); - t->set_color("caret_color", "TextEdit", control_font_color); - t->set_color("caret_background_color", "TextEdit", Color::html("000000")); - t->set_color("symbol_color", "TextEdit", control_font_color_hover); - t->set_color("brace_mismatch_color", "TextEdit", Color(1, 0.2, 0.2)); - t->set_color("line_number_color", "TextEdit", Color::html("66aaaaaa")); - t->set_color("function_color", "TextEdit", Color::html("66a2ce")); - t->set_color("member_variable_color", "TextEdit", Color::html("e64e59")); - t->set_color("number_color", "TextEdit", Color::html("EB9532")); - t->set_color("word_highlighted_color", "TextEdit", Color(0.8, 0.9, 0.9, 0.15)); - - t->set_constant("completion_lines", "TextEdit", 7); - t->set_constant("completion_max_width", "TextEdit", 50); - t->set_constant("completion_scroll_width", "TextEdit", 3); - t->set_constant("line_spacing", "TextEdit", 4 * scale); + theme->set_stylebox("normal", "TextEdit", make_stylebox(tree_bg_png, 3, 3, 3, 3)); + theme->set_stylebox("focus", "TextEdit", focus); + theme->set_stylebox("completion", "TextEdit", make_stylebox(tree_bg_png, 3, 3, 3, 3)); + + theme->set_icon("tab", "TextEdit", make_icon(tab_png)); + + theme->set_font("font", "TextEdit", default_font); + + theme->set_color("background_color", "TextEdit", Color(0, 0, 0, 0)); + theme->set_color("completion_background_color", "TextEdit", Color::html("2C2A32")); + theme->set_color("completion_selected_color", "TextEdit", Color::html("434244")); + theme->set_color("completion_existing_color", "TextEdit", Color::html("21dfdfdf")); + theme->set_color("completion_scroll_color", "TextEdit", control_font_color_pressed); + theme->set_color("completion_font_color", "TextEdit", Color::html("aaaaaa")); + theme->set_color("font_color", "TextEdit", control_font_color); + theme->set_color("font_color_selected", "TextEdit", Color(0, 0, 0)); + theme->set_color("selection_color", "TextEdit", font_color_selection); + theme->set_color("mark_color", "TextEdit", Color(1.0, 0.4, 0.4, 0.4)); + theme->set_color("breakpoint_color", "TextEdit", Color(0.8, 0.8, 0.4, 0.2)); + theme->set_color("current_line_color", "TextEdit", Color(0.25, 0.25, 0.26, 0.8)); + theme->set_color("caret_color", "TextEdit", control_font_color); + theme->set_color("caret_background_color", "TextEdit", Color::html("000000")); + theme->set_color("symbol_color", "TextEdit", control_font_color_hover); + theme->set_color("brace_mismatch_color", "TextEdit", Color(1, 0.2, 0.2)); + theme->set_color("line_number_color", "TextEdit", Color::html("66aaaaaa")); + theme->set_color("function_color", "TextEdit", Color::html("66a2ce")); + theme->set_color("member_variable_color", "TextEdit", Color::html("e64e59")); + theme->set_color("number_color", "TextEdit", Color::html("EB9532")); + theme->set_color("word_highlighted_color", "TextEdit", Color(0.8, 0.9, 0.9, 0.15)); + + theme->set_constant("completion_lines", "TextEdit", 7); + theme->set_constant("completion_max_width", "TextEdit", 50); + theme->set_constant("completion_scroll_width", "TextEdit", 3); + theme->set_constant("line_spacing", "TextEdit", 4 * scale); Ref<Texture> empty_icon = memnew(ImageTexture); // HScrollBar - t->set_stylebox("scroll", "HScrollBar", make_stylebox(scroll_bg_png, 5, 5, 5, 5, 0, 0, 0, 0)); - t->set_stylebox("scroll_focus", "HScrollBar", make_stylebox(scroll_bg_png, 5, 5, 5, 5, 0, 0, 0, 0)); - t->set_stylebox("grabber", "HScrollBar", make_stylebox(scroll_grabber_png, 5, 5, 5, 5, 2, 2, 2, 2)); - t->set_stylebox("grabber_highlight", "HScrollBar", make_stylebox(scroll_grabber_hl_png, 5, 5, 5, 5, 2, 2, 2, 2)); + theme->set_stylebox("scroll", "HScrollBar", make_stylebox(scroll_bg_png, 5, 5, 5, 5, 0, 0, 0, 0)); + theme->set_stylebox("scroll_focus", "HScrollBar", make_stylebox(scroll_bg_png, 5, 5, 5, 5, 0, 0, 0, 0)); + theme->set_stylebox("grabber", "HScrollBar", make_stylebox(scroll_grabber_png, 5, 5, 5, 5, 2, 2, 2, 2)); + theme->set_stylebox("grabber_highlight", "HScrollBar", make_stylebox(scroll_grabber_hl_png, 5, 5, 5, 5, 2, 2, 2, 2)); + theme->set_stylebox("grabber_pressed", "HScrollBar", make_stylebox(scroll_grabber_pressed_png, 5, 5, 5, 5, 2, 2, 2, 2)); - t->set_icon("increment", "HScrollBar", empty_icon); - t->set_icon("increment_highlight", "HScrollBar", empty_icon); - t->set_icon("decrement", "HScrollBar", empty_icon); - t->set_icon("decrement_highlight", "HScrollBar", empty_icon); + theme->set_icon("increment", "HScrollBar", empty_icon); + theme->set_icon("increment_highlight", "HScrollBar", empty_icon); + theme->set_icon("decrement", "HScrollBar", empty_icon); + theme->set_icon("decrement_highlight", "HScrollBar", empty_icon); // VScrollBar - t->set_stylebox("scroll", "VScrollBar", make_stylebox(scroll_bg_png, 5, 5, 5, 5, 0, 0, 0, 0)); - t->set_stylebox("scroll_focus", "VScrollBar", make_stylebox(scroll_bg_png, 5, 5, 5, 5, 0, 0, 0, 0)); - t->set_stylebox("grabber", "VScrollBar", make_stylebox(scroll_grabber_png, 5, 5, 5, 5, 2, 2, 2, 2)); - t->set_stylebox("grabber_highlight", "VScrollBar", make_stylebox(scroll_grabber_hl_png, 5, 5, 5, 5, 2, 2, 2, 2)); + theme->set_stylebox("scroll", "VScrollBar", make_stylebox(scroll_bg_png, 5, 5, 5, 5, 0, 0, 0, 0)); + theme->set_stylebox("scroll_focus", "VScrollBar", make_stylebox(scroll_bg_png, 5, 5, 5, 5, 0, 0, 0, 0)); + theme->set_stylebox("grabber", "VScrollBar", make_stylebox(scroll_grabber_png, 5, 5, 5, 5, 2, 2, 2, 2)); + theme->set_stylebox("grabber_highlight", "VScrollBar", make_stylebox(scroll_grabber_hl_png, 5, 5, 5, 5, 2, 2, 2, 2)); + theme->set_stylebox("grabber_pressed", "VScrollBar", make_stylebox(scroll_grabber_pressed_png, 5, 5, 5, 5, 2, 2, 2, 2)); - t->set_icon("increment", "VScrollBar", empty_icon); - t->set_icon("increment_highlight", "VScrollBar", empty_icon); - t->set_icon("decrement", "VScrollBar", empty_icon); - t->set_icon("decrement_highlight", "VScrollBar", empty_icon); + theme->set_icon("increment", "VScrollBar", empty_icon); + theme->set_icon("increment_highlight", "VScrollBar", empty_icon); + theme->set_icon("decrement", "VScrollBar", empty_icon); + theme->set_icon("decrement_highlight", "VScrollBar", empty_icon); // HSlider - t->set_stylebox("slider", "HSlider", make_stylebox(hslider_bg_png, 4, 4, 4, 4)); - t->set_stylebox("grabber_highlight", "HSlider", make_stylebox(hslider_grabber_hl_png, 6, 6, 6, 6)); - t->set_stylebox("grabber_disabled", "HSlider", make_stylebox(hslider_grabber_disabled_png, 6, 6, 6, 6)); - t->set_stylebox("focus", "HSlider", focus); + theme->set_stylebox("slider", "HSlider", make_stylebox(hslider_bg_png, 4, 4, 4, 4)); + theme->set_stylebox("grabber_highlight", "HSlider", make_stylebox(hslider_grabber_hl_png, 6, 6, 6, 6)); + theme->set_stylebox("grabber_disabled", "HSlider", make_stylebox(hslider_grabber_disabled_png, 6, 6, 6, 6)); + theme->set_stylebox("focus", "HSlider", focus); - t->set_icon("grabber", "HSlider", make_icon(hslider_grabber_png)); - t->set_icon("grabber_highlight", "HSlider", make_icon(hslider_grabber_hl_png)); - t->set_icon("grabber_disabled", "HSlider", make_icon(hslider_grabber_disabled_png)); - t->set_icon("tick", "HSlider", make_icon(hslider_tick_png)); + theme->set_icon("grabber", "HSlider", make_icon(hslider_grabber_png)); + theme->set_icon("grabber_highlight", "HSlider", make_icon(hslider_grabber_hl_png)); + theme->set_icon("grabber_disabled", "HSlider", make_icon(hslider_grabber_disabled_png)); + theme->set_icon("tick", "HSlider", make_icon(hslider_tick_png)); // VSlider - t->set_stylebox("slider", "VSlider", make_stylebox(vslider_bg_png, 4, 4, 4, 4)); - t->set_stylebox("grabber_highlight", "VSlider", make_stylebox(vslider_grabber_hl_png, 6, 6, 6, 6)); - t->set_stylebox("grabber_disabled", "VSlider", make_stylebox(vslider_grabber_disabled_png, 6, 6, 6, 6)); - t->set_stylebox("focus", "HSlider", focus); + theme->set_stylebox("slider", "VSlider", make_stylebox(vslider_bg_png, 4, 4, 4, 4)); + theme->set_stylebox("grabber_highlight", "VSlider", make_stylebox(vslider_grabber_hl_png, 6, 6, 6, 6)); + theme->set_stylebox("grabber_disabled", "VSlider", make_stylebox(vslider_grabber_disabled_png, 6, 6, 6, 6)); + theme->set_stylebox("focus", "HSlider", focus); - t->set_icon("grabber", "VSlider", make_icon(vslider_grabber_png)); - t->set_icon("grabber_highlight", "VSlider", make_icon(vslider_grabber_hl_png)); - t->set_icon("grabber_disabled", "VSlider", make_icon(vslider_grabber_disabled_png)); - t->set_icon("tick", "VSlider", make_icon(vslider_tick_png)); + theme->set_icon("grabber", "VSlider", make_icon(vslider_grabber_png)); + theme->set_icon("grabber_highlight", "VSlider", make_icon(vslider_grabber_hl_png)); + theme->set_icon("grabber_disabled", "VSlider", make_icon(vslider_grabber_disabled_png)); + theme->set_icon("tick", "VSlider", make_icon(vslider_tick_png)); // SpinBox - t->set_icon("updown", "SpinBox", make_icon(spinbox_updown_png)); + theme->set_icon("updown", "SpinBox", make_icon(spinbox_updown_png)); // WindowDialog - t->set_stylebox("panel", "WindowDialog", sb_expand(make_stylebox(popup_window_png, 10, 26, 10, 8), 8, 24, 8, 6)); - t->set_constant("scaleborder_size", "WindowDialog", 4 * scale); + theme->set_stylebox("panel", "WindowDialog", sb_expand(make_stylebox(popup_window_png, 10, 26, 10, 8), 8, 24, 8, 6)); + theme->set_constant("scaleborder_size", "WindowDialog", 4 * scale); - t->set_font("title_font", "WindowDialog", large_font); - t->set_color("title_color", "WindowDialog", Color(0, 0, 0)); - t->set_constant("title_height", "WindowDialog", 20 * scale); + theme->set_font("title_font", "WindowDialog", large_font); + theme->set_color("title_color", "WindowDialog", Color(0, 0, 0)); + theme->set_constant("title_height", "WindowDialog", 20 * scale); - t->set_icon("close", "WindowDialog", make_icon(close_png)); - t->set_icon("close_highlight", "WindowDialog", make_icon(close_hl_png)); - t->set_constant("close_h_ofs", "WindowDialog", 18 * scale); - t->set_constant("close_v_ofs", "WindowDialog", 18 * scale); + theme->set_icon("close", "WindowDialog", make_icon(close_png)); + theme->set_icon("close_highlight", "WindowDialog", make_icon(close_hl_png)); + theme->set_constant("close_h_ofs", "WindowDialog", 18 * scale); + theme->set_constant("close_v_ofs", "WindowDialog", 18 * scale); // File Dialog - t->set_icon("reload", "FileDialog", make_icon(icon_reload_png)); + theme->set_icon("reload", "FileDialog", make_icon(icon_reload_png)); // Popup @@ -561,28 +563,28 @@ void fill_default_theme(Ref<Theme> &t, const Ref<Font> &default_font, const Ref< selected->set_expand_margin_size(Margin(i), 2 * scale); } - t->set_stylebox("panel", "PopupPanel", style_pp); + theme->set_stylebox("panel", "PopupPanel", style_pp); // PopupMenu - t->set_stylebox("panel", "PopupMenu", make_stylebox(popup_bg_png, 4, 4, 4, 4, 10, 10, 10, 10)); - t->set_stylebox("panel_disabled", "PopupMenu", make_stylebox(popup_bg_disabled_png, 4, 4, 4, 4)); - t->set_stylebox("hover", "PopupMenu", selected); - t->set_stylebox("separator", "PopupMenu", make_stylebox(vseparator_png, 3, 3, 3, 3)); + theme->set_stylebox("panel", "PopupMenu", make_stylebox(popup_bg_png, 4, 4, 4, 4, 10, 10, 10, 10)); + theme->set_stylebox("panel_disabled", "PopupMenu", make_stylebox(popup_bg_disabled_png, 4, 4, 4, 4)); + theme->set_stylebox("hover", "PopupMenu", selected); + theme->set_stylebox("separator", "PopupMenu", make_stylebox(vseparator_png, 3, 3, 3, 3)); - t->set_icon("checked", "PopupMenu", make_icon(checked_png)); - t->set_icon("unchecked", "PopupMenu", make_icon(unchecked_png)); - t->set_icon("submenu", "PopupMenu", make_icon(submenu_png)); + theme->set_icon("checked", "PopupMenu", make_icon(checked_png)); + theme->set_icon("unchecked", "PopupMenu", make_icon(unchecked_png)); + theme->set_icon("submenu", "PopupMenu", make_icon(submenu_png)); - t->set_font("font", "PopupMenu", default_font); + theme->set_font("font", "PopupMenu", default_font); - t->set_color("font_color", "PopupMenu", control_font_color); - t->set_color("font_color_accel", "PopupMenu", Color(0.7, 0.7, 0.7, 0.8)); - t->set_color("font_color_disabled", "PopupMenu", Color(0.4, 0.4, 0.4, 0.8)); - t->set_color("font_color_hover", "PopupMenu", control_font_color); + theme->set_color("font_color", "PopupMenu", control_font_color); + theme->set_color("font_color_accel", "PopupMenu", Color(0.7, 0.7, 0.7, 0.8)); + theme->set_color("font_color_disabled", "PopupMenu", Color(0.4, 0.4, 0.4, 0.8)); + theme->set_color("font_color_hover", "PopupMenu", control_font_color); - t->set_constant("hseparation", "PopupMenu", 4 * scale); - t->set_constant("vseparation", "PopupMenu", 4 * scale); + theme->set_constant("hseparation", "PopupMenu", 4 * scale); + theme->set_constant("vseparation", "PopupMenu", 4 * scale); // GraphNode @@ -597,90 +599,90 @@ void fill_default_theme(Ref<Theme> &t, const Ref<Font> &default_font, const Ref< //graphsb->set_expand_margin_size(MARGIN_LEFT,10); //graphsb->set_expand_margin_size(MARGIN_RIGHT,10); - t->set_stylebox("frame", "GraphNode", graphsb); - t->set_stylebox("selectedframe", "GraphNode", graphsbselected); - t->set_stylebox("defaultframe", "GraphNode", graphsbdefault); - t->set_stylebox("defaultfocus", "GraphNode", graphsbdeffocus); - t->set_stylebox("comment", "GraphNode", graphsbcomment); - t->set_stylebox("commentfocus", "GraphNode", graphsbcommentselected); - t->set_stylebox("breakpoint", "GraphNode", graph_bpoint); - t->set_stylebox("position", "GraphNode", graph_position); - t->set_constant("separation", "GraphNode", 1 * scale); - t->set_icon("port", "GraphNode", make_icon(graph_port_png)); - t->set_icon("close", "GraphNode", make_icon(graph_node_close_png)); - t->set_icon("resizer", "GraphNode", make_icon(window_resizer_png)); - t->set_font("title_font", "GraphNode", default_font); - t->set_color("title_color", "GraphNode", Color(0, 0, 0, 1)); - t->set_constant("title_offset", "GraphNode", 20 * scale); - t->set_constant("close_offset", "GraphNode", 18 * scale); - t->set_constant("port_offset", "GraphNode", 3 * scale); + theme->set_stylebox("frame", "GraphNode", graphsb); + theme->set_stylebox("selectedframe", "GraphNode", graphsbselected); + theme->set_stylebox("defaultframe", "GraphNode", graphsbdefault); + theme->set_stylebox("defaultfocus", "GraphNode", graphsbdeffocus); + theme->set_stylebox("comment", "GraphNode", graphsbcomment); + theme->set_stylebox("commentfocus", "GraphNode", graphsbcommentselected); + theme->set_stylebox("breakpoint", "GraphNode", graph_bpoint); + theme->set_stylebox("position", "GraphNode", graph_position); + theme->set_constant("separation", "GraphNode", 1 * scale); + theme->set_icon("port", "GraphNode", make_icon(graph_port_png)); + theme->set_icon("close", "GraphNode", make_icon(graph_node_close_png)); + theme->set_icon("resizer", "GraphNode", make_icon(window_resizer_png)); + theme->set_font("title_font", "GraphNode", default_font); + theme->set_color("title_color", "GraphNode", Color(0, 0, 0, 1)); + theme->set_constant("title_offset", "GraphNode", 20 * scale); + theme->set_constant("close_offset", "GraphNode", 18 * scale); + theme->set_constant("port_offset", "GraphNode", 3 * scale); // Tree Ref<StyleBoxTexture> tree_selected = make_stylebox(selection_png, 4, 4, 4, 4, 8, 0, 8, 0); Ref<StyleBoxTexture> tree_selected_oof = make_stylebox(selection_oof_png, 4, 4, 4, 4, 8, 0, 8, 0); - t->set_stylebox("bg", "Tree", make_stylebox(tree_bg_png, 4, 4, 4, 5)); - t->set_stylebox("bg_focus", "Tree", focus); - t->set_stylebox("selected", "Tree", tree_selected_oof); - t->set_stylebox("selected_focus", "Tree", tree_selected); - t->set_stylebox("cursor", "Tree", focus); - t->set_stylebox("cursor_unfocused", "Tree", focus); - t->set_stylebox("button_pressed", "Tree", make_stylebox(button_pressed_png, 4, 4, 4, 4)); - t->set_stylebox("title_button_normal", "Tree", make_stylebox(tree_title_png, 4, 4, 4, 4)); - t->set_stylebox("title_button_pressed", "Tree", make_stylebox(tree_title_pressed_png, 4, 4, 4, 4)); - t->set_stylebox("title_button_hover", "Tree", make_stylebox(tree_title_png, 4, 4, 4, 4)); - t->set_stylebox("custom_button", "Tree", sb_button_normal); - t->set_stylebox("custom_button_pressed", "Tree", sb_button_pressed); - t->set_stylebox("custom_button_hover", "Tree", sb_button_hover); - - t->set_icon("checked", "Tree", make_icon(checked_png)); - t->set_icon("unchecked", "Tree", make_icon(unchecked_png)); - t->set_icon("updown", "Tree", make_icon(updown_png)); - t->set_icon("select_arrow", "Tree", make_icon(dropdown_png)); - t->set_icon("arrow", "Tree", make_icon(arrow_down_png)); - t->set_icon("arrow_collapsed", "Tree", make_icon(arrow_right_png)); - - t->set_font("title_button_font", "Tree", default_font); - t->set_font("font", "Tree", default_font); - - t->set_color("title_button_color", "Tree", control_font_color); - t->set_color("font_color", "Tree", control_font_color_low); - t->set_color("font_color_selected", "Tree", control_font_color_pressed); - t->set_color("selection_color", "Tree", Color(0.1, 0.1, 1, 0.8)); - t->set_color("cursor_color", "Tree", Color(0, 0, 0)); - t->set_color("guide_color", "Tree", Color(0, 0, 0, 0.1)); - t->set_color("drop_position_color", "Tree", Color(1, 0.3, 0.2)); - t->set_color("relationship_line_color", "Tree", Color::html("464646")); - t->set_color("custom_button_font_highlight", "Tree", control_font_color_hover); - - t->set_constant("hseparation", "Tree", 4 * scale); - t->set_constant("vseparation", "Tree", 4 * scale); - t->set_constant("guide_width", "Tree", 2 * scale); - t->set_constant("item_margin", "Tree", 12 * scale); - t->set_constant("button_margin", "Tree", 4 * scale); - t->set_constant("draw_relationship_lines", "Tree", 0); - t->set_constant("scroll_border", "Tree", 4); - t->set_constant("scroll_speed", "Tree", 12); + theme->set_stylebox("bg", "Tree", make_stylebox(tree_bg_png, 4, 4, 4, 5)); + theme->set_stylebox("bg_focus", "Tree", focus); + theme->set_stylebox("selected", "Tree", tree_selected_oof); + theme->set_stylebox("selected_focus", "Tree", tree_selected); + theme->set_stylebox("cursor", "Tree", focus); + theme->set_stylebox("cursor_unfocused", "Tree", focus); + theme->set_stylebox("button_pressed", "Tree", make_stylebox(button_pressed_png, 4, 4, 4, 4)); + theme->set_stylebox("title_button_normal", "Tree", make_stylebox(tree_title_png, 4, 4, 4, 4)); + theme->set_stylebox("title_button_pressed", "Tree", make_stylebox(tree_title_pressed_png, 4, 4, 4, 4)); + theme->set_stylebox("title_button_hover", "Tree", make_stylebox(tree_title_png, 4, 4, 4, 4)); + theme->set_stylebox("custom_button", "Tree", sb_button_normal); + theme->set_stylebox("custom_button_pressed", "Tree", sb_button_pressed); + theme->set_stylebox("custom_button_hover", "Tree", sb_button_hover); + + theme->set_icon("checked", "Tree", make_icon(checked_png)); + theme->set_icon("unchecked", "Tree", make_icon(unchecked_png)); + theme->set_icon("updown", "Tree", make_icon(updown_png)); + theme->set_icon("select_arrow", "Tree", make_icon(dropdown_png)); + theme->set_icon("arrow", "Tree", make_icon(arrow_down_png)); + theme->set_icon("arrow_collapsed", "Tree", make_icon(arrow_right_png)); + + theme->set_font("title_button_font", "Tree", default_font); + theme->set_font("font", "Tree", default_font); + + theme->set_color("title_button_color", "Tree", control_font_color); + theme->set_color("font_color", "Tree", control_font_color_low); + theme->set_color("font_color_selected", "Tree", control_font_color_pressed); + theme->set_color("selection_color", "Tree", Color(0.1, 0.1, 1, 0.8)); + theme->set_color("cursor_color", "Tree", Color(0, 0, 0)); + theme->set_color("guide_color", "Tree", Color(0, 0, 0, 0.1)); + theme->set_color("drop_position_color", "Tree", Color(1, 0.3, 0.2)); + theme->set_color("relationship_line_color", "Tree", Color::html("464646")); + theme->set_color("custom_button_font_highlight", "Tree", control_font_color_hover); + + theme->set_constant("hseparation", "Tree", 4 * scale); + theme->set_constant("vseparation", "Tree", 4 * scale); + theme->set_constant("guide_width", "Tree", 2 * scale); + theme->set_constant("item_margin", "Tree", 12 * scale); + theme->set_constant("button_margin", "Tree", 4 * scale); + theme->set_constant("draw_relationship_lines", "Tree", 0); + theme->set_constant("scroll_border", "Tree", 4); + theme->set_constant("scroll_speed", "Tree", 12); // ItemList Ref<StyleBoxTexture> item_selected = make_stylebox(selection_png, 4, 4, 4, 4, 8, 2, 8, 2); Ref<StyleBoxTexture> item_selected_oof = make_stylebox(selection_oof_png, 4, 4, 4, 4, 8, 2, 8, 2); - t->set_stylebox("bg", "ItemList", make_stylebox(tree_bg_png, 4, 4, 4, 5)); - t->set_stylebox("bg_focus", "ItemList", focus); - t->set_constant("hseparation", "ItemList", 4); - t->set_constant("vseparation", "ItemList", 2); - t->set_constant("icon_margin", "ItemList", 4); - t->set_constant("line_separation", "ItemList", 2 * scale); - t->set_font("font", "ItemList", default_font); - t->set_color("font_color", "ItemList", control_font_color_lower); - t->set_color("font_color_selected", "ItemList", control_font_color_pressed); - t->set_color("guide_color", "ItemList", Color(0, 0, 0, 0.1)); - t->set_stylebox("selected", "ItemList", item_selected_oof); - t->set_stylebox("selected_focus", "ItemList", item_selected); - t->set_stylebox("cursor", "ItemList", focus); - t->set_stylebox("cursor_unfocused", "ItemList", focus); + theme->set_stylebox("bg", "ItemList", make_stylebox(tree_bg_png, 4, 4, 4, 5)); + theme->set_stylebox("bg_focus", "ItemList", focus); + theme->set_constant("hseparation", "ItemList", 4); + theme->set_constant("vseparation", "ItemList", 2); + theme->set_constant("icon_margin", "ItemList", 4); + theme->set_constant("line_separation", "ItemList", 2 * scale); + theme->set_font("font", "ItemList", default_font); + theme->set_color("font_color", "ItemList", control_font_color_lower); + theme->set_color("font_color_selected", "ItemList", control_font_color_pressed); + theme->set_color("guide_color", "ItemList", Color(0, 0, 0, 0.1)); + theme->set_stylebox("selected", "ItemList", item_selected_oof); + theme->set_stylebox("selected_focus", "ItemList", item_selected); + theme->set_stylebox("cursor", "ItemList", focus); + theme->set_stylebox("cursor_unfocused", "ItemList", focus); // TabContainer @@ -689,88 +691,88 @@ void fill_default_theme(Ref<Theme> &t, const Ref<Font> &default_font, const Ref< tc_sb->set_expand_margin_size(MARGIN_TOP, 2 * scale); tc_sb->set_default_margin(MARGIN_TOP, 8 * scale); - t->set_stylebox("tab_fg", "TabContainer", sb_expand(make_stylebox(tab_current_png, 4, 4, 4, 1, 16, 4, 16, 4), 2, 2, 2, 2)); - t->set_stylebox("tab_bg", "TabContainer", sb_expand(make_stylebox(tab_behind_png, 5, 5, 5, 1, 16, 6, 16, 4), 3, 0, 3, 3)); - t->set_stylebox("panel", "TabContainer", tc_sb); + theme->set_stylebox("tab_fg", "TabContainer", sb_expand(make_stylebox(tab_current_png, 4, 4, 4, 1, 16, 4, 16, 4), 2, 2, 2, 2)); + theme->set_stylebox("tab_bg", "TabContainer", sb_expand(make_stylebox(tab_behind_png, 5, 5, 5, 1, 16, 6, 16, 4), 3, 0, 3, 3)); + theme->set_stylebox("panel", "TabContainer", tc_sb); - t->set_icon("increment", "TabContainer", make_icon(scroll_button_right_png)); - t->set_icon("increment_highlight", "TabContainer", make_icon(scroll_button_right_hl_png)); - t->set_icon("decrement", "TabContainer", make_icon(scroll_button_left_png)); - t->set_icon("decrement_highlight", "TabContainer", make_icon(scroll_button_left_hl_png)); - t->set_icon("menu", "TabContainer", make_icon(tab_menu_png)); - t->set_icon("menu_highlight", "TabContainer", make_icon(tab_menu_hl_png)); + theme->set_icon("increment", "TabContainer", make_icon(scroll_button_right_png)); + theme->set_icon("increment_highlight", "TabContainer", make_icon(scroll_button_right_hl_png)); + theme->set_icon("decrement", "TabContainer", make_icon(scroll_button_left_png)); + theme->set_icon("decrement_highlight", "TabContainer", make_icon(scroll_button_left_hl_png)); + theme->set_icon("menu", "TabContainer", make_icon(tab_menu_png)); + theme->set_icon("menu_highlight", "TabContainer", make_icon(tab_menu_hl_png)); - t->set_font("font", "TabContainer", default_font); + theme->set_font("font", "TabContainer", default_font); - t->set_color("font_color_fg", "TabContainer", control_font_color_hover); - t->set_color("font_color_bg", "TabContainer", control_font_color_low); - t->set_color("font_color_disabled", "TabContainer", control_font_color_disabled); + theme->set_color("font_color_fg", "TabContainer", control_font_color_hover); + theme->set_color("font_color_bg", "TabContainer", control_font_color_low); + theme->set_color("font_color_disabled", "TabContainer", control_font_color_disabled); - t->set_constant("side_margin", "TabContainer", 8 * scale); - t->set_constant("top_margin", "TabContainer", 24 * scale); - t->set_constant("label_valign_fg", "TabContainer", 0 * scale); - t->set_constant("label_valign_bg", "TabContainer", 2 * scale); - t->set_constant("hseparation", "TabContainer", 4 * scale); + theme->set_constant("side_margin", "TabContainer", 8 * scale); + theme->set_constant("top_margin", "TabContainer", 24 * scale); + theme->set_constant("label_valign_fg", "TabContainer", 0 * scale); + theme->set_constant("label_valign_bg", "TabContainer", 2 * scale); + theme->set_constant("hseparation", "TabContainer", 4 * scale); // Tabs - t->set_stylebox("tab_fg", "Tabs", sb_expand(make_stylebox(tab_current_png, 4, 3, 4, 1, 16, 3, 16, 2), 2, 2, 2, 2)); - t->set_stylebox("tab_bg", "Tabs", sb_expand(make_stylebox(tab_behind_png, 5, 4, 5, 1, 16, 5, 16, 2), 3, 3, 3, 3)); - t->set_stylebox("panel", "Tabs", tc_sb); - t->set_stylebox("button_pressed", "Tabs", make_stylebox(button_pressed_png, 4, 4, 4, 4)); - t->set_stylebox("button", "Tabs", make_stylebox(button_normal_png, 4, 4, 4, 4)); + theme->set_stylebox("tab_fg", "Tabs", sb_expand(make_stylebox(tab_current_png, 4, 3, 4, 1, 16, 3, 16, 2), 2, 2, 2, 2)); + theme->set_stylebox("tab_bg", "Tabs", sb_expand(make_stylebox(tab_behind_png, 5, 4, 5, 1, 16, 5, 16, 2), 3, 3, 3, 3)); + theme->set_stylebox("panel", "Tabs", tc_sb); + theme->set_stylebox("button_pressed", "Tabs", make_stylebox(button_pressed_png, 4, 4, 4, 4)); + theme->set_stylebox("button", "Tabs", make_stylebox(button_normal_png, 4, 4, 4, 4)); - t->set_icon("increment", "Tabs", make_icon(scroll_button_right_png)); - t->set_icon("increment_highlight", "Tabs", make_icon(scroll_button_right_hl_png)); - t->set_icon("decrement", "Tabs", make_icon(scroll_button_left_png)); - t->set_icon("decrement_highlight", "Tabs", make_icon(scroll_button_left_hl_png)); - t->set_icon("close", "Tabs", make_icon(tab_close_png)); + theme->set_icon("increment", "Tabs", make_icon(scroll_button_right_png)); + theme->set_icon("increment_highlight", "Tabs", make_icon(scroll_button_right_hl_png)); + theme->set_icon("decrement", "Tabs", make_icon(scroll_button_left_png)); + theme->set_icon("decrement_highlight", "Tabs", make_icon(scroll_button_left_hl_png)); + theme->set_icon("close", "Tabs", make_icon(tab_close_png)); - t->set_font("font", "Tabs", default_font); + theme->set_font("font", "Tabs", default_font); - t->set_color("font_color_fg", "Tabs", control_font_color_hover); - t->set_color("font_color_bg", "Tabs", control_font_color_low); - t->set_color("font_color_disabled", "Tabs", control_font_color_disabled); + theme->set_color("font_color_fg", "Tabs", control_font_color_hover); + theme->set_color("font_color_bg", "Tabs", control_font_color_low); + theme->set_color("font_color_disabled", "Tabs", control_font_color_disabled); - t->set_constant("top_margin", "Tabs", 24 * scale); - t->set_constant("label_valign_fg", "Tabs", 0 * scale); - t->set_constant("label_valign_bg", "Tabs", 2 * scale); - t->set_constant("hseparation", "Tabs", 4 * scale); + theme->set_constant("top_margin", "Tabs", 24 * scale); + theme->set_constant("label_valign_fg", "Tabs", 0 * scale); + theme->set_constant("label_valign_bg", "Tabs", 2 * scale); + theme->set_constant("hseparation", "Tabs", 4 * scale); // Separators - t->set_stylebox("separator", "HSeparator", make_stylebox(vseparator_png, 3, 3, 3, 3)); - t->set_stylebox("separator", "VSeparator", make_stylebox(hseparator_png, 3, 3, 3, 3)); + theme->set_stylebox("separator", "HSeparator", make_stylebox(vseparator_png, 3, 3, 3, 3)); + theme->set_stylebox("separator", "VSeparator", make_stylebox(hseparator_png, 3, 3, 3, 3)); - t->set_icon("close", "Icons", make_icon(icon_close_png)); - t->set_font("normal", "Fonts", default_font); - t->set_font("large", "Fonts", large_font); + theme->set_icon("close", "Icons", make_icon(icon_close_png)); + theme->set_font("normal", "Fonts", default_font); + theme->set_font("large", "Fonts", large_font); - t->set_constant("separation", "HSeparator", 4 * scale); - t->set_constant("separation", "VSeparator", 4 * scale); + theme->set_constant("separation", "HSeparator", 4 * scale); + theme->set_constant("separation", "VSeparator", 4 * scale); // Dialogs - t->set_constant("margin", "Dialogs", 8 * scale); - t->set_constant("button_margin", "Dialogs", 32 * scale); + theme->set_constant("margin", "Dialogs", 8 * scale); + theme->set_constant("button_margin", "Dialogs", 32 * scale); // FileDialog - t->set_icon("folder", "FileDialog", make_icon(icon_folder_png)); - t->set_color("files_disabled", "FileDialog", Color(0, 0, 0, 0.7)); + theme->set_icon("folder", "FileDialog", make_icon(icon_folder_png)); + theme->set_color("files_disabled", "FileDialog", Color(0, 0, 0, 0.7)); // colorPicker - t->set_constant("margin", "ColorPicker", 4 * scale); - t->set_constant("sv_width", "ColorPicker", 256 * scale); - t->set_constant("sv_height", "ColorPicker", 256 * scale); - t->set_constant("h_width", "ColorPicker", 30 * scale); - t->set_constant("label_width", "ColorPicker", 10 * scale); + theme->set_constant("margin", "ColorPicker", 4 * scale); + theme->set_constant("sv_width", "ColorPicker", 256 * scale); + theme->set_constant("sv_height", "ColorPicker", 256 * scale); + theme->set_constant("h_width", "ColorPicker", 30 * scale); + theme->set_constant("label_width", "ColorPicker", 10 * scale); - t->set_icon("screen_picker", "ColorPicker", make_icon(icon_color_pick_png)); - t->set_icon("add_preset", "ColorPicker", make_icon(icon_add_png)); - t->set_icon("color_hue", "ColorPicker", make_icon(color_picker_hue_png)); - t->set_icon("color_sample", "ColorPicker", make_icon(color_picker_sample_png)); + theme->set_icon("screen_picker", "ColorPicker", make_icon(icon_color_pick_png)); + theme->set_icon("add_preset", "ColorPicker", make_icon(icon_add_png)); + theme->set_icon("color_hue", "ColorPicker", make_icon(color_picker_hue_png)); + theme->set_icon("color_sample", "ColorPicker", make_icon(color_picker_sample_png)); // TooltipPanel @@ -778,111 +780,111 @@ void fill_default_theme(Ref<Theme> &t, const Ref<Font> &default_font, const Ref< for (int i = 0; i < 4; i++) style_tt->set_expand_margin_size((Margin)i, 4 * scale); - t->set_stylebox("panel", "TooltipPanel", style_tt); + theme->set_stylebox("panel", "TooltipPanel", style_tt); - t->set_font("font", "TooltipLabel", default_font); + theme->set_font("font", "TooltipLabel", default_font); - t->set_color("font_color", "TooltipLabel", Color(0, 0, 0)); - t->set_color("font_color_shadow", "TooltipLabel", Color(0, 0, 0, 0.1)); + theme->set_color("font_color", "TooltipLabel", Color(0, 0, 0)); + theme->set_color("font_color_shadow", "TooltipLabel", Color(0, 0, 0, 0.1)); - t->set_constant("shadow_offset_x", "TooltipLabel", 1); - t->set_constant("shadow_offset_y", "TooltipLabel", 1); + theme->set_constant("shadow_offset_x", "TooltipLabel", 1); + theme->set_constant("shadow_offset_y", "TooltipLabel", 1); // RichTextLabel - t->set_stylebox("focus", "RichTextLabel", focus); + theme->set_stylebox("focus", "RichTextLabel", focus); - t->set_font("normal_font", "RichTextLabel", default_font); - t->set_font("bold_font", "RichTextLabel", default_font); - t->set_font("italics_font", "RichTextLabel", default_font); - t->set_font("bold_italics_font", "RichTextLabel", default_font); - t->set_font("mono_font", "RichTextLabel", default_font); + theme->set_font("normal_font", "RichTextLabel", default_font); + theme->set_font("bold_font", "RichTextLabel", default_font); + theme->set_font("italics_font", "RichTextLabel", default_font); + theme->set_font("bold_italics_font", "RichTextLabel", default_font); + theme->set_font("mono_font", "RichTextLabel", default_font); - t->set_color("default_color", "RichTextLabel", control_font_color); - t->set_color("font_color_selected", "RichTextLabel", font_color_selection); - t->set_color("selection_color", "RichTextLabel", Color(0.1, 0.1, 1, 0.8)); + theme->set_color("default_color", "RichTextLabel", control_font_color); + theme->set_color("font_color_selected", "RichTextLabel", font_color_selection); + theme->set_color("selection_color", "RichTextLabel", Color(0.1, 0.1, 1, 0.8)); - t->set_constant("line_separation", "RichTextLabel", 1 * scale); - t->set_constant("table_hseparation", "RichTextLabel", 3 * scale); - t->set_constant("table_vseparation", "RichTextLabel", 3 * scale); + theme->set_constant("line_separation", "RichTextLabel", 1 * scale); + theme->set_constant("table_hseparation", "RichTextLabel", 3 * scale); + theme->set_constant("table_vseparation", "RichTextLabel", 3 * scale); // Containers - t->set_stylebox("bg", "VSplitContainer", make_stylebox(vsplit_bg_png, 1, 1, 1, 1)); - t->set_stylebox("bg", "HSplitContainer", make_stylebox(hsplit_bg_png, 1, 1, 1, 1)); - - t->set_icon("grabber", "VSplitContainer", make_icon(vsplitter_png)); - t->set_icon("grabber", "HSplitContainer", make_icon(hsplitter_png)); - - t->set_constant("separation", "HBoxContainer", 4 * scale); - t->set_constant("separation", "VBoxContainer", 4 * scale); - t->set_constant("margin_left", "MarginContainer", 8 * scale); - t->set_constant("margin_top", "MarginContainer", 0 * scale); - t->set_constant("margin_right", "MarginContainer", 0 * scale); - t->set_constant("margin_bottom", "MarginContainer", 0 * scale); - t->set_constant("hseparation", "GridContainer", 4 * scale); - t->set_constant("vseparation", "GridContainer", 4 * scale); - t->set_constant("separation", "HSplitContainer", 12 * scale); - t->set_constant("separation", "VSplitContainer", 12 * scale); - t->set_constant("autohide", "HSplitContainer", 1 * scale); - t->set_constant("autohide", "VSplitContainer", 1 * scale); + theme->set_stylebox("bg", "VSplitContainer", make_stylebox(vsplit_bg_png, 1, 1, 1, 1)); + theme->set_stylebox("bg", "HSplitContainer", make_stylebox(hsplit_bg_png, 1, 1, 1, 1)); + + theme->set_icon("grabber", "VSplitContainer", make_icon(vsplitter_png)); + theme->set_icon("grabber", "HSplitContainer", make_icon(hsplitter_png)); + + theme->set_constant("separation", "HBoxContainer", 4 * scale); + theme->set_constant("separation", "VBoxContainer", 4 * scale); + theme->set_constant("margin_left", "MarginContainer", 8 * scale); + theme->set_constant("margin_top", "MarginContainer", 0 * scale); + theme->set_constant("margin_right", "MarginContainer", 0 * scale); + theme->set_constant("margin_bottom", "MarginContainer", 0 * scale); + theme->set_constant("hseparation", "GridContainer", 4 * scale); + theme->set_constant("vseparation", "GridContainer", 4 * scale); + theme->set_constant("separation", "HSplitContainer", 12 * scale); + theme->set_constant("separation", "VSplitContainer", 12 * scale); + theme->set_constant("autohide", "HSplitContainer", 1 * scale); + theme->set_constant("autohide", "VSplitContainer", 1 * scale); // HButtonArray - t->set_stylebox("normal", "HButtonArray", sb_button_normal); - t->set_stylebox("selected", "HButtonArray", sb_button_pressed); - t->set_stylebox("hover", "HButtonArray", sb_button_hover); + theme->set_stylebox("normal", "HButtonArray", sb_button_normal); + theme->set_stylebox("selected", "HButtonArray", sb_button_pressed); + theme->set_stylebox("hover", "HButtonArray", sb_button_hover); - t->set_font("font", "HButtonArray", default_font); - t->set_font("font_selected", "HButtonArray", default_font); + theme->set_font("font", "HButtonArray", default_font); + theme->set_font("font_selected", "HButtonArray", default_font); - t->set_color("font_color", "HButtonArray", control_font_color_low); - t->set_color("font_color_selected", "HButtonArray", control_font_color_hover); + theme->set_color("font_color", "HButtonArray", control_font_color_low); + theme->set_color("font_color_selected", "HButtonArray", control_font_color_hover); - t->set_constant("icon_separator", "HButtonArray", 2 * scale); - t->set_constant("button_separator", "HButtonArray", 4 * scale); + theme->set_constant("icon_separator", "HButtonArray", 2 * scale); + theme->set_constant("button_separator", "HButtonArray", 4 * scale); - t->set_stylebox("focus", "HButtonArray", focus); + theme->set_stylebox("focus", "HButtonArray", focus); // VButtonArray - t->set_stylebox("normal", "VButtonArray", sb_button_normal); - t->set_stylebox("selected", "VButtonArray", sb_button_pressed); - t->set_stylebox("hover", "VButtonArray", sb_button_hover); + theme->set_stylebox("normal", "VButtonArray", sb_button_normal); + theme->set_stylebox("selected", "VButtonArray", sb_button_pressed); + theme->set_stylebox("hover", "VButtonArray", sb_button_hover); - t->set_font("font", "VButtonArray", default_font); - t->set_font("font_selected", "VButtonArray", default_font); + theme->set_font("font", "VButtonArray", default_font); + theme->set_font("font_selected", "VButtonArray", default_font); - t->set_color("font_color", "VButtonArray", control_font_color_low); - t->set_color("font_color_selected", "VButtonArray", control_font_color_hover); + theme->set_color("font_color", "VButtonArray", control_font_color_low); + theme->set_color("font_color_selected", "VButtonArray", control_font_color_hover); - t->set_constant("icon_separator", "VButtonArray", 2 * scale); - t->set_constant("button_separator", "VButtonArray", 4 * scale); + theme->set_constant("icon_separator", "VButtonArray", 2 * scale); + theme->set_constant("button_separator", "VButtonArray", 4 * scale); - t->set_stylebox("focus", "VButtonArray", focus); + theme->set_stylebox("focus", "VButtonArray", focus); // ReferenceRect Ref<StyleBoxTexture> ttnc = make_stylebox(full_panel_bg_png, 8, 8, 8, 8); ttnc->set_draw_center(false); - t->set_stylebox("border", "ReferenceRect", make_stylebox(reference_border_png, 4, 4, 4, 4)); - t->set_stylebox("panelnc", "Panel", ttnc); - t->set_stylebox("panelf", "Panel", tc_sb); + theme->set_stylebox("border", "ReferenceRect", make_stylebox(reference_border_png, 4, 4, 4, 4)); + theme->set_stylebox("panelnc", "Panel", ttnc); + theme->set_stylebox("panelf", "Panel", tc_sb); Ref<StyleBoxTexture> sb_pc = make_stylebox(tab_container_bg_png, 4, 4, 4, 4, 7, 7, 7, 7); - t->set_stylebox("panel", "PanelContainer", sb_pc); - - t->set_icon("minus", "GraphEdit", make_icon(icon_zoom_less_png)); - t->set_icon("reset", "GraphEdit", make_icon(icon_zoom_reset_png)); - t->set_icon("more", "GraphEdit", make_icon(icon_zoom_more_png)); - t->set_icon("snap", "GraphEdit", make_icon(icon_snap_png)); - t->set_stylebox("bg", "GraphEdit", make_stylebox(tree_bg_png, 4, 4, 4, 5)); - t->set_color("grid_minor", "GraphEdit", Color(1, 1, 1, 0.05)); - t->set_color("grid_major", "GraphEdit", Color(1, 1, 1, 0.2)); - t->set_constant("bezier_len_pos", "GraphEdit", 80 * scale); - t->set_constant("bezier_len_neg", "GraphEdit", 160 * scale); - - t->set_icon("logo", "Icons", make_icon(logo_png)); + theme->set_stylebox("panel", "PanelContainer", sb_pc); + + theme->set_icon("minus", "GraphEdit", make_icon(icon_zoom_less_png)); + theme->set_icon("reset", "GraphEdit", make_icon(icon_zoom_reset_png)); + theme->set_icon("more", "GraphEdit", make_icon(icon_zoom_more_png)); + theme->set_icon("snap", "GraphEdit", make_icon(icon_snap_png)); + theme->set_stylebox("bg", "GraphEdit", make_stylebox(tree_bg_png, 4, 4, 4, 5)); + theme->set_color("grid_minor", "GraphEdit", Color(1, 1, 1, 0.05)); + theme->set_color("grid_major", "GraphEdit", Color(1, 1, 1, 0.2)); + theme->set_constant("bezier_len_pos", "GraphEdit", 80 * scale); + theme->set_constant("bezier_len_neg", "GraphEdit", 160 * scale); + + theme->set_icon("logo", "Icons", make_icon(logo_png)); // Theme diff --git a/scene/resources/default_theme/scroll_grabber_pressed.png b/scene/resources/default_theme/scroll_grabber_pressed.png Binary files differnew file mode 100644 index 0000000000..a46d242ddd --- /dev/null +++ b/scene/resources/default_theme/scroll_grabber_pressed.png diff --git a/scene/resources/default_theme/theme_data.h b/scene/resources/default_theme/theme_data.h index 70a8ad12cb..bed4bdb760 100644 --- a/scene/resources/default_theme/theme_data.h +++ b/scene/resources/default_theme/theme_data.h @@ -334,6 +334,10 @@ static const unsigned char scroll_grabber_hl_png[] = { 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc, 0x8, 0x3, 0x0, 0x0, 0x0, 0x61, 0xab, 0xac, 0xd5, 0x0, 0x0, 0x0, 0x4, 0x67, 0x41, 0x4d, 0x41, 0x0, 0x0, 0xb1, 0x8f, 0xb, 0xfc, 0x61, 0x5, 0x0, 0x0, 0x0, 0x20, 0x63, 0x48, 0x52, 0x4d, 0x0, 0x0, 0x7a, 0x26, 0x0, 0x0, 0x80, 0x84, 0x0, 0x0, 0xfa, 0x0, 0x0, 0x0, 0x80, 0xe8, 0x0, 0x0, 0x75, 0x30, 0x0, 0x0, 0xea, 0x60, 0x0, 0x0, 0x3a, 0x98, 0x0, 0x0, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x0, 0x0, 0x0, 0x6c, 0x50, 0x4c, 0x54, 0x45, 0x0, 0x0, 0x0, 0x97, 0xd0, 0xdf, 0x92, 0xcb, 0xdc, 0x84, 0xbb, 0xd4, 0x92, 0xca, 0xdc, 0x95, 0xd0, 0xdd, 0x83, 0xbb, 0xd3, 0x8b, 0xc8, 0xd7, 0x79, 0xb5, 0xcb, 0x78, 0xb4, 0xca, 0x73, 0xb0, 0xc7, 0x73, 0xb0, 0xc7, 0x7b, 0xc0, 0xcf, 0x79, 0xc5, 0xd1, 0x6b, 0xae, 0xc1, 0x75, 0xc6, 0xcf, 0x70, 0xbc, 0xca, 0x64, 0xa6, 0xbc, 0x71, 0xbc, 0xc9, 0x82, 0xba, 0xd4, 0x6a, 0xa2, 0xc6, 0x62, 0x9a, 0xc2, 0x61, 0x9a, 0xc1, 0x68, 0x9f, 0xc2, 0x5d, 0x92, 0xbb, 0x5c, 0x92, 0xb8, 0x58, 0x8d, 0xb6, 0x59, 0x8e, 0xb3, 0x56, 0x89, 0xb0, 0x5c, 0x91, 0xb2, 0x53, 0x84, 0xa9, 0x58, 0x8f, 0xae, 0x54, 0x83, 0xa4, 0x57, 0x8e, 0xad, 0x64, 0xa5, 0xba, 0xff, 0xff, 0xff, 0xbb, 0x65, 0x65, 0x27, 0x0, 0x0, 0x0, 0x13, 0x74, 0x52, 0x4e, 0x53, 0x0, 0x25, 0xad, 0xf1, 0xad, 0x27, 0xef, 0xad, 0xf1, 0xf3, 0xf1, 0xf3, 0xad, 0x28, 0xef, 0x27, 0xad, 0xf2, 0xad, 0xcd, 0x8a, 0x27, 0xfe, 0x0, 0x0, 0x0, 0x1, 0x62, 0x4b, 0x47, 0x44, 0x23, 0x2a, 0x62, 0x6c, 0x3a, 0x0, 0x0, 0x0, 0x9, 0x70, 0x48, 0x59, 0x73, 0x0, 0x0, 0xb, 0x13, 0x0, 0x0, 0xb, 0x13, 0x1, 0x0, 0x9a, 0x9c, 0x18, 0x0, 0x0, 0x0, 0x7, 0x74, 0x49, 0x4d, 0x45, 0x7, 0xe0, 0x6, 0x16, 0x12, 0x2b, 0x5, 0x39, 0x1a, 0x32, 0x39, 0x0, 0x0, 0x0, 0x50, 0x49, 0x44, 0x41, 0x54, 0x8, 0xd7, 0x63, 0x60, 0xc0, 0x7, 0x18, 0x99, 0x98, 0x85, 0x59, 0x18, 0x21, 0x6c, 0x56, 0x36, 0x11, 0x51, 0x31, 0x11, 0x36, 0x56, 0x30, 0x87, 0x5d, 0x5c, 0x2, 0x8, 0xc4, 0xd9, 0xc1, 0x1c, 0xe, 0x49, 0x29, 0x20, 0x90, 0xe4, 0x4, 0x73, 0xb8, 0xa4, 0x65, 0x80, 0x40, 0x9a, 0x1b, 0xcc, 0xe1, 0x91, 0x95, 0x3, 0x2, 0x59, 0x1e, 0x30, 0x87, 0x97, 0x4f, 0x5e, 0x41, 0x41, 0x91, 0x8f, 0x17, 0x62, 0x1c, 0xbf, 0x80, 0xa0, 0x92, 0x10, 0x3f, 0x5e, 0xdb, 0x1, 0x41, 0x87, 0x4, 0x7d, 0x15, 0xc4, 0xfd, 0x6a, 0x0, 0x0, 0x0, 0x19, 0x74, 0x45, 0x58, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x0, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x47, 0x49, 0x4d, 0x50, 0x57, 0x81, 0xe, 0x17, 0x0, 0x0, 0x0, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x0, 0x32, 0x30, 0x31, 0x36, 0x2d, 0x30, 0x36, 0x2d, 0x32, 0x32, 0x54, 0x32, 0x30, 0x3a, 0x33, 0x39, 0x3a, 0x32, 0x36, 0x2b, 0x30, 0x32, 0x3a, 0x30, 0x30, 0xc9, 0xad, 0xc8, 0x52, 0x0, 0x0, 0x0, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x0, 0x32, 0x30, 0x31, 0x36, 0x2d, 0x30, 0x36, 0x2d, 0x32, 0x32, 0x54, 0x32, 0x30, 0x3a, 0x33, 0x39, 0x3a, 0x32, 0x36, 0x2b, 0x30, 0x32, 0x3a, 0x30, 0x30, 0xb8, 0xf0, 0x70, 0xee, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; +static const unsigned char scroll_grabber_pressed_png[] = { + 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc, 0x8, 0x6, 0x0, 0x0, 0x0, 0x56, 0x75, 0x5c, 0xe7, 0x0, 0x0, 0x0, 0x4, 0x73, 0x42, 0x49, 0x54, 0x8, 0x8, 0x8, 0x8, 0x7c, 0x8, 0x64, 0x88, 0x0, 0x0, 0x0, 0x9, 0x70, 0x48, 0x59, 0x73, 0x0, 0x0, 0xd, 0xd7, 0x0, 0x0, 0xd, 0xd7, 0x1, 0x42, 0x28, 0x9b, 0x78, 0x0, 0x0, 0x0, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x0, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x6e, 0x6b, 0x73, 0x63, 0x61, 0x70, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x9b, 0xee, 0x3c, 0x1a, 0x0, 0x0, 0x0, 0x66, 0x49, 0x44, 0x41, 0x54, 0x28, 0x91, 0xcd, 0x91, 0xb1, 0xa, 0xc0, 0x20, 0x10, 0x43, 0x63, 0x71, 0xbf, 0x5f, 0x12, 0x9c, 0xfd, 0x1a, 0x3f, 0xcd, 0xa9, 0x83, 0xe0, 0x2f, 0x65, 0x2f, 0x9c, 0x8b, 0x83, 0x47, 0xed, 0x60, 0xbb, 0x34, 0xdb, 0x3d, 0x12, 0x48, 0x38, 0xa7, 0xaa, 0xd8, 0xd1, 0xb1, 0xe5, 0x7e, 0x13, 0xf0, 0xf3, 0xd1, 0x5a, 0xf3, 0x24, 0x23, 0x80, 0x34, 0x50, 0x11, 0x91, 0x1a, 0x42, 0xb8, 0x96, 0x1, 0x92, 0x51, 0x55, 0xf3, 0x84, 0x32, 0x49, 0x0, 0x38, 0x9f, 0x2a, 0x25, 0xdc, 0x65, 0xd8, 0xe7, 0xd1, 0x65, 0xe1, 0x31, 0xcc, 0x6c, 0x10, 0x91, 0x3a, 0x3a, 0x9b, 0xd1, 0xb3, 0xc7, 0xfd, 0xef, 0x71, 0x1d, 0x42, 0xe6, 0x21, 0x43, 0xf5, 0x2b, 0xd8, 0x6c, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 +}; + static const unsigned char selection_png[] = { 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, 0x0, 0x0, 0x0, 0xd, 0x49, 0x48, 0x44, 0x52, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x4, 0x3, 0x0, 0x0, 0x0, 0xed, 0xdd, 0xe2, 0x52, 0x0, 0x0, 0x0, 0x4, 0x67, 0x41, 0x4d, 0x41, 0x0, 0x0, 0xb1, 0x8f, 0xb, 0xfc, 0x61, 0x5, 0x0, 0x0, 0x0, 0x20, 0x63, 0x48, 0x52, 0x4d, 0x0, 0x0, 0x7a, 0x26, 0x0, 0x0, 0x80, 0x84, 0x0, 0x0, 0xfa, 0x0, 0x0, 0x0, 0x80, 0xe8, 0x0, 0x0, 0x75, 0x30, 0x0, 0x0, 0xea, 0x60, 0x0, 0x0, 0x3a, 0x98, 0x0, 0x0, 0x17, 0x70, 0x9c, 0xba, 0x51, 0x3c, 0x0, 0x0, 0x0, 0x2d, 0x50, 0x4c, 0x54, 0x45, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfd, 0xfb, 0xff, 0xfd, 0xf7, 0xff, 0xfd, 0xf7, 0xff, 0xfd, 0xf7, 0xff, 0xfd, 0xf6, 0xff, 0xf6, 0xf4, 0xff, 0x15, 0x15, 0x17, 0xff, 0x70, 0xc0, 0x21, 0x0, 0x0, 0x0, 0xe, 0x74, 0x52, 0x4e, 0x53, 0x6, 0xf, 0x16, 0x18, 0x2a, 0x3b, 0x40, 0x3c, 0x6, 0x3d, 0x44, 0x3e, 0x31, 0x25, 0x8, 0x3d, 0x16, 0xb4, 0x0, 0x0, 0x0, 0x1, 0x62, 0x4b, 0x47, 0x44, 0xe, 0x6f, 0xbd, 0x30, 0x4f, 0x0, 0x0, 0x0, 0x9, 0x70, 0x48, 0x59, 0x73, 0x0, 0x0, 0xb, 0x13, 0x0, 0x0, 0xb, 0x13, 0x1, 0x0, 0x9a, 0x9c, 0x18, 0x0, 0x0, 0x0, 0x7, 0x74, 0x49, 0x4d, 0x45, 0x7, 0xe0, 0x6, 0x16, 0x12, 0x2b, 0x5, 0x39, 0x1a, 0x32, 0x39, 0x0, 0x0, 0x0, 0x37, 0x49, 0x44, 0x41, 0x54, 0x8, 0xd7, 0x63, 0x60, 0x54, 0x36, 0x6, 0x2, 0x23, 0x1, 0x6, 0x91, 0xb0, 0x34, 0x20, 0x48, 0x75, 0x64, 0x50, 0xef, 0x5c, 0x5, 0x4, 0x33, 0x8a, 0x18, 0xcc, 0xf6, 0xdc, 0x5, 0x82, 0xd3, 0xc9, 0xc, 0x66, 0x6b, 0x41, 0x8c, 0x5b, 0x94, 0x33, 0x60, 0x6, 0xc2, 0xad, 0x80, 0x5b, 0xa, 0x73, 0x6, 0x0, 0x45, 0x34, 0x48, 0x41, 0xa3, 0xc5, 0x91, 0x23, 0x0, 0x0, 0x0, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x0, 0x32, 0x30, 0x31, 0x36, 0x2d, 0x30, 0x36, 0x2d, 0x32, 0x32, 0x54, 0x32, 0x30, 0x3a, 0x33, 0x39, 0x3a, 0x32, 0x36, 0x2b, 0x30, 0x32, 0x3a, 0x30, 0x30, 0xc9, 0xad, 0xc8, 0x52, 0x0, 0x0, 0x0, 0x25, 0x74, 0x45, 0x58, 0x74, 0x64, 0x61, 0x74, 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x0, 0x32, 0x30, 0x31, 0x36, 0x2d, 0x30, 0x36, 0x2d, 0x32, 0x32, 0x54, 0x32, 0x30, 0x3a, 0x33, 0x39, 0x3a, 0x32, 0x36, 0x2b, 0x30, 0x32, 0x3a, 0x30, 0x30, 0xb8, 0xf0, 0x70, 0xee, 0x0, 0x0, 0x0, 0x0, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; diff --git a/scene/resources/dynamic_font.cpp b/scene/resources/dynamic_font.cpp index 23bf6be68c..fc0d80a9b7 100644 --- a/scene/resources/dynamic_font.cpp +++ b/scene/resources/dynamic_font.cpp @@ -43,10 +43,10 @@ bool DynamicFontData::CacheID::operator<(CacheID right) const { return false; } -Ref<DynamicFontAtSize> DynamicFontData::_get_dynamic_font_at_size(CacheID p_id) { +Ref<DynamicFontAtSize> DynamicFontData::_get_dynamic_font_at_size(CacheID p_cache_id) { - if (size_cache.has(p_id)) { - return Ref<DynamicFontAtSize>(size_cache[p_id]); + if (size_cache.has(p_cache_id)) { + return Ref<DynamicFontAtSize>(size_cache[p_cache_id]); } Ref<DynamicFontAtSize> dfas; @@ -55,8 +55,8 @@ Ref<DynamicFontAtSize> DynamicFontData::_get_dynamic_font_at_size(CacheID p_id) dfas->font = Ref<DynamicFontData>(this); - size_cache[p_id] = dfas.ptr(); - dfas->id = p_id; + size_cache[p_cache_id] = dfas.ptr(); + dfas->id = p_cache_id; dfas->_load(); return dfas; diff --git a/scene/resources/dynamic_font.h b/scene/resources/dynamic_font.h index 7c94def5aa..9024761b96 100644 --- a/scene/resources/dynamic_font.h +++ b/scene/resources/dynamic_font.h @@ -72,7 +72,7 @@ private: friend class DynamicFont; - Ref<DynamicFontAtSize> _get_dynamic_font_at_size(CacheID p_cache); + Ref<DynamicFontAtSize> _get_dynamic_font_at_size(CacheID p_cache_id); protected: static void _bind_methods(); diff --git a/scene/resources/environment.cpp b/scene/resources/environment.cpp index c121dae1f1..0bf6a50d93 100644 --- a/scene/resources/environment.cpp +++ b/scene/resources/environment.cpp @@ -1135,6 +1135,8 @@ void Environment::_bind_methods() { Environment::Environment() { + environment = VS::get_singleton()->environment_create(); + bg_mode = BG_CLEAR_COLOR; bg_sky_scale = 1.0; bg_energy = 1.0; @@ -1160,8 +1162,6 @@ Environment::Environment() { set_adjustment_enable(adjustment_enabled); //update - environment = VS::get_singleton()->environment_create(); - ssr_enabled = false; ssr_max_steps = 64; ssr_fade_in = 0.15; diff --git a/scene/resources/environment.h b/scene/resources/environment.h index a7c0e2a03d..3a6906aa27 100644 --- a/scene/resources/environment.h +++ b/scene/resources/environment.h @@ -224,10 +224,10 @@ public: void set_ssr_max_steps(int p_steps); int get_ssr_max_steps() const; - void set_ssr_fade_in(float p_transition); + void set_ssr_fade_in(float p_fade_in); float get_ssr_fade_in() const; - void set_ssr_fade_out(float p_transition); + void set_ssr_fade_out(float p_fade_out); float get_ssr_fade_out() const; void set_ssr_depth_tolerance(float p_depth_tolerance); diff --git a/scene/resources/font.cpp b/scene/resources/font.cpp index d1431176d6..035e514eac 100644 --- a/scene/resources/font.cpp +++ b/scene/resources/font.cpp @@ -179,14 +179,14 @@ Vector<Variant> BitmapFont::_get_textures() const { return rtextures; } -Error BitmapFont::create_from_fnt(const String &p_string) { +Error BitmapFont::create_from_fnt(const String &p_file) { //fnt format used by angelcode bmfont //http://www.angelcode.com/products/bmfont/ - FileAccess *f = FileAccess::open(p_string, FileAccess::READ); + FileAccess *f = FileAccess::open(p_file, FileAccess::READ); if (!f) { - ERR_EXPLAIN("Can't open font: " + p_string); + ERR_EXPLAIN("Can't open font: " + p_file); ERR_FAIL_V(ERR_FILE_NOT_FOUND); } @@ -255,7 +255,7 @@ Error BitmapFont::create_from_fnt(const String &p_string) { if (keys.has("file")) { String file = keys["file"]; - file = p_string.get_base_dir() + "/" + file; + file = p_file.get_base_dir() + "/" + file; Ref<Texture> tex = ResourceLoader::load(file); if (tex.is_null()) { ERR_PRINT("Can't load font texture!"); diff --git a/scene/resources/material.h b/scene/resources/material.h index 25628e272a..140b2142c9 100644 --- a/scene/resources/material.h +++ b/scene/resources/material.h @@ -431,7 +431,7 @@ public: void set_depth_deep_parallax_max_layers(int p_layer); int get_depth_deep_parallax_max_layers() const; - void set_subsurface_scattering_strength(float p_strength); + void set_subsurface_scattering_strength(float p_subsurface_scattering_strength); float get_subsurface_scattering_strength() const; void set_refraction(float p_refraction); diff --git a/scene/resources/mesh.h b/scene/resources/mesh.h index e40ef99237..ad3c10b6bc 100644 --- a/scene/resources/mesh.h +++ b/scene/resources/mesh.h @@ -187,7 +187,7 @@ public: int get_surface_count() const; void surface_remove(int p_idx); - void surface_set_custom_aabb(int p_surface, const Rect3 &p_aabb); //only recognized by driver + void surface_set_custom_aabb(int p_idx, const Rect3 &p_aabb); //only recognized by driver int surface_get_array_len(int p_idx) const; int surface_get_array_index_len(int p_idx) const; diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp index ce1d6f311f..169c956546 100644 --- a/scene/resources/packed_scene.cpp +++ b/scene/resources/packed_scene.cpp @@ -1127,26 +1127,26 @@ bool SceneState::is_connection(int p_node, const StringName &p_signal, int p_to_ return false; } -void SceneState::set_bundled_scene(const Dictionary &d) { +void SceneState::set_bundled_scene(const Dictionary &p_dictionary) { - ERR_FAIL_COND(!d.has("names")); - ERR_FAIL_COND(!d.has("variants")); - ERR_FAIL_COND(!d.has("node_count")); - ERR_FAIL_COND(!d.has("nodes")); - ERR_FAIL_COND(!d.has("conn_count")); - ERR_FAIL_COND(!d.has("conns")); - //ERR_FAIL_COND( !d.has("path")); + ERR_FAIL_COND(!p_dictionary.has("names")); + ERR_FAIL_COND(!p_dictionary.has("variants")); + ERR_FAIL_COND(!p_dictionary.has("node_count")); + ERR_FAIL_COND(!p_dictionary.has("nodes")); + ERR_FAIL_COND(!p_dictionary.has("conn_count")); + ERR_FAIL_COND(!p_dictionary.has("conns")); + //ERR_FAIL_COND( !p_dictionary.has("path")); int version = 1; - if (d.has("version")) - version = d["version"]; + if (p_dictionary.has("version")) + version = p_dictionary["version"]; if (version > PACK_VERSION) { ERR_EXPLAIN("Save format version too new!"); ERR_FAIL(); } - PoolVector<String> snames = d["names"]; + PoolVector<String> snames = p_dictionary["names"]; if (snames.size()) { int namecount = snames.size(); @@ -1156,7 +1156,7 @@ void SceneState::set_bundled_scene(const Dictionary &d) { names[i] = r[i]; } - Array svariants = d["variants"]; + Array svariants = p_dictionary["variants"]; if (svariants.size()) { int varcount = svariants.size(); @@ -1170,10 +1170,10 @@ void SceneState::set_bundled_scene(const Dictionary &d) { variants.clear(); } - nodes.resize(d["node_count"]); + nodes.resize(p_dictionary["node_count"]); int nc = nodes.size(); if (nc) { - PoolVector<int> snodes = d["nodes"]; + PoolVector<int> snodes = p_dictionary["nodes"]; PoolVector<int>::Read r = snodes.read(); int idx = 0; for (int i = 0; i < nc; i++) { @@ -1197,12 +1197,12 @@ void SceneState::set_bundled_scene(const Dictionary &d) { } } - connections.resize(d["conn_count"]); + connections.resize(p_dictionary["conn_count"]); int cc = connections.size(); if (cc) { - PoolVector<int> sconns = d["conns"]; + PoolVector<int> sconns = p_dictionary["conns"]; PoolVector<int>::Read r = sconns.read(); int idx = 0; for (int i = 0; i < cc; i++) { @@ -1222,8 +1222,8 @@ void SceneState::set_bundled_scene(const Dictionary &d) { } Array np; - if (d.has("node_paths")) { - np = d["node_paths"]; + if (p_dictionary.has("node_paths")) { + np = p_dictionary["node_paths"]; } node_paths.resize(np.size()); for (int i = 0; i < np.size(); i++) { @@ -1231,12 +1231,12 @@ void SceneState::set_bundled_scene(const Dictionary &d) { } Array ei; - if (d.has("editable_instances")) { - ei = d["editable_instances"]; + if (p_dictionary.has("editable_instances")) { + ei = p_dictionary["editable_instances"]; } - if (d.has("base_scene")) { - base_scene_idx = d["base_scene"]; + if (p_dictionary.has("base_scene")) { + base_scene_idx = p_dictionary["base_scene"]; } editable_instances.resize(ei.size()); @@ -1244,7 +1244,7 @@ void SceneState::set_bundled_scene(const Dictionary &d) { editable_instances[i] = ei[i]; } - //path=d["path"]; + //path=p_dictionary["path"]; } Dictionary SceneState::get_bundled_scene() const { @@ -1696,9 +1696,9 @@ SceneState::SceneState() { //////////////// -void PackedScene::_set_bundled_scene(const Dictionary &d) { +void PackedScene::_set_bundled_scene(const Dictionary &p_scene) { - state->set_bundled_scene(d); + state->set_bundled_scene(p_scene); } Dictionary PackedScene::_get_bundled_scene() const { diff --git a/scene/resources/primitive_meshes.cpp b/scene/resources/primitive_meshes.cpp index 065e7a84dd..6a3ddde02a 100644 --- a/scene/resources/primitive_meshes.cpp +++ b/scene/resources/primitive_meshes.cpp @@ -618,8 +618,8 @@ Vector3 CubeMesh::get_size() const { return size; } -void CubeMesh::set_subdivide_width(const int p_subdivide) { - subdivide_w = p_subdivide > 0 ? p_subdivide : 0; +void CubeMesh::set_subdivide_width(const int p_divisions) { + subdivide_w = p_divisions > 0 ? p_divisions : 0; _request_update(); } @@ -627,8 +627,8 @@ int CubeMesh::get_subdivide_width() const { return subdivide_w; } -void CubeMesh::set_subdivide_height(const int p_subdivide) { - subdivide_h = p_subdivide > 0 ? p_subdivide : 0; +void CubeMesh::set_subdivide_height(const int p_divisions) { + subdivide_h = p_divisions > 0 ? p_divisions : 0; _request_update(); } @@ -636,8 +636,8 @@ int CubeMesh::get_subdivide_height() const { return subdivide_h; } -void CubeMesh::set_subdivide_depth(const int p_subdivide) { - subdivide_d = p_subdivide > 0 ? p_subdivide : 0; +void CubeMesh::set_subdivide_depth(const int p_divisions) { + subdivide_d = p_divisions > 0 ? p_divisions : 0; _request_update(); } @@ -957,8 +957,8 @@ Size2 PlaneMesh::get_size() const { return size; } -void PlaneMesh::set_subdivide_width(const int p_subdivide) { - subdivide_w = p_subdivide > 0 ? p_subdivide : 0; +void PlaneMesh::set_subdivide_width(const int p_divisions) { + subdivide_w = p_divisions > 0 ? p_divisions : 0; _request_update(); } @@ -966,8 +966,8 @@ int PlaneMesh::get_subdivide_width() const { return subdivide_w; } -void PlaneMesh::set_subdivide_depth(const int p_subdivide) { - subdivide_d = p_subdivide > 0 ? p_subdivide : 0; +void PlaneMesh::set_subdivide_depth(const int p_divisions) { + subdivide_d = p_divisions > 0 ? p_divisions : 0; _request_update(); } diff --git a/scene/resources/room.h b/scene/resources/room.h index 1bcdec5eb0..ba5c0eee1c 100644 --- a/scene/resources/room.h +++ b/scene/resources/room.h @@ -50,7 +50,7 @@ protected: public: virtual RID get_rid() const; - void set_geometry_hint(const PoolVector<Face3> &geometry_hint); + void set_geometry_hint(const PoolVector<Face3> &p_geometry_hint); PoolVector<Face3> get_geometry_hint() const; RoomBounds(); diff --git a/scene/resources/scene_format_text.cpp b/scene/resources/scene_format_text.cpp index 03a862b744..49cd030a9a 100644 --- a/scene/resources/scene_format_text.cpp +++ b/scene/resources/scene_format_text.cpp @@ -621,9 +621,9 @@ ResourceInteractiveLoaderText::~ResourceInteractiveLoaderText() { memdelete(f); } -void ResourceInteractiveLoaderText::get_dependencies(FileAccess *f, List<String> *p_dependencies, bool p_add_types) { +void ResourceInteractiveLoaderText::get_dependencies(FileAccess *p_f, List<String> *p_dependencies, bool p_add_types) { - open(f); + open(p_f); ignore_resource_parsing = true; ERR_FAIL_COND(error != OK); diff --git a/scene/resources/shape_2d.h b/scene/resources/shape_2d.h index a752b8dbe2..c020fb9141 100644 --- a/scene/resources/shape_2d.h +++ b/scene/resources/shape_2d.h @@ -47,10 +47,10 @@ public: void set_custom_solver_bias(real_t p_bias); real_t get_custom_solver_bias() const; - bool collide_with_motion(const Transform2D &p_local_xform, const Vector2 &p_local_motion, const Ref<Shape2D> &p_shape, const Transform2D &p_shape_xform, const Vector2 &p_p_shape_motion); + bool collide_with_motion(const Transform2D &p_local_xform, const Vector2 &p_local_motion, const Ref<Shape2D> &p_shape, const Transform2D &p_shape_xform, const Vector2 &p_shape_motion); bool collide(const Transform2D &p_local_xform, const Ref<Shape2D> &p_shape, const Transform2D &p_shape_xform); - Variant collide_with_motion_and_get_contacts(const Transform2D &p_local_xform, const Vector2 &p_local_motion, const Ref<Shape2D> &p_shape, const Transform2D &p_shape_xform, const Vector2 &p_p_shape_motion); + Variant collide_with_motion_and_get_contacts(const Transform2D &p_local_xform, const Vector2 &p_local_motion, const Ref<Shape2D> &p_shape, const Transform2D &p_shape_xform, const Vector2 &p_shape_motion); Variant collide_and_get_contacts(const Transform2D &p_local_xform, const Ref<Shape2D> &p_shape, const Transform2D &p_shape_xform); virtual void draw(const RID &p_to_rid, const Color &p_color) {} diff --git a/scene/resources/style_box.cpp b/scene/resources/style_box.cpp index 1de5b0be2f..48efa242e9 100644 --- a/scene/resources/style_box.cpp +++ b/scene/resources/style_box.cpp @@ -28,6 +28,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "style_box.h" +#include <limits.h> bool StyleBox::test_mask(const Point2 &p_point, const Rect2 &p_rect) const { @@ -323,156 +324,507 @@ void StyleBoxFlat::set_bg_color(const Color &p_color) { emit_changed(); } -void StyleBoxFlat::set_light_color(const Color &p_color) { +Color StyleBoxFlat::get_bg_color() const { + + return bg_color; +} - light_color = p_color; +void StyleBoxFlat::set_border_color_all(const Color &p_color) { + for (int i = 0; i < 4; i++) { + + border_color.write()[i] = p_color; + } emit_changed(); } -void StyleBoxFlat::set_dark_color(const Color &p_color) { +Color StyleBoxFlat::get_border_color_all() const { - dark_color = p_color; + return border_color[MARGIN_TOP]; +} +void StyleBoxFlat::set_border_color(Margin p_border, const Color &p_color) { + + border_color.write()[p_border] = p_color; emit_changed(); } +Color StyleBoxFlat::get_border_color(Margin p_border) const { -Color StyleBoxFlat::get_bg_color() const { + return border_color[p_border]; +} - return bg_color; +void StyleBoxFlat::set_border_width_all(int p_size) { + border_width[0] = p_size; + border_width[1] = p_size; + border_width[2] = p_size; + border_width[3] = p_size; + emit_changed(); +} +int StyleBoxFlat::get_border_width_min() const { + + return MIN(MIN(border_width[0], border_width[1]), MIN(border_width[2], border_width[3])); } -Color StyleBoxFlat::get_light_color() const { - return light_color; +void StyleBoxFlat::set_border_width(Margin p_margin, int p_width) { + border_width[p_margin] = p_width; + emit_changed(); } -Color StyleBoxFlat::get_dark_color() const { - return dark_color; +int StyleBoxFlat::get_border_width(Margin p_margin) const { + return border_width[p_margin]; } -void StyleBoxFlat::set_border_size(int p_size) { +void StyleBoxFlat::set_border_blend(bool p_blend) { - border_size = p_size; + blend_border = p_blend; emit_changed(); } -int StyleBoxFlat::get_border_size() const { +bool StyleBoxFlat::get_border_blend() const { - return border_size; + return blend_border; } -void StyleBoxFlat::_set_additional_border_size(Margin p_margin, int p_size) { - additional_border_size[p_margin] = p_size; +void StyleBoxFlat::set_corner_radius_all(int radius) { + + for (int i = 0; i < 4; i++) { + corner_radius[i] = radius; + } + emit_changed(); } +void StyleBoxFlat::set_corner_radius_individual(const int radius_top_left, const int radius_top_right, const int radius_botton_right, const int radius_bottom_left) { + corner_radius[0] = radius_top_left; + corner_radius[1] = radius_top_right; + corner_radius[2] = radius_botton_right; + corner_radius[3] = radius_bottom_left; -int StyleBoxFlat::_get_additional_border_size(Margin p_margin) const { - return additional_border_size[p_margin]; + emit_changed(); +} +int StyleBoxFlat::get_corner_radius_min() const { + int smallest = corner_radius[0]; + for (int i = 1; i < 4; i++) { + if (smallest > corner_radius[i]) { + smallest = corner_radius[i]; + } + } + return smallest; } -void StyleBoxFlat::set_border_blend(bool p_blend) { +void StyleBoxFlat::set_corner_radius(const Corner p_corner, const int radius) { - blend = p_blend; + corner_radius[p_corner] = radius; emit_changed(); } +int StyleBoxFlat::get_corner_radius(const Corner p_corner) const { + return corner_radius[p_corner]; +} -bool StyleBoxFlat::get_border_blend() const { +void StyleBoxFlat::set_expand_margin_size(Margin p_expand_margin, float p_size) { + + expand_margin[p_expand_margin] = p_size; + emit_changed(); +} +float StyleBoxFlat::get_expand_margin_size(Margin p_expand_margin) const { + return expand_margin[p_expand_margin]; +} +void StyleBoxFlat::set_filled(bool p_filled) { - return blend; + filled = p_filled; + emit_changed(); } +bool StyleBoxFlat::is_filled() const { -void StyleBoxFlat::set_draw_center(bool p_draw) { + return filled; +} - draw_center = p_draw; +void StyleBoxFlat::set_shadow_color(const Color &p_color) { + + shadow_color = p_color; emit_changed(); } -bool StyleBoxFlat::get_draw_center() const { +Color StyleBoxFlat::get_shadow_color() const { - return draw_center; + return shadow_color; +} + +void StyleBoxFlat::set_shadow_size(const int &p_size) { + + shadow_size = p_size; + emit_changed(); +} +int StyleBoxFlat::get_shadow_size() const { + + return shadow_size; +} + +void StyleBoxFlat::set_anti_aliased(const bool &p_anti_aliased) { + anti_aliased = p_anti_aliased; + emit_changed(); +} +bool StyleBoxFlat::is_anti_aliased() const { + return anti_aliased; +} + +void StyleBoxFlat::set_aa_size(const int &p_aa_size) { + aa_size = p_aa_size; + emit_changed(); } +int StyleBoxFlat::get_aa_size() const { + return aa_size; +} + +void StyleBoxFlat::set_corner_detail(const int &p_corner_detail) { + corner_detail = p_corner_detail; + emit_changed(); +} +int StyleBoxFlat::get_corner_detail() const { + return corner_detail; +} + Size2 StyleBoxFlat::get_center_size() const { return Size2(); } -void StyleBoxFlat::draw(RID p_canvas_item, const Rect2 &p_rect) const { +inline void set_inner_corner_radius(const Rect2 style_rect, const Rect2 inner_rect, const int corner_radius[4], int *inner_corner_radius) { + int border_left = inner_rect.position.x - style_rect.position.x; + int border_top = inner_rect.position.y - style_rect.position.y; + int border_right = style_rect.size.width - inner_rect.size.width - border_left; + int border_bottom = style_rect.size.height - inner_rect.size.height - border_top; - VisualServer *vs = VisualServer::get_singleton(); - Rect2i r = p_rect; + int rad; + //tl + rad = MIN(border_top, border_left); + inner_corner_radius[0] = MAX(corner_radius[0] - rad, 0); - for (int i = 0; i < border_size; i++) { + //tr + rad = MIN(border_top, border_bottom); + inner_corner_radius[1] = MAX(corner_radius[1] - rad, 0); - Color color_upleft = light_color; - Color color_downright = dark_color; + //br + rad = MIN(border_bottom, border_right); + inner_corner_radius[2] = MAX(corner_radius[2] - rad, 0); + + //bl + rad = MIN(border_bottom, border_left); + inner_corner_radius[3] = MAX(corner_radius[3] - rad, 0); +} - if (blend) { +inline void draw_ring(Vector<Vector2> &verts, Vector<int> &indices, Vector<Color> &colors, const Rect2 style_rect, const int corner_radius[4], + const Rect2 ring_rect, const int border_width[4], const Color inner_color[4], const Color outer_color[4], const int corner_detail) { - color_upleft.r = (border_size - i) * color_upleft.r / border_size + i * bg_color.r / border_size; - color_upleft.g = (border_size - i) * color_upleft.g / border_size + i * bg_color.g / border_size; - color_upleft.b = (border_size - i) * color_upleft.b / border_size + i * bg_color.b / border_size; + int vert_offset = verts.size(); + if (!vert_offset) { + vert_offset = 0; + } + int rings = (border_width[0] == 0 && border_width[1] == 0 && border_width[2] == 0 && border_width[3] == 0) ? 1 : 2; + rings = 2; + + int ring_corner_radius[4]; + set_inner_corner_radius(style_rect, ring_rect, corner_radius, ring_corner_radius); + + //corner radius center points + Vector<Point2> outer_points; + outer_points.push_back(ring_rect.position + Vector2(ring_corner_radius[0], ring_corner_radius[0])); //tl + outer_points.push_back(Point2(ring_rect.position.x + ring_rect.size.x - ring_corner_radius[1], ring_rect.position.y + ring_corner_radius[1])); //tr + outer_points.push_back(ring_rect.position + ring_rect.size - Vector2(ring_corner_radius[2], ring_corner_radius[2])); //br + outer_points.push_back(Point2(ring_rect.position.x + ring_corner_radius[3], ring_rect.position.y + ring_rect.size.y - ring_corner_radius[3])); //bl + + Rect2 inner_rect; + inner_rect = ring_rect.grow_individual(-border_width[MARGIN_LEFT], -border_width[MARGIN_TOP], -border_width[MARGIN_RIGHT], -border_width[MARGIN_BOTTOM]); + int inner_corner_radius[4]; + + Vector<Point2> inner_points; + set_inner_corner_radius(style_rect, inner_rect, corner_radius, inner_corner_radius); + inner_points.push_back(inner_rect.position + Vector2(inner_corner_radius[0], inner_corner_radius[0])); //tl + inner_points.push_back(Point2(inner_rect.position.x + inner_rect.size.x - inner_corner_radius[1], inner_rect.position.y + inner_corner_radius[1])); //tr + inner_points.push_back(inner_rect.position + inner_rect.size - Vector2(inner_corner_radius[2], inner_corner_radius[2])); //br + inner_points.push_back(Point2(inner_rect.position.x + inner_corner_radius[3], inner_rect.position.y + inner_rect.size.y - inner_corner_radius[3])); //bl + + //calculate the vert array + for (int corner_index = 0; corner_index < 4; corner_index++) { + for (int detail = 0; detail <= corner_detail; detail++) { + for (int inner_outer = (2 - rings); inner_outer < 2; inner_outer++) { + float radius; + Color color; + Point2 corner_point; + if (inner_outer == 0) { + radius = inner_corner_radius[corner_index]; + color = *inner_color; + corner_point = inner_points[corner_index]; + } else { + radius = ring_corner_radius[corner_index]; + color = *outer_color; + corner_point = outer_points[corner_index]; + } + float x = radius * (float)cos((double)corner_index * Math_PI / 2.0 + (double)detail / (double)corner_detail * Math_PI / 2.0 + Math_PI) + corner_point.x; + float y = radius * (float)sin((double)corner_index * Math_PI / 2.0 + (double)detail / (double)corner_detail * Math_PI / 2.0 + Math_PI) + corner_point.y; + verts.push_back(Vector2(x, y)); + colors.push_back(color); + } + } + } - color_downright.r = (border_size - i) * color_downright.r / border_size + i * bg_color.r / border_size; - color_downright.g = (border_size - i) * color_downright.g / border_size + i * bg_color.g / border_size; - color_downright.b = (border_size - i) * color_downright.b / border_size + i * bg_color.b / border_size; + if (rings == 2) { + int vert_count = (corner_detail + 1) * 4 * rings; + //fill the indices and the colors for the border + for (int i = 0; i < vert_count; i++) { + //poly 1 + indices.push_back(vert_offset + ((i + 0) % vert_count)); + indices.push_back(vert_offset + ((i + 2) % vert_count)); + indices.push_back(vert_offset + ((i + 1) % vert_count)); + //poly 2 + indices.push_back(vert_offset + ((i + 1) % vert_count)); + indices.push_back(vert_offset + ((i + 2) % vert_count)); + indices.push_back(vert_offset + ((i + 3) % vert_count)); } + } +} + +inline void adapt_values(int p_index_a, int p_index_b, int *adapted_values, const int *p_values, const real_t p_width, const int p_max_a, const int p_max_b) { + if (p_values[p_index_a] + p_values[p_index_b] > p_width) { + float factor; + int newValue; + + factor = (float)p_width / (float)(p_values[p_index_a] + p_values[p_index_b]); + + newValue = (int)(p_values[p_index_a] * factor); + if (newValue < adapted_values[p_index_a]) { + adapted_values[p_index_a] = newValue; + } + newValue = (int)(p_values[p_index_b] * factor); + if (newValue < adapted_values[p_index_b]) { + adapted_values[p_index_b] = newValue; + } + } else { + adapted_values[p_index_a] = MIN(p_values[p_index_a], adapted_values[p_index_a]); + adapted_values[p_index_b] = MIN(p_values[p_index_b], adapted_values[p_index_b]); + } + adapted_values[p_index_a] = MIN(p_max_a, adapted_values[p_index_a]); + adapted_values[p_index_b] = MIN(p_max_b, adapted_values[p_index_b]); +} +void StyleBoxFlat::draw(RID p_canvas_item, const Rect2 &p_rect) const { + + //PREPARATIONS + + bool rounded_corners = (corner_radius[0] > 0) || (corner_radius[1] > 0) || (corner_radius[2] > 0) || (corner_radius[3] > 0); + bool aa_on = rounded_corners && anti_aliased; + + Rect2 style_rect = p_rect.grow_individual(expand_margin[MARGIN_LEFT], expand_margin[MARGIN_TOP], expand_margin[MARGIN_RIGHT], expand_margin[MARGIN_BOTTOM]); + if (aa_on) { + style_rect = style_rect.grow(-((aa_size + 1) / 2)); + } + + //adapt borders (prevent weired overlapping/glitchy drawings) + int width = style_rect.size.width; + int height = style_rect.size.height; + int adapted_border[4] = { INT_MAX, INT_MAX, INT_MAX, INT_MAX }; + adapt_values(MARGIN_TOP, MARGIN_BOTTOM, adapted_border, border_width, height, height, height); + adapt_values(MARGIN_LEFT, MARGIN_RIGHT, adapted_border, border_width, width, width, width); - vs->canvas_item_add_rect(p_canvas_item, Rect2(Point2i(r.position.x, r.position.y + r.size.y - 1), Size2(r.size.x, 1)), color_downright); - vs->canvas_item_add_rect(p_canvas_item, Rect2(Point2i(r.position.x + r.size.x - 1, r.position.y), Size2(1, r.size.y)), color_downright); + //adapt corners (prevent weired overlapping/glitchy drawings) + int adapted_corner[4] = { INT_MAX, INT_MAX, INT_MAX, INT_MAX }; + adapt_values(CORNER_TOP_RIGHT, CORNER_BOTTOM_RIGHT, adapted_corner, corner_radius, height, height - adapted_border[MARGIN_BOTTOM], height - adapted_border[MARGIN_TOP]); + adapt_values(CORNER_TOP_LEFT, CORNER_BOTTOM_LEFT, adapted_corner, corner_radius, height, height - adapted_border[MARGIN_BOTTOM], height - adapted_border[MARGIN_TOP]); + adapt_values(CORNER_TOP_LEFT, CORNER_TOP_RIGHT, adapted_corner, corner_radius, width, width - adapted_border[MARGIN_RIGHT], width - adapted_border[MARGIN_LEFT]); + adapt_values(CORNER_BOTTOM_LEFT, CORNER_BOTTOM_RIGHT, adapted_corner, corner_radius, width, width - adapted_border[MARGIN_RIGHT], width - adapted_border[MARGIN_LEFT]); - vs->canvas_item_add_rect(p_canvas_item, Rect2(r.position, Size2(r.size.x, 1)), color_upleft); - vs->canvas_item_add_rect(p_canvas_item, Rect2(r.position, Size2(1, r.size.y)), color_upleft); + Rect2 infill_rect = style_rect.grow_individual(-adapted_border[MARGIN_LEFT], -adapted_border[MARGIN_TOP], -adapted_border[MARGIN_RIGHT], -adapted_border[MARGIN_BOTTOM]); - r.position.x++; - r.position.y++; - r.size.x -= 2; - r.size.y -= 2; + Vector<Point2> verts; + Vector<int> indices; + Vector<Color> colors; + + //DRAWING + VisualServer *vs = VisualServer::get_singleton(); + + //DRAW SHADOW + if (shadow_size > 0) { + int shadow_width[4] = { shadow_size, shadow_size, shadow_size, shadow_size }; + Color shadow_colors[4] = { shadow_color, shadow_color, shadow_color, shadow_color }; + Color shadow_colors_transparent[4]; + for (int i = 0; i < 4; i++) { + shadow_colors_transparent[i] = Color(shadow_color.r, shadow_color.g, shadow_color.b, 0); + } + draw_ring(verts, indices, colors, style_rect, adapted_corner, + style_rect.grow(shadow_size), shadow_width, shadow_colors, shadow_colors_transparent, corner_detail); + } + + //DRAW border + Color bg_color_array[4] = { bg_color, bg_color, bg_color, bg_color }; + const Color *inner_color = ((blend_border) ? bg_color_array : border_color.read().ptr()); + draw_ring(verts, indices, colors, style_rect, adapted_corner, + style_rect, adapted_border, inner_color, border_color.read().ptr(), corner_detail); + + //DRAW INFILL + if (filled) { + int temp_vert_offset = verts.size(); + int no_border[4] = { 0, 0, 0, 0 }; + draw_ring(verts, indices, colors, style_rect, adapted_corner, + infill_rect, no_border, &bg_color, &bg_color, corner_detail); + int added_vert_count = verts.size() - temp_vert_offset; + //fill the indices and the colors for the center + for (int index = 0; index <= added_vert_count / 2; index += 2) { + int i = index; + //poly 1 + indices.push_back(temp_vert_offset + i); + indices.push_back(temp_vert_offset + added_vert_count - 4 - i); + indices.push_back(temp_vert_offset + i + 2); + //poly 1 + indices.push_back(temp_vert_offset + i); + indices.push_back(temp_vert_offset + added_vert_count - 2 - i); + indices.push_back(temp_vert_offset + added_vert_count - 4 - i); + } } - if (draw_center) - vs->canvas_item_add_rect(p_canvas_item, Rect2(r.position, r.size), bg_color); + if (aa_on) { - Rect2i r_add = p_rect; - vs->canvas_item_add_rect(p_canvas_item, Rect2(Point2i(r_add.position.x - additional_border_size[MARGIN_LEFT], r_add.position.y - additional_border_size[MARGIN_TOP]), Size2(r_add.size.width + additional_border_size[MARGIN_LEFT] + additional_border_size[MARGIN_RIGHT], additional_border_size[MARGIN_TOP])), light_color); - vs->canvas_item_add_rect(p_canvas_item, Rect2(Point2i(r_add.position.x - additional_border_size[MARGIN_LEFT], r_add.position.y), Size2(additional_border_size[MARGIN_LEFT], r_add.size.height)), light_color); - vs->canvas_item_add_rect(p_canvas_item, Rect2(Point2i(r_add.position.x + r_add.size.width, r_add.position.y), Size2(additional_border_size[MARGIN_RIGHT], r_add.size.height)), dark_color); - vs->canvas_item_add_rect(p_canvas_item, Rect2(Point2i(r_add.position.x - additional_border_size[MARGIN_LEFT], r_add.position.y + r_add.size.height), Size2(r_add.size.width + additional_border_size[MARGIN_LEFT] + additional_border_size[MARGIN_RIGHT], additional_border_size[MARGIN_BOTTOM])), dark_color); + //HELPER ARRAYS + Color border_color_alpha[4]; + for (int i = 0; i < 4; i++) { + Color c = border_color.read().ptr()[i]; + border_color_alpha[i] = Color(c.r, c.g, c.b, 0); + } + Color alpha_bg = Color(bg_color.r, bg_color.g, bg_color.b, 0); + Color bg_color_array_alpha[4] = { alpha_bg, alpha_bg, alpha_bg, alpha_bg }; + + int aa_border_width[4] = { aa_size, aa_size, aa_size, aa_size }; + + if (filled) { + if (!blend_border) { + //INFILL AA + draw_ring(verts, indices, colors, style_rect, adapted_corner, + infill_rect.grow(aa_size), aa_border_width, bg_color_array, bg_color_array_alpha, corner_detail); + } + } else if (!(border_width[0] == 0 && border_width[1] == 0 && border_width[2] == 0 && border_width[3] == 0)) { + //DRAW INNER BORDER AA + draw_ring(verts, indices, colors, style_rect, adapted_corner, + infill_rect, aa_border_width, border_color_alpha, border_color.read().ptr(), corner_detail); + } + //DRAW OUTER BORDER AA + if (!(border_width[0] == 0 && border_width[1] == 0 && border_width[2] == 0 && border_width[3] == 0)) { + draw_ring(verts, indices, colors, style_rect, adapted_corner, + style_rect.grow(aa_size), aa_border_width, border_color.read().ptr(), border_color_alpha, corner_detail); + } + } + + vs->canvas_item_add_triangle_array(p_canvas_item, indices, verts, colors); } float StyleBoxFlat::get_style_margin(Margin p_margin) const { - - return border_size; + return border_width[p_margin]; } void StyleBoxFlat::_bind_methods() { ClassDB::bind_method(D_METHOD("set_bg_color", "color"), &StyleBoxFlat::set_bg_color); ClassDB::bind_method(D_METHOD("get_bg_color"), &StyleBoxFlat::get_bg_color); - ClassDB::bind_method(D_METHOD("set_light_color", "color"), &StyleBoxFlat::set_light_color); - ClassDB::bind_method(D_METHOD("get_light_color"), &StyleBoxFlat::get_light_color); - ClassDB::bind_method(D_METHOD("set_dark_color", "color"), &StyleBoxFlat::set_dark_color); - ClassDB::bind_method(D_METHOD("get_dark_color"), &StyleBoxFlat::get_dark_color); - ClassDB::bind_method(D_METHOD("set_border_size", "size"), &StyleBoxFlat::set_border_size); - ClassDB::bind_method(D_METHOD("get_border_size"), &StyleBoxFlat::get_border_size); + + ClassDB::bind_method(D_METHOD("set_border_color", "color"), &StyleBoxFlat::set_border_color_all); + ClassDB::bind_method(D_METHOD("get_border_color", "color"), &StyleBoxFlat::get_border_color_all); + + ClassDB::bind_method(D_METHOD("set_border_width_all", "width"), &StyleBoxFlat::set_border_width_all); + ClassDB::bind_method(D_METHOD("get_border_width_min"), &StyleBoxFlat::get_border_width_min); + + ClassDB::bind_method(D_METHOD("set_border_width", "margin", "width"), &StyleBoxFlat::set_border_width); + ClassDB::bind_method(D_METHOD("get_border_width", "margin"), &StyleBoxFlat::get_border_width); + ClassDB::bind_method(D_METHOD("set_border_blend", "blend"), &StyleBoxFlat::set_border_blend); ClassDB::bind_method(D_METHOD("get_border_blend"), &StyleBoxFlat::get_border_blend); - ClassDB::bind_method(D_METHOD("set_draw_center", "size"), &StyleBoxFlat::set_draw_center); - ClassDB::bind_method(D_METHOD("get_draw_center"), &StyleBoxFlat::get_draw_center); + + ClassDB::bind_method(D_METHOD("set_corner_radius_individual", "radius_top_left", "radius_top_right", "radius_botton_right", "radius_bottom_left"), &StyleBoxFlat::set_corner_radius_individual); + ClassDB::bind_method(D_METHOD("set_corner_radius_all", "radius"), &StyleBoxFlat::set_corner_radius_all); + + ClassDB::bind_method(D_METHOD("set_corner_radius", "corner", "radius"), &StyleBoxFlat::set_corner_radius); + ClassDB::bind_method(D_METHOD("get_corner_radius", "corner"), &StyleBoxFlat::get_corner_radius); + + ClassDB::bind_method(D_METHOD("set_expand_margin", "margin", "size"), &StyleBoxFlat::set_expand_margin_size); + ClassDB::bind_method(D_METHOD("get_expand_margin", "margin"), &StyleBoxFlat::get_expand_margin_size); + + ClassDB::bind_method(D_METHOD("set_filled", "filled"), &StyleBoxFlat::set_filled); + ClassDB::bind_method(D_METHOD("is_filled"), &StyleBoxFlat::is_filled); + + ClassDB::bind_method(D_METHOD("set_shadow_color", "color"), &StyleBoxFlat::set_shadow_color); + ClassDB::bind_method(D_METHOD("get_shadow_color"), &StyleBoxFlat::get_shadow_color); + + ClassDB::bind_method(D_METHOD("set_shadow_size", "size"), &StyleBoxFlat::set_shadow_size); + ClassDB::bind_method(D_METHOD("get_shadow_size"), &StyleBoxFlat::get_shadow_size); + + ClassDB::bind_method(D_METHOD("set_anti_aliased", "anti_aliased"), &StyleBoxFlat::set_anti_aliased); + ClassDB::bind_method(D_METHOD("is_anti_aliased"), &StyleBoxFlat::is_anti_aliased); + + ClassDB::bind_method(D_METHOD("set_aa_size", "size"), &StyleBoxFlat::set_aa_size); + ClassDB::bind_method(D_METHOD("get_aa_size"), &StyleBoxFlat::get_aa_size); + + ClassDB::bind_method(D_METHOD("set_corner_detail", "detail"), &StyleBoxFlat::set_corner_detail); + ClassDB::bind_method(D_METHOD("get_corner_detail"), &StyleBoxFlat::get_corner_detail); ADD_PROPERTY(PropertyInfo(Variant::COLOR, "bg_color"), "set_bg_color", "get_bg_color"); - ADD_PROPERTY(PropertyInfo(Variant::COLOR, "light_color"), "set_light_color", "get_light_color"); - ADD_PROPERTY(PropertyInfo(Variant::COLOR, "dark_color"), "set_dark_color", "get_dark_color"); - ADD_PROPERTY(PropertyInfo(Variant::INT, "border_size", PROPERTY_HINT_RANGE, "0,4096"), "set_border_size", "get_border_size"); + + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "filled"), "set_filled", "is_filled"); + + ADD_GROUP("Border Width", "border_width_"); + ADD_PROPERTYI(PropertyInfo(Variant::INT, "border_width_left", PROPERTY_HINT_RANGE, "0,1024,1"), "set_border_width", "get_border_width", MARGIN_LEFT); + ADD_PROPERTYI(PropertyInfo(Variant::INT, "border_width_top", PROPERTY_HINT_RANGE, "0,1024,1"), "set_border_width", "get_border_width", MARGIN_TOP); + ADD_PROPERTYI(PropertyInfo(Variant::INT, "border_width_right", PROPERTY_HINT_RANGE, "0,1024,1"), "set_border_width", "get_border_width", MARGIN_RIGHT); + ADD_PROPERTYI(PropertyInfo(Variant::INT, "border_width_bottom", PROPERTY_HINT_RANGE, "0,1024,1"), "set_border_width", "get_border_width", MARGIN_BOTTOM); + + ADD_GROUP("Border", "border_"); + ADD_PROPERTY(PropertyInfo(Variant::COLOR, "border_color"), "set_border_color", "get_border_color"); + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "border_blend"), "set_border_blend", "get_border_blend"); - ADD_PROPERTY(PropertyInfo(Variant::BOOL, "draw_bg"), "set_draw_center", "get_draw_center"); + + ADD_GROUP("Corner Radius", "corner_radius_"); + ADD_PROPERTYI(PropertyInfo(Variant::INT, "corner_radius_top_left", PROPERTY_HINT_RANGE, "0,1024,1"), "set_corner_radius", "get_corner_radius", CORNER_TOP_LEFT); + ADD_PROPERTYI(PropertyInfo(Variant::INT, "corner_radius_top_right", PROPERTY_HINT_RANGE, "0,1024,1"), "set_corner_radius", "get_corner_radius", CORNER_TOP_RIGHT); + ADD_PROPERTYI(PropertyInfo(Variant::INT, "corner_radius_bottom_right", PROPERTY_HINT_RANGE, "0,1024,1"), "set_corner_radius", "get_corner_radius", CORNER_BOTTOM_RIGHT); + ADD_PROPERTYI(PropertyInfo(Variant::INT, "corner_radius_bottom_left", PROPERTY_HINT_RANGE, "0,1024,1"), "set_corner_radius", "get_corner_radius", CORNER_BOTTOM_LEFT); + + ADD_PROPERTY(PropertyInfo(Variant::INT, "corner_detail"), "set_corner_detail", "get_corner_detail"); + + ADD_GROUP("Expand Margin", "expand_margin_"); + ADD_PROPERTYI(PropertyInfo(Variant::REAL, "expand_margin_left", PROPERTY_HINT_RANGE, "0,2048,1"), "set_expand_margin", "get_expand_margin", MARGIN_LEFT); + ADD_PROPERTYI(PropertyInfo(Variant::REAL, "expand_margin_right", PROPERTY_HINT_RANGE, "0,2048,1"), "set_expand_margin", "get_expand_margin", MARGIN_RIGHT); + ADD_PROPERTYI(PropertyInfo(Variant::REAL, "expand_margin_top", PROPERTY_HINT_RANGE, "0,2048,1"), "set_expand_margin", "get_expand_margin", MARGIN_TOP); + ADD_PROPERTYI(PropertyInfo(Variant::REAL, "expand_margin_bottom", PROPERTY_HINT_RANGE, "0,2048,1"), "set_expand_margin", "get_expand_margin", MARGIN_BOTTOM); + + ADD_GROUP("Shadow", "shadow_"); + ADD_PROPERTY(PropertyInfo(Variant::COLOR, "shadow_color"), "set_shadow_color", "get_shadow_color"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "shadow_size"), "set_shadow_size", "get_shadow_size"); + + ADD_GROUP("Anti Aliasing", "anti_aliasing_"); + ADD_PROPERTY(PropertyInfo(Variant::BOOL, "anti_aliasing"), "set_anti_aliased", "is_anti_aliased"); + ADD_PROPERTY(PropertyInfo(Variant::INT, "anti_aliasing_size", PROPERTY_HINT_RANGE, "1,5,1"), "set_aa_size", "get_aa_size"); } StyleBoxFlat::StyleBoxFlat() { bg_color = Color(0.6, 0.6, 0.6); - light_color = Color(0.8, 0.8, 0.8); - dark_color = Color(0.8, 0.8, 0.8); - draw_center = true; - blend = true; - border_size = 0; - additional_border_size[0] = 0; - additional_border_size[1] = 0; - additional_border_size[2] = 0; - additional_border_size[3] = 0; + shadow_color = Color(0, 0, 0, 0.6); + + border_color.append(Color(0.8, 0.8, 0.8)); + border_color.append(Color(0.8, 0.8, 0.8)); + border_color.append(Color(0.8, 0.8, 0.8)); + border_color.append(Color(0.8, 0.8, 0.8)); + + blend_border = false; + filled = true; + anti_aliased = true; + + shadow_size = 0; + corner_detail = 8; + aa_size = 1; + + border_width[0] = 0; + border_width[1] = 0; + border_width[2] = 0; + border_width[3] = 0; + + expand_margin[0] = 0; + expand_margin[1] = 0; + expand_margin[2] = 0; + expand_margin[3] = 0; + + corner_radius[0] = 0; + corner_radius[1] = 0; + corner_radius[2] = 0; + corner_radius[3] = 0; } StyleBoxFlat::~StyleBoxFlat() { } diff --git a/scene/resources/style_box.h b/scene/resources/style_box.h index 955d09c162..a750fae753 100644 --- a/scene/resources/style_box.h +++ b/scene/resources/style_box.h @@ -141,39 +141,81 @@ class StyleBoxFlat : public StyleBox { GDCLASS(StyleBoxFlat, StyleBox); Color bg_color; - Color light_color; - Color dark_color; + Color shadow_color; + PoolVector<Color> border_color; - int border_size; - int additional_border_size[4]; + int border_width[4]; + int expand_margin[4]; + int corner_radius[4]; - bool draw_center; - bool blend; + bool filled; + bool blend_border; + bool anti_aliased; + + int corner_detail; + int shadow_size; + int aa_size; protected: virtual float get_style_margin(Margin p_margin) const; static void _bind_methods(); public: + //Color void set_bg_color(const Color &p_color); - void set_light_color(const Color &p_color); - void set_dark_color(const Color &p_color); - Color get_bg_color() const; - Color get_light_color() const; - Color get_dark_color() const; - void set_border_size(int p_size); - int get_border_size() const; + //Border Color + void set_border_color_all(const Color &p_color); + Color get_border_color_all() const; + void set_border_color(Margin p_border, const Color &p_color); + Color get_border_color(Margin p_border) const; + + //BORDER + //width + void set_border_width_all(int p_size); + int get_border_width_min() const; - void _set_additional_border_size(Margin p_margin, int p_size); - int _get_additional_border_size(Margin p_margin) const; + void set_border_width(Margin p_margin, int p_size); + int get_border_width(Margin p_margin) const; + //blend void set_border_blend(bool p_blend); bool get_border_blend() const; - void set_draw_center(bool p_draw); - bool get_draw_center() const; + //CORNER + void set_corner_radius_all(int radius); + void set_corner_radius_individual(const int radius_top_left, const int radius_top_right, const int radius_botton_right, const int radius_bottom_left); + int get_corner_radius_min() const; + + void set_corner_radius(Corner p_corner, const int radius); + int get_corner_radius(Corner p_corner) const; + + void set_corner_detail(const int &p_corner_detail); + int get_corner_detail() const; + + //EXPANDS + void set_expand_margin_size(Margin p_expand_margin, float p_size); + float get_expand_margin_size(Margin p_expand_margin) const; + + //FILLED + void set_filled(bool p_draw); + bool is_filled() const; + + //SHADOW + void set_shadow_color(const Color &p_color); + Color get_shadow_color() const; + + void set_shadow_size(const int &p_size); + int get_shadow_size() const; + + //ANTI_ALIASING + void set_anti_aliased(const bool &p_anit_aliasing); + bool is_anti_aliased() const; + //tempAA + void set_aa_size(const int &p_aa_size); + int get_aa_size() const; + virtual Size2 get_center_size() const; virtual void draw(RID p_canvas_item, const Rect2 &p_rect) const; diff --git a/scene/resources/surface_tool.cpp b/scene/resources/surface_tool.cpp index a3c683f857..9320676016 100644 --- a/scene/resources/surface_tool.cpp +++ b/scene/resources/surface_tool.cpp @@ -33,36 +33,36 @@ #define _VERTEX_SNAP 0.0001 #define EQ_VERTEX_DIST 0.00001 -bool SurfaceTool::Vertex::operator==(const Vertex &p_b) const { +bool SurfaceTool::Vertex::operator==(const Vertex &p_vertex) const { - if (vertex != p_b.vertex) + if (vertex != p_vertex.vertex) return false; - if (uv != p_b.uv) + if (uv != p_vertex.uv) return false; - if (uv2 != p_b.uv2) + if (uv2 != p_vertex.uv2) return false; - if (normal != p_b.normal) + if (normal != p_vertex.normal) return false; - if (binormal != p_b.binormal) + if (binormal != p_vertex.binormal) return false; - if (color != p_b.color) + if (color != p_vertex.color) return false; - if (bones.size() != p_b.bones.size()) + if (bones.size() != p_vertex.bones.size()) return false; for (int i = 0; i < bones.size(); i++) { - if (bones[i] != p_b.bones[i]) + if (bones[i] != p_vertex.bones[i]) return false; } for (int i = 0; i < weights.size(); i++) { - if (weights[i] != p_b.weights[i]) + if (weights[i] != p_vertex.weights[i]) return false; } diff --git a/scene/resources/surface_tool.h b/scene/resources/surface_tool.h index d02e170b02..fcc94753ca 100644 --- a/scene/resources/surface_tool.h +++ b/scene/resources/surface_tool.h @@ -102,8 +102,8 @@ public: void add_normal(const Vector3 &p_normal); void add_tangent(const Plane &p_tangent); void add_uv(const Vector2 &p_uv); - void add_uv2(const Vector2 &p_uv); - void add_bones(const Vector<int> &p_indices); + void add_uv2(const Vector2 &p_uv2); + void add_bones(const Vector<int> &p_bones); void add_weights(const Vector<float> &p_weights); void add_smooth_group(bool p_smooth); diff --git a/scene/resources/theme.cpp b/scene/resources/theme.cpp index 1d5aed0444..ac1bb105ac 100644 --- a/scene/resources/theme.cpp +++ b/scene/resources/theme.cpp @@ -883,7 +883,7 @@ RES ResourceFormatLoaderTheme::load(const String &p_path, const String &p_origin ERR_FAIL_V(RES()); } - sbflat->set_border_size(params[0].to_int()); + sbflat->set_border_width_all(params[0].to_int()); if (!params[0].is_valid_integer()) { @@ -929,8 +929,8 @@ RES ResourceFormatLoaderTheme::load(const String &p_path, const String &p_origin dark = Color::html(params[3]); } - sbflat->set_dark_color(dark); - sbflat->set_light_color(bright); + sbflat->set_border_color_all(bright); + // sbflat->set_dark_color(dark); sbflat->set_bg_color(normal); if (params.size() == ccodes + 5) { diff --git a/scene/resources/theme.h b/scene/resources/theme.h index 1dfea7f421..5744c142d4 100644 --- a/scene/resources/theme.h +++ b/scene/resources/theme.h @@ -143,8 +143,8 @@ public: static void set_default(const Ref<Theme> &p_default); static void set_default_icon(const Ref<Texture> &p_icon); - static void set_default_style(const Ref<StyleBox> &p_default_style); - static void set_default_font(const Ref<Font> &p_default_font); + static void set_default_style(const Ref<StyleBox> &p_style); + static void set_default_font(const Ref<Font> &p_font); void set_default_theme_font(const Ref<Font> &p_default_font); Ref<Font> get_default_theme_font() const; @@ -159,7 +159,7 @@ public: Ref<Shader> get_shader(const StringName &p_name, const StringName &p_type) const; bool has_shader(const StringName &p_name, const StringName &p_type) const; void clear_shader(const StringName &p_name, const StringName &p_type); - void get_shader_list(const StringName &p_name, List<StringName> *p_list) const; + void get_shader_list(const StringName &p_type, List<StringName> *p_list) const; void set_stylebox(const StringName &p_name, const StringName &p_type, const Ref<StyleBox> &p_style); Ref<StyleBox> get_stylebox(const StringName &p_name, const StringName &p_type) const; diff --git a/scene/resources/tile_set.h b/scene/resources/tile_set.h index 99c506390c..7d7855811f 100644 --- a/scene/resources/tile_set.h +++ b/scene/resources/tile_set.h @@ -105,7 +105,7 @@ public: void tile_set_shape(int p_id, int p_shape_id, const Ref<Shape2D> &p_shape); Ref<Shape2D> tile_get_shape(int p_id, int p_shape_id) const; - void tile_set_shape_transform(int p_id, int p_shape_id, const Transform2D &p_transform); + void tile_set_shape_transform(int p_id, int p_shape_id, const Transform2D &p_offset); Transform2D tile_get_shape_transform(int p_id, int p_shape_id) const; void tile_set_shape_one_way(int p_id, int p_shape_id, bool p_one_way); @@ -121,7 +121,7 @@ public: void tile_set_material(int p_id, const Ref<ShaderMaterial> &p_material); Ref<ShaderMaterial> tile_get_material(int p_id) const; - void tile_set_modulate(int p_id, const Color &p_color); + void tile_set_modulate(int p_id, const Color &p_modulate); Color tile_get_modulate(int p_id) const; void tile_set_occluder_offset(int p_id, const Vector2 &p_offset); |