mirror of
https://github.com/pbatard/rufus.git
synced 2025-05-19 09:25:12 -04:00
[ui] add a status bar button to initiate checksum computation
* Just click the "hash" sign to get a hash * Also clean up status bar related functions
This commit is contained in:
parent
e0422f4596
commit
14b8ab6a43
6 changed files with 82 additions and 53 deletions
|
@ -297,7 +297,7 @@ static void print_extracted_file(char* psz_fullpath, int64_t i_file_length)
|
||||||
uprintf("Extracting: %s\n", psz_fullpath);
|
uprintf("Extracting: %s\n", psz_fullpath);
|
||||||
safe_sprintf(&psz_fullpath[nul_pos], 24, " (%s)", SizeToHumanReadable(i_file_length, FALSE, FALSE));
|
safe_sprintf(&psz_fullpath[nul_pos], 24, " (%s)", SizeToHumanReadable(i_file_length, FALSE, FALSE));
|
||||||
// TODO: I don't think we need both of these...
|
// TODO: I don't think we need both of these...
|
||||||
SendMessageLU(GetDlgItem(hMainDialog, IDC_STATUS), SB_SETTEXTW, SBT_OWNERDRAW, psz_fullpath);
|
SendMessageLU(hStatus, SB_SETTEXTW, SBT_OWNERDRAW | SB_SECTION_LEFT, psz_fullpath);
|
||||||
PrintStatus(0, MSG_000, psz_fullpath); // MSG_000 is "%s"
|
PrintStatus(0, MSG_000, psz_fullpath); // MSG_000 is "%s"
|
||||||
// ISO9660 cannot handle backslashes
|
// ISO9660 cannot handle backslashes
|
||||||
for (i=0; i<nul_pos; i++)
|
for (i=0; i<nul_pos; i++)
|
||||||
|
|
|
@ -420,7 +420,7 @@ static void __inline OutputMessage(BOOL info, char* msg)
|
||||||
if (info)
|
if (info)
|
||||||
SetWindowTextU(hInfo, msg);
|
SetWindowTextU(hInfo, msg);
|
||||||
else
|
else
|
||||||
SendMessageLU(GetDlgItem(hMainDialog, IDC_STATUS), SB_SETTEXTW, SBT_OWNERDRAW, msg);
|
SendMessageLU(hStatus, SB_SETTEXTW, SBT_OWNERDRAW | SB_SECTION_LEFT, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CALLBACK PrintMessageTimeout(HWND hWnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
|
static void CALLBACK PrintMessageTimeout(HWND hWnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
|
||||||
|
|
91
src/rufus.c
91
src/rufus.c
|
@ -903,7 +903,7 @@ static void CALLBACK ClockTimer(HWND hWnd, UINT uMsg, UINT_PTR idEvent, DWORD dw
|
||||||
timer++;
|
timer++;
|
||||||
safe_sprintf(szTimer, sizeof(szTimer), "%02d:%02d:%02d",
|
safe_sprintf(szTimer, sizeof(szTimer), "%02d:%02d:%02d",
|
||||||
timer/3600, (timer%3600)/60, timer%60);
|
timer/3600, (timer%3600)/60, timer%60);
|
||||||
SendMessageA(GetDlgItem(hWnd, IDC_STATUS), SB_SETTEXTA, SBT_OWNERDRAW | 1, (LPARAM)szTimer);
|
SendMessageA(hStatus, SB_SETTEXTA, SBT_OWNERDRAW | SB_SECTION_RIGHT, (LPARAM)szTimer);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1063,6 +1063,7 @@ DWORD WINAPI ISOScanThread(LPVOID param)
|
||||||
InvalidateRect(hMainDialog, NULL, TRUE);
|
InvalidateRect(hMainDialog, NULL, TRUE);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
SendMessageLU(hStatus, SB_SETTEXTW, SBT_OWNERDRAW | SB_SECTION_MIDDLE, "");
|
||||||
PrintInfo(0, MSG_210);
|
PrintInfo(0, MSG_210);
|
||||||
ExitThread(0);
|
ExitThread(0);
|
||||||
}
|
}
|
||||||
|
@ -1850,6 +1851,9 @@ void InitDialog(HWND hDlg)
|
||||||
ToggleAdvanced(); // We start in advanced mode => go to basic mode
|
ToggleAdvanced(); // We start in advanced mode => go to basic mode
|
||||||
ToggleToGo();
|
ToggleToGo();
|
||||||
|
|
||||||
|
// Create the hash sign on the status bar
|
||||||
|
SendMessageLU(hStatus, SB_SETTEXTW, SBT_OWNERDRAW | SB_SECTION_MIDDLE, "");
|
||||||
|
|
||||||
// Process commandline parameters
|
// Process commandline parameters
|
||||||
if (iso_provided) {
|
if (iso_provided) {
|
||||||
// Simulate a button click for ISO selection
|
// Simulate a button click for ISO selection
|
||||||
|
@ -1953,7 +1957,7 @@ void SetBoot(int fs, int bt)
|
||||||
*/
|
*/
|
||||||
static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
|
static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
static DWORD DeviceNum = 0, LastRefresh = 0;
|
static DWORD DeviceNum = 0, LastRefresh = 0, MessagePos;
|
||||||
static BOOL first_log_display = TRUE, user_changed_label = FALSE, isMarquee = FALSE;
|
static BOOL first_log_display = TRUE, user_changed_label = FALSE, isMarquee = FALSE;
|
||||||
static ULONG ulRegister = 0;
|
static ULONG ulRegister = 0;
|
||||||
static LPITEMIDLIST pidlDesktop = NULL;
|
static LPITEMIDLIST pidlDesktop = NULL;
|
||||||
|
@ -2057,12 +2061,16 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
pDI->rcItem.left += (int)(4.0f * fScale);
|
pDI->rcItem.left += (int)(4.0f * fScale);
|
||||||
SetBkMode(pDI->hDC, TRANSPARENT);
|
SetBkMode(pDI->hDC, TRANSPARENT);
|
||||||
switch(pDI->itemID) {
|
switch(pDI->itemID) {
|
||||||
case 0: // left part
|
case SB_SECTION_LEFT:
|
||||||
SetTextColor(pDI->hDC, GetSysColor(COLOR_BTNTEXT));
|
SetTextColor(pDI->hDC, GetSysColor(COLOR_BTNTEXT));
|
||||||
DrawTextExU(pDI->hDC, szStatusMessage, -1, &pDI->rcItem,
|
DrawTextExU(pDI->hDC, szStatusMessage, -1, &pDI->rcItem,
|
||||||
DT_LEFT|DT_END_ELLIPSIS|DT_PATH_ELLIPSIS, NULL);
|
DT_LEFT|DT_END_ELLIPSIS|DT_PATH_ELLIPSIS, NULL);
|
||||||
return (INT_PTR)TRUE;
|
return (INT_PTR)TRUE;
|
||||||
case 1: // right part
|
case SB_SECTION_MIDDLE:
|
||||||
|
SetTextColor(pDI->hDC, (image_path==NULL)?GetSysColor(COLOR_3DSHADOW):GetSysColor(COLOR_BTNTEXT));
|
||||||
|
DrawTextExA(pDI->hDC, "#", -1, &pDI->rcItem, DT_LEFT, NULL);
|
||||||
|
return (INT_PTR)TRUE;
|
||||||
|
case SB_SECTION_RIGHT:
|
||||||
SetTextColor(pDI->hDC, GetSysColor(COLOR_3DSHADOW));
|
SetTextColor(pDI->hDC, GetSysColor(COLOR_3DSHADOW));
|
||||||
DrawTextExA(pDI->hDC, szTimer, -1, &pDI->rcItem, DT_LEFT, NULL);
|
DrawTextExA(pDI->hDC, szTimer, -1, &pDI->rcItem, DT_LEFT, NULL);
|
||||||
return (INT_PTR)TRUE;
|
return (INT_PTR)TRUE;
|
||||||
|
@ -2070,6 +2078,45 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// Detect a click on the "hash" sign in the status bar
|
||||||
|
case WM_PARENTNOTIFY:
|
||||||
|
if (wParam == WM_LBUTTONDOWN) {
|
||||||
|
GetClientRect(hMainDialog, &DialogRect);
|
||||||
|
MessagePos = GetMessagePos();
|
||||||
|
Point.x = GET_X_LPARAM(MessagePos);
|
||||||
|
Point.y = GET_Y_LPARAM(MessagePos);
|
||||||
|
ScreenToClient(hDlg, &Point);
|
||||||
|
if ( (Point.x >= DialogRect.right - (int)(SB_EDGE_1*fScale)) &&
|
||||||
|
(Point.x <= DialogRect.right - (int)(SB_EDGE_2*fScale)) &&
|
||||||
|
((format_thid == NULL) && (image_path != NULL)) ) {
|
||||||
|
FormatStatus = 0;
|
||||||
|
format_op_in_progress = TRUE;
|
||||||
|
no_confirmation_on_cancel = TRUE;
|
||||||
|
// Reset all progress bars
|
||||||
|
SendMessage(hProgress, PBM_SETSTATE, (WPARAM)PBST_NORMAL, 0);
|
||||||
|
SetTaskbarProgressState(TASKBAR_NORMAL);
|
||||||
|
SetTaskbarProgressValue(0, MAX_PROGRESS);
|
||||||
|
SendMessage(hProgress, PBM_SETPOS, 0, 0);
|
||||||
|
// Disable all controls except cancel
|
||||||
|
EnableControls(FALSE);
|
||||||
|
InitProgress(FALSE);
|
||||||
|
format_thid = CreateThread(NULL, 0, SumThread, NULL, 0, NULL);
|
||||||
|
if (format_thid != NULL) {
|
||||||
|
PrintInfo(0, -1);
|
||||||
|
timer = 0;
|
||||||
|
safe_sprintf(szTimer, sizeof(szTimer), "00:00:00");
|
||||||
|
SendMessageA(hStatus, SB_SETTEXTA, SBT_OWNERDRAW | SB_SECTION_RIGHT, (LPARAM)szTimer);
|
||||||
|
SetTimer(hMainDialog, TID_APP_TIMER, 1000, ClockTimer);
|
||||||
|
} else {
|
||||||
|
uprintf("Unable to start checksum thread");
|
||||||
|
FormatStatus = ERROR_SEVERITY_ERROR | FAC(FACILITY_STORAGE) | APPERR(ERROR_CANT_START_THREAD);
|
||||||
|
PostMessage(hMainDialog, UM_FORMAT_COMPLETED, (WPARAM)FALSE, 0);
|
||||||
|
format_op_in_progress = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case WM_COMMAND:
|
case WM_COMMAND:
|
||||||
if ((LOWORD(wParam) >= UM_LANGUAGE_MENU) && (LOWORD(wParam) < UM_LANGUAGE_MENU_MAX)) {
|
if ((LOWORD(wParam) >= UM_LANGUAGE_MENU) && (LOWORD(wParam) < UM_LANGUAGE_MENU_MAX)) {
|
||||||
selected_language = LOWORD(wParam) - UM_LANGUAGE_MENU;
|
selected_language = LOWORD(wParam) - UM_LANGUAGE_MENU;
|
||||||
|
@ -2391,8 +2438,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
PrintInfo(0, -1);
|
PrintInfo(0, -1);
|
||||||
timer = 0;
|
timer = 0;
|
||||||
safe_sprintf(szTimer, sizeof(szTimer), "00:00:00");
|
safe_sprintf(szTimer, sizeof(szTimer), "00:00:00");
|
||||||
SendMessageA(GetDlgItem(hMainDialog, IDC_STATUS), SB_SETTEXTA,
|
SendMessageA(hStatus, SB_SETTEXTA, SBT_OWNERDRAW | SB_SECTION_RIGHT, (LPARAM)szTimer);
|
||||||
SBT_OWNERDRAW | 1, (LPARAM)szTimer);
|
|
||||||
SetTimer(hMainDialog, TID_APP_TIMER, 1000, ClockTimer);
|
SetTimer(hMainDialog, TID_APP_TIMER, 1000, ClockTimer);
|
||||||
}
|
}
|
||||||
if (format_thid == NULL)
|
if (format_thid == NULL)
|
||||||
|
@ -2922,37 +2968,6 @@ relaunch:
|
||||||
GetUSBDevices(0);
|
GetUSBDevices(0);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// Alt-M => Compute Message Digests (MD5, SHA-1) on the current image
|
|
||||||
if ((msg.message == WM_SYSKEYDOWN) && (msg.wParam == 'M')) {
|
|
||||||
if ((format_thid != NULL) || (image_path == NULL))
|
|
||||||
continue;
|
|
||||||
FormatStatus = 0;
|
|
||||||
format_op_in_progress = TRUE;
|
|
||||||
no_confirmation_on_cancel = TRUE;
|
|
||||||
// Reset all progress bars
|
|
||||||
SendMessage(hProgress, PBM_SETSTATE, (WPARAM)PBST_NORMAL, 0);
|
|
||||||
SetTaskbarProgressState(TASKBAR_NORMAL);
|
|
||||||
SetTaskbarProgressValue(0, MAX_PROGRESS);
|
|
||||||
SendMessage(hProgress, PBM_SETPOS, 0, 0);
|
|
||||||
// Disable all controls except cancel
|
|
||||||
EnableControls(FALSE);
|
|
||||||
InitProgress(FALSE);
|
|
||||||
format_thid = CreateThread(NULL, 0, SumThread, NULL, 0, NULL);
|
|
||||||
if (format_thid != NULL) {
|
|
||||||
PrintInfo(0, -1);
|
|
||||||
timer = 0;
|
|
||||||
safe_sprintf(szTimer, sizeof(szTimer), "00:00:00");
|
|
||||||
SendMessageA(GetDlgItem(hMainDialog, IDC_STATUS), SB_SETTEXTA,
|
|
||||||
SBT_OWNERDRAW | 1, (LPARAM)szTimer);
|
|
||||||
SetTimer(hMainDialog, TID_APP_TIMER, 1000, ClockTimer);
|
|
||||||
} else {
|
|
||||||
uprintf("Unable to start checksum thread");
|
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR | FAC(FACILITY_STORAGE) | APPERR(ERROR_CANT_START_THREAD);
|
|
||||||
PostMessage(hMainDialog, UM_FORMAT_COMPLETED, (WPARAM)FALSE, 0);
|
|
||||||
format_op_in_progress = FALSE;
|
|
||||||
}
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
// Alt N => Enable NTFS compression
|
// Alt N => Enable NTFS compression
|
||||||
if ((msg.message == WM_SYSKEYDOWN) && (msg.wParam == 'N')) {
|
if ((msg.message == WM_SYSKEYDOWN) && (msg.wParam == 'N')) {
|
||||||
enable_ntfs_compression = !enable_ntfs_compression;
|
enable_ntfs_compression = !enable_ntfs_compression;
|
||||||
|
@ -3020,7 +3035,7 @@ relaunch:
|
||||||
PrintInfo(0, -1);
|
PrintInfo(0, -1);
|
||||||
timer = 0;
|
timer = 0;
|
||||||
safe_sprintf(szTimer, sizeof(szTimer), "00:00:00");
|
safe_sprintf(szTimer, sizeof(szTimer), "00:00:00");
|
||||||
SendMessageA(GetDlgItem(hMainDialog, IDC_STATUS), SB_SETTEXTA, SBT_OWNERDRAW | 1, (LPARAM)szTimer);
|
SendMessageA(hStatus, SB_SETTEXTA, SBT_OWNERDRAW | SB_SECTION_RIGHT, (LPARAM)szTimer);
|
||||||
SetTimer(hMainDialog, TID_APP_TIMER, 1000, ClockTimer);
|
SetTimer(hMainDialog, TID_APP_TIMER, 1000, ClockTimer);
|
||||||
} else {
|
} else {
|
||||||
uprintf("Unable to start VHD save thread");
|
uprintf("Unable to start VHD save thread");
|
||||||
|
|
|
@ -152,6 +152,15 @@ typedef struct {
|
||||||
Callback_t callback;
|
Callback_t callback;
|
||||||
} notification_info; // To provide a "More info..." on notifications
|
} notification_info; // To provide a "More info..." on notifications
|
||||||
|
|
||||||
|
/* Status Bar sections */
|
||||||
|
#define SB_SECTION_LEFT 0
|
||||||
|
#define SB_SECTION_MIDDLE 1
|
||||||
|
#define SB_SECTION_RIGHT 2
|
||||||
|
|
||||||
|
/* Distance, from the right border, of the Status Bar separators */
|
||||||
|
#define SB_EDGE_1 77.0f
|
||||||
|
#define SB_EDGE_2 58.0f
|
||||||
|
|
||||||
/* Timers used throughout the program */
|
/* Timers used throughout the program */
|
||||||
enum timer_type {
|
enum timer_type {
|
||||||
TID_MESSAGE_INFO = 0x1000,
|
TID_MESSAGE_INFO = 0x1000,
|
||||||
|
|
16
src/rufus.rc
16
src/rufus.rc
|
@ -32,7 +32,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||||
|
|
||||||
IDD_DIALOG DIALOGEX 12, 12, 242, 376
|
IDD_DIALOG DIALOGEX 12, 12, 242, 376
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Rufus 2.3.686"
|
CAPTION "Rufus 2.3.687"
|
||||||
FONT 8, "Segoe UI", 400, 0, 0x1
|
FONT 8, "Segoe UI", 400, 0, 0x1
|
||||||
BEGIN
|
BEGIN
|
||||||
LTEXT "Device",IDS_DEVICE_TXT,9,6,200,8
|
LTEXT "Device",IDS_DEVICE_TXT,9,6,200,8
|
||||||
|
@ -157,7 +157,7 @@ END
|
||||||
|
|
||||||
IDD_DIALOG_XP DIALOGEX 12, 12, 242, 376
|
IDD_DIALOG_XP DIALOGEX 12, 12, 242, 376
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Rufus 2.3.686"
|
CAPTION "Rufus 2.3.687"
|
||||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
BEGIN
|
BEGIN
|
||||||
LTEXT "Device",IDS_DEVICE_TXT,9,6,200,8
|
LTEXT "Device",IDS_DEVICE_TXT,9,6,200,8
|
||||||
|
@ -283,7 +283,7 @@ END
|
||||||
IDD_DIALOG_RTL DIALOGEX 12, 12, 242, 376
|
IDD_DIALOG_RTL DIALOGEX 12, 12, 242, 376
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
EXSTYLE WS_EX_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL
|
EXSTYLE WS_EX_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL
|
||||||
CAPTION "Rufus 2.3.686"
|
CAPTION "Rufus 2.3.687"
|
||||||
FONT 8, "Segoe UI", 400, 0, 0x1
|
FONT 8, "Segoe UI", 400, 0, 0x1
|
||||||
BEGIN
|
BEGIN
|
||||||
LTEXT "Device",IDS_DEVICE_TXT,9,6,200,8
|
LTEXT "Device",IDS_DEVICE_TXT,9,6,200,8
|
||||||
|
@ -415,7 +415,7 @@ END
|
||||||
IDD_DIALOG_RTL_XP DIALOGEX 12, 12, 242, 376
|
IDD_DIALOG_RTL_XP DIALOGEX 12, 12, 242, 376
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
EXSTYLE WS_EX_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL
|
EXSTYLE WS_EX_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL
|
||||||
CAPTION "Rufus 2.3.686"
|
CAPTION "Rufus 2.3.687"
|
||||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
BEGIN
|
BEGIN
|
||||||
LTEXT "Device",IDS_DEVICE_TXT,9,6,200,8
|
LTEXT "Device",IDS_DEVICE_TXT,9,6,200,8
|
||||||
|
@ -671,8 +671,8 @@ END
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 2,3,686,0
|
FILEVERSION 2,3,687,0
|
||||||
PRODUCTVERSION 2,3,686,0
|
PRODUCTVERSION 2,3,687,0
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
@ -689,13 +689,13 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)"
|
VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)"
|
||||||
VALUE "FileDescription", "Rufus"
|
VALUE "FileDescription", "Rufus"
|
||||||
VALUE "FileVersion", "2.3.686"
|
VALUE "FileVersion", "2.3.687"
|
||||||
VALUE "InternalName", "Rufus"
|
VALUE "InternalName", "Rufus"
|
||||||
VALUE "LegalCopyright", "© 2011-2015 Pete Batard (GPL v3)"
|
VALUE "LegalCopyright", "© 2011-2015 Pete Batard (GPL v3)"
|
||||||
VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html"
|
VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html"
|
||||||
VALUE "OriginalFilename", "rufus.exe"
|
VALUE "OriginalFilename", "rufus.exe"
|
||||||
VALUE "ProductName", "Rufus"
|
VALUE "ProductName", "Rufus"
|
||||||
VALUE "ProductVersion", "2.3.686"
|
VALUE "ProductVersion", "2.3.687"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|
15
src/stdlg.c
15
src/stdlg.c
|
@ -401,17 +401,22 @@ fallback:
|
||||||
void CreateStatusBar(void)
|
void CreateStatusBar(void)
|
||||||
{
|
{
|
||||||
RECT rect;
|
RECT rect;
|
||||||
int edge[2];
|
int edge[3];
|
||||||
|
|
||||||
// Create the status bar.
|
// Create the status bar.
|
||||||
hStatus = CreateWindowEx(0, STATUSCLASSNAME, NULL, WS_CHILD | WS_VISIBLE,
|
hStatus = CreateWindowEx(0, STATUSCLASSNAME, NULL, WS_CHILD | WS_VISIBLE,
|
||||||
0, 0, 0, 0, hMainDialog, (HMENU)IDC_STATUS, hMainInstance, NULL);
|
0, 0, 0, 0, hMainDialog, (HMENU)IDC_STATUS, hMainInstance, NULL);
|
||||||
|
|
||||||
// Create 2 status areas
|
// Create 3 status areas
|
||||||
GetClientRect(hMainDialog, &rect);
|
GetClientRect(hMainDialog, &rect);
|
||||||
edge[0] = rect.right - (int)(58.0f*fScale);
|
edge[0] = rect.right - (int)(SB_EDGE_1 * fScale);
|
||||||
edge[1] = rect.right;
|
edge[1] = rect.right - (int)(SB_EDGE_2 * fScale);
|
||||||
SendMessage(hStatus, SB_SETPARTS, (WPARAM) 2, (LPARAM)&edge);
|
edge[2] = rect.right;
|
||||||
|
SendMessage(hStatus, SB_SETPARTS, (WPARAM) ARRAYSIZE(edge), (LPARAM)&edge);
|
||||||
|
|
||||||
|
// NB: To add an icon on the status bar, you can use something like this:
|
||||||
|
// SendMessage(hStatus, SB_SETICON, (WPARAM) 1, (LPARAM)LoadImage(GetLibraryHandle("rasdlg"),
|
||||||
|
// MAKEINTRESOURCE(50), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), LR_DEFAULTCOLOR | LR_SHARED));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue