--- /dev/null
+/*
+ * 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();
+}
--- /dev/null
+/*
+ * 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 ( );
+
+};
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);
}
{
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);
}
{
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);
}
{
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);
}
}
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
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
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
/////////////////////////////////////////////////////////////////////////////
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)"
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
#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
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
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
/////////////////////////////////////////////////////////////////////////////
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)"
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
#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
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
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
/////////////////////////////////////////////////////////////////////////////
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
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
#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
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
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
/////////////////////////////////////////////////////////////////////////////
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)"
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
#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
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
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
/////////////////////////////////////////////////////////////////////////////
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)"
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
#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
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
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
/////////////////////////////////////////////////////////////////////////////
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)"
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
#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
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
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
/////////////////////////////////////////////////////////////////////////////
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)"
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
#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
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
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
/////////////////////////////////////////////////////////////////////////////
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)"
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
#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
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
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
/////////////////////////////////////////////////////////////////////////////
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)"
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
#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
"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
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
/////////////////////////////////////////////////////////////////////////////
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)"
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
#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
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
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
/////////////////////////////////////////////////////////////////////////////
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)"
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
#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
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
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
/////////////////////////////////////////////////////////////////////////////
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"
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
#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
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
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
/////////////////////////////////////////////////////////////////////////////
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)"
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
#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
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
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
/////////////////////////////////////////////////////////////////////////////
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)"
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
#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
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
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
/////////////////////////////////////////////////////////////////////////////
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)"
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
#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
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
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
/////////////////////////////////////////////////////////////////////////////
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 (->)"
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
#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
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
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
/////////////////////////////////////////////////////////////////////////////
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)"
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
#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
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
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
/////////////////////////////////////////////////////////////////////////////
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)"
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
#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
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
/////////////////////////////////////////////////////////////////////////////
-/**
+/**
* @file MainFrm.cpp
*
* @brief Implementation of the CMainFrame class
extern CLogFile gLog;
CMainFrame *mf = NULL;
-// add a
+// add a
static void add_regexp PARAMS((struct regexp_list **, char const*));
/////////////////////////////////////////////////////////////////////////////
// CMainFrame
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))
{
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() |
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);
/**
* @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))
/**
* @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))
/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers
-void CMainFrame::OnFileOpen()
+void CMainFrame::OnFileOpen()
{
DoFileOpen();
}
/**
* @brief Show/Hide different files/directories
*/
-void CMainFrame::OnOptionsShowDifferent()
+void CMainFrame::OnOptionsShowDifferent()
{
varprop::VariantValue val;
val = m_options.Get(OPT_SHOW_DIFFERENT);
/**
* @brief Show/Hide identical files/directories
*/
-void CMainFrame::OnOptionsShowIdentical()
+void CMainFrame::OnOptionsShowIdentical()
{
varprop::VariantValue val;
val = m_options.Get(OPT_SHOW_IDENTICAL);
/**
* @brief Show/Hide left-only files/directories
*/
-void CMainFrame::OnOptionsShowUniqueLeft()
+void CMainFrame::OnOptionsShowUniqueLeft()
{
varprop::VariantValue val;
val = m_options.Get(OPT_SHOW_UNIQUE_LEFT);
/**
* @brief Show/Hide right-only files/directories
*/
-void CMainFrame::OnOptionsShowUniqueRight()
+void CMainFrame::OnOptionsShowUniqueRight()
{
varprop::VariantValue val;
val = m_options.Get(OPT_SHOW_UNIQUE_RIGHT);
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));
}
/**
* @brief Show/Hide backup files
*/
-void CMainFrame::OnHideBackupFiles()
+void CMainFrame::OnHideBackupFiles()
{
varprop::VariantValue val;
val = m_options.Get(OPT_HIDE_BACKUP);
RedisplayAllDirDocs();
}
-void CMainFrame::OnUpdateHideBackupFiles(CCmdUI* pCmdUI)
+void CMainFrame::OnUpdateHideBackupFiles(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_options.GetInt(OPT_HIDE_BACKUP));
}
/**
* @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);
* 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)
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)
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)
{
{
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)
{
CString s;
bFileRO = files_isFileReadOnly(strSavePath, &bFileExists);
-
+
if (bFileExists && bFileRO)
{
// Version control system used?
{
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
status.m_attribute &= ~CFile::Attribute::readOnly;
CFile::SetStatus(strSavePath, status);
break;
-
+
// Save to new filename
case IDNO:
if (SelectFile(s, strSavePath, title, NULL, FALSE))
else
bRetVal = FALSE;
break;
-
+
// Cancel saving
case IDCANCEL:
bRetVal = FALSE;
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);
IVSSItem m_vssi;
COleException *eOleException = new COleException;
-
+
// BSP - Create the COM interface pointer to VSS
if (FAILED(vssdb.CreateDispatch(_T("SourceSafe"), eOleException)))
{
{
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
if (buffer2[k] == '/')
buffer2[k] = '\\';
}
-
+
//take out last '\\'
int strlb2 = _tcslen(buffer2);
if (buffer2[strlb2-1] == '\\')
if (pdest)
{
int index = (int)(pdest - buffer1 + 1);
-
+
_tcscpy(buffer, buffer1);
TCHAR * fp = &buffer[int(index + _tcslen(pbuf2))];
sname = fp;
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)
{
WaitForSingleObject(hVss, INFINITE);
GetExitCodeProcess(hVss, &code);
CloseHandle(hVss);
-
+
if (code != 0)
{
AfxMessageBox(IDS_VSSERROR, MB_ICONSTOP);
ApplyViewWhitespace();
}
-void CMainFrame::OnOptions()
+void CMainFrame::OnOptions()
{
CString sExtEditor;
CString selectedFilter;
CPropRegistry regpage;
CPropCompare compage(&m_options);
CPropEditor editor;
-
+
sht.AddPage(&gen);
sht.AddPage(&compage);
sht.AddPage(&editor);
sht.AddPage(&vss);
sht.AddPage(&colors);
sht.AddPage(®page);
-
+
vss.m_nVerSys = m_nVerSys;
vss.m_strPath = m_strVssPath;
gen.m_bBackup = m_options.GetInt(OPT_CREATE_BACKUPS);
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);
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);
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)
// 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));
gLog.Write(LOGLEVEL::LNOTICE, _T("Open files: Left: %s\n\tRight: %s."),
strLeft, strRight);
-
+
ShowMergeDoc(pDirDoc, strLeft, strRight, bROLeft, bRORight,
cpleft, cpright, &infoUnpacker);
}
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;
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);
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] != '/'))
if (buffer2[k] == '\\')
buffer2[k] = '/';
}
-
+
//take out last '\\'
int strlb2 = _tcslen(buffer2);
if (buffer2[strlb2-1] == '/')
if (pdest)
{
int index = (int)(pdest - buffer1 + 1);
-
+
_tcscpy(buffer,buffer1);
TCHAR * fp = &buffer[int(index + _tcslen(pbuf2))];
m_strVssProjectFull = fp;
}
m_strVssProjectFull = m_strVssProjectBase + spath;
-
+
//if sln file, we need to replace ' ' with _T("\\u0020")
if (!bVCPROJ)
{
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))
{
//nab the equals sign
GetWordFile(hfile, buffer, _T("="));
WriteFile(tfile, buffer, _tcslen(buffer), &numwritten, NULL);
- CString stemp = _T("\""") + m_strVssProjectFull +
+ CString stemp = _T("\""") + m_strVssProjectFull +
_T(""");
WriteFile(tfile, stemp, stemp.GetLength(),
&numwritten, NULL);
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);
}
//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
}
else if (_tcsstr(buffer, _T("SccProjectName")) == buffer)
{
-
+
//buffer2 appends
CString capp;
if (buffer2[0] != '\\' && !_tcsstr(buffer2, _T(".")))
}
_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));
}
}
}
return TRUE;
}
-void CMainFrame::OnViewSelectfont()
+void CMainFrame::OnViewSelectfont()
{
CHOOSEFONT cf;
memset(&cf, 0, sizeof(CHOOSEFONT));
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))
_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);
}
}
}
-void CMainFrame::OnHelpContents()
+void CMainFrame::OnHelpContents()
{
CString spath = GetModulePath(0) + _T("\\Docs\\index.html");
CString url = _T("http://winmerge.org/docs20/index.html");
}
-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)
{
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)
{
CMDIFrameWnd::ActivateFrame(nCmdShow);
}
-void CMainFrame::OnClose()
+void CMainFrame::OnClose()
{
// save any dirty edit views
MergeDocList mergedocs;
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);
}
pMergeDoc->GetParentFrame()->SavePosition();
}
*/
-
+
// Stop handling status messages from CustomStatusCursors
CustomStatusCursor::SetStatusDisplay(0);
myStatusDisplay.SetFrame(0);
-
+
CMDIFrameWnd::OnClose();
}
_TCHAR tmp[_MAX_PATH] = {0};
_TCHAR* token;
_TCHAR sep[] = _T("\r\n");
-
+
// destroy the old list if the it is not NULL
FreeRegExpList();
/**
* @brief Apply tabs and eols settings to all merge documents
*/
-void CMainFrame::ApplyViewWhitespace()
+void CMainFrame::ApplyViewWhitespace()
{
MergeDocList mergedocs;
GetAllMergeDocs(&mergedocs);
}
}
-void CMainFrame::OnViewWhitespace()
+void CMainFrame::OnViewWhitespace()
{
BOOL bViewWhitespace = m_options.GetInt(OPT_VIEW_WHITESPACE);
bViewWhitespace = !bViewWhitespace;
}
/// 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));
}
if (ind != -1)
{
DIFFITEM item = pView->GetItemAt(ind);
-
+
if (!item.isBin() && !item.isDirectory() && !item.isResultError())
{
CString leftFile = item.getLeftFilepath();
CString rightFile = item.getRightFilepath();
if (!rightFile.IsEmpty())
rightFile += _T("\\") + item.sfilename;
-
+
patcher.AddFiles(leftFile, rightFile);
}
}
CString expandedFile = ExpandShortcut(files[i]);
// if that worked, we should have a real file name
- if (!expandedFile.IsEmpty())
+ if (!expandedFile.IsEmpty())
files[i] = expandedFile;
}
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())
{
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);
CString ext;
CString sExecutable;
CString sCmd;
-
+
sExtEditor = m_options.GetString(OPT_EXT_EDITOR_CMD);
GetDecoratedCmdLine(sExtEditor, sCmd, sExecutable);
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);
/**
* @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
* @sa CMergeDoc::OpenDocs()
* @sa CMergeDoc::TrySaveAs()
*/
-void CMainFrame::OnFileNew()
+void CMainFrame::OnFileNew()
{
BOOL docNull;
CDirDoc *pDirDoc = GetDirDocToShow(&docNull);
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));
{
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
}
-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();
}
/**
# 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
# 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
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
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
/////////////////////////////////////////////////////////////////////////////
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"
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
{
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:
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))
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))
{
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);
}
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);
// 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;
}
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;
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);
+}
// Generated message map functions
//{{AFX_MSG(CPropGeneral)
+ afx_msg void OnResetAllMessageBoxes();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
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.
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::
+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
#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