image-path save-panel [ save-image ] when* ;
! Handle Open events from the Finder
-CLASS: FactorWorkspaceApplicationDelegate < FactorApplicationDelegate
+<CLASS: FactorWorkspaceApplicationDelegate < FactorApplicationDelegate
METHOD: void application: id app openFiles: id files [ files finder-run-files ] ;
METHOD: id switchDarkTheme: id app [ dark-mode f ] ;
+ METHOD: id switchWombatTheme: id app [ wombat-mode f ] ;
+
+ METHOD: id switchBase16Theme: id app [ base16-mode f ] ;
+
METHOD: id refreshAll: id app [ [ refresh-all ] \ refresh-all call-listener f ] ;
-;
+;CLASS>
-: install-app-delegate ( -- )
+: install-workspace-delegate ( -- )
NSApp FactorWorkspaceApplicationDelegate install-delegate ;
! Service support; evaluate Factor code from other apps
dup [ quot call( string -- result/f ) ] when
[ pboard set-pasteboard-string ] when* ;
-CLASS: FactorServiceProvider < NSObject
+<CLASS: FactorServiceProvider < NSObject
METHOD: void evalInListener: id pboard userData: id userData error: id error
[ pboard error [ eval-listener f ] do-service ] ;
pboard error
[ [ (eval>string) ] with-interactive-vocabs ] do-service
] ;
-;
+;CLASS>
: register-services ( -- )
NSApp
FUNCTION: void NSUpdateDynamicServices ( )
[
- install-app-delegate
+ install-workspace-delegate
"Factor.nib" load-nib
register-services
] cocoa-startup-hook set-global