Changeset 6746
- Timestamp:
- Jun 16, 2007, 7:17:37 PM (17 years ago)
- File:
-
- 1 edited
-
branches/ide-1.0/ccl/examples/cocoa-prefs.lisp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/ide-1.0/ccl/examples/cocoa-prefs.lisp
r6735 r6746 81 81 82 82 83 (objc:defmethod (#/observeValueForKeyPath:ofObject:change:context: :void) 84 ((self lisp-preferences-panel) 85 path 86 object 87 change 88 (key (:* :void))) 89 (declare (ignorable path object change key)) 90 (#_NSLog #@"key = %@, path = %@, change = %@" :id key :id path :id change) 91 (let* ((default (find key (cocoa-defaults) 92 :key (lambda (d) 93 (objc-constant-string-nsstringptr (cocoa-default-string d))) 94 :test #'#/isEqualToString:))) 95 (when default 96 (let* ((newval (#/valueForKey: (#/values object) key))) 97 (unless (%null-ptr-p newval) 98 (update-cocoa-default default newval)))))) 83 99 84 100 85 (objc:defmethod #/sharedPanel ((self +lisp-preferences-panel)) … … 106 91 (make-instance 'font-name-transformer) 107 92 #@"FontNameTransformer") 108 (let* ((sdc (make-instance ns:ns-user-defaults-controller 109 :with-defaults +null-ptr+ 110 :initial-values (cocoa-defaults-initial-values)))) 111 (#/setAppliesImmediately: sdc nil) 93 (let* ((sdc (#/sharedUserDefaultsController ns:ns-user-defaults-controller))) 94 (#/setInitialValues: sdc (#/setAppliesImmediately: sdc nil)) 95 (cocoa-defaults-initial-values) 112 96 (let* ((controller (make-instance lisp-preferences-window-controller 113 97 :with-window-nib-name #@"preferences")) … … 115 99 (unless (%null-ptr-p window) 116 100 (#/setFloatingPanel: window t) 117 (dolist (d (cocoa-defaults)) 118 (let* ((key (objc-constant-string-nsstringptr (cocoa-default-string d)))) 119 (#/addObserver:forKeyPath:options:context: 120 sdc 121 window 122 (#/stringWithFormat: ns:ns-string #@"values.%@" key) 123 0 124 key))) 101 (#/addObserver:selector:name:object: 102 (#/defaultCenter ns:ns-notification-center) 103 controller 104 (@selector #/defaultsChanged:) 105 #&NSUserDefaultsDidChangeNotification 106 (#/standardUserDefaults ns:ns-user-defaults)) 107 #+debug (#_NSLog #@"sdc = %@" :id sdc) 125 108 (setq *lisp-preferences-panel* window))))))) 126 127 128 129 130 109 131 110 … … 144 123 (#/makeKeyAndOrderFront: self +null-ptr+)) 145 124 125 (objc:defmethod (#/defaultsChanged: :void) 126 ((self lisp-preferences-window-controller) 127 notification) 128 (declare (ignore notification)) 129 (update-cocoa-defaults)) 130 146 131 147 132
Note:
See TracChangeset
for help on using the changeset viewer.
