143 std::unique_ptr<WindowManager> m_windowManager;
144 std::unique_ptr<UIRenderer> m_uiRenderer;
145 std::unique_ptr<UpdateChecker> m_updateChecker;
146 std::unique_ptr<ConfigManager> m_configManager;
147 std::unique_ptr<DialogManager> m_dialogManager;
148 std::unique_ptr<ISSTracker> m_issTracker;
152 std::vector<Connection> m_uiConnections;
155 bool m_initialized =
false;
156 bool m_showAboutWindow =
false;
157 bool m_showDemoWindow =
false;
158 bool m_showUpdateNotification =
false;
159 bool m_updateCheckInProgress =
false;
160 bool m_exitDialogActive =
false;
161 bool m_showISSTracker =
false;
164 std::unique_ptr<UpdateInfo> m_latestUpdateInfo;
167 std::mutex m_updateResultMutex;
168 std::unique_ptr<UpdateInfo> m_pendingUpdateResult;
171 std::string m_statusMessage;
172 float m_lastFrameTime = 0.0f;
179 void PollAsyncResults();
180 void RenderMainViewport();
181 void RenderFloatingWindows();
182 void RenderDialogs();
184 void CheckForUpdates();
185 void OnUpdateCheckComplete(
const UpdateInfo& updateInfo);
189 void StartExitFlow();
192 bool OnContextLoss();
195 void OnFramebufferSizeChanged(
int width,
int height);
196 void OnKeyPressed(
int key,
int scancode,
int action,
int mods);
197 void OnWindowCloseRequested();
200 void OnExitRequested();
201 void OnToggleDemoWindow();
202 void OnCheckUpdatesRequested();
203 void OnShowAboutRequested();
204 void OnShowInputDialogRequested();
205 void OnToggleISSTracker();
208 static constexpr int DEFAULT_WIDTH = 1200;
209 static constexpr int DEFAULT_HEIGHT = 800;
210 static constexpr const char* WINDOW_TITLE =
"MetaImGUI - ImGui Application Template";