#define LISTVIEW_ICON_SIZE 24
#define TREEVIEW_ICON_SIZE 24
-HWND hListView = NULL;
-
INT GetSystemColorDepth()
{
DEVMODEW pDevMode;
bIsAscending = !bIsAscending;
}
- PVOID GetLParam(INT Index)
- {
- INT ItemIndex;
-
- if (Index == -1)
- {
- ItemIndex = (INT) SendMessage(LVM_GETNEXTITEM, -1, LVNI_FOCUSED);
- if (ItemIndex == -1)
- return NULL;
- }
- else
- {
- ItemIndex = Index;
- }
-
- return (PVOID) GetItemData(ItemIndex);
- }
-
BOOL AddColumn(INT Index, ATL::CStringW& Text, INT Width, INT Format)
{
return AddColumn(Index, const_cast<LPWSTR>(Text.GetString()), Width, Format);
// UpdateApplicationsList(ENUM_ALL_COMPONENTS);
}
- HTREEITEM AddCategory(HTREEITEM hRootItem, UINT TextIndex, UINT IconIndex)
- {
- return m_TreeView->AddCategory(hRootItem, TextIndex, IconIndex);
- }
-
VOID InitCategoriesList()
{
HTREEITEM hRootItemInstalled, hRootItemAvailable;
- hRootItemInstalled = AddCategory(TVI_ROOT, IDS_INSTALLED, IDI_CATEGORY);
- AddCategory(hRootItemInstalled, IDS_APPLICATIONS, IDI_APPS);
- AddCategory(hRootItemInstalled, IDS_UPDATES, IDI_APPUPD);
-
- AddCategory(TVI_ROOT, IDS_SELECTEDFORINST, IDI_SELECTEDFORINST);
-
- hRootItemAvailable = AddCategory(TVI_ROOT, IDS_AVAILABLEFORINST, IDI_CATEGORY);
- AddCategory(hRootItemAvailable, IDS_CAT_AUDIO, IDI_CAT_AUDIO);
- AddCategory(hRootItemAvailable, IDS_CAT_VIDEO, IDI_CAT_VIDEO);
- AddCategory(hRootItemAvailable, IDS_CAT_GRAPHICS, IDI_CAT_GRAPHICS);
- AddCategory(hRootItemAvailable, IDS_CAT_GAMES, IDI_CAT_GAMES);
- AddCategory(hRootItemAvailable, IDS_CAT_INTERNET, IDI_CAT_INTERNET);
- AddCategory(hRootItemAvailable, IDS_CAT_OFFICE, IDI_CAT_OFFICE);
- AddCategory(hRootItemAvailable, IDS_CAT_DEVEL, IDI_CAT_DEVEL);
- AddCategory(hRootItemAvailable, IDS_CAT_EDU, IDI_CAT_EDU);
- AddCategory(hRootItemAvailable, IDS_CAT_ENGINEER, IDI_CAT_ENGINEER);
- AddCategory(hRootItemAvailable, IDS_CAT_FINANCE, IDI_CAT_FINANCE);
- AddCategory(hRootItemAvailable, IDS_CAT_SCIENCE, IDI_CAT_SCIENCE);
- AddCategory(hRootItemAvailable, IDS_CAT_TOOLS, IDI_CAT_TOOLS);
- AddCategory(hRootItemAvailable, IDS_CAT_DRIVERS, IDI_CAT_DRIVERS);
- AddCategory(hRootItemAvailable, IDS_CAT_LIBS, IDI_CAT_LIBS);
- AddCategory(hRootItemAvailable, IDS_CAT_THEMES, IDI_CAT_THEMES);
- AddCategory(hRootItemAvailable, IDS_CAT_OTHER, IDI_CAT_OTHER);
+ hRootItemInstalled = m_TreeView->AddCategory(TVI_ROOT, IDS_INSTALLED, IDI_CATEGORY);
+ m_TreeView->AddCategory(hRootItemInstalled, IDS_APPLICATIONS, IDI_APPS);
+ m_TreeView->AddCategory(hRootItemInstalled, IDS_UPDATES, IDI_APPUPD);
+
+ m_TreeView->AddCategory(TVI_ROOT, IDS_SELECTEDFORINST, IDI_SELECTEDFORINST);
+
+ hRootItemAvailable = m_TreeView->AddCategory(TVI_ROOT, IDS_AVAILABLEFORINST, IDI_CATEGORY);
+ m_TreeView->AddCategory(hRootItemAvailable, IDS_CAT_AUDIO, IDI_CAT_AUDIO);
+ m_TreeView->AddCategory(hRootItemAvailable, IDS_CAT_VIDEO, IDI_CAT_VIDEO);
+ m_TreeView->AddCategory(hRootItemAvailable, IDS_CAT_GRAPHICS, IDI_CAT_GRAPHICS);
+ m_TreeView->AddCategory(hRootItemAvailable, IDS_CAT_GAMES, IDI_CAT_GAMES);
+ m_TreeView->AddCategory(hRootItemAvailable, IDS_CAT_INTERNET, IDI_CAT_INTERNET);
+ m_TreeView->AddCategory(hRootItemAvailable, IDS_CAT_OFFICE, IDI_CAT_OFFICE);
+ m_TreeView->AddCategory(hRootItemAvailable, IDS_CAT_DEVEL, IDI_CAT_DEVEL);
+ m_TreeView->AddCategory(hRootItemAvailable, IDS_CAT_EDU, IDI_CAT_EDU);
+ m_TreeView->AddCategory(hRootItemAvailable, IDS_CAT_ENGINEER, IDI_CAT_ENGINEER);
+ m_TreeView->AddCategory(hRootItemAvailable, IDS_CAT_FINANCE, IDI_CAT_FINANCE);
+ m_TreeView->AddCategory(hRootItemAvailable, IDS_CAT_SCIENCE, IDI_CAT_SCIENCE);
+ m_TreeView->AddCategory(hRootItemAvailable, IDS_CAT_TOOLS, IDI_CAT_TOOLS);
+ m_TreeView->AddCategory(hRootItemAvailable, IDS_CAT_DRIVERS, IDI_CAT_DRIVERS);
+ m_TreeView->AddCategory(hRootItemAvailable, IDS_CAT_LIBS, IDI_CAT_LIBS);
+ m_TreeView->AddCategory(hRootItemAvailable, IDS_CAT_THEMES, IDI_CAT_THEMES);
+ m_TreeView->AddCategory(hRootItemAvailable, IDS_CAT_OTHER, IDI_CAT_OTHER);
m_TreeView->SetImageList();
m_TreeView->Expand(hRootItemInstalled, TVE_EXPAND);
m_ListView->m_HorizontalAlignment = UiAlign_Stretch;
m_HSplitter->First().Append(m_ListView);
- hListView = m_ListView->Create(m_hWnd);
- return hListView != NULL;
+ return m_ListView->Create(m_hWnd) != NULL;
}
BOOL CreateRichEdit()
break;
case ID_SEARCH:
- ::SetFocus(m_SearchBar->m_hWnd);
+ m_SearchBar->SetFocus();
break;
case ID_INSTALL:
while (Count >= 0)
{
- Info = (PINSTALLED_INFO) ListViewGetlParam(Count);
+ Info = (PINSTALLED_INFO) m_ListView->GetItemData(Count);
if (Info)
{
RegCloseKey(Info->hSubKey);
INT Index;
HICON hIcon = NULL;
- HIMAGELIST hImageListView = ListView_GetImageList(hListView, LVSIL_SMALL);
+ HIMAGELIST hImageListView = (HIMAGELIST)m_ListView->SendMessage(LVM_GETIMAGELIST, LVSIL_SMALL, 0);
if (!SearchPatternMatch(Info->m_szName.GetString(), szSearchPattern) &&
!SearchPatternMatch(Info->m_szDesc.GetString(), szSearchPattern))
return CWindowImpl::Create(NULL, r, szWindowName.GetString(), WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE);
}
-
- CStatusBar * GetStatusBar()
- {
- return m_StatusBar;
- }
-
- CAppsListView * GetListView()
- {
- return m_ListView;
- }
-
- CRichEdit * GetRichEdit()
- {
- return m_RichEdit;
- }
-
- CAvailableApps * GetAvailableApps()
- {
- return &m_AvailableApps;
- }
};
-// global interface
-CMainWindow * g_MainWindow;
-
-HWND CreateMainWindow()
-{
- g_MainWindow = new CMainWindow();
- return g_MainWindow->Create();
-}
-
-DWORD_PTR ListViewGetlParam(INT item)
-{
- if (item < 0)
- {
- item = g_MainWindow->GetListView()->GetSelectionMark();
- }
- return g_MainWindow->GetListView()->GetItemData(item);
-}
-
-VOID SetStatusBarText(LPCWSTR szText)
-{
- g_MainWindow->GetStatusBar()->SetText(szText);
-}
-
-INT ListViewAddItem(INT ItemIndex, INT IconIndex, LPWSTR lpName, LPARAM lParam)
-{
- return g_MainWindow->GetListView()->AddItem(ItemIndex, IconIndex, lpName, lParam);
-}
-
-VOID NewRichEditText(LPCWSTR szText, DWORD flags)
-{
- g_MainWindow->GetRichEdit()->SetText(szText, flags);
-}
-
-VOID InsertRichEditText(LPCWSTR szText, DWORD flags)
-{
- g_MainWindow->GetRichEdit()->InsertText(szText, flags);
-}
-
-CAvailableApps* GetAvailableApps()
-{
- return g_MainWindow->GetAvailableApps();
-}
-
-// ATL version of functions above
-VOID SetStatusBarText(const ATL::CStringW& szText)
-{
- SetStatusBarText(szText.GetString());
-}
-
-INT ListViewAddItem(INT ItemIndex, INT IconIndex, const ATL::CStringW& Name, LPARAM lParam)
-{
- return ListViewAddItem(ItemIndex, IconIndex, const_cast<LPWSTR>(Name.GetString()), lParam);
-}
-
-VOID NewRichEditText(const ATL::CStringW& szText, DWORD flags)
-{
- NewRichEditText(szText.GetString(), flags);
-}
-
-VOID InsertRichEditText(const ATL::CStringW& szText, DWORD flags)
-{
- InsertRichEditText(szText.GetString(), flags);
-}
-
VOID ShowMainWindow(INT nShowCmd)
{
HACCEL KeyBrd;
MSG Msg;
- hMainWnd = CreateMainWindow();
+ CMainWindow* wnd = new CMainWindow();
+ if (!wnd)
+ return;
- if (hMainWnd)
- {
- /* Maximize it if we must */
- ShowWindow(hMainWnd, ((SettingsInfo.bSaveWndPos && SettingsInfo.Maximized) ? SW_MAXIMIZE : nShowCmd));
- UpdateWindow(hMainWnd);
+ hMainWnd = wnd->Create();
+ if (!hMainWnd)
+ return;
- /* Load the menu hotkeys */
- KeyBrd = LoadAcceleratorsW(NULL, MAKEINTRESOURCEW(HOTKEYS));
+ /* Maximize it if we must */
+ wnd->ShowWindow((SettingsInfo.bSaveWndPos && SettingsInfo.Maximized) ? SW_MAXIMIZE : nShowCmd);
+ wnd->UpdateWindow();
- /* Message Loop */
- while (GetMessageW(&Msg, NULL, 0, 0))
+ /* Load the menu hotkeys */
+ KeyBrd = LoadAcceleratorsW(NULL, MAKEINTRESOURCEW(HOTKEYS));
+
+ /* Message Loop */
+ while (GetMessageW(&Msg, NULL, 0, 0))
+ {
+ if (!TranslateAcceleratorW(hMainWnd, KeyBrd, &Msg))
{
- if (!TranslateAcceleratorW(hMainWnd, KeyBrd, &Msg))
- {
- TranslateMessage(&Msg);
- DispatchMessageW(&Msg);
- }
+ TranslateMessage(&Msg);
+ DispatchMessageW(&Msg);
}
- }
+ }
+
+ delete wnd;
}