OSDN Git Service

PATCH [ 922724 ] "Don't display again" option for messageboxes
authorLaurent Ganier <laoran@users.sourceforge.net>
Tue, 30 Mar 2004 07:40:08 +0000 (07:40 +0000)
committerLaurent Ganier <laoran@users.sourceforge.net>
Tue, 30 Mar 2004 07:40:08 +0000 (07:40 +0000)
53 files changed:
Src/Common/MessageBoxDialog.cpp [new file with mode: 0644]
Src/Common/MessageBoxDialog.h [new file with mode: 0644]
Src/DirActions.cpp
Src/DirView.cpp
Src/Languages/Brazilian/MergeBrazilian.rc
Src/Languages/Brazilian/resource.h
Src/Languages/Bulgarian/MergeBulgarian.rc
Src/Languages/Bulgarian/resource.h
Src/Languages/Catalan/MergeCatalan.rc
Src/Languages/Catalan/resource.h
Src/Languages/ChineseSimplified/MergeChineseSimplified.rc
Src/Languages/ChineseSimplified/resource.h
Src/Languages/ChineseTraditional/MergeChineseTraditional.rc
Src/Languages/ChineseTraditional/resource.h
Src/Languages/Czech/MergeCzech.rc
Src/Languages/Czech/resource.h
Src/Languages/Danish/MergeDanish.rc
Src/Languages/Danish/resource.h
Src/Languages/Dutch/MergeDutch.rc
Src/Languages/Dutch/resource.h
Src/Languages/French/MergeFrench.rc
Src/Languages/French/resource.h
Src/Languages/German/MergeGerman.rc
Src/Languages/German/resource.h
Src/Languages/Italian/MergeItalian.rc
Src/Languages/Italian/resource.h
Src/Languages/Korean/MergeKorean.rc
Src/Languages/Korean/resource.h
Src/Languages/Norwegian/MergeNorwegian.rc
Src/Languages/Norwegian/resource.h
Src/Languages/Polish/MergePolish.rc
Src/Languages/Polish/resource.h
Src/Languages/Russian/MergeRussian.rc
Src/Languages/Russian/resource.h
Src/Languages/Slovak/MergeSlovak.rc
Src/Languages/Slovak/resource.h
Src/Languages/Spanish/MergeSpanish.rc
Src/Languages/Spanish/resource.h
Src/Languages/Swedish/MergeSwedish.rc
Src/Languages/Swedish/resource.h
Src/MainFrm.cpp
Src/Merge.cpp
Src/Merge.dsp
Src/Merge.rc
Src/MergeDoc.cpp
Src/PatchDlg.cpp
Src/PatchTool.cpp
Src/PropGeneral.cpp
Src/PropGeneral.h
Src/StdAfx.h
Src/editlib/ceditreplacedlg.cpp
Src/readme.txt
Src/resource.h

