Difference between revisions of "Talk:Portal:Mac"
From Free Pascal wiki
Jump to navigationJump to search (→Trev's Mac Portal ToDo List: Update) |
m (→Cross-Platform To Do: Wiki op check) |
||
(95 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | {{Note|A list of macOS items, techniques etc to document in the Mac Portal}} | + | {{Note|A list of macOS items, native code techniques etc to document in the Mac Portal}} |
==Trev's Mac Portal ToDo List== | ==Trev's Mac Portal ToDo List== | ||
+ | |||
+ | ===Done=== | ||
* <strike>The open command (man open) for external applications, documents, urls etc</strike> | * <strike>The open command (man open) for external applications, documents, urls etc</strike> | ||
− | * Drag and drop files on form example | + | * <strike>Drag and drop files on form example</strike> |
* <strike>Bouncing application dock icons example</strike> | * <strike>Bouncing application dock icons example</strike> | ||
+ | * <strike>Get macOS default application name</strike> | ||
+ | * <strike>macOS file associations (see macOS_tips.txt)</strike> | ||
+ | * <strike>Implement NSSound delegate for [[macOS NSSound]]</strike> | ||
+ | * <strike>Finish off System Sound Services, eg completion handler, error msgs for [[macOS Play Alert Sound]]</strike> | ||
+ | * <strike>How to hide the dock when starting an application (macOS_tips.txt)</strike> | ||
+ | * <strike>AVMidiPlayer (MacPortalToDo.txt)</strike> | ||
+ | * <strike>NSBundle paths (apart from Resource)</strike> | ||
+ | * <strike>NSProcessInfo</strike> | ||
+ | * <strike>Finish the code and description for [[macOS NSURLConnection]].</strike> | ||
+ | * <strike>[[macOS NSURLSession]] started; system-provided delegates & completion handler example done. Custom delegates done.</strike> | ||
+ | * <strike>Example of using [[macOS Gestures]] for a trackpad</strike> | ||
+ | * <strike>[[macOS App Nap]]</strike> | ||
+ | * <strike>Clarify unloading of dynamic library to [[macOS Dynamic Libraries]]</strike> | ||
+ | * <strike>NSApplication Delegates - done for [[macOS App Nap]]</strike> | ||
+ | * <strike>[[macOS Application Dock Menu]] to do ...</strike> | ||
+ | * <strike>[[macOS property list files|Protected Resources]]: https://developer.apple.com/documentation/bundleresources/information_property_list/protected_resources</strike> | ||
+ | * <strike>[[macOS Drawers]] examples done.</strike> | ||
+ | * <strike>[[Mac Show Application Title, Version, and Company|Cocoa About Boxes]]</strike> | ||
+ | * <strike>[[macOS SCNetworkReachability API]] * Detect Internet access or not (laz_network_reachable) </strike> | ||
+ | * <strike> [[Mac_Preferences_Read_and_Write#NSUserDefaults|NSUserDefaults]] - serious problems iOS 9 & macOS 10.12/10.13</strike> | ||
+ | * <strike>[[macOS NSAlert|NSAlert modal dialog or sheet]] attached to a window. See https://developer.apple.com/documentation/appkit/nsalert</strike> | ||
+ | * <strike>[[macOS NSRegularExpression]] article</strike> | ||
+ | * <strike>[[macOS NSString Regular Expressions]] article</strike> | ||
+ | * <strike>Save form state (position and size) using Mac preferences system: [[macOS Form Position Save and Restore]]</strike> | ||
+ | * <strike>AVPlayer - AVKit and AVFoundation [[macOS Video Player]]</strike> | ||
+ | * <strike>[[macOS Progress Indicators]]</strike> | ||
+ | * <strike>[[macOS_NSURLSession#Downloading_files_with_graphical_user_interface_feedback|Updating the GUI from a non-main thread]] (eg NSURLSession progress etc)</strike> | ||
+ | * <strike>[[macOS NSStatusBar|Adding application status items to the menu bar]]</strike> | ||
+ | * <strike>[[lNet_examples#Lazarus_SMTP_client_example_for_macOS|macOS email client using lNet library]]</strike> | ||
+ | * <strike>[[Synapse#Advanced_SMTP_client|macOS email client using Synapse library]]</strike> | ||
+ | |||
+ | ===In progress=== | ||
+ | |||
+ | * [[macOS daemons and agents]] new macOS daemons and agents page - done but: | ||
+ | ** awaiting code examples: boot script; monitor script; login agent to do(?) | ||
+ | ** system-wide launch daemons - done (still need launch_activate_socket() for servers) | ||
+ | * [[macOS Energy Efficiency Guide]] - started, in progress | ||
+ | * Add full project source code to SourceForge for all my examples... will take a while. | ||
+ | |||
+ | ===Stalled=== | ||
+ | |||
+ | * UNUserNotificationCenter notification for Big Sur [stalled] | ||
+ | |||
+ | ===To do=== | ||
+ | |||
* Retrieving file attributes | * Retrieving file attributes | ||
* Alain's AudioQueue example | * Alain's AudioQueue example | ||
− | * | + | * AVSpeechSynthesizer |
− | * | + | * NSFileManager (mentioned in [[macOS NSURLSession]]) |
− | * | + | * 64 bit Global HotKey (Carbon units needed - see MacPortalToDo.txt) |
− | * | + | * Screenshot (see MacPortalToDo.txt) |
− | * | + | * [https://developer.apple.com/documentation/coreservices/file_system_events File System Events] + packages/univint/src/FSEvents.pas |
− | * < | + | * [https://developer.apple.com/documentation/security/preventing_insecure_network_connections?language=objc Preventing Insecure Network Connections] |
− | * | + | ** [https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html Cocoa Keys] |
− | * | + | * macoS versions and missing features in older versions page (see [[Accessing_macOS_System_Information#Gestalt_Manager|this page section]] for the approach). |
+ | * Using WKWebView (10.10+) - see [https://forum.lazarus.freepascal.org/index.php/topic,42001 this forum thread] | ||
+ | * Logging in macOS: https://developer.apple.com/documentation/os/logging | ||
+ | * String assignment post 2019 (find it and add to Tips) ??? | ||
+ | * Detect "best" web browser - up to 10.15 <tt>LSCopyAllHandlersForURLScheme(CFSTR("https"))</tt> then <tt>LSCopyApplicationURLsForURL</tt> - see LSInfo.pas | ||
+ | * Distribute via app store https://developer.apple.com/forums/thread/128166 | ||
+ | * To reload the plist file manually (avoid cached copy), use defaults read <filename>.plist to read the new plist values or maybe | ||
+ | killall cfprefsd && killall Finder | ||
+ | |||
+ | == Cross-Platform To Do == | ||
+ | |||
+ | * OpenSSL, LibreSSL, etc |
Latest revision as of 00:02, 3 May 2022
Note: A list of macOS items, native code techniques etc to document in the Mac Portal
Trev's Mac Portal ToDo List
Done
The open command (man open) for external applications, documents, urls etcDrag and drop files on form exampleBouncing application dock icons exampleGet macOS default application namemacOS file associations (see macOS_tips.txt)Implement NSSound delegate for macOS NSSoundFinish off System Sound Services, eg completion handler, error msgs for macOS Play Alert SoundHow to hide the dock when starting an application (macOS_tips.txt)AVMidiPlayer (MacPortalToDo.txt)NSBundle paths (apart from Resource)NSProcessInfoFinish the code and description for macOS NSURLConnection.macOS NSURLSession started; system-provided delegates & completion handler example done. Custom delegates done.Example of using macOS Gestures for a trackpadmacOS App NapClarify unloading of dynamic library to macOS Dynamic LibrariesNSApplication Delegates - done for macOS App NapmacOS Application Dock Menu to do ...Protected Resources: https://developer.apple.com/documentation/bundleresources/information_property_list/protected_resourcesmacOS Drawers examples done.Cocoa About BoxesmacOS SCNetworkReachability API * Detect Internet access or not (laz_network_reachable)NSUserDefaults - serious problems iOS 9 & macOS 10.12/10.13NSAlert modal dialog or sheet attached to a window. See https://developer.apple.com/documentation/appkit/nsalertmacOS NSRegularExpression articlemacOS NSString Regular Expressions articleSave form state (position and size) using Mac preferences system: macOS Form Position Save and RestoreAVPlayer - AVKit and AVFoundation macOS Video PlayermacOS Progress IndicatorsUpdating the GUI from a non-main thread (eg NSURLSession progress etc)Adding application status items to the menu barmacOS email client using lNet librarymacOS email client using Synapse library
In progress
- macOS daemons and agents new macOS daemons and agents page - done but:
- awaiting code examples: boot script; monitor script; login agent to do(?)
- system-wide launch daemons - done (still need launch_activate_socket() for servers)
- macOS Energy Efficiency Guide - started, in progress
- Add full project source code to SourceForge for all my examples... will take a while.
Stalled
- UNUserNotificationCenter notification for Big Sur [stalled]
To do
- Retrieving file attributes
- Alain's AudioQueue example
- AVSpeechSynthesizer
- NSFileManager (mentioned in macOS NSURLSession)
- 64 bit Global HotKey (Carbon units needed - see MacPortalToDo.txt)
- Screenshot (see MacPortalToDo.txt)
- File System Events + packages/univint/src/FSEvents.pas
- Preventing Insecure Network Connections
- macoS versions and missing features in older versions page (see this page section for the approach).
- Using WKWebView (10.10+) - see this forum thread
- Logging in macOS: https://developer.apple.com/documentation/os/logging
- String assignment post 2019 (find it and add to Tips) ???
- Detect "best" web browser - up to 10.15 LSCopyAllHandlersForURLScheme(CFSTR("https")) then LSCopyApplicationURLsForURL - see LSInfo.pas
- Distribute via app store https://developer.apple.com/forums/thread/128166
- To reload the plist file manually (avoid cached copy), use defaults read <filename>.plist to read the new plist values or maybe
killall cfprefsd && killall Finder
Cross-Platform To Do
- OpenSSL, LibreSSL, etc