mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-10-24 17:18:54 +00:00
A text view handled undo: and redo: and registered its changes even when allowsUndo was NO, so Edit > Undo stayed enabled and did nothing. Behaviour now follows canonical Cocoa: a text view that does not allow undo registers nothing and passes undo: and redo: on to the window, and Undo and Redo are enabled only when there is a change to undo or redo. * CPTextView/CPTextView.j: Register changes only when undo is allowed, stop responding to undo: and redo: when it is not, and validate the Undo and Redo items against the undo manager. * CPWindow/CPWindow.j: Validate the Undo and Redo items against the window's undo manager. * Tests/AppKit/CPTextViewTest.j: Add tests for responding to undo:, registering changes and validating the Undo item. * Tests/Manual/TextEditor/DocumentWindowController.j: Add toggleAllowsUndo: and validateMenuItem:, so that undo can be turned on and off for the active document. * Tests/Manual/TextEditor/Resources/MainMenu.xib, Resources/MainMenu.cib: Add Edit > Allow Undo. * Tests/Manual/TextEditor/WORKLIST.md: Remove the entry for this gap, record Allow Undo as tested, and add the key equivalent behaviour of disabled menu items for discussion.
291 lines
18 KiB
XML
291 lines
18 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="25408" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
|
|
<dependencies>
|
|
<deployment version="101000" identifier="macosx"/>
|
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="25408"/>
|
|
</dependencies>
|
|
<objects>
|
|
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
|
|
<connections>
|
|
<outlet property="delegate" destination="450" id="451"/>
|
|
</connections>
|
|
</customObject>
|
|
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
|
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
|
<menu title="AMainMenu" systemMenu="main" id="29" userLabel="MainMenu">
|
|
<items>
|
|
<menuItem title="TextEdit by Cappuccino" id="56">
|
|
<menu key="submenu" title="TextEdit by Cappuccino" systemMenu="apple" id="57">
|
|
<items>
|
|
<menuItem title="About TextEdit by Cappuccino" id="58">
|
|
<modifierMask key="keyEquivalentModifierMask"/>
|
|
<connections>
|
|
<action selector="orderFrontStandardAboutPanel:" target="-2" id="142"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem isSeparatorItem="YES" id="236">
|
|
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
|
</menuItem>
|
|
<menuItem title="Settings…" keyEquivalent="," id="129"/>
|
|
</items>
|
|
</menu>
|
|
</menuItem>
|
|
<menuItem title="File" id="83">
|
|
<menu key="submenu" title="File" id="81">
|
|
<items>
|
|
<menuItem title="New" keyEquivalent="n" id="82">
|
|
<connections>
|
|
<action selector="newDocument:" target="-1" id="373"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem title="Open…" keyEquivalent="o" id="72">
|
|
<connections>
|
|
<action selector="openDocument:" target="-1" id="374"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem title="Open Recent" id="124">
|
|
<menu key="submenu" title="Open Recent" systemMenu="recentDocuments" id="125">
|
|
<items>
|
|
<menuItem title="Clear Menu" id="126">
|
|
<connections>
|
|
<action selector="clearRecentDocuments:" target="-1" id="127"/>
|
|
</connections>
|
|
</menuItem>
|
|
</items>
|
|
</menu>
|
|
</menuItem>
|
|
<menuItem isSeparatorItem="YES" id="79">
|
|
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
|
</menuItem>
|
|
<menuItem title="Close" keyEquivalent="w" id="73">
|
|
<connections>
|
|
<action selector="performClose:" target="-1" id="193"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem title="Save" keyEquivalent="s" id="75">
|
|
<connections>
|
|
<action selector="saveDocument:" target="-1" id="362"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem title="Save As…" keyEquivalent="S" id="80">
|
|
<modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
|
|
<connections>
|
|
<action selector="saveDocumentAs:" target="-1" id="363"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem title="Revert to Saved" id="112">
|
|
<modifierMask key="keyEquivalentModifierMask"/>
|
|
<connections>
|
|
<action selector="revertDocumentToSaved:" target="-1" id="364"/>
|
|
</connections>
|
|
</menuItem>
|
|
</items>
|
|
</menu>
|
|
</menuItem>
|
|
<menuItem title="Edit" id="217">
|
|
<menu key="submenu" title="Edit" id="205">
|
|
<items>
|
|
<menuItem title="Undo" keyEquivalent="z" id="207">
|
|
<connections>
|
|
<action selector="undo:" target="-1" id="223"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem title="Redo" keyEquivalent="Z" id="215">
|
|
<modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
|
|
<connections>
|
|
<action selector="redo:" target="-1" id="231"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem isSeparatorItem="YES" id="206">
|
|
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
|
</menuItem>
|
|
<menuItem title="Allows Undo" id="KpR-5r-W4E">
|
|
<modifierMask key="keyEquivalentModifierMask"/>
|
|
<connections>
|
|
<action selector="toggleAllowsUndo:" target="-1" id="zMx-wC-uNv"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem isSeparatorItem="YES" id="cis-d4-OoI">
|
|
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
|
</menuItem>
|
|
<menuItem title="Cut" keyEquivalent="x" id="199">
|
|
<connections>
|
|
<action selector="cut:" target="-1" id="228"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem title="Copy" keyEquivalent="c" id="197">
|
|
<connections>
|
|
<action selector="copy:" target="-1" id="224"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem title="Paste" keyEquivalent="v" id="203">
|
|
<connections>
|
|
<action selector="paste:" target="-1" id="226"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem title="Delete" id="202">
|
|
<connections>
|
|
<action selector="delete:" target="-1" id="235"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem title="Select All" keyEquivalent="a" id="198">
|
|
<connections>
|
|
<action selector="selectAll:" target="-1" id="232"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem title="Insert Lorem Ipsum" id="FbT-zG-li9">
|
|
<modifierMask key="keyEquivalentModifierMask"/>
|
|
<connections>
|
|
<action selector="insertLoremIpsum:" target="-1" id="KPb-XT-4QY"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem isSeparatorItem="YES" id="214">
|
|
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
|
</menuItem>
|
|
<menuItem title="Find" id="218">
|
|
<menu key="submenu" title="Find" id="220">
|
|
<items>
|
|
<menuItem title="Find…" tag="1" keyEquivalent="f" id="209">
|
|
<connections>
|
|
<action selector="performFindPanelAction:" target="-1" id="241"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem title="Find Next" tag="2" keyEquivalent="g" id="208"/>
|
|
<menuItem title="Find Previous" tag="3" keyEquivalent="G" id="213">
|
|
<modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
|
|
</menuItem>
|
|
<menuItem title="Use Selection for Find" tag="7" keyEquivalent="e" id="221"/>
|
|
<menuItem title="Jump to Selection" keyEquivalent="j" id="210">
|
|
<connections>
|
|
<action selector="centerSelectionInVisibleArea:" target="-1" id="245"/>
|
|
</connections>
|
|
</menuItem>
|
|
</items>
|
|
</menu>
|
|
</menuItem>
|
|
<menuItem title="Spelling and Grammar" id="216">
|
|
<menu key="submenu" title="Spelling and Grammar" id="200">
|
|
<items>
|
|
<menuItem title="Show Spelling…" keyEquivalent=":" id="204">
|
|
<connections>
|
|
<action selector="showGuessPanel:" target="-1" id="230"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem title="Check Spelling" keyEquivalent=";" id="201">
|
|
<connections>
|
|
<action selector="checkSpelling:" target="-1" id="225"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem title="Check Spelling While Typing" id="219">
|
|
<connections>
|
|
<action selector="toggleContinuousSpellChecking:" target="-1" id="222"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem title="Check Grammar With Spelling" id="346">
|
|
<connections>
|
|
<action selector="toggleGrammarChecking:" target="-1" id="347"/>
|
|
</connections>
|
|
</menuItem>
|
|
</items>
|
|
</menu>
|
|
</menuItem>
|
|
<menuItem title="Substitutions" id="348">
|
|
<menu key="submenu" title="Substitutions" id="349">
|
|
<items>
|
|
<menuItem title="Smart Copy/Paste" tag="1" keyEquivalent="f" id="350">
|
|
<connections>
|
|
<action selector="toggleSmartInsertDelete:" target="-1" id="355"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem title="Smart Quotes" tag="2" keyEquivalent="g" id="351">
|
|
<connections>
|
|
<action selector="toggleAutomaticQuoteSubstitution:" target="-1" id="356"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem title="Smart Links" tag="3" keyEquivalent="G" id="354">
|
|
<modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
|
|
<connections>
|
|
<action selector="toggleAutomaticLinkDetection:" target="-1" id="357"/>
|
|
</connections>
|
|
</menuItem>
|
|
</items>
|
|
</menu>
|
|
</menuItem>
|
|
<menuItem title="Speech" id="211">
|
|
<menu key="submenu" title="Speech" id="212">
|
|
<items>
|
|
<menuItem title="Start Speaking" id="196">
|
|
<connections>
|
|
<action selector="startSpeaking:" target="-1" id="233"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem title="Stop Speaking" id="195">
|
|
<connections>
|
|
<action selector="stopSpeaking:" target="-1" id="227"/>
|
|
</connections>
|
|
</menuItem>
|
|
</items>
|
|
</menu>
|
|
</menuItem>
|
|
</items>
|
|
</menu>
|
|
</menuItem>
|
|
<menuItem title="View" id="295">
|
|
<menu key="submenu" title="View" id="296">
|
|
<items>
|
|
<menuItem title="Show Toolbar" keyEquivalent="t" id="297">
|
|
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
|
<connections>
|
|
<action selector="toggleToolbarShown:" target="-1" id="366"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem title="Customize Toolbar…" id="298">
|
|
<connections>
|
|
<action selector="runToolbarCustomizationPalette:" target="-1" id="365"/>
|
|
</connections>
|
|
</menuItem>
|
|
</items>
|
|
</menu>
|
|
</menuItem>
|
|
<menuItem title="Window" id="19">
|
|
<menu key="submenu" title="Window" systemMenu="window" id="24">
|
|
<items>
|
|
<menuItem title="Minimize" keyEquivalent="m" id="23">
|
|
<connections>
|
|
<action selector="performMiniaturize:" target="-1" id="37"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem title="Zoom" id="239">
|
|
<connections>
|
|
<action selector="performZoom:" target="-1" id="240"/>
|
|
</connections>
|
|
</menuItem>
|
|
<menuItem isSeparatorItem="YES" id="92">
|
|
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
|
|
</menuItem>
|
|
<menuItem title="Bring All to Front" id="5">
|
|
<connections>
|
|
<action selector="arrangeInFront:" target="-1" id="39"/>
|
|
</connections>
|
|
</menuItem>
|
|
</items>
|
|
</menu>
|
|
</menuItem>
|
|
<menuItem title="Help" id="103">
|
|
<menu key="submenu" title="Help" id="106">
|
|
<items>
|
|
<menuItem title="TextEdit by Cappuccino Help" keyEquivalent="?" id="111">
|
|
<connections>
|
|
<action selector="showHelp:" target="-1" id="360"/>
|
|
</connections>
|
|
</menuItem>
|
|
</items>
|
|
</menu>
|
|
</menuItem>
|
|
</items>
|
|
<point key="canvasLocation" x="-203" y="129"/>
|
|
</menu>
|
|
<customObject id="450" customClass="AppController"/>
|
|
</objects>
|
|
</document>
|