(data: &SceneNodeData, parent: EditorUiRect)
| 2634 | begin_ui_drag(state, ctx.id.as_u64(), key, handle, pointer); |
| 2635 | state.log = format!("resize node\n{handle}"); |
| 2636 | } |
| 2637 | }); |
| 2638 | refresh_all(ctx); |
| 2639 | return; |
| 2640 | } |
| 2641 | if tool == "rotate" |
| 2642 | && let Some(pointer) = pointer |
| 2643 | && pick_rotation_zone(ctx, pointer).is_some() |
| 2644 | { |
| 2645 | let _ = with_state_mut!(ctx.run, EditorState, ctx.id, |state| { |
| 2646 | if let Some(key) = state.selected_key { |
| 2647 | begin_ui_drag(state, ctx.id.as_u64(), key, "rotate", pointer); |
| 2648 | state.log = "rotate node".to_string(); |
| 2649 | } |
| 2650 | }); |
| 2651 | refresh_all(ctx); |
| 2652 | return; |
| 2653 | } |
| 2654 | let Some(key) = pick_preview_ui(ctx) else { |
| 2655 | deselect_viewport_node(ctx, "deselect\nui empty"); |
| 2656 | return; |
| 2657 | }; |
| 2658 | let _ = with_state_mut!(ctx.run, EditorState, ctx.id, |state| { |
| 2659 | state.selected_key = Some(key); |
| 2660 | state.ui_drag_key = None; |
| 2661 | state.ui_drag_mode.clear(); |
| 2662 | if tool == "move" { |
| 2663 | if let Some(pointer) = pointer { |
| 2664 | begin_ui_drag(state, ctx.id.as_u64(), key, "move", pointer); |
| 2665 | } |
| 2666 | state.log = format!("move node\nkey={key}"); |
| 2667 | } else { |
no test coverage detected