| 20962 | } |
| 20963 | |
| 20964 | void ImGui::DockBuilderCopyWindowSettings(const char* src_name, const char* dst_name) |
| 20965 | { |
| 20966 | ImGuiWindow* src_window = FindWindowByName(src_name); |
| 20967 | if (src_window == NULL) |
| 20968 | return; |
| 20969 | if (ImGuiWindow* dst_window = FindWindowByName(dst_name)) |
| 20970 | { |
| 20971 | dst_window->Pos = src_window->Pos; |
| 20972 | dst_window->Size = src_window->Size; |
| 20973 | dst_window->SizeFull = src_window->SizeFull; |
| 20974 | dst_window->Collapsed = src_window->Collapsed; |
| 20975 | } |
| 20976 | else |
| 20977 | { |
| 20978 | ImGuiWindowSettings* dst_settings = FindWindowSettingsByID(ImHashStr(dst_name)); |
| 20979 | if (!dst_settings) |
| 20980 | dst_settings = CreateNewWindowSettings(dst_name); |
| 20981 | ImVec2ih window_pos_2ih = ImVec2ih(src_window->Pos); |
| 20982 | if (src_window->ViewportId != 0 && src_window->ViewportId != IMGUI_VIEWPORT_DEFAULT_ID) |
| 20983 | { |
| 20984 | dst_settings->ViewportPos = window_pos_2ih; |
| 20985 | dst_settings->ViewportId = src_window->ViewportId; |
| 20986 | dst_settings->Pos = ImVec2ih(0, 0); |
| 20987 | } |
| 20988 | else |
| 20989 | { |
| 20990 | dst_settings->Pos = window_pos_2ih; |
| 20991 | } |
| 20992 | dst_settings->Size = ImVec2ih(src_window->SizeFull); |
| 20993 | dst_settings->Collapsed = src_window->Collapsed; |
| 20994 | } |
| 20995 | } |
| 20996 | |
| 20997 | // FIXME: Will probably want to change this signature, in particular how the window remapping pairs are passed. |
| 20998 | void ImGui::DockBuilderCopyDockSpace(ImGuiID src_dockspace_id, ImGuiID dst_dockspace_id, ImVector<const char*>* in_window_remap_pairs) |