- Timestamp:
- Dec 2, 2007, 3:01:36 AM (17 years ago)
- Location:
- branches/working-0711/ccl/cocoa-ide
- Files:
-
- 9 added
- 1 deleted
- 29 edited
- 1 copied
-
README (modified) (1 diff)
-
app-delegate.lisp (modified) (1 diff)
-
apropos-window.lisp (modified) (4 diffs)
-
build-application.lisp (modified) (4 diffs)
-
builder-utilities.lisp (modified) (1 diff)
-
cocoa-application.lisp (modified) (1 diff)
-
cocoa-backtrace.lisp (modified) (8 diffs)
-
cocoa-defaults.lisp (modified) (8 diffs)
-
cocoa-doc.lisp (modified) (1 diff)
-
cocoa-editor.lisp (modified) (21 diffs)
-
cocoa-grep.lisp (modified) (2 diffs)
-
cocoa-inspector.lisp (modified) (2 diffs)
-
cocoa-listener.lisp (modified) (12 diffs)
-
cocoa-prefs.lisp (modified) (4 diffs)
-
cocoa-typeout.lisp (modified) (4 diffs)
-
cocoa-utils.lisp (modified) (8 diffs)
-
cocoa-window.lisp (modified) (9 diffs)
-
cocoa.lisp (modified) (1 diff)
-
compile-hemlock.lisp (modified) (1 diff)
-
defsystem.lisp (added)
-
fasls (added)
-
hemlock/src/archive (added)
-
hemlock/src/archive/elisp (added)
-
hemlock/src/archive/spell (added)
-
hemlock/src/archive/tty (added)
-
hemlock/src/archive/wire (added)
-
hemlock/src/listener.lisp (modified) (1 diff)
-
hemlock/src/macros.lisp (modified) (1 diff)
-
hemlock/src/srccom.lisp (deleted)
-
hemlock/src/symbol-completion.lisp (modified) (1 diff)
-
hemlock/unused/archive (copied) (copied from branches/working-0711/ccl/cocoa-ide/hemlock/src/archive )
-
ide-bundle.lisp (added)
-
ide-contents/Resources/English.lproj/apropos.nib/classes.nib (modified) (2 diffs)
-
ide-contents/Resources/English.lproj/apropos.nib/info.nib (modified) (1 diff)
-
ide-contents/Resources/English.lproj/apropos.nib/keyedobjects.nib (modified) ( previous)
-
ide-contents/Resources/English.lproj/preferences.nib/info.nib (modified) (1 diff)
-
ide-contents/Resources/English.lproj/preferences.nib/keyedobjects.nib (modified) ( previous)
-
preferences.lisp (modified) (2 diffs)
-
processes-window.lisp (modified) (1 diff)
-
start.lisp (added)
Legend:
- Unmodified
- Added
- Removed
-
branches/working-0711/ccl/cocoa-ide/README
r6955 r7804 1 July 22, 20071 November 20, 2007 2 2 3 3 This directory contains sources and other resources needed to build 4 a Cocoa-based IDE for OpenMCL on OSX.4 a Cocoa-based IDE for Clozure CL on OSX. 5 5 6 6 The IDE uses the ObjC bridge (in ccl/objc-bridge/) to communicate 7 7 with the ObjC runtime. 8 8 9 "./OpenMCL.app" is a skeletal application bundle which contains nib 10 files, icons, and other resources used by the IDE. 9 The "./ide-contents" directory contains nib files, icons and other 10 resources used by the IDE. These are copied to the application bundle 11 by the build process. 11 12 12 13 The "./hemlock" directory contains a hacked up version of Portable 13 Hemlock (forked from the main Portable Hemlock tree a fewyears ago.)14 Hemlock (forked from the main Portable Hemlock tree some years ago.) 14 15 Hemlock is public domain Emacs-like editor that comes with CMUCL; 15 16 Portable Hemlock is an attempt to "free Hemlock from its CMUCL prison" 16 17 (e.g., remove dependencies on CMUCL). Hemlock (and Portable Hemlock) 17 18 were designed to use CLX for display and event processing; the version 18 distributed here tries to use the Cocoa text system for that 19 functionality. Much of the initial work on Portable Hemlock was done 20 by Gilbert Baumann. 19 distributed here uses the Cocoa text system for that functionality. 20 Much of the initial work on Portable Hemlock was done by Gilbert Baumann. 21 21 22 To run the IDE from within a n OpenMCLsession (a shell, Emacs shell22 To run the IDE from within a ccl command-line session (a shell, Emacs shell 23 23 buffer, under SLIME or ILisp or ...), do: 24 24 25 25 ? (require "COCOA") 26 26 27 The first time this is run, it'll compile the Hemlock sources; that'll28 take several seconds and generate lots of compiler warnings. You'll 29 also see messages noting that various new ObjC-callable methods are 30 being define. When the loading process completes, you should see 31 a new menubar, an OpenMCL Dock icon (an aqua-colored Lambda originally 32 contributed by Brendan Burns), and a Listener window. The listener 33 process from which the REQUIRE was issued will remain active; you 34 may see warning/diagnostic/error messages from the IDE directed to27 The first time this is run, it'll compile the sources, generating lots 28 of compiler warnings. You'll also see messages noting that various 29 new ObjC-callable methods are being defined. When the loading process 30 completes, it creates a temporary application bundle in "ccl:temp 31 bundle.app" and activates it. You should see a new menubar, a 32 listener window, and a Clozure CL icon in the Dock. The non-GUI 33 listener process from which the REQUIRE was issued will remain active; 34 you may see warning/diagnostic/error messages from the IDE directed to 35 35 the standard output/error streams associated with that listener. 36 36 (Under SLIME, these messages might appear in the *inferior lisp* 37 37 buffer.) 38 38 39 It's also possible to populate the "OpenMCL.app" applicationbundle,40 effectively making it a double-clickable application. To do this, 41 youcan do:39 It's also possible to save the loaded IDE in a populated bundle, 40 effectively making it a double-clickable application. To do this, you 41 can do: 42 42 43 43 ? (require "COCOA-APPLICATION") 44 44 45 which will do what (REQUIRE "COCOA") does, then save an executable46 lisp image inside the "OpenMCL.app" bundle.Double-clicking on45 which will create an application bundle in "ccl:Clozure CL.app" 46 and save an executable lisp image inside it. Double-clicking on 47 47 that bundle in the Finder will launch the IDE; any diagnostic 48 messages/warnings/etc. will be written to /var/log/system.log.49 (Probably; this may depend on OS version.) 48 messages/warnings/etc. will be written to the system log, which 49 can be examined with the Console application. 50 50 51 51 The IDE depends on functionality introduced in OSX 10.4 (Tiger). 52 52 53 Note: CCL directory and IDE, preferences changes.54 53 55 The IDE uses the value of a key in the application's preferences56 database in order to find the "ccl" directory (and to thereby57 enable M-. to find source files and to enable the FFI and ObjC58 bridge to find interface definitions, among other things.)59 54 60 (Unlike some earlier versions, the IDE application itself shouldn't 61 need access to interfaces at runtime.) 55 *Note: CCL directory and IDE Preferences 62 56 63 The key can be set via the "CCL Directory" entry in the "Paths" pane 64 of the Preferences dialog. (The text associated with that entry is 65 static; the "Select ..." button near that entry can be used to 66 invoke a directory-selection dialog.) 57 Normally, the IDE assumes it is located at the top level of the "CCL" 58 directory. It uses the CCL directory to enable Meta-. to find the 59 system source files and require'd modules, among other things. If you 60 want to move the IDE somewhere else, e.g. to put it in the 61 Applications folder, but still want to be able to Meta-. and require 62 stuff from the CCL directory, you can set the "CCL Directory" entry in 63 the "Paths" pane of the Preferences dialog to the absolute path of the 64 directory containing the system sources. 67 65 68 66 The values of changed application preferences are stored in 69 "~/Library/Preferences/com.clozure. OpenMCL.plist"; if you have67 "~/Library/Preferences/com.clozure.Clozure CL.plist"; if you have 70 68 an old version of this file, it might be desirable to delete it 71 69 before invoking the IDE for the first time. 72 70 73 71 74 Note: rebuilding Hemlock 72 *Note: Interface files 75 73 76 All of the Hemlock sources that are used in the IDE basically 77 have to be recompiled whenever any of them change; some of the 78 Hemlock files have load-time side-effects and can only be 79 loaded once, and some files have to have been loaded in order 80 for others to compile. (Yes, this is possibly a job for 81 ASDF or some other DEFSYSTEM-like thing.) 82 83 To rebuild Hemlock (from the "tty" environment), do: 84 85 ? (require "COMPILE-HEMLOCK") 86 87 ? (ccl::compile-hemlock t) 88 89 That'll compile all of the Hemlock sources that the IDE uses, then 90 concatenate the resulting FASL files into a single 91 "ccl:cocoa-ide;hemlock.FASL" (where "FASL" denotes the 92 platform-specific FASL file extension.) 93 94 This happens automatically when HEMLOCK is REQUIREd and 95 "ccl:cocoa-ide;hemlock.lisp" is newer than the corresponding FASL (or 96 the FASL is missing); if the Hemlock FASL is present, it'll be used 97 (even if it's out-of-date with respect to the 98 ccl:cocoa-ide;hemlock;src;*lisp" files from which it's derived.) 99 100 In previous OpenMCL releases, "hemlock" and "OpenMCL" were both 101 at top-level in the "ccl" tree, and many of the files in the 102 "cocoa-ide" and "objc-bridge" directories were in "ccl:examples;". 103 104 Note: This README file should be much longer. 74 The standalone IDE bundle contains a copy of the FFI/ObjC interface 75 definition databases (i.e. the .cdb files) for its target platform in 76 Clozure CL.app/Contents/Resources/xxx-headers. If you create 77 additional databases that you want the IDE to access, you can just 78 copy them into the bundle. Conversely, if you'd rather use the 79 interface definitions in the CCL directory, just delete the ones in 80 the bundle. -
branches/working-0711/ccl/cocoa-ide/app-delegate.lisp
r7612 r7804 1 (in-package "CCL") 1 ;;;-*-Mode: LISP; Package: GUI -*- 2 ;;; 3 ;;; Copyright (C) 2007 Clozure Associates 2 4 3 (require "COCOA-DEFAULTS") 4 (require "PREFERENCES") 5 (require "PROCESSES-WINDOW") 6 (require "APROPOS-WINDOW") 5 (in-package "GUI") 7 6 8 7 (defclass lisp-application-delegate (ns:ns-object) -
branches/working-0711/ccl/cocoa-ide/apropos-window.lisp
r7596 r7804 1 (in-package "CCL") 1 ;;;-*-Mode: LISP; Package: GUI -*- 2 ;;; 3 ;;; Copyright (C) 2007 Clozure Associates 4 5 (in-package "GUI") 6 7 (defclass package-combo-box (ns:ns-combo-box) 8 ((packages :initform nil)) 9 (:metaclass ns:+ns-object)) 10 11 ;;; This is a premature optimization. Instead of calling LIST-ALL-PACKAGES 12 ;;; so frequently, just get a fresh copy when the user clicks in the 13 ;;; combo box. 14 (objc:defmethod (#/becomeFirstResponder :<BOOL>) ((self package-combo-box)) 15 (with-slots (packages) self 16 (setf packages (coerce (list-all-packages) 'vector)) 17 (setf packages (sort packages #'string-lessp :key #'package-name))) 18 (call-next-method)) 2 19 3 20 (defclass apropos-window-controller (ns:ns-window-controller) … … 6 23 :documentation "Bound to NSArrayController in nib file") 7 24 (array-controller :foreign-type :id :accessor array-controller) 25 (combo-box :foreign-type :id :accessor combo-box) 8 26 (table-view :foreign-type :id :accessor table-view) 27 (text-view :foreign-type :id :accessor text-view) 28 (external-symbols-checkbox :foreign-type :id 29 :accessor external-symbols-checkbox) 30 (shows-external-symbols :initform nil) 31 (symbol-list :initform nil) 32 (package :initform nil) 33 (input :initform nil) 9 34 (previous-input :initform nil :accessor previous-input 10 35 :documentation "Last string entered")) … … 22 47 (objc:defmethod (#/automaticallyNotifiesObserversForKey: :<BOOL>) ((self +apropos-window-controller) 23 48 key) 49 (declare (ignore key)) 24 50 nil) 25 51 26 52 (objc:defmethod (#/awakeFromNib :void) ((self apropos-window-controller)) 27 (#/setDoubleAction: (slot-value self 'table-view) (@selector #/inspectSelectedSymbol:))) 53 (with-slots (table-view text-view) self 54 (#/setString: text-view #@"") 55 (#/setDelegate: table-view self) 56 (#/setDoubleAction: table-view (@selector #/inspectSelectedSymbol:)))) 28 57 29 58 (objc:defmethod #/init ((self apropos-window-controller)) … … 38 67 (call-next-method)) 39 68 69 (objc:defmethod (#/toggleShowsExternalSymbols: :void) 70 ((self apropos-window-controller) sender) 71 (declare (ignore sender)) 72 (with-slots (shows-external-symbols) self 73 (setf shows-external-symbols (not shows-external-symbols)) 74 (update-symbol-list self) 75 (update-apropos-array self))) 76 77 (objc:defmethod (#/setPackage: :void) ((self apropos-window-controller) 78 sender) 79 (with-slots (combo-box package) self 80 (assert (eql sender combo-box)) 81 (with-slots (packages) sender 82 (let ((index (#/indexOfSelectedItem sender))) 83 (if (minusp index) 84 (setf package nil) ;search all packages 85 (setf package (svref packages index)))))) 86 (update-symbol-list self) 87 (update-apropos-array self)) 88 89 (defmethod update-symbol-list ((self apropos-window-controller)) 90 (with-slots (input package shows-external-symbols symbol-list) self 91 (when (plusp (length input)) 92 (setf symbol-list nil) 93 (if package 94 (if shows-external-symbols 95 (do-external-symbols (sym package) 96 (when (ccl::%apropos-substring-p input (symbol-name sym)) 97 (push sym symbol-list))) 98 (do-symbols (sym package) 99 (when (ccl::%apropos-substring-p input (symbol-name sym)) 100 (push sym symbol-list)))) 101 (if shows-external-symbols 102 (dolist (p (list-all-packages)) 103 (do-external-symbols (sym p) 104 (when (ccl::%apropos-substring-p input (symbol-name sym)) 105 (push sym symbol-list)))) 106 (do-all-symbols (sym) 107 (when (ccl::%apropos-substring-p input (symbol-name sym)) 108 (push sym symbol-list))))) 109 (setf symbol-list (sort symbol-list #'string-lessp))))) 110 111 (defmethod update-apropos-array ((self apropos-window-controller)) 112 (with-slots (input apropos-array symbol-list package) self 113 (when (plusp (length input)) 114 (let ((new-array (#/array ns:ns-mutable-array)) 115 (*package* (or package (find-package "COMMON-LISP-USER"))) 116 (n 0)) 117 (dolist (s symbol-list) 118 (#/addObject: new-array (#/dictionaryWithObjectsAndKeys: 119 ns:ns-dictionary 120 (#/autorelease 121 (%make-nsstring 122 (prin1-to-string s))) 123 #@"symbol" 124 (#/numberWithInt: ns:ns-number n) 125 #@"index" 126 (#/autorelease 127 (%make-nsstring 128 (inspector::symbol-type-line s))) 129 #@"kind" 130 +null-ptr+)) 131 (incf n)) 132 (#/willChangeValueForKey: self #@"aproposArray") 133 (setf apropos-array new-array) 134 (#/didChangeValueForKey: self #@"aproposArray"))))) 135 40 136 (objc:defmethod (#/apropos: :void) ((self apropos-window-controller) sender) 41 (let* ((input (lisp-string-from-nsstring (#/stringValue sender))) 42 (array (#/array ns:ns-mutable-array))) 137 (let* ((input (lisp-string-from-nsstring (#/stringValue sender)))) 43 138 (when (and (plusp (length input)) 44 139 (not (string-equal input (previous-input self)))) 140 (setf (slot-value self 'input) input) 45 141 (setf (previous-input self) input) 46 (flet ((%make-nsstring-with-highlighted-range (s start len) 47 (let* ((attrs (#/dictionaryWithObject:forKey: ns:ns-dictionary 48 (#/systemFontOfSize: 49 ns:ns-font 50 (#/systemFontSizeForControlSize: 51 ns:ns-font 52 #$NSSmallControlSize)) 53 #&NSFontAttributeName)) 54 (output (make-instance 'ns:ns-mutable-attributed-string 55 :with-string (#/autorelease 56 (%make-nsstring s)) 57 :attributes attrs)) 58 (range (ns:make-ns-range start len))) 59 (#/applyFontTraits:range: output #$NSBoldFontMask range) 60 output))) 61 (mapc #'(lambda (x) 62 (let* ((pkg-name (package-name (symbol-package x))) 63 (sym-name (symbol-name x)) 64 (pos (search input sym-name :test #'string-equal))) 65 (#/addObject: array (#/dictionaryWithObjectsAndKeys: 66 ns:ns-dictionary 67 (#/autorelease 68 (%make-nsstring pkg-name)) 69 #@"package" 70 (if (numberp pos) 71 (#/autorelease 72 (%make-nsstring-with-highlighted-range 73 sym-name pos (length input))) 74 (#/autorelease 75 (%make-nsstring sym-name))) 76 #@"symbol" 77 +null-ptr+)))) 78 (apropos-list input))) 79 (#/willChangeValueForKey: self #@"aproposArray") 80 (setf (apropos-array self) array) 81 (#/didChangeValueForKey: self #@"aproposArray")))) 142 (update-symbol-list self) 143 (update-apropos-array self)))) 82 144 83 145 (objc:defmethod (#/inspectSelectedSymbol: :void) ((self apropos-window-controller) sender) 84 146 (let* ((row (#/clickedRow sender))) 85 147 (unless (minusp row) 86 (with-slots (array-controller) self 87 (let* ((pkg-name (lisp-string-from-nsstring 88 (#/valueForKeyPath: array-controller 89 #@"selection.package"))) 90 (sym-name (lisp-string-from-nsstring 91 (#/string (#/valueForKeyPath: array-controller 92 #@"selection.symbol")))) 93 (symbol (find-symbol sym-name pkg-name))) 94 (cinspect symbol)))))) 148 (with-slots (array-controller symbol-list) self 149 (let* ((number (#/valueForKeyPath: array-controller #@"selection.index")) 150 (i (#/intValue number)) 151 (sym (elt symbol-list i))) 152 (cinspect sym)))))) 153 154 ;;; Data source methods for package combo box 155 156 (objc:defmethod (#/numberOfItemsInComboBox: :<NSI>nteger) ((self apropos-window-controller) 157 combo-box) 158 (declare (ignore combo-box)) 159 (length (list-all-packages))) 160 161 (objc:defmethod #/comboBox:objectValueForItemAtIndex: ((self apropos-window-controller) 162 combo-box 163 (index :<NSI>nteger)) 164 (with-slots (packages) combo-box 165 (let* ((pkg-name (package-name (svref packages index)))) 166 (if pkg-name 167 (#/autorelease (%make-nsstring pkg-name)) 168 +null-ptr+)))) 169 170 (objc:defmethod #/comboBox:completedString: ((self apropos-window-controller) 171 combo-box 172 partial-string) 173 (flet ((string-prefix-p (s1 s2) 174 "Is s1 a prefix of s2?" 175 (string-equal s1 s2 :end2 (min (length s1) (length s2))))) 176 (with-slots (packages) combo-box 177 (let* ((s (lisp-string-from-nsstring partial-string))) 178 (dotimes (i (length packages) +null-ptr+) 179 (let ((name (package-name (svref packages i)))) 180 (when (string-prefix-p s name) 181 (return (#/autorelease (%make-nsstring name)))))))))) 182 183 (objc:defmethod (#/comboBox:indexOfItemWithStringValue: :<NSUI>nteger) 184 ((self apropos-window-controller) 185 combo-box 186 string) 187 (with-slots (packages) combo-box 188 (let* ((s (lisp-string-from-nsstring string))) 189 (or (position s packages :test #'(lambda (str pkg) 190 (string-equal str (package-name pkg)))) 191 #$NSNotFound)))) 192 193 194 ;;; Table view delegate methods 195 196 (objc:defmethod (#/tableViewSelectionDidChange: :void) ((self apropos-window-controller) 197 notification) 198 (with-slots (array-controller symbol-list text-view) self 199 (let* ((tv (#/object notification)) 200 (row (#/selectedRow tv))) 201 (unless (minusp row) 202 (let* ((number (#/valueForKeyPath: 203 array-controller #@"selection.index")) 204 (i (#/intValue number)) 205 (sym (elt symbol-list i)) 206 (info (make-array '(0) :element-type 'base-char 207 :fill-pointer 0 :adjustable t))) 208 (with-output-to-string (s info) 209 (dolist (doctype '(compiler-macro function method-combination 210 setf structure t type variable)) 211 (let ((docstring (documentation sym doctype))) 212 (when docstring 213 (format s "~&~a" docstring)) 214 (when (eq doctype 'function) 215 (format s "~&arglist: ~s" (arglist sym)))))) 216 (if (plusp (length info)) 217 (#/setString: text-view (#/autorelease (%make-nsstring info))) 218 (#/setString: text-view #@""))))))) 219 220 -
branches/working-0711/ccl/cocoa-ide/build-application.lisp
r7494 r7804 28 28 ;;; dev-environment nibfiles. 29 29 30 #| 31 temporarily removed for debugging 32 (save-application image-path 33 :application-class application-class 34 :toplevel-function toplevel-function 35 :prepend-kernel t) 36 |# 37 30 38 (defun build-application (&key 31 39 (name "MyApplication") … … 34 42 (directory (current-directory)) 35 43 (nibfiles nil) ; a list of user-specified nibfiles 36 ; to be copied into the app bundle 37 (main-nib-name); the name of the nib that is to be loaded 38 ; as the app's main. this name gets written 39 ; into the Info.plist on the "NSMainNibFile" key 40 (application-class 'cocoa-application) 41 (toplevel-function nil) 42 (swank-loader nil) 43 (autostart-swank-on-port nil)) 44 ;;; if the path to swank-loader.lisp is given, then load 45 ;;; swank before building the application 46 (when swank-loader 47 (assert (probe-file swank-loader)(swank-loader) 48 "Swank loader not found at path '~A'" swank-loader) 49 (load swank-loader) 50 ;; when autostart-swank-on-port is also given, setup 51 ;; swank to start up on launch (still don't know how 52 ;; we're actually going to do this) 53 (when autostart-swank-on-port 54 (assert (integerp autostart-swank-on-port)(autostart-swank-on-port) 55 "The port for :autostart-swank-on-port must be an integer or nil, not '~S'" 56 autostart-swank-on-port) 57 ;; if we get this far, setup the swank autostart 58 ;; (however we're going to do that...) 59 )) 60 ;;; build the application 44 ; to be copied into the app bundle 45 (main-nib-name) ; the name of the nib that is to be loaded 46 ; as the app's main. this name gets written 47 ; into the Info.plist on the "NSMainNibFile" key 48 (application-class 'gui::cocoa-application) 49 (toplevel-function nil)) 50 61 51 (let* ((ide-bundle (#/mainBundle ns:ns-bundle)) 62 52 (ide-bundle-path-nsstring (#/bundlePath ide-bundle)) … … 64 54 (ensure-directory-pathname 65 55 (lisp-string-from-nsstring ide-bundle-path-nsstring)))) 56 ;; create the bundle directory 66 57 (app-bundle (make-application-bundle name type-string creator-string directory 67 58 :main-nib-name main-nib-name)) 68 59 (image-path (namestring (path app-bundle "Contents" "MacOS" name)))) 69 70 ;; copy IDE resources into the application bundle 60 ;; copy IDE resources to the bundle 71 61 (recursive-copy-directory (path ide-bundle-path "Contents" "Resources/") 72 62 (path app-bundle "Contents" "Resources/") 73 :if-exists :overwrite)74 ;; copy user -suppliednibfiles into the bundle63 :if-exists :overwrite) 64 ;; copy user nibfiles into the bundle 75 65 (when nibfiles 76 66 (let ((nib-paths (mapcar #'pathname nibfiles))) 77 (assert (and (every #'probe-file nib-paths) 78 (every #'directoryp nib-paths)) 67 (assert (and (every #'probe-file nib-paths)) 79 68 (nibfiles) 80 "The nibfiles parameter must be a list of valid pathnames to existing directories") 81 ;; for each input nibfile, construct the destination path and copy it to that path 82 ;; checking first whether doing so would clobber an existing nib. if it would, 83 ;; signal an error 69 "The nibfiles parameter must be a list of valid pathnames to existing files or directories") 84 70 (dolist (n nib-paths) 85 ;; TODO: handle cases where there are nibs for languages other than English 86 (let ((dest (path app-bundle "Contents" "Resources" "English.lproj/" (namestring (basename n))))) 87 (if (probe-file dest) 88 (error "The destination nibfile '~A' already exists" dest) 89 (recursive-copy-directory n dest :if-exists :overwrite)))))) 90 ;; save the application image 71 (let ((dest (path app-bundle "Contents" "Resources" "English.lproj/"))) 72 (copy-nibfile n dest :if-exists :overwrite))))) 73 ;; save the application image into the bundle 91 74 (save-application image-path 92 75 :application-class application-class … … 95 78 96 79 97 -
branches/working-0711/ccl/cocoa-ide/builder-utilities.lisp
r7494 r7804 28 28 app) 29 29 app)) 30 31 (defun copy-nibfile (srcnib dest-directory &key (if-exists :overwrite)) 32 (setq if-exists (require-type if-exists '(member :overwrite :error))) 33 (let* ((basename (basename srcnib)) 34 (dest (path dest-directory basename))) 35 (if (probe-file dest) 36 (case if-exists 37 (:overwrite (progn 38 (if (directoryp dest) 39 (recursive-delete-directory dest) 40 (delete-file dest)))) 41 (:error (error "The nibfile '~A' already exists" dest)))) 42 (if (directoryp srcnib) 43 (recursive-copy-directory srcnib dest) 44 (copy-file srcnib dest)))) 30 45 31 46 ;;; BASENAME path -
branches/working-0711/ccl/cocoa-ide/cocoa-application.lisp
r7508 r7804 18 18 (in-package "CCL") ; for now. 19 19 20 (eval-when (:compile-toplevel :execute)21 (use-interface-dir :cocoa))22 20 23 ;;; loading cocoa.lisp creates an IDE bundle in *cocoa-application-path*,24 ;;; perhaps copying headers as per *cocoa-application-copy-headers-p*25 21 (defvar *cocoa-application-path* "ccl:Clozure CL.app;") 26 22 (defvar *cocoa-application-copy-headers-p* t) 27 (require "COCOA") 28 29 (defclass cocoa-application (application) 30 ()) 31 32 (defmethod application-error ((a application) condition error-pointer) 33 (break-loop-handle-error condition error-pointer)) 34 35 36 ;;; If we're launched via the Finder, the only argument we'll 37 ;;; get is of the form -psnXXXXXX. That's meaningless to us; 38 ;;; it's easier to pretend that we didn't get any arguments. 39 ;;; (If it seems like some of this needs to be thought out a 40 ;;; bit better ... I'd tend to agree.) 41 (defmethod parse-application-arguments ((a cocoa-application)) 42 (values nil nil nil nil)) 43 44 (defmethod toplevel-function ((a cocoa-application) init-file) 45 (declare (ignore init-file)) 46 (when (< #&NSAppKitVersionNumber 824) 47 (#_NSLog #@"This application requires features introduced in OSX 10.4.") 48 (#_ _exit -1)) 49 (setq *standalone-cocoa-ide* t) 50 ;; TODO: to avoid confusion, should now reset *cocoa-application-path* to 51 ;; actual bundle path where started up. 52 (start-cocoa-application)) 53 54 55 ;;; The saved image will be an instance of COCOA-APPLICATION (mostly 56 ;;; so that it'll ignore its argument list.) When it starts up, it'll 57 ;;; run the Cocoa event loop in the cocoa event process. 58 ;;; If you use an init file ("home:ccl-init"), it'll be loaded 59 ;;; in an environment in which *STANDARD-INPUT* always generates EOF 60 ;;; and where output and error streams are directed to the OSX console 61 ;;; (see below). If that causes problems, you may want to suppress 62 ;;; the loading of your init file (via an :INIT-FILE nil arg to 63 ;;; the call to SAVE-APPLICATION, below.) 64 65 (defun build-ide (bundle-path) 66 (setq bundle-path (ensure-directory-pathname bundle-path)) 67 68 ;; The bundle is expected to exists, we'll just add the executable into it. 69 (assert (probe-file bundle-path)) 70 71 ;; Wait until we're sure that the Cocoa event loop has started. 72 (wait-on-semaphore *cocoa-application-finished-launching*) 73 74 (require :easygui) 75 76 (maybe-map-objc-classes t) 77 (let* ((missing ())) 78 (do-interface-dirs (d) 79 (cdb-enumerate-keys 80 (db-objc-classes d) 81 (lambda (name) 82 (let* ((class (lookup-objc-class name nil))) (unless (objc-class-id class) (push name missing)))))) 83 (when missing 84 (break "ObjC classes ~{~&~a~} are declared but not defined." missing))) 85 86 (touch bundle-path) 87 88 (let ((image-file (make-pathname :name (standard-kernel-name) :type nil :version nil 89 :defaults (merge-pathnames ";Contents;MacOS;" bundle-path)))) 90 (format *error-output* "~2%Saving application to ~a~2%" (truename bundle-path)) 91 (force-output *error-output*) 92 (ensure-directories-exist image-file) 93 (save-application image-file 94 :prepend-kernel t 95 :application-class 'cocoa-application))) 23 (load "ccl:cocoa-ide;defsystem.lisp") 24 (load-ide) 96 25 97 26 ;;; If things go wrong, you might see some debugging information via -
branches/working-0711/ccl/cocoa-ide/cocoa-backtrace.lisp
r7084 r7804 1 ; -*- Mode: Lisp; Package: CCL; -*- 2 3 (in-package "CCL") 1 ;;;-*-Mode: LISP; Package: GUI -*- 2 ;;; 3 ;;; Copyright (C) 2007 Clozure Associates 4 5 (in-package "GUI") 4 6 5 7 (defclass ns-lisp-string (ns:ns-string) … … 59 61 (def-cocoa-default *backtrace-font-size* :float 9.0f0 "Size of font used in backtrace views") 60 62 63 64 (defun context-process (context) 65 (and context (ccl::tcr->process (ccl::bt.tcr context)))) 61 66 62 67 (objc:defmethod (#/windowDidLoad :void) ((self backtrace-window-controller)) … … 92 97 (unless (%null-ptr-p window) 93 98 (let* ((context (backtrace-controller-context self)) 94 (process ( tcr->process (bt.tcr context)))99 (process (context-process context)) 95 100 (listener-window (if (typep process 'cocoa-listener-process) 96 101 (cocoa-listener-process-window process)))) … … 107 112 (process-name process) 108 113 (process-serial-number process) 109 ( bt.break-level context)))))))))114 (ccl::bt.break-level context))))))))) 110 115 111 116 (objc:defmethod (#/continue: :void) ((self backtrace-window-controller) sender) 112 117 (declare (ignore sender)) 113 118 (let* ((context (backtrace-controller-context self)) 114 (process ( and context (tcr->process (bt.tcr context)))))119 (process (context-process context))) 115 120 (when process (process-interrupt process #'continue)))) 116 121 … … 118 123 (declare (ignore sender)) 119 124 (let* ((context (backtrace-controller-context self)) 120 (process ( and context (tcr->process (bt.tcr context)))))125 (process (context-process context))) 121 126 (when process (process-interrupt process #'abort-break)))) 122 127 … … 191 196 (inspector::line-n inspector index))) 192 197 (if value 193 ( %lfun-name-string value)198 (ccl::%lfun-name-string value) 194 199 ":kernel"))))) 195 200 label)) … … 234 239 235 240 (defun backtrace-controller-for-context (context) 236 (or ( bt.dialog context)237 (setf ( bt.dialog context)241 (or (ccl::bt.dialog context) 242 (setf (ccl::bt.dialog context) 238 243 (make-instance 'backtrace-window-controller 239 244 :with-window-nib-name #@"backtrace" … … 257 262 (setf (cocoa-listener-process-backtrace-contexts proc) 258 263 (cdr (cocoa-listener-process-backtrace-contexts proc))) 259 (let* ((btwindow (prog1 ( bt.dialog context)260 (setf ( bt.dialog context) nil)))264 (let* ((btwindow (prog1 (ccl::bt.dialog context) 265 (setf (ccl::bt.dialog context) nil))) 261 266 (restartswindow 262 (prog1 (car ( bt.restarts context))263 (setf ( bt.restarts context) nil))))267 (prog1 (car (ccl::bt.restarts context)) 268 (setf (ccl::bt.restarts context) nil)))) 264 269 (when btwindow 265 270 (#/performSelectorOnMainThread:withObject:waitUntilDone: btwindow (@selector #/close) +null-ptr+ t)) -
branches/working-0711/ccl/cocoa-ide/cocoa-defaults.lisp
r7579 r7804 1 ;;;-*-Mode: LISP; Package: CCL-*-1 ;;;-*-Mode: LISP; Package: GUI -*- 2 2 ;;; 3 3 ;;; Copyright (C) 2004 Clozure Associates … … 15 15 ;;; http://opensource.franz.com/preamble.html 16 16 17 (in-package "CCL") 18 19 (eval-when (:compile-toplevel :execute) 20 (use-interface-dir :cocoa) 21 #+nomore 22 (use-interface-dir :carbon)) 23 24 (require "OBJC-SUPPORT") 17 (in-package "GUI") 25 18 26 19 (defstruct cocoa-default … … 46 39 (defun set-cocoa-default (name string type value doc &optional change-hook) 47 40 (check-type name symbol) 48 (check-type string objc-constant-string)41 (check-type string ccl::objc-constant-string) 49 42 (check-type type keyword) 50 43 (check-type doc (or null string)) … … 62 55 ;;; Names which contain #\* confuse Cocoa Bindings. 63 56 (defun objc-default-key (name) 64 ( ns-constant-string (lisp-to-objc-message (list (make-symbol (remove #\* (string name)))))))57 (ccl::ns-constant-string (ccl::lisp-to-objc-message (list (make-symbol (remove #\* (string name))))))) 65 58 66 59 … … 69 62 ;; Make the variable "GLOBAL": its value can be changed, but it can't 70 63 ;; have a per-thread binding. 71 ( %symbol-bits name (logior (ash 1$sym_vbit_global)72 (the fixnum (%symbol-bits name))))64 (ccl::%symbol-bits name (logior (ash 1 ccl::$sym_vbit_global) 65 (the fixnum (ccl::%symbol-bits name)))) 73 66 (record-source-file name 'variable) 74 67 (setf (documentation name 'variable) doc) … … 81 74 `(progn 82 75 (eval-when (:compile-toplevel) 83 ( note-variable-info ',name :global ,env))76 (ccl::note-variable-info ',name :global ,env)) 84 77 (declaim (special ,name)) 85 78 (defloadvar ,name nil) … … 96 89 (let* ((name (cocoa-default-symbol d)) 97 90 (type (cocoa-default-type d)) 98 (key ( objc-constant-string-nsstringptr (cocoa-default-string d))))91 (key (ccl::objc-constant-string-nsstringptr (cocoa-default-string d)))) 99 92 (let* ((hook (cocoa-default-change-hook d)) 100 93 (old-value (symbol-value name))) … … 136 129 (t 137 130 (%make-nsstring (format nil "~a" (cocoa-default-value d))))) 138 ( objc-constant-string-nsstringptr (cocoa-default-string d)))))))131 (ccl::objc-constant-string-nsstringptr (cocoa-default-string d))))))) -
branches/working-0711/ccl/cocoa-ide/cocoa-doc.lisp
r7559 r7804 1 (in-package "CCL") 1 ;;;-*-Mode: LISP; Package: GUI -*- 2 ;;; 3 ;;; Copyright (C) 2007 Clozure Associates 4 5 (in-package "GUI") 2 6 3 7 (def-cocoa-default *hyperspec-url-string* :string "http://www.lispworks.com/documentation/HyperSpec/" "HTTP URL for HyperSpec lookup") -
branches/working-0711/ccl/cocoa-ide/cocoa-editor.lisp
r7616 r7804 1 ;;;-*- Mode: LISP; Package: CCL -*- 2 3 4 (in-package "CCL") 5 6 (eval-when (:compile-toplevel :load-toplevel :execute) 7 (require "COCOA-WINDOW") 8 (require "HEMLOCK")) 9 10 (eval-when (:compile-toplevel :execute) 11 (use-interface-dir :cocoa)) 1 ;;;-*-Mode: LISP; Package: GUI -*- 2 ;;; 3 ;;; Copyright (C) 2007 Clozure Associates 4 5 (in-package "GUI") 12 6 13 7 ;;; In the double-float case, this is probably way too small. … … 16 10 ;;; integral values. 17 11 (eval-when (:compile-toplevel :load-toplevel :execute) 18 (defconstant large-number-for-text ( float 1.0f7 +cgfloat-zero+)))12 (defconstant large-number-for-text (cgfloat 1.0f7))) 19 13 20 14 (def-cocoa-default *editor-font* :font #'(lambda () … … 31 25 "Soft wrap lines to window width") 32 26 27 (def-cocoa-default *use-screen-fonts* :bool t "Use bitmap screen fonts when available") 28 33 29 (defmacro nsstring-encoding-to-nsinteger (n) 34 ( target-word-size-case35 (32 `( u32->s32 ,n))30 (ccl::target-word-size-case 31 (32 `(ccl::u32->s32 ,n)) 36 32 (64 n))) 37 33 38 34 (defmacro nsinteger-to-nsstring-encoding (n) 39 ( target-word-size-case40 (32 `( s32->u32 ,n))35 (ccl::target-word-size-case 36 (32 `(ccl::s32->u32 ,n)) 41 37 (64 n))) 42 38 … … 431 427 (selection-set-by-search :foreign-type :<BOOL>)) 432 428 (:metaclass ns:+ns-object)) 429 (declaim (special hemlock-text-storage)) 433 430 434 431 … … 664 661 (let* ((w (#/window tv)) 665 662 (proc (slot-value w 'command-thread))) 666 (process-interrupt proc #' dbg))))667 ( dbg))663 (process-interrupt proc #'ccl::dbg)))) 664 (ccl::dbg)) 668 665 (let* ((attrs (#/attributesAtIndex:effectiveRange: mirror index rangeptr))) 669 666 (when (eql 0 (#/count attrs)) … … 813 810 (peer :foreign-type :id)) 814 811 (:metaclass ns:+ns-object)) 812 (declaim (special hemlock-textstorage-text-view)) 815 813 816 814 … … 937 935 (update-blink self)) 938 936 (rlet ((range :ns-range :location pos :length length)) 939 (%call-next-objc-method self940 hemlock-textstorage-text-view941 (@selector #/setSelectedRange:affinity:stillSelecting:)942 '(:void :<NSR>ange :<NSS>election<A>ffinity :<BOOL>)943 range944 affinity945 nil)946 (assume-not-editing self)947 (#/scrollRangeToVisible: self range)948 (when (> length 0)949 (let* ((ts (#/textStorage self)))950 (with-slots (selection-set-by-search) ts951 (when (prog1 (eql #$YES selection-set-by-search)952 (setq selection-set-by-search #$NO))953 (highlight-search-selection self pos length)))))954 ))937 (ccl::%call-next-objc-method self 938 hemlock-textstorage-text-view 939 (@selector #/setSelectedRange:affinity:stillSelecting:) 940 '(:void :<NSR>ange :<NSS>election<A>ffinity :<BOOL>) 941 range 942 affinity 943 nil) 944 (assume-not-editing self) 945 (#/scrollRangeToVisible: self range) 946 (when (> length 0) 947 (let* ((ts (#/textStorage self))) 948 (with-slots (selection-set-by-search) ts 949 (when (prog1 (eql #$YES selection-set-by-search) 950 (setq selection-set-by-search #$NO)) 951 (highlight-search-selection self pos length))))) 952 )) 955 953 956 954 (defloadvar *can-use-show-find-indicator-for-range* … … 1090 1088 (progn 1091 1089 (#/setUsesFontPanel: self t) 1092 ( %call-next-objc-method1090 (ccl::%call-next-objc-method 1093 1091 self 1094 1092 hemlock-textstorage-text-view … … 1537 1535 (#/setTypesetter: layout (make-instance 'hemlock-ats-typesetter)) 1538 1536 (#/addLayoutManager: textstorage layout) 1539 (#/setUsesScreenFonts: layout t)1537 (#/setUsesScreenFonts: layout *use-screen-fonts*) 1540 1538 (#/release layout) 1541 1539 (let* ((contentsize (#/contentSize scrollview))) … … 1724 1722 containersize)))) 1725 1723 (#/addLayoutManager: textstorage layout) 1724 (#/setUsesScreenFonts: layout *use-screen-fonts*) 1726 1725 (#/addTextContainer: layout container) 1727 1726 (#/release layout) … … 1771 1770 (echo-area-stream :initform nil :accessor hemlock-frame-echo-area-stream)) 1772 1771 (:metaclass ns:+ns-object)) 1772 (declaim (special hemlock-frame)) 1773 1773 1774 1774 (defun double-%-in (string) … … 1815 1815 (message (nsstring-for-lisp-condition condition)) 1816 1816 (sem-value (make-instance 'ns:ns-number 1817 :with-unsigned-long (%ptr-to-int ( semaphore.value semaphore)))))1817 :with-unsigned-long (%ptr-to-int (ccl::semaphore.value semaphore))))) 1818 1818 #+debug 1819 1819 (#_NSLog #@"created semaphore with value %lx" :address (semaphore.value semaphore)) … … 2149 2149 (defun size-of-char-in-font (f) 2150 2150 (let* ((sf (#/screenFont f)) 2151 (screen-p t))2151 (screen-p *use-screen-fonts*)) 2152 2152 (if (%null-ptr-p sf) (setq sf f screen-p nil)) 2153 2153 (let* ((layout (#/autorelease (#/init (#/alloc ns:ns-layout-manager))))) … … 2171 2171 (when has-vertical-scroller 2172 2172 (#/setVerticalLineScroll: scrollview char-height) 2173 (#/setVerticalPageScroll: scrollview +cgfloat-zero+#|char-height|#))2173 (#/setVerticalPageScroll: scrollview (cgfloat 0.0) #|char-height|#)) 2174 2174 (when has-horizontal-scroller 2175 2175 (#/setHorizontalLineScroll: scrollview char-width) 2176 (#/setHorizontalPageScroll: scrollview +cgfloat-zero+#|char-width|#))2176 (#/setHorizontalPageScroll: scrollview (cgfloat 0.0) #|char-width|#)) 2177 2177 (let* ((sv-size (#/frameSizeForContentSize:hasHorizontalScroller:hasVerticalScroller:borderType: ns:ns-scroll-view tv-size has-horizontal-scroller has-vertical-scroller (#/borderType scrollview))) 2178 2178 (pane-frame (#/frame pane)) … … 2209 2209 (#/defaultCStringEncoding ns:ns-string) 2210 2210 ns))))))) 2211 2212 (defclass hemlock-document-controller (ns:ns-document-controller) 2213 ((last-encoding :foreign-type :<NSS>tring<E>ncoding)) 2214 (:metaclass ns:+ns-object)) 2215 (declaim (special hemlock-document-controller)) 2216 2217 (objc:defmethod #/init ((self hemlock-document-controller)) 2218 (prog1 2219 (call-next-method) 2220 (setf (slot-value self 'last-encoding) 0))) 2221 2211 2222 2212 2223 ;;; The HemlockEditorDocument class. … … 2687 2698 2688 2699 2689 (defclass hemlock-document-controller (ns:ns-document-controller)2690 ((last-encoding :foreign-type :<NSS>tring<E>ncoding))2691 (:metaclass ns:+ns-object))2692 2693 (objc:defmethod #/init ((self hemlock-document-controller))2694 (prog12695 (call-next-method)2696 (setf (slot-value self 'last-encoding) 0)))2697 2698 2700 (defun iana-charset-name-of-nsstringencoding (ns) 2699 2701 (#_CFStringConvertEncodingToIANACharSetName … … 2711 2713 ;;; (localized) name of each encoding. 2712 2714 (defun supported-nsstring-encodings () 2713 (c ollect ((ids))2715 (ccl::collect ((ids)) 2714 2716 (let* ((ns-ids (#/availableStringEncodings ns:ns-string))) 2715 2717 (unless (%null-ptr-p ns-ids) … … 2883 2885 2884 2886 (defun hi::edit-definition (name) 2885 (let* ((info ( get-source-files-with-types&classes name)))2887 (let* ((info (ccl::get-source-files-with-types&classes name))) 2886 2888 (when (null info) 2887 2889 (let* ((seen (list name)) … … 2891 2893 (let ((sym (find-symbol pname pkg))) 2892 2894 (when (and sym (not (member sym seen))) 2893 (let ((new ( get-source-files-with-types&classes sym)))2895 (let ((new (ccl::get-source-files-with-types&classes sym))) 2894 2896 (when new 2895 2897 (setq info (append new info)) … … 3021 3023 (typep arg 'pathname)) 3022 3024 (unless (probe-file arg) 3023 ( touch arg))3025 (ccl::touch arg)) 3024 3026 (with-autorelease-pool 3025 3027 (let* ((url (pathname-to-url arg)) … … 3045 3047 +null-ptr+ 3046 3048 t))))) 3047 (( valid-function-name-p arg)3049 ((ccl::valid-function-name-p arg) 3048 3050 (hi::edit-definition arg)) 3049 (t (report-bad-arg arg '(or null string pathname (satis ifiesvalid-function-name-p)))))3051 (t (report-bad-arg arg '(or null string pathname (satisfies ccl::valid-function-name-p))))) 3050 3052 t)) 3051 3053 3052 3054 (setq ccl::*resident-editor-hook* 'cocoa-edit) 3053 3055 3054 (provide "COCOA-EDITOR") -
branches/working-0711/ccl/cocoa-ide/cocoa-grep.lisp
r7595 r7804 1 ; -*- Mode: Lisp; Package: CCL; -*- 1 ;;;-*-Mode: LISP; Package: GUI -*- 2 ;;; 3 ;;; Copyright (C) 2007 Clozure Associates 2 4 3 (in-package " CCL")5 (in-package "GUI") 4 6 5 7 (defvar *grep-program* "grep") … … 112 114 "--no-messages" 113 115 "-e" pattern 114 ( native-untranslated-namestring directory)))116 (ccl::native-untranslated-namestring directory))) 115 117 :input nil 116 118 :output stream))) -
branches/working-0711/ccl/cocoa-ide/cocoa-inspector.lisp
r6952 r7804 1 (in-package "CCL") 1 ;;;-*-Mode: LISP; Package: GUI -*- 2 3 (in-package "GUI") 2 4 3 5 #| … … 55 57 |# 56 58 57 (require "COCOA")58 59 59 ;;; This is useful when @ won't work, dynamically creating a NSString 60 60 ;;; pointer from a string. 61 61 62 62 (defun nsstringptr (string) 63 ( objc-constant-string-nsstringptr64 ( ns-constant-string string)))63 (ccl::objc-constant-string-nsstringptr 64 (ccl::ns-constant-string string))) 65 65 66 66 #+old -
branches/working-0711/ccl/cocoa-ide/cocoa-listener.lisp
r7580 r7804 1 ;;-*- Mode: LISP; Package: CCL -*- 2 3 (in-package "CCL") 4 5 (eval-when (:compile-toplevel :load-toplevel :execute) 6 (require "COCOA-EDITOR") 7 (require "PTY")) 1 ;;;-*-Mode: LISP; Package: GUI -*- 2 ;;; 3 ;;; Copyright (C) 2007 Clozure Associates 4 5 (in-package "GUI") 8 6 9 7 (def-cocoa-default *listener-input-font* :font #'(lambda () … … 61 59 62 60 (defun new-cocoa-listener-process (procname input-fd output-fd peer-fd window buffer) 63 (let* ((input-stream ( make-selection-input-stream61 (let* ((input-stream (ccl::make-selection-input-stream 64 62 input-fd 65 63 :peer-fd peer-fd … … 68 66 #$_PC_MAX_INPUT) 69 67 :encoding :utf-8)) 70 (output-stream ( make-fd-stream output-fd :direction :output71 :sharing :lock72 :elements-per-buffer73 (#_fpathconf74 output-fd75 #$_PC_MAX_INPUT)76 :encoding :utf-8))77 (peer-stream ( make-fd-stream peer-fd :direction :output78 :sharing :lock79 :elements-per-buffer80 (#_fpathconf81 peer-fd82 #$_PC_MAX_INPUT)83 :encoding :utf-8))68 (output-stream (ccl::make-fd-stream output-fd :direction :output 69 :sharing :lock 70 :elements-per-buffer 71 (#_fpathconf 72 output-fd 73 #$_PC_MAX_INPUT) 74 :encoding :utf-8)) 75 (peer-stream (ccl::make-fd-stream peer-fd :direction :output 76 :sharing :lock 77 :elements-per-buffer 78 (#_fpathconf 79 peer-fd 80 #$_PC_MAX_INPUT) 81 :encoding :utf-8)) 84 82 (proc 85 ( make-mcl-listener-process83 (ccl::make-mcl-listener-process 86 84 procname 87 85 input-stream … … 100 98 :initial-function 101 99 #'(lambda () 102 (setq *listener-autorelease-pool* (create-autorelease-pool))103 ( listener-function))100 (setq ccl::*listener-autorelease-pool* (create-autorelease-pool)) 101 (ccl::listener-function)) 104 102 :class 'cocoa-listener-process))) 105 103 (setf (slot-value proc 'input-stream) input-stream) … … 114 112 () 115 113 (:metaclass ns:+ns-object)) 114 (declaim (special hemlock-listener-frame)) 116 115 117 116 … … 125 124 (:metaclass ns:+ns-object) 126 125 ) 127 126 (declaim (special hemlock-listener-window-controller)) 128 127 129 128 ;;; Listener documents are never (or always) ediited. Don't cause their … … 184 183 (let* ((total (+ n data-length))) 185 184 (multiple-value-bind (nchars noctets-used) 186 (funcall (c haracter-encoding-length-of-memory-encoding-function encoding)185 (funcall (ccl::character-encoding-length-of-memory-encoding-function encoding) 187 186 xlate 188 187 total 189 188 0) 190 189 (let* ((string (make-string nchars))) 191 (funcall (c haracter-encoding-memory-decode-function encoding)190 (funcall (ccl::character-encoding-memory-decode-function encoding) 192 191 xlate 193 192 noctets-used … … 235 234 () 236 235 (:metaclass ns:+ns-object)) 236 (declaim (special hemlock-listener-document)) 237 237 238 238 (defmethod update-buffer-package ((doc hemlock-listener-document) buffer) … … 413 413 414 414 (defun restarts-controller-for-context (context) 415 (or (car ( bt.restarts context))416 (setf (car ( bt.restarts context))417 (let* ((tcr ( bt.tcr context))415 (or (car (ccl::bt.restarts context)) 416 (setf (car (ccl::bt.restarts context)) 417 (let* ((tcr (ccl::bt.tcr context)) 418 418 (tsp-range (inspector::make-tsp-stack-range tcr context)) 419 419 (vsp-range (inspector::make-vsp-stack-range tcr context)) 420 420 (csp-range (inspector::make-csp-stack-range tcr context)) 421 (process ( tcr->process (bt.tcr context))))421 (process (context-process context))) 422 422 (make-instance 'sequence-window-controller 423 :sequence (cdr ( bt.restarts context))423 :sequence (cdr (ccl::bt.restarts context)) 424 424 :result-callback #'(lambda (r) 425 425 (process-interrupt … … 435 435 (process-name process) 436 436 (process-serial-number process) 437 ( bt.break-level context)))))))437 (ccl::bt.break-level context))))))) 438 438 439 439 (objc:defmethod (#/restarts: :void) ((self hemlock-listener-document) sender) … … 482 482 t 483 483 (and context 484 (find 'continue (cdr ( bt.restarts context))484 (find 'continue (cdr (ccl::bt.restarts context)) 485 485 :key #'restart-name))))) 486 486 ((or (eql action (@selector #/backtrace:)) … … 548 548 549 549 (defun hemlock::evaluate-input-selection (selection) 550 ( application-ui-operation *application* :eval-selection selection))550 (ccl::application-ui-operation *application* :eval-selection selection)) 551 551 552 552 (defmethod ui-object-choose-listener-for-selection ((app ns:ns-application) -
branches/working-0711/ccl/cocoa-ide/cocoa-prefs.lisp
r7476 r7804 1 ;;;-*-Mode: LISP; Package: CCL-*-1 ;;;-*-Mode: LISP; Package: GUI -*- 2 2 ;;; 3 3 ;;; Copyright (C) 2004 Clozure Associates … … 15 15 ;;; http://opensource.franz.com/preamble.html 16 16 17 (in-package "CCL") 18 19 (eval-when (:compile-toplevel :execute) 20 (use-interface-dir :cocoa)) 21 17 (in-package "GUI") 22 18 23 19 (defloadvar *lisp-preferences-panel* nil) … … 44 40 (#/displayName (make-instance ns:ns-font 45 41 :with-name value 46 :size ( float 12.0 +cgfloat-zero+))))42 :size (cgfloat 12.0)))) 47 43 48 44 … … 51 47 () 52 48 (:metaclass ns:+ns-object)) 49 (declaim (special lisp-preferences-window-controller)) 53 50 54 51 (objc:defmethod (#/fontPanelForDefaultFont: :void) -
branches/working-0711/ccl/cocoa-ide/cocoa-typeout.lisp
r7550 r7804 1 (in-package "CCL") 1 ;;;-*-Mode: LISP; Package: GUI -*- 2 ;;; 3 ;;; Copyright (C) 2007 Clozure Associates 2 4 3 (eval-when (:compile-toplevel :execute) 4 (use-interface-dir :cocoa)) 5 (in-package "GUI") 5 6 6 7 ;; … … 10 11 ;; the window is implicitly bound to a stream, and text written to 11 12 ;; the stream is written into the text-view object. The stream is 12 ;; available via the function ( ccl::typeout-stream)13 ;; available via the function (gui::typeout-stream) 13 14 ;; 14 15 … … 19 20 (text-view :foreign-type :id :reader typeout-view-text-view)) 20 21 (:metaclass ns:+ns-object)) 22 (declaim (special typeout-view)) 21 23 22 24 (defclass typeout-text-view (ns:ns-text-view) 23 25 () 24 26 (:metaclass ns:+ns-object)) 27 (declaim (special typeout-text-view)) 25 28 26 29 (objc:defmethod (#/clearAll: :void) ((self typeout-text-view)) … … 77 80 ((typeout-view :foreign-type :id :accessor typeout-window-typeout-view)) 78 81 (:metaclass ns:+ns-object)) 82 (declaim (special typeout-window)) 79 83 80 84 (defloadvar *typeout-windows* ()) -
branches/working-0711/ccl/cocoa-ide/cocoa-utils.lisp
r7618 r7804 1 ; -*- Mode: Lisp; Package: CCL; -*-1 ; -*- Mode: Lisp; Package: GUI; -*- 2 2 3 (in-package "CCL") 4 5 (eval-when (:compile-toplevel :execute) 6 (use-interface-dir :cocoa)) 3 (in-package "GUI") 7 4 8 5 (defclass sequence-window-controller (ns:ns-window-controller) … … 16 13 17 14 (objc:defmethod #/init ((self sequence-window-controller)) 15 (call-next-method) 18 16 (let* ((w (new-cocoa-window :activate nil)) 19 17 (contentview (#/contentView w)) … … 21 19 (scrollview (make-instance 'ns:ns-scroll-view :with-frame contentframe))) 22 20 (#/setWindow: self w) 21 (#/setDelegate: w self) 22 (#/setWindowController: w self) 23 23 (#/setHasVerticalScroller: scrollview t) 24 24 (#/setHasHorizontalScroller: scrollview t) … … 31 31 (let* ((table-view (make-instance 'ns:ns-table-view))) 32 32 (#/setDocumentView: scrollview table-view) 33 (#/release table-view) 33 34 (#/setColumnAutoresizingStyle: table-view #$NSTableViewUniformColumnAutoresizingStyle) 34 35 (setf (slot-value self 'table-view) table-view) … … 36 37 (#/setEditable: column nil) 37 38 (#/setResizingMask: column #$NSTableColumnAutoresizingMask) 38 (#/addTableColumn: table-view column)) 39 (#/addTableColumn: table-view column) 40 (#/release column)) 39 41 (#/setAutoresizingMask: table-view (logior 40 42 #$NSViewWidthSizable … … 47 49 (#/setDoubleAction: table-view (@selector #/sequenceDoubleClick:)) 48 50 (#/addSubview: contentview scrollview) 51 (#/release scrollview) 49 52 self))) 53 54 (objc:defmethod (#/dealloc :void) ((self sequence-window-controller)) 55 (call-next-method)) 56 57 (objc:defmethod (#/windowWillClose: :void) ((self sequence-window-controller) 58 notification) 59 (declare (ignore notification)) 60 (#/autorelease self)) 50 61 51 62 (objc:defmethod (#/sequenceDoubleClick: :void) … … 66 77 (declare (ignore column view)) 67 78 (with-slots (display sequence) self 68 (%make-nsstring (with-output-to-string (s) 69 (funcall display (elt sequence row) s))))) 79 (#/autorelease 80 (%make-nsstring (with-output-to-string (s) 81 (funcall display (elt sequence row) s)))))) 70 82 71 83 (defmethod initialize-instance :after ((self sequence-window-controller) &key &allow-other-keys) … … 86 98 (%make-nsstring (native-translated-namestring pathname)))) 87 99 100 (defun cgfloat (number) 101 (float number ccl::+cgfloat-zero+)) 102 88 103 (defun color-values-to-nscolor (red green blue alpha) 89 104 (#/colorWithCalibratedRed:green:blue:alpha: ns:ns-color 90 ( float red +cgfloat-zero+)91 ( float green +cgfloat-zero+)92 ( float blue +cgfloat-zero+)93 ( float alpha +cgfloat-zero+)))105 (cgfloat red) 106 (cgfloat green) 107 (cgfloat blue) 108 (cgfloat alpha))) 94 109 95 110 (defun windows () -
branches/working-0711/ccl/cocoa-ide/cocoa-window.lisp
r7574 r7804 1 ;;;-*-Mode: LISP; Package: CCL-*-1 ;;;-*-Mode: LISP; Package: GUI -*- 2 2 ;;; 3 ;;; Copyright (C) 2002-200 3Clozure Associates3 ;;; Copyright (C) 2002-2007 Clozure Associates 4 4 ;;; This file is part of OpenMCL. 5 5 ;;; … … 16 16 17 17 18 (in-package " CCL") ; for now.18 (in-package "GUI") 19 19 20 20 (eval-when (:compile-toplevel :load-toplevel :execute) 21 (require "OBJC-SUPPORT")22 ;;23 ;; this stuff should all be integrated with a preferences file in ~/Library/OpenMCL/24 ;; (Um, it -is- integrated with the preferences file.)25 ;;26 (require "COCOA-DEFAULTS")27 21 (def-cocoa-default *default-font-name* :string "Courier" "Name of font to use in editor windows") 28 22 (def-cocoa-default *default-font-size* :float 12.0f0 "Size of font to use in editor windows, as a positive SINGLE-FLOAT") 29 (def-cocoa-default *tab-width* :int 8 "Width of editor tab stops, in characters") 30 (require "COCOA-PREFS") 31 (require "COCOA-TYPEOUT")) 32 33 (eval-when (:compile-toplevel :execute) 34 (use-interface-dir #+apple-objc :cocoa #+gnu-objc :gnustep)) 35 23 (def-cocoa-default *tab-width* :int 8 "Width of editor tab stops, in characters")) 36 24 37 25 (defun init-cocoa-application () … … 115 103 (defparameter *event-process-reported-conditions* () "Things that we've already complained about on this event cycle.") 116 104 117 (defmethod process-debug-condition ((process appkit-process) condition frame-pointer)105 (defmethod ccl::process-debug-condition ((process appkit-process) condition frame-pointer) 118 106 "Better than nothing. Not much better." 119 107 (when *debug-in-event-process* 120 (let* ((c (if (typep condition ' ns-lisp-exception)121 ( ns-lisp-exception-condition condition)108 (let* ((c (if (typep condition 'ccl::ns-lisp-exception) 109 (ccl::ns-lisp-exception-condition condition) 122 110 condition))) 123 111 (unless (member c *event-process-reported-conditions*) … … 125 113 (catch 'need-a-catch-frame-for-backtrace 126 114 (let* ((*debug-in-event-process* nil) 127 (context ( new-backtrace-info nil128 frame-pointer129 (if*backtrace-contexts*130 (or (child-frame131 (bt.youngest (car*backtrace-contexts*))132 nil)133 (last-frame-ptr))134 (last-frame-ptr))135 (%current-tcr)136 condition137 (%current-frame-ptr)138 #+ppc-target*fake-stack-frames*139 #+x86-target (%current-frame-ptr)140 (db-link)141 (1+*break-level*)))142 ( *backtrace-contexts* (cons context*backtrace-contexts*)))115 (context (ccl::new-backtrace-info nil 116 frame-pointer 117 (if ccl::*backtrace-contexts* 118 (or (ccl::child-frame 119 (ccl::bt.youngest (car ccl::*backtrace-contexts*)) 120 nil) 121 (ccl::last-frame-ptr)) 122 (ccl::last-frame-ptr)) 123 (ccl::%current-tcr) 124 condition 125 (ccl::%current-frame-ptr) 126 #+ppc-target ccl::*fake-stack-frames* 127 #+x86-target (ccl::%current-frame-ptr) 128 (ccl::db-link) 129 (1+ ccl::*break-level*))) 130 (ccl::*backtrace-contexts* (cons context ccl::*backtrace-contexts*))) 143 131 (format t "~%~%*** Error in event process: ~a~%~%" condition) 144 132 (print-call-history :context context :detailed-p t :count 20 :origin frame-pointer) … … 185 173 186 174 187 (defmethod process-exit-application ((process appkit-process) thunk)188 (when (eq process *initial-process*)175 (defmethod ccl::process-exit-application ((process appkit-process) thunk) 176 (when (eq process ccl::*initial-process*) 189 177 (%set-toplevel thunk) 190 178 (#/terminate: *NSApp* +null-ptr+))) … … 212 200 #'(lambda () 213 201 (loop 214 ( %nanosleep*periodic-task-seconds*215 *periodic-task-nanoseconds*)216 ( housekeeping))))202 (ccl::%nanosleep ccl::*periodic-task-seconds* 203 ccl::*periodic-task-nanoseconds*) 204 (ccl::housekeeping)))) 217 205 218 206 (with-autorelease-pool … … 222 210 (unless (%null-ptr-p icon) 223 211 (#/setApplicationIconImage: *NSApp* icon))) 224 (setf ( application-ui-object *application*) *NSApp*)212 (setf (ccl::application-ui-object *application*) *NSApp*) 225 213 (when application-proxy-class-name 226 (let* ((classptr ( %objc-class-classptr227 ( load-objc-class-descriptor application-proxy-class-name)))214 (let* ((classptr (ccl::%objc-class-classptr 215 (ccl::load-objc-class-descriptor application-proxy-class-name))) 228 216 (instance (#/init (#/alloc classptr)))) 229 217 … … 257 245 (attributes ())) 258 246 259 (setq size ( float size +cgfloat-zero+))247 (setq size (cgfloat size)) 260 248 (with-cstrs ((name name)) 261 249 (with-autorelease-pool … … 298 286 (#/setTabStops: p (#/array ns:ns-array)) 299 287 ;; And set the "default tab interval". 300 (#/setDefaultTabInterval: p ( float (* *tab-width* charwidth) +cgfloat-zero+))288 (#/setDefaultTabInterval: p (cgfloat (* *tab-width* charwidth))) 301 289 p)) 302 290 -
branches/working-0711/ccl/cocoa-ide/cocoa.lisp
r7595 r7804 1 1 (in-package "CCL") 2 3 ;;; We need to be able to point the CoreFoundation and Cocoa libraries4 ;;; at some bundle very early in the process, so do that before anything5 ;;; else.6 ;;;7 ;;; If you're using this file to load something other than the IDE,8 ;;; you might want to change create-ide-bundle...9 2 10 3 (defvar *cocoa-application-path* "ccl:temp bundle.app;") 11 4 (defvar *cocoa-application-copy-headers-p* nil) 12 13 (defun create-ide-bundle (bundle-path &key (source "ccl:cocoa-ide;ide-contents;") 14 (source-ignore '(".svn" "cvs" ".cvsignore")) 15 (copy-headers *cocoa-application-copy-headers-p*) 16 (if-exists :overwrite)) 17 ;; TODO: Right now if the bundle exists, we leave alone any files that we don't replace. 18 ;; I'd like :if-exists :supersede mean to remove such files, for clean builds, but 19 ;; recursive-copy-directory doesn't support :if-exists :supersede yet... 20 (flet ((subdir (dir sub) 21 (ensure-directory-pathname (make-pathname :name sub :defaults dir))) 22 (ignore-test (p) 23 (flet ((backup-p (name) 24 (and (stringp name) 25 (let ((len (length name))) 26 (and (> len 0) 27 (or (eql (aref name (1- len)) #\~) 28 (eql (aref name 0) #\#))))))) 29 (not (or (member (car (last (pathname-directory p))) source-ignore :test #'equalp) 30 (backup-p (pathname-name p)) 31 (backup-p (pathname-type p)) 32 (member (pathname-name p) source-ignore :test #'equalp)))))) 33 (let* ((source-dir (ensure-directory-pathname source)) 34 (target-dir (ensure-directory-pathname bundle-path)) 35 (contents-dir (subdir target-dir "Contents"))) 36 (recursive-copy-directory source-dir contents-dir :if-exists if-exists :test #'ignore-test) 37 (when copy-headers 38 (let* ((subdirs (cdb-subdirectory-path)) 39 (ccl-headers (make-pathname :host "ccl" :directory `(:absolute ,@subdirs))) 40 (dest-headers (make-pathname :host (pathname-host contents-dir) 41 :directory (append (pathname-directory contents-dir) 42 (cons "Resources" subdirs))))) 43 (recursive-copy-directory ccl-headers dest-headers :if-exists if-exists :test #'ignore-test))) 44 ;; Is this necessary? 45 (let* ((image-name (standard-kernel-name)) 46 (ccl-image (make-pathname :name image-name :host "ccl")) 47 (dest-image (make-pathname :name image-name 48 :defaults (subdir contents-dir "MacOS")))) 49 (ensure-directories-exist dest-image) 50 (copy-file ccl-image dest-image :if-exists :supersede :preserve-attributes t)) 51 (touch target-dir)))) 52 53 #+darwin-target 54 (progn 55 (require "FAKE-CFBUNDLE-PATH") 56 (create-ide-bundle *cocoa-application-path*) 57 (fake-cfbundle-path *cocoa-application-path* "ccl:cocoa-ide;Info.plist-proto" "com.clozure")) 58 59 60 (require "OBJC-SUPPORT") 61 62 (if (< #&NSAppKitVersionNumber 824) 63 (error "This application requires features introduced in OSX 10.4.")) 64 65 (defparameter *standalone-cocoa-ide* nil) 66 67 68 (defvar *ide-files* 69 '("cocoa-utils" 70 "cocoa-defaults" 71 "cocoa-prefs" 72 "cocoa-typeout" 73 "cocoa-window" 74 "cocoa-doc" 75 "cocoa-editor" ;; this loads hemlock 76 "cocoa-listener" 77 ;; tools 78 "cocoa-grep" 79 "cocoa-backtrace" 80 "cocoa-inspector" 81 "preferences" 82 "processes-window" 83 "apropos-window" 84 "app-delegate" 85 )) 86 87 (defun load-ide (&optional force-compile) 88 (with-compilation-unit () 89 (dolist (name *ide-files*) 90 (let* ((source (merge-pathnames *.lisp-pathname* (make-pathname :name name :defaults "ccl:cocoa-ide;"))) 91 (fasl (merge-pathnames *.fasl-pathname* source))) 92 (if (needs-compile-p fasl (list source) force-compile) 93 (compile-file source :output-file fasl :verbose t :load t) 94 (load fasl :verbose t)) 95 (provide (string-upcase name)))))) 96 97 (load-ide t) 98 99 100 (def-cocoa-default *ccl-directory* :string "" nil #'(lambda (old new) 101 (when (equal new "") (setq new nil)) 102 (unless (and new (equal old new)) 103 (init-interfaces-root) 104 (replace-base-translation "ccl:" 105 (or new (find-ccl-directory)))))) 106 107 ;; If there are interfaces inside the bundle, use those rather than the ones 108 ;; in CCL:, since they're more likely to be valid. CCL: could be some random 109 ;; sources we're just using just for meta-. 110 (defun init-interfaces-root () 111 (let* ((subpath (cdb-subdirectory-path)) 112 (path (pathname-directory (ccl-directory)))) 113 (when (and *standalone-cocoa-ide* 114 (equalp (last path 2) '("Contents" "MacOS"))) 115 (setq path (butlast path)) 116 (when (or (probe-file (make-pathname :directory (append path subpath))) 117 (probe-file (make-pathname :directory (append (setq path `(,@path "Resources")) subpath)))) 118 (setq *interfaces-root* (make-pathname :directory path)))))) 119 120 (defun find-ccl-directory () 121 (let* ((path (ccl-directory)) 122 (dir (pathname-directory path))) 123 (if (equalp (last dir 2) '("Contents" "MacOS")) 124 (make-pathname :directory (butlast dir 3)) 125 path))) 126 127 (defmethod ui-object-do-operation ((o ns:ns-application) 128 operation 129 &rest args) 130 (declare (ignore operation args)) 131 ;; Do nothing. Would it be better to warn and/or log this ? 132 ) 133 134 (defmethod ui-object-do-operation ((o ns:ns-application) 135 (operation (eql :note-current-package)) 136 &rest args) 137 (ui-object-note-package o (car args))) 138 139 (defmethod ui-object-do-operation ((o ns:ns-application) 140 (operation (eql :eval-selection)) 141 &rest args) 142 (ui-object-eval-selection o (car args))) 143 144 (defmethod ui-object-do-operation ((o ns:ns-application) 145 (operation (eql :enter-backtrace-context)) 146 &rest args) 147 (ui-object-enter-backtrace-context o (car args))) 148 149 (defmethod ui-object-do-operation ((o ns:ns-application) 150 (operation (eql :exit-backtrace-context)) 151 &rest args) 152 (ui-object-exit-backtrace-context o (car args))) 153 154 155 156 157 (start-cocoa-application) 158 5 (load "ccl:cocoa-ide;defsystem.lisp") 6 (load-ide) -
branches/working-0711/ccl/cocoa-ide/compile-hemlock.lisp
r7540 r7804 104 104 (provide "HEMLOCK") 105 105 ) 106 107 108 (provide "COMPILE-HEMLOCK") -
branches/working-0711/ccl/cocoa-ide/hemlock/src/listener.lisp
r7348 r7804 103 103 ) 104 104 (let* ((input-mark (variable-value 'buffer-input-mark :buffer buffer))) 105 (when ccl::*read-only-listener*105 (when gui::*read-only-listener* 106 106 (setf (hi::buffer-protected-region buffer) 107 107 (region (buffer-start-mark buffer) input-mark))) -
branches/working-0711/ccl/cocoa-ide/hemlock/src/macros.lisp
r7595 r7804 560 560 (let ((stream (gensym))) 561 561 `(let () 562 (let ((,stream ( ccl::typeout-stream ,title)))562 (let ((,stream (gui::typeout-stream ,title))) 563 563 (clear-output ,stream) 564 564 (unwind-protect -
branches/working-0711/ccl/cocoa-ide/hemlock/src/symbol-completion.lisp
r7595 r7804 103 103 104 104 (defmethod dabbrev-sources-in ((state (eql :other-buffers)) context) 105 (let* ((buffers (mapcar #'window-buffer ( ccl::ordered-hemlock-windows))))105 (let* ((buffers (mapcar #'window-buffer (gui::ordered-hemlock-windows)))) 106 106 ;; Remove duplicates, always keeping the first occurance (frontmost window) 107 107 (loop for blist on buffers do (setf (cdr blist) (delete (car blist) (cdr blist)))) -
branches/working-0711/ccl/cocoa-ide/ide-contents/Resources/English.lproj/apropos.nib/classes.nib
r7588 r7804 12 12 <key>inspectSelectedSymbol</key> 13 13 <string>id</string> 14 <key>setPackage</key> 15 <string>id</string> 16 <key>toggleShowsExternalSymbols</key> 17 <string>id</string> 14 18 </dict> 15 19 <key>CLASS</key> … … 21 25 <key>arrayController</key> 22 26 <string>id</string> 27 <key>comboBox</key> 28 <string>id</string> 29 <key>externalSymbolsCheckbox</key> 30 <string>id</string> 23 31 <key>tableView</key> 32 <string>id</string> 33 <key>textView</key> 24 34 <string>id</string> 25 35 </dict> 26 36 <key>SUPERCLASS</key> 27 37 <string>NSWindowController</string> 38 </dict> 39 <dict> 40 <key>CLASS</key> 41 <string>PackageComboBox</string> 42 <key>LANGUAGE</key> 43 <string>ObjC</string> 44 <key>OUTLETS</key> 45 <dict> 46 <key>dataSource</key> 47 <string>id</string> 48 </dict> 28 49 </dict> 29 50 </array> -
branches/working-0711/ccl/cocoa-ide/ide-contents/Resources/English.lproj/apropos.nib/info.nib
r7588 r7804 6 6 <string>629</string> 7 7 <key>IBOldestOS</key> 8 <integer> 4</integer>8 <integer>5</integer> 9 9 <key>IBOpenObjects</key> 10 <array/> 10 <array> 11 <integer>127</integer> 12 </array> 11 13 <key>IBSystem Version</key> 12 14 <string>9A581</string> -
branches/working-0711/ccl/cocoa-ide/ide-contents/Resources/English.lproj/preferences.nib/info.nib
r7604 r7804 9 9 <key>IBOpenObjects</key> 10 10 <array> 11 <integer>150 0858</integer>11 <integer>1501086</integer> 12 12 </array> 13 13 <key>IBSystem Version</key> 14 <string>9 A581</string>14 <string>9B18</string> 15 15 <key>targetFramework</key> 16 16 <string>IBCocoaFramework</string> -
branches/working-0711/ccl/cocoa-ide/preferences.lisp
r7573 r7804 1 ;;;-*-Mode: LISP; Package: CCL-*-1 ;;;-*-Mode: LISP; Package: GUI -*- 2 2 ;;; 3 3 ;;; Copyright (C) 2007 Clozure Associates 4 ;;; This file is part of OpenMCL.5 4 ;;; 6 ;;; OpenMCL is licensed under the terms of the Lisp Lesser GNU Public7 ;;; License , known as the LLGPL and distributed with OpenMCL as the8 ;;; file "LICENSE". The LLGPL consists of a preamble and the LGPL,9 ;;; which is distributed with OpenMCL as the file "LGPL". Where these10 ;;; conflict, the preamble takes precedence.11 ;;;12 ;;; OpenMCL is referenced in the preamble as the "LIBRARY."13 ;;;14 ;;; The LLGPL is also available online at15 ;;; http://opensource.franz.com/preamble.html16 17 5 ;;; How to add a new preference pane: 18 6 ;;; … … 35 23 ;;; 8. Implement actions, if needed. 36 24 37 (in-package "CCL") 38 39 (eval-when (:compile-toplevel :execute) 40 (use-interface-dir :cocoa)) 25 26 (in-package "GUI") 41 27 42 28 ;;; A view that keeps track of its initial size. -
branches/working-0711/ccl/cocoa-ide/processes-window.lisp
r7555 r7804 1 (in-package "CCL") 1 ;;;-*-Mode: LISP; Package: GUI -*- 2 ;;; 3 ;;; Copyright (C) 2007 Clozure Associates 4 5 (in-package "GUI") 2 6 3 7 (defclass processes-window-controller (ns:ns-window-controller)
Note:
See TracChangeset
for help on using the changeset viewer.
