The MinGW.org Installation Manager Tool
Révision | 635c5add480b9e5411e88488035f7200207402b7 (tree) |
---|---|
l'heure | 2008-10-12 01:15:23 |
Auteur | John E. <tdragon@user...> |
Commiter | John E. |
UI code restructured
@@ -272,9 +272,7 @@ static BOOL CALLBACK InstSelProc | ||
272 | 272 | } |
273 | 273 | |
274 | 274 | |
275 | -extern "C" void SelectInst | |
276 | - (HINSTANCE hinstance, | |
277 | - HWND hparent) | |
275 | +extern "C" void SelectInst(HINSTANCE hinstance, HWND hparent) | |
278 | 276 | { |
279 | 277 | if (!DialogBox(hinstance, MAKEINTRESOURCE(IDD_INSTSEL), hparent, |
280 | 278 | InstSelProc) || !g_inst_loc[0]) |
@@ -1,11 +0,0 @@ | ||
1 | - | |
2 | -#define WIN32_LEAN_AND_MEAN | |
3 | -#include <windows.h> | |
4 | - | |
5 | - | |
6 | -int UI_Windowed(HINSTANCE); | |
7 | - | |
8 | -int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) | |
9 | -{ | |
10 | - return UI_Windowed(hInstance); | |
11 | -} |
@@ -0,0 +1,24 @@ | ||
1 | + | |
2 | +#define WIN32_LEAN_AND_MEAN | |
3 | +#include <windows.h> | |
4 | +#include <string> | |
5 | +#include "pkg_index.hpp" | |
6 | + | |
7 | + | |
8 | +extern "C" HWND CreateMainWnd(HINSTANCE); | |
9 | +extern "C" int MainMessageLoop(HWND); | |
10 | +std::string GetBinDir(); | |
11 | +extern "C" void SelectInst(HINSTANCE, HWND); | |
12 | + | |
13 | +int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) | |
14 | +{ | |
15 | + HWND mainwnd = CreateMainWnd(hInstance); | |
16 | + if (!mainwnd) | |
17 | + return 1; | |
18 | + | |
19 | + PkgIndex::LoadManifest(GetBinDir() + "\\mingw_avail.mft"); | |
20 | + | |
21 | + SelectInst(hInstance, mainwnd); | |
22 | + | |
23 | + return MainMessageLoop(mainwnd); | |
24 | +} |
@@ -90,11 +90,11 @@ static void InsertColumn | ||
90 | 90 | |
91 | 91 | void SelectInst(HINSTANCE, HWND); |
92 | 92 | const char* Pkg_GetSubItemText(LPARAM, int); |
93 | -void UI_NotifyCategoryChange(int); | |
94 | -void UI_SortListView(int); | |
95 | -void UI_OnListViewSelect(int); | |
93 | +void UI_OnCategoryChange(int, HWND); | |
94 | +void UI_SortListView(int, HWND); | |
95 | +void UI_OnListViewSelect(int, HWND); | |
96 | 96 | void DescWnd_SetHWND(HWND); |
97 | -void UI_OnStateCycle(int); | |
97 | +void UI_OnStateCycle(int, HWND); | |
98 | 98 | const char* Pkg_GetInstalledVersion(LPARAM); |
99 | 99 | int Pkg_GetSelectedAction(LPARAM); |
100 | 100 | void Pkg_SelectAction(LPARAM, int); |
@@ -197,7 +197,7 @@ static BOOL CALLBACK MainWndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM | ||
197 | 197 | case IDC_CATLIST: |
198 | 198 | if (HIWORD(wParam) == LBN_SELCHANGE) |
199 | 199 | { |
200 | - UI_NotifyCategoryChange(ListBox_GetCurSel((HWND)lParam)); | |
200 | + UI_OnCategoryChange(ListBox_GetCurSel((HWND)lParam), hwndDlg); | |
201 | 201 | return TRUE; |
202 | 202 | } |
203 | 203 | break; |
@@ -218,12 +218,12 @@ static BOOL CALLBACK MainWndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM | ||
218 | 218 | } |
219 | 219 | return 0; |
220 | 220 | case LVN_COLUMNCLICK: |
221 | - UI_SortListView(((LPNMLISTVIEW)lParam)->iSubItem); | |
221 | + UI_SortListView(((LPNMLISTVIEW)lParam)->iSubItem, hwndDlg); | |
222 | 222 | return 0; |
223 | 223 | case LVN_ITEMCHANGED: |
224 | 224 | if ((((LPNMLISTVIEW)lParam)->uChanged & LVIF_STATE) |
225 | 225 | && (((LPNMLISTVIEW)lParam)->uNewState & LVIS_SELECTED)) |
226 | - UI_OnListViewSelect(((LPNMLISTVIEW)lParam)->iItem); | |
226 | + UI_OnListViewSelect(((LPNMLISTVIEW)lParam)->iItem, hwndDlg); | |
227 | 227 | return 0; |
228 | 228 | case NM_CLICK: |
229 | 229 | { |
@@ -237,7 +237,7 @@ static BOOL CALLBACK MainWndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM | ||
237 | 237 | if ((lvhti.flags & LVHT_ONITEMICON) |
238 | 238 | && !(lvhti.flags & LVHT_ONITEMLABEL) |
239 | 239 | && lvhti.iItem >= 0) |
240 | - UI_OnStateCycle(lvhti.iItem); | |
240 | + UI_OnStateCycle(lvhti.iItem, hwndDlg); | |
241 | 241 | } |
242 | 242 | return 0; |
243 | 243 | case NM_RCLICK: |
@@ -406,16 +406,13 @@ static int ProcessQueuedMessages(HWND wnd) | ||
406 | 406 | { |
407 | 407 | if (msg.message == WM_QUIT) |
408 | 408 | return 1; |
409 | - if (TranslateAccelerator(wnd, g_haccel, &msg)) | |
409 | + if (!TranslateAccelerator(wnd, g_haccel, &msg)) | |
410 | 410 | { |
411 | - } | |
412 | - else if (IsDialogMessage(wnd, &msg)) | |
413 | - { | |
414 | - } | |
415 | - else | |
416 | - { | |
417 | - TranslateMessage(&msg); | |
418 | - DispatchMessage(&msg); | |
411 | + if (!IsDialogMessage(wnd, &msg)) | |
412 | + { | |
413 | + TranslateMessage(&msg); | |
414 | + DispatchMessage(&msg); | |
415 | + } | |
419 | 416 | } |
420 | 417 | } |
421 | 418 | return 0; |
@@ -453,16 +450,13 @@ int MainMessageLoop(HWND wnd) | ||
453 | 450 | MSG msg; |
454 | 451 | while (GetMessage(&msg, NULL, 0, 0)) |
455 | 452 | { |
456 | - if (TranslateAccelerator(wnd, g_haccel, &msg)) | |
453 | + if (!TranslateAccelerator(wnd, g_haccel, &msg)) | |
457 | 454 | { |
458 | - } | |
459 | - else if (IsDialogMessage(wnd, &msg)) | |
460 | - { | |
461 | - } | |
462 | - else | |
463 | - { | |
464 | - TranslateMessage(&msg); | |
465 | - DispatchMessage(&msg); | |
455 | + if (!IsDialogMessage(wnd, &msg)) | |
456 | + { | |
457 | + TranslateMessage(&msg); | |
458 | + DispatchMessage(&msg); | |
459 | + } | |
466 | 460 | } |
467 | 461 | } |
468 | 462 | return msg.wParam; |
@@ -64,9 +64,7 @@ | ||
64 | 64 | <Unit filename="instselect.cpp"> |
65 | 65 | <Option compilerVar="CC" /> |
66 | 66 | </Unit> |
67 | - <Unit filename="main.c"> | |
68 | - <Option compilerVar="CC" /> | |
69 | - </Unit> | |
67 | + <Unit filename="main.cpp" /> | |
70 | 68 | <Unit filename="mainwnd.c"> |
71 | 69 | <Option compilerVar="CC" /> |
72 | 70 | </Unit> |
@@ -100,8 +98,7 @@ | ||
100 | 98 | <Unit filename="tinyxml\tinyxmlparser.cpp" /> |
101 | 99 | <Unit filename="tracked_install.cpp" /> |
102 | 100 | <Unit filename="tracked_install.hpp" /> |
103 | - <Unit filename="ui.hpp" /> | |
104 | - <Unit filename="ui_windowed.cpp" /> | |
101 | + <Unit filename="ui.cpp" /> | |
105 | 102 | <Unit filename="versioning.c"> |
106 | 103 | <Option compilerVar="CC" /> |
107 | 104 | </Unit> |
@@ -16,7 +16,6 @@ | ||
16 | 16 | char PkgIndex::sm_lasterror[2048] = {0}; |
17 | 17 | std::vector< std::string > PkgIndex::sm_index_categories; |
18 | 18 | PkgIndex::StringIntMap PkgIndex::sm_id_categories; |
19 | -std::list< Package::Ref >PkgIndex::sm_packages; | |
20 | 19 | PkgIndex::StringPackageMap PkgIndex::sm_id_packages; |
21 | 20 | |
22 | 21 |
@@ -52,13 +51,13 @@ int PkgIndex::CategoryIndex(const char* cat_id) | ||
52 | 51 | |
53 | 52 | PkgIndex::PackageIter PkgIndex::Packages_Begin() |
54 | 53 | { |
55 | - return sm_packages.begin(); | |
54 | + return sm_id_packages.begin(); | |
56 | 55 | } |
57 | 56 | |
58 | 57 | |
59 | 58 | PkgIndex::PackageIter PkgIndex::Packages_End() |
60 | 59 | { |
61 | - return sm_packages.end(); | |
60 | + return sm_id_packages.end(); | |
62 | 61 | } |
63 | 62 | |
64 | 63 |
@@ -84,7 +83,6 @@ bool PkgIndex::LoadManifest(const std::string& mfile) | ||
84 | 83 | continue; |
85 | 84 | sm_id_categories[id] = sm_index_categories.size(); |
86 | 85 | sm_index_categories.push_back(name); |
87 | - UI::NotifyNewCategory(name); | |
88 | 86 | } |
89 | 87 | for (TiXmlElement* package_el = |
90 | 88 | TiXmlHandle(doc.RootElement()->FirstChildElement("package-collection")). |
@@ -100,7 +98,6 @@ bool PkgIndex::LoadManifest(const std::string& mfile) | ||
100 | 98 | continue; |
101 | 99 | Package::Ref newpkg(new Package(id, package_el)); |
102 | 100 | InsertPackage(newpkg); |
103 | - UI::NotifyNewPackage(*newpkg); | |
104 | 101 | } |
105 | 102 | return true; |
106 | 103 | } |
@@ -25,8 +25,8 @@ public: | ||
25 | 25 | static const char* GetCategory(int cat); |
26 | 26 | static int CategoryIndex(const char* cat_id); |
27 | 27 | |
28 | - typedef std::list< RefType< Package >::Ref >::const_iterator | |
29 | - PackageIter; | |
28 | + typedef std::map< std::string, RefType< Package >::Ref > StringPackageMap; | |
29 | + typedef StringPackageMap::const_iterator PackageIter; | |
30 | 30 | static PackageIter Packages_Begin(); |
31 | 31 | static PackageIter Packages_End(); |
32 | 32 |
@@ -38,8 +38,6 @@ private: | ||
38 | 38 | static std::vector< std::string > sm_index_categories; |
39 | 39 | typedef std::map< std::string, int > StringIntMap; |
40 | 40 | static StringIntMap sm_id_categories; |
41 | - static std::list< RefType< Package >::Ref > sm_packages; | |
42 | - typedef std::map< std::string, RefType< Package >::Ref > StringPackageMap; | |
43 | 41 | static StringPackageMap sm_id_packages; |
44 | 42 | }; |
45 | 43 |
@@ -1,43 +1,22 @@ | ||
1 | +/** \file ui.cpp | |
2 | + * | |
3 | + * Created: JohnE, 2008-10-11 | |
4 | + */ | |
1 | 5 | |
2 | -#include "ui.hpp" | |
3 | 6 | |
4 | 7 | #define WIN32_LEAN_AND_MEAN |
5 | 8 | #include <windows.h> |
6 | 9 | #include <windowsx.h> |
7 | 10 | #include <commctrl.h> |
8 | 11 | #include <climits> |
9 | -#include <list> | |
10 | -#include "resource.h" | |
11 | 12 | #include "package.hpp" |
12 | 13 | #include "pkg_index.hpp" |
13 | 14 | #include "pkg_const.h" |
15 | +#include "resource.h" | |
14 | 16 | |
15 | 17 | |
16 | -static HWND g_hmainwnd = 0; | |
17 | - | |
18 | - | |
19 | -extern "C" HWND CreateMainWnd(HINSTANCE); | |
20 | -extern "C" int MainMessageLoop(HWND); | |
21 | -extern "C" void SelectInst(HINSTANCE, HWND); | |
22 | -std::string GetBinDir(); | |
23 | - | |
24 | -extern "C" int UI_Windowed(HINSTANCE hinstance) | |
25 | -{ | |
26 | - g_hmainwnd = CreateMainWnd(hinstance); | |
27 | - if (!g_hmainwnd) | |
28 | - return 1; | |
29 | - | |
30 | - PkgIndex::LoadManifest(GetBinDir() + "\\mingw_avail.mft"); | |
31 | - | |
32 | - SelectInst(hinstance, g_hmainwnd); | |
33 | - | |
34 | - return MainMessageLoop(g_hmainwnd); | |
35 | -} | |
36 | - | |
37 | - | |
38 | -static void LVAddPackage(const Package& pkg) | |
18 | +static void LVAddPackage(HWND hlist, const Package& pkg) | |
39 | 19 | { |
40 | - HWND hlist = GetDlgItem(g_hmainwnd, IDC_COMPLIST); | |
41 | 20 | LVITEM lvi; |
42 | 21 | lvi.mask = LVIF_TEXT | LVIF_PARAM | LVIF_IMAGE; |
43 | 22 | lvi.iItem = INT_MAX; |
@@ -56,15 +35,15 @@ static void LVAddPackage(const Package& pkg) | ||
56 | 35 | } |
57 | 36 | if (lvi.iItem == 0) |
58 | 37 | { |
59 | - ListView_SetItemState(GetDlgItem(g_hmainwnd, IDC_COMPLIST), 0, | |
38 | + ListView_SetItemState(hlist, 0, | |
60 | 39 | LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED); |
61 | 40 | } |
62 | 41 | } |
63 | 42 | |
64 | 43 | |
65 | -extern "C" void UI_NotifyCategoryChange(int sel) | |
44 | +extern "C" void UI_OnCategoryChange(int sel, HWND hmainwnd) | |
66 | 45 | { |
67 | - ListView_DeleteAllItems(GetDlgItem(g_hmainwnd, IDC_COMPLIST)); | |
46 | + ListView_DeleteAllItems(GetDlgItem(hmainwnd, IDC_COMPLIST)); | |
68 | 47 | bool have_item = false; |
69 | 48 | if (sel == 0) |
70 | 49 | { |
@@ -72,7 +51,7 @@ extern "C" void UI_NotifyCategoryChange(int sel) | ||
72 | 51 | it != PkgIndex::Packages_End(); |
73 | 52 | ++it) |
74 | 53 | { |
75 | - LVAddPackage(**it); | |
54 | + LVAddPackage(GetDlgItem(hmainwnd, IDC_COMPLIST), *it->second); | |
76 | 55 | have_item = true; |
77 | 56 | } |
78 | 57 | } |
@@ -82,46 +61,46 @@ extern "C" void UI_NotifyCategoryChange(int sel) | ||
82 | 61 | it != PkgIndex::Packages_End(); |
83 | 62 | ++it) |
84 | 63 | { |
85 | - if ((*it)->m_categories.count(sel - 1) > 0) | |
64 | + if (it->second->m_categories.count(sel - 1) > 0) | |
86 | 65 | { |
87 | - LVAddPackage(**it); | |
66 | + LVAddPackage(GetDlgItem(hmainwnd, IDC_COMPLIST), *it->second); | |
88 | 67 | have_item = true; |
89 | 68 | } |
90 | 69 | } |
91 | 70 | } |
92 | 71 | if (have_item) |
93 | 72 | { |
94 | - ListView_SetItemState(GetDlgItem(g_hmainwnd, IDC_COMPLIST), 0, | |
73 | + ListView_SetItemState(GetDlgItem(hmainwnd, IDC_COMPLIST), 0, | |
95 | 74 | LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED); |
96 | 75 | } |
97 | 76 | else |
98 | 77 | { |
99 | - Static_SetText(GetDlgItem(g_hmainwnd, IDC_DESCTITLE), ""); | |
100 | - Edit_SetText(GetDlgItem(g_hmainwnd, IDC_FULLDESC), ""); | |
101 | - ComboBox_ResetContent(GetDlgItem(g_hmainwnd, IDC_INSTVERSION)); | |
102 | - EnableWindow(GetDlgItem(g_hmainwnd, IDC_INSTVERSION), FALSE); | |
78 | + Static_SetText(GetDlgItem(hmainwnd, IDC_DESCTITLE), ""); | |
79 | + Edit_SetText(GetDlgItem(hmainwnd, IDC_FULLDESC), ""); | |
80 | + ComboBox_ResetContent(GetDlgItem(hmainwnd, IDC_INSTVERSION)); | |
81 | + EnableWindow(GetDlgItem(hmainwnd, IDC_INSTVERSION), FALSE); | |
103 | 82 | } |
104 | 83 | } |
105 | 84 | |
106 | 85 | |
107 | 86 | void DescWnd_SetDescription(const std::string&); |
108 | 87 | |
109 | -extern "C" void UI_OnListViewSelect(int sel) | |
88 | +extern "C" void UI_OnListViewSelect(int sel, HWND hmainwnd) | |
110 | 89 | { |
111 | 90 | LVITEM lvitem; |
112 | 91 | lvitem.iItem = sel; |
113 | 92 | lvitem.iSubItem = 0; |
114 | 93 | lvitem.mask = LVIF_PARAM; |
115 | - ListView_GetItem(GetDlgItem(g_hmainwnd, IDC_COMPLIST), &lvitem); | |
94 | + ListView_GetItem(GetDlgItem(hmainwnd, IDC_COMPLIST), &lvitem); | |
116 | 95 | Package* pkg = reinterpret_cast< Package* >(lvitem.lParam); |
117 | - Edit_SetText(GetDlgItem(g_hmainwnd, IDC_FULLDESC), | |
96 | + Edit_SetText(GetDlgItem(hmainwnd, IDC_FULLDESC), | |
118 | 97 | pkg->m_description.c_str()); |
119 | - Static_SetText(GetDlgItem(g_hmainwnd, IDC_DESCTITLE), | |
98 | + Static_SetText(GetDlgItem(hmainwnd, IDC_DESCTITLE), | |
120 | 99 | pkg->m_title.c_str()); |
121 | - ComboBox_ResetContent(GetDlgItem(g_hmainwnd, IDC_INSTVERSION)); | |
100 | + ComboBox_ResetContent(GetDlgItem(hmainwnd, IDC_INSTVERSION)); | |
122 | 101 | if (pkg->m_versions.size() > 0) |
123 | 102 | { |
124 | - EnableWindow(GetDlgItem(g_hmainwnd, IDC_INSTVERSION), TRUE); | |
103 | + EnableWindow(GetDlgItem(hmainwnd, IDC_INSTVERSION), TRUE); | |
125 | 104 | std::string vstr; |
126 | 105 | for (std::vector< PkgVersion::Ref >::const_iterator it = pkg->m_versions.begin(); |
127 | 106 | it != pkg->m_versions.end(); |
@@ -132,29 +111,29 @@ extern "C" void UI_OnListViewSelect(int sel) | ||
132 | 111 | else |
133 | 112 | vstr = "Stable: "; |
134 | 113 | vstr += (*it)->m_version; |
135 | - ComboBox_AddString(GetDlgItem(g_hmainwnd, IDC_INSTVERSION), | |
114 | + ComboBox_AddString(GetDlgItem(hmainwnd, IDC_INSTVERSION), | |
136 | 115 | vstr.c_str()); |
137 | 116 | } |
138 | 117 | pkg->m_selected_version = 0; |
139 | - ComboBox_SetCurSel(GetDlgItem(g_hmainwnd, IDC_INSTVERSION), 0); | |
118 | + ComboBox_SetCurSel(GetDlgItem(hmainwnd, IDC_INSTVERSION), 0); | |
140 | 119 | } |
141 | 120 | else |
142 | 121 | { |
143 | 122 | pkg->m_selected_version = -1; |
144 | - EnableWindow(GetDlgItem(g_hmainwnd, IDC_INSTVERSION), FALSE); | |
123 | + EnableWindow(GetDlgItem(hmainwnd, IDC_INSTVERSION), FALSE); | |
145 | 124 | } |
146 | 125 | } |
147 | 126 | |
148 | 127 | |
149 | 128 | extern "C" int VersionCompare(const char*, const char*); |
150 | 129 | |
151 | -extern "C" void UI_OnStateCycle(int sel) | |
130 | +extern "C" void UI_OnStateCycle(int sel, HWND hmainwnd) | |
152 | 131 | { |
153 | 132 | LVITEM lvitem; |
154 | 133 | lvitem.iItem = sel; |
155 | 134 | lvitem.iSubItem = 0; |
156 | 135 | lvitem.mask = LVIF_PARAM; |
157 | - ListView_GetItem(GetDlgItem(g_hmainwnd, IDC_COMPLIST), &lvitem); | |
136 | + ListView_GetItem(GetDlgItem(hmainwnd, IDC_COMPLIST), &lvitem); | |
158 | 137 | Package* pkg = reinterpret_cast< Package* >(lvitem.lParam); |
159 | 138 | if (pkg->m_installed_version.length() > 0) |
160 | 139 | { |
@@ -172,7 +151,7 @@ extern "C" void UI_OnStateCycle(int sel) | ||
172 | 151 | } |
173 | 152 | lvitem.mask = LVIF_IMAGE; |
174 | 153 | lvitem.iImage = pkg->GetStateImage(); |
175 | - ListView_SetItem(GetDlgItem(g_hmainwnd, IDC_COMPLIST), &lvitem); | |
154 | + ListView_SetItem(GetDlgItem(hmainwnd, IDC_COMPLIST), &lvitem); | |
176 | 155 | } |
177 | 156 | |
178 | 157 |
@@ -226,7 +205,7 @@ int CALLBACK LVSortCompare(LPARAM lp1, LPARAM lp2, LPARAM lpsort) | ||
226 | 205 | }; |
227 | 206 | |
228 | 207 | |
229 | -extern "C" void UI_SortListView(int column) | |
208 | +extern "C" void UI_SortListView(int column, HWND hmainwnd) | |
230 | 209 | { |
231 | 210 | static int cur_column = 0; |
232 | 211 |
@@ -236,11 +215,12 @@ extern "C" void UI_SortListView(int column) | ||
236 | 215 | cur_column = column; |
237 | 216 | |
238 | 217 | LVSortType st(cur_column % 6, (cur_column >= 6)); |
239 | - ListView_SortItems(GetDlgItem(g_hmainwnd, IDC_COMPLIST), LVSortCompare, | |
218 | + ListView_SortItems(GetDlgItem(hmainwnd, IDC_COMPLIST), LVSortCompare, | |
240 | 219 | reinterpret_cast< LPARAM >(&st)); |
241 | 220 | } |
242 | 221 | |
243 | 222 | |
223 | +#if 0 | |
244 | 224 | void UI::ResetLists() |
245 | 225 | { |
246 | 226 | ListBox_SetCurSel(GetDlgItem(g_hmainwnd, IDC_CATLIST), 0); |
@@ -263,3 +243,4 @@ void UI::NotifyNewPackage(const Package& pkg) | ||
263 | 243 | if (sel <= 0 || pkg.m_categories.count(sel - 1) > 0) |
264 | 244 | LVAddPackage(pkg); |
265 | 245 | } |
246 | +#endif |
@@ -1,20 +0,0 @@ | ||
1 | -#ifndef UI_HPP_INC | |
2 | -#define UI_HPP_INC | |
3 | - | |
4 | - | |
5 | -#include <string> | |
6 | - | |
7 | - | |
8 | -class Package; | |
9 | - | |
10 | - | |
11 | -class UI | |
12 | -{ | |
13 | -public: | |
14 | - static void ResetLists(); | |
15 | - static void NotifyNewCategory(const char* name); | |
16 | - static void NotifyNewPackage(const Package& pkg); | |
17 | -}; | |
18 | - | |
19 | - | |
20 | -#endif // UI_HPP_INC |