Difference between revisions of "Talk:Portal:Mac"

From Free Pascal wiki
Jump to navigationJump to search
m (→‎Cross-Platform To Do: Wiki op check)
 
(103 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}}
  
==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
* Get macOS default browser name (see https://stackoverflow.com/questions/44778078/get-macos-default-browser-name-lscopydefaultapplicationurlforcontenttype)
+
* 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

Light bulb  Note: A list of macOS items, native code techniques etc to document in the Mac Portal

Trev's Mac Portal ToDo List

Done

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

killall cfprefsd && killall Finder

Cross-Platform To Do

  • OpenSSL, LibreSSL, etc