mirror of
https://github.com/FyroxEngine/Fyrox.git
synced 2026-10-12 02:02:20 +00:00
fixed clippy warnings
This commit is contained in:
+17
-25
@@ -273,27 +273,23 @@ impl Control for AssetItem {
|
||||
|
||||
if let Some(msg) = message.data::<WidgetMessage>() {
|
||||
match msg {
|
||||
WidgetMessage::MouseDown { button, .. } => {
|
||||
if !message.handled() && !ui.keyboard_modifiers().alt {
|
||||
if let MouseButton::Left | MouseButton::Right = *button {
|
||||
message.set_handled(true);
|
||||
ui.send(self.handle(), AssetItemMessage::Select(true));
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseDown {
|
||||
button: MouseButton::Left | MouseButton::Right,
|
||||
..
|
||||
} if !message.handled() && !ui.keyboard_modifiers().alt => {
|
||||
message.set_handled(true);
|
||||
ui.send(self.handle(), AssetItemMessage::Select(true));
|
||||
}
|
||||
WidgetMessage::DragOver(dropped) => {
|
||||
WidgetMessage::DragOver(dropped)
|
||||
if ui
|
||||
.try_get_of_type::<AssetItem>(*dropped)
|
||||
.ok()
|
||||
.is_some_and(|dropped| dropped.can_be_dropped_to(self))
|
||||
{
|
||||
ui.send(
|
||||
self.text_border,
|
||||
WidgetMessage::Foreground(
|
||||
ui.style.property(Self::TEXT_BORDER_DROP_BRUSH),
|
||||
),
|
||||
);
|
||||
}
|
||||
.is_some_and(|dropped| dropped.can_be_dropped_to(self)) =>
|
||||
{
|
||||
ui.send(
|
||||
self.text_border,
|
||||
WidgetMessage::Foreground(ui.style.property(Self::TEXT_BORDER_DROP_BRUSH)),
|
||||
);
|
||||
}
|
||||
WidgetMessage::MouseLeave => {
|
||||
ui.send(
|
||||
@@ -306,19 +302,15 @@ impl Control for AssetItem {
|
||||
WidgetMessage::Drop(dropped) => {
|
||||
self.try_post_move_to_message(ui, *dropped);
|
||||
}
|
||||
WidgetMessage::DoubleClick { button, .. } => {
|
||||
if *button == MouseButton::Left {
|
||||
self.open();
|
||||
}
|
||||
WidgetMessage::DoubleClick { button, .. } if *button == MouseButton::Left => {
|
||||
self.open();
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
} else if let Some(msg) = message.data::<AssetItemMessage>() {
|
||||
match msg {
|
||||
AssetItemMessage::Select(select) => {
|
||||
if message.destination() == self.handle() {
|
||||
self.set_selected(*select, ui);
|
||||
}
|
||||
AssetItemMessage::Select(select) if message.destination() == self.handle() => {
|
||||
self.set_selected(*select, ui);
|
||||
}
|
||||
AssetItemMessage::Icon {
|
||||
texture,
|
||||
|
||||
@@ -606,7 +606,7 @@ impl AssetBrowser {
|
||||
resources.sort();
|
||||
|
||||
// Generate items.
|
||||
for path in folders.into_iter().chain(resources.into_iter()) {
|
||||
for path in folders.into_iter().chain(resources) {
|
||||
let asset_item = self.add_asset(&path, ui, resource_manager, message_sender);
|
||||
|
||||
if let Some(item_to_select) = item_to_select.as_ref() {
|
||||
@@ -691,11 +691,10 @@ impl AssetBrowser {
|
||||
if let Some(msg) = message.data::<AssetItemMessage>() {
|
||||
let asset_item = message.destination();
|
||||
match msg {
|
||||
AssetItemMessage::Select(true) => {
|
||||
if ui.has_descendant_or_equal(asset_item, self.content_panel) {
|
||||
AssetItemMessage::Select(true)
|
||||
if ui.has_descendant_or_equal(asset_item, self.content_panel) => {
|
||||
self.on_asset_selected(asset_item, sender.clone(), entry, engine);
|
||||
}
|
||||
}
|
||||
AssetItemMessage::MoveTo {
|
||||
src_item_path,
|
||||
dest_dir,
|
||||
|
||||
@@ -457,8 +457,8 @@ impl CameraController {
|
||||
let is_perspective = graph[self.camera].projection().is_perspective();
|
||||
|
||||
match button {
|
||||
MouseButton::Right => {
|
||||
if is_perspective {
|
||||
MouseButton::Right
|
||||
if is_perspective => {
|
||||
if modifiers.shift {
|
||||
self.mouse_control_mode = MouseControlMode::Drag {
|
||||
initial_position: self.position(graph),
|
||||
@@ -472,7 +472,6 @@ impl CameraController {
|
||||
self.z_offset = 0.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
MouseButton::Middle => {
|
||||
if is_perspective {
|
||||
self.mouse_control_mode = MouseControlMode::OrbitalRotation;
|
||||
|
||||
+4
-6
@@ -3008,22 +3008,21 @@ impl Editor {
|
||||
self.focused = *focused;
|
||||
self.try_process_file_system_events();
|
||||
}
|
||||
WindowEvent::Moved(new_position) => {
|
||||
WindowEvent::Moved(new_position)
|
||||
// Allow the window to go outside the screen bounds by a little. This
|
||||
// happens when the window is maximized.
|
||||
if new_position.x > -50 && new_position.y > -50 {
|
||||
if new_position.x > -50 && new_position.y > -50 => {
|
||||
self.settings.windows.window_position.x = new_position.x as f32;
|
||||
self.settings.windows.window_position.y = new_position.y as f32;
|
||||
}
|
||||
}
|
||||
WindowEvent::ScaleFactorChanged { scale_factor, .. } => {
|
||||
set_ui_scaling(
|
||||
self.engine.user_interfaces.first(),
|
||||
*scale_factor as f32,
|
||||
);
|
||||
}
|
||||
WindowEvent::RedrawRequested => {
|
||||
if self.is_active() {
|
||||
WindowEvent::RedrawRequested
|
||||
if self.is_active() => {
|
||||
let entry = self.scenes.current_scene_entry_mut();
|
||||
entry
|
||||
.controller
|
||||
@@ -3035,7 +3034,6 @@ impl Editor {
|
||||
.current_scene_controller_mut()
|
||||
.on_after_render(&mut self.engine);
|
||||
}
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
|
||||
|
||||
@@ -373,8 +373,8 @@ impl Control for BlendSpaceField {
|
||||
|
||||
if let Some(msg) = message.data::<WidgetMessage>() {
|
||||
match msg {
|
||||
WidgetMessage::MouseDown { button, .. } => {
|
||||
if *button == MouseButton::Left {
|
||||
WidgetMessage::MouseDown { button, .. }
|
||||
if *button == MouseButton::Left => {
|
||||
if let Some(pos) =
|
||||
self.points.iter().position(|p| message.destination() == *p)
|
||||
{
|
||||
@@ -387,7 +387,6 @@ impl Control for BlendSpaceField {
|
||||
|
||||
ui.capture_mouse(self.handle);
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseUp { button, pos, .. } => {
|
||||
if let Some(drag_context) = self.drag_context.take() {
|
||||
if *button == MouseButton::Left {
|
||||
@@ -894,10 +893,10 @@ impl BlendSpaceEditor {
|
||||
if message.destination() == self.field {
|
||||
if let Some(msg) = message.data::<BlendSpaceFieldMessage>() {
|
||||
match *msg {
|
||||
BlendSpaceFieldMessage::SamplingPoint(point) => {
|
||||
BlendSpaceFieldMessage::SamplingPoint(point)
|
||||
if is_preview_mode_active
|
||||
&& message.direction() == MessageDirection::FromWidget
|
||||
{
|
||||
=> {
|
||||
let param = blend_space.sampling_parameter().to_string();
|
||||
if let Some(Parameter::SamplingPoint(param)) =
|
||||
machine.parameters_mut().get_mut(¶m)
|
||||
@@ -905,7 +904,6 @@ impl BlendSpaceEditor {
|
||||
*param = point;
|
||||
}
|
||||
}
|
||||
}
|
||||
BlendSpaceFieldMessage::MovePoint { index, position } => {
|
||||
sender.do_command(SetBlendSpacePointPositionCommand {
|
||||
node_handle: selection.absm_node_handle,
|
||||
|
||||
@@ -192,8 +192,8 @@ where
|
||||
}
|
||||
} else if let Some(msg) = message.data_for::<AbsmNodeMessage>(self.handle) {
|
||||
match msg {
|
||||
AbsmNodeMessage::InputSockets(input_sockets) => {
|
||||
if input_sockets != &self.base.input_sockets {
|
||||
AbsmNodeMessage::InputSockets(input_sockets)
|
||||
if input_sockets != &self.base.input_sockets => {
|
||||
for &child in ui[self.input_sockets_panel].children() {
|
||||
ui.send(child, WidgetMessage::Remove);
|
||||
}
|
||||
@@ -204,21 +204,18 @@ where
|
||||
|
||||
self.base.input_sockets.clone_from(input_sockets);
|
||||
}
|
||||
}
|
||||
AbsmNodeMessage::NormalBrush(color) => {
|
||||
if &self.normal_brush != color {
|
||||
AbsmNodeMessage::NormalBrush(color)
|
||||
if &self.normal_brush != color => {
|
||||
self.normal_brush = color.clone();
|
||||
self.update_colors(ui);
|
||||
}
|
||||
}
|
||||
AbsmNodeMessage::SelectedBrush(color) => {
|
||||
if &self.selected_brush != color {
|
||||
AbsmNodeMessage::SelectedBrush(color)
|
||||
if &self.selected_brush != color => {
|
||||
self.selected_brush = color.clone();
|
||||
self.update_colors(ui);
|
||||
}
|
||||
}
|
||||
AbsmNodeMessage::Name(name) => {
|
||||
if &self.name_value != name {
|
||||
AbsmNodeMessage::Name(name)
|
||||
if &self.name_value != name => {
|
||||
self.name_value.clone_from(name);
|
||||
|
||||
ui.send(
|
||||
@@ -229,7 +226,6 @@ where
|
||||
)),
|
||||
);
|
||||
}
|
||||
}
|
||||
AbsmNodeMessage::SetActive(active) => {
|
||||
let (thickness, brush) = if *active {
|
||||
(
|
||||
|
||||
@@ -50,20 +50,18 @@ impl Selectable {
|
||||
) -> bool {
|
||||
if let Some(msg) = message.data::<WidgetMessage>() {
|
||||
match msg {
|
||||
WidgetMessage::MouseDown { button, .. } => {
|
||||
WidgetMessage::MouseDown { button, .. }
|
||||
if (*button == MouseButton::Left || *button == MouseButton::Right)
|
||||
&& !self.selected
|
||||
{
|
||||
=> {
|
||||
ui.send(self_handle, SelectableMessage::Select(true));
|
||||
|
||||
ui.capture_mouse(self_handle);
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseUp { button, .. } => {
|
||||
if *button == MouseButton::Left || *button == MouseButton::Right {
|
||||
WidgetMessage::MouseUp { button, .. }
|
||||
if (*button == MouseButton::Left || *button == MouseButton::Right) => {
|
||||
ui.release_mouse_capture();
|
||||
}
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
} else if let Some(SelectableMessage::Select(selected)) = message.data_for(self_handle) {
|
||||
|
||||
@@ -80,24 +80,22 @@ impl Control for Socket {
|
||||
|
||||
if let Some(msg) = message.data::<WidgetMessage>() {
|
||||
match msg {
|
||||
WidgetMessage::MouseDown { button, pos } => {
|
||||
if *button == MouseButton::Left && message.destination() == self.pin {
|
||||
WidgetMessage::MouseDown { button, pos }
|
||||
if *button == MouseButton::Left && message.destination() == self.pin => {
|
||||
self.click_position = Some(*pos);
|
||||
|
||||
ui.capture_mouse(self.handle());
|
||||
|
||||
message.set_handled(true);
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseUp { button, .. } => {
|
||||
if *button == MouseButton::Left {
|
||||
WidgetMessage::MouseUp { button, .. }
|
||||
if *button == MouseButton::Left => {
|
||||
self.click_position = None;
|
||||
|
||||
ui.release_mouse_capture();
|
||||
|
||||
message.set_handled(true);
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseMove { pos, .. } => {
|
||||
if let Some(click_position) = self.click_position {
|
||||
if click_position.metric_distance(pos) >= 5.0 {
|
||||
|
||||
@@ -182,8 +182,8 @@ impl StateGraphViewer {
|
||||
AbsmCanvasMessage::CommitTransition {
|
||||
source_node,
|
||||
dest_node,
|
||||
} => {
|
||||
if message.direction() == MessageDirection::FromWidget {
|
||||
}
|
||||
if message.direction() == MessageDirection::FromWidget => {
|
||||
let source = fetch_state_node_model_handle(*source_node, ui);
|
||||
let dest = fetch_state_node_model_handle(*dest_node, ui);
|
||||
sender.do_command(AddTransitionCommand::new(
|
||||
@@ -192,7 +192,6 @@ impl StateGraphViewer {
|
||||
Transition::new("Transition", source, dest, 1.0, ""),
|
||||
));
|
||||
}
|
||||
}
|
||||
AbsmCanvasMessage::CommitDrag { entries } => {
|
||||
let commands = entries
|
||||
.iter()
|
||||
@@ -212,8 +211,8 @@ impl StateGraphViewer {
|
||||
|
||||
sender.do_command(CommandGroup::from(commands));
|
||||
}
|
||||
AbsmCanvasMessage::SelectionChanged(selection) => {
|
||||
if message.direction() == MessageDirection::FromWidget {
|
||||
AbsmCanvasMessage::SelectionChanged(selection)
|
||||
if message.direction() == MessageDirection::FromWidget => {
|
||||
let selection = Selection::new(AbsmSelection {
|
||||
absm_node_handle,
|
||||
layer: Some(layer_index),
|
||||
@@ -243,12 +242,11 @@ impl StateGraphViewer {
|
||||
sender.do_command(ChangeSelectionCommand::new(selection));
|
||||
}
|
||||
}
|
||||
}
|
||||
AbsmCanvasMessage::CommitTransitionToAllNodes {
|
||||
source_node,
|
||||
dest_nodes,
|
||||
} => {
|
||||
if message.direction() == MessageDirection::FromWidget {
|
||||
}
|
||||
if message.direction() == MessageDirection::FromWidget => {
|
||||
let source = fetch_state_node_model_handle(*source_node, ui);
|
||||
let commands = dest_nodes
|
||||
.iter()
|
||||
@@ -264,7 +262,6 @@ impl StateGraphViewer {
|
||||
|
||||
sender.do_command(CommandGroup::from(commands));
|
||||
}
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -306,8 +306,8 @@ impl StateViewer {
|
||||
|
||||
sender.do_command(CommandGroup::from(commands));
|
||||
}
|
||||
AbsmCanvasMessage::SelectionChanged(selection) => {
|
||||
if message.direction() == MessageDirection::FromWidget {
|
||||
AbsmCanvasMessage::SelectionChanged(selection)
|
||||
if message.direction() == MessageDirection::FromWidget => {
|
||||
let selection = Selection::new(AbsmSelection {
|
||||
absm_node_handle,
|
||||
layer: Some(layer_index),
|
||||
@@ -331,7 +331,6 @@ impl StateViewer {
|
||||
sender.do_command(ChangeSelectionCommand::new(selection));
|
||||
}
|
||||
}
|
||||
}
|
||||
AbsmCanvasMessage::CommitConnection {
|
||||
source_socket,
|
||||
dest_socket,
|
||||
|
||||
@@ -322,8 +322,8 @@ impl Control for Ruler {
|
||||
} else if let Some(msg) = message.data::<WidgetMessage>() {
|
||||
if message.direction() == MessageDirection::FromWidget {
|
||||
match msg {
|
||||
WidgetMessage::MouseDown { pos, button } => {
|
||||
if *button == MouseButton::Left {
|
||||
WidgetMessage::MouseDown { pos, button }
|
||||
if *button == MouseButton::Left => {
|
||||
ui.capture_mouse(self.handle);
|
||||
|
||||
for signal in self.signals.borrow_mut().iter_mut() {
|
||||
@@ -354,9 +354,8 @@ impl Control for Ruler {
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseUp { button, pos } => {
|
||||
if *button == MouseButton::Left {
|
||||
WidgetMessage::MouseUp { button, pos }
|
||||
if *button == MouseButton::Left => {
|
||||
ui.release_mouse_capture();
|
||||
|
||||
if let Some(drag_context) = self.drag_context.take() {
|
||||
@@ -379,7 +378,6 @@ impl Control for Ruler {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseMove { pos, .. } => {
|
||||
if let Some(drag_context) = self.drag_context.as_ref() {
|
||||
match drag_context.entity {
|
||||
|
||||
@@ -326,15 +326,14 @@ impl PreviewPanel {
|
||||
self.mode = Mode::Move;
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseUp { button, .. } => {
|
||||
WidgetMessage::MouseUp { button, .. }
|
||||
if (button == MouseButton::Left || button == MouseButton::Middle)
|
||||
&& self.mode != Mode::None
|
||||
&& !message.handled()
|
||||
{
|
||||
=> {
|
||||
engine.user_interfaces.first_mut().release_mouse_capture();
|
||||
self.mode = Mode::None;
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseWheel { amount, .. } => {
|
||||
let step = 0.1;
|
||||
let k = 1.0 - amount.signum() * step;
|
||||
|
||||
@@ -789,15 +789,15 @@ impl SceneViewer {
|
||||
WidgetMessage::MouseMove { pos, .. } => {
|
||||
entry.on_mouse_move(pos, screen_bounds, engine, settings);
|
||||
}
|
||||
WidgetMessage::KeyUp(key) => {
|
||||
if entry.on_key_up(key, engine, &settings.key_bindings) {
|
||||
message.set_handled(true);
|
||||
}
|
||||
WidgetMessage::KeyUp(key)
|
||||
if entry.on_key_up(key, engine, &settings.key_bindings) =>
|
||||
{
|
||||
message.set_handled(true);
|
||||
}
|
||||
WidgetMessage::KeyDown(key) => {
|
||||
if entry.on_key_down(key, engine, &settings.key_bindings) {
|
||||
message.set_handled(true);
|
||||
}
|
||||
WidgetMessage::KeyDown(key)
|
||||
if entry.on_key_down(key, engine, &settings.key_bindings) =>
|
||||
{
|
||||
message.set_handled(true);
|
||||
}
|
||||
WidgetMessage::MouseEnter => {
|
||||
entry.on_mouse_enter(screen_bounds, engine, settings);
|
||||
@@ -816,18 +816,20 @@ impl SceneViewer {
|
||||
} else if message.destination() == self.scene_gizmo_image {
|
||||
if let Some(game_scene) = entry.controller.downcast_mut::<GameScene>() {
|
||||
match *msg {
|
||||
WidgetMessage::MouseDown { button, pos, .. } => {
|
||||
if button == MouseButton::Left {
|
||||
let rel_pos = pos - ui[self.scene_gizmo_image].screen_position();
|
||||
self.scene_gizmo.drag_context = Some(gizmo::DragContext {
|
||||
initial_click_pos: rel_pos,
|
||||
initial_rotation: gizmo::CameraRotation {
|
||||
pitch: game_scene.camera_controller.pitch(),
|
||||
yaw: game_scene.camera_controller.yaw(),
|
||||
},
|
||||
});
|
||||
ui.capture_mouse(self.scene_gizmo_image);
|
||||
}
|
||||
WidgetMessage::MouseDown {
|
||||
button: MouseButton::Left,
|
||||
pos,
|
||||
..
|
||||
} => {
|
||||
let rel_pos = pos - ui[self.scene_gizmo_image].screen_position();
|
||||
self.scene_gizmo.drag_context = Some(gizmo::DragContext {
|
||||
initial_click_pos: rel_pos,
|
||||
initial_rotation: gizmo::CameraRotation {
|
||||
pitch: game_scene.camera_controller.pitch(),
|
||||
yaw: game_scene.camera_controller.yaw(),
|
||||
},
|
||||
});
|
||||
ui.capture_mouse(self.scene_gizmo_image);
|
||||
}
|
||||
WidgetMessage::MouseUp { pos, button } => {
|
||||
if button == MouseButton::Left {
|
||||
|
||||
@@ -458,7 +458,7 @@ fn create_surfaces(
|
||||
surfaces.push(surface);
|
||||
} else {
|
||||
assert_eq!(data_set.len(), model.materials.len());
|
||||
for (&material_handle, data) in model.materials.iter().zip(data_set.into_iter()) {
|
||||
for (&material_handle, data) in model.materials.iter().zip(data_set) {
|
||||
let mut surface_data = data.base_mesh_builder.build();
|
||||
surface_data.blend_shapes_container =
|
||||
make_blend_shapes_container(&surface_data.vertex_buffer, data.blend_shapes);
|
||||
|
||||
@@ -105,18 +105,16 @@ impl FbxScene {
|
||||
nodes,
|
||||
)?));
|
||||
}
|
||||
"Video" => {
|
||||
if object.get_attrib(2)?.as_string() == "Clip" {
|
||||
"Video"
|
||||
if object.get_attrib(2)?.as_string() == "Clip" => {
|
||||
component_handle = components
|
||||
.spawn(FbxComponent::Video(FbxVideo::read(*object_handle, nodes)?));
|
||||
}
|
||||
}
|
||||
"NodeAttribute" => {
|
||||
if object.attrib_count() > 2 && object.get_attrib(2)?.as_string() == "Light" {
|
||||
"NodeAttribute"
|
||||
if object.attrib_count() > 2 && object.get_attrib(2)?.as_string() == "Light" => {
|
||||
component_handle = components
|
||||
.spawn(FbxComponent::Light(FbxLight::read(*object_handle, nodes)?));
|
||||
}
|
||||
}
|
||||
"AnimationCurve" => {
|
||||
component_handle = components.spawn(FbxComponent::AnimationCurve(
|
||||
FbxAnimationCurve::read(*object_handle, nodes)?,
|
||||
|
||||
@@ -1062,22 +1062,20 @@ impl NodeTrait for Collider {
|
||||
}
|
||||
}
|
||||
}
|
||||
ColliderShape::Heightfield(heightfield) => {
|
||||
if !scene.graph.is_valid_handle(heightfield.geometry_source.0) {
|
||||
ColliderShape::Heightfield(heightfield)
|
||||
if !scene.graph.is_valid_handle(heightfield.geometry_source.0) => {
|
||||
message += &format!(
|
||||
"Heightfield data source {} handle is invalid!",
|
||||
heightfield.geometry_source.0
|
||||
);
|
||||
}
|
||||
}
|
||||
ColliderShape::Polyhedron(polyhedron) => {
|
||||
if !scene.graph.is_valid_handle(polyhedron.geometry_source.0) {
|
||||
ColliderShape::Polyhedron(polyhedron)
|
||||
if !scene.graph.is_valid_handle(polyhedron.geometry_source.0) => {
|
||||
message += &format!(
|
||||
"Polyhedron data source {} handle is invalid!",
|
||||
polyhedron.geometry_source.0
|
||||
);
|
||||
}
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
|
||||
|
||||
@@ -721,22 +721,20 @@ impl NodeTrait for Collider {
|
||||
}
|
||||
}
|
||||
}
|
||||
ColliderShape::Heightfield(heightfield) => {
|
||||
if !scene.graph.is_valid_handle(heightfield.geometry_source.0) {
|
||||
ColliderShape::Heightfield(heightfield)
|
||||
if !scene.graph.is_valid_handle(heightfield.geometry_source.0) => {
|
||||
message += &format!(
|
||||
"Heightfield shape data handle {} is invalid!",
|
||||
heightfield.geometry_source.0
|
||||
);
|
||||
}
|
||||
}
|
||||
ColliderShape::TileMap(tile_map) => {
|
||||
if !scene.graph.is_valid_handle(tile_map.tile_map.0) {
|
||||
ColliderShape::TileMap(tile_map)
|
||||
if !scene.graph.is_valid_handle(tile_map.tile_map.0) => {
|
||||
message += &format!(
|
||||
"Tile map shape data handle {} is invalid!",
|
||||
tile_map.tile_map.0
|
||||
);
|
||||
}
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
|
||||
|
||||
@@ -436,7 +436,7 @@ impl SceneLoader {
|
||||
));
|
||||
|
||||
// Wait everything.
|
||||
let results = join_all(used_resources.into_iter()).await;
|
||||
let results = join_all(used_resources).await;
|
||||
|
||||
for result in results {
|
||||
if let Err(err) = result {
|
||||
|
||||
@@ -272,12 +272,9 @@ pub struct ProgressData {
|
||||
impl ProgressData {
|
||||
/// Returns progress percentage in [0; 100] range.
|
||||
pub fn progress_percent(&self) -> u32 {
|
||||
let iterations = self.max_iterations.load(atomic::Ordering::SeqCst);
|
||||
if iterations > 0 {
|
||||
self.progress.load(atomic::Ordering::SeqCst) * 100 / iterations
|
||||
} else {
|
||||
0
|
||||
}
|
||||
(self.progress.load(atomic::Ordering::SeqCst) * 100)
|
||||
.checked_div(self.max_iterations.load(atomic::Ordering::SeqCst))
|
||||
.unwrap_or(0)
|
||||
}
|
||||
|
||||
/// Returns current stage.
|
||||
|
||||
@@ -1043,12 +1043,9 @@ impl ResourceManagerState {
|
||||
/// only on external resources, or if your game doing some heavy calculations this value
|
||||
/// can be combined with progress of your tasks.
|
||||
pub fn loading_progress(&self) -> usize {
|
||||
let registered = self.count_registered_resources();
|
||||
if registered > 0 {
|
||||
self.count_loaded_resources() * 100 / registered
|
||||
} else {
|
||||
100
|
||||
}
|
||||
(self.count_loaded_resources() * 100)
|
||||
.checked_div(self.count_registered_resources())
|
||||
.unwrap_or(100)
|
||||
}
|
||||
|
||||
fn try_get_event(&self) -> Option<Event> {
|
||||
|
||||
@@ -225,8 +225,8 @@ fn apply_tag(
|
||||
font: &FontResource,
|
||||
) {
|
||||
match (label, argument) {
|
||||
("i", None) => {
|
||||
if font.is_ok() {
|
||||
("i", None)
|
||||
if font.is_ok() => {
|
||||
let font = font.data_ref();
|
||||
update_font(
|
||||
runs,
|
||||
@@ -236,9 +236,8 @@ fn apply_tag(
|
||||
font.bold_italic.as_ref(),
|
||||
);
|
||||
}
|
||||
}
|
||||
("b", None) => {
|
||||
if font.is_ok() {
|
||||
("b", None)
|
||||
if font.is_ok() => {
|
||||
let font = font.data_ref();
|
||||
update_font(
|
||||
runs,
|
||||
@@ -248,7 +247,6 @@ fn apply_tag(
|
||||
font.bold_italic.as_ref(),
|
||||
);
|
||||
}
|
||||
}
|
||||
("size" | "s", Some(size)) => {
|
||||
if let Ok(size) = size.parse() {
|
||||
runs.push(Run::new(range).with_size(size));
|
||||
|
||||
@@ -195,16 +195,15 @@ impl Control for Button {
|
||||
message.set_handled(true);
|
||||
self.repeat_timer.replace(None);
|
||||
}
|
||||
WidgetMessage::KeyDown(key_code) => {
|
||||
WidgetMessage::KeyDown(key_code)
|
||||
if !message.handled()
|
||||
&& (*key_code == KeyCode::Enter
|
||||
|| *key_code == KeyCode::NumpadEnter
|
||||
|| *key_code == KeyCode::Space)
|
||||
{
|
||||
=> {
|
||||
ui.post(self.handle, ButtonMessage::Click);
|
||||
message.set_handled(true);
|
||||
}
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -203,19 +203,18 @@ impl Control for CheckBox {
|
||||
|
||||
if let Some(msg) = message.data::<WidgetMessage>() {
|
||||
match msg {
|
||||
WidgetMessage::MouseDown { button, .. } => {
|
||||
WidgetMessage::MouseDown { button, .. }
|
||||
if *button == MouseButton::Left
|
||||
&& (message.destination() == self.handle()
|
||||
|| self.widget.has_descendant(message.destination(), ui))
|
||||
{
|
||||
=> {
|
||||
ui.capture_mouse(self.handle());
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseUp { button, .. } => {
|
||||
WidgetMessage::MouseUp { button, .. }
|
||||
if *button == MouseButton::Left
|
||||
&& (message.destination() == self.handle()
|
||||
|| self.widget.has_descendant(message.destination(), ui))
|
||||
{
|
||||
=> {
|
||||
ui.release_mouse_capture();
|
||||
|
||||
if let Some(value) = *self.checked {
|
||||
@@ -226,14 +225,12 @@ impl Control for CheckBox {
|
||||
ui.send(self.handle(), CheckBoxMessage::Check(Some(true)));
|
||||
}
|
||||
}
|
||||
}
|
||||
WidgetMessage::KeyDown(key_code) => {
|
||||
if !message.handled() && *key_code == KeyCode::Space {
|
||||
WidgetMessage::KeyDown(key_code)
|
||||
if !message.handled() && *key_code == KeyCode::Space => {
|
||||
let checked = self.checked.map(|checked| !checked);
|
||||
ui.send(self.handle, CheckBoxMessage::Check(checked));
|
||||
message.set_handled(true);
|
||||
}
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
} else if let Some(&CheckBoxMessage::Check(value)) = message.data_for(self.handle) {
|
||||
|
||||
@@ -535,24 +535,22 @@ impl Control for ColorPoint {
|
||||
if message.direction() == MessageDirection::FromWidget {
|
||||
if let Some(msg) = message.data::<WidgetMessage>() {
|
||||
match msg {
|
||||
WidgetMessage::MouseDown { button, .. } => {
|
||||
if *button == MouseButton::Left {
|
||||
WidgetMessage::MouseDown { button, .. }
|
||||
if *button == MouseButton::Left => {
|
||||
ui.capture_mouse(self.handle);
|
||||
|
||||
self.dragging = true;
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseUp { button, .. } => {
|
||||
if *button == MouseButton::Left {
|
||||
WidgetMessage::MouseUp { button, .. }
|
||||
if *button == MouseButton::Left => {
|
||||
ui.release_mouse_capture();
|
||||
|
||||
self.dragging = false;
|
||||
|
||||
ui.post(self.handle, ColorPointMessage::Location(self.location));
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseMove { pos, .. } => {
|
||||
if self.dragging {
|
||||
WidgetMessage::MouseMove { pos, .. }
|
||||
if self.dragging => {
|
||||
let parent_canvas = ui.node(self.parent);
|
||||
|
||||
let cursor_x_local_to_parent =
|
||||
@@ -564,7 +562,6 @@ impl Control for ColorPoint {
|
||||
|
||||
self.invalidate_layout();
|
||||
}
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
}
|
||||
|
||||
+52
-53
@@ -309,22 +309,21 @@ impl Control for AlphaBar {
|
||||
if let Some(msg) = message.data::<WidgetMessage>() {
|
||||
if message.direction() == MessageDirection::FromWidget {
|
||||
match *msg {
|
||||
WidgetMessage::MouseDown { button, .. } => {
|
||||
if button == MouseButton::Left {
|
||||
self.is_picking = true;
|
||||
ui.capture_mouse(self.handle);
|
||||
}
|
||||
WidgetMessage::MouseDown {
|
||||
button: MouseButton::Left,
|
||||
..
|
||||
} => {
|
||||
self.is_picking = true;
|
||||
ui.capture_mouse(self.handle);
|
||||
}
|
||||
WidgetMessage::MouseMove { pos, .. } => {
|
||||
if self.is_picking {
|
||||
ui.send(self.handle, AlphaBarMessage::Alpha(self.alpha_at(pos)))
|
||||
}
|
||||
WidgetMessage::MouseMove { pos, .. } if self.is_picking => {
|
||||
ui.send(self.handle, AlphaBarMessage::Alpha(self.alpha_at(pos)))
|
||||
}
|
||||
WidgetMessage::MouseUp { button, .. } => {
|
||||
if self.is_picking && button == MouseButton::Left {
|
||||
self.is_picking = false;
|
||||
ui.release_mouse_capture();
|
||||
}
|
||||
WidgetMessage::MouseUp { button, .. }
|
||||
if self.is_picking && button == MouseButton::Left =>
|
||||
{
|
||||
self.is_picking = false;
|
||||
ui.release_mouse_capture();
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
@@ -470,22 +469,22 @@ impl Control for HueBar {
|
||||
if let Some(msg) = message.data::<WidgetMessage>() {
|
||||
if message.direction() == MessageDirection::FromWidget {
|
||||
match *msg {
|
||||
WidgetMessage::MouseDown { button, .. } => {
|
||||
if button == MouseButton::Left {
|
||||
self.is_picking = true;
|
||||
ui.capture_mouse(self.handle);
|
||||
}
|
||||
WidgetMessage::MouseDown {
|
||||
button: MouseButton::Left,
|
||||
..
|
||||
} => {
|
||||
self.is_picking = true;
|
||||
ui.capture_mouse(self.handle);
|
||||
}
|
||||
WidgetMessage::MouseMove { pos, .. } => {
|
||||
if self.is_picking {
|
||||
ui.send(self.handle, HueBarMessage::Hue(self.hue_at(pos)))
|
||||
}
|
||||
WidgetMessage::MouseMove { pos, .. } if self.is_picking => {
|
||||
ui.send(self.handle, HueBarMessage::Hue(self.hue_at(pos)))
|
||||
}
|
||||
WidgetMessage::MouseUp { button, .. } => {
|
||||
if self.is_picking && button == MouseButton::Left {
|
||||
self.is_picking = false;
|
||||
ui.release_mouse_capture();
|
||||
}
|
||||
WidgetMessage::MouseUp {
|
||||
button: MouseButton::Left,
|
||||
..
|
||||
} if self.is_picking => {
|
||||
self.is_picking = false;
|
||||
ui.release_mouse_capture();
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
@@ -645,34 +644,34 @@ impl Control for SaturationBrightnessField {
|
||||
if let Some(msg) = message.data::<WidgetMessage>() {
|
||||
if message.direction() == MessageDirection::FromWidget {
|
||||
match *msg {
|
||||
WidgetMessage::MouseDown { button, .. } => {
|
||||
if button == MouseButton::Left {
|
||||
self.is_picking = true;
|
||||
ui.capture_mouse(self.handle);
|
||||
}
|
||||
WidgetMessage::MouseDown {
|
||||
button: MouseButton::Left,
|
||||
..
|
||||
} => {
|
||||
self.is_picking = true;
|
||||
ui.capture_mouse(self.handle);
|
||||
}
|
||||
WidgetMessage::MouseMove { pos, .. } => {
|
||||
if self.is_picking {
|
||||
ui.send(
|
||||
self.handle,
|
||||
SaturationBrightnessFieldMessage::Brightness(
|
||||
self.brightness_at(pos),
|
||||
),
|
||||
);
|
||||
WidgetMessage::MouseMove { pos, .. } if self.is_picking => {
|
||||
ui.send(
|
||||
self.handle,
|
||||
SaturationBrightnessFieldMessage::Brightness(
|
||||
self.brightness_at(pos),
|
||||
),
|
||||
);
|
||||
|
||||
ui.send(
|
||||
self.handle,
|
||||
SaturationBrightnessFieldMessage::Saturation(
|
||||
self.saturation_at(pos),
|
||||
),
|
||||
);
|
||||
}
|
||||
ui.send(
|
||||
self.handle,
|
||||
SaturationBrightnessFieldMessage::Saturation(
|
||||
self.saturation_at(pos),
|
||||
),
|
||||
);
|
||||
}
|
||||
WidgetMessage::MouseUp { button, .. } => {
|
||||
if self.is_picking && button == MouseButton::Left {
|
||||
self.is_picking = false;
|
||||
ui.release_mouse_capture();
|
||||
}
|
||||
WidgetMessage::MouseUp {
|
||||
button: MouseButton::Left,
|
||||
..
|
||||
} if self.is_picking => {
|
||||
self.is_picking = false;
|
||||
ui.release_mouse_capture();
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
|
||||
+10
-15
@@ -560,25 +560,23 @@ impl Control for Tile {
|
||||
}
|
||||
}
|
||||
}
|
||||
&WidgetMessage::MouseDown { .. } => {
|
||||
&WidgetMessage::MouseDown { .. }
|
||||
if !message.handled()
|
||||
&& message.destination() == self.splitter
|
||||
&& !has_one_minimized(ui, &self.content)
|
||||
{
|
||||
=> {
|
||||
message.set_handled(true);
|
||||
self.dragging_splitter = true;
|
||||
ui.capture_mouse(self.splitter);
|
||||
}
|
||||
}
|
||||
&WidgetMessage::MouseUp { .. } => {
|
||||
if !message.handled() && message.destination() == self.splitter {
|
||||
&WidgetMessage::MouseUp { .. }
|
||||
if !message.handled() && message.destination() == self.splitter => {
|
||||
message.set_handled(true);
|
||||
self.dragging_splitter = false;
|
||||
ui.release_mouse_capture();
|
||||
}
|
||||
}
|
||||
&WidgetMessage::MouseMove { pos, .. } => {
|
||||
if self.dragging_splitter {
|
||||
&WidgetMessage::MouseMove { pos, .. }
|
||||
if self.dragging_splitter => {
|
||||
let bounds = self.screen_bounds();
|
||||
match self.content {
|
||||
TileContent::VerticalTiles {
|
||||
@@ -596,7 +594,6 @@ impl Control for Tile {
|
||||
_ => (),
|
||||
}
|
||||
}
|
||||
}
|
||||
WidgetMessage::Unlink => {
|
||||
// Check if this tile can be removed: only if it is split and sub-tiles are empty.
|
||||
match self.content {
|
||||
@@ -742,15 +739,14 @@ impl Control for Tile {
|
||||
}
|
||||
}
|
||||
WindowMessage::Close => match self.content {
|
||||
TileContent::MultiWindow { ref windows, .. } => {
|
||||
if windows.contains(&message.destination().to_variant()) {
|
||||
TileContent::MultiWindow { ref windows, .. }
|
||||
if windows.contains(&message.destination().to_variant()) => {
|
||||
let window = ui
|
||||
.node(message.destination())
|
||||
.cast::<Window>()
|
||||
.expect("must be window");
|
||||
self.undock(window, ui);
|
||||
}
|
||||
}
|
||||
TileContent::VerticalTiles { tiles, .. }
|
||||
| TileContent::HorizontalTiles { tiles, .. } => {
|
||||
let closed_window = message.destination().to_variant();
|
||||
@@ -882,8 +878,8 @@ impl Control for Tile {
|
||||
// Drop if it has any drop anchor.
|
||||
if self.drop_anchor.get().is_some() {
|
||||
match &self.content {
|
||||
TileContent::Empty => {
|
||||
if self.drop_anchor.get() == self.center_anchor {
|
||||
TileContent::Empty
|
||||
if self.drop_anchor.get() == self.center_anchor => {
|
||||
ui.send(
|
||||
self.handle,
|
||||
TileMessage::Content(TileContent::Window(
|
||||
@@ -895,7 +891,6 @@ impl Control for Tile {
|
||||
WidgetMessage::LinkWith(self.handle),
|
||||
);
|
||||
}
|
||||
}
|
||||
TileContent::Window(_) | TileContent::MultiWindow { .. } => {
|
||||
if self.drop_anchor.get() == self.left_anchor {
|
||||
// Split horizontally, dock to left.
|
||||
|
||||
@@ -219,15 +219,14 @@ impl Control for DropdownList {
|
||||
|
||||
if let Some(msg) = message.data::<WidgetMessage>() {
|
||||
match msg {
|
||||
WidgetMessage::MouseDown { .. } => {
|
||||
if message.destination() == self.handle()
|
||||
|| self.widget.has_descendant(message.destination(), ui)
|
||||
{
|
||||
WidgetMessage::MouseDown { .. }
|
||||
if (message.destination() == self.handle()
|
||||
|| self.widget.has_descendant(message.destination(), ui))
|
||||
=> {
|
||||
ui.send(self.handle, DropdownListMessage::Open);
|
||||
}
|
||||
}
|
||||
WidgetMessage::KeyDown(key_code) => {
|
||||
if !message.handled() {
|
||||
WidgetMessage::KeyDown(key_code)
|
||||
if !message.handled() => {
|
||||
if *key_code == KeyCode::ArrowDown {
|
||||
ui.send(self.handle, DropdownListMessage::Open);
|
||||
} else if *key_code == KeyCode::ArrowUp {
|
||||
@@ -235,7 +234,6 @@ impl Control for DropdownList {
|
||||
}
|
||||
message.set_handled(true);
|
||||
}
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
} else if let Some(msg) = message.data_for::<DropdownListMessage>(self.handle()) {
|
||||
|
||||
+10
-15
@@ -246,7 +246,7 @@ impl Control for HotKeyEditor {
|
||||
|
||||
if let Some(msg) = message.data::<WidgetMessage>() {
|
||||
match msg {
|
||||
WidgetMessage::KeyDown(key) => {
|
||||
WidgetMessage::KeyDown(key)
|
||||
if *self.editing
|
||||
&& !matches!(
|
||||
*key,
|
||||
@@ -257,7 +257,7 @@ impl Control for HotKeyEditor {
|
||||
| KeyCode::AltLeft
|
||||
| KeyCode::AltRight
|
||||
)
|
||||
{
|
||||
=> {
|
||||
ui.send(
|
||||
self.handle,
|
||||
HotKeyEditorMessage::Value(HotKey::Some {
|
||||
@@ -268,21 +268,18 @@ impl Control for HotKeyEditor {
|
||||
|
||||
message.set_handled(true);
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseDown { button, .. } => {
|
||||
if *button == MouseButton::Left {
|
||||
WidgetMessage::MouseDown { button, .. }
|
||||
if *button == MouseButton::Left => {
|
||||
if *self.editing {
|
||||
self.set_editing(false, ui);
|
||||
} else {
|
||||
self.set_editing(true, ui);
|
||||
}
|
||||
}
|
||||
}
|
||||
WidgetMessage::Unfocus => {
|
||||
if *self.editing {
|
||||
WidgetMessage::Unfocus
|
||||
if *self.editing => {
|
||||
self.set_editing(false, ui);
|
||||
}
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
}
|
||||
@@ -470,20 +467,18 @@ impl Control for KeyBindingEditor {
|
||||
|
||||
message.set_handled(true);
|
||||
}
|
||||
WidgetMessage::MouseDown { button, .. } => {
|
||||
if *button == MouseButton::Left {
|
||||
WidgetMessage::MouseDown { button, .. }
|
||||
if *button == MouseButton::Left => {
|
||||
if *self.editing {
|
||||
self.set_editing(false, ui);
|
||||
} else {
|
||||
self.set_editing(true, ui);
|
||||
}
|
||||
}
|
||||
}
|
||||
WidgetMessage::Unfocus => {
|
||||
if *self.editing {
|
||||
WidgetMessage::Unfocus
|
||||
if *self.editing => {
|
||||
self.set_editing(false, ui);
|
||||
}
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
}
|
||||
|
||||
+31
-46
@@ -2287,32 +2287,28 @@ impl UserInterface {
|
||||
|
||||
if let Some(msg) = message.data::<WidgetMessage>() {
|
||||
match msg {
|
||||
WidgetMessage::Focus => {
|
||||
WidgetMessage::Focus
|
||||
if self.nodes.is_valid_handle(message.destination())
|
||||
&& message.direction() == MessageDirection::ToWidget
|
||||
{
|
||||
=> {
|
||||
self.request_focus(message.destination());
|
||||
}
|
||||
}
|
||||
WidgetMessage::Unfocus => {
|
||||
WidgetMessage::Unfocus
|
||||
if self.nodes.is_valid_handle(message.destination())
|
||||
&& message.direction() == MessageDirection::ToWidget
|
||||
{
|
||||
=> {
|
||||
self.request_focus(self.root_canvas);
|
||||
}
|
||||
}
|
||||
WidgetMessage::Topmost => {
|
||||
if self.nodes.is_valid_handle(message.destination()) {
|
||||
WidgetMessage::Topmost
|
||||
if self.nodes.is_valid_handle(message.destination()) => {
|
||||
self.make_topmost(message.destination());
|
||||
}
|
||||
}
|
||||
WidgetMessage::Lowermost => {
|
||||
if self.nodes.is_valid_handle(message.destination()) {
|
||||
WidgetMessage::Lowermost
|
||||
if self.nodes.is_valid_handle(message.destination()) => {
|
||||
self.make_lowermost(message.destination());
|
||||
}
|
||||
}
|
||||
WidgetMessage::Unlink => {
|
||||
if self.nodes.is_valid_handle(message.destination()) {
|
||||
WidgetMessage::Unlink
|
||||
if self.nodes.is_valid_handle(message.destination()) => {
|
||||
self.unlink_node(message.destination());
|
||||
|
||||
let node = &self.nodes[message.destination()];
|
||||
@@ -2322,23 +2318,20 @@ impl UserInterface {
|
||||
WidgetMessage::DesiredPosition(new_position),
|
||||
);
|
||||
}
|
||||
}
|
||||
&WidgetMessage::LinkWith(parent) => {
|
||||
&WidgetMessage::LinkWith(parent)
|
||||
if self.nodes.is_valid_handle(message.destination())
|
||||
&& self.nodes.is_valid_handle(parent)
|
||||
{
|
||||
=> {
|
||||
self.link_nodes(message.destination(), parent, false);
|
||||
}
|
||||
}
|
||||
&WidgetMessage::LinkWithReverse(parent) => {
|
||||
&WidgetMessage::LinkWithReverse(parent)
|
||||
if self.nodes.is_valid_handle(message.destination())
|
||||
&& self.nodes.is_valid_handle(parent)
|
||||
{
|
||||
=> {
|
||||
self.link_nodes(message.destination(), parent, true);
|
||||
}
|
||||
}
|
||||
WidgetMessage::ReplaceChildren(children) => {
|
||||
if self.nodes.is_valid_handle(message.destination()) {
|
||||
WidgetMessage::ReplaceChildren(children)
|
||||
if self.nodes.is_valid_handle(message.destination()) => {
|
||||
let old_children = self.node(message.destination()).children().to_vec();
|
||||
for child in old_children.iter() {
|
||||
if self.nodes.is_valid_handle(*child) {
|
||||
@@ -2355,26 +2348,22 @@ impl UserInterface {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
WidgetMessage::Remove => {
|
||||
if self.nodes.is_valid_handle(message.destination()) {
|
||||
WidgetMessage::Remove
|
||||
if self.nodes.is_valid_handle(message.destination()) => {
|
||||
self.remove_node(message.destination());
|
||||
}
|
||||
}
|
||||
WidgetMessage::ContextMenu(context_menu) => {
|
||||
if self.nodes.is_valid_handle(message.destination()) {
|
||||
WidgetMessage::ContextMenu(context_menu)
|
||||
if self.nodes.is_valid_handle(message.destination()) => {
|
||||
let node = self.nodes.borrow_mut(message.destination());
|
||||
node.set_context_menu(context_menu.clone());
|
||||
}
|
||||
}
|
||||
WidgetMessage::Tooltip(tooltip) => {
|
||||
if self.nodes.is_valid_handle(message.destination()) {
|
||||
WidgetMessage::Tooltip(tooltip)
|
||||
if self.nodes.is_valid_handle(message.destination()) => {
|
||||
let node = self.nodes.borrow_mut(message.destination());
|
||||
node.set_tooltip(tooltip.clone());
|
||||
}
|
||||
}
|
||||
WidgetMessage::Center => {
|
||||
if self.nodes.is_valid_handle(message.destination()) {
|
||||
WidgetMessage::Center
|
||||
if self.nodes.is_valid_handle(message.destination()) => {
|
||||
let node = self.node(message.destination());
|
||||
let size = node.actual_initial_size();
|
||||
let parent = node.parent();
|
||||
@@ -2389,14 +2378,12 @@ impl UserInterface {
|
||||
WidgetMessage::DesiredPosition((parent_size - size).scale(0.5)),
|
||||
);
|
||||
}
|
||||
}
|
||||
WidgetMessage::RenderTransform(_) => {
|
||||
if self.nodes.is_valid_handle(message.destination()) {
|
||||
WidgetMessage::RenderTransform(_)
|
||||
if self.nodes.is_valid_handle(message.destination()) => {
|
||||
self.update_visual_transform(message.destination());
|
||||
}
|
||||
}
|
||||
WidgetMessage::AdjustPositionToFit => {
|
||||
if self.nodes.is_valid_handle(message.destination()) {
|
||||
WidgetMessage::AdjustPositionToFit
|
||||
if self.nodes.is_valid_handle(message.destination()) => {
|
||||
let node = self.node(message.destination());
|
||||
let mut position = node.actual_local_position();
|
||||
let size = node.actual_initial_size();
|
||||
@@ -2425,7 +2412,6 @@ impl UserInterface {
|
||||
WidgetMessage::DesiredPosition(position),
|
||||
);
|
||||
}
|
||||
}
|
||||
WidgetMessage::Align {
|
||||
relative_to,
|
||||
horizontal_alignment,
|
||||
@@ -2501,8 +2487,8 @@ impl UserInterface {
|
||||
}
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseUp { button, .. } => {
|
||||
if *button == MouseButton::Right && !message.handled() {
|
||||
WidgetMessage::MouseUp { button, .. }
|
||||
if *button == MouseButton::Right && !message.handled() => {
|
||||
if let Ok(picked) = self.nodes.try_borrow(self.picked_node) {
|
||||
// Get the context menu from the current node or a parent node
|
||||
let (context_menu, target) = if picked.context_menu().is_some() {
|
||||
@@ -2534,7 +2520,6 @@ impl UserInterface {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
@@ -3517,7 +3502,7 @@ impl UserInterface {
|
||||
));
|
||||
|
||||
// Wait everything.
|
||||
join_all(used_resources.into_iter()).await;
|
||||
join_all(used_resources).await;
|
||||
|
||||
ui.resolve();
|
||||
|
||||
|
||||
@@ -560,8 +560,8 @@ impl Control for MenuItem {
|
||||
}
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseUp { .. } => {
|
||||
if !message.handled() {
|
||||
WidgetMessage::MouseUp { .. }
|
||||
if !message.handled() => {
|
||||
if self.items_container.is_empty() || *self.clickable_when_not_empty {
|
||||
ui.post(self.handle(), MenuItemMessage::Click);
|
||||
}
|
||||
@@ -577,7 +577,6 @@ impl Control for MenuItem {
|
||||
}
|
||||
message.set_handled(true);
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseEnter => {
|
||||
// While parent menu active it is possible to open submenus
|
||||
// by simple mouse hover.
|
||||
@@ -595,19 +594,17 @@ impl Control for MenuItem {
|
||||
ui.send(self.handle(), MenuItemMessage::Open);
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseLeave => {
|
||||
if !self.is_opened(ui) {
|
||||
WidgetMessage::MouseLeave
|
||||
if !self.is_opened(ui) => {
|
||||
ui.send(self.handle, MenuItemMessage::Select(false));
|
||||
}
|
||||
}
|
||||
WidgetMessage::KeyDown(key_code) => {
|
||||
if !message.handled() && *self.is_selected && *key_code == KeyCode::Enter {
|
||||
WidgetMessage::KeyDown(key_code)
|
||||
if !message.handled() && *self.is_selected && *key_code == KeyCode::Enter => {
|
||||
ui.post(self.handle, MenuItemMessage::Click);
|
||||
let menu = find_menu(self.parent(), ui);
|
||||
ui.send(menu, MenuMessage::Deactivate);
|
||||
message.set_handled(true);
|
||||
}
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
} else if let Some(msg) = message.data_for::<MenuItemMessage>(self.handle) {
|
||||
|
||||
@@ -422,17 +422,16 @@ impl<T: NumericType> Control for NumericUpDown<T> {
|
||||
}
|
||||
} else if let Some(msg) = message.data::<WidgetMessage>() {
|
||||
match msg {
|
||||
WidgetMessage::MouseDown { button, pos, .. } => {
|
||||
WidgetMessage::MouseDown { button, pos, .. }
|
||||
// We can activate dragging either by clicking on increase or decrease buttons.
|
||||
if *button == MouseButton::Left
|
||||
&& (ui[*self.increase].has_descendant(message.destination(), ui)
|
||||
|| ui[*self.decrease].has_descendant(message.destination(), ui))
|
||||
{
|
||||
=> {
|
||||
self.drag_context = Some(DragContext::PreDrag {
|
||||
start_mouse_pos: pos.y,
|
||||
});
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseMove { pos, .. } => {
|
||||
if let Some(drag_context) = self.drag_context.as_ref() {
|
||||
match drag_context {
|
||||
|
||||
@@ -332,22 +332,21 @@ impl Control for ScrollBar {
|
||||
} else if let Some(msg) = message.data::<WidgetMessage>() {
|
||||
if message.destination() == *self.indicator {
|
||||
match msg {
|
||||
WidgetMessage::MouseDown { pos, .. } => {
|
||||
if self.indicator.is_some() {
|
||||
WidgetMessage::MouseDown { pos, .. }
|
||||
if self.indicator.is_some() => {
|
||||
let indicator_pos = ui.nodes.borrow(*self.indicator).screen_position();
|
||||
self.is_dragging = true;
|
||||
self.offset = indicator_pos - *pos;
|
||||
ui.capture_mouse(*self.indicator);
|
||||
message.set_handled(true);
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseUp { .. } => {
|
||||
self.is_dragging = false;
|
||||
ui.release_mouse_capture();
|
||||
message.set_handled(true);
|
||||
}
|
||||
WidgetMessage::MouseMove { pos: mouse_pos, .. } => {
|
||||
if self.indicator.is_some() {
|
||||
WidgetMessage::MouseMove { pos: mouse_pos, .. }
|
||||
if self.indicator.is_some() => {
|
||||
let indicator_canvas = &ui[*self.indicator_canvas];
|
||||
let indicator_size =
|
||||
ui.nodes.borrow(*self.indicator).actual_global_size();
|
||||
@@ -387,7 +386,6 @@ impl Control for ScrollBar {
|
||||
message.set_handled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -273,8 +273,8 @@ impl Control for ScrollViewer {
|
||||
} else if let Some(msg) = message.data::<ScrollBarMessage>() {
|
||||
if message.direction() == MessageDirection::FromWidget {
|
||||
match msg {
|
||||
ScrollBarMessage::Value(new_value) => {
|
||||
if !message.handled() {
|
||||
ScrollBarMessage::Value(new_value)
|
||||
if !message.handled() => {
|
||||
if message.destination() == self.v_scroll_bar
|
||||
&& self.v_scroll_bar.is_some()
|
||||
{
|
||||
@@ -291,7 +291,6 @@ impl Control for ScrollViewer {
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
&ScrollBarMessage::MaxValue(_) => {
|
||||
if message.destination() == self.v_scroll_bar && self.v_scroll_bar.is_some()
|
||||
{
|
||||
|
||||
@@ -1240,8 +1240,8 @@ impl Control for TextBox {
|
||||
// others are used directly to enter text.
|
||||
message.set_handled(true);
|
||||
}
|
||||
WidgetMessage::Focus => {
|
||||
if message.direction() == MessageDirection::FromWidget {
|
||||
WidgetMessage::Focus
|
||||
if message.direction() == MessageDirection::FromWidget => {
|
||||
self.reset_blink();
|
||||
self.has_focus = true;
|
||||
let end = self.end_position();
|
||||
@@ -1261,9 +1261,8 @@ impl Control for TextBox {
|
||||
.extend_from_slice(self.formatted_text.borrow().get_raw_text());
|
||||
}
|
||||
}
|
||||
}
|
||||
WidgetMessage::Unfocus => {
|
||||
if message.direction() == MessageDirection::FromWidget {
|
||||
WidgetMessage::Unfocus
|
||||
if message.direction() == MessageDirection::FromWidget => {
|
||||
self.selection_range.set_value_and_mark_modified(None);
|
||||
self.invalidate_visual();
|
||||
self.has_focus = false;
|
||||
@@ -1283,9 +1282,8 @@ impl Control for TextBox {
|
||||
self.recent.clear();
|
||||
self.recent.shrink_to(0);
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseDown { pos, button } => {
|
||||
if *button == MouseButton::Left {
|
||||
WidgetMessage::MouseDown { pos, button }
|
||||
if *button == MouseButton::Left => {
|
||||
let select = ui.keyboard_modifiers().shift;
|
||||
if !select {
|
||||
self.selection_range.set_value_and_mark_modified(None);
|
||||
@@ -1301,7 +1299,6 @@ impl Control for TextBox {
|
||||
|
||||
ui.capture_mouse(self.handle());
|
||||
}
|
||||
}
|
||||
WidgetMessage::DoubleClick {
|
||||
button: MouseButton::Left,
|
||||
} => {
|
||||
@@ -1311,13 +1308,12 @@ impl Control for TextBox {
|
||||
}
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseMove { pos, .. } => {
|
||||
if self.selecting {
|
||||
WidgetMessage::MouseMove { pos, .. }
|
||||
if self.selecting => {
|
||||
if let Some(position) = self.screen_pos_to_text_pos(*pos) {
|
||||
self.move_caret(position, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseUp { .. } => {
|
||||
self.selecting = false;
|
||||
ui.release_mouse_capture();
|
||||
|
||||
@@ -130,8 +130,8 @@ impl Control for Thumb {
|
||||
|
||||
if let Some(msg) = message.data::<WidgetMessage>() {
|
||||
match msg {
|
||||
WidgetMessage::MouseDown { pos, button } => {
|
||||
if !message.handled() && *button == MouseButton::Left {
|
||||
WidgetMessage::MouseDown { pos, button }
|
||||
if !message.handled() && *button == MouseButton::Left => {
|
||||
ui.capture_mouse(self.handle);
|
||||
message.set_handled(true);
|
||||
self.click_pos = *pos;
|
||||
@@ -142,9 +142,8 @@ impl Control for Thumb {
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseUp { button, .. } => {
|
||||
if ui.captured_node() == self.handle && *button == MouseButton::Left {
|
||||
WidgetMessage::MouseUp { button, .. }
|
||||
if ui.captured_node() == self.handle && *button == MouseButton::Left => {
|
||||
ui.post(
|
||||
self.handle,
|
||||
ThumbMessage::DragCompleted {
|
||||
@@ -154,9 +153,8 @@ impl Control for Thumb {
|
||||
|
||||
ui.release_mouse_capture();
|
||||
}
|
||||
}
|
||||
WidgetMessage::MouseMove { pos, state } => {
|
||||
if ui.captured_node() == self.handle && state.left == ButtonState::Pressed {
|
||||
WidgetMessage::MouseMove { pos, state }
|
||||
if ui.captured_node() == self.handle && state.left == ButtonState::Pressed => {
|
||||
ui.post(
|
||||
self.handle,
|
||||
ThumbMessage::DragDelta {
|
||||
@@ -168,7 +166,6 @@ impl Control for Thumb {
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,15 +92,14 @@ impl Control for ToggleButton {
|
||||
WidgetMessage::MouseDown { .. } => {
|
||||
ui.capture_mouse(self.handle());
|
||||
}
|
||||
WidgetMessage::MouseUp { .. } => {
|
||||
if ui.captured_node() == self.handle() {
|
||||
WidgetMessage::MouseUp { .. }
|
||||
if ui.captured_node() == self.handle() => {
|
||||
let new_state = !self.is_toggled;
|
||||
|
||||
ui.send(self.handle(), ToggleButtonMessage::Toggled(new_state));
|
||||
|
||||
ui.release_mouse_capture();
|
||||
}
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -465,8 +465,8 @@ impl Control for Tree {
|
||||
}
|
||||
}
|
||||
}
|
||||
WidgetMessage::DoubleClick { button } => {
|
||||
if *button == MouseButton::Left {
|
||||
WidgetMessage::DoubleClick { button }
|
||||
if *button == MouseButton::Left => {
|
||||
// Mimic click on expander button to have uniform behavior.
|
||||
ui.send(
|
||||
self.expander,
|
||||
@@ -475,7 +475,6 @@ impl Control for Tree {
|
||||
|
||||
message.set_handled(true);
|
||||
}
|
||||
}
|
||||
_ => (),
|
||||
}
|
||||
}
|
||||
|
||||
+24
-36
@@ -1255,51 +1255,42 @@ impl Widget {
|
||||
*self.foreground = foreground.clone();
|
||||
}
|
||||
WidgetMessage::Name(name) => self.name = ImmutableString::new(name),
|
||||
&WidgetMessage::Width(width) => {
|
||||
if *self.width != width {
|
||||
&WidgetMessage::Width(width)
|
||||
if *self.width != width => {
|
||||
self.set_width_notify(width);
|
||||
}
|
||||
}
|
||||
&WidgetMessage::Height(height) => {
|
||||
if *self.height != height {
|
||||
&WidgetMessage::Height(height)
|
||||
if *self.height != height => {
|
||||
self.set_height_notify(height);
|
||||
}
|
||||
}
|
||||
WidgetMessage::VerticalAlignment(vertical_alignment) => {
|
||||
if *self.vertical_alignment != *vertical_alignment {
|
||||
WidgetMessage::VerticalAlignment(vertical_alignment)
|
||||
if *self.vertical_alignment != *vertical_alignment => {
|
||||
self.set_vertical_alignment(*vertical_alignment);
|
||||
}
|
||||
}
|
||||
WidgetMessage::HorizontalAlignment(horizontal_alignment) => {
|
||||
if *self.horizontal_alignment != *horizontal_alignment {
|
||||
WidgetMessage::HorizontalAlignment(horizontal_alignment)
|
||||
if *self.horizontal_alignment != *horizontal_alignment => {
|
||||
self.set_horizontal_alignment(*horizontal_alignment);
|
||||
}
|
||||
}
|
||||
WidgetMessage::MaxSize(max_size) => {
|
||||
if *self.max_size != *max_size {
|
||||
WidgetMessage::MaxSize(max_size)
|
||||
if *self.max_size != *max_size => {
|
||||
self.set_max_size_notify(*max_size);
|
||||
}
|
||||
}
|
||||
WidgetMessage::MinSize(min_size) => {
|
||||
if *self.min_size != *min_size {
|
||||
WidgetMessage::MinSize(min_size)
|
||||
if *self.min_size != *min_size => {
|
||||
self.set_min_size_notify(*min_size);
|
||||
}
|
||||
}
|
||||
&WidgetMessage::Row(row) => {
|
||||
if *self.row != row {
|
||||
&WidgetMessage::Row(row)
|
||||
if *self.row != row => {
|
||||
self.set_row_notify(row);
|
||||
}
|
||||
}
|
||||
&WidgetMessage::Column(column) => {
|
||||
if *self.column != column {
|
||||
&WidgetMessage::Column(column)
|
||||
if *self.column != column => {
|
||||
self.set_column_notify(column);
|
||||
}
|
||||
}
|
||||
&WidgetMessage::Margin(margin) => {
|
||||
if *self.margin != margin {
|
||||
&WidgetMessage::Margin(margin)
|
||||
if *self.margin != margin => {
|
||||
self.set_margin_notify(margin);
|
||||
}
|
||||
}
|
||||
WidgetMessage::HitTestVisibility(hit_test_visibility) => {
|
||||
self.hit_test_visibility
|
||||
.set_value_and_mark_modified(*hit_test_visibility);
|
||||
@@ -1307,11 +1298,10 @@ impl Widget {
|
||||
&WidgetMessage::Visibility(visibility) => {
|
||||
self.set_visibility(visibility);
|
||||
}
|
||||
&WidgetMessage::DesiredPosition(pos) => {
|
||||
if *self.desired_local_position != pos {
|
||||
&WidgetMessage::DesiredPosition(pos)
|
||||
if *self.desired_local_position != pos => {
|
||||
self.set_desired_local_position_notify(pos);
|
||||
}
|
||||
}
|
||||
&WidgetMessage::Enabled(enabled) => {
|
||||
self.invalidate_layout();
|
||||
self.enabled.set_value_and_mark_modified(enabled);
|
||||
@@ -1319,20 +1309,18 @@ impl Widget {
|
||||
&WidgetMessage::Cursor(icon) => {
|
||||
self.cursor.set_value_and_mark_modified(icon);
|
||||
}
|
||||
WidgetMessage::LayoutTransform(transform) => {
|
||||
if &self.layout_transform != transform {
|
||||
WidgetMessage::LayoutTransform(transform)
|
||||
if &self.layout_transform != transform => {
|
||||
self.set_layout_transform(*transform);
|
||||
}
|
||||
}
|
||||
WidgetMessage::RenderTransform(transform) => {
|
||||
self.set_render_transform(*transform);
|
||||
}
|
||||
WidgetMessage::ZIndex(index) => {
|
||||
if *self.z_index != *index {
|
||||
WidgetMessage::ZIndex(index)
|
||||
if *self.z_index != *index => {
|
||||
self.set_z_index(*index);
|
||||
self.invalidate_layout();
|
||||
}
|
||||
}
|
||||
WidgetMessage::SortChildren(predicate) => {
|
||||
self.children
|
||||
.sort_unstable_by(|a, b| predicate.0(*a, *b, ui));
|
||||
|
||||
@@ -539,11 +539,10 @@ impl Control for Window {
|
||||
}
|
||||
}
|
||||
match msg {
|
||||
WidgetMessage::Unlink => {
|
||||
if message.destination() == self.handle() {
|
||||
WidgetMessage::Unlink
|
||||
if message.destination() == self.handle() => {
|
||||
self.initial_position = self.screen_position();
|
||||
}
|
||||
}
|
||||
WidgetMessage::KeyDown(key_code)
|
||||
if self.close_by_esc
|
||||
&& !self.is_docked(ui)
|
||||
|
||||
Reference in New Issue
Block a user