7#include <unordered_map>
32 bool IsOpen()
const {
return mIsOpen; }
40 void DrawAddonBrowser();
41 void DrawInstalledAddons();
42 void DrawRepositoryManager();
43 void DrawAddonCard(
const Addon& addon,
float cardWidth);
44 void DrawAddonDetailsPopup();
45 void DrawAddRepoPopup();
48 void DrawViewModeToggle();
49 void DrawAddonTable_Browse(
const std::vector<const Addon*>& filtered);
50 void DrawAddonTable_Installed(
const std::vector<InstalledAddon>& installed);
51 void DrawClampedName(
const char* name,
float maxWidth);
52 void LoadViewSettings();
53 void SaveViewSettings();
55 void OnDownloadAddon(
const std::string& addonId);
56 void OnViewMore(
const std::string& addonId);
57 void OnUninstallAddon(
const std::string& addonId);
64 bool DoesAddonHaveGitRepo(
const std::string& addonId);
65 void InvalidateAddonGitRepoCacheIfProjectChanged();
66 std::string GetAddonDirectory(
const std::string& addonId)
const;
67 void OpenAddonInVersionControl(
const std::string& addonId);
68 void InitAddonGitRepo(
const std::string& addonId);
69 void OnAddRepository();
70 void OnRemoveRepository(
const std::string& url);
71 void OnRefreshRepositories();
72 void OnResolveDependencies();
75 void OnBuildNativeAddon(
const std::string& addonId);
76 void OnReloadNativeAddon(
const std::string& addonId);
77 void OnToggleNativeEnabled(
const std::string& addonId);
78 void OnToggleNativeMode(
const std::string& addonId);
79 void OnSyncNativeAddonBinary(
const std::string& addonId);
85 bool mUseTableView =
true;
88 bool mShowAddonDetails =
false;
89 bool mShowAddRepoPopup =
false;
90 std::string mSelectedAddonId;
91 char mRepoUrlBuffer[512] = {};
92 std::string mErrorMessage;
93 std::string mStatusMessage;
96 char mSearchBuffer[256] = {};
97 std::vector<std::string> mSelectedTags;
100 std::vector<std::string> mAvailableTags;
103 bool mNeedsRefresh =
true;
104 bool mIsRefreshing =
false;
107 bool mShowUninstallConfirm =
false;
108 std::string mUninstallAddonId;
109 void DrawUninstallConfirmPopup();
112 bool mShowBuildLog =
false;
113 std::string mBuildLogAddonId;
116 struct ThumbnailEntry
118 ImTextureID mTexId = 0;
119 Image* mImage =
nullptr;
121 ImTextureID GetAddonThumbnail(
const std::string& addonId);
122 void ClearThumbnailCache();
123 std::unordered_map<std::string, ThumbnailEntry> mThumbnailCache;
127 std::unordered_map<std::string, bool> mAddonGitRepoCache;
128 std::string mGitRepoCacheProjectDir;
131AddonsWindow* GetAddonsWindow();
void Shutdown()
Definition Engine.cpp:1026