示例#1
0
        /// <summary>
        /// Toggle the current document as read-only.
        /// </summary>
        /// <returns>True on success.</returns>
        public bool SetReadOnly()
        {
            ToolStripMenuItem menuItem = _mainForm.GetMenuItemByName(
                Constants.UI_EDIT_MENU_SET_READ_ONLY);

            if (menuItem == null) return false;

            if (scintilla.IsReadOnly)
            {
                /*
                 * Check not already open as read/write.
                 */

                foreach (IDockContent dockContent in 
                    _mainForm.ClientWindow.Documents)
                {
                    ScintillaEditForm f = dockContent as ScintillaEditForm;
                    if (f == null) continue;
                    if (f.FilePath == null) continue;
                    if (documentFilePath == null) continue;
                    if (FileTools.MatchPaths(f.FilePath, documentFilePath) &&
                        !f.Editor.IsReadOnly)
                    {
                        MessageBox.Show(
                            Resources.ReadWriteMessage,
                            Resources.ReadWriteTitle,
                            MessageBoxButtons.OK, MessageBoxIcon.Information);

                        UpdateTab();
                        f.Activate();
                        return false;
                    }
                }

                menuItem.Checked = false;
                scintilla.IsReadOnly = false;
            }
            else
            {
                menuItem.Checked = true;
                scintilla.IsReadOnly = true;
            }

            UpdateTab();

            return true;
        }