mirror of
https://github.com/notepad-plus-plus/notepad-plus-plus.git
synced 2025-07-22 13:24:42 +02:00
GUI enhancement: MD5 and SHA256 Hash dialogs
- add accelerators - add initializers - optimize dark mod Fix #13579, close #13580
This commit is contained in:
parent
997ef821d1
commit
7e6c4b3c6b
@ -519,27 +519,27 @@ The comments are here for explanation, it's not necessary to translate them.
|
|||||||
</Run>
|
</Run>
|
||||||
|
|
||||||
<MD5FromFilesDlg title="Generate MD5 digest from files">
|
<MD5FromFilesDlg title="Generate MD5 digest from files">
|
||||||
<Item id="1922" name="Choose files to generate MD5..."/>
|
<Item id="1922" name="Choose files to &generate MD5..."/>
|
||||||
<Item id="1924" name="Copy to Clipboard"/>
|
<Item id="1924" name="Co&py to Clipboard"/>
|
||||||
<Item id="2" name="Close"/>
|
<Item id="2" name="&Close"/>
|
||||||
</MD5FromFilesDlg>
|
</MD5FromFilesDlg>
|
||||||
|
|
||||||
<MD5FromTextDlg title="Generate MD5 digest">
|
<MD5FromTextDlg title="Generate MD5 digest">
|
||||||
<Item id="1932" name="Treat each line as a separate string"/>
|
<Item id="1932" name="Treat each line as a &separate string"/>
|
||||||
<Item id="1934" name="Copy to Clipboard"/>
|
<Item id="1934" name="Co&py to Clipboard"/>
|
||||||
<Item id="2" name="Close"/>
|
<Item id="2" name="&Close"/>
|
||||||
</MD5FromTextDlg>
|
</MD5FromTextDlg>
|
||||||
|
|
||||||
<SHA256FromFilesDlg title="Generate SHA-256 digest from files">
|
<SHA256FromFilesDlg title="Generate SHA-256 digest from files">
|
||||||
<Item id="1922" name="Choose files to generate SHA-256..."/>
|
<Item id="1922" name="Choose files to &generate SHA-256..."/>
|
||||||
<Item id="1924" name="Copy to Clipboard"/>
|
<Item id="1924" name="Co&py to Clipboard"/>
|
||||||
<Item id="2" name="Close"/>
|
<Item id="2" name="&Close"/>
|
||||||
</SHA256FromFilesDlg>
|
</SHA256FromFilesDlg>
|
||||||
|
|
||||||
<SHA256FromTextDlg title="Generate SHA-256 digest">
|
<SHA256FromTextDlg title="Generate SHA-256 digest">
|
||||||
<Item id="1932" name="Treat each line as a separate string"/>
|
<Item id="1932" name="Treat each line as a &separate string"/>
|
||||||
<Item id="1934" name="Copy to Clipboard"/>
|
<Item id="1934" name="Co&py to Clipboard"/>
|
||||||
<Item id="2" name="Close"/>
|
<Item id="2" name="&Close"/>
|
||||||
</SHA256FromTextDlg>
|
</SHA256FromTextDlg>
|
||||||
|
|
||||||
<PluginsAdminDlg title="Plugins Admin" titleAvailable="Available" titleUpdates="Updates" titleInstalled="Installed" titleIncompatible="Incompatible">
|
<PluginsAdminDlg title="Plugins Admin" titleAvailable="Available" titleUpdates="Updates" titleInstalled="Installed" titleIncompatible="Incompatible">
|
||||||
|
@ -514,27 +514,27 @@ The comments are here for explanation, it's not necessary to translate them.
|
|||||||
</Run>
|
</Run>
|
||||||
|
|
||||||
<MD5FromFilesDlg title="Generate MD5 digest from files">
|
<MD5FromFilesDlg title="Generate MD5 digest from files">
|
||||||
<Item id="1922" name="Choose files to generate MD5..."/>
|
<Item id="1922" name="Choose files to &generate MD5..."/>
|
||||||
<Item id="1924" name="Copy to Clipboard"/>
|
<Item id="1924" name="Co&py to Clipboard"/>
|
||||||
<Item id="2" name="Close"/>
|
<Item id="2" name="&Close"/>
|
||||||
</MD5FromFilesDlg>
|
</MD5FromFilesDlg>
|
||||||
|
|
||||||
<MD5FromTextDlg title="Generate MD5 digest">
|
<MD5FromTextDlg title="Generate MD5 digest">
|
||||||
<Item id="1932" name="Treat each line as a separate string"/>
|
<Item id="1932" name="Treat each line as a &separate string"/>
|
||||||
<Item id="1934" name="Copy to Clipboard"/>
|
<Item id="1934" name="Co&py to Clipboard"/>
|
||||||
<Item id="2" name="Close"/>
|
<Item id="2" name="&Close"/>
|
||||||
</MD5FromTextDlg>
|
</MD5FromTextDlg>
|
||||||
|
|
||||||
<SHA256FromFilesDlg title="Generate SHA-256 digest from files">
|
<SHA256FromFilesDlg title="Generate SHA-256 digest from files">
|
||||||
<Item id="1922" name="Choose files to generate SHA-256..."/>
|
<Item id="1922" name="Choose files to &generate SHA-256..."/>
|
||||||
<Item id="1924" name="Copy to Clipboard"/>
|
<Item id="1924" name="Co&py to Clipboard"/>
|
||||||
<Item id="2" name="Close"/>
|
<Item id="2" name="&Close"/>
|
||||||
</SHA256FromFilesDlg>
|
</SHA256FromFilesDlg>
|
||||||
|
|
||||||
<SHA256FromTextDlg title="Generate SHA-256 digest">
|
<SHA256FromTextDlg title="Generate SHA-256 digest">
|
||||||
<Item id="1932" name="Treat each line as a separate string"/>
|
<Item id="1932" name="Treat each line as a &separate string"/>
|
||||||
<Item id="1934" name="Copy to Clipboard"/>
|
<Item id="1934" name="Co&py to Clipboard"/>
|
||||||
<Item id="2" name="Close"/>
|
<Item id="2" name="&Close"/>
|
||||||
</SHA256FromTextDlg>
|
</SHA256FromTextDlg>
|
||||||
|
|
||||||
<PluginsAdminDlg title="Plugins Admin" titleAvailable="Available" titleUpdates="Updates" titleInstalled="Installed" titleIncompatible="Incompatible">
|
<PluginsAdminDlg title="Plugins Admin" titleAvailable="Available" titleUpdates="Updates" titleInstalled="Installed" titleIncompatible="Incompatible">
|
||||||
|
@ -50,26 +50,20 @@ intptr_t CALLBACK HashFromFilesDlg::run_dlgProc(UINT message, WPARAM wParam, LPA
|
|||||||
|
|
||||||
case WM_CTLCOLORDLG:
|
case WM_CTLCOLORDLG:
|
||||||
{
|
{
|
||||||
if (NppDarkMode::isEnabled())
|
return NppDarkMode::onCtlColorDarker(reinterpret_cast<HDC>(wParam));
|
||||||
{
|
|
||||||
return NppDarkMode::onCtlColorDarker(reinterpret_cast<HDC>(wParam));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
case WM_CTLCOLORSTATIC:
|
case WM_CTLCOLORSTATIC:
|
||||||
{
|
{
|
||||||
if (NppDarkMode::isEnabled())
|
if (NppDarkMode::isEnabled())
|
||||||
{
|
{
|
||||||
HWND hwnd = reinterpret_cast<HWND>(lParam);
|
const auto hdcStatic = reinterpret_cast<HDC>(wParam);
|
||||||
if (hwnd == ::GetDlgItem(_hSelf, IDC_HASH_PATH_EDIT) || hwnd == ::GetDlgItem(_hSelf, IDC_HASH_RESULT_EDIT))
|
const auto dlgCtrlID = ::GetDlgCtrlID(reinterpret_cast<HWND>(lParam));
|
||||||
|
if (dlgCtrlID == IDC_HASH_PATH_EDIT || dlgCtrlID == IDC_HASH_RESULT_EDIT)
|
||||||
{
|
{
|
||||||
return NppDarkMode::onCtlColor(reinterpret_cast<HDC>(wParam));
|
return NppDarkMode::onCtlColor(hdcStatic);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return NppDarkMode::onCtlColorDarker(reinterpret_cast<HDC>(wParam));
|
|
||||||
}
|
}
|
||||||
|
return NppDarkMode::onCtlColorDarker(hdcStatic);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -89,7 +83,7 @@ intptr_t CALLBACK HashFromFilesDlg::run_dlgProc(UINT message, WPARAM wParam, LPA
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WM_COMMAND :
|
case WM_COMMAND:
|
||||||
{
|
{
|
||||||
switch (wParam)
|
switch (wParam)
|
||||||
{
|
{
|
||||||
@ -137,7 +131,7 @@ intptr_t CALLBACK HashFromFilesDlg::run_dlgProc(UINT message, WPARAM wParam, LPA
|
|||||||
{
|
{
|
||||||
std::string content = getFileContent(it.c_str());
|
std::string content = getFileContent(it.c_str());
|
||||||
|
|
||||||
uint8_t sha2hash[32];
|
uint8_t sha2hash[32]{};
|
||||||
calc_sha_256(sha2hash, reinterpret_cast<const uint8_t*>(content.c_str()), content.length());
|
calc_sha_256(sha2hash, reinterpret_cast<const uint8_t*>(content.c_str()), content.length());
|
||||||
|
|
||||||
wchar_t sha2hashStr[65] = { '\0' };
|
wchar_t sha2hashStr[65] = { '\0' };
|
||||||
@ -230,13 +224,13 @@ void HashFromFilesDlg::doDialog(bool isRTL)
|
|||||||
generic_string title = TEXT("Generate SHA-256 digest from files");
|
generic_string title = TEXT("Generate SHA-256 digest from files");
|
||||||
::SetWindowText(_hSelf, title.c_str());
|
::SetWindowText(_hSelf, title.c_str());
|
||||||
|
|
||||||
generic_string buttonText = TEXT("Choose files to generate SHA-256...");
|
generic_string buttonText = TEXT("Choose files to &generate SHA-256...");
|
||||||
::SetDlgItemText(_hSelf, IDC_HASH_FILEBROWSER_BUTTON, buttonText.c_str());
|
::SetDlgItemText(_hSelf, IDC_HASH_FILEBROWSER_BUTTON, buttonText.c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Adjust the position in the center
|
// Adjust the position in the center
|
||||||
goToCenter();
|
goToCenter(SWP_SHOWWINDOW | SWP_NOSIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HashFromTextDlg::generateHash()
|
void HashFromTextDlg::generateHash()
|
||||||
@ -261,7 +255,7 @@ void HashFromTextDlg::generateHash()
|
|||||||
}
|
}
|
||||||
else if (_ht == hash_sha256)
|
else if (_ht == hash_sha256)
|
||||||
{
|
{
|
||||||
uint8_t sha2hash[32];
|
uint8_t sha2hash[32]{};
|
||||||
calc_sha_256(sha2hash, reinterpret_cast<const uint8_t*>(newText), strlen(newText));
|
calc_sha_256(sha2hash, reinterpret_cast<const uint8_t*>(newText), strlen(newText));
|
||||||
|
|
||||||
wchar_t sha2hashStr[65] = { '\0' };
|
wchar_t sha2hashStr[65] = { '\0' };
|
||||||
@ -359,43 +353,25 @@ intptr_t CALLBACK HashFromTextDlg::run_dlgProc(UINT message, WPARAM wParam, LPAR
|
|||||||
|
|
||||||
case WM_CTLCOLOREDIT:
|
case WM_CTLCOLOREDIT:
|
||||||
{
|
{
|
||||||
if (NppDarkMode::isEnabled())
|
return NppDarkMode::onCtlColorSofter(reinterpret_cast<HDC>(wParam));
|
||||||
{
|
|
||||||
HWND hwnd = reinterpret_cast<HWND>(lParam);
|
|
||||||
if (hwnd == ::GetDlgItem(_hSelf, IDC_HASH_TEXT_EDIT))
|
|
||||||
{
|
|
||||||
return NppDarkMode::onCtlColorSofter(reinterpret_cast<HDC>(wParam));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return NppDarkMode::onCtlColor(reinterpret_cast<HDC>(wParam));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
case WM_CTLCOLORDLG:
|
case WM_CTLCOLORDLG:
|
||||||
{
|
{
|
||||||
if (NppDarkMode::isEnabled())
|
return NppDarkMode::onCtlColorDarker(reinterpret_cast<HDC>(wParam));
|
||||||
{
|
|
||||||
return NppDarkMode::onCtlColorDarker(reinterpret_cast<HDC>(wParam));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
case WM_CTLCOLORSTATIC:
|
case WM_CTLCOLORSTATIC:
|
||||||
{
|
{
|
||||||
if (NppDarkMode::isEnabled())
|
if (NppDarkMode::isEnabled())
|
||||||
{
|
{
|
||||||
HWND hwnd = reinterpret_cast<HWND>(lParam);
|
const auto hdcStatic = reinterpret_cast<HDC>(wParam);
|
||||||
if (hwnd == ::GetDlgItem(_hSelf, IDC_HASH_RESULT_FOMTEXT_EDIT))
|
const auto dlgCtrlID = ::GetDlgCtrlID(reinterpret_cast<HWND>(lParam));
|
||||||
|
if (dlgCtrlID == IDC_HASH_RESULT_FOMTEXT_EDIT)
|
||||||
{
|
{
|
||||||
return NppDarkMode::onCtlColor(reinterpret_cast<HDC>(wParam));
|
return NppDarkMode::onCtlColor(hdcStatic);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return NppDarkMode::onCtlColorDarker(reinterpret_cast<HDC>(wParam));
|
|
||||||
}
|
}
|
||||||
|
return NppDarkMode::onCtlColorDarker(hdcStatic);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -415,7 +391,7 @@ intptr_t CALLBACK HashFromTextDlg::run_dlgProc(UINT message, WPARAM wParam, LPAR
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WM_COMMAND :
|
case WM_COMMAND:
|
||||||
{
|
{
|
||||||
if (HIWORD(wParam) == EN_CHANGE && LOWORD(wParam) == IDC_HASH_TEXT_EDIT)
|
if (HIWORD(wParam) == EN_CHANGE && LOWORD(wParam) == IDC_HASH_TEXT_EDIT)
|
||||||
{
|
{
|
||||||
@ -493,5 +469,5 @@ void HashFromTextDlg::doDialog(bool isRTL)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Adjust the position in the center
|
// Adjust the position in the center
|
||||||
goToCenter();
|
goToCenter(SWP_SHOWWINDOW | SWP_NOSIZE);
|
||||||
}
|
}
|
||||||
|
@ -28,11 +28,11 @@ public :
|
|||||||
HashFromFilesDlg() = default;
|
HashFromFilesDlg() = default;
|
||||||
|
|
||||||
void doDialog(bool isRTL = false);
|
void doDialog(bool isRTL = false);
|
||||||
virtual void destroy() {};
|
void destroy() override {};
|
||||||
void setHashType(hashType hashType2set);
|
void setHashType(hashType hashType2set);
|
||||||
|
|
||||||
protected :
|
protected :
|
||||||
virtual intptr_t CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam);
|
intptr_t CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam) override;
|
||||||
hashType _ht = hash_md5;
|
hashType _ht = hash_md5;
|
||||||
|
|
||||||
static LRESULT CALLBACK HashPathEditStaticProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
|
static LRESULT CALLBACK HashPathEditStaticProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
|
||||||
@ -56,13 +56,13 @@ public :
|
|||||||
HashFromTextDlg() = default;
|
HashFromTextDlg() = default;
|
||||||
|
|
||||||
void doDialog(bool isRTL = false);
|
void doDialog(bool isRTL = false);
|
||||||
virtual void destroy() {};
|
void destroy() override {};
|
||||||
void generateHash();
|
void generateHash();
|
||||||
void generateHashPerLine();
|
void generateHashPerLine();
|
||||||
void setHashType(hashType hashType2set);
|
void setHashType(hashType hashType2set);
|
||||||
|
|
||||||
protected :
|
protected :
|
||||||
virtual intptr_t CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam);
|
intptr_t CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam) override;
|
||||||
hashType _ht = hash_md5;
|
hashType _ht = hash_md5;
|
||||||
|
|
||||||
static LRESULT CALLBACK HashTextEditStaticProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
|
static LRESULT CALLBACK HashTextEditStaticProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {
|
||||||
|
@ -19,28 +19,28 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include "md5Dlgs_rc.h"
|
#include "md5Dlgs_rc.h"
|
||||||
|
|
||||||
IDD_HASHFROMFILES_DLG DIALOGEX 0, 0, 357, 213
|
IDD_HASHFROMFILES_DLG DIALOGEX 0, 0, 353, 196
|
||||||
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
EXSTYLE WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE
|
EXSTYLE WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE
|
||||||
CAPTION "Generate MD5 digest from files"
|
CAPTION "Generate MD5 digest from files"
|
||||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "Choose files to generate MD5...",IDC_HASH_FILEBROWSER_BUTTON,9,4,131,14
|
PUSHBUTTON "Choose files to &generate MD5...",IDC_HASH_FILEBROWSER_BUTTON,7,4,131,14
|
||||||
EDITTEXT IDC_HASH_PATH_EDIT,9,21,340,64,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | NOT WS_BORDER | WS_VSCROLL | WS_HSCROLL,WS_EX_CLIENTEDGE
|
EDITTEXT IDC_HASH_PATH_EDIT,7,21,340,64,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL
|
||||||
EDITTEXT IDC_HASH_RESULT_EDIT,9,105,340,64,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | NOT WS_BORDER | WS_VSCROLL | WS_HSCROLL,WS_EX_CLIENTEDGE
|
EDITTEXT IDC_HASH_RESULT_EDIT,7,91,340,64,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL
|
||||||
PUSHBUTTON "Copy to Clipboard",IDC_HASH_TOCLIPBOARD_BUTTON,259,172,90,14
|
PUSHBUTTON "Co&py to Clipboard",IDC_HASH_TOCLIPBOARD_BUTTON,257,158,90,14
|
||||||
PUSHBUTTON "Close",IDCANCEL,148,190,60,14
|
PUSHBUTTON "&Close",IDCANCEL,146,176,60,14
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_HASHFROMTEXT_DLG DIALOGEX 0, 0, 357, 213
|
IDD_HASHFROMTEXT_DLG DIALOGEX 0, 0, 353, 196
|
||||||
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
EXSTYLE WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE
|
EXSTYLE WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE
|
||||||
CAPTION "Generate MD5 digest"
|
CAPTION "Generate MD5 digest"
|
||||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
BEGIN
|
BEGIN
|
||||||
CONTROL "Treat each line as a separate string",IDC_HASH_EACHLINE_CHECK,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,9,3,179,16
|
CONTROL "Treat each line as a &separate string",IDC_HASH_EACHLINE_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,6,179,10
|
||||||
EDITTEXT IDC_HASH_TEXT_EDIT, 9, 21, 340, 64, ES_MULTILINE | ES_AUTOVSCROLL | NOT WS_BORDER | WS_VSCROLL | WS_HSCROLL | ES_WANTRETURN,WS_EX_CLIENTEDGE
|
EDITTEXT IDC_HASH_TEXT_EDIT,7,21,340,64,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | WS_HSCROLL | ES_WANTRETURN
|
||||||
EDITTEXT IDC_HASH_RESULT_FOMTEXT_EDIT,9,105,340,64,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | NOT WS_BORDER | WS_VSCROLL | WS_HSCROLL,WS_EX_CLIENTEDGE
|
EDITTEXT IDC_HASH_RESULT_FOMTEXT_EDIT,7,91,340,64,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL
|
||||||
PUSHBUTTON "Copy to Clipboard",IDC_HASH_FROMTEXT_TOCLIPBOARD_BUTTON,259,172,90,14
|
PUSHBUTTON "Co&py to Clipboard",IDC_HASH_FROMTEXT_TOCLIPBOARD_BUTTON,257,158,90,14
|
||||||
PUSHBUTTON "Close",IDCANCEL,148,190,60,14
|
PUSHBUTTON "&Close",IDCANCEL,146,176,60,14
|
||||||
END
|
END
|
||||||
|
Loading…
x
Reference in New Issue
Block a user