Index: /trunk/source/cocoa-ide/cocoa-editor.lisp
===================================================================
--- /trunk/source/cocoa-ide/cocoa-editor.lisp	(revision 12167)
+++ /trunk/source/cocoa-ide/cocoa-editor.lisp	(revision 12168)
@@ -1262,4 +1262,12 @@
         (setq s (lisp-string-from-nsstring s))
         (ui-object-eval-selection *NSApp* (list package-name pathname s))))))
+
+(objc:defmethod (#/evalAll: :void) ((self hemlock-text-view) sender)
+  (declare (ignore sender))
+  (let* ((buffer (hemlock-buffer self))
+         (package-name (hi::variable-value 'hemlock::current-package :buffer buffer))
+         (pathname (hi::buffer-pathname buffer))
+         (s (lisp-string-from-nsstring (#/string self))))
+    (ui-object-eval-selection *NSApp* (list package-name pathname s))))
 
 (objc:defmethod (#/loadBuffer: :void) ((self hemlock-text-view) sender)
@@ -1553,10 +1561,8 @@
                             (funcall (hi::modeline-field-function field) buffer))
                         (hi::buffer-modeline-fields buffer)))))
-	  (#/drawAtPoint:withAttributes: (%make-nsstring string)
+	  (#/drawAtPoint:withAttributes: (#/autorelease (%make-nsstring string))
                                          (ns:make-ns-point 5 1)
                                          text-attributes))))))
 
-;;; Draw the underlying buffer's modeline string on a white background
-;;; with a bezeled border around it.
 (objc:defmethod (#/drawRect: :void) ((self modeline-view) (rect :<NSR>ect))
   (declare (ignorable rect))
@@ -1567,4 +1573,5 @@
     (#_NSRectFill bounds)
     (#/set (#/colorWithCalibratedWhite:alpha: ns:ns-color 0.3333 1.0))
+    ;; Draw borders on top and bottom.
     (ns:with-ns-rect (r 0 0.5 (ns:ns-rect-width bounds) 0.5)
       (#_NSRectFill r))
@@ -1580,59 +1587,4 @@
 
 
-
-;;; Modeline-scroll-view
-
-;;; This is just an NSScrollView that draws a "placard" view (the modeline)
-;;; in the horizontal scrollbar.  The modeline's arbitrarily given the
-;;; leftmost 75% of the available real estate.
-(defclass modeline-scroll-view (ns:ns-scroll-view)
-    ((modeline :foreign-type :id :accessor scroll-view-modeline)
-     (pane :foreign-type :id :accessor scroll-view-pane))
-  (:metaclass ns:+ns-object))
-
-;;; Making an instance of a modeline scroll view instantiates the
-;;; modeline view, as well.
-
-(objc:defmethod #/initWithFrame: ((self modeline-scroll-view) (frame :<NSR>ect))
-    (let* ((v (call-next-method frame)))
-      (when v
-        (let* ((modeline (make-instance 'modeline-view)))
-          (#/addSubview: v modeline)
-          (setf (scroll-view-modeline v) modeline)))
-      v))
-
-;;; Scroll views use the "tile" method to lay out their subviews.
-;;; After the next-method has done so, steal some room in the horizontal
-;;; scroll bar and place the modeline view there.
-
-(objc:defmethod (#/tile :void) ((self modeline-scroll-view))
-  (call-next-method)
-  (let* ((modeline (scroll-view-modeline self)))
-    (when (and (#/hasHorizontalScroller self)
-               (not (%null-ptr-p modeline)))
-      (let* ((hscroll (#/horizontalScroller self))
-             (scrollbar-frame (#/frame hscroll))
-             (modeline-frame (#/frame hscroll)) ; sic
-             (modeline-width (* (pref modeline-frame
-                                      :<NSR>ect.size.width)
-                                0.75f0)))
-        (declare (type ns:cgfloat modeline-width))
-        (setf (pref modeline-frame :<NSR>ect.size.width)
-              modeline-width
-              (the ns:cgfloat
-                (pref scrollbar-frame :<NSR>ect.size.width))
-              (- (the ns:cgfloat
-                   (pref scrollbar-frame :<NSR>ect.size.width))
-                 modeline-width)
-              (the ns:cgfloat
-                (pref scrollbar-frame :<NSR>ect.origin.x))
-              (+ (the ns:cgfloat
-                   (pref scrollbar-frame :<NSR>ect.origin.x))
-                 modeline-width))
-        (#/setFrame: hscroll scrollbar-frame)
-        (#/setFrame: modeline modeline-frame)))))
-
-
-  
 
 ;;; A clip view subclass, which exists mostly so that we can track origin changes.
@@ -2386,4 +2338,8 @@
           ((eql action (@selector #/evalSelection:))
            (not (eql 0 (ns:ns-range-length (#/selectedRange self)))))
+          ((eql action (@selector #/evalAll:))
+           (let* ((doc (#/document (#/windowController (#/window self)))))
+             (and (not (%null-ptr-p doc))
+                  (eq (type-of doc) 'hemlock-editor-document))))
           ;; if this hemlock-text-view is in an editor windowm and its buffer has
           ;; an associated pathname, then activate the Load Buffer item
Index: /trunk/source/cocoa-ide/ide-contents/Resources/English.lproj/MainMenu.nib/classes.nib
===================================================================
--- /trunk/source/cocoa-ide/ide-contents/Resources/English.lproj/MainMenu.nib/classes.nib	(revision 12167)
+++ /trunk/source/cocoa-ide/ide-contents/Resources/English.lproj/MainMenu.nib/classes.nib	(revision 12168)
@@ -32,4 +32,6 @@
 				<string>id</string>
 				<key>continue</key>
+				<string>id</string>
+				<key>evalAll</key>
 				<string>id</string>
 				<key>evalSelection</key>
Index: /trunk/source/cocoa-ide/ide-contents/Resources/English.lproj/MainMenu.nib/info.nib
===================================================================
--- /trunk/source/cocoa-ide/ide-contents/Resources/English.lproj/MainMenu.nib/info.nib	(revision 12167)
+++ /trunk/source/cocoa-ide/ide-contents/Resources/English.lproj/MainMenu.nib/info.nib	(revision 12168)
@@ -12,5 +12,5 @@
 	</array>
 	<key>IBSystem Version</key>
-	<string>9G55</string>
+	<string>9J61</string>
 	<key>targetFramework</key>
 	<string>IBCocoaFramework</string>
