Skip to main content

PinstarState

Struct PinstarState 

Source
pub struct PinstarState {
Show 58 fields pub path: PathBuf, pub format: SupportedFormat, pub data: CanvasData, pub settings: Settings, pub viewport_x: f64, pub viewport_y: f64, pub zoom: f64, pub selection: Selection<String>, pub selected_edge_id: Option<String>, pub floating_editor: Option<TextArea<'static>>, pub raw_editor: TextArea<'static>, pub editor_focus: bool, pub mouse_pos: Option<(u16, u16)>, pub last_mouse_pos: Option<(u16, u16)>, pub last_click: Option<(u16, u16, Instant)>, pub context_menu: Option<PinstarContextMenu>, pub context_menu_pos: (f64, f64), pub connection_source_id: Option<String>, pub resizing_node_id: Option<String>, pub is_dragging_resize_handle: bool, pub deleting_connection_source_id: Option<String>, pub trigger_ext_editor: bool, pub trigger_whole_file_editor: bool, pub trigger_image_picker: bool, pub show_editor_pane: bool, pub drag_start_pos: Option<(f64, f64)>, pub rename_popup: Option<TextArea<'static>>, pub ext_editor_enabled: bool, pub last_mouse_canvas_pos: Option<(f64, f64)>, pub drag_captured_nodes: HashSet<String>, pub drag_group_children: HashSet<String>, pub show_grid: bool, pub mouse_selecting: bool, pub mouse_dragged: bool, pub locked: bool, pub last_modified: SystemTime, pub orthogonal_connections: bool, pub show_help: bool, pub help_tab: PinstarHelpTab, pub help_scroll: u16, pub select_rect_start: Option<(f64, f64)>, pub select_rect_end: Option<(f64, f64)>, pub has_layout_override: bool, pub undo_stack: Vec<PinstarSnapshot>, pub redo_stack: Vec<PinstarSnapshot>, pub rename_popup_rect: Option<Rect>, pub edge_overlay_rect: Option<Rect>, pub help_requested: bool, pub footer_hint: String, pub last_area: Rect, pub is_panning: bool, pub marquee: MarqueeState, pub right_down_screen: Option<(u16, u16)>, pub last_zoom_at: Option<Instant>, pub has_dragged: bool, pub image_cache: ImageCache, pub image_picker: Option<Picker>, pub image_decode_tx: Option<Sender<ImageJob>>, /* private fields */
}

Fields§

§path: PathBuf§format: SupportedFormat§data: CanvasData§settings: Settings§viewport_x: f64§viewport_y: f64§zoom: f64§selection: Selection<String>§selected_edge_id: Option<String>§floating_editor: Option<TextArea<'static>>§raw_editor: TextArea<'static>§editor_focus: bool§mouse_pos: Option<(u16, u16)>§last_mouse_pos: Option<(u16, u16)>§last_click: Option<(u16, u16, Instant)>§context_menu: Option<PinstarContextMenu>§context_menu_pos: (f64, f64)§connection_source_id: Option<String>§resizing_node_id: Option<String>§is_dragging_resize_handle: bool§deleting_connection_source_id: Option<String>§trigger_ext_editor: bool§trigger_whole_file_editor: bool§trigger_image_picker: bool§show_editor_pane: bool§drag_start_pos: Option<(f64, f64)>§rename_popup: Option<TextArea<'static>>§ext_editor_enabled: bool§last_mouse_canvas_pos: Option<(f64, f64)>§drag_captured_nodes: HashSet<String>§drag_group_children: HashSet<String>§show_grid: bool§mouse_selecting: bool§mouse_dragged: bool§locked: bool§last_modified: SystemTime§orthogonal_connections: bool§show_help: bool§help_tab: PinstarHelpTab§help_scroll: u16§select_rect_start: Option<(f64, f64)>§select_rect_end: Option<(f64, f64)>§has_layout_override: bool§undo_stack: Vec<PinstarSnapshot>§redo_stack: Vec<PinstarSnapshot>§rename_popup_rect: Option<Rect>§edge_overlay_rect: Option<Rect>§help_requested: bool§footer_hint: String§last_area: Rect§is_panning: bool§marquee: MarqueeState§right_down_screen: Option<(u16, u16)>§last_zoom_at: Option<Instant>§has_dragged: bool§image_cache: ImageCache§image_picker: Option<Picker>§image_decode_tx: Option<Sender<ImageJob>>

Implementations§

Source§

impl PinstarState

Source

pub fn load(path: &Path) -> Result<Self>

Source

