MCPcopy Create free account
hub / github.com/davidgiven/fluxengine / drawLogicalMap

Function drawLogicalMap

src/gui2/summaryview.cc:221–329  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

219}
220
221static void drawLogicalMap(unsigned minPhysicalCylinder,
222 unsigned maxPhysicalCylinder,
223 unsigned minPhysicalHead,
224 unsigned maxPhysicalHead,
225 const Disk& disk,
226 const DiskLayout& diskLayout)
227{
228 auto originalFontSize = ImGui::GetFontSize();
229 int numPhysicalCylinders = maxPhysicalCylinder - minPhysicalCylinder + 1;
230 int numPhysicalHeads = maxPhysicalHead - minPhysicalHead + 1;
231 if (!numPhysicalCylinders || !numPhysicalHeads)
232 return;
233
234 if (ImGui::BeginTable("logicalMap",
235 numPhysicalCylinders + 1,
236 ImGuiTableFlags_NoSavedSettings |
237 ImGuiTableFlags_HighlightHoveredColumn |
238 ImGuiTableFlags_NoClip | ImGuiTableFlags_NoPadInnerX |
239 ImGuiTableFlags_NoPadOuterX | ImGuiTableFlags_Borders))
240 {
241 DEFER(ImGui::EndTable());
242
243 ImGui::PushFont(NULL, originalFontSize * 0.6);
244 DEFER(ImGui::PopFont());
245
246 ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, {0, 0});
247 DEFER(ImGui::PopStyleVar());
248
249 float rowHeight = originalFontSize * 0.6 * 2.0;
250 ImGui::TableSetupColumn(
251 "", ImGuiTableColumnFlags_WidthFixed, originalFontSize);
252
253 for (unsigned physicalHead = minPhysicalHead;
254 physicalHead <= maxPhysicalHead;
255 physicalHead++)
256 {
257 unsigned logicalHead =
258 diskLayout.remapHeadPhysicalToLogical(physicalHead);
259
260 ImGui::TableNextRow(ImGuiTableRowFlags_None, rowHeight);
261 ImGui::TableNextColumn();
262
263 auto text = fmt::format("h{}", logicalHead);
264 auto textSize = ImGui::CalcTextSize(text.c_str());
265 ImGui::SetCursorPos(
266 {ImGui::GetCursorPosX() + ImGui::GetColumnWidth() / 2 -
267 textSize.x / 2,
268 ImGui::GetCursorPosY() + rowHeight / 2 - textSize.y / 2});
269 ImGui::Text("%s", text.c_str());
270
271 ImGui::PushStyleVar(
272 ImGuiStyleVar_SelectableTextAlign, ImVec2(0.5f, 0.5f));
273 DEFER(ImGui::PopStyleVar());
274
275 for (unsigned physicalCylinder = minPhysicalCylinder;
276 physicalCylinder <= maxPhysicalCylinder;
277 physicalCylinder++)
278 {

Callers 1

drawContentMethod · 0.85

Calls 6

TextFunction · 0.85
ImVec2Class · 0.85
analyseTrackFunction · 0.85
getActivityLabelFunction · 0.85
drawCylinderRuleFunction · 0.85

Tested by

no test coverage detected