public void Build(ImGui gui) { owner = gui; if (source != null && gui.isBuilding) { var rect = source.TranslateRect(sourceRect, gui); if (ShoudBuild(source, sourceRect, gui, rect)) { var contentSize = contents.CalculateState(width, gui.pixelsPerUnit); var position = CalculatePosition(gui, rect, contentSize); var parentRect = new Rect(position, contentSize); gui.DrawPanel(parentRect, contents); } else { source = null; } } }