pub fn set_save_handler( &mut self, handler: impl Fn(&Path, &str, &str) -> Result<()> + Send + Sync + 'static, )

Let a host validate the loaded source and persist every eager save.

Source

pub fn save(&mut self) -> Result<()>

Source

pub fn take_save_error(&mut self) -> Option<String>

Source

pub fn last_save_failed(&self) -> bool

Source

pub fn active_mode_message(&self) -> Option<&'static str>

Returns the header-bar status message for the active transient mode (connection / delete-connection / resize), or None when idle.

Source

pub fn record_undo_state(&mut self)

Source

pub fn undo(&mut self) -> Result<()>

Source

pub fn redo(&mut self) -> Result<()>

Source

pub fn reload(&mut self) -> Result<()>

Source

pub fn all_selected_node_ids(&self) -> HashSet<String>

Source

pub fn select_nodes_in_rect(&mut self, x1: f64, y1: f64, x2: f64, y2: f64)

Source

pub fn delete_selected_node(&mut self)

Source

pub fn get_edge_segments( &self, edge: &CanvasEdge, ) -> Option<Vec<(f64, f64, f64, f64)>>

Source

pub fn select_edge_at(&mut self, cx: f64, cy: f64) -> Option<String>

Source

pub fn set_edge_color(&mut self, color: Option<String>)

Source

pub fn set_edge_style(&mut self, style: EdgeStyle)

Source

pub fn open_edge_context_menu(&mut self, x: u16, y: u16)

Source

pub fn open_edge_menu_centered(&mut self, area: Rect)

Opens the edge context menu centered in the given view area.

Source

pub fn selected_node_edges(&self) -> Vec<&CanvasEdge>

Edges connected to the currently selected node, in stable storage order. Used by the edge-list overlay and number-key selection.

Source

pub fn select_edge_of_selected_node(&mut self, index: usize) -> Option<String>

Selects the edge at the given 1-based index among the selected node’s connected edges (deselecting the node). Returns its id, or None if out of range / no node selected.

Source

pub fn is_view_transforming(&self) -> bool

Returns true while the view is undergoing continuous transforms (pan, zoom, node resize, connection drawing). During these states the pixel image render is suppressed to avoid churning the encode worker; cheap placeholder text is shown instead.

Source

pub fn sync_from_raw_editor(&mut self) -> Result<()>

Source

pub fn sync_to_raw_editor(&mut self)

Source

pub fn pan(&mut self, dx: f64, dy: f64)

Source

pub fn zoom_in(&mut self)

Source

pub fn zoom_out(&mut self)

Source

pub fn fit_to_view(&mut self, area: Rect)

Source

pub fn screen_to_canvas(&self, sx: u16, sy: u16, area: Rect) -> (f64, f64)

Source

pub fn node_at(&self, x: f64, y: f64) -> Option<String>

Source

pub fn select_node_at(&mut self, x: f64, y: f64) -> Option<String>

Source

pub fn center_on_selected(&mut self)

Source

pub fn select_node_in_direction(&mut self, dx: f64, dy: f64)

Source

pub fn toggle_editor(&mut self)

Source

pub fn open_context_menu( &mut self, x: u16, y: u16, canvas_x: f64, canvas_y: f64, )

Source

pub fn open_editor_context_menu(&mut self, x: u16, y: u16)

Source

pub fn open_color_menu(&mut self, x: u16, y: u16, edge: bool)

Source

pub fn open_shape_menu(&mut self, x: u16, y: u16)

Source

pub fn open_orientation_menu(&mut self, x: u16, y: u16)

Source

pub fn open_rename_popup(&mut self, mode: RenameMode)

Open the rename popup seeded from the selected node. Title mode renames the node title (clin); Id mode renames the node id and rewires edges (standalone bin).

Source

pub fn rename_node_title(&mut self, new_title: String)

Source

pub fn rename_node_id(&mut self, new_id: String)

Source

pub fn start_resize(&mut self)

Source

pub fn start_delete_connection(&mut self)

Source

pub fn delete_node_connections(&mut self)

Source

pub fn set_node_color(&mut self, color: Option<String>)

Source

pub fn set_node_shape(&mut self, shape: NodeShape)

Source

pub fn set_orientation(&mut self, orientation: DiagramOrientation)

Source

pub fn cycle_orientation(&mut self)

Source

pub fn add_text_node(&mut self, x: f64, y: f64)

Source

pub fn add_group(&mut self, x: f64, y: f64)

Source

pub fn add_image_node_with(&mut self, path: PathBuf, x: f64, y: f64)

Add an image file node at the given position. The host has already resolved the file path via its picker dialog.

Source

pub fn start_connection(&mut self)

Source

pub fn finish_connection(&mut self, target_id: &str)

Source

pub fn finish_delete_connection(&mut self, target_id: &str)

Source

pub fn resize_selected_node(&mut self, dw: f64, dh: f64)

Source

pub fn capture_drag_nodes(&mut self)

Source

pub fn capture_group_children(&mut self)

Source

pub fn move_selected_node(&mut self, dx: f64, dy: f64)

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Real + Zero + Arithmetics + Clone, Swp: WhitePoint<T>, Dwp: WhitePoint<T>, D: AdaptFrom<S, Swp, Dwp, T>,

Source§

fn adapt_into_using<M>(self, method: M) -> D
where M: TransformMatrix<T>,

👎Deprecated since 0.7.7:

replaced by palette::chromatic_adaptation::AdaptIntoUnclamped

Convert the source color to the destination color using the specified method.
Source§

fn adapt_into(self) -> D

👎Deprecated since 0.7.7:

replaced by palette::chromatic_adaptation::AdaptIntoUnclamped

Convert the source color to the destination color using the bradford method by default.
Source§

impl<T, C> AdaptIntoUnclamped<T> for C
where T: AdaptFromUnclamped<C>,

Source§

type Scalar = <T as AdaptFromUnclamped<C>>::Scalar

The number type that’s used as the color’s components.
Source§

fn adapt_into_unclamped_with<M>(self) -> T

Adapt a color of type Self into a color of type T, using the custom matrix M. Read more
Source§

fn adapt_into_unclamped(self) -> T
where Bradford: LmsToXyz<Self::Scalar> + XyzToLms<Self::Scalar>,

Adapt a color of type Self into a color of type T, using the Bradford matrix. Read more
Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T, C> ArraysFrom<C> for T
where C: IntoArrays<T>,

Source§

fn arrays_from(colors: C) -> T

Cast a collection of colors into a collection of arrays.
Source§

impl<T, C> ArraysInto<C> for T
where C: FromArrays<T>,

Source§

fn arrays_into(self) -> C

Cast this collection of arrays into a collection of colors.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for U
where T: FromCam16Unclamped<WpParam, U>,

Source§

type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T, C> ComponentsFrom<C> for T
where C: IntoComponents<T>,

Source§

fn components_from(colors: C) -> T

Cast a collection of colors into a collection of color components.
Source§

impl<T, C> ComponentsInto<C> for T

Source§

fn components_into(self) -> C

Cast this collection of color components into a collection of colors. Read more
Source§

impl<T> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromAngle<T> for T

Source§

fn from_angle(angle: T) -> T

Performs a conversion from angle.
Source§

impl<T, U> FromStimulus<U> for T
where U: IntoStimulus<T>,

Source§

fn from_stimulus(other: U) -> T

Converts other into Self, while performing the appropriate scaling, rounding and clamping.
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> IntoAngle<U> for T
where U: FromAngle<T>,

Source§

fn into_angle(self) -> U

Performs a conversion into T.
Source§

impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for U
where T: Cam16FromUnclamped<WpParam, U>,

Source§

type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar

The number type that’s used in parameters when converting.
Source§

fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T

Converts self into C, using the provided parameters.
Source§

impl<T, U> IntoColor<U> for T
where U: FromColor<T>,

Source§

fn into_color(self) -> U

Convert into T with values clamped to the color defined bounds Read more
Source§

impl<T, U> IntoColorUnclamped<U> for T
where U: FromColorUnclamped<T>,

Source§

fn into_color_unclamped(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> IntoStimulus<T> for T

Source§

fn into_stimulus(self) -> T

Converts self into T, while performing the appropriate scaling, rounding and clamping.
Source§

impl<T> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T, C> TryComponentsInto<C> for T
where C: TryFromComponents<T>,

Source§

type Error = <C as TryFromComponents<T>>::Error

The error for when try_into_colors fails to cast.
Source§

fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>

Try to cast this collection of color components into a collection of colors. Read more
Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T, U> TryIntoColor<U> for T
where U: TryFromColor<T>,

Source§

fn try_into_color(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
Source§

impl<C, U> UintsFrom<C> for U
where C: IntoUints<U>,

Source§

fn uints_from(colors: C) -> U

Cast a collection of colors into a collection of unsigned integers.
Source§

impl<C, U> UintsInto<C> for U
where C: FromUints<U>,

Source§

fn uints_into(self) -> C

Cast this collection of unsigned integers into a collection of colors.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V