[SHELL32] Set default values for fields when volume information is not available. Fix drawing of free/used space pie chart when free space is 0 bytes. Disable editing of volume label for non-fixed disks. Brought to you by Barrett Karish. CORE-9595

svn path=/trunk/; revision=67359
This commit is contained in:
Amine Khaldi 2015-04-22 22:24:46 +00:00
parent 45816784bb
commit 526f31bf61
33 changed files with 90 additions and 13 deletions

View file

@ -223,20 +223,39 @@ CDrvDefExt::PaintStaticControls(HWND hwndDlg, LPDRAWITEMSTRUCT pDrawItem)
HBRUSH hbrOld = (HBRUSH)SelectObject(pDrawItem->hDC, hMagBrush);
INT xRadial = xCenter + (INT)(cos(M_PI+m_FreeSpacePerc/100.0f*M_PI*2.0f)*cx/2);
INT yRadial = yCenter - (INT)(sin(M_PI+m_FreeSpacePerc/100.0f*M_PI*2.0f)*cy/2);
Pie(pDrawItem->hDC,
pDrawItem->rcItem.left, pDrawItem->rcItem.top,
pDrawItem->rcItem.right, pDrawItem->rcItem.bottom - 10,
pDrawItem->rcItem.left, yCenter,
xRadial, yRadial);
SelectObject(pDrawItem->hDC, hBlueBrush);
Pie(pDrawItem->hDC,
pDrawItem->rcItem.left, pDrawItem->rcItem.top,
pDrawItem->rcItem.right, pDrawItem->rcItem.bottom - 10,
xRadial, yRadial,
pDrawItem->rcItem.left, yCenter);
SelectObject(pDrawItem->hDC, hbrOld);
if (m_FreeSpacePerc > 0)
{
Pie(pDrawItem->hDC,
pDrawItem->rcItem.left,
pDrawItem->rcItem.top,
pDrawItem->rcItem.right,
pDrawItem->rcItem.bottom - 10,
pDrawItem->rcItem.left,
yCenter,
xRadial,
yRadial);
SelectObject(pDrawItem->hDC, hBlueBrush);
Pie(pDrawItem->hDC,
pDrawItem->rcItem.left,
pDrawItem->rcItem.top,
pDrawItem->rcItem.right,
pDrawItem->rcItem.bottom - 10,
xRadial,
yRadial,
pDrawItem->rcItem.left,
yCenter);
SelectObject(pDrawItem->hDC, hbrOld);
}
else
{
SelectObject(pDrawItem->hDC, hBlueBrush);
Ellipse(pDrawItem->hDC,
pDrawItem->rcItem.left,
pDrawItem->rcItem.top,
pDrawItem->rcItem.right,
pDrawItem->rcItem.bottom - 10);
}
HPEN hOldPen = (HPEN)SelectObject(pDrawItem->hDC, hDarkMagPen);
for (INT x = pDrawItem->rcItem.left; x < pDrawItem->rcItem.right; ++x)
{
@ -272,6 +291,11 @@ CDrvDefExt::InitGeneralPage(HWND hwndDlg)
SetDlgItemTextW(hwndDlg, 14000, wszVolumeName);
SetDlgItemTextW(hwndDlg, 14002, wszFileSystem);
}
else
{
LoadStringW(shell32_hInstance, IDS_FS_UNKNOWN, wszFileSystem, _countof(wszFileSystem));
SetDlgItemTextW(hwndDlg, 14002, wszFileSystem);
}
/* Set drive type and icon */
UINT DriveType = GetDriveTypeW(m_wszDrive);
@ -283,6 +307,10 @@ CDrvDefExt::InitGeneralPage(HWND hwndDlg)
case DRIVE_RAMDISK: IconId = IDI_SHELL_RAMDISK; break;
default: IconId = IDI_SHELL_DRIVE; TypeStrId = IDS_DRIVE_FIXED;
}
if (DriveType != DRIVE_FIXED)
EnableWindow(GetDlgItem(hwndDlg, 14000), false);
HICON hIcon = (HICON)LoadImage(shell32_hInstance, MAKEINTRESOURCE(IconId), IMAGE_ICON, 32, 32, LR_SHARED);
if (hIcon)
SendDlgItemMessageW(hwndDlg, 14016, STM_SETICON, (WPARAM)hIcon, 0);
@ -316,6 +344,23 @@ CDrvDefExt::InitGeneralPage(HWND hwndDlg)
if (StrFormatByteSizeW(TotalNumberOfBytes.QuadPart, wszBuf, _countof(wszBuf)))
SetDlgItemTextW(hwndDlg, 14008, wszBuf);
}
else
{
m_FreeSpacePerc = 0;
if (SH_FormatByteSize(0, wszBuf, _countof(wszBuf)))
{
SetDlgItemTextW(hwndDlg, 14003, wszBuf);
SetDlgItemTextW(hwndDlg, 14005, wszBuf);
SetDlgItemTextW(hwndDlg, 14007, wszBuf);
}
if (StrFormatByteSizeW(0, wszBuf, _countof(wszBuf)))
{
SetDlgItemTextW(hwndDlg, 14004, wszBuf);
SetDlgItemTextW(hwndDlg, 14006, wszBuf);
SetDlgItemTextW(hwndDlg, 14008, wszBuf);
}
}
/* Set drive description */
WCHAR wszFormat[50];

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "Местен диск"
IDS_DRIVE_CDROM "КД четец"
IDS_DRIVE_NETWORK "Мрежов диск"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Отваряне с"

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "Local Disk"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Network Disk"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Open With"

