Changeset 654
- Timestamp:
- Mar 17, 2004, 7:22:13 AM (21 years ago)
- File:
-
- 1 edited
-
trunk/ccl/examples/cocoa-backtrace.lisp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/examples/cocoa-backtrace.lisp
r649 r654 40 40 (eql self (frame-label-controller thing)))) 41 41 42 (define-objc-method ((:void window-did-load) 43 backtrace-window-controller) 44 (let* ((outline (slot-value self 'outline-view)) 45 (font (default-font :name "Monaco" :size 12))) 46 (unless (%null-ptr-p outline) 47 (let* ((columns (send outline 'table-columns))) 48 (dotimes (i (send columns 'count)) 49 (let* ((column (send columns :object-at-index i)) 50 (data-cell (send column 'data-cell))) 51 (send data-cell :set-font font) 52 (when (eql i 0) 53 (let* ((header-cell (send column 'header-cell)) 54 (inspector (backtrace-controller-inspector self)) 55 (break-condition 56 (inspector::break-condition 57 (inspector::inspector-object inspector))) 58 (break-condition-string 59 (let* ((*print-level* 5) 60 (*print-length* 5) 61 (*print-circle* t)) 62 (format nil "~a: ~a" 63 (class-name (class-of break-condition)) 64 break-condition)))) 65 66 (send header-cell :set-font (default-font :attributes '(:bold))) 67 (send header-cell :set-string-value 68 (%make-nsstring break-condition-string)))))))))) 69 42 70 (define-objc-method ((:<BOOL> :outline-view view 43 71 :is-item-expandable item) … … 71 99 backtrace-window-controller) 72 100 (declare (ignore view)) 73 (let* ((inspector (backtrace-controller-inspector self))) 74 (cond ((%null-ptr-p item) 75 (let* ((label 76 (make-instance 'frame-label 77 :string 78 (let* ((value 79 (inspector::line-n inspector index))) 80 (if value 81 (%lfun-name-string value) 82 ":kernel"))))) 83 (setf (slot-value label 'controller) self 84 (slot-value label 'frame-number) index) 85 label)) 86 ((our-frame-label-p self item) 87 (let* ((frame-inspector 88 (or (frame-label-frame-inspector item) 89 (setf (frame-label-frame-inspector item) 90 (make-instance 91 'inspector::stack-frame-inspector 92 :frame-number (frame-label-number item) 93 :object (inspector::inspector-object inspector) 94 :update-line-count t))))) 95 (make-objc-instance 'frame-item 96 :frame-label item 97 :index index 98 :string 99 (with-output-to-string (s) 100 (multiple-value-bind (value label) 101 (inspector::line-n 102 frame-inspector 103 index) 104 (inspector::prin1-value 105 frame-inspector 106 s 107 value 108 label)))))) 109 (t (break) (%make-nsstring "Huh?"))))) 101 (let* ((inspector (backtrace-controller-inspector self))) 102 (cond ((%null-ptr-p item) 103 (let* ((label 104 (make-instance 'frame-label 105 :string 106 (let* ((value 107 (inspector::line-n inspector index))) 108 (if value 109 (%lfun-name-string value) 110 ":kernel"))))) 111 (setf (slot-value label 'controller) self 112 (slot-value label 'frame-number) index) 113 label)) 114 ((our-frame-label-p self item) 115 (let* ((frame-inspector 116 (or (frame-label-frame-inspector item) 117 (setf (frame-label-frame-inspector item) 118 (make-instance 119 'inspector::stack-frame-inspector 120 :frame-number (frame-label-number item) 121 :object (inspector::inspector-object inspector) 122 :update-line-count t))))) 123 (make-instance 'frame-item 124 :frame-label item 125 :index index 126 :string 127 (let* ((ccl::*aux-vsp-ranges* (inspector::vsp-range inspector)) 128 (ccl::*aux-tsp-ranges* (inspector::tsp-range inspector))) 129 (with-output-to-string (s) 130 (multiple-value-bind (value label) 131 (inspector::line-n 132 frame-inspector 133 index) 134 (inspector::prin1-value 135 frame-inspector 136 s 137 value 138 label))))))) 139 (t (break) (%make-nsstring "Huh?"))))) 110 140 111 141 (define-objc-method ((:id :outline-view view
Note:
See TracChangeset
for help on using the changeset viewer.
