AssemblyBrowser.ListNode.Draw C# (CSharp) Method

Draw() public method

public Draw ( ) : void
return void
        public unsafe void Draw()
        {
            ImGui.PushID(ID.ToString());
            if (ImGui.Selectable($"##{ID}", IsSelected))
            {
                bool isCtrlPressed = ImGuiNative.igGetIO()->KeyCtrl == 1;

                if (!isCtrlPressed && IsSelected || IsCollapsed)
                {
                    IsCollapsed = !IsCollapsed;
                }

                if (IsSelected && isCtrlPressed)
                {
                    ListView.SetSelectedNode(null);
                }
                else
                {
                    ListView.SetSelectedNode(this);
                }
            }
            ImGui.PopID();
            if (Children.Any())
            {
                ImGui.SetNextTreeNodeOpened(!IsCollapsed);
                PreDrawNodeLabel();
                ImGui.SameLine();
                if (ImGui.TreeNode(Label))
                {
                    PostDrawNodeLabel();
                    foreach (IListNode node in Children)
                    {
                        node.Draw();
                    }

                    ImGui.TreePop();
                }

                if (IsCollapsed)
                {
                    PostDrawNodeLabel();
                }
            }
            else
            {
                PreDrawNodeLabel();
                ImGui.SameLine();
                ImGui.Text(Label);
                PostDrawNodeLabel();
            }

        }