View file

@ -759,6 +759,7 @@ BEGIN
IDS_DRIVE_FIXED "Místní disk"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Síťový Disk"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Otevřít v"

View file

@ -759,6 +759,7 @@ BEGIN
IDS_DRIVE_FIXED "Local Disk"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Network Disk"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Open With"

View file

@ -754,6 +754,7 @@ BEGIN
IDS_DRIVE_FIXED "Lokaler Datenträger"
IDS_DRIVE_CDROM "CD-Laufwerk"
IDS_DRIVE_NETWORK "Netzlaufwerk"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Öffnen mit..."

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "Τοπικός δίσκος"
IDS_DRIVE_CDROM "Μονάδα CD"
IDS_DRIVE_NETWORK "Δίσκος δικτύου"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Άνοιγμαμε"

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "Local Disk"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Network Disk"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Open With"

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "Local Disk"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Network Disk"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Open With"

View file

@ -754,6 +754,7 @@ BEGIN
IDS_DRIVE_FIXED "Disco local"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Unidad de red"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Abrir con"

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "Local Disk"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Network Disk"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Open With"

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "Disque local"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Disque réseau"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Ouvrir avec"

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "כונן מקומי"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "כונן רשת"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "פתיחה באמצעות"

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "Local Disk"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Network Disk"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Open With"

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "Disco locale"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Disco di Rete"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Apri con"

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "ローカル ディスク"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "ネットワーク ディスク"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "プログラムから開く"

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "Local Disk"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Network Disk"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Open With"

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "Local Disk"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Network Disk"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Open With"

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "Lokal Disk"
IDS_DRIVE_CDROM "CD stasjon"
IDS_DRIVE_NETWORK "Nettverk disk"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Åpne med"

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "Dysk lokalny"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Dysk sieciowy"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Otwórz za pomocą"

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "Disco Local"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Disco de Rede"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Abrir Com"

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "Disco Local"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Disco de Rede"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Abre com..."

View file

@ -755,6 +755,7 @@ BEGIN
IDS_DRIVE_FIXED "Disc local"
IDS_DRIVE_CDROM "CD-ROM"
IDS_DRIVE_NETWORK "Disc din rețea"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Deschide cu"

View file

@ -755,6 +755,7 @@ BEGIN
IDS_DRIVE_FIXED "Локальный диск"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Сетевой диск"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Открыть с помощью"

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "Lokálny disk"
IDS_DRIVE_CDROM "Jednotka CD"
IDS_DRIVE_NETWORK "Sieťový disk"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Otvoriť v progra&me"

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "Local Disk"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Network Disk"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Open With"

View file

@ -757,6 +757,7 @@ BEGIN
IDS_DRIVE_FIXED "Disku Vendorë"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Disku Rrjetit"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Hap me"

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "Local Disk"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Network Disk"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Open With"

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "Yerel Disk"
IDS_DRIVE_CDROM "Optik Sürücü"
IDS_DRIVE_NETWORK "Ağ Sürücüsü"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Birlikte Aç"

View file

@ -753,6 +753,7 @@ BEGIN
IDS_DRIVE_FIXED "Локальний диск"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Мережний диск"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Відкрити за допомогою"

View file

@ -762,6 +762,7 @@ BEGIN
IDS_DRIVE_FIXED "Local Disk"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Network Disk"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "打开方式"

View file

@ -761,6 +761,7 @@ BEGIN
IDS_DRIVE_FIXED "Local Disk"
IDS_DRIVE_CDROM "CDROM"
IDS_DRIVE_NETWORK "Network Disk"
IDS_FS_UNKNOWN "Unknown"
/* Open With */
IDS_OPEN_WITH "Open With"

View file

@ -107,6 +107,7 @@
#define IDS_DRIVE_FIXED 72
#define IDS_DRIVE_CDROM 73
#define IDS_DRIVE_NETWORK 74
#define IDS_FS_UNKNOWN 75
#define IDS_LOGOFF_TITLE 78
#define IDS_LOGOFF_PROMPT 79