12 Commits
Author SHA1 Message Date
Michael 4aa9659aab Resolve small deprecation warnings 2024-07-11 07:38:03 -04:00
Michael c6c760adc1 Modify TPCResourceManager
Replace -loadContentsOfPropertyListInResources: with type safe methods which are highly configurable. Also adds cache storage for results that can be evicted instead of using dispatch_once.
2024-07-04 21:31:23 -04:00
Michael 8d28e428f5 Fix many, many typos
Import external libraries with similar fixes as well
2024-06-21 20:42:32 -04:00
Michael 46afe21322 Discard a bunch of drawing code
Everything trashed is related to drawing on earlier than macOS 11.0 which we no longer target
2024-06-16 15:19:41 -04:00
Michael 7a17baf4b1 Update license information/copyright year
Dates within source files were changed to reflect the last time the file was modified.
2020-10-28 18:15:42 -04:00
Michael 45fea6d693 Modernize Textual
Notable changes:

Notable changes (incomplete):
• Changed all projects minimum target to OS X 10.12
• All xib files and custom view source files have been modified to use auto layout, NSGridView, NSStackView, and other modern features wherever possible. Hacks such as specifying heights, offsets, etc. for multiple appearances spanning multiple operating systems are no longer needed because auto layout and related systems are solid back to our target.
• In response to system-wide changes made in macOS Big Sur the width of the Preferences window has been expanded to a minimum 670.
• Deprecated Cocoa APIs have been replaced with their modern equivalents.
• The System Profiler plugin has been modified to simplify the process of requesting model information from Apple. The previous class (TPISystemProfilerModelIDRequestController), now named TPISystemProfilerModelRequest, at one time used XML parser to retrieve value of a single element. This made maintainability difficult. It now uses a simple regular expression.
• Optional extensions (Blowfish Encryption, Caffeine, and Wiki Style Link Parser) had their versions bumped and repackaged into installer. Their xib files were modified to accommodate the new width of Preferences.
• The Blowfish Encryption extension has been updated to libressl 3.1.4.
• All code related to the never completed "Buddy List" dialog has been stripped. There is no interest in continuing development of it.
2020-10-15 11:20:09 -04:00
Michael fea1e89a4a Always assign nil to self.appearance when appKitAppearanceTarget is not applicable
When a specific appearance is used, self.appearance may be assigned an NSAppearance object. When system appearance is used, the target specifies that self.appearance shouldn't contain a value so that it can be inherited, but because we were only setting self.appearance when appKitAppearanceTarget is applicable; the NSAppearance object already set was never unset.
2018-07-22 05:08:58 -04:00
Michael beade7b612 Move to current best practices for enums and constant strings.
For enums, place case at end instead of in middle. For example: IRCClientConnectNormalMode turns into IRCClientConnectModeNormal

For constant strings, when appropriate, use an extensible string enum. Either one of those from Foundation (NSNotificationName, NSErrorDomain) or typedef our own.
2018-07-17 22:08:20 -04:00
Michael 9f40734d3b Modify spell checker for main text field
The main text field now exposes -resetSpellingIgnores in its private header which resets its ignored words list to self.defaultSpellingIgnores.

self.defaultSpellingIgnores returns contents from StaticStore.plist.

Current ignores:
"deop" so it stops auto correcting to "/cs drop"
2018-07-13 10:13:01 -04:00
Michael beac192cc1 Revert to calling -recalculateTextViewSizeForced in next main queue pass
I was doing too much work in -updateConstraints
2018-07-13 09:45:32 -04:00
Michael 87812dbc0a Refactor localization system
• Added TLOLocalization.swift which is a Swift implementation of the localization system. TXTLS() and its sister functions are bridged to this implementation.
• The TLOLanguagePreferences class no longer exists. This class was used only as a convenience to TXTLS() and its sister functions. I don't know of any and/or why a plugin may access these, so they were not deprecated.
• The TLOLanguagePreferences files have been renamed to TLOLocalization as the latter better suites its purpose.
2018-07-12 07:22:40 -04:00
Michael 2e236abb64 Reorganize project
Many resources have been added to Textual with little thought for long term maintenance. This commit is an overdue overhaul of the entire project. The goals of this overhaul was to introduce as much consistency as possible to the project.

Some notable changes:

• Code signing identity file has moved to "Configurations/Build"
• All build configuration files, including entitlements, moved to "Configurations"
• Source code for the app has moved to "Sources/App"
• Shared source code has moved to "Sources/Shared"
• Source code for extensions have moved to "Sources/Plugins"
• The project file for the app has moved along with its source code. It's recommended to use the Textual.xcworkspace workspace file.
• Build scripts are no longer packaged within the project files.
• Folders are now used throughout most projects instead of groups.
• Removed a lot of redundant framework linking.
• The preference panel sample plugin has been modified to use standard Cocoa facilities instead of those that are project specific. e.g. NSUserDefaults and NSLog() instead of TPCPreferencesUserDefaults and LogToConsole()
2018-07-04 04:55:28 -04:00