Make "Confirm Save All" dialog more clear

Use "Always Yes" button instead of "Cancel", and whole dialog is translatble.

Fix #10339, close #10429
pull/10443/head
Don Ho 2021-08-22 17:49:35 +02:00
parent a391161e3d
commit deab93f9b5
10 changed files with 226 additions and 50 deletions

View File

@ -1160,6 +1160,15 @@ You can define several column markers by using white space to separate the diffe
<Item id="4" name="Yes to &amp;all"/>
<Item id="5" name="N&amp;o to all"/>
</DoSaveOrNot>
<DoSaveAll title="Save All Confirmation">
<Item id="1766" name="Are you sure you want to save all modified documents?
Choose &quot;Always Yes&quot; if your don't want to see this dialog again.
You can re-activate this dialog in Preferences later."/>
<Item id="6" name="&amp;Yes"/>
<Item id="7" name="&amp;No"/>
<Item id="4" name="Always Yes"/>
</DoSaveAll> <!-- HowToReproduce: Check the 'Enable Save All confirm dialog' checkbox in Preference->MISC, now click 'Save all' -->
</Dialog>
<MessageBox> <!-- $INT_REPLACE$ is a place holder, don't translate it -->
<ContextMenuXmlEditWarning title="Editing contextMenu" message="Editing contextMenu.xml allows you to modify your Notepad++ popup context menu.
@ -1255,10 +1264,6 @@ Do you want to launch Notepad++ in Administrator mode?"/>
Notepad++ will be restarted after all the operations are terminated.
Continue?"/>
<NeedToRestartToLoadPlugins title="Notepad++ need to be relaunched" message="You have to restart Notepad++ to load plugins you installed."/> <!-- HowToReproduce: Import a plugin via menu "Settings->Import->Import Plugin(s)...". -->
<SaveAllConfirm title="Save All Confirmation" message="Are you sure you want to save all documents?
Choose &quot;Cancel&quot; if your answer will always be &quot;Yes&quot; and you won't be asked this question again.
You can re-activate this dialog in Preferences dialog later." /> <!-- HowToReproduce: Check the 'Enable Save All confirm dialog' checkbox in Preference->MISC, now click 'Save all' -->
</MessageBox>
<ClipboardHistory>
<PanelTitle name="Clipboard History"/>

View File

@ -1085,6 +1085,7 @@ Vous pouvez définir plusieurs marqueurs de colonne en utilisant un espace pour
<Item id="6345" name="Aperçu à onglet"/>
<Item id="6346" name="Aperçu à commutateur de documents"/>
<Item id="6360" name="Chut !"/>
<Item id="6361" name="Activer la confirmation pour la command &quot;Enregistrer tout&quot;"/>
</MISC>
</Preference>
<MultiMacro title="Exécuter une macro en boucle">
@ -1138,6 +1139,15 @@ Vous pouvez définir plusieurs marqueurs de colonne en utilisant un espace pour
<Item id="4" name="Oui pour &amp;tout"/>
<Item id="5" name="Non &amp;pour tout"/>
</DoSaveOrNot>
<DoSaveAll title="Confirmer de tout enregistrer">
<Item id="1766" name="Voulez-vous vraiment enregistrer tous les documents modifiés?
Choisissez &quot;Toujours Oui&quot; si vous ne voulez plus répondre cette question.
Vous pouvez réactiver cette boîte de dialogue dans les Préférences ultérieurement."/>
<Item id="6" name="&amp;Oui"/>
<Item id="7" name="&amp;Non"/>
<Item id="4" name="Toujours Oui"/>
</DoSaveAll>
</Dialog>
<MessageBox>
<CannotMoveDoc title="Déplacement vers une nouvelle instance Notepad++" message="Le document est en cours d'utilisation, le sauvegarder puis réessayer."/>

View File

