139 std::unique_ptr<WindowManager> m_windowManager;
140 std::unique_ptr<UIRenderer> m_uiRenderer;
141 std::unique_ptr<UpdateChecker> m_updateChecker;
142 std::unique_ptr<ConfigManager> m_configManager;
143 std::unique_ptr<DialogManager> m_dialogManager;
144 std::unique_ptr<ISSTracker> m_issTracker;
147 bool m_initialized =
false;
148 bool m_showAboutWindow =
false;
149 bool m_showDemoWindow =
false;
150 bool m_showUpdateNotification =
false;
151 bool m_updateCheckInProgress =
false;
152 bool m_showExitDialog =
false;
153 bool m_showISSTracker =
false;
156 std::unique_ptr<UpdateInfo> m_latestUpdateInfo;
159 std::mutex m_updateResultMutex;
160 std::unique_ptr<UpdateInfo> m_pendingUpdateResult;
163 std::string m_statusMessage;
164 float m_lastFrameTime = 0.0f;
169 void CheckForUpdates();
170 void OnUpdateCheckComplete(
const UpdateInfo& updateInfo);
173 bool OnContextLoss();
176 void OnFramebufferSizeChanged(
int width,
int height);
177 void OnKeyPressed(
int key,
int scancode,
int action,
int mods);
178 void OnWindowCloseRequested();
181 void OnExitRequested();
182 void OnToggleDemoWindow();
183 void OnCheckUpdatesRequested();
184 void OnShowAboutRequested();
185 void OnShowInputDialogRequested();
186 void OnToggleISSTracker();
189 static constexpr int DEFAULT_WIDTH = 1200;
190 static constexpr int DEFAULT_HEIGHT = 800;
191 static constexpr const char* WINDOW_TITLE =
"MetaImGUI - ImGui Application Template";