diff --git a/Src/Common/MessageBoxDialog.cpp b/Src/Common/MessageBoxDialog.cpp
new file mode 100644 (file)
index 0000000..e51eeb2
--- /dev/null
@@ -0,0 +1,1589 @@
+/*
+ *     Extended MFC message boxes -- Version 1.1a
+ *     Copyright (c) 2004 Michael P. Mehl. All rights reserved.
+ *
+ *     The contents of this file are subject to the Mozilla Public License
+ *     Version 1.1a (the "License"); you may not use this file except in
+ *     compliance with the License. You may obtain a copy of the License at 
+ *     http://www.mozilla.org/MPL/.
+ *
+ *     Software distributed under the License is distributed on an "AS IS" basis,
+ *     WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ *     for the specific language governing rights and limitations under the
+ *     License. 
+ *
+ *     The Original Code is Copyright (c) 2004 Michael P. Mehl. All rights
+ *     reserved. The Initial Developer of the Original Code is Michael P. Mehl
+ *     <michael.mehl@web.de>.
+ *
+ *     Alternatively, the contents of this file may be used under the terms of
+ *     the GNU Lesser General Public License Version 2.1 (the "LGPL License"),
+ *     in which case the provisions of LGPL License are applicable instead of
+ *     those above. If you wish to allow use of your version of this file only
+ *     under the terms of the LGPL License and not to allow others to use your
+ *     version of this file under the MPL, indicate your decision by deleting
+ *     the provisions above and replace them with the notice and other provisions
+ *     required by the LGPL License. If you do not delete the provisions above,
+ *     a recipient may use your version of this file under either the MPL or
+ *     the LGPL License.
+ */
+
+/*
+ *     The flag MB_DONT_DISPLAY_AGAIN or MB_DONT_ASK_AGAIN is stored in the registry
+ *  See GenerateRegistryKey for the creation of the key
+ *  The "normal" rule is to use the help Id as identifier
+ *  And it is really simple to just repeat the text ID as help ID
+ *  (for message formed with AfxFormatString, repeat the ID used to format the string)
+ *
+ *  Search for MB_DONT_DISPLAY_AGAIN and MB_DONT_ASK_AGAIN for all the
+ *  concerned AfxMessageBox
+ */
+
+#include "stdafx.h"
+
+#include "MessageBoxDialog.h"
+
+#ifdef _DEBUG
+#define new DEBUG_NEW
+#endif
+
+IMPLEMENT_DYNAMIC(CMessageBoxDialog, CDialog)
+
+//////////////////////////////////////////////////////////////////////////////
+// Layout values (in dialog units).
+
+#define CX_BORDER                                      8               // Width of the border.
+#define CY_BORDER                                      8               // Height of the border.
+
+#define CX_CHECKBOX_ADDON                      14              // Additional width of the checkbox.
+
+#define CX_BUTTON                                      40              // Standard width of a button.
+#define CY_BUTTON                                      14              // Standard height of a button.
+#define CX_BUTTON_BORDER                       4               // Standard border for a button.
+#define CY_BUTTON_BORDER                       1               // Standard border for a button.
+#define CX_BUTTON_SPACE                                4               // Standard space for a button.
+
+#define CX_DLGUNIT_BASE                                1000    // Values used for converting
+#define CY_DLGUNIT_BASE                                1000    // dialog units to pixels.
+
+//////////////////////////////////////////////////////////////////////////////
+// Timer values.
+
+#define MESSAGE_BOX_TIMER                      2201    // Event identifier for the timer.
+
+//////////////////////////////////////////////////////////////////////////////
+// Constructors and destructors of the class.
+
+/*
+ *     Constructor of the class.
+ *
+ *     This constructor is used to provide the strings directly without providing
+ *     resource IDs from which these strings should be retrieved. If no title is
+ *     given, the application name will be used as the title of the dialog.
+ */
+ CMessageBoxDialog::CMessageBoxDialog ( CWnd* pParent, CString strMessage, 
+       CString strTitle, UINT nStyle, UINT nHelp ) 
+       : CDialog ( CMessageBoxDialog::IDD, pParent )
+{
+       // Enable the active accessibility.
+       ASSERT(!strMessage.IsEmpty());
+
+       // Save the information about the message box.
+       m_strMessage            = strMessage;
+       m_strTitle                      = strTitle.IsEmpty() ? AfxGetAppName() : strTitle;
+       m_nStyle                        = nStyle;
+       m_nHelp                         = nHelp;
+
+       // Do the default initialization.
+       m_hIcon                         = NULL;
+       m_nTimeoutSeconds       = 0;
+       m_bTimeoutDisabled      = FALSE;
+       m_nTimeoutTimer         = 0;
+       m_strRegistryKey        = _T("");
+       m_nDefaultButton        = IDC_STATIC;
+       m_nEscapeButton         = IDC_STATIC;
+       m_sDialogUnit           = CSize(0, 0);
+       m_sIcon                         = CSize(0, 0);
+       m_sMessage                      = CSize(0, 0);
+       m_sCheckbox                     = CSize(0, 0);
+       m_sButton                       = CSize(0, 0);
+
+       m_aButtons.RemoveAll();
+}
+
+/*
+ *     Constructor of the class.
+ *
+ *     This constructor is used to load the strings for the title and the message
+ *     text from the resources of this project. If no title is given, the
+ *     application name will be used as the title of the dialog.
+ */
+CMessageBoxDialog::CMessageBoxDialog ( CWnd* pParent, UINT nMessageID,
+       UINT nTitleID, UINT nStyle, UINT nHelp ) 
+       : CDialog ( CMessageBoxDialog::IDD, pParent )
+{
+       // Check whether a title was given.
+       if ( nTitleID == 0 )
+       {
+               // Use the application name.
+               m_strTitle = AfxGetAppName();
+       }
+       else
+       {
+               // Try to load the title from the resources.
+               VERIFY(m_strTitle.LoadString(nTitleID));
+       }
+
+       // Save the information about the message box.
+       VERIFY(m_strMessage.LoadString(nMessageID));
+       m_nStyle                        = nStyle;
+       m_nHelp                         = nHelp;
+
+       // Do the default initialization.
+       m_hIcon                         = NULL;
+       m_nTimeoutSeconds       = 0;
+       m_bTimeoutDisabled      = FALSE;
+       m_nTimeoutTimer         = 0;
+       m_strRegistryKey        = _T("");
+       m_nDefaultButton        = IDC_STATIC;
+       m_nEscapeButton         = IDC_STATIC;
+       m_sDialogUnit           = CSize(0, 0);
+       m_sIcon                         = CSize(0, 0);
+       m_sMessage                      = CSize(0, 0);
+       m_sCheckbox                     = CSize(0, 0);
+       m_sButton                       = CSize(0, 0);
+
+       m_aButtons.RemoveAll();
+}
+
+/*
+ *     Destructor of the class.
+ */
+CMessageBoxDialog::~CMessageBoxDialog ( )
+{
+       // Check whether an icon was loaded.
+       if ( m_hIcon != NULL )
+       {
+               // Free the icon.
+               DestroyIcon(m_hIcon);
+
+               // Reset the icon handle.
+               m_hIcon = NULL;
+       }
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// Methods for setting and retrieving dialog options.
+
+/*
+ *     Method for setting the style of the message box.
+ */
+inline void CMessageBoxDialog::SetStyle ( UINT nStyle )
+{
+       // Set the style of the message box.
+       m_nStyle = nStyle;
+}
+
+/*
+ *     Method for retrieving the style of the message box.
+ */
+inline UINT CMessageBoxDialog::GetStyle ( )
+{
+       // Return the current style of the message box.
+       return m_nStyle;
+}
+
+/*
+ *     Method for setting the message to be displayed in the message box.
+ */
+inline void CMessageBoxDialog::SetMessage ( CString strMessage )
+{
+       ASSERT(!strMessage.IsEmpty());
+
+       // Save the message text.
+       m_strMessage = strMessage;
+}
+
+/*
+ *     Methods for setting the message to be displayed in the message box.
+ */
+inline void CMessageBoxDialog::SetMessage ( UINT nMessageID )
+{
+       // Create a string for storing the message.
+       CString strMessage = _T("");
+
+       // Load the message from the resources.
+       VERIFY(strMessage.LoadString(nMessageID));
+
+       ASSERT(!strMessage.IsEmpty());
+
+       // Save the message text.
+       m_strMessage = strMessage;
+}
+
+/*
+ *     Method for retrieving the message to be displayed in the message box.
+ */
+inline CString CMessageBoxDialog::GetMessage ( )
+{
+       // Return the message text.
+       return m_strMessage;
+}
+
+/*
+ *     Method for setting the title to be displayed in the message box.
+ */
+inline void CMessageBoxDialog::SetTitle ( CString strTitle )
+{
+       // Check whether a title was given.
+       if ( strTitle.IsEmpty() )
+       {
+               // Use the application name as the title.
+               strTitle = AfxGetAppName();
+       }
+
+       // Save the title.
+       m_strTitle = strTitle;
+}
+
+/*
+ *     Method for setting the title to be displayed in the message box.
+ */
+inline void CMessageBoxDialog::SetTitle ( UINT nTitleID )
+{
+       // Create a string for storing the title.
+       CString strTitle = _T("");
+
+       // Check whether an ID was given.
+       if ( nTitleID == 0 )
+       {
+               // Use the application name as the title.
+               strTitle = AfxGetAppName();
+       }
+       else
+       {
+               // Try to load the string from the resources.
+               VERIFY(strTitle.LoadString(nTitleID));
+
+               ASSERT(!strTitle.IsEmpty());
+       }
+
+       // Save the title.
+       m_strTitle = strTitle;
+}
+
+/*
+ *     Method for retrieving the title to be displayed in the message box.
+ */
+inline CString CMessageBoxDialog::GetTitle ( )
+{
+       // Return the title of the message box.
+       return m_strTitle;
+}
+
+/*
+ *     Method for setting the icon to be displayed in the message box.
+ */
+inline void CMessageBoxDialog::SetMessageIcon ( HICON hIcon )
+{
+       ASSERT(hIcon != NULL);
+
+       // Save the icon.
+       m_hIcon = hIcon;
+}
+
+/*
+ *     Method for setting the icon to be displayed in the message box.
+ */
+inline void CMessageBoxDialog::SetMessageIcon ( UINT nIconID )
+{
+       // Try to load the given icon.
+       m_hIcon = AfxGetApp()->LoadIcon(nIconID);
+
+       ASSERT(m_hIcon != NULL);
+}
+
+/*
+ *     Method for retrieving the icon to be displayed in the message box.
+ */
+inline HICON CMessageBoxDialog::GetMessageIcon ( )
+{
+       // Return the icon for the message box.
+       return m_hIcon;
+}
+
+/*
+ *     Method for setting a timeout.
+ *
+ *     A timeout is a countdown, which starts, when the message box is displayed.
+ *     There are two modes for a timeout: The "un-disabled" or "enabled" timeout
+ *     means, that the user can choose any button, but if he doesn't choose one,
+ *     the default button will be assumed as being chossen, when the countdown is
+ *     finished. The other mode, a "disabled" countdown is something like a nag
+ *     screen. All buttons will be disabled, until the countdown is finished.
+ *     After that, the user can click any button.
+ */
+void CMessageBoxDialog::SetTimeout ( UINT nSeconds, BOOL bDisabled )
+{
+       // Save the settings for the timeout.
+       m_nTimeoutSeconds       = nSeconds;
+       m_bTimeoutDisabled      = bDisabled;
+}
+
+/*
+ *     Method for retrieving the seconds for a timeout.
+ */
+inline UINT CMessageBoxDialog::GetTimeoutSeconds ( )
+{
+       // Return the seconds for the timeout.
+       return m_nTimeoutSeconds;
+}
+
+/*
+ *     Method for retrieving whether a timeout is disabled.
+ */
+inline BOOL CMessageBoxDialog::GetTimeoutDisabled ( )
+{
+       // Return the flag whether the timeout is disabled.
+       return m_bTimeoutDisabled;
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// Methods for handling the stored states.
+
+/*
+ *     Method for resetting the message boxes stored in the registry.
+ *
+ *     This method removes all results of formerly displayed message boxes from
+ *     the registry and therefore resets the state of the message boxes. Even
+ *     those, where the user checked "Don't display/ask again" will again be
+ *     displayed.
+ */
+void CMessageBoxDialog::ResetMessageBoxes ( )
+{
+       // Try to retrieve a handle to the application object.
+       CWinApp* pApplication = AfxGetApp();
+
+       ASSERT(pApplication);
+
+       // Check whether a handle was retrieved.
+       if ( pApplication != NULL )
+       {
+               // Create the registry key for this application.
+               CString strKey = _T("Software\\");
+               strKey += pApplication->m_pszRegistryKey;
+               strKey += _T("\\");
+               strKey += pApplication->m_pszProfileName;
+               strKey += _T("\\");
+               strKey += REGISTRY_SECTION_MESSAGEBOX;
+
+               // Delete the message box results stored in the registry.
+               pApplication->DelRegTree(HKEY_CURRENT_USER, strKey);
+       }
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// Methods for handling common window functions.
+
+/*
+ *     Method for displaying the dialog.
+ *
+ *     If the MB_DONT_DISPLAY_AGAIN or MB_DONT_ASK_AGAIN flag is set, this
+ *     method will check, whether a former result for this dialog was stored
+ *     in the registry. If yes, the former result will be returned without
+ *     displaying the dialog. Otherwise the message box will be displayed in
+ *     the normal way.
+ */
+INT_PTR CMessageBoxDialog::DoModal ( )
+{
+       // Check whether the result may be retrieved from the registry.
+       if ( ( m_nStyle & MB_DONT_DISPLAY_AGAIN ) ||
+               ( m_nStyle & MB_DONT_ASK_AGAIN ) )
+       {
+               // Check whether the registry key was already generated.
+               if ( m_strRegistryKey.IsEmpty() )
+               {
+                       // Create the registry key for this dialog.
+                       m_strRegistryKey = GenerateRegistryKey();
+               }
+
+               // Try to read the former result of the message box from the registry.
+               int nFormerResult = AfxGetApp()->GetProfileInt(
+                       REGISTRY_SECTION_MESSAGEBOX, m_strRegistryKey, (-1));
+
+               // Check whether a result was retrieved.
+               if ( nFormerResult != (-1) )
+               {
+                       // Return the former result without displaying the dialog.
+                       return nFormerResult;
+               }
+       }
+
+       // Call the parent method.
+       return CDialog::DoModal();
+}
+
+/*
+ *     Method for closing the dialog.
+ *
+ *     If the MB_DONT_DISPLAY_AGAIN or MB_DONT_ASK_AGAIN flag is set, this
+ *     method will check, one of the checkbox was marked to save the result in
+ *     the registry. If yes, the result of this dialog will be stored in the
+ *     registry.
+ */
+void CMessageBoxDialog::EndDialog ( int nResult )
+{
+       // Create a variable for storing the state of the checkbox.
+       BOOL bDontDisplayAgain = FALSE;
+
+       // Try to access the checkbox control.
+       CWnd* pCheckboxWnd = GetDlgItem(IDCHECKBOX);
+
+       // Check whether the control can be accessed.
+       if ( pCheckboxWnd != NULL )
+       {
+               // Check whether the checkbox is checked.
+               bDontDisplayAgain = 
+                       ( ((CButton*)pCheckboxWnd)->GetCheck() == BST_CHECKED );
+       }
+
+       // Check whether the result may be stored in the registry.
+       if ( ( ( m_nStyle & MB_DONT_DISPLAY_AGAIN ) && bDontDisplayAgain ) ||
+               ( ( m_nStyle & MB_DONT_ASK_AGAIN ) && bDontDisplayAgain ) )
+       {
+               // Check whether the registry key was already generated.
+               if ( m_strRegistryKey.IsEmpty() )
+               {
+                       // Create the registry key for this dialog.
+                       m_strRegistryKey = GenerateRegistryKey();
+               }
+               
+               // Store the result of the dialog in the registry.
+               AfxGetApp()->WriteProfileInt(REGISTRY_SECTION_MESSAGEBOX, 
+                       m_strRegistryKey, nResult);
+       }
+       
+       // Call the parent method.
+       CDialog::EndDialog(nResult);
+}
+
+/*
+ *     Method for initializing the dialog.
+ *
+ *     This method is used for initializing the dialog. It will create the
+ *     content of the dialog, which means it will create all controls and will
+ *     size the dialog to fit it's content.
+ */
+BOOL CMessageBoxDialog::OnInitDialog ( )
+{
+       // Call the parent method.
+       if ( !CDialog::OnInitDialog() )
+       {
+               // Return with an error.
+               return FALSE;
+       }
+
+       // Set the title of the dialog.
+       SetWindowText(m_strTitle);
+
+       // Set the help ID of the dialog.
+       SetHelpID(m_nHelp);
+
+       // Parse the style of the message box.
+       ParseStyle();
+
+       // Create the elements of the dialog.
+       CreateIconControl();
+       CreateMessageControl();
+       CreateCheckboxControl();
+       CreateButtonControls();
+
+       // Define the layout of the dialog.
+       DefineLayout();
+
+       // Check whether no sound should be generated.
+       if ( !( m_nStyle & MB_NO_SOUND ) )
+       {
+               // Do a beep.
+               MessageBeep(m_nStyle & MB_ICONMASK);
+       }
+
+       // Check whether the window should be system modal.
+       if ( m_nStyle & MB_SYSTEMMODAL )
+       {
+               // Modify the style of the window.
+               ModifyStyle(0, DS_SYSMODAL);
+       }
+
+       // Check whether to bring the window to the foreground.
+       if ( m_nStyle & MB_SETFOREGROUND )
+       {
+               // Bring the window to the foreground.
+               SetForegroundWindow();
+       }
+
+       // Check whether the window should be the topmost window.
+       if ( m_nStyle & MB_TOPMOST )
+       {
+               // Modify the style of the window.
+               ModifyStyleEx(0, WS_EX_TOPMOST);
+       }
+
+       // Check whether an escape button was defined.
+       if ( m_nEscapeButton == IDC_STATIC )
+       {
+               // Disable the close item from the system menu.
+               GetSystemMenu(FALSE)->EnableMenuItem(SC_CLOSE, MF_GRAYED);
+       }
+
+       // Check whether a timeout is set.
+       if ( m_nTimeoutSeconds > 0 )
+       {
+               // Check whether it's a disabled timeout.
+               if ( m_bTimeoutDisabled )
+               {
+                       // Run through all created buttons.
+                       for ( int i = 0; i < m_aButtons.GetSize(); i++ )
+                       {
+                               // Try to retrieve a handle for the button.
+                               CWnd* pButtonWnd = GetDlgItem(m_aButtons.GetAt(i).nID);
+
+                               ASSERT(pButtonWnd);
+
+                               // Check whether the handle was retrieved.
+                               if ( pButtonWnd != NULL )
+                               {
+                                       // Disable the button.
+                                       pButtonWnd->EnableWindow(FALSE);
+                               }
+                       }
+
+                       // Try to retrieve the handle of the checkbox.
+                       CWnd* pCheckboxWnd = GetDlgItem(IDCHECKBOX);
+
+                       // Check whether the checkbox handle was retrieved.
+                       if ( pCheckboxWnd != NULL )
+                       {
+                               // Disable the checkbox.
+                               pCheckboxWnd->EnableWindow(FALSE);
+                       }
+               }
+
+               // Install a timer.
+               m_nTimeoutTimer = SetTimer(MESSAGE_BOX_TIMER, 1000, NULL);
+       }
+
+       // Check whether a default button was defined.
+       if ( m_nDefaultButton != IDC_STATIC )
+       {
+               // Set the focus to the default button.
+               GetDlgItem(m_nDefaultButton)->SetFocus();
+
+               // Set the default ID of the dialog.
+               SetDefID(m_nDefaultButton);
+
+               // Return FALSE to set the focus correctly.
+               return FALSE;
+       }
+
+       // Everything seems to be done successfully.
+       return TRUE;
+}
+
+/*
+ *     Method for handling command messages.
+ *
+ *     This method will handle command messages, which are those messages, which
+ *     are generated, when a user clicks a button of the dialog.
+ */
+BOOL CMessageBoxDialog::OnCmdMsg ( UINT nID, int nCode, void* pExtra,
+       AFX_CMDHANDLERINFO* pHandlerInfo )
+{
+       // Check whether it's the help button.
+       if ( ( nID == IDHELP ) && ( nCode == CN_COMMAND ) )
+       {
+               // Display the help for this message box.
+               OnHelp();
+
+               // The message has been processed successfully.
+               return TRUE;
+       }
+
+       // Check whether the ID of the control element is interesting for us.
+       if ( ( nID != IDC_STATIC ) && ( nID != IDCHECKBOX ) && 
+               ( nCode == CN_COMMAND ) )
+       {
+               // End the dialog with the given ID.
+               EndDialog(nID);
+
+               // The message has been processed successfully.
+               return TRUE;
+       }
+
+       // Call the parent method.
+       return CDialog::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
+}
+
+/*
+ *     Method for handling messages before dispatching them.
+ *
+ *     This message will handle message before they get dispatched the normal way
+ *     and will therefore implement the additional behavior of this dialog.
+ */
+BOOL CMessageBoxDialog::PreTranslateMessage ( MSG* pMsg )
+{
+       // Check whether it's a key message and whether it's not a disable timeout.
+       if ( pMsg->message == WM_KEYDOWN )
+       {
+               // Check whether a disabled timeout is running.
+               if ( m_bTimeoutDisabled && ( m_nTimeoutSeconds > 0 ) )
+               {
+                       // Stop here and do nothing until the timeout is finished.
+                       return TRUE;
+               }
+
+               // Check whether it's the return key.
+               if ( pMsg->wParam == VK_RETURN )
+               {
+                       // Try to retrieve the current focus.
+                       CWnd* pFocusWnd = GetFocus();
+
+                       // Check whether a handle was retrieved.
+                       if ( pFocusWnd != NULL )
+                       {
+                               // Try to determine the ID of the element.
+                               int nID = pFocusWnd->GetDlgCtrlID();
+
+                               // Run through the list of defined buttons.
+                               for ( int i = 0; i < m_aButtons.GetSize(); i++ )
+                               {
+                                       // Check whether the ID is a button.
+                                       if ( m_aButtons.GetAt(i).nID == nID )
+                                       {
+                                               // Save this ID as the default ID.
+                                               m_nDefaultButton = nID;
+
+                                               // Break the loop to save time.
+                                               break;
+                                       }
+                               }
+
+                               // End the dialog with the default command.
+                               EndDialog(m_nDefaultButton);
+
+                               // The message has been processed successfully.
+                               return TRUE;
+                       }
+               }
+
+               // Check whether it's the escape key.
+               if ( ( pMsg->wParam == VK_ESCAPE ) || ( pMsg->wParam == VK_CANCEL ) )
+               {
+                       // Check whether an escape button was defined.
+                       if ( m_nEscapeButton != IDC_STATIC )
+                       {
+                               // End the dialog with this ID.
+                               EndDialog(m_nEscapeButton);
+                       }
+
+                       // The message has been processed successfully.
+                       return TRUE;
+               }
+       }
+
+       // Call the parent method.
+       return CDialog::PreTranslateMessage(pMsg);
+}
+
+/*
+ *     Method for handling a timer event.
+ *
+ *     When a timeout for the message box is set, this method will perform the
+ *     update of the dialog controls every second.
+ */
+void CMessageBoxDialog::OnTimer ( UINT nIDEvent )
+{
+       // Check whether the event is interesting for us.
+       if ( nIDEvent == MESSAGE_BOX_TIMER )
+       {
+               // Decrease the remaining seconds.
+               m_nTimeoutSeconds--;
+
+               // Check whether the timeout is finished.
+               if ( m_nTimeoutSeconds == 0 )
+               {
+                       // Kill the timer for this event and reset the handle.
+                       KillTimer(m_nTimeoutTimer);
+
+                       // Check whether it has been a disabled timeout.
+                       if ( m_bTimeoutDisabled )
+                       {
+                               // Run through all defined buttons.
+                               for ( int i = 0; i < m_aButtons.GetSize(); i++ )
+                               {
+                                       // Try to retrieve a handle to access the button.
+                                       CWnd* pButtonWnd = GetDlgItem(m_aButtons.GetAt(i).nID);
+
+                                       ASSERT(pButtonWnd);
+
+                                       // Check whether a handle was retrieved.
+                                       if ( pButtonWnd != NULL )
+                                       {
+                                               // Enable the button again.
+                                               pButtonWnd->EnableWindow(TRUE);
+                                       }
+                               }
+
+                               // Try to retrieve a handle for the checkbox.
+                               CWnd* pCheckboxWnd = GetDlgItem(IDCHECKBOX);
+
+                               // Check whether the checkbox was found.
+                               if ( pCheckboxWnd != NULL )
+                               {
+                                       // Enable the checkbox.
+                                       pCheckboxWnd->EnableWindow(TRUE);
+                               }
+                       }
+                       else
+                       {
+                               // End the dialog with the default button.
+                               EndDialog(m_nDefaultButton);
+                       }
+               }
+
+               // Run through the list of defined buttons.
+               for ( int i = 0; i < m_aButtons.GetSize(); i++ )
+               {
+                       // Check whether this button is the default button.
+                       if ( m_aButtons.GetAt(i).nID == m_nDefaultButton )
+                       {
+                               // Create two strings for the button text.
+                               CString strButtonText   = _T("");
+                               CString strFullText             = _T("");
+
+                               // Try to load the text for the button.
+                               VERIFY(strButtonText.LoadString(m_aButtons.GetAt(i).nTitle));
+                               
+                               // Use the button text as the full text.
+                               strFullText = strButtonText;
+
+                               // Check whether the timeout is finished.
+                               if ( m_nTimeoutSeconds > 0 )
+                               {
+                                       // Add the remaining seconds to the text of the button.
+                                       strFullText.Format(_T("%s = %d"), strButtonText, 
+                                               m_nTimeoutSeconds);
+                               }
+
+                               // Try to retrieve a handle for the button.
+                               CWnd* pButtonWnd = GetDlgItem(m_aButtons.GetAt(i).nID);
+
+                               ASSERT(pButtonWnd);
+
+                               // Check whether the handle was retrieved successfully.
+                               if ( pButtonWnd != NULL )
+                               {
+                                       // Set the text of the button.
+                                       pButtonWnd->SetWindowText(strFullText);
+                               }
+                       }
+               }
+       }
+
+       // Call the parent method.
+       CDialog::OnTimer(nIDEvent);
+}
+
+
+//////////////////////////////////////////////////////////////////////////////
+// Other dialog handling methods.
+
+/*
+ *     Method for handling window messages.
+ */
+BOOL CMessageBoxDialog::OnWndMsg ( UINT message, WPARAM wParam, LPARAM lParam,
+       LRESULT* pResult )
+{
+       // Check whether to close the dialog.
+       if ( message == WM_CLOSE )
+       {
+               // Check whether a disabled timeout is running.
+               if ( m_bTimeoutDisabled && ( m_nTimeoutSeconds > 0 ) )
+               {
+                       // Stop here and do nothing until the timeout is finished.
+                       return TRUE;
+               }
+
+               // Check whether an escape button is defined.
+               if ( m_nEscapeButton != IDC_STATIC )
+               {
+                       // End the dialog with this command.
+                       EndDialog(m_nEscapeButton);
+               }
+
+               // The message was handled successfully.
+               return TRUE;
+       }
+
+       // Call the parent method.
+       return CDialog::OnWndMsg(message, wParam, lParam, pResult);
+}
+
+BEGIN_MESSAGE_MAP(CMessageBoxDialog, CDialog)
+       ON_WM_TIMER()
+END_MESSAGE_MAP()
+
+//////////////////////////////////////////////////////////////////////////////
+// Helper methods.
+
+/*
+ *     Method for generating a registry key.
+ *
+ *     This method tries to create a registry key, which will be used for storing
+ *     the result of the message box, if the MB_DONT_DISPLAY_AGAIN or the
+ *     MB_DONT_ASK_AGAIN flag is set.
+ */
+CString CMessageBoxDialog::GenerateRegistryKey ( )
+{
+       // Create a string to store the registry key.
+       CString strRegistryKey = _T("");
+
+       // Check whether a help ID is given.
+       if ( m_nHelp != 0 )
+       {
+               // Simply use the help ID, because we assume, it's unique.
+               strRegistryKey.Format(_T("%d"), m_nHelp);
+       }
+       else
+       {
+               // POSSIBLE BUG: The following algorithm for creating a checksum is
+               // very simple and may not ensure, the registry key is really unique.
+               // But for now it may be enough.
+
+               // Create a variable to store the checksum.
+               int nChecksum = 0;
+
+               // Run through the message string.
+               for ( int i = 0; i < m_strMessage.GetLength(); i++ )
+               {
+                       // Get the char at the given position and add it to the checksum.
+                       nChecksum += ((int)m_strMessage.GetAt(i)) * i;
+               }
+
+               // Convert the checksum to a string.
+               strRegistryKey.Format(_T("%d"), nChecksum);
+       }
+
+       // Return the registry key.
+       return strRegistryKey;
+}
+
+/*
+ *     Method for adding a button to the list of buttons.
+ *
+ *     This method adds a button to the list of buttons, which will be created in
+ *     the dialog, but it will not create the button control itself.
+ */
+void CMessageBoxDialog::AddButton ( UINT nID, UINT nTitle, BOOL bIsDefault,
+       BOOL bIsEscape )
+{
+       // Create a new structure to store the button information.
+       MSGBOXBTN bButton = { nID, nTitle };
+
+       // Add the button to the list of buttons.
+       m_aButtons.Add(bButton);
+
+       // Check whether this button is the default button.
+       if ( bIsDefault )
+       {
+               // Save the ID of the button as the ID of the default button.
+               m_nDefaultButton = nID;
+       }
+
+       // Check whether this button is the escape button.
+       if ( bIsEscape )
+       {
+               // Save the ID of the button as the ID of the escape button.
+               m_nEscapeButton = nID;
+       }
+}
+
+/*
+ *     Method for converting a dialog unit x value to a pixel value.
+ */
+inline int CMessageBoxDialog::XDialogUnitToPixel ( int x )
+{
+       // Check whether the dimension of a dialog unit has already been determined.
+       if ( m_sDialogUnit.cx == 0 )
+       {
+               // Create a rect for mapping it to the dialog rect.
+               CRect rcDialog(0, 0, CX_DLGUNIT_BASE, CY_DLGUNIT_BASE);
+
+               // Map the rect to the dialog.
+               MapDialogRect(rcDialog);
+
+               // Save the rect.
+               m_sDialogUnit = rcDialog.Size();
+       }
+
+       // Return the converted value.
+       return ( x * m_sDialogUnit.cx / CX_DLGUNIT_BASE );
+}
+
+/*
+ *     Method for converting a dialog unit y value to a pixel value.
+ */
+inline int CMessageBoxDialog::YDialogUnitToPixel ( int y )
+{
+       // Check whether the dimension of a dialog unit has already been determined.
+       if ( m_sDialogUnit.cy == 0 )
+       {
+               // Create a rect for mapping it to the dialog rect.
+               CRect rcDialog(0, 0, CX_DLGUNIT_BASE, CY_DLGUNIT_BASE);
+
+               // Map the rect to the dialog.
+               MapDialogRect(rcDialog);
+
+               // Save the rect.
+               m_sDialogUnit = rcDialog.Size();
+       }
+
+       // Return the converted value.
+       return ( y * m_sDialogUnit.cy / CY_DLGUNIT_BASE );
+}
+
+/*
+ *     Method for parsing the given style.
+ *
+ *     This method will parse the given style for the message box and will create
+ *     the elements of the dialog box according to it. If you want to add more
+ *     user defined styles, simply modify this method.
+ */
+void CMessageBoxDialog::ParseStyle ( )
+{
+       // Switch the style of the buttons.
+       switch ( m_nStyle & MB_TYPEMASK )
+       {
+
+               case MB_OKCANCEL:
+
+                       // Add two buttons: "Ok" and "Cancel".
+                       AddButton(IDOK, IDS_MESSAGEBOX_OK, TRUE);
+                       AddButton(IDCANCEL, IDS_MESSAGEBOX_CANCEL, FALSE, TRUE);
+
+                       break;
+
+               case MB_ABORTRETRYIGNORE:
+
+                       // Add three buttons: "Abort", "Retry" and "Ignore".
+                       AddButton(IDABORT, IDS_MESSAGEBOX_ABORT, TRUE);
+                       AddButton(IDRETRY, IDS_MESSAGEBOX_RETRY);
+                       AddButton(IDIGNORE, IDS_MESSAGEBOX_IGNORE);
+
+                       break;
+
+               case MB_YESNOCANCEL:
+
+                       // Add three buttons: "Yes", "No" and "Cancel".
+                       AddButton(IDYES, IDS_MESSAGEBOX_YES, TRUE);
+
+                       // Check whether to add a "Yes to all" button.
+                       if ( m_nStyle & MB_YES_TO_ALL )
+                       {
+                               // Add the additional button.
+                               AddButton(IDYESTOALL, IDS_MESSAGEBOX_YES_TO_ALL);
+                       }
+
+                       AddButton(IDNO, IDS_MESSAGEBOX_NO);
+
+                       // Check whether to add a "No to all" button.
+                       if ( m_nStyle & MB_NO_TO_ALL )
+                       {
+                               // Add the additional button.
+                               AddButton(IDNOTOALL, IDS_MESSAGEBOX_NO_TO_ALL);
+                       }
+
+                       AddButton(IDCANCEL, IDS_MESSAGEBOX_CANCEL, FALSE, TRUE);
+
+                       break;
+
+               case MB_YESNO:
+                       
+                       // Add two buttons: "Yes" and "No".
+                       AddButton(IDYES, IDS_MESSAGEBOX_YES, TRUE);
+
+                       // Check whether to add a "Yes to all" button.
+                       if ( m_nStyle & MB_YES_TO_ALL )
+                       {
+                               // Add the additional button.
+                               AddButton(IDYESTOALL, IDS_MESSAGEBOX_YES_TO_ALL);
+                       }
+
+                       AddButton(IDNO, IDS_MESSAGEBOX_NO);
+
+                       // Check whether to add a "No to all" button.
+                       if ( m_nStyle & MB_NO_TO_ALL )
+                       {
+                               // Add the additional button.
+                               AddButton(IDNOTOALL, IDS_MESSAGEBOX_NO_TO_ALL);
+                       }
+
+                       break;
+
+               case MB_RETRYCANCEL:
+
+                       // Add two buttons: "Retry" and "Cancel".
+                       AddButton(IDRETRY, IDS_MESSAGEBOX_RETRY, TRUE);
+                       AddButton(IDCANCEL, IDS_MESSAGEBOX_CANCEL, FALSE, TRUE);
+
+                       break;
+
+               case MB_CANCELTRYCONTINUE:
+
+                       // Add three buttons: "Cancel", "Try again" and "Continue".
+                       AddButton(IDCANCEL, IDS_MESSAGEBOX_CANCEL, TRUE, TRUE);
+                       AddButton(IDTRYAGAIN, IDS_MESSAGEBOX_RETRY);
+                       AddButton(IDCONTINUE, IDS_MESSAGEBOX_CONTINUE);
+
+                       break;
+
+               case MB_CONTINUEABORT:
+
+                       // Add two buttons: "Continue" and "Abort".
+                       AddButton(IDCONTINUE, IDS_MESSAGEBOX_CONTINUE, TRUE);
+                       AddButton(IDABORT, IDS_MESSAGEBOX_ABORT);
+
+                       break;
+
+               case MB_SKIPSKIPALLCANCEL:
+
+                       // Add three buttons: "Skip", "Skip all" and "Cancel".
+                       AddButton(IDSKIP, IDS_MESSAGEBOX_SKIP, TRUE);
+                       AddButton(IDSKIPALL, IDS_MESSAGEBOX_SKIPALL);
+                       AddButton(IDCANCEL, IDS_MESSAGEBOX_CANCEL, FALSE, TRUE);
+
+                       break;
+
+               case MB_IGNOREIGNOREALLCANCEL:
+
+                       // Add three buttons: "Ignore", "Ignore all" and "Cancel".
+                       AddButton(IDIGNORE, IDS_MESSAGEBOX_IGNORE, TRUE);
+                       AddButton(IDIGNOREALL, IDS_MESSAGEBOX_IGNOREALL);
+                       AddButton(IDCANCEL, IDS_MESSAGEBOX_CANCEL, FALSE, TRUE);
+
+                       break;
+
+               default:
+               case MB_OK:
+
+                       // Add just one button: "Ok".
+                       AddButton(IDOK, IDS_MESSAGEBOX_OK, TRUE, TRUE);
+
+                       break;
+
+       }
+
+       // Check whether to add a help button.
+       if ( m_nStyle & MB_HELP )
+       {
+               // Add the help button.
+               AddButton(IDHELP, IDS_MESSAGEBOX_HELP);
+       }
+
+       // Check whether a default button was defined.
+       if ( m_nStyle & MB_DEFMASK )
+       {
+               // Create a variable to store the index of the default button.
+               int nDefaultIndex = 0;
+
+               // Switch the default button.
+               switch ( m_nStyle & MB_DEFMASK )
+               {
+
+                       case MB_DEFBUTTON1:
+
+                               // Set the index of the default button.
+                               nDefaultIndex = 0;
+
+                               break;
+
+                       case MB_DEFBUTTON2:
+
+                               // Set the index of the default button.
+                               nDefaultIndex = 1;
+
+                               break;
+
+                       case MB_DEFBUTTON3:
+
+                               // Set the index of the default button.
+                               nDefaultIndex = 2;
+
+                               break;
+
+                       case MB_DEFBUTTON4:
+
+                               // Set the index of the default button.
+                               nDefaultIndex = 3;
+
+                               break;
+
+                       case MB_DEFBUTTON5:
+
+                               // Set the index of the default button.
+                               nDefaultIndex = 4;
+
+                               break;
+
+                       case MB_DEFBUTTON6:
+
+                               // Set the index of the default button.
+                               nDefaultIndex = 5;
+
+                               break;
+
+               }
+
+               // Check whether enough buttons are available.
+               if ( m_aButtons.GetSize() >= ( nDefaultIndex + 1 ) )
+               {
+                       // Set the new default button.
+                       m_nDefaultButton = m_aButtons.GetAt(nDefaultIndex).nID;
+               }
+       }
+
+       // Check whether an icon was specified.
+       if ( ( m_nStyle & MB_ICONMASK ) && ( m_hIcon == NULL ) )
+       {
+               // Switch the icon.
+               switch ( m_nStyle & MB_ICONMASK )
+               {
+
+                       case MB_ICONEXCLAMATION:
+
+                               // Load the icon with the exclamation mark.
+                               m_hIcon = AfxGetApp()->LoadStandardIcon(
+                                       MAKEINTRESOURCE(IDI_EXCLAMATION));
+
+                               break;
+
+                       case MB_ICONHAND:
+
+                               // Load the icon with the error symbol.
+                               m_hIcon = AfxGetApp()->LoadStandardIcon(
+                                       MAKEINTRESOURCE(IDI_HAND));
+
+                               break;
+
+                       case MB_ICONQUESTION:
+
+                               // Load the icon with the question mark.
+                               m_hIcon = AfxGetApp()->LoadStandardIcon(
+                                       MAKEINTRESOURCE(IDI_QUESTION));
+
+                               break;
+
+                       case MB_ICONASTERISK:
+
+                               // Load the icon with the information symbol.
+                               m_hIcon = AfxGetApp()->LoadStandardIcon(
+                                       MAKEINTRESOURCE(IDI_ASTERISK));
+
+                               break;
+
+               }
+       }
+}
+
+/*
+ *     Method for creating the icon control.
+ *
+ *     This method will check whether the handle for an icon was defined and if
+ *     yes it will create an control in the dialog to display that icon.
+ */
+void CMessageBoxDialog::CreateIconControl ( )
+{
+       // Check whether an icon was defined.
+       if ( m_hIcon != NULL )
+       {
+               // Create a structure to read information about the icon.
+               ICONINFO iiIconInfo;
+
+               // Retrieve information about the icon.
+               GetIconInfo(m_hIcon, &iiIconInfo);
+
+               ASSERT(iiIconInfo.fIcon);
+
+               // Create a handle to access the bitmap information of the icon.
+               BITMAP bmIcon;
+
+               // Retrieve the bitmap information of the icon.
+               GetObject((HGDIOBJ)iiIconInfo.hbmColor, sizeof(bmIcon), &bmIcon);
+
+               // Save the size of the icon.
+               m_sIcon.cx = bmIcon.bmWidth;
+               m_sIcon.cy = bmIcon.bmHeight;
+
+               // Create a dummy rect for the icon control.
+               CRect rcDummy;
+
+               // Create the control for the icon.
+               m_stcIcon.Create(NULL, WS_CHILD | WS_VISIBLE | WS_DISABLED | SS_ICON,
+                       rcDummy, this, (UINT)IDC_STATIC);
+
+               // Set the icon of the control.
+               m_stcIcon.SetIcon(m_hIcon);
+       }
+}
+
+/*
+ *     Method for creating the text control.
+ *
+ *     This method create the control displaying the text of the message for the
+ *     message box. It will also try to determine the size required for the
+ *     message.
+ */
+void CMessageBoxDialog::CreateMessageControl ( )
+{
+       ASSERT(!m_strMessage.IsEmpty());
+
+       // Create a DC for accessing the display driver.
+       CDC dcDisplay;
+       dcDisplay.CreateDC(_T("DISPLAY"), NULL, NULL, NULL);
+
+       // Select the new font and store the old one.
+       CFont* pOldFont = dcDisplay.SelectObject(GetFont());
+
+       // Define the maximum width of the message.
+       int nMaxWidth = ( GetSystemMetrics(SM_CXSCREEN) / 2 ) + 100;
+
+       // Check whether an icon is displayed.
+       if ( m_hIcon != NULL )
+       {
+               // Decrease the maximum width.
+               nMaxWidth -= m_sIcon.cx + 2 * XDialogUnitToPixel(CX_BORDER);
+       }
+
+       // Create a rect with the maximum width.
+       CRect rcMessage(0, 0, nMaxWidth, nMaxWidth);
+
+       // Draw the text and retrieve the size of the text.
+       dcDisplay.DrawText(m_strMessage, rcMessage, DT_LEFT | DT_NOPREFIX | 
+               DT_WORDBREAK | DT_CALCRECT);
+
+       // Save the size required for the message.
+       m_sMessage = rcMessage.Size();
+
+       // Select the old font again.
+       dcDisplay.SelectObject(pOldFont);
+
+       // Create a dummy rect for the control.
+       CRect rcDummy;
+
+       // Create a variable with the style of the control.
+       DWORD dwStyle = WS_CHILD | WS_VISIBLE;
+
+       // Check whether the text should be right aligned.
+       if ( m_nStyle & MB_RIGHT )
+       {
+               // Align the text to the right.
+               dwStyle |= SS_RIGHT;
+       }
+       else
+       {
+               // Align the text to the left.
+               dwStyle |= SS_LEFT;
+       }
+
+       // Create the static control for the message.
+       m_stcMessage.Create(m_strMessage,  dwStyle, rcDummy, this, 
+               (UINT)IDC_STATIC);
+
+       // Check whether the text will be read from right to left.
+       if ( m_nStyle & MB_RTLREADING )
+       {
+               // Change the extended style of the control.
+               m_stcMessage.ModifyStyleEx(0, WS_EX_RTLREADING);
+       }
+
+       // Set the font of the dialog.
+       m_stcMessage.SetFont(GetFont());
+}
+
+/*
+ *     Method for creating the checkbox control.
+ *
+ *     If the user either specified the MB_DONT_DISPLAY_AGAIN or
+ *     MB_DONT_ASK_AGAIN flag, this method will create a checkbox in the dialog
+ *     for enabling the user to disable this dialog in the future.
+ */
+void CMessageBoxDialog::CreateCheckboxControl ( )
+{
+       // Check whether a checkbox is required.
+       if ( ( m_nStyle & MB_DONT_DISPLAY_AGAIN ) ||
+               ( m_nStyle & MB_DONT_ASK_AGAIN ) )
+       {
+               // Create a variable for storing the title of the checkbox.
+               CString strCheckboxTitle = _T("");
+
+               // Check which style is used.
+               if ( m_nStyle & MB_DONT_DISPLAY_AGAIN )
+               {
+                       // Load the string for the checkbox.
+                       VERIFY(strCheckboxTitle.LoadString(
+                               IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN));
+               }
+               else
+               {
+                       // Check which style is used.
+                       if ( m_nStyle & MB_DONT_ASK_AGAIN )
+                       {
+                               // Load the string for the checkbox.
+                               VERIFY(strCheckboxTitle.LoadString(
+                                       IDS_MESSAGEBOX_DONT_ASK_AGAIN));
+                       }
+               }
+
+               ASSERT(!strCheckboxTitle.IsEmpty());
+
+               // Create a handle to access the DC of the dialog.
+               CClientDC dc(this);
+
+               // Retrieve the font for this dialog and select it.
+               CFont* pWndFont = GetFont();
+               CFont* pOldFont = dc.SelectObject(pWndFont);
+
+               // Retrieve the size of the text.
+               m_sCheckbox = dc.GetTextExtent(strCheckboxTitle);
+
+               // Add the additional value to the width of the checkbox.
+               m_sCheckbox.cx += XDialogUnitToPixel(CX_CHECKBOX_ADDON);
+
+               // Select the old font again.
+               dc.SelectObject(pOldFont);
+
+               // Create a dummy rect for the checkbox.
+               CRect rcDummy;
+
+               // Create a handle for the checkbox.
+               CButton btnCheckbox;
+
+               // Create the checkbox.
+               btnCheckbox.Create(strCheckboxTitle, WS_CHILD | WS_VISIBLE | 
+                       WS_TABSTOP | BS_AUTOCHECKBOX, rcDummy, this, IDCHECKBOX);
+
+               // Check whether the checkbox should be marked checked at startup.
+               if ( m_nStyle & MB_DEFAULT_CHECKED )
+               {
+                       // Mark the checkbox.
+                       btnCheckbox.SetCheck(BST_CHECKED);
+               }
+
+               // Set the font of the control.
+               btnCheckbox.SetFont(pWndFont);
+
+               // Remove the subclassing again.
+               btnCheckbox.UnsubclassWindow();
+       }
+}
+
+/*
+ *     Method for creating the button controls.
+ *
+ *     According to the list of buttons, which should be displayed in this
+ *     message box, this method will create them and add them to the dialog.
+ */
+void CMessageBoxDialog::CreateButtonControls ( )
+{
+       // Initialize the control with the size of the button.
+       m_sButton = CSize(XDialogUnitToPixel(CX_BUTTON),
+               YDialogUnitToPixel(CY_BUTTON));
+
+       // Create a handle to access the DC of the dialog.
+       CClientDC dc(this);
+
+       // Retrieve the font for this dialog and select it.
+       CFont* pWndFont = GetFont();
+       CFont* pOldFont = dc.SelectObject(pWndFont);
+
+       // Create a dummy rect.
+       CRect rcDummy;
+
+       // Run through all buttons defined in the list of the buttons.
+       for ( int i = 0; i < m_aButtons.GetSize(); i++ )
+       {
+               // Create a string and load the title of the button.
+               CString strButtonTitle;
+               VERIFY(strButtonTitle.LoadString(m_aButtons.GetAt(i).nTitle));
+
+               // Create a string with the text used to determine the length.
+               CString strLengthTest = strButtonTitle;
+
+               // Check whether there's a timeout set.
+               if ( m_nTimeoutSeconds > 0 )
+               {
+                       // Create a string with the longest timeout text.
+                       CString strTimeoutText = _T("");
+                       strTimeoutText.Format(_T("%s = %d"), strLengthTest, 
+                               m_nTimeoutSeconds);
+
+                       // Use this text to determine the length of the string.
+                       strLengthTest = strTimeoutText;
+               }
+
+               // Retrieve the size of the text.
+               CSize sButtonText = dc.GetTextExtent(strLengthTest);
+
+               // Resize the button.
+               m_sButton.cx = max(m_sButton.cx, sButtonText.cx);
+               m_sButton.cy = max(m_sButton.cy, sButtonText.cy);
+
+               // Create a new handle for creating a button control.
+               CButton btnControl;
+
+               // Create the button.
+               btnControl.Create(strButtonTitle, WS_CHILD | WS_VISIBLE | WS_TABSTOP,
+                       rcDummy, this, m_aButtons.GetAt(i).nID);
+
+               // Set the font of the control.
+               btnControl.SetFont(pWndFont);
+
+               // Remove the subclassing again.
+               btnControl.UnsubclassWindow();
+       }
+
+       // Add margins to the button size.
+       m_sButton.cx += 2 * XDialogUnitToPixel(CX_BUTTON_BORDER);
+       m_sButton.cy += 2 * XDialogUnitToPixel(CY_BUTTON_BORDER);
+
+       // Select the old font again.
+       dc.SelectObject(pOldFont);
+}
+
+/*
+ *     Method for defining the layout of the dialog.
+ *
+ *     This method will define the actual layout of the dialog. This layout is
+ *     based on the created controls for the dialog.
+ */
+void CMessageBoxDialog::DefineLayout ( )
+{
+       // Create a variable for storing the size of the dialog.
+       CSize sClient = CSize(2 * XDialogUnitToPixel(CX_BORDER),
+               2 * YDialogUnitToPixel(CY_BORDER));
+
+       // Create a variable to store the left position for a control element.
+       int nXPosition = XDialogUnitToPixel(CX_BORDER);
+       int nYPosition = YDialogUnitToPixel(CY_BORDER);
+
+       // Check whether an icon is defined.
+       if ( m_hIcon != NULL )
+       {
+               // Move the icon control.
+               m_stcIcon.MoveWindow(XDialogUnitToPixel(CX_BORDER), 
+                       YDialogUnitToPixel(CY_BORDER), m_sIcon.cx, m_sIcon.cy);
+
+               // Add the size of the icon to the size of the dialog.
+               sClient.cx += m_sIcon.cx + XDialogUnitToPixel(CX_BORDER);
+               sClient.cy += m_sIcon.cy + YDialogUnitToPixel(CY_BORDER);
+
+               // Increase the x position for following control elements.
+               nXPosition += m_sIcon.cx + XDialogUnitToPixel(CX_BORDER);
+       }
+
+       // Change the size of the dialog according to the size of the message.
+       sClient.cx += m_sMessage.cx + XDialogUnitToPixel(CX_BORDER);
+       sClient.cy = max(sClient.cy, m_sMessage.cy + 2 * 
+               YDialogUnitToPixel(CY_BORDER) + YDialogUnitToPixel(CY_BORDER / 2));
+
+       // Set the position of the message text.
+       m_stcMessage.MoveWindow(nXPosition, nYPosition, m_sMessage.cx,
+               m_sMessage.cy);
+
+       // Define the new y position.
+       nYPosition += m_sMessage.cy + YDialogUnitToPixel(CY_BORDER) +
+               YDialogUnitToPixel(CY_BORDER / 2);
+
+       // Check whether an checkbox is defined.
+       if ( ( m_nStyle & MB_DONT_DISPLAY_AGAIN ) ||
+               ( m_nStyle & MB_DONT_ASK_AGAIN ) )
+       {
+               // Try to determine the control element for the checkbox.
+               CWnd* pCheckboxWnd = GetDlgItem(IDCHECKBOX);
+
+               ASSERT(pCheckboxWnd);
+
+               // Check whether the control was retrieved.
+               if ( pCheckboxWnd != NULL )
+               {
+                       // Move the checkbox window.
+                       pCheckboxWnd->MoveWindow(nXPosition, nYPosition, m_sCheckbox.cx,
+                               m_sCheckbox.cy);
+
+                       // Resize the dialog if necessary.
+                       sClient.cx = max(sClient.cx, nXPosition + m_sCheckbox.cx +
+                               XDialogUnitToPixel(CX_BORDER));
+                       sClient.cy = max(sClient.cy, nYPosition + m_sCheckbox.cy +
+                               YDialogUnitToPixel(CY_BORDER));
+
+                       // Define the y positions.
+                       nYPosition += m_sCheckbox.cy + YDialogUnitToPixel(CY_BORDER);
+               }
+       }
+
+       // Calculate the width of the buttons.
+       int cxButtons =
+               ( m_aButtons.GetSize() - 1 ) * XDialogUnitToPixel(CX_BUTTON_SPACE) +
+               m_aButtons.GetSize() * m_sButton.cx;
+       int cyButtons = m_sButton.cy;
+
+       // Add the size of the buttons to the dialog.
+       sClient.cx = max(sClient.cx, 2 * XDialogUnitToPixel(CX_BORDER) + cxButtons);
+       sClient.cy += cyButtons + YDialogUnitToPixel(CY_BORDER);
+
+       // Calculate the start y position for the buttons.
+       int nXButtonPosition = ( sClient.cx - cxButtons ) / 2;
+       int nYButtonPosition = sClient.cy - YDialogUnitToPixel(CY_BORDER) - 
+               m_sButton.cy;
+
+       // Check whether the buttons should be right aligned.
+       if ( m_nStyle & MB_RIGHT_ALIGN )
+       {
+               // Right align the buttons.
+               nXButtonPosition = sClient.cx - cxButtons - 
+                       XDialogUnitToPixel(CX_BORDER);
+       }
+
+       // Run through all buttons.
+       for ( int i = 0; i < m_aButtons.GetSize(); i++ )
+       {
+               // Try to retrieve the handle to access the button.
+               CWnd* pButton = GetDlgItem(m_aButtons.GetAt(i).nID);
+
+               ASSERT(pButton);
+
+               // Check whether the handle was retrieved successfully.
+               if ( pButton != NULL )
+               {
+                       // Move the button.
+                       pButton->MoveWindow(nXButtonPosition, nYButtonPosition, 
+                               m_sButton.cx, m_sButton.cy);
+
+                       // Set the new x position of the next button.
+                       nXButtonPosition += m_sButton.cx + 
+                               XDialogUnitToPixel(CX_BUTTON_SPACE);
+               }
+       }
+
+       // Set the dimensions of the dialog.
+       CRect rcClient(0, 0, sClient.cx, sClient.cy);
+
+       // Calculate the window rect.
+       CalcWindowRect(rcClient);
+
+       // Move the window.
+       MoveWindow(rcClient);
+
+       // Center the window.
+       CenterWindow();
+}
diff --git a/Src/Common/MessageBoxDialog.h b/Src/Common/MessageBoxDialog.h
new file mode 100644 (file)
index 0000000..5b40014
--- /dev/null
@@ -0,0 +1,276 @@
+/*
+ *     Extended MFC message boxes -- Version 1.1a
+ *     Copyright (c) 2004 Michael P. Mehl. All rights reserved.
+ *
+ *     The contents of this file are subject to the Mozilla Public License
+ *     Version 1.1a (the "License"); you may not use this file except in
+ *     compliance with the License. You may obtain a copy of the License at 
+ *     http://www.mozilla.org/MPL/.
+ *
+ *     Software distributed under the License is distributed on an "AS IS" basis,
+ *     WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ *     for the specific language governing rights and limitations under the
+ *     License. 
+ *
+ *     The Original Code is Copyright (c) 2004 Michael P. Mehl. All rights
+ *     reserved. The Initial Developer of the Original Code is Michael P. Mehl
+ *     <michael.mehl@web.de>.
+ *
+ *     Alternatively, the contents of this file may be used under the terms of
+ *     the GNU Lesser General Public License Version 2.1 (the "LGPL License"),
+ *     in which case the provisions of LGPL License are applicable instead of
+ *     those above. If you wish to allow use of your version of this file only
+ *     under the terms of the LGPL License and not to allow others to use your
+ *     version of this file under the MPL, indicate your decision by deleting
+ *     the provisions above and replace them with the notice and other provisions
+ *     required by the LGPL License. If you do not delete the provisions above,
+ *     a recipient may use your version of this file under either the MPL or
+ *     the LGPL License.
+ */
+
+#pragma once
+
+#include "resource.h"
+
+//////////////////////////////////////////////////////////////////////////////
+// Message box style definitions (mostly taken from WinUser.h).
+
+#ifndef MB_CANCELTRYCONTINUE
+#define MB_CANCELTRYCONTINUE           0x00000006L     // Standard for Win 5.x.
+#endif
+
+#define MB_CONTINUEABORT                       0x00000007L     // Additional style.
+#define MB_SKIPSKIPALLCANCEL           0x00000008L     // Additional style.
+#define MB_IGNOREIGNOREALLCANCEL       0x00000009L     // Additional style.
+
+#define MB_DONT_DISPLAY_AGAIN          0x01000000L     // Additional style.
+#define MB_DONT_ASK_AGAIN                      0x02000000L     // Additional style.
+#define MB_YES_TO_ALL                          0x04000000L     // Additional style.
+#define MB_NO_TO_ALL                           0x08000000L     // Additional style.
+
+#define MB_DEFAULT_CHECKED      0x10000000L // Additional style.
+#define MB_RIGHT_ALIGN                         0x20000000L     // Additional style.
+#define MB_NO_SOUND                                    0x40000000L     // Additional style.
+
+#define MB_DEFBUTTON5                          0x00000400L     // Additional style.
+#define MB_DEFBUTTON6                          0x00000500L     // Additional style.
+
+//////////////////////////////////////////////////////////////////////////////
+// Dialog element IDs.
+
+#ifndef IDTRYAGAIN
+#define IDTRYAGAIN                                     10                      // Standard for Win 5.x.
+#endif
+
+#ifndef IDCONTINUE
+#define IDCONTINUE                                     11                      // Standard for Win 5.x.
+#endif
+
+#define IDYESTOALL                                     14                      // Additional element.
+#define IDNOTOALL                                      15                      // Additional element.
+#define IDSKIP                                         16                      // Additional element.
+#define IDSKIPALL                                      17                      // Additional element.
+#define IDIGNOREALL                                    18                      // Additional element.
+#define IDCHECKBOX                                     19                      // Additional element.
+
+//////////////////////////////////////////////////////////////////////////////
+// Name of the registry section for storing the message box results.
+
+#define REGISTRY_SECTION_MESSAGEBOX    _T("MessageBoxes")
+
+//////////////////////////////////////////////////////////////////////////////
+// Class definition.
+
+class CMessageBoxDialog : public CDialog
+{
+
+       DECLARE_DYNAMIC(CMessageBoxDialog)
+
+public:
+
+       //////////////////////////////////////////////////////////////////////////
+       // Constructors and destructors of the class.
+
+       // Constructor of the class for direct providing of the message strings.
+       CMessageBoxDialog ( CWnd* pParent, CString strMessage, 
+               CString strTitle = _T(""), UINT nStyle = MB_OK, UINT nHelp = 0 );
+
+       // Constructor of the class for loading the strings from the resources.
+       CMessageBoxDialog ( CWnd* pParent, UINT nMessageID, UINT nTitleID = 0,
+               UINT nStyle = MB_OK, UINT nHelp = 0 );
+
+       // Default destructor of the class.
+       virtual ~CMessageBoxDialog ( );
+
+       enum { IDD = IDD_MESSAGE_BOX };
+
+public:
+
+       //////////////////////////////////////////////////////////////////////////
+       // Methods for setting and retrieving dialog options.
+
+       // Method for setting the style of the message box.
+       void SetStyle ( UINT nStyle );
+
+       // Method for retrieving the style of the message box.
+       UINT GetStyle ( );
+
+       // Methods for setting the message to be displayed in the message box.
+       void SetMessage ( CString strMessage );
+       void SetMessage ( UINT nMessageID );
+
+       // Method for retrieving the message to be displayed in the message box.
+       CString GetMessage ( );
+
+       // Methods for setting the title to be displayed in the message box.
+       void SetTitle ( CString strTitle );
+       void SetTitle ( UINT nTitleID );
+
+       // Method for retrieving the title to be displayed in the message box.
+       CString GetTitle ( );
+
+       // Methods for setting the icon to be displayed in the message box.
+       void SetMessageIcon ( HICON hIcon );
+       void SetMessageIcon ( UINT nIconID );
+
+       // Method for retrieving the icon to be displayed in the message box.
+       HICON GetMessageIcon ( );
+
+       // Method for setting a timeout.
+       void SetTimeout ( UINT nSeconds, BOOL bDisabled = FALSE );
+
+       // Method for retrieving the seconds for the timeout.
+       UINT GetTimeoutSeconds ( );
+
+       // Method for retrieving whether a timeout is disabled.
+       BOOL GetTimeoutDisabled ( );
+
+public:
+
+       //////////////////////////////////////////////////////////////////////////
+       // Methods for handling the stored states.
+
+       // Method for resetting the message boxes stored in the registry.
+       static void ResetMessageBoxes ( );
+
+public:
+
+       //////////////////////////////////////////////////////////////////////////
+       // Methods for handling common window functions.
+
+       // Method for displaying the dialog.
+       virtual INT_PTR DoModal ( );
+
+       // Method for closing the dialog.
+       void EndDialog ( int nResult );
+
+       // Method for initializing the dialog.
+       virtual BOOL OnInitDialog ( );
+
+       // Method for handling command messages.
+       virtual BOOL OnCmdMsg ( UINT nID, int nCode, void* pExtra,
+               AFX_CMDHANDLERINFO* pHandlerInfo );
+
+       // Method for handling messages before dispatching them.
+       virtual BOOL PreTranslateMessage ( MSG* pMsg );
+
+       // Method for handling a timer event.
+       afx_msg void OnTimer ( UINT nIDEvent );
+
+protected:
+
+       //////////////////////////////////////////////////////////////////////////
+       // Other methods for handling common window functions.
+
+       // Method for handling window messages.
+       virtual BOOL OnWndMsg ( UINT message, WPARAM wParam, LPARAM lParam,
+               LRESULT* pResult );
+
+       DECLARE_MESSAGE_MAP()
+
+private:
+
+       //////////////////////////////////////////////////////////////////////////
+       // Private member variables of this dialog.
+
+       CString         m_strMessage;           // Message to be displayed.
+       CString         m_strTitle;                     // Title to be used.
+       UINT            m_nStyle;                       // Style of the message box.
+       UINT            m_nHelp;                        // Help context of the message box.
+
+       HICON           m_hIcon;                        // Icon to be displayed in the dialog.
+
+       UINT            m_nTimeoutSeconds;      // Seconds for a timeout.
+       BOOL            m_bTimeoutDisabled;     // Flag whether the timeout is disabled.
+       UINT            m_nTimeoutTimer;        // Timer for the timeout.
+
+       CString         m_strRegistryKey;       // Entry for storing the result in the
+                                                                       // registry, if the MB_DONT_DISPLAY_AGAIN
+                                                                       // or MB_DONT_ASK_AGAIN flag is given.
+
+private:
+
+       //////////////////////////////////////////////////////////////////////////
+       // Control handling types and variables.
+
+       typedef struct tagMSGBOXBTN
+       {
+               int             nID;                            // ID of a dialog button.
+               UINT    nTitle;                         // ID of the title string resource.
+       } MSGBOXBTN;
+
+       CArray<MSGBOXBTN, const MSGBOXBTN&> m_aButtons;
+                                                                       // List of all buttons in the dialog.
+
+       int                     m_nDefaultButton;       // ID of the default button.
+       int                     m_nEscapeButton;        // ID of the escape button.
+
+       CStatic         m_stcIcon;                      // Static control for the icon.
+       CStatic         m_stcMessage;           // Static control for the message.
+
+private:
+
+       //////////////////////////////////////////////////////////////////////////
+       // Size handling variables.
+
+       CSize           m_sDialogUnit;          // Variable for the size of a dialog unit.
+       CSize           m_sIcon;                        // Variable for the size of the icon.
+       CSize           m_sMessage;                     // Variable for the size of the message.
+       CSize           m_sCheckbox;            // Variable for the size of the checkbox.
+       CSize           m_sButton;                      // Variable for the size of a button.
+
+private:
+
+       //////////////////////////////////////////////////////////////////////////
+       // Helper methods.
+       
+       // Method for generating the registry key.
+       CString GenerateRegistryKey ( );
+
+       // Method for adding a button to the list of buttons.
+       void AddButton ( UINT nID, UINT nTitle, BOOL bIsDefault = FALSE,
+               BOOL bIsEscape = FALSE );
+
+       // Methods for converting a dialog units to a pixel values.
+       int XDialogUnitToPixel ( int x );
+       int YDialogUnitToPixel ( int y );
+
+       // Method for parsing the given style.
+       void ParseStyle ( );
+
+       // Method for creating the icon control.
+       void CreateIconControl ( );
+
+       // Method for creating the message control.
+       void CreateMessageControl ( );
+
+       // Method for creating the checkbox control.
+       void CreateCheckboxControl ( );
+
+       // Method for creating the button controls.
+       void CreateButtonControls ( );
+
+       // Method for defining the layout of the dialog.
+       void DefineLayout ( );
+
+};
index 656211a..1728f0d 100644 (file)
@@ -40,7 +40,7 @@ static BOOL ConfirmMultipleCopy(int count, int total)
        CString s;
        ASSERT(count>1);
        AfxFormatString2(s, IDS_CONFIRM_COPY2DIR, NumToStr(count), NumToStr(total));
-       int rtn = AfxMessageBox(s, MB_YESNO|MB_ICONQUESTION);
+       int rtn = AfxMessageBox(s, MB_YESNO|MB_ICONQUESTION|MB_DONT_ASK_AGAIN, IDS_CONFIRM_COPY2DIR);
        return (rtn==IDYES);
 }
 
@@ -49,7 +49,7 @@ static BOOL ConfirmSingleCopy(LPCTSTR src, LPCTSTR dest)
 {
        CString s;
        AfxFormatString2(s, IDS_CONFIRM_COPY_SINGLE, src, dest);
-       int rtn = AfxMessageBox(s, MB_YESNO|MB_ICONQUESTION);
+       int rtn = AfxMessageBox(s, MB_YESNO|MB_ICONQUESTION|MB_DONT_ASK_AGAIN, IDS_CONFIRM_COPY_SINGLE);
        return (rtn==IDYES);
 }
 
@@ -58,7 +58,7 @@ static BOOL ConfirmMultipleDelete(int count, int total)
 {
        CString s;
        AfxFormatString2(s, IDS_CONFIRM_DELETE_ITEMS, NumToStr(count), NumToStr(total));
-       int rtn = AfxMessageBox(s, MB_YESNO|MB_ICONQUESTION);
+       int rtn = AfxMessageBox(s, MB_YESNO|MB_ICONQUESTION|MB_DONT_ASK_AGAIN, IDS_CONFIRM_DELETE_ITEMS);
        return (rtn==IDYES);
 }
 
@@ -67,7 +67,7 @@ static BOOL ConfirmSingleDelete(LPCTSTR filepath)
 {
        CString s;
        AfxFormatString1(s, IDS_CONFIRM_DELETE_SINGLE, filepath);
-       int rtn = AfxMessageBox(s, MB_YESNO|MB_ICONQUESTION);
+       int rtn = AfxMessageBox(s, MB_YESNO|MB_ICONQUESTION|MB_DONT_ASK_AGAIN, IDS_CONFIRM_DELETE_SINGLE);
        return (rtn==IDYES);
 }
 
index 732421d..aa3f015 100644 (file)
@@ -762,7 +762,7 @@ void CDirView::OpenSelection(PackingInfo * infoUnpacker /*= NULL*/)
 
                }
                else if (di.isSideLeft() || di.isSideRight())
-                       AfxMessageBox(IDS_FILEUNIQUE, MB_ICONINFORMATION);
+                       AfxMessageBox(IDS_FILEUNIQUE, MB_ICONINFORMATION | IDS_FILEISDIR);
                else if (di.isBin())
                        AfxMessageBox(IDS_FILEBINARY, MB_ICONSTOP);
                else
index a2a4ae5..81bd74b 100644 (file)
@@ -440,6 +440,10 @@ BEGIN
                     BS_AUTOCHECKBOX | WS_TABSTOP,7,27,206,10
     CONTROL         "&Close compare Statepane automatically",IDC_CMPPANE_AUTOCLOSE,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,37,206,10
+    PUSHBUTTON      "Reset",IDC_RESET_ALL_MESSAGE_BOXES,167,57,49,13,NOT 
+                    WS_TABSTOP
+    LTEXT           "Press button to reset all message boxes",IDC_STATIC,7,
+                    59,157,8
 END
 
 IDD_LANGUAGE_SELECT DIALOG DISCARDABLE  0, 0, 213, 111
@@ -830,6 +834,11 @@ BEGIN
                     BS_AUTORADIOBUTTON,128,62,74,10
 END
 
+IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+END
 
 #ifndef _MAC
 /////////////////////////////////////////////////////////////////////////////
@@ -1424,6 +1433,30 @@ BEGIN
     IDS_CANNOT_EXECUTE_FILE "Cannot execute %1"
 END
 
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_OK       "&Ok"
+    IDS_MESSAGEBOX_CANCEL   "&Cancel"
+    IDS_MESSAGEBOX_ABORT    "&Abort"
+    IDS_MESSAGEBOX_RETRY    "&Retry"
+    IDS_MESSAGEBOX_IGNORE   "&Ignore"
+    IDS_MESSAGEBOX_IGNOREALL "Ignore &all"
+    IDS_MESSAGEBOX_YES      "&Yes"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_YES_TO_ALL "Yes to &all"
+    IDS_MESSAGEBOX_NO       "&No"
+    IDS_MESSAGEBOX_NO_TO_ALL "No to a&ll"
+    IDS_MESSAGEBOX_CONTINUE "&Continue"
+    IDS_MESSAGEBOX_SKIP     "&Skip"
+    IDS_MESSAGEBOX_SKIPALL  "Skip &all"
+    IDS_MESSAGEBOX_HELP     "&Help"
+    IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN "Don't display this &message again."
+    IDS_MESSAGEBOX_DONT_ASK_AGAIN "Don't ask this &question again."
+END
+
 STRINGTABLE DISCARDABLE
 BEGIN
     ID_L2R                  "Copia o texto selecionado para o arquivo da direita\nCopiar à Direita (Right Arrow)"
@@ -1524,6 +1557,7 @@ STRINGTABLE DISCARDABLE
 BEGIN
     ID_NO_EDIT_SCRIPTS      "< Empty >"
     ID_RELOAD_PLUGINS       "&Unload all plugins and reload them (for developpers)"
+    ID_MESSAGE_BOX_ARE_RESET "All message boxes are now displayed again."
 END
 
 // END STRINGS SYNCHRO
index c0d6a90..734d1c4 100644 (file)
 #define IDB_VIEW_SELECTFONT             278
 #define IDB_FILE_EXIT                   279
 #define IDB_HELP_CONTENTS               280
+#define IDD_MESSAGE_BOX                 281
 #define ID_SCRIPT_FIRST                 900
 #define ID_SCRIPT_LAST                  999
 #define IDC_LEFT_EDIT                   1000
 #define IDC_OPEN_CONTRIBUTORS           1121
 #define IDC_DIFF_DEFAULTS               1122
 #define IDC_MOVED_BLOCKS                1123
+#define IDC_RESET_ALL_MESSAGE_BOXES     1124
 #define IDS_NUM_REPLACED                8501
 #define IDS_EDIT_TEXT_NOT_FOUND         8502
 #define IDS_LINE_STATUS_INFO_EOL        8503
 #define IDC_EDIT_SCOPE_SELECTION        8613
 #define IDC_EDIT_SCOPE_WHOLE_FILE       8614
 #define IDC_EDIT_SCOPE_DONT_WRAP        8615
+#define IDS_MESSAGEBOX_OK               9001
+#define IDS_MESSAGEBOX_CANCEL           9002
+#define IDS_MESSAGEBOX_ABORT            9003
+#define IDS_MESSAGEBOX_RETRY            9004
+#define IDS_MESSAGEBOX_IGNORE           9005
+#define IDS_MESSAGEBOX_IGNOREALL        9006
+#define IDS_MESSAGEBOX_YES              9007
+#define IDS_MESSAGEBOX_YES_TO_ALL       9008
+#define IDS_MESSAGEBOX_NO               9009
+#define IDS_MESSAGEBOX_NO_TO_ALL        9010
+#define IDS_MESSAGEBOX_CONTINUE         9011
+#define IDS_MESSAGEBOX_SKIP             9012
+#define IDS_MESSAGEBOX_SKIPALL          9013
+#define IDS_MESSAGEBOX_HELP             9014
+#define IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN 9015
+#define IDS_MESSAGEBOX_DONT_ASK_AGAIN   9016
 #define IDR_MARGIN_CURSOR               22900
 #define IDD_LANGUAGE_SELECT             30000
 #define IDD_PROPPAGE_COLORS             30002
 #define ID_VIEW_DIR_STATEPANE           32864
 #define ID_NO_EDIT_SCRIPTS              32865
 #define ID_RELOAD_PLUGINS               32866
+#define ID_MESSAGE_BOX_ARE_RESET        32867
 
 // Next default values for new objects
-//
+// 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        124
-#define _APS_NEXT_COMMAND_VALUE         32867
-#define _APS_NEXT_CONTROL_VALUE         1124
+#define _APS_NEXT_COMMAND_VALUE         32868
+#define _APS_NEXT_CONTROL_VALUE         1125
 #define _APS_NEXT_SYMED_VALUE           108
 #endif
 #endif
index 138d19a..880fb59 100644 (file)
@@ -453,6 +453,10 @@ BEGIN
     CONTROL         "&Close compare Statepane automatically",
                     IDC_CMPPANE_AUTOCLOSE,"Button",BS_AUTOCHECKBOX | 
                     WS_TABSTOP,7,37,206,10
+    PUSHBUTTON      "Reset",IDC_RESET_ALL_MESSAGE_BOXES,167,57,49,13,NOT 
+                    WS_TABSTOP
+    LTEXT           "Press button to reset all message boxes",IDC_STATIC,7,
+                    59,157,8
 END
 
 IDD_LANGUAGE_SELECT DIALOG  0, 0, 213, 111
@@ -844,6 +848,11 @@ BEGIN
                     BS_AUTORADIOBUTTON,77,62,59,10
 END
 
+IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+END
 
 #ifndef _MAC
 /////////////////////////////////////////////////////////////////////////////
@@ -1321,7 +1330,31 @@ BEGIN
     IDS_CANNOT_EXECUTE_FILE "Íåìîæå äà ñòàðòèðà %1"
 END
 
-STRINGTABLE DISCARDABLE 
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_OK       "&Ok"
+    IDS_MESSAGEBOX_CANCEL   "&Cancel"
+    IDS_MESSAGEBOX_ABORT    "&Abort"
+    IDS_MESSAGEBOX_RETRY    "&Retry"
+    IDS_MESSAGEBOX_IGNORE   "&Ignore"
+    IDS_MESSAGEBOX_IGNOREALL "Ignore &all"
+    IDS_MESSAGEBOX_YES      "&Yes"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_YES_TO_ALL "Yes to &all"
+    IDS_MESSAGEBOX_NO       "&No"
+    IDS_MESSAGEBOX_NO_TO_ALL "No to a&ll"
+    IDS_MESSAGEBOX_CONTINUE "&Continue"
+    IDS_MESSAGEBOX_SKIP     "&Skip"
+    IDS_MESSAGEBOX_SKIPALL  "Skip &all"
+    IDS_MESSAGEBOX_HELP     "&Help"
+    IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN "Don't display this &message again."
+    IDS_MESSAGEBOX_DONT_ASK_AGAIN "Don't ask this &question again."
+END
+
+STRINGTABLE DISCARDABLE
 BEGIN
     ID_L2R                  "Êîïèðàíå íà èçáðàíèÿ òåêñò â äåñíèÿ ôàéë\nÊîïèðàíå â äÿñíî (Alt+Right)"
     ID_R2L                  "Êîïèðàíå íà èçáðàíèÿ òåêñò â ëåâèÿ ôàéë\nÊîïèðàíå â ëÿâî (Alt+Left)"
@@ -1416,6 +1449,7 @@ STRINGTABLE DISCARDABLE
 BEGIN
     ID_NO_EDIT_SCRIPTS      "< Empty >"
     ID_RELOAD_PLUGINS       "&Unload all plugins and reload them (for developpers)"
+    ID_MESSAGE_BOX_ARE_RESET "All message boxes are now displayed again."
 END
 
 #endif    // Bulgarian resources
index c0d6a90..734d1c4 100644 (file)
 #define IDB_VIEW_SELECTFONT             278
 #define IDB_FILE_EXIT                   279
 #define IDB_HELP_CONTENTS               280
+#define IDD_MESSAGE_BOX                 281
 #define ID_SCRIPT_FIRST                 900
 #define ID_SCRIPT_LAST                  999
 #define IDC_LEFT_EDIT                   1000
 #define IDC_OPEN_CONTRIBUTORS           1121
 #define IDC_DIFF_DEFAULTS               1122
 #define IDC_MOVED_BLOCKS                1123
+#define IDC_RESET_ALL_MESSAGE_BOXES     1124
 #define IDS_NUM_REPLACED                8501
 #define IDS_EDIT_TEXT_NOT_FOUND         8502
 #define IDS_LINE_STATUS_INFO_EOL        8503
 #define IDC_EDIT_SCOPE_SELECTION        8613
 #define IDC_EDIT_SCOPE_WHOLE_FILE       8614
 #define IDC_EDIT_SCOPE_DONT_WRAP        8615
+#define IDS_MESSAGEBOX_OK               9001
+#define IDS_MESSAGEBOX_CANCEL           9002
+#define IDS_MESSAGEBOX_ABORT            9003
+#define IDS_MESSAGEBOX_RETRY            9004
+#define IDS_MESSAGEBOX_IGNORE           9005
+#define IDS_MESSAGEBOX_IGNOREALL        9006
+#define IDS_MESSAGEBOX_YES              9007
+#define IDS_MESSAGEBOX_YES_TO_ALL       9008
+#define IDS_MESSAGEBOX_NO               9009
+#define IDS_MESSAGEBOX_NO_TO_ALL        9010
+#define IDS_MESSAGEBOX_CONTINUE         9011
+#define IDS_MESSAGEBOX_SKIP             9012
+#define IDS_MESSAGEBOX_SKIPALL          9013
+#define IDS_MESSAGEBOX_HELP             9014
+#define IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN 9015
+#define IDS_MESSAGEBOX_DONT_ASK_AGAIN   9016
 #define IDR_MARGIN_CURSOR               22900
 #define IDD_LANGUAGE_SELECT             30000
 #define IDD_PROPPAGE_COLORS             30002
 #define ID_VIEW_DIR_STATEPANE           32864
 #define ID_NO_EDIT_SCRIPTS              32865
 #define ID_RELOAD_PLUGINS               32866
+#define ID_MESSAGE_BOX_ARE_RESET        32867
 
 // Next default values for new objects
-//
+// 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        124
-#define _APS_NEXT_COMMAND_VALUE         32867
-#define _APS_NEXT_CONTROL_VALUE         1124
+#define _APS_NEXT_COMMAND_VALUE         32868
+#define _APS_NEXT_CONTROL_VALUE         1125
 #define _APS_NEXT_SYMED_VALUE           108
 #endif
 #endif
index dabeeac..10599da 100644 (file)
@@ -439,6 +439,10 @@ BEGIN
                     BS_AUTOCHECKBOX | WS_TABSTOP,7,27,206,10
     CONTROL         "&Close compare Statepane automatically",IDC_CMPPANE_AUTOCLOSE,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,37,206,10
+    PUSHBUTTON      "Reset",IDC_RESET_ALL_MESSAGE_BOXES,167,57,49,13,NOT 
+                    WS_TABSTOP
+    LTEXT           "Press button to reset all message boxes",IDC_STATIC,7,
+                    59,157,8
 END
 
 IDD_LANGUAGE_SELECT DIALOG DISCARDABLE  0, 0, 213, 111
@@ -827,6 +831,11 @@ BEGIN
                     BS_AUTORADIOBUTTON,77,62,59,10
 END
 
+IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+END
 
 #ifndef _MAC
 /////////////////////////////////////////////////////////////////////////////
@@ -1432,168 +1441,28 @@ BEGIN
     IDS_CANNOT_EXECUTE_FILE "No es pot executar el %1"
 END
 
-STRINGTABLE DISCARDABLE
-BEGIN
-    IDS_AFRIKAANS           "Afrikaans"
-    IDS_ALBANIAN            "Albanian"
-    IDS_ARABIC_SAUDI        "Arabic (Saudi Arabian)"
-    IDS_ARABIC_IRAQ         "Arabic (Iraq)"
-    IDS_ARABIC_EGYPT        "Arabic (Egyptian)"
-    IDS_ARABIC_LIBYA        "Arabic (Libyan)"
-    IDS_ARABIC_ALGERIA      "Arabic (Algerian)"
-    IDS_ARABIC_MOROCCO      "Arabic (Moroccan)"
-    IDS_ARABIC_TUNISIA      "Arabic (Tunisian)"
-    IDS_ARABIC_OMAN         "Arabic (Oman)"
-    IDS_ARABIC_YEMEN        "Arabic (Yemen)"
-    IDS_ARABIC_SYRIA        "Arabic (Syrian)"
-    IDS_ARABIC_JORDAN       "Arabic (Jordan)"
-END
-
-STRINGTABLE DISCARDABLE
-BEGIN
-    IDS_ARABIC_LEBANON      "Arabic (Lebanon)"
-    IDS_ARABIC_KUWAIT       "Arabic (Kuwait)"
-    IDS_ARABIC_UAE          "Arabic (UAE)"
-    IDS_ARABIC_BAHRAIN      "Arabic (Bahrain)"
-    IDS_ARABIC_QATAR        "Arabic (Qatar)"
-    IDS_ARMENIAN            "Armenian"
-    IDS_AZERI_LATIN         "Azeri (Latin)"
-    IDS_AZERI_CYRILLIC      "Azeri (Cyrillic)"
-    IDS_BASQUE              "Basque"
-    IDS_BELARUSIAN          "Belarusian"
-    IDS_BULGARIAN           "Bulgarian"
-    IDS_CATALAN             "Catalan"
-    IDS_CHINESE_TRADITIONAL "Chinese (Traditional)"
-    IDS_CHINESE_SIMPLIFIED  "Chinese (Simplified)"
-    IDS_CHINESE_HONGKONG    "Chinese (Hong Kong)"
-    IDS_CHINESE_SINGAPORE   "Chinese (Singapore)"
-END
-
-STRINGTABLE DISCARDABLE
-BEGIN
-    IDS_CHINESE_MACAU       "Chinese (Macau SAR)"
-    IDS_CROATIAN            "Croatian"
-    IDS_CZECH               "Cesko"
-    IDS_DANISH              "Dansk"
-    IDS_DUTCH               "Nederlandse"
-    IDS_DUTCH_BELGIAN       "Nederlandse (Belgium)"
-    IDS_ENGLISH_US          "English (US)"
-    IDS_ENGLISH_UK          "English (UK)"
-    IDS_ENGLISH_AUS         "English (Australian)"
-    IDS_ENGLISH_CAN         "English (Canadian)"
-    IDS_ENGLISH_NZ          "English (New Zealand)"
-    IDS_ENGLISH_EIRE        "English (Irish)"
-    IDS_ENGLISH_SOUTH_AFRICA "English (So. African)"
-    IDS_ENGLISH_JAMAICA     "English (Jamaican)"
-    IDS_ENGLISH_CARIBBEAN   "English (Caribbean)"
-    IDS_ENGLISH_BELIZE      "English (Belize)"
-END
-
-STRINGTABLE DISCARDABLE
+STRINGTABLE 
 BEGIN
-    IDS_ENGLISH_TRINIDAD    "English (Trinidad)"
-    IDS_ENGLISH_ZIMBABWE    "English (Zimbabwe)"
-    IDS_ENGLISH_PHILIPPINES "English (Philippines)"
-    IDS_ESTONIAN            "Eesti"
-    IDS_FAEROESE            "Faeroese"
-    IDS_FARSI               "Farsi"
-    IDS_FINNISH             "Suomi"
-    IDS_FRENCH              "Francais"
-    IDS_FRENCH_BELGIAN      "Francais (Belgique)"
-    IDS_FRENCH_CANADIAN     "Francais (Canada)"
-    IDS_FRENCH_SWISS        "Francais (Suisse)"
-    IDS_FRENCH_LUXEMBOURG   "Francais (Luxembourg)"
-    IDS_FRENCH_MONACO       "Francais (Monaco)"
-    IDS_GEORGIAN            "Georgian"
-    IDS_GERMAN              "Deutsch (Deutschland)"
-    IDS_GERMAN_SWISS        "Deutsch (Schweiz)"
+    IDS_MESSAGEBOX_OK       "&Ok"
+    IDS_MESSAGEBOX_CANCEL   "&Cancel"
+    IDS_MESSAGEBOX_ABORT    "&Abort"
+    IDS_MESSAGEBOX_RETRY    "&Retry"
+    IDS_MESSAGEBOX_IGNORE   "&Ignore"
+    IDS_MESSAGEBOX_IGNOREALL "Ignore &all"
+    IDS_MESSAGEBOX_YES      "&Yes"
 END
 
-STRINGTABLE DISCARDABLE
-BEGIN
-    IDS_GERMAN_AUSTRIAN     "Deutsch (Österreich)"
-    IDS_GERMAN_LUXEMBOURG   "Deutsch (Luxemburg)"
-    IDS_GERMAN_LIECHTENSTEIN "Deutsch (Liechtenstein)"
-    IDS_GREEK               "Greek"
-    IDS_HEBREW              "Hebrew"
-    IDS_HINDI               "Hindi"
-    IDS_HUNGARIAN           "Hungarian"
-    IDS_ICELANDIC           "Icelandic"
-    IDS_INDONESIAN          "Indonesian"
-    IDS_ITALIAN             "Italiano"
-    IDS_ITALIAN_SWISS       "Italiano (Svizzera)"
-    IDS_JAPANESE            "Japanese"
-    IDS_KASHMIRI            "Kashmiri (India)"
-    IDS_KAZAK               "Kazakh"
-    IDS_KOREAN              "Korean"
-    IDS_KOREAN_JOHAB        "Korean (Johab)"
-END
-
-STRINGTABLE DISCARDABLE
-BEGIN
-    IDS_LATVIAN             "Latvian"
-    IDS_LITHUANIAN          "Lithuanian"
-    IDS_MALAY_MALAYSIA      "Malay (Malaysian)"
-    IDS_MALAY_BRUNEI_DARUSSALAM "Malay (Brunei Darussalam)"
-    IDS_MANIPURI            "Manipuri"
-    IDS_NORWEGIAN_BOKMAL    "Norsk (Bokmål)"
-    IDS_NORWEGIAN_NYNORSK   "Norsk (Nynorsk)"
-    IDS_POLISH              "Polski"
-    IDS_PORTUGUESE          "Portugese"
-    IDS_PORTUGUESE_BRAZILIAN "Portugese (Brazil)"
-    IDS_ROMANIAN            "Romanian"
-    IDS_RUSSIAN             "Russian"
-    IDS_SANSKRIT            "Sanskrit"
-    IDS_SERBIAN_LATIN       "Serbian (Latin)"
-    IDS_SERBIAN_CYRILLIC    "Serbian (Cyrillic)"
-    IDS_SINDHI              "Sindhi"
-END
-
-STRINGTABLE DISCARDABLE
-BEGIN
-    IDS_SLOVAK              "Slovak"
-    IDS_SLOVENIAN           "Slovensko"
-    IDS_SPANISH             "Español"
-    IDS_SPANISH_MEXICAN     "Español (Mexicano)"
-    IDS_SPANISH_MODERN      "Español (Moderno)"
-    IDS_SPANISH_GUATEMALA   "Español (Guatemala)"
-    IDS_SPANISH_COSTA_RICA  "Español (Costa Rica)"
-    IDS_SPANISH_PANAMA      "Español (Panamá)"
-    IDS_SPANISH_DOMINICAN   "Español (Dominicano)"
-    IDS_SPANISH_VENEZUELA   "Español (Venezuela)"
-    IDS_SPANISH_COLOMBIA    "Español (Colombiano)"
-    IDS_SPANISH_PERU        "Español (Peru)"
-    IDS_SPANISH_ARGENTINA   "Español (Argentina)"
-    IDS_SPANISH_ECUADOR     "Español (Ecuador)"
-    IDS_SPANISH_CHILE       "Español (Chile)"
-    IDS_SPANISH_URUGUAY     "Español (Uruguay)"
-END
-
-STRINGTABLE DISCARDABLE
-BEGIN
-    IDS_SPANISH_PARAGUAY    "Español (Paraguay)"
-    IDS_SPANISH_BOLIVIA     "Español (Bolivia)"
-    IDS_SPANISH_EL_SALVADOR "Español (El Salvador)"
-    IDS_SPANISH_HONDURAS    "Español (Hondureño)"
-    IDS_SPANISH_NICARAGUA   "Español (Nicaragua)"
-    IDS_SPANISH_PUERTO_RICO "Español (Puerto Rico)"
-    IDS_SWAHILI             "Swahili (Kenya)"
-    IDS_SWEDISH             "Svenska"
-    IDS_SWEDISH_FINLAND     "Svenska (Suomi)"
-    IDS_TAMIL               "Tamil"
-    IDS_TATAR               "Tatar (Tatarstan)"
-    IDS_THAI                "Thai"
-    IDS_TURKISH             "Turkish"
-    IDS_UKRANIAN            "Ukranian"
-    IDS_URDU_PAKISTAN       "Urdu (Pakistan)"
-    IDS_URDU_INDIA          "Urdu (India)"
-END
-
-STRINGTABLE DISCARDABLE
+STRINGTABLE 
 BEGIN
-    IDS_UZBEK_LATIN         "Uzbek (Latin)"
-    IDS_UZBEK_CYRILLIC      "Uzbek (Cyrillic)"
-    IDS_VIETNAMESE          "Vietnamese"
+    IDS_MESSAGEBOX_YES_TO_ALL "Yes to &all"
+    IDS_MESSAGEBOX_NO       "&No"
+    IDS_MESSAGEBOX_NO_TO_ALL "No to a&ll"
+    IDS_MESSAGEBOX_CONTINUE "&Continue"
+    IDS_MESSAGEBOX_SKIP     "&Skip"
+    IDS_MESSAGEBOX_SKIPALL  "Skip &all"
+    IDS_MESSAGEBOX_HELP     "&Help"
+    IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN "Don't display this &message again."
+    IDS_MESSAGEBOX_DONT_ASK_AGAIN "Don't ask this &question again."
 END
 
 STRINGTABLE DISCARDABLE
@@ -1691,6 +1560,7 @@ STRINGTABLE DISCARDABLE
 BEGIN
     ID_NO_EDIT_SCRIPTS      "< Empty >"
     ID_RELOAD_PLUGINS       "&Unload all plugins and reload them (for developpers)"
+    ID_MESSAGE_BOX_ARE_RESET "All message boxes are now displayed again."
 END
 
 #endif    // Catalan resources
index c0d6a90..734d1c4 100644 (file)
 #define IDB_VIEW_SELECTFONT             278
 #define IDB_FILE_EXIT                   279
 #define IDB_HELP_CONTENTS               280
+#define IDD_MESSAGE_BOX                 281
 #define ID_SCRIPT_FIRST                 900
 #define ID_SCRIPT_LAST                  999
 #define IDC_LEFT_EDIT                   1000
 #define IDC_OPEN_CONTRIBUTORS           1121
 #define IDC_DIFF_DEFAULTS               1122
 #define IDC_MOVED_BLOCKS                1123
+#define IDC_RESET_ALL_MESSAGE_BOXES     1124
 #define IDS_NUM_REPLACED                8501
 #define IDS_EDIT_TEXT_NOT_FOUND         8502
 #define IDS_LINE_STATUS_INFO_EOL        8503
 #define IDC_EDIT_SCOPE_SELECTION        8613
 #define IDC_EDIT_SCOPE_WHOLE_FILE       8614
 #define IDC_EDIT_SCOPE_DONT_WRAP        8615
+#define IDS_MESSAGEBOX_OK               9001
+#define IDS_MESSAGEBOX_CANCEL           9002
+#define IDS_MESSAGEBOX_ABORT            9003
+#define IDS_MESSAGEBOX_RETRY            9004
+#define IDS_MESSAGEBOX_IGNORE           9005
+#define IDS_MESSAGEBOX_IGNOREALL        9006
+#define IDS_MESSAGEBOX_YES              9007
+#define IDS_MESSAGEBOX_YES_TO_ALL       9008
+#define IDS_MESSAGEBOX_NO               9009
+#define IDS_MESSAGEBOX_NO_TO_ALL        9010
+#define IDS_MESSAGEBOX_CONTINUE         9011
+#define IDS_MESSAGEBOX_SKIP             9012
+#define IDS_MESSAGEBOX_SKIPALL          9013
+#define IDS_MESSAGEBOX_HELP             9014
+#define IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN 9015
+#define IDS_MESSAGEBOX_DONT_ASK_AGAIN   9016
 #define IDR_MARGIN_CURSOR               22900
 #define IDD_LANGUAGE_SELECT             30000
 #define IDD_PROPPAGE_COLORS             30002
 #define ID_VIEW_DIR_STATEPANE           32864
 #define ID_NO_EDIT_SCRIPTS              32865
 #define ID_RELOAD_PLUGINS               32866
+#define ID_MESSAGE_BOX_ARE_RESET        32867
 
 // Next default values for new objects
-//
+// 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        124
-#define _APS_NEXT_COMMAND_VALUE         32867
-#define _APS_NEXT_CONTROL_VALUE         1124
+#define _APS_NEXT_COMMAND_VALUE         32868
+#define _APS_NEXT_CONTROL_VALUE         1125
 #define _APS_NEXT_SYMED_VALUE           108
 #endif
 #endif
index efe49c2..85f940f 100644 (file)
@@ -432,6 +432,10 @@ BEGIN
                     WS_TABSTOP,7,27,100,10
     CONTROL         "&Close compare Statepane automatically",IDC_CMPPANE_AUTOCLOSE,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,37,206,10
+    PUSHBUTTON      "Reset",IDC_RESET_ALL_MESSAGE_BOXES,167,57,49,13,NOT 
+                    WS_TABSTOP
+    LTEXT           "Press button to reset all message boxes",IDC_STATIC,7,
+                    59,157,8
 END
 
 IDD_LANGUAGE_SELECT DIALOG FIXED IMPURE  0, 0, 213, 111
@@ -814,6 +818,11 @@ BEGIN
                     BS_AUTORADIOBUTTON,79,62,59,10
 END
 
+IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+END
 
 #ifndef _MAC
 /////////////////////////////////////////////////////////////////////////////
@@ -1289,6 +1298,30 @@ BEGIN
     IDS_CANNOT_EXECUTE_FILE "Cannot execute %1"
 END
 
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_OK       "&Ok"
+    IDS_MESSAGEBOX_CANCEL   "&Cancel"
+    IDS_MESSAGEBOX_ABORT    "&Abort"
+    IDS_MESSAGEBOX_RETRY    "&Retry"
+    IDS_MESSAGEBOX_IGNORE   "&Ignore"
+    IDS_MESSAGEBOX_IGNOREALL "Ignore &all"
+    IDS_MESSAGEBOX_YES      "&Yes"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_YES_TO_ALL "Yes to &all"
+    IDS_MESSAGEBOX_NO       "&No"
+    IDS_MESSAGEBOX_NO_TO_ALL "No to a&ll"
+    IDS_MESSAGEBOX_CONTINUE "&Continue"
+    IDS_MESSAGEBOX_SKIP     "&Skip"
+    IDS_MESSAGEBOX_SKIPALL  "Skip &all"
+    IDS_MESSAGEBOX_HELP     "&Help"
+    IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN "Don't display this &message again."
+    IDS_MESSAGEBOX_DONT_ASK_AGAIN "Don't ask this &question again."
+END
+
 STRINGTABLE FIXED IMPURE
 BEGIN
     ID_L2R                  "¸´ÖÆÑ¡ÔñµÄÎÄ×Öµ½ÓÒ±ßÎļþ\n¸´ÖÆÓұߠ(Alt + Right)"
@@ -1381,6 +1414,7 @@ STRINGTABLE DISCARDABLE
 BEGIN
     ID_NO_EDIT_SCRIPTS      "< Empty >"
     ID_RELOAD_PLUGINS       "&Unload all plugins and reload them (for developpers)"
+    ID_MESSAGE_BOX_ARE_RESET "All message boxes are now displayed again."
 END
 
 // END STRINGS SYNCHRO
index c0d6a90..734d1c4 100644 (file)
 #define IDB_VIEW_SELECTFONT             278
 #define IDB_FILE_EXIT                   279
 #define IDB_HELP_CONTENTS               280
+#define IDD_MESSAGE_BOX                 281
 #define ID_SCRIPT_FIRST                 900
 #define ID_SCRIPT_LAST                  999
 #define IDC_LEFT_EDIT                   1000
 #define IDC_OPEN_CONTRIBUTORS           1121
 #define IDC_DIFF_DEFAULTS               1122
 #define IDC_MOVED_BLOCKS                1123
+#define IDC_RESET_ALL_MESSAGE_BOXES     1124
 #define IDS_NUM_REPLACED                8501
 #define IDS_EDIT_TEXT_NOT_FOUND         8502
 #define IDS_LINE_STATUS_INFO_EOL        8503
 #define IDC_EDIT_SCOPE_SELECTION        8613
 #define IDC_EDIT_SCOPE_WHOLE_FILE       8614
 #define IDC_EDIT_SCOPE_DONT_WRAP        8615
+#define IDS_MESSAGEBOX_OK               9001
+#define IDS_MESSAGEBOX_CANCEL           9002
+#define IDS_MESSAGEBOX_ABORT            9003
+#define IDS_MESSAGEBOX_RETRY            9004
+#define IDS_MESSAGEBOX_IGNORE           9005
+#define IDS_MESSAGEBOX_IGNOREALL        9006
+#define IDS_MESSAGEBOX_YES              9007
+#define IDS_MESSAGEBOX_YES_TO_ALL       9008
+#define IDS_MESSAGEBOX_NO               9009
+#define IDS_MESSAGEBOX_NO_TO_ALL        9010
+#define IDS_MESSAGEBOX_CONTINUE         9011
+#define IDS_MESSAGEBOX_SKIP             9012
+#define IDS_MESSAGEBOX_SKIPALL          9013
+#define IDS_MESSAGEBOX_HELP             9014
+#define IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN 9015
+#define IDS_MESSAGEBOX_DONT_ASK_AGAIN   9016
 #define IDR_MARGIN_CURSOR               22900
 #define IDD_LANGUAGE_SELECT             30000
 #define IDD_PROPPAGE_COLORS             30002
 #define ID_VIEW_DIR_STATEPANE           32864
 #define ID_NO_EDIT_SCRIPTS              32865
 #define ID_RELOAD_PLUGINS               32866
+#define ID_MESSAGE_BOX_ARE_RESET        32867
 
 // Next default values for new objects
-//
+// 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        124
-#define _APS_NEXT_COMMAND_VALUE         32867
-#define _APS_NEXT_CONTROL_VALUE         1124
+#define _APS_NEXT_COMMAND_VALUE         32868
+#define _APS_NEXT_CONTROL_VALUE         1125
 #define _APS_NEXT_SYMED_VALUE           108
 #endif
 #endif
index db428ce..be46a48 100644 (file)
@@ -433,6 +433,10 @@ BEGIN
                     WS_TABSTOP,7,27,100,10
     CONTROL         "&Close compare Statepane automatically",IDC_CMPPANE_AUTOCLOSE,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,37,206,10
+    PUSHBUTTON      "Reset",IDC_RESET_ALL_MESSAGE_BOXES,167,57,49,13,NOT 
+                    WS_TABSTOP
+    LTEXT           "Press button to reset all message boxes",IDC_STATIC,7,
+                    59,157,8
 END
 
 IDD_LANGUAGE_SELECT DIALOG DISCARDABLE  0, 0, 213, 111
@@ -815,6 +819,11 @@ BEGIN
                     BS_AUTORADIOBUTTON,79,62,76,10
 END
 
+IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+END
 
 #ifndef _MAC
 /////////////////////////////////////////////////////////////////////////////
@@ -1404,6 +1413,30 @@ BEGIN
     IDS_CANNOT_EXECUTE_FILE "Cannot execute %1"
 END
 
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_OK       "&Ok"
+    IDS_MESSAGEBOX_CANCEL   "&Cancel"
+    IDS_MESSAGEBOX_ABORT    "&Abort"
+    IDS_MESSAGEBOX_RETRY    "&Retry"
+    IDS_MESSAGEBOX_IGNORE   "&Ignore"
+    IDS_MESSAGEBOX_IGNOREALL "Ignore &all"
+    IDS_MESSAGEBOX_YES      "&Yes"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_YES_TO_ALL "Yes to &all"
+    IDS_MESSAGEBOX_NO       "&No"
+    IDS_MESSAGEBOX_NO_TO_ALL "No to a&ll"
+    IDS_MESSAGEBOX_CONTINUE "&Continue"
+    IDS_MESSAGEBOX_SKIP     "&Skip"
+    IDS_MESSAGEBOX_SKIPALL  "Skip &all"
+    IDS_MESSAGEBOX_HELP     "&Help"
+    IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN "Don't display this &message again."
+    IDS_MESSAGEBOX_DONT_ASK_AGAIN "Don't ask this &question again."
+END
+
 STRINGTABLE DISCARDABLE
 BEGIN
     ID_L2R                  "½Æ»s¿ï¨úªº¤å¦r¨ì¥kÃäÀÉ®×\n½Æ»s¥kÃä (Alt + Right)"
@@ -1496,6 +1529,7 @@ STRINGTABLE DISCARDABLE
 BEGIN
     ID_NO_EDIT_SCRIPTS      "< Empty >"
     ID_RELOAD_PLUGINS       "&Unload all plugins and reload them (for developpers)"
+    ID_MESSAGE_BOX_ARE_RESET "All message boxes are now displayed again."
 END
 
 // END STRINGS SYNCHRO
index c0d6a90..734d1c4 100644 (file)
 #define IDB_VIEW_SELECTFONT             278
 #define IDB_FILE_EXIT                   279
 #define IDB_HELP_CONTENTS               280
+#define IDD_MESSAGE_BOX                 281
 #define ID_SCRIPT_FIRST                 900
 #define ID_SCRIPT_LAST                  999
 #define IDC_LEFT_EDIT                   1000
 #define IDC_OPEN_CONTRIBUTORS           1121
 #define IDC_DIFF_DEFAULTS               1122
 #define IDC_MOVED_BLOCKS                1123
+#define IDC_RESET_ALL_MESSAGE_BOXES     1124
 #define IDS_NUM_REPLACED                8501
 #define IDS_EDIT_TEXT_NOT_FOUND         8502
 #define IDS_LINE_STATUS_INFO_EOL        8503
 #define IDC_EDIT_SCOPE_SELECTION        8613
 #define IDC_EDIT_SCOPE_WHOLE_FILE       8614
 #define IDC_EDIT_SCOPE_DONT_WRAP        8615
+#define IDS_MESSAGEBOX_OK               9001
+#define IDS_MESSAGEBOX_CANCEL           9002
+#define IDS_MESSAGEBOX_ABORT            9003
+#define IDS_MESSAGEBOX_RETRY            9004
+#define IDS_MESSAGEBOX_IGNORE           9005
+#define IDS_MESSAGEBOX_IGNOREALL        9006
+#define IDS_MESSAGEBOX_YES              9007
+#define IDS_MESSAGEBOX_YES_TO_ALL       9008
+#define IDS_MESSAGEBOX_NO               9009
+#define IDS_MESSAGEBOX_NO_TO_ALL        9010
+#define IDS_MESSAGEBOX_CONTINUE         9011
+#define IDS_MESSAGEBOX_SKIP             9012
+#define IDS_MESSAGEBOX_SKIPALL          9013
+#define IDS_MESSAGEBOX_HELP             9014
+#define IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN 9015
+#define IDS_MESSAGEBOX_DONT_ASK_AGAIN   9016
 #define IDR_MARGIN_CURSOR               22900
 #define IDD_LANGUAGE_SELECT             30000
 #define IDD_PROPPAGE_COLORS             30002
 #define ID_VIEW_DIR_STATEPANE           32864
 #define ID_NO_EDIT_SCRIPTS              32865
 #define ID_RELOAD_PLUGINS               32866
+#define ID_MESSAGE_BOX_ARE_RESET        32867
 
 // Next default values for new objects
-//
+// 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        124
-#define _APS_NEXT_COMMAND_VALUE         32867
-#define _APS_NEXT_CONTROL_VALUE         1124
+#define _APS_NEXT_COMMAND_VALUE         32868
+#define _APS_NEXT_CONTROL_VALUE         1125
 #define _APS_NEXT_SYMED_VALUE           108
 #endif
 #endif
index e8e9824..46d64ed 100644 (file)
@@ -440,6 +440,10 @@ BEGIN
                     BS_AUTOCHECKBOX | WS_TABSTOP,7,27,206,10
     CONTROL         "&Close compare Statepane automatically",IDC_CMPPANE_AUTOCLOSE,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,37,206,10
+    PUSHBUTTON      "Reset",IDC_RESET_ALL_MESSAGE_BOXES,167,57,49,13,NOT 
+                    WS_TABSTOP
+    LTEXT           "Press button to reset all message boxes",IDC_STATIC,7,
+                    59,157,8
 END
 
 IDD_LANGUAGE_SELECT DIALOG DISCARDABLE  0, 0, 213, 111
@@ -828,6 +832,11 @@ BEGIN
                     BS_AUTORADIOBUTTON,120,62,59,10
 END
 
+IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+END
 
 #ifndef _MAC
 /////////////////////////////////////////////////////////////////////////////
@@ -1423,6 +1432,30 @@ BEGIN
     IDS_CANNOT_EXECUTE_FILE "Cannot execute %1"
 END
 
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_OK       "&Ok"
+    IDS_MESSAGEBOX_CANCEL   "&Cancel"
+    IDS_MESSAGEBOX_ABORT    "&Abort"
+    IDS_MESSAGEBOX_RETRY    "&Retry"
+    IDS_MESSAGEBOX_IGNORE   "&Ignore"
+    IDS_MESSAGEBOX_IGNOREALL "Ignore &all"
+    IDS_MESSAGEBOX_YES      "&Yes"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_YES_TO_ALL "Yes to &all"
+    IDS_MESSAGEBOX_NO       "&No"
+    IDS_MESSAGEBOX_NO_TO_ALL "No to a&ll"
+    IDS_MESSAGEBOX_CONTINUE "&Continue"
+    IDS_MESSAGEBOX_SKIP     "&Skip"
+    IDS_MESSAGEBOX_SKIPALL  "Skip &all"
+    IDS_MESSAGEBOX_HELP     "&Help"
+    IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN "Don't display this &message again."
+    IDS_MESSAGEBOX_DONT_ASK_AGAIN "Don't ask this &question again."
+END
+
 STRINGTABLE DISCARDABLE
 BEGIN
     ID_L2R                  "Zkopírovat vybraný text do souboru vpravo\nCopy Right (Right Arrow)"
@@ -1517,6 +1550,7 @@ STRINGTABLE DISCARDABLE
 BEGIN
     ID_NO_EDIT_SCRIPTS      "< Empty >"
     ID_RELOAD_PLUGINS       "&Unload all plugins and reload them (for developpers)"
+    ID_MESSAGE_BOX_ARE_RESET "All message boxes are now displayed again."
 END
 
 // END STRINGS SYNCHRO
index c0d6a90..734d1c4 100644 (file)
 #define IDB_VIEW_SELECTFONT             278
 #define IDB_FILE_EXIT                   279
 #define IDB_HELP_CONTENTS               280
+#define IDD_MESSAGE_BOX                 281
 #define ID_SCRIPT_FIRST                 900
 #define ID_SCRIPT_LAST                  999
 #define IDC_LEFT_EDIT                   1000
 #define IDC_OPEN_CONTRIBUTORS           1121
 #define IDC_DIFF_DEFAULTS               1122
 #define IDC_MOVED_BLOCKS                1123
+#define IDC_RESET_ALL_MESSAGE_BOXES     1124
 #define IDS_NUM_REPLACED                8501
 #define IDS_EDIT_TEXT_NOT_FOUND         8502
 #define IDS_LINE_STATUS_INFO_EOL        8503
 #define IDC_EDIT_SCOPE_SELECTION        8613
 #define IDC_EDIT_SCOPE_WHOLE_FILE       8614
 #define IDC_EDIT_SCOPE_DONT_WRAP        8615
+#define IDS_MESSAGEBOX_OK               9001
+#define IDS_MESSAGEBOX_CANCEL           9002
+#define IDS_MESSAGEBOX_ABORT            9003
+#define IDS_MESSAGEBOX_RETRY            9004
+#define IDS_MESSAGEBOX_IGNORE           9005
+#define IDS_MESSAGEBOX_IGNOREALL        9006
+#define IDS_MESSAGEBOX_YES              9007
+#define IDS_MESSAGEBOX_YES_TO_ALL       9008
+#define IDS_MESSAGEBOX_NO               9009
+#define IDS_MESSAGEBOX_NO_TO_ALL        9010
+#define IDS_MESSAGEBOX_CONTINUE         9011
+#define IDS_MESSAGEBOX_SKIP             9012
+#define IDS_MESSAGEBOX_SKIPALL          9013
+#define IDS_MESSAGEBOX_HELP             9014
+#define IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN 9015
+#define IDS_MESSAGEBOX_DONT_ASK_AGAIN   9016
 #define IDR_MARGIN_CURSOR               22900
 #define IDD_LANGUAGE_SELECT             30000
 #define IDD_PROPPAGE_COLORS             30002
 #define ID_VIEW_DIR_STATEPANE           32864
 #define ID_NO_EDIT_SCRIPTS              32865
 #define ID_RELOAD_PLUGINS               32866
+#define ID_MESSAGE_BOX_ARE_RESET        32867
 
 // Next default values for new objects
-//
+// 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        124
-#define _APS_NEXT_COMMAND_VALUE         32867
-#define _APS_NEXT_CONTROL_VALUE         1124
+#define _APS_NEXT_COMMAND_VALUE         32868
+#define _APS_NEXT_CONTROL_VALUE         1125
 #define _APS_NEXT_SYMED_VALUE           108
 #endif
 #endif
index 5212551..5250cd8 100644 (file)
@@ -438,6 +438,10 @@ BEGIN
                     BS_AUTOCHECKBOX | WS_TABSTOP,7,27,79,10
     CONTROL         "&Close compare Statepane automatically",IDC_CMPPANE_AUTOCLOSE,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,37,206,10
+    PUSHBUTTON      "Reset",IDC_RESET_ALL_MESSAGE_BOXES,167,57,49,13,NOT 
+                    WS_TABSTOP
+    LTEXT           "Press button to reset all message boxes",IDC_STATIC,7,
+                    59,157,8
 END
 
 IDD_LANGUAGE_SELECT DIALOG DISCARDABLE  0, 0, 213, 162
@@ -825,6 +829,11 @@ BEGIN
                     BS_AUTORADIOBUTTON,128,62,73,10
 END
 
+IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+END
 
 #ifndef _MAC
 /////////////////////////////////////////////////////////////////////////////
@@ -1421,6 +1430,30 @@ BEGIN
     IDS_CANNOT_EXECUTE_FILE "Cannot execute %1"
 END
 
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_OK       "&Ok"
+    IDS_MESSAGEBOX_CANCEL   "&Cancel"
+    IDS_MESSAGEBOX_ABORT    "&Abort"
+    IDS_MESSAGEBOX_RETRY    "&Retry"
+    IDS_MESSAGEBOX_IGNORE   "&Ignore"
+    IDS_MESSAGEBOX_IGNOREALL "Ignore &all"
+    IDS_MESSAGEBOX_YES      "&Yes"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_YES_TO_ALL "Yes to &all"
+    IDS_MESSAGEBOX_NO       "&No"
+    IDS_MESSAGEBOX_NO_TO_ALL "No to a&ll"
+    IDS_MESSAGEBOX_CONTINUE "&Continue"
+    IDS_MESSAGEBOX_SKIP     "&Skip"
+    IDS_MESSAGEBOX_SKIPALL  "Skip &all"
+    IDS_MESSAGEBOX_HELP     "&Help"
+    IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN "Don't display this &message again."
+    IDS_MESSAGEBOX_DONT_ASK_AGAIN "Don't ask this &question again."
+END
+
 STRINGTABLE DISCARDABLE
 BEGIN
     ID_L2R                  "Kopier den valgte tekst til den højre fil\nKopier højre (Alt Højre)"
@@ -1516,6 +1549,7 @@ STRINGTABLE DISCARDABLE
 BEGIN
     ID_NO_EDIT_SCRIPTS      "< Empty >"
     ID_RELOAD_PLUGINS       "&Unload all plugins and reload them (for developpers)"
+    ID_MESSAGE_BOX_ARE_RESET "All message boxes are now displayed again."
 END
 
 // END STRINGS SYNCHRO
index c0d6a90..734d1c4 100644 (file)
 #define IDB_VIEW_SELECTFONT             278
 #define IDB_FILE_EXIT                   279
 #define IDB_HELP_CONTENTS               280
+#define IDD_MESSAGE_BOX                 281
 #define ID_SCRIPT_FIRST                 900
 #define ID_SCRIPT_LAST                  999
 #define IDC_LEFT_EDIT                   1000
 #define IDC_OPEN_CONTRIBUTORS           1121
 #define IDC_DIFF_DEFAULTS               1122
 #define IDC_MOVED_BLOCKS                1123
+#define IDC_RESET_ALL_MESSAGE_BOXES     1124
 #define IDS_NUM_REPLACED                8501
 #define IDS_EDIT_TEXT_NOT_FOUND         8502
 #define IDS_LINE_STATUS_INFO_EOL        8503
 #define IDC_EDIT_SCOPE_SELECTION        8613
 #define IDC_EDIT_SCOPE_WHOLE_FILE       8614
 #define IDC_EDIT_SCOPE_DONT_WRAP        8615
+#define IDS_MESSAGEBOX_OK               9001
+#define IDS_MESSAGEBOX_CANCEL           9002
+#define IDS_MESSAGEBOX_ABORT            9003
+#define IDS_MESSAGEBOX_RETRY            9004
+#define IDS_MESSAGEBOX_IGNORE           9005
+#define IDS_MESSAGEBOX_IGNOREALL        9006
+#define IDS_MESSAGEBOX_YES              9007
+#define IDS_MESSAGEBOX_YES_TO_ALL       9008
+#define IDS_MESSAGEBOX_NO               9009
+#define IDS_MESSAGEBOX_NO_TO_ALL        9010
+#define IDS_MESSAGEBOX_CONTINUE         9011
+#define IDS_MESSAGEBOX_SKIP             9012
+#define IDS_MESSAGEBOX_SKIPALL          9013
+#define IDS_MESSAGEBOX_HELP             9014
+#define IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN 9015
+#define IDS_MESSAGEBOX_DONT_ASK_AGAIN   9016
 #define IDR_MARGIN_CURSOR               22900
 #define IDD_LANGUAGE_SELECT             30000
 #define IDD_PROPPAGE_COLORS             30002
 #define ID_VIEW_DIR_STATEPANE           32864
 #define ID_NO_EDIT_SCRIPTS              32865
 #define ID_RELOAD_PLUGINS               32866
+#define ID_MESSAGE_BOX_ARE_RESET        32867
 
 // Next default values for new objects
-//
+// 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        124
-#define _APS_NEXT_COMMAND_VALUE         32867
-#define _APS_NEXT_CONTROL_VALUE         1124
+#define _APS_NEXT_COMMAND_VALUE         32868
+#define _APS_NEXT_CONTROL_VALUE         1125
 #define _APS_NEXT_SYMED_VALUE           108
 #endif
 #endif
index 1b664d1..5fad400 100644 (file)
@@ -440,6 +440,10 @@ BEGIN
                     BS_AUTOCHECKBOX | WS_TABSTOP,7,27,87,10
     CONTROL         "&Close compare Statepane automatically",IDC_CMPPANE_AUTOCLOSE,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,37,206,10
+    PUSHBUTTON      "Reset",IDC_RESET_ALL_MESSAGE_BOXES,167,57,49,13,NOT 
+                    WS_TABSTOP
+    LTEXT           "Press button to reset all message boxes",IDC_STATIC,7,
+                    59,157,8
 END
 
 IDD_LANGUAGE_SELECT DIALOG DISCARDABLE  0, 0, 213, 111
@@ -829,6 +833,11 @@ BEGIN
                     BS_AUTORADIOBUTTON,77,62,59,10
 END
 
+IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+END
 
 #ifndef _MAC
 /////////////////////////////////////////////////////////////////////////////
@@ -1425,6 +1434,30 @@ BEGIN
     IDS_CANNOT_EXECUTE_FILE "Cannot execute %1"
 END
 
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_OK       "&Ok"
+    IDS_MESSAGEBOX_CANCEL   "&Cancel"
+    IDS_MESSAGEBOX_ABORT    "&Abort"
+    IDS_MESSAGEBOX_RETRY    "&Retry"
+    IDS_MESSAGEBOX_IGNORE   "&Ignore"
+    IDS_MESSAGEBOX_IGNOREALL "Ignore &all"
+    IDS_MESSAGEBOX_YES      "&Yes"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_YES_TO_ALL "Yes to &all"
+    IDS_MESSAGEBOX_NO       "&No"
+    IDS_MESSAGEBOX_NO_TO_ALL "No to a&ll"
+    IDS_MESSAGEBOX_CONTINUE "&Continue"
+    IDS_MESSAGEBOX_SKIP     "&Skip"
+    IDS_MESSAGEBOX_SKIPALL  "Skip &all"
+    IDS_MESSAGEBOX_HELP     "&Help"
+    IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN "Don't display this &message again."
+    IDS_MESSAGEBOX_DONT_ASK_AGAIN "Don't ask this &question again."
+END
+
 STRINGTABLE DISCARDABLE
 BEGIN
     ID_L2R                  "Kopieer de geselcteerde tekst naar het rechter bestand.\nKopieer naar rechts (Pijl rechts)"
@@ -1523,6 +1556,7 @@ STRINGTABLE DISCARDABLE
 BEGIN
     ID_NO_EDIT_SCRIPTS      "< Empty >"
     ID_RELOAD_PLUGINS       "&Unload all plugins and reload them (for developpers)"
+    ID_MESSAGE_BOX_ARE_RESET "All message boxes are now displayed again."
 END
 
 // END STRINGS SYNCHRO
index c0d6a90..734d1c4 100644 (file)
 #define IDB_VIEW_SELECTFONT             278
 #define IDB_FILE_EXIT                   279
 #define IDB_HELP_CONTENTS               280
+#define IDD_MESSAGE_BOX                 281
 #define ID_SCRIPT_FIRST                 900
 #define ID_SCRIPT_LAST                  999
 #define IDC_LEFT_EDIT                   1000
 #define IDC_OPEN_CONTRIBUTORS           1121
 #define IDC_DIFF_DEFAULTS               1122
 #define IDC_MOVED_BLOCKS                1123
+#define IDC_RESET_ALL_MESSAGE_BOXES     1124
 #define IDS_NUM_REPLACED                8501
 #define IDS_EDIT_TEXT_NOT_FOUND         8502
 #define IDS_LINE_STATUS_INFO_EOL        8503
 #define IDC_EDIT_SCOPE_SELECTION        8613
 #define IDC_EDIT_SCOPE_WHOLE_FILE       8614
 #define IDC_EDIT_SCOPE_DONT_WRAP        8615
+#define IDS_MESSAGEBOX_OK               9001
+#define IDS_MESSAGEBOX_CANCEL           9002
+#define IDS_MESSAGEBOX_ABORT            9003
+#define IDS_MESSAGEBOX_RETRY            9004
+#define IDS_MESSAGEBOX_IGNORE           9005
+#define IDS_MESSAGEBOX_IGNOREALL        9006
+#define IDS_MESSAGEBOX_YES              9007
+#define IDS_MESSAGEBOX_YES_TO_ALL       9008
+#define IDS_MESSAGEBOX_NO               9009
+#define IDS_MESSAGEBOX_NO_TO_ALL        9010
+#define IDS_MESSAGEBOX_CONTINUE         9011
+#define IDS_MESSAGEBOX_SKIP             9012
+#define IDS_MESSAGEBOX_SKIPALL          9013
+#define IDS_MESSAGEBOX_HELP             9014
+#define IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN 9015
+#define IDS_MESSAGEBOX_DONT_ASK_AGAIN   9016
 #define IDR_MARGIN_CURSOR               22900
 #define IDD_LANGUAGE_SELECT             30000
 #define IDD_PROPPAGE_COLORS             30002
 #define ID_VIEW_DIR_STATEPANE           32864
 #define ID_NO_EDIT_SCRIPTS              32865
 #define ID_RELOAD_PLUGINS               32866
+#define ID_MESSAGE_BOX_ARE_RESET        32867
 
 // Next default values for new objects
-//
+// 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        124
-#define _APS_NEXT_COMMAND_VALUE         32867
-#define _APS_NEXT_CONTROL_VALUE         1124
+#define _APS_NEXT_COMMAND_VALUE         32868
+#define _APS_NEXT_CONTROL_VALUE         1125
 #define _APS_NEXT_SYMED_VALUE           108
 #endif
 #endif
index 9c90b9a..487f01e 100644 (file)
@@ -441,6 +441,10 @@ BEGIN
                     BS_AUTOCHECKBOX | WS_TABSTOP,7,27,80,10
     CONTROL         "&Close compare Statepane automatically",IDC_CMPPANE_AUTOCLOSE,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,37,206,10
+    PUSHBUTTON      "Reset",IDC_RESET_ALL_MESSAGE_BOXES,167,57,49,13,NOT 
+                    WS_TABSTOP
+    LTEXT           "Press button to reset all message boxes",IDC_STATIC,7,
+                    59,157,8
 END
 
 IDD_LANGUAGE_SELECT DIALOG DISCARDABLE  0, 0, 213, 111
@@ -828,6 +832,11 @@ BEGIN
                     BS_AUTORADIOBUTTON,120,62,67,10
 END
 
+IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+END
 
 #ifndef _MAC
 /////////////////////////////////////////////////////////////////////////////
@@ -1424,6 +1433,30 @@ BEGIN
     IDS_CANNOT_EXECUTE_FILE "Cannot execute %1"
 END
 
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_OK       "&Ok"
+    IDS_MESSAGEBOX_CANCEL   "&Cancel"
+    IDS_MESSAGEBOX_ABORT    "&Abort"
+    IDS_MESSAGEBOX_RETRY    "&Retry"
+    IDS_MESSAGEBOX_IGNORE   "&Ignore"
+    IDS_MESSAGEBOX_IGNOREALL "Ignore &all"
+    IDS_MESSAGEBOX_YES      "&Yes"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_YES_TO_ALL "Yes to &all"
+    IDS_MESSAGEBOX_NO       "&No"
+    IDS_MESSAGEBOX_NO_TO_ALL "No to a&ll"
+    IDS_MESSAGEBOX_CONTINUE "&Continue"
+    IDS_MESSAGEBOX_SKIP     "&Skip"
+    IDS_MESSAGEBOX_SKIPALL  "Skip &all"
+    IDS_MESSAGEBOX_HELP     "&Help"
+    IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN "Don't display this &message again."
+    IDS_MESSAGEBOX_DONT_ASK_AGAIN "Don't ask this &question again."
+END
+
 STRINGTABLE DISCARDABLE
 BEGIN
     ID_L2R                  "Copier le texte sélectionné vers le fichier de droite\nCopier à Droite (Alt Right)"
@@ -1522,6 +1555,7 @@ STRINGTABLE DISCARDABLE
 BEGIN
     ID_NO_EDIT_SCRIPTS      "< Empty >"
     ID_RELOAD_PLUGINS       "&Unload all plugins and reload them (for developpers)"
+    ID_MESSAGE_BOX_ARE_RESET "All message boxes are now displayed again."
 END
 
 // END STRINGS SYNCHRO
index c0d6a90..734d1c4 100644 (file)
 #define IDB_VIEW_SELECTFONT             278
 #define IDB_FILE_EXIT                   279
 #define IDB_HELP_CONTENTS               280
+#define IDD_MESSAGE_BOX                 281
 #define ID_SCRIPT_FIRST                 900
 #define ID_SCRIPT_LAST                  999
 #define IDC_LEFT_EDIT                   1000
 #define IDC_OPEN_CONTRIBUTORS           1121
 #define IDC_DIFF_DEFAULTS               1122
 #define IDC_MOVED_BLOCKS                1123
+#define IDC_RESET_ALL_MESSAGE_BOXES     1124
 #define IDS_NUM_REPLACED                8501
 #define IDS_EDIT_TEXT_NOT_FOUND         8502
 #define IDS_LINE_STATUS_INFO_EOL        8503
 #define IDC_EDIT_SCOPE_SELECTION        8613
 #define IDC_EDIT_SCOPE_WHOLE_FILE       8614
 #define IDC_EDIT_SCOPE_DONT_WRAP        8615
+#define IDS_MESSAGEBOX_OK               9001
+#define IDS_MESSAGEBOX_CANCEL           9002
+#define IDS_MESSAGEBOX_ABORT            9003
+#define IDS_MESSAGEBOX_RETRY            9004
+#define IDS_MESSAGEBOX_IGNORE           9005
+#define IDS_MESSAGEBOX_IGNOREALL        9006
+#define IDS_MESSAGEBOX_YES              9007
+#define IDS_MESSAGEBOX_YES_TO_ALL       9008
+#define IDS_MESSAGEBOX_NO               9009
+#define IDS_MESSAGEBOX_NO_TO_ALL        9010
+#define IDS_MESSAGEBOX_CONTINUE         9011
+#define IDS_MESSAGEBOX_SKIP             9012
+#define IDS_MESSAGEBOX_SKIPALL          9013
+#define IDS_MESSAGEBOX_HELP             9014
+#define IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN 9015
+#define IDS_MESSAGEBOX_DONT_ASK_AGAIN   9016
 #define IDR_MARGIN_CURSOR               22900
 #define IDD_LANGUAGE_SELECT             30000
 #define IDD_PROPPAGE_COLORS             30002
 #define ID_VIEW_DIR_STATEPANE           32864
 #define ID_NO_EDIT_SCRIPTS              32865
 #define ID_RELOAD_PLUGINS               32866
+#define ID_MESSAGE_BOX_ARE_RESET        32867
 
 // Next default values for new objects
-//
+// 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        124
-#define _APS_NEXT_COMMAND_VALUE         32867
-#define _APS_NEXT_CONTROL_VALUE         1124
+#define _APS_NEXT_COMMAND_VALUE         32868
+#define _APS_NEXT_CONTROL_VALUE         1125
 #define _APS_NEXT_SYMED_VALUE           108
 #endif
 #endif
index 843677f..2ea3e02 100644 (file)
@@ -447,6 +447,10 @@ BEGIN
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,27,206,10
     CONTROL         "&Close compare Statepane automatically",IDC_CMPPANE_AUTOCLOSE,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,37,206,10
+    PUSHBUTTON      "Reset",IDC_RESET_ALL_MESSAGE_BOXES,167,57,49,13,NOT 
+                    WS_TABSTOP
+    LTEXT           "Press button to reset all message boxes",IDC_STATIC,7,
+                    59,157,8
 END
 
 IDD_LANGUAGE_SELECT DIALOG DISCARDABLE  0, 0, 213, 111
@@ -835,6 +839,11 @@ BEGIN
                     BS_AUTORADIOBUTTON,99,62,149,10
 END
 
+IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+END
 
 #ifndef _MAC
 /////////////////////////////////////////////////////////////////////////////
@@ -1431,6 +1440,30 @@ BEGIN
     IDS_CANNOT_EXECUTE_FILE "%1 konnte nicht ausgeführt werden."
 END
 
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_OK       "&Ok"
+    IDS_MESSAGEBOX_CANCEL   "&Cancel"
+    IDS_MESSAGEBOX_ABORT    "&Abort"
+    IDS_MESSAGEBOX_RETRY    "&Retry"
+    IDS_MESSAGEBOX_IGNORE   "&Ignore"
+    IDS_MESSAGEBOX_IGNOREALL "Ignore &all"
+    IDS_MESSAGEBOX_YES      "&Yes"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_YES_TO_ALL "Yes to &all"
+    IDS_MESSAGEBOX_NO       "&No"
+    IDS_MESSAGEBOX_NO_TO_ALL "No to a&ll"
+    IDS_MESSAGEBOX_CONTINUE "&Continue"
+    IDS_MESSAGEBOX_SKIP     "&Skip"
+    IDS_MESSAGEBOX_SKIPALL  "Skip &all"
+    IDS_MESSAGEBOX_HELP     "&Help"
+    IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN "Don't display this &message again."
+    IDS_MESSAGEBOX_DONT_ASK_AGAIN "Don't ask this &question again."
+END
+
 STRINGTABLE DISCARDABLE
 BEGIN
     ID_L2R                  "Kopiert den ausgewählten Text in die rechte Datei.\nNach rechts kopieren (Alt+Rechts)"
@@ -1532,6 +1565,7 @@ STRINGTABLE DISCARDABLE
 BEGIN
     ID_NO_EDIT_SCRIPTS      "< Empty >"
     ID_RELOAD_PLUGINS       "&Unload all plugins and reload them (for developpers)"
+    ID_MESSAGE_BOX_ARE_RESET "All message boxes are now displayed again."
 END
 
 // END STRINGS SYNCHRO
index c0d6a90..734d1c4 100644 (file)
 #define IDB_VIEW_SELECTFONT             278
 #define IDB_FILE_EXIT                   279
 #define IDB_HELP_CONTENTS               280
+#define IDD_MESSAGE_BOX                 281
 #define ID_SCRIPT_FIRST                 900
 #define ID_SCRIPT_LAST                  999
 #define IDC_LEFT_EDIT                   1000
 #define IDC_OPEN_CONTRIBUTORS           1121
 #define IDC_DIFF_DEFAULTS               1122
 #define IDC_MOVED_BLOCKS                1123
+#define IDC_RESET_ALL_MESSAGE_BOXES     1124
 #define IDS_NUM_REPLACED                8501
 #define IDS_EDIT_TEXT_NOT_FOUND         8502
 #define IDS_LINE_STATUS_INFO_EOL        8503
 #define IDC_EDIT_SCOPE_SELECTION        8613
 #define IDC_EDIT_SCOPE_WHOLE_FILE       8614
 #define IDC_EDIT_SCOPE_DONT_WRAP        8615
+#define IDS_MESSAGEBOX_OK               9001
+#define IDS_MESSAGEBOX_CANCEL           9002
+#define IDS_MESSAGEBOX_ABORT            9003
+#define IDS_MESSAGEBOX_RETRY            9004
+#define IDS_MESSAGEBOX_IGNORE           9005
+#define IDS_MESSAGEBOX_IGNOREALL        9006
+#define IDS_MESSAGEBOX_YES              9007
+#define IDS_MESSAGEBOX_YES_TO_ALL       9008
+#define IDS_MESSAGEBOX_NO               9009
+#define IDS_MESSAGEBOX_NO_TO_ALL        9010
+#define IDS_MESSAGEBOX_CONTINUE         9011
+#define IDS_MESSAGEBOX_SKIP             9012
+#define IDS_MESSAGEBOX_SKIPALL          9013
+#define IDS_MESSAGEBOX_HELP             9014
+#define IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN 9015
+#define IDS_MESSAGEBOX_DONT_ASK_AGAIN   9016
 #define IDR_MARGIN_CURSOR               22900
 #define IDD_LANGUAGE_SELECT             30000
 #define IDD_PROPPAGE_COLORS             30002
 #define ID_VIEW_DIR_STATEPANE           32864
 #define ID_NO_EDIT_SCRIPTS              32865
 #define ID_RELOAD_PLUGINS               32866
+#define ID_MESSAGE_BOX_ARE_RESET        32867
 
 // Next default values for new objects
-//
+// 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        124
-#define _APS_NEXT_COMMAND_VALUE         32867
-#define _APS_NEXT_CONTROL_VALUE         1124
+#define _APS_NEXT_COMMAND_VALUE         32868
+#define _APS_NEXT_CONTROL_VALUE         1125
 #define _APS_NEXT_SYMED_VALUE           108
 #endif
 #endif
index 0014a27..9d53e13 100644 (file)
@@ -437,6 +437,10 @@ BEGIN
                     BS_AUTOCHECKBOX | WS_TABSTOP,7,27,87,10
     CONTROL         "&Close compare Statepane automatically",IDC_CMPPANE_AUTOCLOSE,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,37,206,10
+    PUSHBUTTON      "Reset",IDC_RESET_ALL_MESSAGE_BOXES,167,57,49,13,NOT 
+                    WS_TABSTOP
+    LTEXT           "Press button to reset all message boxes",IDC_STATIC,7,
+                    59,157,8
 END
 
 IDD_LANGUAGE_SELECT DIALOG DISCARDABLE  0, 0, 213, 111
@@ -826,6 +830,11 @@ BEGIN
                     BS_AUTORADIOBUTTON,140,62,59,10
 END
 
+IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+END
 
 #ifndef _MAC
 /////////////////////////////////////////////////////////////////////////////
@@ -1422,6 +1431,30 @@ BEGIN
     IDS_CANNOT_EXECUTE_FILE "Cannot execute %1"
 END
 
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_OK       "&Ok"
+    IDS_MESSAGEBOX_CANCEL   "&Cancel"
+    IDS_MESSAGEBOX_ABORT    "&Abort"
+    IDS_MESSAGEBOX_RETRY    "&Retry"
+    IDS_MESSAGEBOX_IGNORE   "&Ignore"
+    IDS_MESSAGEBOX_IGNOREALL "Ignore &all"
+    IDS_MESSAGEBOX_YES      "&Yes"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_YES_TO_ALL "Yes to &all"
+    IDS_MESSAGEBOX_NO       "&No"
+    IDS_MESSAGEBOX_NO_TO_ALL "No to a&ll"
+    IDS_MESSAGEBOX_CONTINUE "&Continue"
+    IDS_MESSAGEBOX_SKIP     "&Skip"
+    IDS_MESSAGEBOX_SKIPALL  "Skip &all"
+    IDS_MESSAGEBOX_HELP     "&Help"
+    IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN "Don't display this &message again."
+    IDS_MESSAGEBOX_DONT_ASK_AGAIN "Don't ask this &question again."
+END
+
 STRINGTABLE DISCARDABLE
 BEGIN
     ID_L2R                  "Copia il testo selezionato dal file di sinistra a quello di destra\nCopia a destra (Freccia destra)"
@@ -1517,6 +1550,7 @@ STRINGTABLE DISCARDABLE
 BEGIN
     ID_NO_EDIT_SCRIPTS      "< Empty >"
     ID_RELOAD_PLUGINS       "&Unload all plugins and reload them (for developpers)"
+    ID_MESSAGE_BOX_ARE_RESET "All message boxes are now displayed again."
 END
 
 // END STRINGS SYNCHRO
index c0d6a90..734d1c4 100644 (file)
 #define IDB_VIEW_SELECTFONT             278
 #define IDB_FILE_EXIT                   279
 #define IDB_HELP_CONTENTS               280
+#define IDD_MESSAGE_BOX                 281
 #define ID_SCRIPT_FIRST                 900
 #define ID_SCRIPT_LAST                  999
 #define IDC_LEFT_EDIT                   1000
 #define IDC_OPEN_CONTRIBUTORS           1121
 #define IDC_DIFF_DEFAULTS               1122
 #define IDC_MOVED_BLOCKS                1123
+#define IDC_RESET_ALL_MESSAGE_BOXES     1124
 #define IDS_NUM_REPLACED                8501
 #define IDS_EDIT_TEXT_NOT_FOUND         8502
 #define IDS_LINE_STATUS_INFO_EOL        8503
 #define IDC_EDIT_SCOPE_SELECTION        8613
 #define IDC_EDIT_SCOPE_WHOLE_FILE       8614
 #define IDC_EDIT_SCOPE_DONT_WRAP        8615
+#define IDS_MESSAGEBOX_OK               9001
+#define IDS_MESSAGEBOX_CANCEL           9002
+#define IDS_MESSAGEBOX_ABORT            9003
+#define IDS_MESSAGEBOX_RETRY            9004
+#define IDS_MESSAGEBOX_IGNORE           9005
+#define IDS_MESSAGEBOX_IGNOREALL        9006
+#define IDS_MESSAGEBOX_YES              9007
+#define IDS_MESSAGEBOX_YES_TO_ALL       9008
+#define IDS_MESSAGEBOX_NO               9009
+#define IDS_MESSAGEBOX_NO_TO_ALL        9010
+#define IDS_MESSAGEBOX_CONTINUE         9011
+#define IDS_MESSAGEBOX_SKIP             9012
+#define IDS_MESSAGEBOX_SKIPALL          9013
+#define IDS_MESSAGEBOX_HELP             9014
+#define IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN 9015
+#define IDS_MESSAGEBOX_DONT_ASK_AGAIN   9016
 #define IDR_MARGIN_CURSOR               22900
 #define IDD_LANGUAGE_SELECT             30000
 #define IDD_PROPPAGE_COLORS             30002
 #define ID_VIEW_DIR_STATEPANE           32864
 #define ID_NO_EDIT_SCRIPTS              32865
 #define ID_RELOAD_PLUGINS               32866
+#define ID_MESSAGE_BOX_ARE_RESET        32867
 
 // Next default values for new objects
-//
+// 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        124
-#define _APS_NEXT_COMMAND_VALUE         32867
-#define _APS_NEXT_CONTROL_VALUE         1124
+#define _APS_NEXT_COMMAND_VALUE         32868
+#define _APS_NEXT_CONTROL_VALUE         1125
 #define _APS_NEXT_SYMED_VALUE           108
 #endif
 #endif
index ac133d2..cf3666c 100644 (file)
@@ -402,6 +402,10 @@ BEGIN
                     BS_AUTOCHECKBOX | WS_TABSTOP,7,27,98,10
     CONTROL         "&Close compare Statepane automatically",IDC_CMPPANE_AUTOCLOSE,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,37,206,10
+    PUSHBUTTON      "Reset",IDC_RESET_ALL_MESSAGE_BOXES,167,57,49,13,NOT 
+                    WS_TABSTOP
+    LTEXT           "Press button to reset all message boxes",IDC_STATIC,7,
+                    59,157,8
 END
 
 IDD_LANGUAGE_SELECT DIALOGEX 0, 0, 213, 111
@@ -790,6 +794,11 @@ BEGIN
                     BS_AUTORADIOBUTTON,85,62,82,10
 END
 
+IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+END
 
 #ifndef _MAC
 /////////////////////////////////////////////////////////////////////////////
@@ -1386,7 +1395,30 @@ BEGIN
     IDS_CANNOT_EXECUTE_FILE "Cannot execute %1"
 END
 
-// LANGUAGES SYNCHRO
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_OK       "&Ok"
+    IDS_MESSAGEBOX_CANCEL   "&Cancel"
+    IDS_MESSAGEBOX_ABORT    "&Abort"
+    IDS_MESSAGEBOX_RETRY    "&Retry"
+    IDS_MESSAGEBOX_IGNORE   "&Ignore"
+    IDS_MESSAGEBOX_IGNOREALL "Ignore &all"
+    IDS_MESSAGEBOX_YES      "&Yes"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_YES_TO_ALL "Yes to &all"
+    IDS_MESSAGEBOX_NO       "&No"
+    IDS_MESSAGEBOX_NO_TO_ALL "No to a&ll"
+    IDS_MESSAGEBOX_CONTINUE "&Continue"
+    IDS_MESSAGEBOX_SKIP     "&Skip"
+    IDS_MESSAGEBOX_SKIPALL  "Skip &all"
+    IDS_MESSAGEBOX_HELP     "&Help"
+    IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN "Don't display this &message again."
+    IDS_MESSAGEBOX_DONT_ASK_AGAIN "Don't ask this &question again."
+END
+
 STRINGTABLE DISCARDABLE
 BEGIN
     IDS_AFRIKAANS           "Afrikaans"
@@ -1647,6 +1679,7 @@ STRINGTABLE DISCARDABLE
 BEGIN
     ID_NO_EDIT_SCRIPTS      "< Empty >"
     ID_RELOAD_PLUGINS       "&Unload all plugins and reload them (for developpers)"
+    ID_MESSAGE_BOX_ARE_RESET "All message boxes are now displayed again."
 END
 
 // END STRINGS SYNCHRO
index c0d6a90..734d1c4 100644 (file)
 #define IDB_VIEW_SELECTFONT             278
 #define IDB_FILE_EXIT                   279
 #define IDB_HELP_CONTENTS               280
+#define IDD_MESSAGE_BOX                 281
 #define ID_SCRIPT_FIRST                 900
 #define ID_SCRIPT_LAST                  999
 #define IDC_LEFT_EDIT                   1000
 #define IDC_OPEN_CONTRIBUTORS           1121
 #define IDC_DIFF_DEFAULTS               1122
 #define IDC_MOVED_BLOCKS                1123
+#define IDC_RESET_ALL_MESSAGE_BOXES     1124
 #define IDS_NUM_REPLACED                8501
 #define IDS_EDIT_TEXT_NOT_FOUND         8502
 #define IDS_LINE_STATUS_INFO_EOL        8503
 #define IDC_EDIT_SCOPE_SELECTION        8613
 #define IDC_EDIT_SCOPE_WHOLE_FILE       8614
 #define IDC_EDIT_SCOPE_DONT_WRAP        8615
+#define IDS_MESSAGEBOX_OK               9001
+#define IDS_MESSAGEBOX_CANCEL           9002
+#define IDS_MESSAGEBOX_ABORT            9003
+#define IDS_MESSAGEBOX_RETRY            9004
+#define IDS_MESSAGEBOX_IGNORE           9005
+#define IDS_MESSAGEBOX_IGNOREALL        9006
+#define IDS_MESSAGEBOX_YES              9007
+#define IDS_MESSAGEBOX_YES_TO_ALL       9008
+#define IDS_MESSAGEBOX_NO               9009
+#define IDS_MESSAGEBOX_NO_TO_ALL        9010
+#define IDS_MESSAGEBOX_CONTINUE         9011
+#define IDS_MESSAGEBOX_SKIP             9012
+#define IDS_MESSAGEBOX_SKIPALL          9013
+#define IDS_MESSAGEBOX_HELP             9014
+#define IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN 9015
+#define IDS_MESSAGEBOX_DONT_ASK_AGAIN   9016
 #define IDR_MARGIN_CURSOR               22900
 #define IDD_LANGUAGE_SELECT             30000
 #define IDD_PROPPAGE_COLORS             30002
 #define ID_VIEW_DIR_STATEPANE           32864
 #define ID_NO_EDIT_SCRIPTS              32865
 #define ID_RELOAD_PLUGINS               32866
+#define ID_MESSAGE_BOX_ARE_RESET        32867
 
 // Next default values for new objects
-//
+// 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        124
-#define _APS_NEXT_COMMAND_VALUE         32867
-#define _APS_NEXT_CONTROL_VALUE         1124
+#define _APS_NEXT_COMMAND_VALUE         32868
+#define _APS_NEXT_CONTROL_VALUE         1125
 #define _APS_NEXT_SYMED_VALUE           108
 #endif
 #endif
index ef7dcab..b84e875 100644 (file)
@@ -439,6 +439,10 @@ BEGIN
                     BS_AUTOCHECKBOX | WS_TABSTOP,7,27,79,10
     CONTROL         "&Close compare Statepane automatically",IDC_CMPPANE_AUTOCLOSE,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,37,206,10
+    PUSHBUTTON      "Reset",IDC_RESET_ALL_MESSAGE_BOXES,167,57,49,13,NOT 
+                    WS_TABSTOP
+    LTEXT           "Press button to reset all message boxes",IDC_STATIC,7,
+                    59,157,8
 END
 
 IDD_LANGUAGE_SELECT DIALOG DISCARDABLE  0, 0, 213, 162
@@ -826,6 +830,11 @@ BEGIN
                     BS_AUTORADIOBUTTON,128,62,73,10
 END
 
+IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+END
 
 #ifndef _MAC
 /////////////////////////////////////////////////////////////////////////////
@@ -1422,6 +1431,30 @@ BEGIN
     IDS_CANNOT_EXECUTE_FILE "Cannot execute %1"
 END
 
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_OK       "&Ok"
+    IDS_MESSAGEBOX_CANCEL   "&Cancel"
+    IDS_MESSAGEBOX_ABORT    "&Abort"
+    IDS_MESSAGEBOX_RETRY    "&Retry"
+    IDS_MESSAGEBOX_IGNORE   "&Ignore"
+    IDS_MESSAGEBOX_IGNOREALL "Ignore &all"
+    IDS_MESSAGEBOX_YES      "&Yes"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_YES_TO_ALL "Yes to &all"
+    IDS_MESSAGEBOX_NO       "&No"
+    IDS_MESSAGEBOX_NO_TO_ALL "No to a&ll"
+    IDS_MESSAGEBOX_CONTINUE "&Continue"
+    IDS_MESSAGEBOX_SKIP     "&Skip"
+    IDS_MESSAGEBOX_SKIPALL  "Skip &all"
+    IDS_MESSAGEBOX_HELP     "&Help"
+    IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN "Don't display this &message again."
+    IDS_MESSAGEBOX_DONT_ASK_AGAIN "Don't ask this &question again."
+END
+
 STRINGTABLE DISCARDABLE
 BEGIN
     ID_L2R                  "Kopier den valgte teksten til den høyre filen\nKopier høyre (Alt Høyre)"
@@ -1517,6 +1550,7 @@ STRINGTABLE DISCARDABLE
 BEGIN
     ID_NO_EDIT_SCRIPTS      "< Empty >"
     ID_RELOAD_PLUGINS       "&Unload all plugins and reload them (for developpers)"
+    ID_MESSAGE_BOX_ARE_RESET "All message boxes are now displayed again."
 END
 
 // END STRINGS SYNCHRO
index c0d6a90..734d1c4 100644 (file)
 #define IDB_VIEW_SELECTFONT             278
 #define IDB_FILE_EXIT                   279
 #define IDB_HELP_CONTENTS               280
+#define IDD_MESSAGE_BOX                 281
 #define ID_SCRIPT_FIRST                 900
 #define ID_SCRIPT_LAST                  999
 #define IDC_LEFT_EDIT                   1000
 #define IDC_OPEN_CONTRIBUTORS           1121
 #define IDC_DIFF_DEFAULTS               1122
 #define IDC_MOVED_BLOCKS                1123
+#define IDC_RESET_ALL_MESSAGE_BOXES     1124
 #define IDS_NUM_REPLACED                8501
 #define IDS_EDIT_TEXT_NOT_FOUND         8502
 #define IDS_LINE_STATUS_INFO_EOL        8503
 #define IDC_EDIT_SCOPE_SELECTION        8613
 #define IDC_EDIT_SCOPE_WHOLE_FILE       8614
 #define IDC_EDIT_SCOPE_DONT_WRAP        8615
+#define IDS_MESSAGEBOX_OK               9001
+#define IDS_MESSAGEBOX_CANCEL           9002
+#define IDS_MESSAGEBOX_ABORT            9003
+#define IDS_MESSAGEBOX_RETRY            9004
+#define IDS_MESSAGEBOX_IGNORE           9005
+#define IDS_MESSAGEBOX_IGNOREALL        9006
+#define IDS_MESSAGEBOX_YES              9007
+#define IDS_MESSAGEBOX_YES_TO_ALL       9008
+#define IDS_MESSAGEBOX_NO               9009
+#define IDS_MESSAGEBOX_NO_TO_ALL        9010
+#define IDS_MESSAGEBOX_CONTINUE         9011
+#define IDS_MESSAGEBOX_SKIP             9012
+#define IDS_MESSAGEBOX_SKIPALL          9013
+#define IDS_MESSAGEBOX_HELP             9014
+#define IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN 9015
+#define IDS_MESSAGEBOX_DONT_ASK_AGAIN   9016
 #define IDR_MARGIN_CURSOR               22900
 #define IDD_LANGUAGE_SELECT             30000
 #define IDD_PROPPAGE_COLORS             30002
 #define ID_VIEW_DIR_STATEPANE           32864
 #define ID_NO_EDIT_SCRIPTS              32865
 #define ID_RELOAD_PLUGINS               32866
+#define ID_MESSAGE_BOX_ARE_RESET        32867
 
 // Next default values for new objects
-//
+// 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        124
-#define _APS_NEXT_COMMAND_VALUE         32867
-#define _APS_NEXT_CONTROL_VALUE         1124
+#define _APS_NEXT_COMMAND_VALUE         32868
+#define _APS_NEXT_CONTROL_VALUE         1125
 #define _APS_NEXT_SYMED_VALUE           108
 #endif
 #endif
index 81cd33a..c897ab0 100644 (file)
@@ -440,6 +440,10 @@ BEGIN
                     BS_AUTOCHECKBOX | WS_TABSTOP,7,27,100,10
     CONTROL         "&Close compare Statepane automatically",IDC_CMPPANE_AUTOCLOSE,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,37,206,10
+    PUSHBUTTON      "Reset",IDC_RESET_ALL_MESSAGE_BOXES,167,57,49,13,NOT 
+                    WS_TABSTOP
+    LTEXT           "Press button to reset all message boxes",IDC_STATIC,7,
+                    59,157,8
 END
 
 IDD_LANGUAGE_SELECT DIALOG DISCARDABLE  0, 0, 213, 111
@@ -827,6 +831,11 @@ BEGIN
                     BS_AUTORADIOBUTTON,79,62,78,10
 END
 
+IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+END
 
 #ifndef _MAC
 /////////////////////////////////////////////////////////////////////////////
@@ -1417,6 +1426,30 @@ BEGIN
     IDS_CANNOT_EXECUTE_FILE "Cannot execute %1"
 END
 
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_OK       "&Ok"
+    IDS_MESSAGEBOX_CANCEL   "&Cancel"
+    IDS_MESSAGEBOX_ABORT    "&Abort"
+    IDS_MESSAGEBOX_RETRY    "&Retry"
+    IDS_MESSAGEBOX_IGNORE   "&Ignore"
+    IDS_MESSAGEBOX_IGNOREALL "Ignore &all"
+    IDS_MESSAGEBOX_YES      "&Yes"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_YES_TO_ALL "Yes to &all"
+    IDS_MESSAGEBOX_NO       "&No"
+    IDS_MESSAGEBOX_NO_TO_ALL "No to a&ll"
+    IDS_MESSAGEBOX_CONTINUE "&Continue"
+    IDS_MESSAGEBOX_SKIP     "&Skip"
+    IDS_MESSAGEBOX_SKIPALL  "Skip &all"
+    IDS_MESSAGEBOX_HELP     "&Help"
+    IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN "Don't display this &message again."
+    IDS_MESSAGEBOX_DONT_ASK_AGAIN "Don't ask this &question again."
+END
+
 STRINGTABLE DISCARDABLE
 BEGIN
     ID_L2R                  "Kopiuj wybrany teks do prawego pliku\nKopiuj na prawo (Alt Right)"
@@ -1512,6 +1545,7 @@ STRINGTABLE DISCARDABLE
 BEGIN
     ID_NO_EDIT_SCRIPTS      "< Empty >"
     ID_RELOAD_PLUGINS       "&Unload all plugins and reload them (for developpers)"
+    ID_MESSAGE_BOX_ARE_RESET "All message boxes are now displayed again."
 END
 
 #endif    // French (France) resources
index c0d6a90..734d1c4 100644 (file)
 #define IDB_VIEW_SELECTFONT             278
 #define IDB_FILE_EXIT                   279
 #define IDB_HELP_CONTENTS               280
+#define IDD_MESSAGE_BOX                 281
 #define ID_SCRIPT_FIRST                 900
 #define ID_SCRIPT_LAST                  999
 #define IDC_LEFT_EDIT                   1000
 #define IDC_OPEN_CONTRIBUTORS           1121
 #define IDC_DIFF_DEFAULTS               1122
 #define IDC_MOVED_BLOCKS                1123
+#define IDC_RESET_ALL_MESSAGE_BOXES     1124
 #define IDS_NUM_REPLACED                8501
 #define IDS_EDIT_TEXT_NOT_FOUND         8502
 #define IDS_LINE_STATUS_INFO_EOL        8503
 #define IDC_EDIT_SCOPE_SELECTION        8613
 #define IDC_EDIT_SCOPE_WHOLE_FILE       8614
 #define IDC_EDIT_SCOPE_DONT_WRAP        8615
+#define IDS_MESSAGEBOX_OK               9001
+#define IDS_MESSAGEBOX_CANCEL           9002
+#define IDS_MESSAGEBOX_ABORT            9003
+#define IDS_MESSAGEBOX_RETRY            9004
+#define IDS_MESSAGEBOX_IGNORE           9005
+#define IDS_MESSAGEBOX_IGNOREALL        9006
+#define IDS_MESSAGEBOX_YES              9007
+#define IDS_MESSAGEBOX_YES_TO_ALL       9008
+#define IDS_MESSAGEBOX_NO               9009
+#define IDS_MESSAGEBOX_NO_TO_ALL        9010
+#define IDS_MESSAGEBOX_CONTINUE         9011
+#define IDS_MESSAGEBOX_SKIP             9012
+#define IDS_MESSAGEBOX_SKIPALL          9013
+#define IDS_MESSAGEBOX_HELP             9014
+#define IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN 9015
+#define IDS_MESSAGEBOX_DONT_ASK_AGAIN   9016
 #define IDR_MARGIN_CURSOR               22900
 #define IDD_LANGUAGE_SELECT             30000
 #define IDD_PROPPAGE_COLORS             30002
 #define ID_VIEW_DIR_STATEPANE           32864
 #define ID_NO_EDIT_SCRIPTS              32865
 #define ID_RELOAD_PLUGINS               32866
+#define ID_MESSAGE_BOX_ARE_RESET        32867
 
 // Next default values for new objects
-//
+// 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        124
-#define _APS_NEXT_COMMAND_VALUE         32867
-#define _APS_NEXT_CONTROL_VALUE         1124
+#define _APS_NEXT_COMMAND_VALUE         32868
+#define _APS_NEXT_CONTROL_VALUE         1125
 #define _APS_NEXT_SYMED_VALUE           108
 #endif
 #endif
index 4c03503..6f57e5f 100644 (file)
@@ -445,6 +445,10 @@ BEGIN
                     BS_AUTOCHECKBOX | WS_TABSTOP,7,27,206,10
     CONTROL         "&Close compare Statepane automatically",IDC_CMPPANE_AUTOCLOSE,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,37,206,10
+    PUSHBUTTON      "Reset",IDC_RESET_ALL_MESSAGE_BOXES,167,57,49,13,NOT 
+                    WS_TABSTOP
+    LTEXT           "Press button to reset all message boxes",IDC_STATIC,7,
+                    59,157,8
 END
 
 IDD_LANGUAGE_SELECT DIALOG DISCARDABLE  0, 0, 213, 111
@@ -836,6 +840,11 @@ BEGIN
                     BS_AUTORADIOBUTTON,102,62,59,10
 END
 
+IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+END
 
 #ifndef _MAC
 /////////////////////////////////////////////////////////////////////////////
@@ -1423,6 +1432,30 @@ BEGIN
     IDS_CANNOT_EXECUTE_FILE "Íåâîçìîæíî âûïîëíèòü %1"
 END
 
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_OK       "&Ok"
+    IDS_MESSAGEBOX_CANCEL   "&Cancel"
+    IDS_MESSAGEBOX_ABORT    "&Abort"
+    IDS_MESSAGEBOX_RETRY    "&Retry"
+    IDS_MESSAGEBOX_IGNORE   "&Ignore"
+    IDS_MESSAGEBOX_IGNOREALL "Ignore &all"
+    IDS_MESSAGEBOX_YES      "&Yes"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_YES_TO_ALL "Yes to &all"
+    IDS_MESSAGEBOX_NO       "&No"
+    IDS_MESSAGEBOX_NO_TO_ALL "No to a&ll"
+    IDS_MESSAGEBOX_CONTINUE "&Continue"
+    IDS_MESSAGEBOX_SKIP     "&Skip"
+    IDS_MESSAGEBOX_SKIPALL  "Skip &all"
+    IDS_MESSAGEBOX_HELP     "&Help"
+    IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN "Don't display this &message again."
+    IDS_MESSAGEBOX_DONT_ASK_AGAIN "Don't ask this &question again."
+END
+
 STRINGTABLE DISCARDABLE
 BEGIN
     ID_L2R                  "Ñêîïèðîâàòü âûáðàííûé òåêñò â ôàéë ñïðàâà\nCopy Right (Alt Right)"
@@ -1520,6 +1553,7 @@ STRINGTABLE DISCARDABLE
 BEGIN
     ID_NO_EDIT_SCRIPTS      "< Empty >"
     ID_RELOAD_PLUGINS       "&Unload all plugins and reload them (for developpers)"
+    ID_MESSAGE_BOX_ARE_RESET "All message boxes are now displayed again."
 END
 
 #endif    // Russian resources
index c0d6a90..734d1c4 100644 (file)
 #define IDB_VIEW_SELECTFONT             278
 #define IDB_FILE_EXIT                   279
 #define IDB_HELP_CONTENTS               280
+#define IDD_MESSAGE_BOX                 281
 #define ID_SCRIPT_FIRST                 900
 #define ID_SCRIPT_LAST                  999
 #define IDC_LEFT_EDIT                   1000
 #define IDC_OPEN_CONTRIBUTORS           1121
 #define IDC_DIFF_DEFAULTS               1122
 #define IDC_MOVED_BLOCKS                1123
+#define IDC_RESET_ALL_MESSAGE_BOXES     1124
 #define IDS_NUM_REPLACED                8501
 #define IDS_EDIT_TEXT_NOT_FOUND         8502
 #define IDS_LINE_STATUS_INFO_EOL        8503
 #define IDC_EDIT_SCOPE_SELECTION        8613
 #define IDC_EDIT_SCOPE_WHOLE_FILE       8614
 #define IDC_EDIT_SCOPE_DONT_WRAP        8615
+#define IDS_MESSAGEBOX_OK               9001
+#define IDS_MESSAGEBOX_CANCEL           9002
+#define IDS_MESSAGEBOX_ABORT            9003
+#define IDS_MESSAGEBOX_RETRY            9004
+#define IDS_MESSAGEBOX_IGNORE           9005
+#define IDS_MESSAGEBOX_IGNOREALL        9006
+#define IDS_MESSAGEBOX_YES              9007
+#define IDS_MESSAGEBOX_YES_TO_ALL       9008
+#define IDS_MESSAGEBOX_NO               9009
+#define IDS_MESSAGEBOX_NO_TO_ALL        9010
+#define IDS_MESSAGEBOX_CONTINUE         9011
+#define IDS_MESSAGEBOX_SKIP             9012
+#define IDS_MESSAGEBOX_SKIPALL          9013
+#define IDS_MESSAGEBOX_HELP             9014
+#define IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN 9015
+#define IDS_MESSAGEBOX_DONT_ASK_AGAIN   9016
 #define IDR_MARGIN_CURSOR               22900
 #define IDD_LANGUAGE_SELECT             30000
 #define IDD_PROPPAGE_COLORS             30002
 #define ID_VIEW_DIR_STATEPANE           32864
 #define ID_NO_EDIT_SCRIPTS              32865
 #define ID_RELOAD_PLUGINS               32866
+#define ID_MESSAGE_BOX_ARE_RESET        32867
 
 // Next default values for new objects
-//
+// 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        124
-#define _APS_NEXT_COMMAND_VALUE         32867
-#define _APS_NEXT_CONTROL_VALUE         1124
+#define _APS_NEXT_COMMAND_VALUE         32868
+#define _APS_NEXT_CONTROL_VALUE         1125
 #define _APS_NEXT_SYMED_VALUE           108
 #endif
 #endif
index 8a74eaf..c49c9e4 100644 (file)
@@ -439,6 +439,10 @@ BEGIN
                     BS_AUTOCHECKBOX | WS_TABSTOP,7,27,206,10
     CONTROL         "&Close compare Statepane automatically",IDC_CMPPANE_AUTOCLOSE,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,37,206,10
+    PUSHBUTTON      "Reset",IDC_RESET_ALL_MESSAGE_BOXES,167,57,49,13,NOT 
+                    WS_TABSTOP
+    LTEXT           "Press button to reset all message boxes",IDC_STATIC,7,
+                    59,157,8
 END
 
 IDD_LANGUAGE_SELECT DIALOG DISCARDABLE  0, 0, 213, 111
@@ -827,6 +831,11 @@ BEGIN
                     BS_AUTORADIOBUTTON,120,62,69,10
 END
 
+IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+END
 
 #ifndef _MAC
 /////////////////////////////////////////////////////////////////////////////
@@ -1422,6 +1431,30 @@ BEGIN
     IDS_CANNOT_EXECUTE_FILE "Cannot execute %1"
 END
 
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_OK       "&Ok"
+    IDS_MESSAGEBOX_CANCEL   "&Cancel"
+    IDS_MESSAGEBOX_ABORT    "&Abort"
+    IDS_MESSAGEBOX_RETRY    "&Retry"
+    IDS_MESSAGEBOX_IGNORE   "&Ignore"
+    IDS_MESSAGEBOX_IGNOREALL "Ignore &all"
+    IDS_MESSAGEBOX_YES      "&Yes"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_YES_TO_ALL "Yes to &all"
+    IDS_MESSAGEBOX_NO       "&No"
+    IDS_MESSAGEBOX_NO_TO_ALL "No to a&ll"
+    IDS_MESSAGEBOX_CONTINUE "&Continue"
+    IDS_MESSAGEBOX_SKIP     "&Skip"
+    IDS_MESSAGEBOX_SKIPALL  "Skip &all"
+    IDS_MESSAGEBOX_HELP     "&Help"
+    IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN "Don't display this &message again."
+    IDS_MESSAGEBOX_DONT_ASK_AGAIN "Don't ask this &question again."
+END
+
 STRINGTABLE DISCARDABLE
 BEGIN
     ID_L2R                  "Zkopírova\9d vybraný text do súboru vpravo\nKopíruj vpravo (->)"
@@ -1518,6 +1551,7 @@ STRINGTABLE DISCARDABLE
 BEGIN
     ID_NO_EDIT_SCRIPTS      "< Empty >"
     ID_RELOAD_PLUGINS       "&Unload all plugins and reload them (for developpers)"
+    ID_MESSAGE_BOX_ARE_RESET "All message boxes are now displayed again."
 END
 
 // END STRINGS SYNCHRO
index c0d6a90..734d1c4 100644 (file)
 #define IDB_VIEW_SELECTFONT             278
 #define IDB_FILE_EXIT                   279
 #define IDB_HELP_CONTENTS               280
+#define IDD_MESSAGE_BOX                 281
 #define ID_SCRIPT_FIRST                 900
 #define ID_SCRIPT_LAST                  999
 #define IDC_LEFT_EDIT                   1000
 #define IDC_OPEN_CONTRIBUTORS           1121
 #define IDC_DIFF_DEFAULTS               1122
 #define IDC_MOVED_BLOCKS                1123
+#define IDC_RESET_ALL_MESSAGE_BOXES     1124
 #define IDS_NUM_REPLACED                8501
 #define IDS_EDIT_TEXT_NOT_FOUND         8502
 #define IDS_LINE_STATUS_INFO_EOL        8503
 #define IDC_EDIT_SCOPE_SELECTION        8613
 #define IDC_EDIT_SCOPE_WHOLE_FILE       8614
 #define IDC_EDIT_SCOPE_DONT_WRAP        8615
+#define IDS_MESSAGEBOX_OK               9001
+#define IDS_MESSAGEBOX_CANCEL           9002
+#define IDS_MESSAGEBOX_ABORT            9003
+#define IDS_MESSAGEBOX_RETRY            9004
+#define IDS_MESSAGEBOX_IGNORE           9005
+#define IDS_MESSAGEBOX_IGNOREALL        9006
+#define IDS_MESSAGEBOX_YES              9007
+#define IDS_MESSAGEBOX_YES_TO_ALL       9008
+#define IDS_MESSAGEBOX_NO               9009
+#define IDS_MESSAGEBOX_NO_TO_ALL        9010
+#define IDS_MESSAGEBOX_CONTINUE         9011
+#define IDS_MESSAGEBOX_SKIP             9012
+#define IDS_MESSAGEBOX_SKIPALL          9013
+#define IDS_MESSAGEBOX_HELP             9014
+#define IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN 9015
+#define IDS_MESSAGEBOX_DONT_ASK_AGAIN   9016
 #define IDR_MARGIN_CURSOR               22900
 #define IDD_LANGUAGE_SELECT             30000
 #define IDD_PROPPAGE_COLORS             30002
 #define ID_VIEW_DIR_STATEPANE           32864
 #define ID_NO_EDIT_SCRIPTS              32865
 #define ID_RELOAD_PLUGINS               32866
+#define ID_MESSAGE_BOX_ARE_RESET        32867
 
 // Next default values for new objects
-//
+// 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        124
-#define _APS_NEXT_COMMAND_VALUE         32867
-#define _APS_NEXT_CONTROL_VALUE         1124
+#define _APS_NEXT_COMMAND_VALUE         32868
+#define _APS_NEXT_CONTROL_VALUE         1125
 #define _APS_NEXT_SYMED_VALUE           108
 #endif
 #endif
index e5ddbda..482f93b 100644 (file)
@@ -438,6 +438,10 @@ BEGIN
                     BS_AUTOCHECKBOX | WS_TABSTOP,7,27,206,10
     CONTROL         "&Close compare Statepane automatically",IDC_CMPPANE_AUTOCLOSE,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,37,206,10
+    PUSHBUTTON      "Reset",IDC_RESET_ALL_MESSAGE_BOXES,167,57,49,13,NOT 
+                    WS_TABSTOP
+    LTEXT           "Press button to reset all message boxes",IDC_STATIC,7,
+                    59,157,8
 END
 
 IDD_LANGUAGE_SELECT DIALOG DISCARDABLE  0, 0, 213, 111
@@ -827,6 +831,11 @@ BEGIN
                     BS_AUTORADIOBUTTON,105,62,59,10
 END
 
+IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+END
 
 #ifndef _MAC
 /////////////////////////////////////////////////////////////////////////////
@@ -1423,6 +1432,30 @@ BEGIN
     IDS_CANNOT_EXECUTE_FILE "Cannot execute %1"
 END
 
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_OK       "&Ok"
+    IDS_MESSAGEBOX_CANCEL   "&Cancel"
+    IDS_MESSAGEBOX_ABORT    "&Abort"
+    IDS_MESSAGEBOX_RETRY    "&Retry"
+    IDS_MESSAGEBOX_IGNORE   "&Ignore"
+    IDS_MESSAGEBOX_IGNOREALL "Ignore &all"
+    IDS_MESSAGEBOX_YES      "&Yes"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_YES_TO_ALL "Yes to &all"
+    IDS_MESSAGEBOX_NO       "&No"
+    IDS_MESSAGEBOX_NO_TO_ALL "No to a&ll"
+    IDS_MESSAGEBOX_CONTINUE "&Continue"
+    IDS_MESSAGEBOX_SKIP     "&Skip"
+    IDS_MESSAGEBOX_SKIPALL  "Skip &all"
+    IDS_MESSAGEBOX_HELP     "&Help"
+    IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN "Don't display this &message again."
+    IDS_MESSAGEBOX_DONT_ASK_AGAIN "Don't ask this &question again."
+END
+
 STRINGTABLE DISCARDABLE
 BEGIN
     ID_L2R                  "Copiar el texto marcado al lado derecho\nCopiar Derecha (Flecha Derecha)"
@@ -1520,6 +1553,7 @@ STRINGTABLE DISCARDABLE
 BEGIN
     ID_NO_EDIT_SCRIPTS      "< Empty >"
     ID_RELOAD_PLUGINS       "&Unload all plugins and reload them (for developpers)"
+    ID_MESSAGE_BOX_ARE_RESET "All message boxes are now displayed again."
 END
 
 // END STRINGS SYNCHRO
index c0d6a90..734d1c4 100644 (file)
 #define IDB_VIEW_SELECTFONT             278
 #define IDB_FILE_EXIT                   279
 #define IDB_HELP_CONTENTS               280
+#define IDD_MESSAGE_BOX                 281
 #define ID_SCRIPT_FIRST                 900
 #define ID_SCRIPT_LAST                  999
 #define IDC_LEFT_EDIT                   1000
 #define IDC_OPEN_CONTRIBUTORS           1121
 #define IDC_DIFF_DEFAULTS               1122
 #define IDC_MOVED_BLOCKS                1123
+#define IDC_RESET_ALL_MESSAGE_BOXES     1124
 #define IDS_NUM_REPLACED                8501
 #define IDS_EDIT_TEXT_NOT_FOUND         8502
 #define IDS_LINE_STATUS_INFO_EOL        8503
 #define IDC_EDIT_SCOPE_SELECTION        8613
 #define IDC_EDIT_SCOPE_WHOLE_FILE       8614
 #define IDC_EDIT_SCOPE_DONT_WRAP        8615
+#define IDS_MESSAGEBOX_OK               9001
+#define IDS_MESSAGEBOX_CANCEL           9002
+#define IDS_MESSAGEBOX_ABORT            9003
+#define IDS_MESSAGEBOX_RETRY            9004
+#define IDS_MESSAGEBOX_IGNORE           9005
+#define IDS_MESSAGEBOX_IGNOREALL        9006
+#define IDS_MESSAGEBOX_YES              9007
+#define IDS_MESSAGEBOX_YES_TO_ALL       9008
+#define IDS_MESSAGEBOX_NO               9009
+#define IDS_MESSAGEBOX_NO_TO_ALL        9010
+#define IDS_MESSAGEBOX_CONTINUE         9011
+#define IDS_MESSAGEBOX_SKIP             9012
+#define IDS_MESSAGEBOX_SKIPALL          9013
+#define IDS_MESSAGEBOX_HELP             9014
+#define IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN 9015
+#define IDS_MESSAGEBOX_DONT_ASK_AGAIN   9016
 #define IDR_MARGIN_CURSOR               22900
 #define IDD_LANGUAGE_SELECT             30000
 #define IDD_PROPPAGE_COLORS             30002
 #define ID_VIEW_DIR_STATEPANE           32864
 #define ID_NO_EDIT_SCRIPTS              32865
 #define ID_RELOAD_PLUGINS               32866
+#define ID_MESSAGE_BOX_ARE_RESET        32867
 
 // Next default values for new objects
-//
+// 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        124
-#define _APS_NEXT_COMMAND_VALUE         32867
-#define _APS_NEXT_CONTROL_VALUE         1124
+#define _APS_NEXT_COMMAND_VALUE         32868
+#define _APS_NEXT_CONTROL_VALUE         1125
 #define _APS_NEXT_SYMED_VALUE           108
 #endif
 #endif
index 27ea4e3..7c95b5f 100644 (file)
@@ -438,6 +438,10 @@ BEGIN
                     BS_AUTOCHECKBOX | WS_TABSTOP,7,27,206,10
     CONTROL         "&Close compare Statepane automatically",IDC_CMPPANE_AUTOCLOSE,
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,37,206,10
+    PUSHBUTTON      "Reset",IDC_RESET_ALL_MESSAGE_BOXES,167,57,49,13,NOT 
+                    WS_TABSTOP
+    LTEXT           "Press button to reset all message boxes",IDC_STATIC,7,
+                    59,157,8
 END
 
 IDD_LANGUAGE_SELECT DIALOG DISCARDABLE  0, 0, 213, 162
@@ -826,6 +830,11 @@ BEGIN
                     BS_AUTORADIOBUTTON,138,62,71,10
 END
 
+IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+END
 
 #ifndef _MAC
 /////////////////////////////////////////////////////////////////////////////
@@ -1416,7 +1425,31 @@ BEGIN
     IDS_CANNOT_EXECUTE_FILE "Cannot execute %1"
 END
 
-STRINGTABLE DISCARDABLE 
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_OK       "&Ok"
+    IDS_MESSAGEBOX_CANCEL   "&Cancel"
+    IDS_MESSAGEBOX_ABORT    "&Abort"
+    IDS_MESSAGEBOX_RETRY    "&Retry"
+    IDS_MESSAGEBOX_IGNORE   "&Ignore"
+    IDS_MESSAGEBOX_IGNOREALL "Ignore &all"
+    IDS_MESSAGEBOX_YES      "&Yes"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_YES_TO_ALL "Yes to &all"
+    IDS_MESSAGEBOX_NO       "&No"
+    IDS_MESSAGEBOX_NO_TO_ALL "No to a&ll"
+    IDS_MESSAGEBOX_CONTINUE "&Continue"
+    IDS_MESSAGEBOX_SKIP     "&Skip"
+    IDS_MESSAGEBOX_SKIPALL  "Skip &all"
+    IDS_MESSAGEBOX_HELP     "&Help"
+    IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN "Don't display this &message again."
+    IDS_MESSAGEBOX_DONT_ASK_AGAIN "Don't ask this &question again."
+END
+
+STRINGTABLE DISCARDABLE
 BEGIN
     ID_L2R                  "Kopiera den valda texten till den högra filen\nKopiera höger (Alt Höger)"
     ID_R2L                  "Kopiera den valda texten till den vänstra filen\nKopiera vänster (Alt Vänster)"
@@ -1512,6 +1545,7 @@ STRINGTABLE DISCARDABLE
 BEGIN
     ID_NO_EDIT_SCRIPTS      "< Empty >"
     ID_RELOAD_PLUGINS       "&Unload all plugins and reload them (for developpers)"
+    ID_MESSAGE_BOX_ARE_RESET "All message boxes are now displayed again."
 END
 
 #endif    // Swedish resources
index c0d6a90..734d1c4 100644 (file)
 #define IDB_VIEW_SELECTFONT             278
 #define IDB_FILE_EXIT                   279
 #define IDB_HELP_CONTENTS               280
+#define IDD_MESSAGE_BOX                 281
 #define ID_SCRIPT_FIRST                 900
 #define ID_SCRIPT_LAST                  999
 #define IDC_LEFT_EDIT                   1000
 #define IDC_OPEN_CONTRIBUTORS           1121
 #define IDC_DIFF_DEFAULTS               1122
 #define IDC_MOVED_BLOCKS                1123
+#define IDC_RESET_ALL_MESSAGE_BOXES     1124
 #define IDS_NUM_REPLACED                8501
 #define IDS_EDIT_TEXT_NOT_FOUND         8502
 #define IDS_LINE_STATUS_INFO_EOL        8503
 #define IDC_EDIT_SCOPE_SELECTION        8613
 #define IDC_EDIT_SCOPE_WHOLE_FILE       8614
 #define IDC_EDIT_SCOPE_DONT_WRAP        8615
+#define IDS_MESSAGEBOX_OK               9001
+#define IDS_MESSAGEBOX_CANCEL           9002
+#define IDS_MESSAGEBOX_ABORT            9003
+#define IDS_MESSAGEBOX_RETRY            9004
+#define IDS_MESSAGEBOX_IGNORE           9005
+#define IDS_MESSAGEBOX_IGNOREALL        9006
+#define IDS_MESSAGEBOX_YES              9007
+#define IDS_MESSAGEBOX_YES_TO_ALL       9008
+#define IDS_MESSAGEBOX_NO               9009
+#define IDS_MESSAGEBOX_NO_TO_ALL        9010
+#define IDS_MESSAGEBOX_CONTINUE         9011
+#define IDS_MESSAGEBOX_SKIP             9012
+#define IDS_MESSAGEBOX_SKIPALL          9013
+#define IDS_MESSAGEBOX_HELP             9014
+#define IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN 9015
+#define IDS_MESSAGEBOX_DONT_ASK_AGAIN   9016
 #define IDR_MARGIN_CURSOR               22900
 #define IDD_LANGUAGE_SELECT             30000
 #define IDD_PROPPAGE_COLORS             30002
 #define ID_VIEW_DIR_STATEPANE           32864
 #define ID_NO_EDIT_SCRIPTS              32865
 #define ID_RELOAD_PLUGINS               32866
+#define ID_MESSAGE_BOX_ARE_RESET        32867
 
 // Next default values for new objects
-//
+// 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        124
-#define _APS_NEXT_COMMAND_VALUE         32867
-#define _APS_NEXT_CONTROL_VALUE         1124
+#define _APS_NEXT_COMMAND_VALUE         32868
+#define _APS_NEXT_CONTROL_VALUE         1125
 #define _APS_NEXT_SYMED_VALUE           108
 #endif
 #endif
index e682eda..23a89b4 100644 (file)
@@ -18,7 +18,7 @@
 //    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 //
 /////////////////////////////////////////////////////////////////////////////
-/**
+/** 
  * @file  MainFrm.cpp
  *
  * @brief Implementation of the CMainFrame class
@@ -77,7 +77,7 @@ static char THIS_FILE[] = __FILE__;
 extern CLogFile gLog;
 CMainFrame *mf = NULL;
 
-// add a
+// add a 
 static void add_regexp PARAMS((struct regexp_list **, char const*));
 /////////////////////////////////////////////////////////////////////////////
 // CMainFrame
@@ -283,11 +283,11 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
                return -1;
 
        mf = this;
-
+       
        // build the initial reg expression list
        RebuildRegExpList();
        GetFontProperties();
-
+       
        if (!m_wndToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_GRIPPER|CBRS_TOP|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC) ||
                !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
        {
@@ -302,7 +302,7 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
                TRACE0("Failed to create status bar\n");
                return -1;      // fail to create
        }
-       m_wndStatusBar.SetPaneInfo(1, ID_DIFFNUM, 0, 150);
+       m_wndStatusBar.SetPaneInfo(1, ID_DIFFNUM, 0, 150); 
 
        // TODO: Remove this if you don't want tool tips or a resizeable toolbar
        m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
@@ -362,7 +362,7 @@ HMENU CMainFrame::GetScriptsSubmenu(HMENU mainMenu)
 HMENU CMainFrame::NewDefaultMenu()
 {
        m_default.LoadMenu(IDR_MAINFRAME);
-
+       
        // Load bitmaps to menuitems
        m_default.ModifyODMenu(NULL, ID_EDIT_COPY, IDB_EDIT_COPY);
        m_default.ModifyODMenu(NULL, ID_EDIT_CUT, IDB_EDIT_CUT);
@@ -420,8 +420,8 @@ void CMainFrame::OnMeasureItem(int nIDCtl,
 /**
  * @brief This handler ensures that keyboard shortcuts work.
  */
-LRESULT CMainFrame::OnMenuChar(UINT nChar, UINT nFlags,
-       CMenu* pMenu)
+LRESULT CMainFrame::OnMenuChar(UINT nChar, UINT nFlags, 
+       CMenu* pMenu) 
 {
        LRESULT lresult;
        if(m_default.IsMenu(pMenu))
@@ -434,10 +434,10 @@ LRESULT CMainFrame::OnMenuChar(UINT nChar, UINT nFlags,
 /**
  * @brief This handler updates the menus from time to time.
  */
-void CMainFrame::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu)
+void CMainFrame::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu) 
 {
        CMDIFrameWnd::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu);
-
+       
        if (!bSysMenu)
        {
                if (BCMenu::IsMenu(pPopupMenu))
@@ -456,7 +456,7 @@ BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
 /////////////////////////////////////////////////////////////////////////////
 // CMainFrame message handlers
 
-void CMainFrame::OnFileOpen()
+void CMainFrame::OnFileOpen() 
 {
        DoFileOpen();
 }
@@ -505,7 +505,7 @@ void CMainFrame::RedisplayAllDirDocs()
 /**
  * @brief Show/Hide different files/directories
  */
-void CMainFrame::OnOptionsShowDifferent()
+void CMainFrame::OnOptionsShowDifferent() 
 {
        varprop::VariantValue val;
        val = m_options.Get(OPT_SHOW_DIFFERENT);
@@ -517,7 +517,7 @@ void CMainFrame::OnOptionsShowDifferent()
 /**
  * @brief Show/Hide identical files/directories
  */
-void CMainFrame::OnOptionsShowIdentical()
+void CMainFrame::OnOptionsShowIdentical() 
 {
        varprop::VariantValue val;
        val = m_options.Get(OPT_SHOW_IDENTICAL);
@@ -529,7 +529,7 @@ void CMainFrame::OnOptionsShowIdentical()
 /**
  * @brief Show/Hide left-only files/directories
  */
-void CMainFrame::OnOptionsShowUniqueLeft()
+void CMainFrame::OnOptionsShowUniqueLeft() 
 {
        varprop::VariantValue val;
        val = m_options.Get(OPT_SHOW_UNIQUE_LEFT);
@@ -541,7 +541,7 @@ void CMainFrame::OnOptionsShowUniqueLeft()
 /**
  * @brief Show/Hide right-only files/directories
  */
-void CMainFrame::OnOptionsShowUniqueRight()
+void CMainFrame::OnOptionsShowUniqueRight() 
 {
        varprop::VariantValue val;
        val = m_options.Get(OPT_SHOW_UNIQUE_RIGHT);
@@ -574,27 +574,27 @@ void CMainFrame::OnOptionsShowSkipped()
        RedisplayAllDirDocs();
 }
 
-void CMainFrame::OnUpdateOptionsShowdifferent(CCmdUI* pCmdUI)
+void CMainFrame::OnUpdateOptionsShowdifferent(CCmdUI* pCmdUI) 
 {
        pCmdUI->SetCheck(m_options.GetInt(OPT_SHOW_DIFFERENT));
 }
 
-void CMainFrame::OnUpdateOptionsShowidentical(CCmdUI* pCmdUI)
+void CMainFrame::OnUpdateOptionsShowidentical(CCmdUI* pCmdUI) 
 {
        pCmdUI->SetCheck(m_options.GetInt(OPT_SHOW_IDENTICAL));
 }
 
-void CMainFrame::OnUpdateOptionsShowuniqueleft(CCmdUI* pCmdUI)
+void CMainFrame::OnUpdateOptionsShowuniqueleft(CCmdUI* pCmdUI) 
 {
        pCmdUI->SetCheck(m_options.GetInt(OPT_SHOW_UNIQUE_LEFT));
 }
 
-void CMainFrame::OnUpdateOptionsShowuniqueright(CCmdUI* pCmdUI)
+void CMainFrame::OnUpdateOptionsShowuniqueright(CCmdUI* pCmdUI) 
 {
        pCmdUI->SetCheck(m_options.GetInt(OPT_SHOW_UNIQUE_RIGHT));
 }
 
-void CMainFrame::OnUpdateOptionsShowBinaries(CCmdUI* pCmdUI)
+void CMainFrame::OnUpdateOptionsShowBinaries(CCmdUI* pCmdUI) 
 {
        pCmdUI->SetCheck(m_options.GetInt(OPT_SHOW_BINARIES));
 }
@@ -607,7 +607,7 @@ void CMainFrame::OnUpdateOptionsShowSkipped(CCmdUI* pCmdUI)
 /**
  * @brief Show/Hide backup files
  */
-void CMainFrame::OnHideBackupFiles()
+void CMainFrame::OnHideBackupFiles() 
 {
        varprop::VariantValue val;
        val = m_options.Get(OPT_HIDE_BACKUP);
@@ -616,7 +616,7 @@ void CMainFrame::OnHideBackupFiles()
        RedisplayAllDirDocs();
 }
 
-void CMainFrame::OnUpdateHideBackupFiles(CCmdUI* pCmdUI)
+void CMainFrame::OnUpdateHideBackupFiles(CCmdUI* pCmdUI) 
 {
        pCmdUI->SetCheck(m_options.GetInt(OPT_HIDE_BACKUP));
 }
@@ -624,11 +624,11 @@ void CMainFrame::OnUpdateHideBackupFiles(CCmdUI* pCmdUI)
 /**
  * @brief Show GNU licence information in notepad (local file) or in Web Browser
  */
-void CMainFrame::OnHelpGnulicense()
+void CMainFrame::OnHelpGnulicense() 
 {
        CString spath = GetModulePath() + _T("\\Copying");
        CString url = _T("http://www.gnu.org/copyleft/gpl.html");
-
+       
        CFileStatus status;
        if (CFile::GetStatus(spath, status))
                ShellExecute(m_hWnd, _T("open"), _T("notepad.exe"), spath, NULL, SW_SHOWNORMAL);
@@ -642,7 +642,7 @@ void CMainFrame::OnHelpGnulicense()
  * Reads words from a file deliminated by charset with one slight twist.
  * If the next char in the file to be read is one of the characters inside the delimiter,
  * then the word returned will be a word consisting only of delimiters.
- *
+ * 
  * @note pfile is not incremented past the word returned
  */
 BOOL CMainFrame::GetWordFile(HANDLE pfile, TCHAR * buffer, TCHAR * charset)
@@ -657,7 +657,7 @@ BOOL CMainFrame::GetWordFile(HANDLE pfile, TCHAR * buffer, TCHAR * charset)
        BOOL delimMatch = FALSE;
 
        ZeroMemory(&cbuffer, sizeof(cbuffer));
-
+       
        while (numread == sizeof(ctemp) && pfile != INVALID_HANDLE_VALUE && buffercount < sizeof(cbuffer))
        {
                if (ReadFile(pfile, (LPVOID)&ctemp, sizeof(ctemp), &numread, NULL) == TRUE)
@@ -693,7 +693,7 @@ BOOL CMainFrame::GetWordFile(HANDLE pfile, TCHAR * buffer, TCHAR * charset)
                                else if (delimword == FALSE)
                                {
                                        for (pcharset = charset;*pcharset;pcharset++)
-                                       {
+                                       {                                               
                                                //if next char is equal to a delimiter or we want delimwords stop the adding
                                                if (ctemp == *pcharset)
                                                {
@@ -713,7 +713,7 @@ BOOL CMainFrame::GetWordFile(HANDLE pfile, TCHAR * buffer, TCHAR * charset)
                                {
                                        delimMatch = FALSE;
                                        for (pcharset = charset;*pcharset;pcharset++)
-                                       {
+                                       {                                               
                                                //if next char is equal to a delimiter or we want delimwords stop the adding
                                                if (ctemp == *pcharset)
                                                {
@@ -764,7 +764,7 @@ BOOL CMainFrame::CheckSavePath(CString& strSavePath)
        CString s;
 
        bFileRO = files_isFileReadOnly(strSavePath, &bFileExists);
-
+       
        if (bFileExists && bFileRO)
        {
                // Version control system used?
@@ -774,11 +774,11 @@ BOOL CMainFrame::CheckSavePath(CString& strSavePath)
                {
                        CString title;
                        VERIFY(title.LoadString(IDS_SAVE_AS_TITLE));
-
+                       
                        // Prompt for user choice
                        AfxFormatString1(s, IDS_SAVEREADONLY_FMT, strSavePath);
                        userChoice = AfxMessageBox(s, MB_YESNOCANCEL |
-                                       MB_ICONQUESTION | MB_DEFBUTTON2);
+                                       MB_ICONQUESTION | MB_DEFBUTTON2 | MB_DONT_ASK_AGAIN, IDS_SAVEREADONLY_FMT);
                        switch (userChoice)
                        {
                        // Overwrite read-only file
@@ -788,7 +788,7 @@ BOOL CMainFrame::CheckSavePath(CString& strSavePath)
                                status.m_attribute &= ~CFile::Attribute::readOnly;
                                CFile::SetStatus(strSavePath, status);
                                break;
-
+                       
                        // Save to new filename
                        case IDNO:
                                if (SelectFile(s, strSavePath, title, NULL, FALSE))
@@ -796,7 +796,7 @@ BOOL CMainFrame::CheckSavePath(CString& strSavePath)
                                else
                                        bRetVal = FALSE;
                                break;
-
+                       
                        // Cancel saving
                        case IDCANCEL:
                                bRetVal = FALSE;
@@ -910,7 +910,7 @@ BOOL CMainFrame::SaveToVersionControl(CString& strSavePath)
                        m_strVssUser = dlg.m_strUser;
                        m_strVssPassword = dlg.m_strPassword;
                        m_strVssDatabase = dlg.m_strSelectedDatabase;
-                       m_bVCProjSync = dlg.m_bVCProjSync;
+                       m_bVCProjSync = dlg.m_bVCProjSync;                                      
 
                        theApp.WriteProfileString(_T("Settings"), _T("VssDatabase"), m_strVssDatabase);
                        theApp.WriteProfileString(_T("Settings"), _T("VssProject"), m_strVssProjectBase);
@@ -922,7 +922,7 @@ BOOL CMainFrame::SaveToVersionControl(CString& strSavePath)
                        IVSSItem                m_vssi;
 
                        COleException *eOleException = new COleException;
-
+                               
                        // BSP - Create the COM interface pointer to VSS
                        if (FAILED(vssdb.CreateDispatch(_T("SourceSafe"), eOleException)))
                        {
@@ -938,10 +938,10 @@ BOOL CMainFrame::SaveToVersionControl(CString& strSavePath)
                        {
                                CString iniPath = m_strVssDatabase + _T("\\srcsafe.ini");
                                // BSP - Open the specific VSS data file  using info from VSS dialog box
-                               vssdb.Open(iniPath, m_strVssUser, m_strVssPassword);
+                               vssdb.Open(iniPath, m_strVssUser, m_strVssPassword);                                                                                                            
                                bOpened = TRUE;
                        }
-
+                       
                        if (bOpened == FALSE)
                        {
                                // BSP - Open the specific VSS data file  using info from VSS dialog box
@@ -978,7 +978,7 @@ BOOL CMainFrame::SaveToVersionControl(CString& strSavePath)
                                if (buffer2[k] == '/')
                                        buffer2[k] = '\\';
                        }
-
+                       
                        //take out last '\\'
                        int strlb2 = _tcslen(buffer2);
                        if (buffer2[strlb2-1] == '\\')
@@ -989,7 +989,7 @@ BOOL CMainFrame::SaveToVersionControl(CString& strSavePath)
                        if (pdest)
                        {
                                int index  = (int)(pdest - buffer1 + 1);
-
+                       
                                _tcscpy(buffer, buffer1);
                                TCHAR * fp = &buffer[int(index + _tcslen(pbuf2))];
                                sname = fp;
@@ -1013,7 +1013,8 @@ BOOL CMainFrame::SaveToVersionControl(CString& strSavePath)
                        if (strLocalSpec.CompareNoCase(strSavePath))
                        {
                                // BSP - if the directories are different, let the user confirm the CheckOut
-                               int iRes = AfxMessageBox(IDS_VSSFOLDER_AND_FILE_NOMATCH, MB_YESNO);
+                               int iRes = AfxMessageBox(IDS_VSSFOLDER_AND_FILE_NOMATCH, 
+                                          MB_YESNO | MB_DONT_ASK_AGAIN, IDS_VSSFOLDER_AND_FILE_NOMATCH);
 
                                if (iRes != IDYES)
                                {
@@ -1052,7 +1053,7 @@ BOOL CMainFrame::SaveToVersionControl(CString& strSavePath)
                                WaitForSingleObject(hVss, INFINITE);
                                GetExitCodeProcess(hVss, &code);
                                CloseHandle(hVss);
-
+                               
                                if (code != 0)
                                {
                                        AfxMessageBox(IDS_VSSERROR, MB_ICONSTOP);
@@ -1079,7 +1080,7 @@ void CMainFrame::SetEOLMixed(BOOL bAllow)
        ApplyViewWhitespace();
 }
 
-void CMainFrame::OnOptions()
+void CMainFrame::OnOptions() 
 {
        CString sExtEditor;
        CString selectedFilter;
@@ -1094,7 +1095,7 @@ void CMainFrame::OnOptions()
        CPropRegistry regpage;
     CPropCompare compage(&m_options);
        CPropEditor editor;
-
+   
        sht.AddPage(&gen);
        sht.AddPage(&compage);
        sht.AddPage(&editor);
@@ -1102,7 +1103,7 @@ void CMainFrame::OnOptions()
        sht.AddPage(&vss);
        sht.AddPage(&colors);
        sht.AddPage(&regpage);
-
+       
        vss.m_nVerSys = m_nVerSys;
        vss.m_strPath = m_strVssPath;
        gen.m_bBackup = m_options.GetInt(OPT_CREATE_BACKUPS);
@@ -1125,12 +1126,12 @@ void CMainFrame::OnOptions()
        editor.m_bAutomaticRescan = m_options.GetInt(OPT_AUTOMATIC_RESCAN);
        editor.m_bHiliteSyntax = m_options.GetInt(OPT_SYNTAX_HIGHLIGHT);
        editor.m_bAllowMixedEol = m_options.GetInt(OPT_ALLOW_MIXED_EOL);
-
+       
        if (sht.DoModal()==IDOK)
        {
                m_nVerSys = vss.m_nVerSys;
                m_strVssPath = vss.m_strPath;
-
+               
                m_options.SaveOption(OPT_CREATE_BACKUPS, gen.m_bBackup);
                m_options.SaveOption(OPT_SCROLL_TO_FIRST, gen.m_bScroll);
                m_options.SaveOption(OPT_DISABLE_SPLASH, gen.m_bDisableSplash);
@@ -1150,7 +1151,7 @@ void CMainFrame::OnOptions()
                m_options.SaveOption(OPT_CMP_IGNORE_CASE, compage.m_bIgnoreCase);
         m_options.SaveOption(OPT_CMP_METHOD, compage.m_compareMethod);
                m_options.SaveOption(OPT_CMP_MOVED_BLOCKS, compage.m_bMovedBlocks);
-
+               
                m_nCompMethod = compage.m_compareMethod;
 
                m_options.SaveOption(OPT_TAB_SIZE, editor.m_nTabSize);
@@ -1177,7 +1178,7 @@ void CMainFrame::OnOptions()
                m_options.SaveOption(OPT_CLR_SELECTED_DIFF_TEXT, colors.m_clrSelDiffText);
                m_options.SaveOption(OPT_CLR_TRIVIAL_DIFF, colors.m_clrTrivial);
                m_options.SaveOption(OPT_CLR_TRIVIAL_DIFF_DELETED, colors.m_clrTrivialDeleted);
-
+               
                RebuildRegExpList();
 
                // Call the wrapper to set m_bAllowMixedEol (the wrapper updates the registry)
@@ -1194,7 +1195,7 @@ void CMainFrame::OnOptions()
 
                        // Re-read MergeDoc settings
                        pMergeDoc->RefreshOptions();
-
+                       
                        // Enable/disable automatic rescan (rescan after editing)
                        pLeft->EnableRescan(m_options.GetInt(OPT_AUTOMATIC_RESCAN));
                        pRight->EnableRescan(m_options.GetInt(OPT_AUTOMATIC_RESCAN));
@@ -1449,7 +1450,7 @@ BOOL CMainFrame::DoFileOpen(LPCTSTR pszLeft /*=NULL*/, LPCTSTR pszRight /*=NULL*
 
                gLog.Write(LOGLEVEL::LNOTICE, _T("Open files: Left: %s\n\tRight: %s."),
                        strLeft, strRight);
-
+               
                ShowMergeDoc(pDirDoc, strLeft, strRight, bROLeft, bRORight,
                        cpleft, cpright, &infoUnpacker);
        }
@@ -1478,7 +1479,8 @@ BOOL CMainFrame::CreateBackup(LPCTSTR pszPath)
                if (!CopyFile(pszPath, s, FALSE))
                {
                        if (AfxMessageBox(IDS_BACKUP_FAILED_PROMPT,
-                                       MB_YESNO | MB_ICONQUESTION) != IDYES)
+                                       MB_YESNO | MB_ICONQUESTION | MB_DONT_ASK_AGAIN, 
+                                       IDS_BACKUP_FAILED_PROMPT) != IDYES)
                                return FALSE;
                }
                return TRUE;
@@ -1514,13 +1516,13 @@ BOOL CMainFrame::SyncFilesToVCS(LPCTSTR pszSrc, LPCTSTR pszDest, CString * psErr
                psError->LoadString(IDS_ERROR_FILE_WRITEABLE);
                return FALSE;
        }
-
+       
        if (!CreateBackup(strSavePath))
        {
                psError->LoadString(IDS_ERROR_BACKUP);
                return FALSE;
        }
-
+       
        // If VC project opened from VSS sync first
        if (m_bVCProjSync)
                return ReLinkVCProj(strSavePath, psError);
@@ -1555,7 +1557,7 @@ BOOL CMainFrame::ReLinkVCProj(CString strSavePath,CString * psError)
                if (!_tcscmp(buffer,_T(".vcproj")))
                        bVCPROJ = TRUE;
                SplitFilename(strSavePath, &spath, NULL, NULL);
-
+               
                //check if m_strVssProjectBase has leading $\\, if not put them in:
                if ((m_strVssProjectBase[0] != '$' && m_strVssProjectBase[1] != '\\') ||
                        (m_strVssProjectBase[0] != '$' && m_strVssProjectBase[1] != '/'))
@@ -1576,7 +1578,7 @@ BOOL CMainFrame::ReLinkVCProj(CString strSavePath,CString * psError)
                        if (buffer2[k] == '\\')
                                buffer2[k] = '/';
                }
-
+               
                //take out last '\\'
                int strlb2 = _tcslen(buffer2);
                if (buffer2[strlb2-1] == '/')
@@ -1589,7 +1591,7 @@ BOOL CMainFrame::ReLinkVCProj(CString strSavePath,CString * psError)
                if (pdest)
                {
                        int index  = (int)(pdest - buffer1 + 1);
-
+               
                        _tcscpy(buffer,buffer1);
                        TCHAR * fp = &buffer[int(index + _tcslen(pbuf2))];
                        m_strVssProjectFull = fp;
@@ -1610,7 +1612,7 @@ BOOL CMainFrame::ReLinkVCProj(CString strSavePath,CString * psError)
                }
 
                m_strVssProjectFull = m_strVssProjectBase + spath;
-
+               
                //if sln file, we need to replace ' '  with _T("\\u0020")
                if (!bVCPROJ)
                {
@@ -1637,24 +1639,24 @@ BOOL CMainFrame::ReLinkVCProj(CString strSavePath,CString * psError)
                HANDLE hfile;
                HANDLE tfile;
                SetFileAttributes(strSavePath, FILE_ATTRIBUTE_NORMAL);
-
+               
                hfile = CreateFile(strSavePath,
                 GENERIC_ALL,              // open for writing
-                FILE_SHARE_READ,           // share for reading
-                NULL,                      // no security
-                OPEN_EXISTING,             // existing file only
-                FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN,     // normal file
+                FILE_SHARE_READ,           // share for reading 
+                NULL,                      // no security 
+                OPEN_EXISTING,             // existing file only 
+                FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN,     // normal file 
                 NULL);
                tfile = CreateFile(tempFile,
                 GENERIC_ALL,              // open for writing
-                FILE_SHARE_READ,           // share for reading
-                NULL,                      // no security
-                CREATE_ALWAYS,             // existing file only
-                FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN,     // normal file
-                NULL);
+                FILE_SHARE_READ,           // share for reading 
+                NULL,                      // no security 
+                CREATE_ALWAYS,             // existing file only 
+                FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN,     // normal file 
+                NULL);  
                static TCHAR charset[] = _T(" \t\n\r=");
                DWORD numwritten = 0;
-
+       
                ZeroMemory(&buffer2, nBufferSize * sizeof(TCHAR));
                while (GetWordFile(hfile, buffer, charset))
                {
@@ -1666,7 +1668,7 @@ BOOL CMainFrame::ReLinkVCProj(CString strSavePath,CString * psError)
                                        //nab the equals sign
                                        GetWordFile(hfile, buffer, _T("="));
                                        WriteFile(tfile, buffer, _tcslen(buffer), &numwritten, NULL);
-                                       CString stemp = _T("\"&quot;") + m_strVssProjectFull +
+                                       CString stemp = _T("\"&quot;") + m_strVssProjectFull + 
                                                _T("&quot;");
                                        WriteFile(tfile, stemp, stemp.GetLength(),
                                                &numwritten, NULL);
@@ -1674,7 +1676,7 @@ BOOL CMainFrame::ReLinkVCProj(CString strSavePath,CString * psError)
                                        GetWordFile(hfile, buffer, _T(",\n"));//get the next delimiter
                                        if (!_tcscmp(buffer, _T("\n")))
                                        {
-                                               WriteFile(tfile, _T("\""), 1, &numwritten, NULL);
+                                               WriteFile(tfile, _T("\""), 1, &numwritten, NULL);                                               
                                        }
                                        WriteFile(tfile, buffer, _tcslen(buffer), &numwritten, NULL);
                                }
@@ -1690,7 +1692,7 @@ BOOL CMainFrame::ReLinkVCProj(CString strSavePath,CString * psError)
                                        //nab word
                                        GetWordFile(hfile, buffer, _T("\\\n."));
                                        while (!_tcsstr(buffer, _T(".")))
-                                       {
+                                       {                                               
                                                if (buffer[0] != '\\')
                                                {
                                                        _stprintf(buffer1, _T("%s/%s"), buffer2, buffer);//put append word to file
@@ -1703,7 +1705,7 @@ BOOL CMainFrame::ReLinkVCProj(CString strSavePath,CString * psError)
                                }
                                else if (_tcsstr(buffer, _T("SccProjectName")) == buffer)
                                {
-
+                                       
                                        //buffer2 appends
                                        CString capp;
                                        if (buffer2[0] != '\\' && !_tcsstr(buffer2, _T(".")))
@@ -1727,17 +1729,17 @@ BOOL CMainFrame::ReLinkVCProj(CString strSavePath,CString * psError)
                                                }
                                                _tcslwr(buffer1);
                                                capp = buffer1;
-
+                                               
                                                //nab until the no space, and no =
                                                GetWordFile(hfile, buffer, _T(" ="));
                                                WriteFile(tfile, buffer, _tcslen(buffer), &numwritten, NULL);
                                                CString stemp =  _T("\\u0022") + m_strVssProjectFull + capp + _T("\\u0022");
                                                WriteFile(tfile, stemp, stemp.GetLength(),
                                                        &numwritten, NULL);
-
+                                               
                                                //nab until the first backslash
                                                GetWordFile(hfile, buffer, _T(","));
-                                               ZeroMemory(&buffer2, nBufferSize * sizeof(TCHAR));
+                                               ZeroMemory(&buffer2, nBufferSize * sizeof(TCHAR));                                              
                                        }
                                }
                        }
@@ -1757,7 +1759,7 @@ BOOL CMainFrame::ReLinkVCProj(CString strSavePath,CString * psError)
        return TRUE;
 }
 
-void CMainFrame::OnViewSelectfont()
+void CMainFrame::OnViewSelectfont() 
 {
        CHOOSEFONT cf;
        memset(&cf, 0, sizeof(CHOOSEFONT));
@@ -1785,11 +1787,11 @@ void CMainFrame::OnViewSelectfont()
                theApp.WriteProfileInt(_T("Font"), _T("PitchAndFamily"), m_lfDiff.lfPitchAndFamily);
                theApp.WriteProfileString(_T("Font"), _T("FaceName"), m_lfDiff.lfFaceName);
 
-               AfxMessageBox(IDS_FONT_CHANGE, MB_ICONINFORMATION);
+               AfxMessageBox(IDS_FONT_CHANGE, MB_ICONINFORMATION | MB_DONT_DISPLAY_AGAIN, IDS_FONT_CHANGE);
 
                MergeEditViewList editViews;
                GetAllViews(&editViews, NULL, NULL);
-
+               
                // TODO: Update document fonts
                /*
                for (POSITION pos = editViews.GetHeadPosition(); pos; editViews.GetNext(pos))
@@ -1819,13 +1821,13 @@ void CMainFrame::GetFontProperties()
        _tcscpy(m_lfDiff.lfFaceName, theApp.GetProfileString(_T("Font"), _T("FaceName"), _T("Courier")));
 }
 
-void CMainFrame::OnViewUsedefaultfont()
+void CMainFrame::OnViewUsedefaultfont() 
 {
        m_bFontSpecified=FALSE;
        theApp.WriteProfileInt(_T("Font"), _T("Specified"), m_bFontSpecified);
 }
 
-void CMainFrame::OnUpdateViewUsedefaultfont(CCmdUI* pCmdUI)
+void CMainFrame::OnUpdateViewUsedefaultfont(CCmdUI* pCmdUI) 
 {
        pCmdUI->Enable(m_bFontSpecified);
 }
@@ -1853,7 +1855,7 @@ void CMainFrame::UpdateResources()
        }
 }
 
-void CMainFrame::OnHelpContents()
+void CMainFrame::OnHelpContents() 
 {
        CString spath = GetModulePath(0) + _T("\\Docs\\index.html");
        CString url = _T("http://winmerge.org/docs20/index.html");
@@ -1866,12 +1868,12 @@ void CMainFrame::OnHelpContents()
 
 }
 
-void CMainFrame::OnUpdateHelpContents(CCmdUI* pCmdUI)
+void CMainFrame::OnUpdateHelpContents(CCmdUI* pCmdUI) 
 {
        pCmdUI->Enable(TRUE);
 }
 
-void CMainFrame::ActivateFrame(int nCmdShow)
+void CMainFrame::ActivateFrame(int nCmdShow) 
 {
        if (!m_bFirstTime)
        {
@@ -1898,7 +1900,7 @@ void CMainFrame::ActivateFrame(int nCmdShow)
        dsk_rc.bottom = dsk_rc.top + ::GetSystemMetrics(SM_CYVIRTUALSCREEN);
        if (theApp.GetProfileInt(_T("Settings"), _T("MainMax"), FALSE))
        {
-               CMDIFrameWnd::ActivateFrame(SW_MAXIMIZE);
+               CMDIFrameWnd::ActivateFrame(SW_MAXIMIZE);       
        }
        else if (rc.Width() != 0 && rc.Height() != 0)
        {
@@ -1916,7 +1918,7 @@ void CMainFrame::ActivateFrame(int nCmdShow)
                CMDIFrameWnd::ActivateFrame(nCmdShow);
 }
 
-void CMainFrame::OnClose()
+void CMainFrame::OnClose() 
 {
        // save any dirty edit views
        MergeDocList mergedocs;
@@ -1935,7 +1937,7 @@ void CMainFrame::OnClose()
                        else
                        {
                                // Set modified status to false so that we are not asking
-                               // about saving again.
+                               // about saving again. 
                                pMergeDoc->m_ltBuf.SetModified(FALSE);
                                pMergeDoc->m_rtBuf.SetModified(FALSE);
                        }
@@ -1963,11 +1965,11 @@ void CMainFrame::OnClose()
                        pMergeDoc->GetParentFrame()->SavePosition();
        }
        */
-
+       
        // Stop handling status messages from CustomStatusCursors
        CustomStatusCursor::SetStatusDisplay(0);
        myStatusDisplay.SetFrame(0);
-
+       
        CMDIFrameWnd::OnClose();
 }
 
@@ -1994,7 +1996,7 @@ void CMainFrame::RebuildRegExpList()
        _TCHAR tmp[_MAX_PATH] = {0};
        _TCHAR* token;
        _TCHAR sep[] = _T("\r\n");
-
+       
        // destroy the old list if the it is not NULL
        FreeRegExpList();
 
@@ -2068,7 +2070,7 @@ void CMainFrame::addToMru(LPCTSTR szItem, LPCTSTR szRegSubKey, UINT nMaxItems)
 /**
  * @brief Apply tabs and eols settings to all merge documents
  */
-void CMainFrame::ApplyViewWhitespace()
+void CMainFrame::ApplyViewWhitespace() 
 {
        MergeDocList mergedocs;
        GetAllMergeDocs(&mergedocs);
@@ -2106,7 +2108,7 @@ void CMainFrame::ApplyViewWhitespace()
        }
 }
 
-void CMainFrame::OnViewWhitespace()
+void CMainFrame::OnViewWhitespace() 
 {
        BOOL bViewWhitespace = m_options.GetInt(OPT_VIEW_WHITESPACE);
        bViewWhitespace = !bViewWhitespace;
@@ -2115,7 +2117,7 @@ void CMainFrame::OnViewWhitespace()
 }
 
 /// Enables View/View Whitespace menuitem when merge view is active
-void CMainFrame::OnUpdateViewWhitespace(CCmdUI* pCmdUI)
+void CMainFrame::OnUpdateViewWhitespace(CCmdUI* pCmdUI) 
 {
        pCmdUI->SetCheck(m_options.GetInt(OPT_VIEW_WHITESPACE));
 }
@@ -2272,7 +2274,7 @@ void CMainFrame::OnToolsGeneratePatch()
                if (ind != -1)
                {
                        DIFFITEM item = pView->GetItemAt(ind);
-
+               
                        if (!item.isBin() && !item.isDirectory() &&     !item.isResultError())
                        {
                                CString leftFile = item.getLeftFilepath();
@@ -2281,7 +2283,7 @@ void CMainFrame::OnToolsGeneratePatch()
                                CString rightFile = item.getRightFilepath();
                                if (!rightFile.IsEmpty())
                                        rightFile += _T("\\") + item.sfilename;
-
+                               
                                patcher.AddFiles(leftFile, rightFile);
                        }
                }
@@ -2348,7 +2350,7 @@ void CMainFrame::OnDropFiles(HDROP dropInfo)
                CString expandedFile = ExpandShortcut(files[i]);
 
                // if that worked, we should have a real file name
-               if (!expandedFile.IsEmpty())
+               if (!expandedFile.IsEmpty()) 
                        files[i] = expandedFile;
        }
 
@@ -2368,7 +2370,7 @@ void CMainFrame::OnDropFiles(HDROP dropInfo)
        DoFileOpen(files[0], files[1], FFILEOPEN_NONE, FFILEOPEN_NONE, ctrlKey);
 }
 
-BOOL CMainFrame::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
+BOOL CMainFrame::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
 {
        if (CustomStatusCursor::HasWaitCursor())
        {
@@ -2392,7 +2394,7 @@ void CMainFrame::OnPluginUnpackMode(UINT nID )
        theApp.WriteProfileInt(_T("Settings"), _T("UnpackerMode"), g_bUnpackerMode);
 }
 
-void CMainFrame::OnUpdatePluginUnpackMode(CCmdUI* pCmdUI)
+void CMainFrame::OnUpdatePluginUnpackMode(CCmdUI* pCmdUI) 
 {
        if (pCmdUI->m_nID == ID_UNPACK_MANUAL)
                pCmdUI->SetRadio(PLUGIN_MANUAL == g_bUnpackerMode);
@@ -2433,7 +2435,7 @@ BOOL CMainFrame::OpenFileToExternalEditor(CString file)
        CString ext;
        CString sExecutable;
        CString sCmd;
-
+       
        sExtEditor = m_options.GetString(OPT_EXT_EDITOR_CMD);
        GetDecoratedCmdLine(sExtEditor, sCmd, sExecutable);
 
@@ -2495,7 +2497,7 @@ void CMainFrame::OnSaveConfigData()
        configLog.m_diffOptions.bIgnoreBlankLines = mf->m_options.GetInt(OPT_CMP_IGNORE_BLANKLINES);
        configLog.m_diffOptions.bIgnoreCase = mf->m_options.GetInt(OPT_CMP_IGNORE_CASE);
        configLog.m_diffOptions.bEolSensitive = mf->m_options.GetInt(OPT_CMP_EOL_SENSITIVE);
-
+       
        configLog.m_viewSettings.bShowIdent = m_options.GetInt(OPT_SHOW_DIFFERENT);
        configLog.m_viewSettings.bShowDiff = m_options.GetInt(OPT_SHOW_DIFFERENT);
        configLog.m_viewSettings.bShowUniqueLeft = m_options.GetInt(OPT_SHOW_UNIQUE_LEFT);
@@ -2519,7 +2521,7 @@ void CMainFrame::OnSaveConfigData()
 
 /**
  * @brief Open two new empty docs, 'Scratchpads'
- *
+ * 
  * Allows user to open two empty docs, to paste text to
  * compare from clipboard.
  * @note File filenames are set emptys and filedescriptors
@@ -2527,7 +2529,7 @@ void CMainFrame::OnSaveConfigData()
  * @sa CMergeDoc::OpenDocs()
  * @sa CMergeDoc::TrySaveAs()
  */
-void CMainFrame::OnFileNew()
+void CMainFrame::OnFileNew() 
 {
        BOOL docNull;
        CDirDoc *pDirDoc = GetDirDocToShow(&docNull);
@@ -2544,7 +2546,7 @@ void CMainFrame::OnFileNew()
                if (!pDirDoc->ReusingDirDoc())
                        return;
        }
-
+       
        // Load emptyfile descriptors and open empty docs
        VERIFY(m_strLeftDesc.LoadString(IDS_EMPTY_LEFT_FILE));
        VERIFY(m_strRightDesc.LoadString(IDS_EMPTY_RIGHT_FILE));
index a145f02..9e93b63 100644 (file)
@@ -260,7 +260,7 @@ void CMergeApp::ParseArgs(CMainFrame* pMainFrame, CStringArray & files, UINT & n
                        {
                                CString s;
                                VERIFY(s.LoadString(IDS_QUICKHELP));
-                               AfxMessageBox(s, MB_ICONINFORMATION);
+                               AfxMessageBox(s, MB_ICONINFORMATION | MB_DONT_DISPLAY_AGAIN, IDS_QUICKHELP);
                        }
 
                        // -r to compare recursively
@@ -587,10 +587,26 @@ static void AddEnglishResourceHook()
 }
 
 
-int CMergeApp::DoMessageBox(LPCTSTR lpszPrompt, UINT nType, UINT nIDPrompt) 
+int CMergeApp::DoMessageBox( LPCTSTR lpszPrompt, UINT nType, UINT nIDPrompt )
 {
-       // This is just a convenient point for breakpointing
-       return CWinApp::DoMessageBox(lpszPrompt, nType, nIDPrompt);
+       // This is a convenient point for breakpointing !!!
+
+       // Create a handle to store the parent window of the message box.
+       CWnd* pParentWnd = CWnd::GetActiveWindow();
+       
+       // Check whether an active window was retrieved successfully.
+       if ( pParentWnd == NULL )
+       {
+               // Try to retrieve a handle to the last active popup.
+               pParentWnd = GetMainWnd()->GetLastActivePopup();
+       }
+       
+       // Create the message box dialog.
+       CMessageBoxDialog dlgMessage(pParentWnd, lpszPrompt, _T(""), nType,
+               nIDPrompt);
+       
+       // Display the message box dialog an return the result.
+       return (int)dlgMessage.DoModal();
 }
 
 /** 
index 4a98649..5f061c6 100644 (file)
@@ -970,6 +970,10 @@ SOURCE=.\MergeEditView.cpp
 # End Source File
 # Begin Source File
 
+SOURCE=.\Common\MessageBoxDialog.cpp
+# End Source File
+# Begin Source File
+
 SOURCE=.\Common\multiformatText.cpp
 # End Source File
 # Begin Source File
@@ -1650,6 +1654,10 @@ SOURCE=.\MergeEditView.h
 # End Source File
 # Begin Source File
 
+SOURCE=.\Common\MessageBoxDialog.h
+# End Source File
+# Begin Source File
+
 SOURCE=.\Common\multiformatText.h
 # End Source File
 # Begin Source File
index f2b73db..bcc9043 100644 (file)
@@ -448,6 +448,10 @@ BEGIN
     CONTROL         "&Close compare Statepane automatically",
                     IDC_CMPPANE_AUTOCLOSE,"Button",BS_AUTOCHECKBOX |
                     WS_TABSTOP,7,37,206,10
+    PUSHBUTTON      "Reset",IDC_RESET_ALL_MESSAGE_BOXES,167,57,49,13,NOT 
+                    WS_TABSTOP
+    LTEXT           "Press button to reset all message boxes",IDC_STATIC,7,
+                    59,157,8
 END
 
 IDD_LANGUAGE_SELECT DIALOG DISCARDABLE  0, 0, 213, 111
@@ -837,6 +841,11 @@ BEGIN
                     BS_AUTORADIOBUTTON,77,62,59,10
 END
 
+IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
+STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+FONT 8, "MS Sans Serif", 0, 0, 0x1
+BEGIN
+END
 
 #ifndef _MAC
 /////////////////////////////////////////////////////////////////////////////
@@ -1309,6 +1318,30 @@ BEGIN
     IDS_CANNOT_EXECUTE_FILE "Cannot execute %1"
 END
 
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_OK       "&Ok"
+    IDS_MESSAGEBOX_CANCEL   "&Cancel"
+    IDS_MESSAGEBOX_ABORT    "&Abort"
+    IDS_MESSAGEBOX_RETRY    "&Retry"
+    IDS_MESSAGEBOX_IGNORE   "&Ignore"
+    IDS_MESSAGEBOX_IGNOREALL "Ignore &all"
+    IDS_MESSAGEBOX_YES      "&Yes"
+END
+
+STRINGTABLE 
+BEGIN
+    IDS_MESSAGEBOX_YES_TO_ALL "Yes to &all"
+    IDS_MESSAGEBOX_NO       "&No"
+    IDS_MESSAGEBOX_NO_TO_ALL "No to a&ll"
+    IDS_MESSAGEBOX_CONTINUE "&Continue"
+    IDS_MESSAGEBOX_SKIP     "&Skip"
+    IDS_MESSAGEBOX_SKIPALL  "Skip &all"
+    IDS_MESSAGEBOX_HELP     "&Help"
+    IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN "Don't display this &message again."
+    IDS_MESSAGEBOX_DONT_ASK_AGAIN "Don't ask this &question again."
+END
+
 STRINGTABLE DISCARDABLE
 BEGIN
     IDS_AFRIKAANS           "Afrikaans"
@@ -1568,6 +1601,7 @@ STRINGTABLE DISCARDABLE
 BEGIN
     ID_NO_EDIT_SCRIPTS      "< Empty >"
     ID_RELOAD_PLUGINS       "&Unload all plugins and reload them (for developpers)"
+    ID_MESSAGE_BOX_ARE_RESET "All message boxes are now displayed again."
 END
 
 #endif    // English (U.S.) resources
index be5e553..70d4aaf 100644 (file)
@@ -438,7 +438,7 @@ void CMergeDoc::ShowRescanError(int nRescanResult)
        {
        case RESCAN_IDENTICAL:
                VERIFY(s.LoadString(IDS_FILESSAME));
-               AfxMessageBox(s, MB_ICONINFORMATION);
+               AfxMessageBox(s, MB_ICONINFORMATION | MB_DONT_DISPLAY_AGAIN, IDS_FILESSAME);
                break;
 
        case RESCAN_BINARIES:
@@ -2309,7 +2309,7 @@ BOOL CMergeDoc::SaveHelper(BOOL bAllowCancel)
                        AfxFormatString1(s, IDS_SAVE_FMT, m_strLeftDesc);
        
                bLModified = TRUE;
-               switch (AfxMessageBox(s, nDialogType | MB_ICONQUESTION))
+               switch (AfxMessageBox(s, nDialogType | MB_ICONQUESTION | MB_DONT_ASK_AGAIN, IDS_SAVE_FMT))
                {
                case IDYES:
                        if (!DoSave(m_strLeftFile, bLSaveSuccess, TRUE))
@@ -2331,7 +2331,7 @@ BOOL CMergeDoc::SaveHelper(BOOL bAllowCancel)
                        AfxFormatString1(s, IDS_SAVE_FMT, m_strRightDesc);
 
                bRModified = TRUE;
-               switch (AfxMessageBox(s, nDialogType | MB_ICONQUESTION))
+               switch (AfxMessageBox(s, nDialogType | MB_ICONQUESTION | MB_DONT_ASK_AGAIN, IDS_SAVE_FMT))
                {
                case IDYES:
                        if (!DoSave(m_strRightFile, bRSaveSuccess, FALSE))
@@ -2484,7 +2484,7 @@ int CMergeDoc::LoadFile(CString sFileName, BOOL bLeft, BOOL & readOnly, int code
                {
                        CString s;
                        AfxFormatString1(s, IDS_SUGGEST_PRESERVEEOL, sFileName); 
-                       if (AfxMessageBox(s, MB_YESNO|MB_ICONQUESTION) == IDYES)
+                       if (AfxMessageBox(s, MB_YESNO|MB_ICONQUESTION|MB_DONT_ASK_AGAIN, IDS_SUGGEST_PRESERVEEOL) == IDYES)
                                // the user wants to keep the original chars
                                mf->SetEOLMixed(TRUE);
                }
@@ -2632,7 +2632,7 @@ BOOL CMergeDoc::OpenDocs(CString sLeftFile, CString sRightFile,
                VERIFY(sOptionName.LoadString(IDC_MIXED_EOL));
                CString s;
                AfxFormatString1(s, IDS_SUGGEST_IGNOREEOL, sOptionName); 
-               if (AfxMessageBox(s, MB_YESNO|MB_ICONQUESTION) == IDYES)
+               if (AfxMessageBox(s, MB_YESNO|MB_ICONQUESTION|MB_DONT_ASK_AGAIN, IDS_SUGGEST_IGNOREEOL) == IDYES)
                {
                        diffOptions.bEolSensitive = FALSE;
                        m_diffWrapper.SetOptions(&diffOptions);
index 9cc7ef3..e8e45fb 100644 (file)
@@ -154,7 +154,8 @@ void CPatchDlg::OnOK()
                // Result file already exists and append not selected
                if (fileExists && !m_appendFile)
                {
-                       overWrite = AfxMessageBox(IDS_DIFF_FILEOVERWRITE, MB_YESNO);
+                       overWrite = AfxMessageBox(IDS_DIFF_FILEOVERWRITE, MB_YESNO|MB_DONT_ASK_AGAIN,
+                                         IDS_DIFF_FILEOVERWRITE);
                        if (overWrite == IDNO)
                                fileResultOK = FALSE;
                }
index 5863b4d..140c5f4 100644 (file)
@@ -98,7 +98,8 @@ int CPatchTool::CreatePatch()
                
                if (bResult && fileCount > 0)
                {
-                       AfxMessageBox(IDS_DIFF_SUCCEEDED, MB_ICONINFORMATION);
+                       AfxMessageBox(IDS_DIFF_SUCCEEDED, MB_ICONINFORMATION|MB_DONT_DISPLAY_AGAIN,
+                                           IDS_DIFF_SUCCEEDED);
                        
                        m_sPatchFile = m_dlgPatch.m_fileResult;
                        m_bOpenToEditor = m_dlgPatch.m_openToEditor;
index 48197fd..1103509 100644 (file)
@@ -72,9 +72,16 @@ void CPropGeneral::DoDataExchange(CDataExchange* pDX)
 
 BEGIN_MESSAGE_MAP(CPropGeneral, CPropertyPage)
        //{{AFX_MSG_MAP(CPropGeneral)
+       ON_BN_CLICKED(IDC_RESET_ALL_MESSAGE_BOXES, OnResetAllMessageBoxes)
        //}}AFX_MSG_MAP
 END_MESSAGE_MAP()
 
 /////////////////////////////////////////////////////////////////////////////
 // CPropGeneral message handlers
 
+
+void CPropGeneral::OnResetAllMessageBoxes() 
+{
+       CMessageBoxDialog::ResetMessageBoxes();
+       AfxMessageBox(ID_MESSAGE_BOX_ARE_RESET, MB_ICONINFORMATION);
+}
index 3867deb..b306c81 100644 (file)
@@ -43,6 +43,7 @@ protected:
 
        // Generated message map functions
        //{{AFX_MSG(CPropGeneral)
+       afx_msg void OnResetAllMessageBoxes();
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
 
index cbcc6ae..0d9c0ac 100644 (file)
@@ -61,6 +61,11 @@ struct gLog
        static UINT DeleteFileFailed(LPCTSTR path);
 };
 
+
+       /** @brief include for the custom dialog boxes, with do not ask/display again */
+#include "MessageBoxDialog.h"
+
+
 //{{AFX_INSERT_LOCATION}}
 // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
 
index 11ada74..790d4af 100644 (file)
@@ -487,7 +487,7 @@ OnEditReplaceAll ()
   strNumber.Format( _T("%d"), nNumReplaced );
   AfxFormatString1(strMessage, IDS_NUM_REPLACED, strNumber);
 
-  AfxMessageBox( strMessage );
+  AfxMessageBox( strMessage, MB_ICONINFORMATION|MB_DONT_DISPLAY_AGAIN, IDS_NUM_REPLACED);
 }
 
 void CEditReplaceDlg::
index c1e55c8..aec81c0 100644 (file)
@@ -1,3 +1,11 @@
+2004-03-30 Laoran
+ PATCH: [ 922724 ] "Don't display again" option for messageboxes
+  Src: DirActions.cpp DirView.cpp MainFrm.cpp Merge.cpp Merge.dsp Merge.rc
+       MergeDoc.cpp PatchDlg.cpp PatchTool.cpp PropGeneral.cpp PropGeneral.h StdAfx.h resource.h
+  Src/editlib: ceditreplacedlg.cpp
+  Src/common add: MessageBoxDialog.cpp MessageBoxDialog.h
+  Languages: *.rc resource.h
+
 2004-03-30 Kimmo
  PATCH: [ 925179 ] Remove is_*file() functions from coretools.h/cpp
   Common: coretools.cpp coretools.h
index c0d6a90..734d1c4 100644 (file)
 #define IDB_VIEW_SELECTFONT             278
 #define IDB_FILE_EXIT                   279
 #define IDB_HELP_CONTENTS               280
+#define IDD_MESSAGE_BOX                 281
 #define ID_SCRIPT_FIRST                 900
 #define ID_SCRIPT_LAST                  999
 #define IDC_LEFT_EDIT                   1000
 #define IDC_OPEN_CONTRIBUTORS           1121
 #define IDC_DIFF_DEFAULTS               1122
 #define IDC_MOVED_BLOCKS                1123
+#define IDC_RESET_ALL_MESSAGE_BOXES     1124
 #define IDS_NUM_REPLACED                8501
 #define IDS_EDIT_TEXT_NOT_FOUND         8502
 #define IDS_LINE_STATUS_INFO_EOL        8503
 #define IDC_EDIT_SCOPE_SELECTION        8613
 #define IDC_EDIT_SCOPE_WHOLE_FILE       8614
 #define IDC_EDIT_SCOPE_DONT_WRAP        8615
+#define IDS_MESSAGEBOX_OK               9001
+#define IDS_MESSAGEBOX_CANCEL           9002
+#define IDS_MESSAGEBOX_ABORT            9003
+#define IDS_MESSAGEBOX_RETRY            9004
+#define IDS_MESSAGEBOX_IGNORE           9005
+#define IDS_MESSAGEBOX_IGNOREALL        9006
+#define IDS_MESSAGEBOX_YES              9007
+#define IDS_MESSAGEBOX_YES_TO_ALL       9008
+#define IDS_MESSAGEBOX_NO               9009
+#define IDS_MESSAGEBOX_NO_TO_ALL        9010
+#define IDS_MESSAGEBOX_CONTINUE         9011
+#define IDS_MESSAGEBOX_SKIP             9012
+#define IDS_MESSAGEBOX_SKIPALL          9013
+#define IDS_MESSAGEBOX_HELP             9014
+#define IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN 9015
+#define IDS_MESSAGEBOX_DONT_ASK_AGAIN   9016
 #define IDR_MARGIN_CURSOR               22900
 #define IDD_LANGUAGE_SELECT             30000
 #define IDD_PROPPAGE_COLORS             30002
 #define ID_VIEW_DIR_STATEPANE           32864
 #define ID_NO_EDIT_SCRIPTS              32865
 #define ID_RELOAD_PLUGINS               32866
+#define ID_MESSAGE_BOX_ARE_RESET        32867
 
 // Next default values for new objects
-//
+// 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        124
-#define _APS_NEXT_COMMAND_VALUE         32867
-#define _APS_NEXT_CONTROL_VALUE         1124
+#define _APS_NEXT_COMMAND_VALUE         32868
+#define _APS_NEXT_CONTROL_VALUE         1125
 #define _APS_NEXT_SYMED_VALUE           108
 #endif
 #endif