@ -1098,6 +1098,7 @@
<Item id="6345" name="於頁籤窺視檔案"/>
<Item id="6346" name="於文件導覽窺視檔案"/>
<Item id="6360" name="靜音"/>
<Item id="6361" name="啟動全部儲存確認"/>
</MISC>
</Preference>
@ -1152,74 +1153,83 @@
<Item id="4" name="全部存檔(&amp;A)"/>
<Item id="5" name="全部棄存(&amp;O)"/>
</DoSaveOrNot>
<DoSaveAll title="確認全部儲存">
<Item id="1766" name="你確定要儲存所有尚未儲存的檔案嗎?
選擇「始終確定」如果你的回答永遠是「確定」 你不會再被問到這個問題。
你可以稍後在「偏好設定」中重新開啟此對話框。"/>
<Item id="6" name="確定(&amp;Y)"/>
<Item id="7" name="不要(&amp;N)"/>
<Item id="4" name="始終確定"/>
</DoSaveAll>
</Dialog>
<MessageBox>
<ContextMenuXmlEditWarning title="編輯快顯功能表" message="編輯 contextMenu.xml Notepad++
請於修改後重新啟動 Notepad++ 以使變更生效。"/>
<SaveCurrentModifWarning title="警告" message="您必須儲存目前的修改,而儲存後將無法復原。
您確定要繼續嗎?"/>
<LoseUndoAbilityWarning title="警告" message="您必須儲存目前的修改,而儲存後將無法復原。
您確定要繼續嗎?"/>
<SaveCurrentModifWarning title="警告" message="必須儲存目前的修改,而儲存後將無法復原。
確定要繼續嗎?"/>
<LoseUndoAbilityWarning title="警告" message="必須儲存目前的修改,而儲存後將無法復原。
確定要繼續嗎?"/>
<CannotMoveDoc title="移至新的 Notepad++ 實體" message="文件已被修改,請在儲存後再試一次。"/>
<DocReloadWarning title="重新載入" message="確定要重新載入目前文件,並捨棄在 Notepad++ 中所做的修改嗎?"/>
<DocReloadWarning title="重新載入" message="確定要重新載入目前文件,並捨棄在 Notepad++ 中所做的修改嗎?"/>
<FileLockedWarning title="儲存失敗" message="請檢查其他應用程式是否已開啟此檔案。"/>
<FileAlreadyOpenedInNpp title="已開啟" message="這個檔案已在 Notepad++ 中開啟。"/>
<DeleteFileFailed title="刪除失敗" message="檔案刪除失敗。"/>
<NbFileToOpenImportantWarning title="開啟檔案" message="確定要開啟全數 $INT_REPLACE$ 個檔案嗎?"/>
<SettingsOnCloudError title="雲端設定" message="設定的雲端路徑位於一個唯讀的磁碟或未擁有寫入權限的資料夾,因此的「雲端」設定將被清除。
<NbFileToOpenImportantWarning title="開啟檔案" message="確定要開啟全數 $INT_REPLACE$ 個檔案嗎?"/>
<SettingsOnCloudError title="雲端設定" message="設定的雲端路徑位於一個唯讀的磁碟或未擁有寫入權限的資料夾,因此的「雲端」設定將被清除。
請在「偏好設定」中重新設定。"/>
<FilePathNotFoundWarning title="開啟檔案" message="試圖開啟的文件不存在。"/>
<FilePathNotFoundWarning title="開啟檔案" message="試圖開啟的文件不存在。"/>
<SessionFileInvalidError title="無法開啟工作階段" message="工作階段檔案無效或已被損毀。"/>
<DroppingFolderAsProjectModeWarning title="操作無效" message="由於在「偏好設定」「預設資料夾」中關閉了「拖放資料夾時開啟資料夾中所有文件,而不啟動資料夾工作區」的選項,只能拖放文件或資料夾的其中之一。
<DroppingFolderAsProjectModeWarning title="操作無效" message="由於在「偏好設定」「預設資料夾」中關閉了「拖放資料夾時開啟資料夾中所有文件,而不啟動資料夾工作區」的選項,只能拖放文件或資料夾的其中之一。
請啟用此選項,然後再試一次。"/>
<SortingError title="排序錯誤" message="第 $INT_REPLACE$ 行無法執行數字排序。"/>
<ColumnModeTip title="多欄選取提示" message="請使用「ALT + 滑鼠選擇」或「Alt + Shift + 方向鍵」以切換到多欄選取。"/>
<BufferInvalidWarning title="儲存失敗" message="緩衝區無效。"/>
<DoCloseOrNot title="保留文件" message="檔案「$STR_REPLACE$」已不存在。
要在 Notepad++ 中保留這個文件嗎?"/>
<DoDeleteOrNot title="刪除檔案" message="確定要刪除並關閉「$STR_REPLACE$」嗎?"/>
<NoBackupDoSaveFile title="儲存" message="的備份文件已從外部刪除。
請儲存「$STR_REPLACE$」,否則的數據將會遺失。
要儲存嗎?"/>
要在 Notepad++ 中保留這個文件嗎?"/>
<DoDeleteOrNot title="刪除檔案" message="確定要刪除並關閉「$STR_REPLACE$」嗎?"/>
<NoBackupDoSaveFile title="儲存" message="的備份文件已從外部刪除。
請儲存「$STR_REPLACE$」,否則的數據將會遺失。
要儲存嗎?"/>
<DoReloadOrNot title="重新載入" message="「$STR_REPLACE$」已被其他程式修改。
要重新載入此文件嗎?"/>
要重新載入此文件嗎?"/>
<DoReloadOrNotAndLooseChange title="重新載入" message="「$STR_REPLACE$」已被其他程式修改。
要重新載入並捨棄在 Notepad++ 中所做的修改嗎?"/>
要重新載入並捨棄在 Notepad++ 中所做的修改嗎?"/>
<PrehistoricSystemDetected title="系統過舊" message="很抱歉,此功能不適用於過舊的系統。"/>
<XpUpdaterProblem title="Notepad++ 更新程式" message="由於 XP XP
要直接到 Notepad++ 網站下載最新版本嗎?"/>
要直接到 Notepad++ 網站下載最新版本嗎?"/>
<GUpProxyConfNeedAdminMode title="代理伺服器設定" message="請關閉 Notepad++,並在系統管理員模式下重新啟動 Notepad++ 以設定代理伺服器。"/>
<DocTooDirtyToMonitor title="監控錯誤" message="文件已被修改,請在監視前儲存文件。"/>
<DocNoExistToMonitor title="監控錯誤" message="文件不存在,因此無法進行監視。"/>
<FileTooBigToOpen title="文件太大" message="文件太大,無法使用 Notepad++ 開啟。"/>
<CreateNewFileOrNot title="開新檔案" message="「$STR_REPLACE$」不存在。要開新檔案嗎?"/>
<CreateNewFileOrNot title="開新檔案" message="「$STR_REPLACE$」不存在。要開新檔案嗎?"/>
<CreateNewFileError title="開新檔案" message="無法開新檔案「$STR_REPLACE$」。"/>
<OpenFileError title="錯誤" message="無法開啟「$STR_REPLACE$」"/>
<FileBackupFailed title="文件備份失敗" message="檔案的過往版本無法儲存到「$STR_REPLACE$」的備份資料夾中。要儲存此文件嗎?"/>
<FileBackupFailed title="文件備份失敗" message="檔案的過往版本無法儲存到「$STR_REPLACE$」的備份資料夾中。要儲存此文件嗎?"/>
<LoadStylersFailed title="載入失敗" message="載入「$STR_REPLACE$」失敗。"/>
<LoadLangsFailed title="載入失敗" message="載入 langs.xml
要回復它嗎?"/>
要回復它嗎?"/>
<LoadLangsFailedFinal title="載入失敗" message="載入 langs.xml 失敗。"/>
<FolderAsWorspaceSubfolderExists title="加入錯誤" message="工作區內的其中一個資料夾已包含要添加的資料夾。
必須從資料夾工作區中刪除該資料夾,才可添加「$STR_REPLACE$」。"/>
<FolderAsWorspaceSubfolderExists title="加入錯誤" message="工作區內的其中一個資料夾已包含要添加的資料夾。
必須從資料夾工作區中刪除該資料夾,才可添加「$STR_REPLACE$」。"/>
<ProjectPanelChanged title="$STR_REPLACE$" message="工作區已被修改。要儲存它嗎?"/>
<ProjectPanelChanged title="$STR_REPLACE$" message="工作區已被修改。要儲存它嗎?"/>
<ProjectPanelSaveError title="$STR_REPLACE$" message="寫入工作區文件時發生錯誤。工作區儲存失敗。"/>
<ProjectPanelOpenDoSaveDirtyWsOrNot title="開啟工作區" message="目前的工作區已被修改。要儲存目前的專案嗎?"/>
<ProjectPanelNewDoSaveDirtyWsOrNot title="新工作區" message="目前的工作區已被修改。要儲存目前的專案嗎?"/>
<ProjectPanelOpenDoSaveDirtyWsOrNot title="開啟工作區" message="目前的工作區已被修改。要儲存目前的專案嗎?"/>
<ProjectPanelNewDoSaveDirtyWsOrNot title="新工作區" message="目前的工作區已被修改。要儲存目前的專案嗎?"/>
<ProjectPanelOpenFailed title="無法開啟工作區" message="工作區檔案無效或已被損毀。"/>
<ProjectPanelRemoveFolderFromProject title="從專案中刪除資料夾" message="此資料夾下的所有子資料夾亦將被刪除。確定要從專案中刪除此資料夾嗎?"/>
<ProjectPanelRemoveFileFromProject title="從專案中刪除文件" message="確定要從專案中刪除此文件嗎?"/>
<ProjectPanelRemoveFolderFromProject title="從專案中刪除資料夾" message="此資料夾下的所有子資料夾亦將被刪除。確定要從專案中刪除此資料夾嗎?"/>
<ProjectPanelRemoveFileFromProject title="從專案中刪除文件" message="確定要從專案中刪除此文件嗎?"/>
<ProjectPanelReloadError title="重新載入工作區" message="找不到要重新載入的檔案。"/>
<ProjectPanelReloadDirty title="重新載入工作區" message="目前的工作區已被修改。要重新載入並捨棄所做的修改嗎?"/>
<ProjectPanelReloadDirty title="重新載入工作區" message="目前的工作區已被修改。要重新載入並捨棄所做的修改嗎?"/>
<UDLNewNameError title="自訂程式語言錯誤" message="此名稱已被另一個程式語言使用。請重新命名。"/>
<UDLRemoveCurrentLang title="刪除語言" message="確定要刪除目前的自訂程式語言嗎?"/>
<SCMapperDoDeleteOrNot title="刪除快捷鍵" message="確定要刪除這個快捷鍵嗎?"/>
<FindCharRangeValueError title="輸入值範圍錯誤" message="輸入的值應在 0 到 255 之間。如要搜尋字元編號大於 255 的字元,請在「尋找」對話方塊中使用「規則運算式」。"/>
<UDLRemoveCurrentLang title="刪除語言" message="確定要刪除目前的自訂程式語言嗎?"/>
<SCMapperDoDeleteOrNot title="刪除快捷鍵" message="確定要刪除這個快捷鍵嗎?"/>
<FindCharRangeValueError title="輸入值範圍錯誤" message="輸入的值應在 0 到 255 之間。如要搜尋字元編號大於 255 的字元,請在「尋找」對話方塊中使用「規則運算式」。"/>
<ExitToUpdatePlugins title="關閉 Notepad++" message="Notepad++
在所有後續作業完成後Notepad++ 將重新啟動。
繼續嗎?"/>
<NeedToRestartToLoadPlugins title="重新啟動 Notepad++" message="必須重新啟動 Notepad++ 才能載入已安裝的外掛模組。"/>
<NeedToRestartToLoadPlugins title="重新啟動 Notepad++" message="必須重新啟動 Notepad++ 才能載入已安裝的外掛模組。"/>
</MessageBox>
<ClipboardHistory>
<PanelTitle name="剪貼簿記錄"/>
@ -1316,11 +1326,11 @@
</Menus>
</ProjectManager>
<MiscStrings>
<word-chars-list-tip value="這允許在目前單字字元集中附加字元,當滑鼠雙擊以進行選擇或以「僅符合整個單字」選項進行搜尋。"/>
<word-chars-list-tip value="這允許在目前單字字元集中附加字元,當滑鼠雙擊以進行選擇或以「僅符合整個單字」選項進行搜尋。"/>
<word-chars-list-warning-begin value="警告:"/>
<word-chars-list-space-warning value="$INT_REPLACE$ 個空格"/>
<word-chars-list-tab-warning value="$INT_REPLACE$ 個 TAB"/>
<word-chars-list-warning-end value=" 在的單字字元集中。"/>
<word-chars-list-warning-end value=" 在的單字字元集中。"/>
<cloud-invalid-warning value="無效的路徑。"/>
<cloud-restart-warning value="請重新啟動 Notepad++ 以使變更生效。"/>
<cloud-select-folder value="選擇一個資料夾,以便 Notepad++ 從中讀取/寫入其設定。"/>
@ -1404,7 +1414,7 @@
<replace-in-projects-confirm-title value="確認"/>
<replace-in-projects-confirm-message value="是否要替換所選專案項目中所有文檔中的所有匹配項?"/>
<replace-in-open-docs-confirm-title value="替換確認"/>
<replace-in-open-docs-confirm-message value="確定要替換所有打開的文檔中的所有匹配項嗎?"/>
<replace-in-open-docs-confirm-message value="確定要替換所有打開的文檔中的所有匹配項嗎?"/>
<find-result-caption value="搜尋結果"/>
<find-result-title value="搜尋"/> <!-- Must not begin with space or tab character -->
<find-result-title-info value="(找到 $INT_REPLACE1$ 個結果在 $INT_REPLACE2$ 的文件中。搜尋文件量: $INT_REPLACE3$"/>

