Changeset 6735
- Timestamp:
- Jun 15, 2007, 4:27:31 AM (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
r6726 r6735 27 27 (:metaclass ns:+ns-object)) 28 28 29 (defclass lisp-preferences-window-controller (ns:ns-window-controller)29 (defclass font-name-transformer (ns:ns-value-transformer) 30 30 () 31 31 (:metaclass ns:+ns-object)) 32 33 (objc:defmethod #/transformedNameClass ((self +font-name-transformer)) 34 ns:ns-string) 35 36 37 (objc:defmethod (#/allowsReverseTransformation :<BOOL>) 38 ((self +font-name-transformer)) 39 nil) 40 41 (objc:defmethod #/transformValue ((self font-name-transformer) value) 42 ;; Is there any better way of doing this that doesn't involve 43 ;; making a font ? 44 (#/displayName (make-instance ns:ns-font 45 :with-name value 46 :size (float 12.0 +cgfloat-zero+)))) 47 48 49 50 (defclass lisp-preferences-window-controller (ns:ns-window-controller) 51 ((selected-font-index :foreign-type :int)) 52 (:metaclass ns:+ns-object)) 53 54 (objc:defmethod (#/fontPanelForDefaultFont: :void) 55 ((self lisp-preferences-window-controller) sender) 56 (with-slots (selected-font-index) self 57 (setq selected-font-index 1)) 58 (#/orderFrontFontPanel: *NSApp* sender)) 59 60 61 (objc:defmethod (#/fontPanelForModelineFont: :void) 62 ((self lisp-preferences-window-controller) sender) 63 (with-slots (selected-font-index) self 64 (setq selected-font-index 2)) 65 (#/orderFrontFontPanel: *NSApp* sender)) 66 67 (objc:defmethod (#/changeFont: :void) ((self lisp-preferences-window-controller) sender) 68 #+debug (#_NSLog #@"ChangeFont.") 69 (with-slots ((idx selected-font-index)) self 70 (when (> idx 0) 71 (let* ((f (#/convertFont: sender (default-font)))) 72 (when (is-fixed-pitch-font f) 73 (let* ((values (#/values (#/sharedUserDefaultsController ns:ns-user-defaults-controller)))) 74 (#/setValue:forKey: values (#/fontName f) (if (eql 1 idx) #@"defaultFontName" #@"modelineFontName:")) 75 (#/setValue:forKey: values (#/stringWithFormat: ns:ns-string #@"%u" (round (#/pointSize f))) (if (eql 1 idx) #@"defaultFontSize" #@"modelineFontSize")))))))) 32 76 33 77 … … 58 102 (t 59 103 (update-cocoa-defaults) 60 (let* ((sdc (#/sharedUserDefaultsController ns:ns-user-defaults-controller))) 104 (#/setValueTransformer:forName: 105 ns:ns-value-transformer 106 (make-instance 'font-name-transformer) 107 #@"FontNameTransformer") 108 (let* ((sdc (make-instance ns:ns-user-defaults-controller 109 :with-defaults +null-ptr+ 110 :initial-values (cocoa-defaults-initial-values)))) 61 111 (#/setAppliesImmediately: sdc nil) 62 112 (let* ((controller (make-instance lisp-preferences-window-controller … … 64 114 (window (#/window controller))) 65 115 (unless (%null-ptr-p window) 66 (#/setFloatingPanel: window nil)116 (#/setFloatingPanel: window t) 67 117 (dolist (d (cocoa-defaults)) 68 118 (let* ((key (objc-constant-string-nsstringptr (cocoa-default-string d)))) … … 85 135 (#/sharedPanel class))) 86 136 137 138 (objc:defmethod (#/makeKeyAndOrderFront: :void) 139 ((self lisp-preferences-panel) sender) 140 (#/setShowsAlpha: (#/sharedColorPanel ns:ns-color-panel) t) 141 (call-next-method sender)) 142 87 143 (objc:defmethod (#/show :void) ((self lisp-preferences-panel)) 88 144 (#/makeKeyAndOrderFront: self +null-ptr+))
Note:
See TracChangeset
for help on using the changeset viewer.
