diff --git a/SkinInstaller/DialogInstall.cpp b/SkinInstaller/DialogInstall.cpp index f4b8fb7f..d9594549 100644 --- a/SkinInstaller/DialogInstall.cpp +++ b/SkinInstaller/DialogInstall.cpp @@ -133,7 +133,10 @@ INT_PTR CALLBACK CDialogInstall::DlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LP return c_Dialog->OnCommand(wParam, lParam); case WM_CLOSE: - EndDialog(hWnd, 0); + if (!c_Dialog->m_InstallThread) + { + EndDialog(hWnd, 0); + } return TRUE; case WM_DESTROY: @@ -794,6 +797,10 @@ bool CDialogInstall::InstallPackage() void CDialogInstall::BeginInstall() { + // Disable X button + HMENU systemMenu = GetSystemMenu(m_Window, FALSE); + EnableMenuItem(systemMenu, SC_CLOSE, MF_BYCOMMAND | MF_GRAYED | MF_DISABLED); + HWND item = GetDlgItem(m_Window, IDC_INSTALL_ADVANCED_BUTTON); EnableWindow(item, FALSE); @@ -869,8 +876,8 @@ UINT __stdcall CDialogInstall::InstallThread(void* pParam) if (!dialog->InstallPackage()) { - SetWindowText(progressText, L"Installation stopped"); - SendMessage(progressBar, PBM_SETMARQUEE, (WPARAM)FALSE, 0); + ShowWindow(progressText, SW_HIDE); + ShowWindow(progressBar, SW_HIDE); if (dialog->m_ErrorMessage.empty()) { @@ -1299,8 +1306,16 @@ void CDialogInstall::CTabInstall::Initialize() { HWND item = GetDlgItem(m_Window, IDC_INSTALLTAB_COMPONENTS_LIST); - ListView_SetExtendedListViewStyleEx(item, 0, LVS_EX_CHECKBOXES | LVS_EX_LABELTIP | LVS_EX_FULLROWSELECT); + DWORD extendedFlags = LVS_EX_CHECKBOXES | LVS_EX_LABELTIP | LVS_EX_FULLROWSELECT; + + if (GetOSPlatform() >= OSPLATFORM_VISTA) + { + extendedFlags |= LVS_EX_DOUBLEBUFFER; + SetWindowTheme(item, L"explorer", NULL); + } + ListView_EnableGroupView(item, TRUE); + ListView_SetExtendedListViewStyleEx(item, 0, extendedFlags); // Add columns LVCOLUMN lvc; diff --git a/SkinInstaller/SkinInstaller.rc b/SkinInstaller/SkinInstaller.rc index babfc9e3..a30e76da 100644 --- a/SkinInstaller/SkinInstaller.rc +++ b/SkinInstaller/SkinInstaller.rc @@ -88,34 +88,32 @@ FONT 8, "MS Shell Dlg 2" CONTROL "", IDC_BACKUP_PROGRESS, "msctls_progress32", PBS_MARQUEE | NOT WS_VISIBLE | WS_BORDER, 0, 15, 250, 11 } -IDD_INSTALL_DIALOG DIALOGEX 0, 0, 266, 270 +IDD_INSTALL_DIALOG DIALOGEX 0, 0, 266, 250 STYLE DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Rainmeter Skin Installer" FONT 8, "MS Shell Dlg 2" { CONTROL IDB_INSTALLHEADER, IDC_INSTALL_HEADER_BITMAP, STATIC, SS_BITMAP | WS_CHILD | WS_VISIBLE, 0, 0, 266, 37 CONTROL "", IDC_STATIC, STATIC, SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE, 0, 37, 270, 1 - CONTROL "", IDC_INSTALL_TAB, "SysTabControl32", TCS_TABS | TCS_FIXEDWIDTH, 6, 42, 254, 205 - PUSHBUTTON "Advanced", IDC_INSTALL_ADVANCED_BUTTON, 6, 251, 70, 14 - DEFPUSHBUTTON "Install", IDC_INSTALL_INSTALL_BUTTON, 155, 251, 50, 14 - PUSHBUTTON "Cancel", IDCLOSE, 210, 251, 50, 14 + CONTROL "", IDC_INSTALL_TAB, "SysTabControl32", TCS_TABS | TCS_FIXEDWIDTH, 6, 42, 254, 185 + PUSHBUTTON "Advanced", IDC_INSTALL_ADVANCED_BUTTON, 6, 231, 70, 14 + DEFPUSHBUTTON "Install", IDC_INSTALL_INSTALL_BUTTON, 155, 231, 50, 14 + PUSHBUTTON "Cancel", IDCLOSE, 210, 231, 50, 14 } -IDD_INSTALL_TAB DIALOGEX 15, 51, 236, 188 +IDD_INSTALL_TAB DIALOGEX 15, 51, 236, 168 STYLE DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS -CAPTION "Rainstaller" FONT 8, "MS Shell Dlg 2" { - LTEXT "The following package is about to be installed.", IDC_STATIC, 0, 0, 231, 39 - LTEXT "Name:", IDC_STATIC, 0, 20, 35, 9 - LTEXT "", IDC_INSTALLTAB_NAME_TEXT, 50, 20, 200, 9, SS_NOPREFIX - LTEXT "Author:", IDC_STATIC, 0, 33, 35, 9 - LTEXT "", IDC_INSTALLTAB_AUTHOR_TEXT, 50, 33, 200, 9, SS_NOPREFIX - LTEXT "Version:", IDC_STATIC, 0, 46, 35, 9 - LTEXT "", IDC_INSTALLTAB_VERSION_TEXT, 50, 46, 200, 9, SS_NOPREFIX - LTEXT "Included components:", IDC_STATIC, 0, 65, 80, 9 - CONTROL "", IDC_INSTALLTAB_COMPONENTS_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 0, 80, 234, 86 - AUTOCHECKBOX "Apply included theme", IDC_INSTALLTAB_THEME_CHECKBOX, 4, 175, 220, 9 + LTEXT "Name:", IDC_STATIC, 0, 0, 35, 9 + LTEXT "", IDC_INSTALLTAB_NAME_TEXT, 50, 0, 200, 9, SS_NOPREFIX + LTEXT "Author:", IDC_STATIC, 0, 13, 35, 9 + LTEXT "", IDC_INSTALLTAB_AUTHOR_TEXT, 50, 13, 200, 9, SS_NOPREFIX + LTEXT "Version:", IDC_STATIC, 0, 26, 35, 9 + LTEXT "", IDC_INSTALLTAB_VERSION_TEXT, 50, 26, 200, 9, SS_NOPREFIX + LTEXT "Included components:", IDC_STATIC, 0, 45, 80, 9 + CONTROL "", IDC_INSTALLTAB_COMPONENTS_LIST, "SysListView32", LVS_REPORT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 0, 60, 234, 86 + AUTOCHECKBOX "Apply included theme", IDC_INSTALLTAB_THEME_CHECKBOX, 4, 155, 220, 9 LTEXT "Installing...", IDC_INSTALLTAB_INPROGRESS_TEXT, 0, 0, 236, 60, NOT WS_VISIBLE CONTROL "", IDC_INSTALLTAB_PROGRESS, "msctls_progress32", PBS_MARQUEE | NOT WS_VISIBLE | WS_BORDER, 0, 15, 236, 11 diff --git a/SkinInstaller/StdAfx.h b/SkinInstaller/StdAfx.h index 115f39b2..166d56a8 100644 --- a/SkinInstaller/StdAfx.h +++ b/SkinInstaller/StdAfx.h @@ -28,6 +28,7 @@ #include #include #include +#include #include // STL