View File

@ -2040,6 +2040,26 @@ int Notepad_plus::doSaveOrNot(const TCHAR* fn, bool isMulti)
return buttonID;
}
int Notepad_plus::doSaveAll()
{
// In case Notepad++ is iconized into notification zone
if (!::IsWindowVisible(_pPublicInterface->getHSelf()))
{
::ShowWindow(_pPublicInterface->getHSelf(), SW_SHOW);
// Send sizing info to make window fit (specially to show tool bar.)
::SendMessage(_pPublicInterface->getHSelf(), WM_SIZE, 0, 0);
}
DoSaveAllBox doSaveAllBox;
doSaveAllBox.init(_pPublicInterface->getHinst(), _pPublicInterface->getHSelf());
doSaveAllBox.doDialog(_nativeLangSpeaker.isRTL());
int buttonID = doSaveAllBox.getClickedButtonId();
doSaveAllBox.destroy();
return buttonID;
}
int Notepad_plus::doReloadOrNot(const TCHAR *fn, bool dirty)
{
if (dirty)

View File

@ -467,6 +467,7 @@ private:
int doReloadOrNot(const TCHAR *fn, bool dirty);
int doCloseOrNot(const TCHAR *fn);
int doDeleteOrNot(const TCHAR *fn);
int doSaveAll();
void enableMenu(int cmdID, bool doEnable) const;
void enableCommand(int cmdID, bool doEnable, int which) const;

View File

@ -1229,7 +1229,7 @@ EXSTYLE WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE
CAPTION "Save"
FONT 8, TEXT("MS Shell Dlg"), 0, 0, 0x1
BEGIN
LTEXT "",IDC_DOSAVEORNOTTEX,7,10,290,40,SS_EDITCONTROL
LTEXT "",IDC_DOSAVEORNOTTEXT,7,10,290,40,SS_EDITCONTROL
DEFPUSHBUTTON "&Yes",IDYES,10,60,50,14,BS_FLAT
PUSHBUTTON "&No",IDNO,65,60,50,14,BS_FLAT
PUSHBUTTON "&Cancel",IDCANCEL,120,60,50,14,BS_FLAT
@ -1237,6 +1237,18 @@ BEGIN
PUSHBUTTON "N&o to all",IDIGNORE,240,60,60,14,BS_FLAT
END
IDD_DOSAVEALLBOX DIALOGEX 0, 0, 260, 100
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE
CAPTION "Save"
FONT 8, TEXT("MS Shell Dlg"), 0, 0, 0x1
BEGIN
LTEXT "",IDC_DOSAVEALLTEXT,7,10,250,70,SS_EDITCONTROL
DEFPUSHBUTTON "&Yes",IDYES,47,75,50,14,BS_FLAT
PUSHBUTTON "Always Yes", IDRETRY, 102, 75, 60, 14, BS_FLAT
PUSHBUTTON "&No",IDNO,167,75,50,14,BS_FLAT
END
IDD_GOLINE DIALOGEX 26, 41, 261, 88
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE

View File

@ -1604,18 +1604,14 @@ bool Notepad_plus::fileSaveAllConfirm()
if (NppParameters::getInstance().getNppGUI()._saveAllConfirm)
{
int answer = _nativeLangSpeaker.messageBox("SaveAllConfirm",
_pPublicInterface->getHSelf(),
TEXT("Are you sure you want to save all documents?\r\rChoose \"Cancel\" if your answer will always be \"Yes\" and you won't be asked this question again.\rYou can re-activate this dialog in Preferences dialog later."),
TEXT("Save All Confirmation"),
MB_YESNOCANCEL | MB_DEFBUTTON2);
int answer = doSaveAll();
if (answer == IDYES)
{
confirmed = true;
}
if (answer == IDCANCEL)
if (answer == IDRETRY)
{
NppParameters::getInstance().getNppGUI()._saveAllConfirm = false;
//uncheck the "Enable save all confirm dialog" checkbox in Preference-> MISC settings

View File

@ -372,7 +372,7 @@ void DoSaveOrNotBox::changeLang()
{
const unsigned char len = 255;
TCHAR text[len];
::GetDlgItemText(_hSelf, IDC_DOSAVEORNOTTEX, text, len);
::GetDlgItemText(_hSelf, IDC_DOSAVEORNOTTEXT, text, len);
msg = text;
}
@ -380,7 +380,7 @@ void DoSaveOrNotBox::changeLang()
msg = defaultMessage;
msg = stringReplace(msg, TEXT("$STR_REPLACE$"), _fn);
::SetDlgItemText(_hSelf, IDC_DOSAVEORNOTTEX, msg.c_str());
::SetDlgItemText(_hSelf, IDC_DOSAVEORNOTTEXT, msg.c_str());
}
INT_PTR CALLBACK DoSaveOrNotBox::run_dlgProc(UINT message, WPARAM wParam, LPARAM /*lParam*/)
@ -453,3 +453,100 @@ INT_PTR CALLBACK DoSaveOrNotBox::run_dlgProc(UINT message, WPARAM wParam, LPARAM
}
return FALSE;
}
void DoSaveAllBox::doDialog(bool isRTL)
{
if (isRTL)
{
DLGTEMPLATE* pMyDlgTemplate = NULL;
HGLOBAL hMyDlgTemplate = makeRTLResource(IDD_DOSAVEALLBOX, &pMyDlgTemplate);
::DialogBoxIndirectParam(_hInst, pMyDlgTemplate, _hParent, dlgProc, reinterpret_cast<LPARAM>(this));
::GlobalFree(hMyDlgTemplate);
}
else
::DialogBoxParam(_hInst, MAKEINTRESOURCE(IDD_DOSAVEALLBOX), _hParent, dlgProc, reinterpret_cast<LPARAM>(this));
}
void DoSaveAllBox::changeLang()
{
generic_string msg;
generic_string defaultMessage = TEXT("Are you sure you want to save all modified documents?\r\rChoose \"Always Yes\" if your don't want to see this dialog again.\rYou can re-activate this dialog in Preferences later.");
NativeLangSpeaker* nativeLangSpeaker = NppParameters::getInstance().getNativeLangSpeaker();
if (nativeLangSpeaker->changeDlgLang(_hSelf, "DoSaveAll"))
{
const size_t len = 1024;
TCHAR text[len];
::GetDlgItemText(_hSelf, IDC_DOSAVEALLTEXT, text, len);
msg = text;
}
if (msg.empty())
msg = defaultMessage;
::SetDlgItemText(_hSelf, IDC_DOSAVEALLTEXT, msg.c_str());
}
INT_PTR CALLBACK DoSaveAllBox::run_dlgProc(UINT message, WPARAM wParam, LPARAM /*lParam*/)
{
switch (message)
{
case WM_INITDIALOG:
{
NppDarkMode::autoSubclassAndThemeChildControls(_hSelf);
changeLang();
goToCenter();
return TRUE;
}
case WM_CTLCOLORDLG:
case WM_CTLCOLORSTATIC:
{
if (NppDarkMode::isEnabled())
{
return NppDarkMode::onCtlColorDarker(reinterpret_cast<HDC>(wParam));
}
break;
}
case WM_COMMAND:
{
switch (LOWORD(wParam))
{
case IDCANCEL:
{
::EndDialog(_hSelf, -1);
clickedButtonId = IDCANCEL;
return TRUE;
}
case IDYES:
{
::EndDialog(_hSelf, 0);
clickedButtonId = IDYES;
return TRUE;
}
case IDNO:
{
::EndDialog(_hSelf, 0);
clickedButtonId = IDNO;
return TRUE;
}
case IDRETRY:
{
::EndDialog(_hSelf, 0);
clickedButtonId = IDRETRY;
return TRUE;
}
}
}
default:
return FALSE;
}
return FALSE;
}

View File

@ -116,3 +116,25 @@ private:
generic_string _fn;
bool _isMulti = false;
};
class DoSaveAllBox : public StaticDialog
{
public:
DoSaveAllBox() = default;
void doDialog(bool isRTL = false);
virtual void destroy() {};
int getClickedButtonId() const {
return clickedButtonId;
};
void changeLang();
protected:
virtual INT_PTR CALLBACK run_dlgProc(UINT message, WPARAM wParam, LPARAM lParam);
private:
int clickedButtonId = -1;
};

View File

@ -484,8 +484,11 @@
#define IDC_DEBUGINFO_EDIT 1751
#define IDC_DEBUGINFO_COPYLINK 1752
#define IDD_DOSAVEORNOTBOX 1760
#define IDC_DOSAVEORNOTTEX 1761
#define IDD_DOSAVEORNOTBOX 1760
#define IDC_DOSAVEORNOTTEXT 1761
#define IDD_DOSAVEALLBOX 1765
#define IDC_DOSAVEALLTEXT 1766
//#define IDD_USER_DEFINE_BOX 1800
//#define IDD_RUN_DLG 1900