Commit Graph
10 Commits
Author SHA1 Message Date
David Richardson 41a7004a53 Tests/Manual: Record more AppKit gaps in the TextEditor work list
Add the AppKit gaps found since the work list was created, and describe the visible effect of the window resize defect.

* WORKLIST.md: Add entries for CPBundleDisplayName, which AppKit ignores, and for the Show Toolbar menu item, which never reflects the toolbar state; state that a window shrunk to its minimum size can no longer be moved or resized, because hit testing uses the unclamped frame.
2026-10-23 14:52:36 -06:00
David Richardson 98c3611ade Tests/Manual: Name TextEditor TextEdit by Cappuccino
Give TextEditor a display name and a real bundle identifier, and replace the template copyright and author placeholders.

* Info.plist: Set the bundle identifier to dev.cappuccino.TextEditor, add the display name TextEdit by Cappuccino, and state the MIT license in the copyright string.
* Jakefile: Set the same bundle identifier and remove the placeholder email.
* Resources/MainMenu.xib, Resources/MainMenu.cib: Use the display name in the application menu, About and Help items.
2026-10-23 14:41:45 -06:00
David Richardson e3a3cf6bcd Tests/Manual: Remove Internet Explorer markup from TextEditor html launch pages
Remove the conditional comments for Internet Explorer 8 and 9 that the capp gen template added, since no supported browser reads them.

* index.html, index-debug.html: Remove the X-UA-Compatible meta elements and their IE conditional comments.
2026-10-23 14:18:45 -06:00
David Richardson 1944382e0e Tests/Manual: Clamp TextEditor document windows to a minimum size
Stop document windows from shrinking below a usable size, and record the AppKit gaps that TextEditor has found.

* DocumentWindowController.j: Implement windowWillResize:toSize: to keep the window at or above provisional minimum dimensions.
* WORKLIST.md: Add a work list of the AppKit gaps found by TextEditor, the planned additions to the app and the tests done.
2026-10-22 19:05:35 -06:00
David Richardson 24b760b306 Tests/Manual: Declare the TextEditor bundle type and identifier
Add the bundle package type and identifier to the TextEditor Info.plist, so that the build does not have to derive them.

* Info.plist: Add CPBundlePackageType APPL and CPBundleIdentifier.
2026-10-22 19:04:57 -06:00
David Richardson f4109c0ee4 Enable “Undo” functionality
Undo was not enabled in the IB NSTextView attributes.
Enable it.
2026-10-22 16:59:30 -06:00
David Richardson 459a61af58 Tests/Manual: Show a horizontal ruler in the TextEditor document window
Turn on the text view's horizontal ruler in code, because nib2cib does not carry the Interface Builder ruler settings into the cib.

* DocumentWindowController.j: Enable the horizontal ruler on the text view's enclosing scroll view in windowDidLoad, with a comment explaining why it is set up in code.
* Resources/MainMenu.xib, Resources/MainMenu.cib: Remove the Insert Lorem Ipsum key equivalent, which duplicated File > New.
2026-10-22 16:49:29 -06:00
David Richardson 080d9e723e Tests/Manual: Add a text view and Lorem Ipsum insertion to TextEditor
Give the document window a scrolling text view and a toolbar, and add an Edit menu item that inserts placeholder text into the active document.

* LoremIpsum.j: Add a class that supplies the traditional Lorem ipsum passage as static text.
* DocumentWindowController.j: Add a textView outlet and an insertLoremIpsum: action that inserts the placeholder text at the selection through insertText:, so the document's undo manager records it.
* Resources/DocumentWindow.xib, Resources/DocumentWindow.cib: Add a text view in a scroll view that resizes with the window, a toolbar with the default items, and the textView outlet connection.
* Resources/MainMenu.xib, Resources/MainMenu.cib: Add an Insert Lorem Ipsum item to the Edit menu that sends insertLoremIpsum: to First Responder.
2026-10-22 16:33:40 -06:00
David Richardson b58be16e8a Tests/Manual: Make TextEditor a document-based application
Move the main window out of MainMenu.xib into a document window owned by a window controller, so that each document opens in its own window.

* Document.j: Add a CPDocument subclass that creates a DocumentWindowController for each document.
* DocumentWindowController.j: Add a CPWindowController subclass that loads DocumentWindow.cib and sets itself as the window's delegate.
* Resources/DocumentWindow.xib, Resources/DocumentWindow.cib: Add the document window, with DocumentWindowController as File's Owner.
* Resources/MainMenu.xib, Resources/MainMenu.cib: Remove the window, name the application menu Text Editor, rename Preferences to Settings, and remove Quit.
* AppController.j: Remove the window outlet and the code that made the window fill the browser.
* main.j: Import Document.j.
* Info.plist: Declare the Document type with Document as its document class.
2026-10-22 16:07:56 -06:00
David Richardson 71baddb0be Tests/Manual: Add TextEditor application licensed under MIT
Add a cib-based application generated by capp gen as the foundation for a document-based test application and tutorial, MIT licensed.

* The application is a starting point for new applications, so a permissive license lets developers copy its code into their own work without obligations beyond keeping the notice.
* AppController.j, main.j, Jakefile, index.html, index-debug.html: Replace the template header with an MIT header naming the author as copyright holder.
* main.j: Correct the file name in the header.
* Info.plist, Jakefile: Replace the template author placeholder with the author.
* LICENSE: Add the MIT License text.
* Resources/MainMenu.xib, Resources/MainMenu.cib: Add the template main menu.
2026-10-22 14:57:43 -06:00