- Timestamp:
- Jul 6, 2007, 11:58:39 AM (17 years ago)
- File:
-
- 1 edited
-
branches/ide-1.0/ccl/examples/cocoa-editor.lisp (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/ide-1.0/ccl/examples/cocoa-editor.lisp
r6766 r6785 655 655 ((self hemlock-textstorage-text-view) color) 656 656 #+debug (#_NSLog #@"Set background color: %@" :id color) 657 (setf (text-view-blink-color self) color) 657 (let* ((old (text-view-blink-color self))) 658 (unless (%null-ptr-p old) 659 (#/release old))) 660 (setf (text-view-blink-color self) 661 (#/retain (#/dictionaryWithObject:forKey: 662 ns:ns-dictionary 663 color 664 #&NSForegroundColorAttributeName))) 658 665 (call-next-method color)) 659 666 … … 669 676 (unless (eql #$NO (text-view-blink-enabled self)) 670 677 (let* ((layout (#/layoutManager self)) 671 (container (#/textContainer self))672 678 (blink-color (text-view-blink-color self))) 679 #+debug (#_NSLog #@"layout = %@, blink-color = %@" :id layout :id blink-color) 673 680 ;; We toggle the blinked character "off" by setting its 674 681 ;; foreground color to the textview's background color. … … 676 683 ;; point is drawn as "off" 677 684 (ns:with-ns-range (char-range (text-view-blink-location self) 1) 678 (let* ((glyph-range (#/glyphRangeForCharacterRange:actualCharacterRange:679 layout680 char-range681 +null-ptr+)))682 #+debug (#_NSLog #@"Flag = %d, location = %d" :<BOOL> (if flag #$YES #$NO) :int (text-view-blink-location self))683 (let* ((rect (#/boundingRectForGlyphRange:inTextContainer:684 layout685 glyph-range686 container)))687 (#/set blink-color)688 (#_NSRectFill rect))689 685 (if flag 690 (#/drawGlyphsForGlyphRange:atPoint: layout glyph-range (#/textContainerOrigin self))))))) 686 (#/setTemporaryAttributes:forCharacterRange: layout blink-color char-range) 687 (#/removeTemporaryAttribute:forCharacterRange: layout #&NSForegroundColorAttributeName char-range))))) 691 688 (call-next-method r color flag))) 692 689 693 690 (defmethod disable-blink ((self hemlock-textstorage-text-view)) 691 #+debug 692 (when (#/editingInProgress (#/textStorage self)) 693 (#_NSLog #@"disable-blink: editing in progress")) 694 694 (when (eql (text-view-blink-enabled self) #$YES) 695 695 (setf (text-view-blink-enabled self) #$NO) 696 696 ;; Force the blinked character to be redrawn. Let the text 697 697 ;; system do the drawing. 698 (#/ invalidateDisplayForCharacterRange: (#/layoutManager self)(ns:make-ns-range (text-view-blink-location self) 1))))698 (#/removeTemporaryAttribute:forCharacterRange: (#/layoutManager self) #&NSForegroundColorAttributeName (ns:make-ns-range (text-view-blink-location self) 1)))) 699 699 700 700 (defmethod update-blink ((self hemlock-textstorage-text-view)) … … 706 706 (point (hi::buffer-point buffer))) 707 707 #+debug (#_NSLog #@"Syntax check for blinking") 708 (update-buffer-package (hi::buffer-document buffer) buffer) 709 708 710 (cond ((eql (hi::next-character point) #\() 709 711 (hemlock::pre-command-parse-check point) … … 792 794 (#/setColor: colorpanel color) 793 795 (#/setTarget: colorpanel self) 794 (#/setContinuous: colorpanel t)796 (#/setContinuous: colorpanel nil) 795 797 (#/orderFrontColorPanel: *NSApp* sender))) 796 798 … … 799 801 (objc:defmethod (#/updateBackgroundColor: :void) 800 802 ((self hemlock-text-view) sender) 801 (let* ((color (#/color sender))) 802 (unless (typep self 'echo-area-view) 803 (let* ((window (#/window self)) 804 (echo-view (unless (%null-ptr-p window) 805 (slot-value window 'echo-area-view)))) 806 (when echo-view (#/setBackgroundColor: echo-view color)))) 807 (#/setBackgroundColor: self color))) 803 (when (#/isVisible sender) 804 (let* ((color (#/color sender))) 805 (unless (typep self 'echo-area-view) 806 (let* ((window (#/window self)) 807 (echo-view (unless (%null-ptr-p window) 808 (slot-value window 'echo-area-view)))) 809 (when echo-view (#/setBackgroundColor: echo-view color)))) 810 (#_NSLog #@"Updating backgroundColor to %@, sender = %@" :id color :id sender) 811 (#/setBackgroundColor: self color)))) 808 812 809 813 (objc:defmethod (#/changeTextColor: :void) … … 818 822 (#/setColor: colorpanel color) 819 823 (#/setTarget: colorpanel self) 820 (#/setContinuous: colorpanel t)824 (#/setContinuous: colorpanel nil) 821 825 (#/orderFrontColorPanel: *NSApp* sender))) 822 826 … … 1220 1224 (text-view-context-menu)) 1221 1225 1226 ;;; If we don't override this, NSTextView will start adding Google/ 1227 ;;; Spotlight search options and dictionary lookup when a selection 1228 ;;; is active. 1229 (objc:defmethod #/menuForEvent: ((self hemlock-text-view) event) 1230 (declare (ignore event)) 1231 (#/menu self)) 1232 1222 1233 (defun make-scrolling-text-view-for-textstorage (textstorage x y width height tracks-width color style) 1223 1234 (let* ((scrollview (#/autorelease … … 1264 1275 (#/setUsesFindPanel: tv t) 1265 1276 (#/setUsesFontPanel: tv t) 1277 (#/setMenu: tv (text-view-context-menu)) 1266 1278 (#/setWidthTracksTextView: container tracks-width) 1267 1279 (#/setHeightTracksTextView: container nil) … … 1316 1328 ((textstorage :foreign-type :id)) 1317 1329 (:metaclass ns:+ns-object)) 1330 1331 (defmethod update-buffer-package ((doc echo-area-document) buffer) 1332 (declare (ignore buffer))) 1318 1333 1319 1334 (objc:defmethod (#/close :void) ((self echo-area-document)) … … 1465 1480 #|(*debug-io* *typeout-stream*)|#) 1466 1481 (stream-clear-output *debug-io*) 1467 ( print-call-history :detailed-p t)1482 (ignore-errors (print-call-history :detailed-p t)) 1468 1483 (#/performSelectorOnMainThread:withObject:waitUntilDone: 1469 1484 frame (@selector #/runErrorSheet:) params t) … … 1888 1903 (:metaclass ns:+ns-object)) 1889 1904 1905 (defmethod update-buffer-package ((doc hemlock-editor-document) buffer) 1906 (let* ((name (hemlock::package-at-mark (hi::buffer-point buffer)))) 1907 (when name 1908 (let* ((pkg (find-package name))) 1909 (if pkg 1910 (setq name (shortest-package-name pkg)))) 1911 (let* ((curname (hi::variable-value 'hemlock::current-package :buffer buffer))) 1912 (if (or (null curname) 1913 (not (string= curname name))) 1914 (setf (hi::variable-value 'hemlock::current-package :buffer buffer) name)))))) 1890 1915 1891 1916 (objc:defmethod (#/validateMenuItem: :<BOOL>) … … 2039 2064 (call-next-method path type save-operation)) 2040 2065 2041 ;;; This should be a preference. 2066 (def-cocoa-default *editor-keep-backup-files* :bool t "maintain backup files") 2067 2042 2068 (objc:defmethod (#/keepBackupFile :<BOOL>) ((self hemlock-editor-document)) 2043 t)2069 *editor-keep-backup-files*) 2044 2070 2045 2071
Note:
See TracChangeset
for help on using the changeset viewer.
