Resizable sizes a box from its right and bottom edges and a grip at its corner, within its least and greatest size; the grip is a Tab stop whose arrows resize a step. Rotatable turns an svg to its angle inside a ring whose knob a drag moves, Shift snapping to 15 degrees, with the arrows turning it a notch. SelectionArea selects items with a band drawn on empty space, a press, Command or Shift to add, and a cursor the arrows walk with Space to add or drop; Escape clears and Command-A takes all. The gallery shows gpui's own drag and drop, drag preview, double press and wheel zoom, with pointers for Sortable, LongPress and PanZoom; pinch stays blocked, gpui 0.2.2 forwards no magnify event. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
22 lines
465 B
Rust
22 lines
465 B
Rust
use gpui::Rems;
|
|
|
|
use super::{Theme, tokens::px_to_rems};
|
|
|
|
/// Interaction's measures.
|
|
#[derive(Clone, Copy, Debug, PartialEq)]
|
|
pub struct InteractionSizes {
|
|
/// What an arrow key resizes a box by.
|
|
pub step: Rems,
|
|
/// A resize corner's grip, square.
|
|
pub grip: Rems,
|
|
}
|
|
|
|
impl Theme {
|
|
pub fn interaction(&self) -> InteractionSizes {
|
|
InteractionSizes {
|
|
step: px_to_rems(8.0),
|
|
grip: px_to_rems(12.0),
|
|
}
|
|
}
|
|
}
|