Changeset 641


Ignore:
Timestamp:
Mar 8, 2004, 5:56:13 AM (21 years ago)
Author:
Gary Byers
Message:

Factor out window creation.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/examples/cocoa-editor.lisp

    r632 r641  
    720720
    721721
    722 (defun get-cocoa-window-flag (w flagname)
    723   (case flagname
    724     (:accepts-mouse-moved-events
    725      (send w 'accepts-mouse-moved-events))
    726     (:cursor-rects-enabled
    727      (send w 'are-cursor-rects-enabled))
    728     (:auto-display
    729      (send w 'is-autodisplay))))
    730 
    731 
    732 
    733 (defun (setf get-cocoa-window-flag) (value w flagname)
    734   (case flagname
    735     (:accepts-mouse-moved-events
    736      (send w :set-accepts-mouse-moved-events value))
    737     (:auto-display
    738      (send w :set-autodisplay value))))
    739 
    740 
    741 
    742 (defun activate-window (w)
    743   ;; Make w the "key" and frontmost window.  Make it visible, if need be.
    744   (send w :make-key-and-order-front nil))
    745 
    746 (defun new-hemlock-document-window (&key
    747                                     (x 200.0)
    748                                     (y 200.0)
    749                                     (height 200.0)
    750                                     (width 500.0)
    751                                     (closable t)
    752                                     (iconifyable t)
    753                                     (metal t)
    754                                     (expandable t)
    755                                     (backing :buffered)
    756                                     (defer nil)
    757                                     (accepts-mouse-moved-events nil)
    758                                     (auto-display t)
    759                                     (activate t))
    760   (rlet ((frame :<NSR>ect :origin.x (float x) :origin.y (float y) :size.width (float width) :size.height (float height)))
    761     (let* ((stylemask
    762             (logior #$NSTitledWindowMask
    763                     (if closable #$NSClosableWindowMask 0)
    764                     (if iconifyable #$NSMiniaturizableWindowMask 0)
    765                     (if expandable #$NSResizableWindowMask 0)
    766                     (if metal #$NSTexturedBackgroundWindowMask 0)))
    767            (backing-type
    768             (ecase backing
    769               ((t :retained) #$NSBackingStoreRetained)
    770               ((nil :nonretained) #$NSBackingStoreNonretained)
    771               (:buffered #$NSBackingStoreBuffered)))
    772            (w (make-instance
    773                'hemlock-frame
    774                :with-content-rect frame
    775                :style-mask stylemask
    776                :backing backing-type
    777                :defer defer)))
    778       (setf (get-cocoa-window-flag w :accepts-mouse-moved-events)
    779             accepts-mouse-moved-events
    780             (get-cocoa-window-flag w :auto-display)
    781             auto-display)
     722
     723
     724
     725
     726(defun new-hemlock-document-window ()
     727  (let* ((w (new-cocoa-window :class (find-class 'hemlock-frame)
     728                              :activate nil)))
    782729      (setf (slot-value w 'echo-area-view)
    783730            (make-echo-area-for-window w))
    784       (when activate (activate-window w))
    785       (values w (add-pane-to-window w :reserve-below 20.0)))))
     731      (values w (add-pane-to-window w :reserve-below 20.0))))
    786732
    787733
     
    805751  (let* ((pane (nth-value
    806752                1
    807                 (new-hemlock-document-window :activate nil)))
     753                (new-hemlock-document-window)))
    808754         (tv (make-scrolling-textview-for-pane pane ts container-tracks-text-view-width)))
    809755    (multiple-value-bind (height width)
Note: See TracChangeset for help on using the changeset viewer.