MCPcopy Create free account
hub / github.com/OpenLoco/OpenLoco / switchTab

Function switchTab

src/OpenLoco/src/Ui/Windows/MessageWindow.cpp:636–673  ·  view source on GitHub ↗

0x0042A716

Source from the content-addressed store, hash-verified

634
635 // 0x0042A716
636 static void switchTab(Window& self, WidgetIndex_t widgetIndex)
637 {
638 if (ToolManager::isToolActive(self.type, self.number))
639 {
640 ToolManager::toolCancel();
641 }
642
643 self.currentTab = widgetIndex - widx::tab_messages;
644 self.frameNo = 0;
645 self.flags &= ~(WindowFlags::maximised);
646
647 self.viewportRemove(0);
648
649 const auto& tabInfo = tabInformationByTabOffset[widgetIndex - widx::tab_messages];
650
651 self.holdableWidgets = 0;
652 self.eventHandlers = &tabInfo.events;
653 self.activatedWidgets = 0;
654 self.setWidgets(tabInfo.widgets);
655 self.disabledWidgets = 0;
656
657 self.invalidate();
658
659 if (self.currentTab == widx::tab_messages - widx::tab_messages)
660 {
661 Messages::tabReset(self);
662 }
663 if (self.currentTab == widx::tab_settings - widx::tab_messages)
664 {
665 Settings::tabReset(self);
666 }
667
668 self.callOnResize();
669 self.callPrepareDraw();
670 self.initScrollWidgets();
671 self.invalidate();
672 self.moveInsideScreenEdges();
673 }
674
675 // 0x0042AB92
676 static void drawTabs(Window& self, Gfx::DrawingContext& drawingCtx)

Callers 1

onMouseUpFunction · 0.70

Calls 10

isToolActiveFunction · 0.85
viewportRemoveMethod · 0.80
setWidgetsMethod · 0.80
callOnResizeMethod · 0.80
callPrepareDrawMethod · 0.80
initScrollWidgetsMethod · 0.80
moveInsideScreenEdgesMethod · 0.80
toolCancelFunction · 0.70
tabResetFunction · 0.70
invalidateMethod · 0.45

Tested by

no test coverage detected