Changeset 6759


Ignore:
Timestamp:
Jun 18, 2007, 1:40:08 AM (17 years ago)
Author:
Gary Byers
Message:

view pop-up menu, color changing stuff. Are bugs Leopard-specific ?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ide-1.0/ccl/examples/cocoa-editor.lisp

    r6747 r6759  
    637637(objc:defmethod (#/changeColor: :void) ((self hemlock-textstorage-text-view)
    638638                                        sender)
    639   (#_NSLog #@"Change color to = %@" :id (#/color sender)))
     639  (declare (ignorable sender))
     640  #+debug (#_NSLog #@"Change color to = %@" :id (#/color sender)))
    640641
    641642(def-cocoa-default *layout-text-in-background* :int 1 "When non-zero, do text layout when idle.")
     
    653654(objc:defmethod (#/setBackgroundColor: :void)
    654655    ((self hemlock-textstorage-text-view) color)
     656  (#_NSLog #@"Set background color: %@" :id color)
    655657  (setf (text-view-blink-color self) color)
    656658  (call-next-method color))
     
    754756
    755757
     758(defloadvar *text-view-context-menu* ())
     759
     760(defun text-view-context-menu ()
     761  (or *text-view-context-menu*
     762      (setq *text-view-context-menu*
     763            (#/retain
     764             (let* ((menu (make-instance 'ns:ns-menu :with-title #@"Menu")))
     765               (#/addItemWithTitle:action:keyEquivalent:
     766                menu #@"Cut" (@selector #/cut:) #@"")
     767               (#/addItemWithTitle:action:keyEquivalent:
     768                menu #@"Copy" (@selector #/copy:) #@"")
     769               (#/addItemWithTitle:action:keyEquivalent:
     770                menu #@"Paste" (@selector #/paste:) #@"")
     771               ;; Separator
     772               (#/addItem: menu (#/separatorItem ns:ns-menu-item))
     773               (#/addItemWithTitle:action:keyEquivalent:
     774                menu #@"Background Color ..." (@selector #/changeBackgroundColor:) #@"")
     775               (#/addItemWithTitle:action:keyEquivalent:
     776                menu #@"Text Color ..." (@selector #/changeTextColor:) #@"")
     777
     778               menu)))))
     779
     780(objc:defmethod (#/changeFont: :void)
     781    ((self hemlock-text-view) sender)
     782  (declare (ignorable sender))
     783  (#_NSLog #@"changefont!"))
     784
     785
     786(objc:defmethod (#/changeBackgroundColor: :void)
     787    ((self hemlock-text-view) sender)
     788  (let* ((colorpanel (#/sharedColorPanel ns:ns-color-panel))
     789         (color (#/backgroundColor self)))
     790    (#/close colorpanel)
     791    (#/setAction: colorpanel (@selector #/updateBackgroundColor:))
     792    (#/setColor: colorpanel color)
     793    (#/setTarget: colorpanel self)
     794    (#/setContinuous: colorpanel t)
     795    (#/orderFrontColorPanel: *NSApp* sender)))
     796
     797
     798
     799(objc:defmethod (#/updateBackgroundColor: :void)
     800    ((self hemlock-text-view) sender)
     801  (let* ((color (#/color sender)))
     802    (unless (typep self 'echo-area-view)
     803      (let* ((echo-view (slot-value (#/window self) 'echo-area-view)))
     804        (#/setBackgroundColor: echo-view color)))
     805    (#/setBackgroundColor: self color)
     806    (#_NSLog #@"view = %@, color = %@, background = %@" :id self :id color :id (#/backgroundColor self))
     807    ))
     808
     809(objc:defmethod (#/changeTextColor: :void)
     810    ((self hemlock-text-view) sender)
     811  (let* ((colorpanel (#/sharedColorPanel ns:ns-color-panel))
     812         (textstorage (#/textStorage self))
     813         (color (#/objectForKey:
     814                 (#/objectAtIndex: (slot-value textstorage 'styles) 0)
     815                 #&NSForegroundColorAttributeName)))
     816    (#/close colorpanel)
     817    (#/setAction: colorpanel (@selector #/updateTextColor:))
     818    (#/setColor: colorpanel color)
     819    (#/setTarget: colorpanel self)
     820    (#/setContinuous: colorpanel t)
     821    (#/orderFrontColorPanel: *NSApp* sender)))
     822
     823
     824
     825
     826
     827
     828   
     829(objc:defmethod (#/updateTextColor: :void)
     830    ((self hemlock-textstorage-text-view) sender)
     831    (%call-next-objc-method
     832     self
     833     hemlock-textstorage-text-view
     834     (@selector #/changeColor:)
     835     '(:void :id)
     836     sender)
     837  (#/setNeedsDisplay: self t))
     838   
     839(objc:defmethod (#/updateTextColor: :void)
     840    ((self hemlock-text-view) sender)
     841  (let* ((textstorage (#/textStorage self))
     842         (styles (slot-value textstorage 'styles))
     843         (newcolor (#/color sender)))
     844    (dotimes (i 4)
     845      (let* ((dict (#/objectAtIndex: styles i)))
     846        (#/setValue:forKey: dict newcolor #&NSForegroundColorAttributeName)))
     847    (call-next-method sender)))
    756848
    757849
     
    11251217    pane))
    11261218
     1219(objc:defmethod #/defaultMenu ((class +hemlock-text-view))
     1220  (text-view-context-menu))
    11271221
    11281222(defun make-scrolling-text-view-for-textstorage (textstorage x y width height tracks-width color style)
     
    11691263                (#/setAllowsUndo: tv nil) ; don't want NSTextView undo
    11701264                (#/setUsesFindPanel: tv t)
    1171                 (#/setUsesFontPanel: tv nil)
     1265                (#/setUsesFontPanel: tv t)
    11721266                (#/setWidthTracksTextView: container tracks-width)
    11731267                (#/setHeightTracksTextView: container nil)
     
    12781372          (#/setMaxSize: echo (ns:make-ns-size large-number-for-text large-number-for-text))
    12791373          (#/setRichText: echo nil)
     1374          (#/setUsesFontPanel: echo nil)
    12801375          (#/setHorizontallyResizable: echo t)
    12811376          (#/setVerticallyResizable: echo nil)
     
    12841379          (#/setWidthTracksTextView: container nil)
    12851380          (#/setHeightTracksTextView: container nil)
     1381          (#/setMenu: echo +null-ptr+)
    12861382          (setf (hemlock-frame-echo-area-buffer the-hemlock-frame) buffer
    12871383                (slot-value doc 'textstorage) textstorage
Note: See TracChangeset for help on using the changeset viewer.