Mouse interface to microemacs ----------------------------- Contents: User Instructions Customization instructions Programming notes User instructions: - To make any window current, point at the mode line with the mouse cursor, and click the left button. - To position the text cursor to any visible character, point at the character with the mouse cursor, and click the left button. - To adjust window sizes, press the left button with the mouse cursor on a mode line, and release it at a new location for that mode line. The windows on either side of the mode line will be adjusted accordingly. - To scroll a window, press the left button with the mouse cursor on any line of text, and release it at a new location for that line of text. The window will be scrolled accordingly. Note you can't scroll beyond the beginning of the file, or across window boundaries. - To define a region and put it in the killbuffer, press the right button at the beginning of the region, drag to the end, and release it. - To kill a region, after defining a region, without moving the mouse, click the right button down and up again. - To paste the contents of the killbuffer in to the current buffer, move the mouse to the location you wish to paste (which can not be at the end of the last mouse killed region) and click the right button down and up without moving it. The killbuffer will be yanked into the current point. On the Atari-ST, you may access your DESK ACCESSORIES by moving the mouse cursor to the far right corner of the screen. Emacs will remain inactive until all desk accessory windows are removed from the screen. After using your accessories, you will need to type ^L to get the emacs display repainted. When using a color monitor on the Atari ST, Emacs must be run in the resolution that was active at boot time in order for the mouse and desk accessories to run properly. (You may switch to and from DENSE and HIGH without any problems. This problem only exists with color monitors.) Customization instructions: --------------------------- The mouse buttons (currently) appear to Emacs as keystrokes with the "MS" prefix. The keys are assigned as follows: MSa - Left button down MSb - Left button up MSc - center button down [Not available on Atari-ST/IBM-PC/AMIGA] MSd - center button up " MSe - right button down MSf - right button up MSg - 4th button down [Only on VMS workstations with tablet] MSh - 4th button up " MS0 - User selected "About microemacs" in the desk accessory menu. [Not yet implemented] MS1 - Resize EMACS screen request On systems that support shifted mouse buttons, the keys FNA-FNH are assigned to be the shifted versions of FNa-FNh. [Atari-ST/AMIGA] On systems that support control of mouse buttons, the keys FM^A-FN^H are available. [Atari-ST/AMIGA] The meta-prefix and ^X-prefix can be applied to mouse buttons. Note, however, that it may be difficult for the user to apply a prefix to any button-up sequence. When any mouse event occurs, Emacs sets internal variables to the row and column of the mouse cursor location. These are used by the built-in mouse functions. There are eight new built-in functions in emacs that are used to support the mouse. They are listed here, along with their default binding: mouse-move-down MSa Position mouse mouse-move-up MSb Drag text/modelines mouse-region-down MSe Select region begin/cut/paste mouse-region-up MSf Select region end mouse-resize-screen MS1 resize the editing screen Note that these functions compute double-clicks internally by comparing the location of the previous mouse click to the current mouse click. There are no timers involved. You may build more complicated functions in the editor extension language. These would usually call "mouse-move-down" to determine what point was selected by the user. Programming notes: ------------------ The terminal-specific "getc" routine is responsible for figuring out the mouse reports, and feeding them to the caller as the following sequence of bytes (in the MSDOS and Atari ST drivers): 0, 0 Two Flag bytes that indicates following characters are a mouse report column Column number of mouse cursor at time of mouse event row Row number of mouse cursor at time of mouse event button Suffix letter of event and given in customization notes. (one of a-f,A-F,0, or 1). There are decoded in INPUT.C into their 16-bit assignment.