home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / gnu / epoch / misc / 1129 < prev    next >
Encoding:
Text File  |  1992-11-18  |  3.8 KB  |  105 lines

  1. Newsgroups: gnu.epoch.misc
  2. Path: sparky!uunet!stanford.edu!agate!usenet.ins.cwru.edu!magnus.acs.ohio-state.edu!cis.ohio-state.edu!ncsa.uiuc.edu!marca
  3. From: marca@ncsa.uiuc.edu (Marc Andreessen)
  4. Subject: dragging modeline
  5. Message-ID: <9211181811.AA07224@wintermute.ncsa.uiuc.edu>
  6. Sender: daemon@cis.ohio-state.edu
  7. Organization: GNUs Not Usenet
  8. Distribution: gnu
  9. Date: Wed, 18 Nov 1992 02:11:06 GMT
  10. Lines: 93
  11.  
  12. Enhanced (read apparently fixed) version follows (disclaimer: I wrote
  13. none of this; it was shamelessly ripped off from IMOUSE and I just
  14. hacked it together one crazy day).
  15.  
  16. Marc
  17.  
  18. ------- Start of forwarded message -------
  19. From: kanderso@BBN.COM
  20. To: Marc Andreessen <marca@ncsa.uiuc.edu>
  21. Cc: MThome@BBN.COM, Cerys@BBN.COM, ABoulanger@BBN.COM
  22. Subject: Re: Dragging mode line - request 
  23. Date: Wed, 18 Nov 92 09:40:15 -0500
  24.  
  25. Thanks, i liked your mode line dragging software. However, i did not seem
  26. that the eval-in-window stuff was necessary.  Here's what i'm now using:
  27.  
  28. ;; Date: Tue, 17 Nov 92 19:32:46 -0800
  29. ;; From: Marc Andreessen <marca@ncsa.uiuc.edu>
  30. ;; To: Kevin Davidson <tkld@cogsci.ed.ac.uk>
  31. ;; Cc: epoch@cs.uiuc.edu
  32. ;; Subject: Dragging mode line - request
  33. ;; References: <11524@burns.ed.ac.uk>
  34.  
  35. ;; Try this......... (you might have to have a few things from the imouse
  36. ;; package also; see the FAQ).
  37.  
  38. ;; Marc
  39.  
  40. ;;; Modeline drag support, extracted from Imouse package.
  41.  
  42. (require 'cl)
  43. (require 'motion)
  44. (require 'drag)
  45.  
  46. (defvar simplemouse::drag-scroll-start nil
  47.   "Where mouse-drag-scroll started.")
  48. (defvar simplemouse::drag-scroll-win nil
  49.   "The window where mouse-drag-scroll started.")
  50. (defvar simplemouse::drag-scroll-crs nil
  51.   "The cursor used before mouse-drag-scroll started.")
  52.  
  53. (defvar drag-modeline-glyph 116
  54.   "*The cursor glyph used to indicate drag scrolling.")
  55.  
  56. ;;; KRA 18NOV92: Eval-in-window does not seem to be necessary
  57. ; (defun eval-in-window (window &rest forms)
  58. ;  "Switch to WINDOW, evaluate FORMS, return to original window."
  59. ;  (` (let ((OriginallySelectedWindow (selected-window)))
  60. ;       (unwind-protect
  61. ;           (progn
  62. ;             (select-window (, window))
  63. ;             (,@ forms))
  64. ;         (select-window OriginallySelectedWindow)))))
  65. ; (put 'eval-in-window 'lisp-indent-hook 1)
  66.  
  67. (defun mouse-move-modeline (mdata)
  68.   "Shrink or stretch a window by dragging its modeline."
  69.   (setq mouse::downp nil) 
  70.   (setq simplemouse::drag-scroll-win (nth 2 mdata))
  71.   (setq simplemouse::drag-scroll-crs (epoch::cursor-glyph nil))
  72.   (let ((modeline (nth 3 (window-pixedges simplemouse::drag-scroll-win))))
  73.     (epoch::warp-pointer (/ (window-pixwidth simplemouse::drag-scroll-win) 2)
  74.              (- modeline 3)))
  75.   (setq simplemouse::drag-scroll-start (epoch::query-pointer))
  76.   (epoch::cursor-glyph drag-modeline-glyph)
  77.   (message "Hold button down to shrink or stretch window, release it when done."))
  78.  
  79. (defun mouse-move-modeline-terminate (mdata)
  80.   "The up click handler that goes with mouse-move-modeline.
  81. This actually resizes the window in one fell swoop"
  82.   (unwind-protect
  83.       (let* ((drag-scroll-end   (epoch::query-pointer))
  84.          (delta-y        (- (nth 1 simplemouse::drag-scroll-start)
  85.                    (nth 1 drag-scroll-end)))
  86.          (pixheight        (window-pixheight simplemouse::drag-scroll-win))
  87.          (height        (window-height simplemouse::drag-scroll-win)))
  88.     (unless (< (abs delta-y) 2)
  89. ;; KRA      (eval-in-window simplemouse::drag-scroll-win
  90.         (move-modeline-up (/ (* delta-y height) pixheight))
  91. ;; KRA        )
  92.       ))
  93.     ;; Restore normal environment.
  94.     (epoch::cursor-glyph simplemouse::drag-scroll-crs)
  95.     (message "width: %d, height: %d"
  96.          (window-width simplemouse::drag-scroll-win)
  97.          (window-height simplemouse::drag-scroll-win)))
  98.   )
  99.  
  100. ;;; Moved to my epoch-init.el
  101. ;;; (global-set-mouse mouse-mode-middle mouse-down 'mouse-move-modeline)
  102. ;;; (global-set-mouse mouse-mode-middle mouse-up 'mouse-move-modeline-terminate)
  103. ------- End of forwarded message -------
  104.  
  105.