source: trunk/source/contrib/krueger/InterfaceProjects/Utilities/nslog-utils.lisp @ 13390

Last change on this file since 13390 was 13390, checked in by plkrueger, 10 years ago

New contrib from Paul Krueger

File size: 1.8 KB
Line 
1;; nslog-utils.lisp
2
3(require :ns-string-utils)
4
5(defpackage :interface-utilities
6  (:nicknames :iu)
7  (:export log-rect log-size log-float interleave log-4floats))
8
9(in-package :iu)
10
11(defun log-rect (r &optional (log-string ""))
12  (#_NSLog (lisp-to-temp-nsstring (concatenate 'string 
13                                               log-string 
14                                               "x = %F y = %F width = %F height = %F"))
15           #>CGFloat (ns:ns-rect-x r)
16           #>CGFloat (ns:ns-rect-y r)
17           #>CGFloat (ns:ns-rect-width r)
18           #>CGFloat (ns:ns-rect-height r)))
19           
20(defun log-size (s &optional (log-string ""))
21  (#_NSLog (lisp-to-temp-nsstring (concatenate 'string 
22                                               log-string 
23                                               "width = %F height = %F"))
24           #>CGFloat (ns:ns-size-width s)
25           #>CGFloat (ns:ns-size-height s)))
26
27(defun log-float (f &optional (log-string ""))
28  (#_NSLog (lisp-to-temp-nsstring (concatenate 'string 
29                                               log-string 
30                                               "%F"))
31           #>CGFloat f))
32
33(defun interleave (l1 l2)
34  (let ((lst1 (if (listp l1) l1 (list l1)))
35        (lst2 (if (listp l2) l2 (list l2))))
36    (if (atom l1)
37      (setf (cdr lst1) lst1)
38      (if (atom l2)
39        (setf (cdr lst2) lst2)))
40    (mapcan #'(lambda (el1 el2)
41                (list el1 el2))
42            lst1
43            lst2)))
44
45(defun log-4floats (f1 f2 f3 f4 &optional (log-strings '("" "" "" "")))
46  (#_NSLog (lisp-to-temp-nsstring (apply #'concatenate 'string 
47                                         (interleave log-strings "%F ")))
48           #>CGFloat f1
49           #>CGFloat f2
50           #>CGFloat f3
51           #>CGFloat f4))
Note: See TracBrowser for help on using the repository browser.