pub struct RenderContext<'a> {
pub graph: &'a Graph,
pub port_offset_cache: &'a mut PortLayoutCache,
pub viewport: &'a Viewport,
pub renderers: &'a RendererRegistry,
pub window: &'a Window,
pub layer: RenderLayer,
pub alignment_guides: Option<&'a AlignmentGuides>,
pub theme: &'a FlowTheme,
}Fields§
§graph: &'a Graph§port_offset_cache: &'a mut PortLayoutCache§viewport: &'a Viewport§renderers: &'a RendererRegistry§window: &'a Window§layer: RenderLayer§alignment_guides: Option<&'a AlignmentGuides>Populated while dragging nodes when alignment matches other nodes.
theme: &'a FlowThemeActive canvas theme (from FlowCanvas::theme).
Implementations§
Source§impl<'a> RenderContext<'a>
impl<'a> RenderContext<'a>
pub fn new( graph: &'a mut Graph, port_offset_cache: &'a mut PortLayoutCache, viewport: &'a Viewport, renderers: &'a RendererRegistry, window: &'a Window, layer: RenderLayer, alignment_guides: Option<&'a AlignmentGuides>, theme: &'a FlowTheme, ) -> Self
pub fn create_node(&self, node_type: &str) -> NodeBuilder
pub fn create_edge(&self) -> EdgeBuilder
pub fn next_node_id(&self) -> NodeId
pub fn next_port_id(&self) -> PortId
pub fn next_edge_id(&self) -> EdgeId
pub fn get_node(&self, id: &NodeId) -> Option<&Node>
pub fn get_node_render(&self, id: &NodeId) -> Option<&dyn NodeRenderer>
pub fn nodes(&self) -> &HashMap<NodeId, Node>
pub fn node_order(&self) -> &Vec<NodeId>
pub fn new_edge(&self) -> Edge
pub fn selection_bounds(&self) -> Option<Bounds<Pixels>>
pub fn selected_nodes_with_positions(&self) -> HashMap<NodeId, Point<Pixels>>
pub fn hit_node(&self, mouse: Point<Pixels>) -> Option<NodeId>
pub fn world_to_screen(&self, p: Point<Pixels>) -> Point<Pixels>
Sourcepub fn node_card_shell(
&self,
node: &Node,
selected: bool,
variant: NodeCardVariant,
) -> Div
pub fn node_card_shell( &self, node: &Node, selected: bool, variant: NodeCardVariant, ) -> Div
Absolute-positioned node card shell: screen origin, zoom-scaled size, rounded rect and border.
Chain .child(...) for the inner body, then .into_any() (see gpui::Element).
pub fn screen_to_world(&self, p: Point<Pixels>) -> Point<Pixels>
pub fn is_node_visible(&self, node_id: &NodeId) -> bool
pub fn is_edge_visible(&self, edge: &Edge) -> bool
pub fn port_offset_cached( &self, node_id: &NodeId, port_id: &PortId, ) -> Option<Point<Pixels>>
pub fn cache_all_node_port_offset(&mut self)
pub fn cache_port_offset_with_nodes(&mut self, node_ids: &Vec<NodeId>)
pub fn cache_port_offset_with_edge(&mut self, edge_id: &EdgeId)
pub fn cache_port_offset_with_port(&mut self, port_id: &PortId)
Auto Trait Implementations§
impl<'a> Freeze for RenderContext<'a>
impl<'a> !RefUnwindSafe for RenderContext<'a>
impl<'a> !Send for RenderContext<'a>
impl<'a> !Sync for RenderContext<'a>
impl<'a> Unpin for RenderContext<'a>
impl<'a> UnsafeUnpin for RenderContext<'a>
impl<'a> !UnwindSafe for RenderContext<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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