dear_imnodes/
ui_ext.rs

1use dear_imgui_rs::Ui;
2
3use crate::{Context, EditorContext, NodeEditor, NodesUi};
4
5/// Ui extension entry point for ImNodes
6pub trait ImNodesExt {
7    fn imnodes<'ui>(&'ui self, ctx: &'ui Context) -> NodesUi<'ui>;
8    fn imnodes_editor<'ui>(
9        &'ui self,
10        ctx: &'ui Context,
11        editor: Option<&'ui EditorContext>,
12    ) -> NodeEditor<'ui>;
13}
14
15impl ImNodesExt for Ui {
16    fn imnodes<'ui>(&'ui self, ctx: &'ui Context) -> NodesUi<'ui> {
17        NodesUi::new(self, ctx)
18    }
19
20    fn imnodes_editor<'ui>(
21        &'ui self,
22        ctx: &'ui Context,
23        editor: Option<&'ui EditorContext>,
24    ) -> NodeEditor<'ui> {
25        self.imnodes(ctx).editor(editor)
26    }
27}
28
29// editor() is implemented in context.rs to access private fields