home *** CD-ROM | disk | FTP | other *** search
Wrap
Newsgroups: comp.sources.misc From: sbo@vlsi.polymtl.ca (Stephane Boucher) Subject: v31i059: bam - [OpenLook|Athena] menu system for [GNU|Epoch|Lucid] Emacs, Part03/07 Message-ID: <1992Jul31.042519.23714@sparky.imd.sterling.com> X-Md4-Signature: aa42fb16736398bbfd890c9669af161c Date: Fri, 31 Jul 1992 04:25:19 GMT Approved: kent@sparky.imd.sterling.com Submitted-by: sbo@vlsi.polymtl.ca (Stephane Boucher) Posting-number: Volume 31, Issue 59 Archive-name: bam/part03 Environment: Lex, Yacc, SunOS 4.x with XView or BSD Unix with Athena Widget Supersedes: bam: Volume 27, Issue 68-69 #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 3 (of 7)." # Contents: bam-2.0/README bam-2.0/athena.c bam-2.0/command-process.el # bam-2.0/menus/emacs-base-ol bam-2.0/menus/latex # bam-2.0/menus/rmail-menus # Wrapped by sbo@froh on Mon Jul 27 20:11:49 1992 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'bam-2.0/README' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'bam-2.0/README'\" else echo shar: Extracting \"'bam-2.0/README'\" \(4303 characters\) sed "s/^X//" >'bam-2.0/README' <<'END_OF_FILE' XOverview X******** X XThis is BAM (Born Again Menus) a menu system for GNU XEmacs. It provides a GUI front-end to GNU Emacs. In it's Xcurrent state, it is not a full fledge GUI, but it is easilly Xcustomizable and extensible. Note however that this package Xdoes not provide direct mouse support in the Emacs window (i.e. Xno scrollbar, no cut-and-paste, no pop-up menu, ...). X XIt is most useful to ease the transition from other Xtext-editors to GNU Emacs, since basic commands are mouse Xselectable. First-timers won't be overwhelmed by GNU Emacs Xapparent complexity and system administrator will spend less Xtime repeating all the time "Press `C-h i m emacs RET' and XRTFM" (Dream on... :-) X XBam is based on Dick van Soest's Buttons package, from which Xit borrows some elisp code. The C and the elisp code is Xprotected by the copyleft. There is however no restriction Xfor the file `command-process.el' which came with the Buttons Xpackage. The menu files are not covered by the copyleft. XPlease read the file COPYING that describes the COPYLEFT Xbefore using bam. X XThis version of bam has a few bug fixes, and incorporate some Xenhancement. Some of the changes are: X X * minor modifications to the menu files that cause X some incompatibilites. The incompatibilities are X trivial to correct; X X * A set of new elisp functions to ease the use of bam. Some of the X new functions are (`bam-load-menu', `bam-open-menu', X `bam-set-mode-hook', `bam-set-menu-args', `bam-font-option', X `bam-geometry-option', `bam-grab-option'). By using these function X you can now associate a menu with a mode (`bam-set-mode-hook') so X that the appropriate menu gets openned upon entering a given mode; X X * Support for a menus path and an X bitmaps path; X X * A trial makefile option that will allow you to X quickly view what bam looks like so that you don't X have to go through the whole installation before X deciding if you want bam. X XIf you add something that you find interesting to bam, please Xremember to contact me so that we can coordinate the Xmodifications to be added to the distribution package. This Xway more people will benefit from everybody's contributions. X XInstallation X************ X X 1. `cd' to the directory where bam's sources are; X X 2. Edit the file `Makefile.in' to select your various X installation directories (located at the beginning of X the file. X X 3. Run the shell script withthe following command: X `sh ./configure.sh' X X Note: I have compiled successfuly the program on sun3 and X sun4. You may have to experiment with the Makefile on other X kind of machine. X X A known problem is that cc, lex and the athena toolkit doesn't work X together on sun3's so you have to use a substitute for cc or athena X (gcc or xview). X X 4. type `make all' X X 5. type `make install' X You now have a a command bemacs that gives you emacs with menus. X So the following two items are not necessary. It is probably X worthwhile to rename bemacs to xemacs if you plan on using it. X X 6. (You can skip this item if you are satisfied with the bemacs) X X put in your `.emacs' the content of emacs_init. X X (To do this you can simply do X `cat /usr/local/lib/bam/emacs_init >> .emacs') where X `/usr/local/lib/bam' should be replaced by the X directory name where you placed bam libraries. X X >>>> Notice the >> redirection. DON'T USE > or you WILL LOOSE <<<< X >>>> YOUR PREVIOUS .emacs file. <<<< X X Note: X Make sure that the elisp librairies are accessible X via Emacs' LOAD-PATH. One way to do this is to put X the elisp files in a given directory, for example X `/usr/something/elispdir', and add that directory in X Emacs' LOAD-PATH by including the following lisp X sentence in your initialization file (`~/.emacs'): X X (setq load-path (cons "/usr/something/elispdir" load-path)) X X 7. (You can skip this item if you are satisfied with bemacs) X X If you are using the Athena version you have to change the X normal emacs startup so that the the emacs windows are X named(or bam can't place emacs inside of itself): X emacs -wn Emacs`date +%T` X X 8. If you have lisp problems, consult your local Emacs guru. X END_OF_FILE if test 4303 -ne `wc -c <'bam-2.0/README'`; then echo shar: \"'bam-2.0/README'\" unpacked with wrong size! fi # end of 'bam-2.0/README' fi if test -f 'bam-2.0/athena.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'bam-2.0/athena.c'\" else echo shar: Extracting \"'bam-2.0/athena.c'\" \(5644 characters\) sed "s/^X//" >'bam-2.0/athena.c' <<'END_OF_FILE' X/* bam - the Born Again Menus for GNU Emacs. X Copyright (C) 1992 Hans Olsson. X X This program is free software; you can redistribute it and/or modify X it under the terms of the GNU General Public License as published by X the Free Software Foundation; either version 1, or (at your option) X any later version. X X This program is distributed in the hope that it will be useful, X but WITHOUT ANY WARRANTY; without even the implied warranty of X MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the X GNU General Public License for more details. X X You should have received a copy of the GNU General Public License X along with this program; if not, write to the Free Software X Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X X In other words, you are welcome to use, share and improve this program. X You are forbidden to forbid anyone else to use, share and improve X what you give them. Help stamp out software-hoarding! X*/ X/* $Id: athena.c,v 1.2 1992/07/27 22:53:17 sbo Exp $ */ X X#include "bam.h" X#include "athena.h" X XWidget gam=NULL; Xint grab=1; Xchar *windowName=NULL; XXtTranslations button_xt; XXtAppContext app_con; XWidget mainFrame=NULL; XWidget pops[200]; Xint pops_nr=0; X Xstatic int popped=0; Xstatic Widget popupList[100]; X Xstatic String fallback_resources[] = { X "*shapeStyle:Oval\n", X "*cornerRoundPercent:25\n", X NULL X}; X Xstatic char bam_translations[]= X" <BtnDown> : PopupMenu() \n"; X Xvoid popdownAll() X{ X while(popped) { X XtPopdown(popupList[--popped]); X } X} X Xstatic void popdownSubmenus(w,event,params,num_params) X Widget w; X XEvent *event; X String *params; X Cardinal *num_params; X{ X popdownAll(); X} X XXtActionsRec trial_actions[]= { X {"popdownSubmenus",popdownSubmenus} X}; X X X Xvoid popdownSubMenu(w,event,params,num_params) X Widget w; X XEvent *event; X String *params; X Cardinal *num_params; X{ X Widget theWidget = XtNameToWidget(mainFrame,params[0]); X if (theWidget!=NULL) X XtPopdown(theWidget); X} X Xvoid doMove(g) X Widget g; X{ X Window getwindow,junkwin; X XWindowAttributes app_win_attr; X Position outX,outY; X int rx,ry; X Dimension outW,outH; X X Window mywin=XtWindow(g); X if (gam!=NULL) { X Arg args[4]; X XtSetArg(args[0],XtNwinX,&outX); X XtSetArg(args[1],XtNwinY,&outY); X XtSetArg(args[2],XtNwinWidth,&outW); X XtSetArg(args[3],XtNwinHeight,&outH); X XtGetValues(gam,args,4); X X } else X if (windowName && X (getwindow= Window_With_Name(XtDisplay(g), X DefaultRootWindow(XtDisplay(g)), X windowName))) { X XGetWindowAttributes(XtDisplay(g),getwindow,&app_win_attr); X outW=app_win_attr.width; X XTranslateCoordinates(XtDisplay(g),getwindow,app_win_attr.root, X -app_win_attr.border_width, X -app_win_attr.border_width, X &rx,&ry,&junkwin); X outX=rx; X XGetWindowAttributes(XtDisplay(g),mywin,&app_win_attr); X outY=ry-app_win_attr.height; X outH=app_win_attr.height; X } else return; X XMoveResizeWindow(XtDisplay(g),mywin,outX,outY-20,outW,outH); X/* the -20 is a kludge,caused by titlebars */ X X} X Xint window_main_loop(w) X Widget w; X{ X Screen *scr=XtScreen(mainFrame); X int maxw=scr->width; X int maxh=scr->height; X X XtRealizeWidget(mainFrame); X doMove(mainFrame); X { X /* The following code pops up all the submenus, X * so that they automagically will stay on the screen afterwards. X */ X int i; X for(i=0;i<pops_nr;i++) { X Arg args[2]; X XtSetArg(args[0],XtNx,maxw+10); X XtSetArg(args[1],XtNy,maxh+10); X XtSetValues(pops[i],args,2); X XtPopup(pops[i],XtGrabNone); X XtPopdown(pops[i]); X } X } X XtAppMainLoop(app_con); X return 0; X} X Xint do_init(argc_p,argv) X int *argc_p; X char**argv; X{ X mainFrame=XtAppInitialize(&app_con,"bam",NULL,0, X argc_p,argv, X fallback_resources,NULL,0); X XtAppAddActions(app_con,trial_actions,XtNumber(trial_actions)); X button_xt=XtParseTranslationTable(bam_translations); X return 0; X} X Xvoid menuProc (w,what,garbage) X Widget w; X XtPointer what; X XtPointer garbage; X{ X sendToEmacs(what); X popdownAll(); X} X Xvoid menuUp (w,what,garbage) X Widget w; X XtPointer what; X XtPointer garbage; X{ X Window root_ret,child_ret; X int x,y; X int winx,winy; X unsigned int mask; X Display *dpy=XtDisplay(mainFrame); X Window win=XtWindow(mainFrame); X Screen *scr=XtScreen(mainFrame); X Widget w2=(Widget)what; X int maxw=scr->width;/* DisplayWidth(dpy,dpy->default_screen); */ X int maxh=scr->height; /* DisplayHeight(dpy,dpy->default_screen); */ X Dimension height,width; X if (XQueryPointer(dpy,win,&root_ret,&child_ret,&x,&y,&winx,&winy, X &mask)) { X x=(x<20)?0:x-20; X y=(y<20)?0:y-20; X { X Arg args[2]; X XtSetArg(args[0],XtNheight, &height); X XtSetArg(args[1],XtNwidth, &width); X XtGetValues(w2,args,2); X } X#ifdef DEBUG X printf("Height=%d,width=%d\nmaxw=%d,maxh=%d\n",height,width,maxw,maxh); X#endif X X if (x+width>=maxw) x=maxw-width; X if (y+height>=maxh) y=maxh-height; X#ifdef DEBUG X printf("x=%d,y=%d\n",x,y); X#endif X { X Arg args[2]; X XtSetArg(args[0],XtNx,x); X XtSetArg(args[1],XtNy,y); X X XtSetValues(w2,args,2); X } X while (XtAppPending(app_con)) { X XEvent xev; X XtAppNextEvent(app_con,&xev); X XtDispatchEvent(&xev); X } X XtPopup(w2, XtGrabNone); X popupList[popped++]=w2; X } else { X sendErrorToEmacs("Sorry, wrong screen %s\n",""); X } X} END_OF_FILE if test 5644 -ne `wc -c <'bam-2.0/athena.c'`; then echo shar: \"'bam-2.0/athena.c'\" unpacked with wrong size! fi # end of 'bam-2.0/athena.c' fi if test -f 'bam-2.0/command-process.el' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'bam-2.0/command-process.el'\" else echo shar: Extracting \"'bam-2.0/command-process.el'\" \(4578 characters\) sed "s/^X//" >'bam-2.0/command-process.el' <<'END_OF_FILE' X; bam - the Born Again Menus for GNU Emacs. X; Copyright (C) 1992 Dick Van Soest. X; X; This program is free software; you can redistribute it and/or modify X; it under the terms of the GNU General Public License as published by X; the Free Software Foundation; either version 1, or (at your option) X; any later version. X; X; This program is distributed in the hope that it will be useful, X; but WITHOUT ANY WARRANTY; without even the implied warranty of X; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the X; GNU General Public License for more details. X; X; You should have received a copy of the GNU General Public License X; along with this program; if not, write to the Free Software X; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. X; X; In other words, you are welcome to use, share and improve this program. X; You are forbidden to forbid anyone else to use, share and improve X; what you give them. Help stamp out software-hoarding! X X;;; -------------------------------------------------------------------------- X X;;(defvar escape-read-p nil X;; "T if backslash is read from process.") X;; X;;(defvar in-string-p nil X;; "T if process output is currently a string.") X;; X;;(defvar paren-level 0 X;; "Level of lists in process output.") X;; X;;(defvar process-output "" X;; "Output of process.") X X(defun command-process (command &rest args) X "*Starts separate process COMMAND running in background. XOutput of this process is handled by function collect-output. XCollect-output is reset by command reset-command-process." X (interactive "sCommand to run: ") X (let* ((proc (apply 'start-process X (cons command X (cons () X (cons command args))))) X (proc-sym (intern (process-name proc)))) X (put proc-sym 'escape-read-p nil) X (put proc-sym 'in-string-p nil) X (put proc-sym 'paren-level 0) X (put proc-sym 'process-output "") X (set-process-filter proc 'collect-output) X (set-process-sentinel proc 'ignore) X proc)) X X(defun reset-command-process (proc-name) X "Resets command process with name PROC-NAME." X (interactive "sProcess: ") X (let ((proc-sym (intern proc))) X (put proc-sym 'escape-read-p nil) X (put proc-sym 'in-string-p nil) X (put proc-sym 'paren-level 0) X (put proc-sym 'process-output ""))) X X(defun collect-output (proc msg) X "Function that collects output of PROC until a lisp list is complete. XIt then eval's that list." X (let ((processed-upto-incl X (1+ (foreach msg (function X (lambda (x) X (change-state-depending-on-char proc x)))))) X (proc-sym (intern (process-name proc)))) X (if (not (zerop (get proc-sym 'paren-level))) X (put proc-sym 'process-output X (concat (get proc-sym 'process-output) msg)) X (progn X (eval (car (read-from-string X (concat (get proc-sym 'process-output) X (substring msg 0 processed-upto-incl))))) X (put proc-sym 'process-output "") X (if (< processed-upto-incl (length msg)) X (collect-output proc (substring msg processed-upto-incl))))))) X X(defun change-state-depending-on-char (proc char) X (let ((proc-sym (intern (process-name proc)))) X (cond X ((get proc-sym 'escape-read-p) X (put proc-sym 'escape-read-p nil)) X ((and (not (get proc-sym 'escape-read-p)) (get proc-sym 'in-string-p)) X (put proc-sym 'in-string-p (not (equal char ?\"))) X (put proc-sym 'escape-read-p (equal char ?\\))) X ((and (not (get proc-sym 'escape-read-p)) (not (get proc-sym 'in-string-p))) X (cond X ((eq char ?\\) X (put proc-sym 'escape-read-p t)) X ((eq char ?\") X (put proc-sym 'in-string-p t)) X ((eq char ?\() X (put proc-sym 'paren-level (1+ (get proc-sym 'paren-level)))) X ((eq char ?\)) X (put proc-sym 'paren-level (1- (get proc-sym 'paren-level))))))) X (zerop (get proc-sym 'paren-level)))) X X(defun foreach (seq fun) X (let ((i 0) X (seqlength (length seq))) X (while (and (< i seqlength) X (not (apply fun (list (elt seq i))))) X (setq i (1+ i))) X i)) X X(defun command-process-error (str) X (with-output-to-temp-buffer "*command-process-errors*" X (princ str) X (message "Error in command-process"))) X X(defun print-state (proc) X (interactive "sProcess: ") X (let ((proc-sym (if (stringp proc) X (intern-soft proc) X (intern-soft (process-name proc))))) X (format X "escape-read-p %s Xin-string-p %s Xparen-level %d Xprocess-output %s\n" X (get proc-sym 'escape-read-p) X (get proc-sym 'in-string-p) X (get proc-sym 'paren-level) X (get proc-sym 'process-output)))) X X(provide 'command-process) END_OF_FILE if test 4578 -ne `wc -c <'bam-2.0/command-process.el'`; then echo shar: \"'bam-2.0/command-process.el'\" unpacked with wrong size! fi # end of 'bam-2.0/command-process.el' fi if test -f 'bam-2.0/menus/emacs-base-ol' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'bam-2.0/menus/emacs-base-ol'\" else echo shar: Extracting \"'bam-2.0/menus/emacs-base-ol'\" \(4826 characters\) sed "s/^X//" >'bam-2.0/menus/emacs-base-ol' <<'END_OF_FILE' X# @(#)emacs-base-ol 1.4 92/03/31 X XFRAME XTITLE "Emacs Menu" XICON_LABEL "Bam Emacs" X PANEL X BUTTON "File" "" X MENU PUSHPIN TRUE X TITLE "Emacs: File" X TEXT "Load C-x C-f" "(bam-emacs-base-ol:find-file)" X TEXT "Browse C-x d" "(bam-emacs-base-ol:dired)" X TEXT "Save C-x C-s" "(bam-emacs-base-ol:save-buffer)" X TEXT "Save As C-x C-w" "(bam-emacs-base-ol:write-file)" X TEXT "Insert C-x i" "(bam-emacs-base-ol:insert-file)" X TEXT "" "" X TEXT "Quit C-x C-c" "(call-interactively 'save-buffers-kill-emacs)" X END X BUTTON "View" "" X MENU X TITLE "Emacs: View" X TEXT "Split Window Horizontally C-x 5" "(split-window-horizontally)" X TEXT "Split Window Vertically C-x 2" "(split-window-vertically)" X TEXT "Delete Window C-x 0" "(call-interactively 'delete-window)" X TEXT "Delete All Other Windows" "(delete-other-windows)" X TEXT "" "" X TEXT "Shrink Window Shorter" "(shrink-window 1)" X TEXT "Grow Window Taller C-x ^" "(enlarge-window 1)" X TEXT "Shrink Window Narrower" "(shrink-window-horizontally 1)" X TEXT "Grow Window Wider" "(enlarge-window-horizontally 1)" X TEXT "" "" X TEXT "Switch To Other Window C-x o" "(other-window 1)" X TEXT "Select Buffer" "(call-interactively 'switch-to-buffer)" X TEXT "List Buffers" "(call-interactively 'electric-buffer-list)" X TEXT "Kill Buffer" "(call-interactively 'kill-buffer)" X END X BUTTON "Edit" "" X MENU X TITLE "Emacs: Edit" X TEXT "Undo C-x u" "(undo)" X TEXT "" "" X TEXT "Cut C-w" "(call-interactively 'kill-region)" X TEXT "Cut Word M-d" "(kill-word 1)" X TEXT "Cut To EOL C-k" "(kill-line)" X TEXT "" "" X TEXT "Copy" "(call-interactively 'copy-region-as-kill)" X TEXT "Paste C-y" "(yank)" X END X BUTTON "Help" "" X MENU X TITLE "Emacs: Help" X TEXT "Tutorial C-h t" "(help-with-tutorial)" X TEXT "Manual C-h i" "(info)" X TEXT "Mode Description C-h m" "(describe-mode)" X TEXT "Key Description C-h k" "(call-interactively 'describe-key)" X TEXT "Function Description C-h f" "(call-interactively 'describe-function)" X TEXT "Match Command Names C-h a" "(call-interactively 'command-apropos)" X END X BUTTON "Error" "" X MENU X TITLE "Emacs: Error" X TEXT "Abort C-g" "(progn (if (> (recursion-depth) 0) (abort-recursive-edit)) (setq cursor-in-echo-area nil) (keyboard-quit))" X TEXT "Recover file" "(call-interactively 'recover-file)" X END X BUTTON "Search/Replace" "" X MENU X TITLE "Emacs: Search/Replace" X TEXT "Forward Search C-s" "(isearch-forward)" X TEXT "Backward Search C-r" "(isearch-backward)" X TEXT "Search Regular Expression M-C-s" "(isearch-forward-regexp)" X TEXT "Abort Search" "(if (> (recursion-depth) 0) (abort-recursive-edit))(keyboard-quit)" X TEXT "Query Replace M-%" "(call-interactively 'query-replace)" X TEXT "Reg Exp Query Replace" "(call-interactively 'query-replace-regexp)" X END X BUTTON "Motion" "" X MENU X TITLE "Emacs: Motion" X TEXT "Page Down C-v" "(scroll-up)" X TEXT "Page Up M-v" "(scroll-down)" X TEXT "Forward Paragraph" "(forward-paragraph)" X TEXT "Backward Paragraph" "(backward-paragraph)" X TEXT "Left Scroll" "(call-interactively 'scroll-left)" X TEXT "Right Scroll" "(call-interactively 'scroll-right)" X TEXT "Begin Of Document M-<" "(beginning-of-buffer)" X TEXT "End Of Document M->" "(end-of-buffer)" X TEXT "Go To Last Position C-x C-x" X "(exchange-point-and-mark)" X TEXT "Go To Previous Position C-u C-<space>" X "(set-mark-command 1)" X TEXT "Go To Line Number" "(call-interactively 'goto-line)" X END X BUTTON "Formatting" "" X MENU X TITLE "Emacs: Formatting" X TEXT "Delete Whitespace" "(delete-horizontal-space)" X TEXT "Delete Blank Lines" "(delete-blank-lines)" X TEXT "Fill Paragraph" "(call-interactively 'fill-paragraph)" X TEXT "Set Mark C-<space>" "(push-mark)" X TEXT "Fill From Mark" X "(fill-region (region-beginning) (region-end))" X TEXT "Set Fill Column" "(call-interactively 'set-fill-column)" X TEXT "Uppercase From Mark" X "(upcase-region (region-beginning) (region-end))" X TEXT "Lowercase From Mark" X "(downcase-region (region-beginning) (region-end))" X TEXT "Capitalize From Mark" X "(capitalize-region (region-beginning) (region-end))" X END X BUTTON "Applications" "" X MENU X TITLE "Emacs: Applications" X TEXT "Read Mail" "(progn (rmail) (bam-open-menu \"rmail-menus\"))" X TEXT "Compose Mail" "(mail)" X TEXT "Usenet News" "(gnus)" X TEXT "Info" "(info)" X TEXT "Shell" "(shell)" X TEXT "Compile" "(call-interactively 'compile)" X# TEXT "Spell" "(ispell)" X TEXT "Debug" "(call-interactively 'gdb)" X END X END XEND END_OF_FILE if test 4826 -ne `wc -c <'bam-2.0/menus/emacs-base-ol'`; then echo shar: \"'bam-2.0/menus/emacs-base-ol'\" unpacked with wrong size! fi # end of 'bam-2.0/menus/emacs-base-ol' fi if test -f 'bam-2.0/menus/latex' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'bam-2.0/menus/latex'\" else echo shar: Extracting \"'bam-2.0/menus/latex'\" \(4743 characters\) sed "s/^X//" >'bam-2.0/menus/latex' <<'END_OF_FILE' X# $Id: latex,v 1.4 1992/07/27 22:56:24 sbo Exp $ X XFRAME TITLE "Latex Menu" XICON_LABEL "Latex" XPANEL X XBUTTON "Command" "" XMENU XTITLE "Latex: Command" X TEXT "TeX buffer" "(TeX-buffer)" X TEXT "TeX region" "(TeX-region (region-beginning) (region-end))" X TEXT "recenter output" "(TeX-recenter-output-buffer ())" X TEXT "preview" "(TeX-preview)" XEND X XBUTTON "Environments" "" XMENU XTITLE "Latex: Environments" X TEXT "general..." "(call-interactively 'latex-env-insrt)" X TEXT "abstract" "(latex-env-insrt \"abstract\")" X TEXT "center" "(latex-env-insrt \"center\")" X TEXT "document" "(latex-env-insrt \"document\")" X TEXT "equation" "(latex-env-insrt \"equation\")" X TEXT "enumerate" "(latex-env-and-item-insrt \"enumerate\")" X TEXT "figure" "(latex-env-insrt \"figure\")" X TEXT "itemize" "(latex-env-and-item-insrt \"itemize\")" X TEXT "Others" "" X MENU X TEXT "picture" "(latex-env-insrt \"picture\")" X TEXT "quote" "(latex-env-insrt \"quote\")" X TEXT "quotation" "(latex-env-insrt \"quotation\")" X TEXT "verbatim" "(latex-env-insrt \"verbatim\")" X END XEND X XBUTTON "Formatting" "" XMENU XTITLE "Latex: Formatting" X TEXT "set fill prefix" "(set-fill-prefix)" X TEXT "set fill prefix 2 spaces" "(setq fill-prefix \" \")" X TEXT "set fill prefix 4 sp." "(setq fill-prefix \" \")" X TEXT "incr fill prefix 2 sp." "(setq fill-prefix (concat fill-prefix \" \"))" X TEXT "reset fill prefix" "(setq fill-prefix ())" X TEXT "set fill column" "(set-fill-column)" X TEXT "reset fill column" "(setq fill-column 70)" XEND X XBUTTON "Misc" "" XMENU XTITLE "Latex: Misc" X TEXT "insertplot" "(strings-to-buffer \"\\\\insertplot{\" \"}{}{}{}{}{}\n% Arguments:\n% 1. Offset from left margin\n% 2. File name\n% 3. Vertical space to leave for figure\n% 4. Horizontal scaling\n% 5. Vertical scaling\n% 6. Original orientation of figure:\n% 0 = original has landscape orientation\n% 1 = original has portrait orientation\n\")" X TEXT "verb" "(strings-to-buffer \"\\\\verb+\" \"+\")" XEND X XBUTTON "Sectioning" "" XMENU XTITLE "Latex: Sectioning" X TEXT "part" "(strings-to-buffer \"\\\\part{\" \"}\n\n\")" X TEXT "chapter" "(strings-to-buffer \"\\\\chapter{\" \"}\n\n\")" X TEXT "section" "(strings-to-buffer \"\\\\section{\" \"}\n\n\")" X TEXT "subsection" "(strings-to-buffer \"\\\\subsection{\" \"}\n\n\")" X TEXT "subsubsection" "(strings-to-buffer \"\\\\subsubsection{\" \"}\n\n\")" X TEXT "paragraph" "(strings-to-buffer \"\\\\paragraph{\" \"}\n\")" X TEXT "subparagraph" "(strings-to-buffer \"\\\\subparagraph{\" \"}\n\")" X TEXT "par" "(strings-to-buffer \"\\\\par\n\" \"\")" X TEXT "chapter*" "(strings-to-buffer \"\\\\chapter*{\" \"}\n\n\")" X TEXT "section*" "(strings-to-buffer \"\\\\section*{\" \"}\n\n\")" X TEXT "subsection*" "(strings-to-buffer \"\\\\subsection*{\" \"}\n\n\")" X TEXT "subsubsection*" "(strings-to-buffer \"\\\\subsubsection*{\" \"}\n\n\")" X TEXT "paragraph*" "(strings-to-buffer \"\\\\paragraph*{\" \"}\n\")" X TEXT "subparagraph*" "(strings-to-buffer \"\\\\subparagraph*{\" \"}\n\")" X TEXT "par*" "(strings-to-buffer \"\\\\par\n\" \"\")" XEND X X XBUTTON "Style" "" XMENU XTITLE "Latex: Style" X TEXT "empty sheet file" "(strings-to-buffer \"\\\\documentstyle[11pt,sheet]{article}\n\\\\sheetbottomleft{\" \"}\n\\\\sheetbottomright{}\n\\\\begin{document}\n\n%*****************************************************************\n% new sheet\n%*****************************************************************\n\n\\\\sheettop{}\n\\\\sheetitem{}\n\\\\sheetbottom\n\n\\\\end{document}\n\")" X TEXT "sheetpage" "(strings-to-buffer \"%*****************************************************************\n% new sheet\n%*****************************************************************\n\n\\\\sheettop{\" \"}\n\\\\sheetitem{}\n\\\\sheetbottom\n\n\")" X TEXT "subsheets" "(strings-to-buffer \"\\\\begin{subsheets}\n\" \"\n\\\\end{subsheets}\n\")" X TEXT "sheetitem" "(strings-to-buffer \"\\\\sheetitem{\" \"}\n\")" XEND X XBUTTON "Typesizes" "" XMENU XTITLE "Latex: Typesizes" X TEXT "Huge" "(strings-to-buffer \"\\\\Huge \" \"\")" X TEXT "huge" "(strings-to-buffer \"\\\\huge \" \"\")" X TEXT "LARGE" "(strings-to-buffer \"\\\\LARGE \" \"\")" X TEXT "Large" "(strings-to-buffer \"\\\\Large \" \"\")" X TEXT "large" "(strings-to-buffer \"\\\\large \" \"\")" X TEXT "normalsize" "(strings-to-buffer \"\\\\normalsize \" \"\")" X TEXT "small" "(strings-to-buffer \"\\\\small \" \"\")" X TEXT "footnotesize" "(strings-to-buffer \"\\\\footnotesize \" \"\")" X TEXT "scriptsize" "(strings-to-buffer \"\\\\scriptsize \" \"\")" X TEXT "tiny" "(strings-to-buffer \"\\\\tiny \" \"\")" XEND X XEND XEND X X X X END_OF_FILE if test 4743 -ne `wc -c <'bam-2.0/menus/latex'`; then echo shar: \"'bam-2.0/menus/latex'\" unpacked with wrong size! fi # end of 'bam-2.0/menus/latex' fi if test -f 'bam-2.0/menus/rmail-menus' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'bam-2.0/menus/rmail-menus'\" else echo shar: Extracting \"'bam-2.0/menus/rmail-menus'\" \(4959 characters\) sed "s/^X//" >'bam-2.0/menus/rmail-menus' <<'END_OF_FILE' XFRAME TITLE "Rmail Menu" XPANEL XBUTTON "File" "" MENU TITLE "Rmail: File" X TEXT "Get New Mail g" X "(bam-rmail-menus:rmail-get-new-mail)" X TEXT "Open Rmail File" X "(bam-rmail-menus:rmail)" X MENU TITLE "Rmail: Open" X TEXT "RMAIL File" X "(bam-rmail-menus:rmail)" X TEXT "Other In-Box File" X "(bam-rmail-menus:rmail-input)" X END X TEXT "Copy into Rmail File o" X "(bam-rmail-menus:rmail-output-to-rmail-file)" X TEXT "Save changes s" X "(bam-rmail-menus:rmail-expunge-and-save)" X TEXT "Done q" X "(bam-rmail-menus:rmail-quit)" XEND XBUTTON "View" "" MENU TITLE "Rmail: View" X TEXT "Next" X "(bam-rmail-menus:rmail-next-undeleted-message)" X MENU TITLE "Rmail: Next" X TEXT "non-deleted message n" X "(bam-rmail-menus:rmail-next-undeleted-message)" X TEXT "Message With Label" X "(bam-rmail-menus:rmail-next-labeled-message)" X TEXT "any message M-n" X "(bam-rmail-menus:rmail-next-message)" X END X TEXT "Previous" "(bam-rmail-menus:rmail-previous-undeleted-message)" X MENU TITLE "Rmail: Previous" X TEXT "non-deleted message p" X "(bam-rmail-menus:rmail-previous-undeleted-message)" X TEXT "Message With Label" X "(bam-rmail-menus:rmail-previous-labeled-message)" X TEXT "any message M-p" X "(bam-rmail-menus:rmail-previous-message)" X END X TEXT "Last Message" "(bam-rmail-menus:rmail-last-message)" X TEXT "" "" X TEXT "Next Page" "(bam-rmail-menus:rmail-scroll-message-up)" X TEXT "Previous Page" "(bam-rmail-menus:rmail-scroll-message-down)" X TEXT "Beginning of Message" X "(bam-rmail-menus:rmail-beginning-of-message)" X TEXT "" "" X TEXT "Message Number" X "(bam-rmail-menus:rmail-message-number)" X TEXT "Toggle Header" X "(bam-rmail-menus:rmail-toggle-header)" X TEXT "" "" X TEXT "Summary" "(bam-rmail-menus:rmail-summary)" X MENU TITLE "Rmail: Summary" X TEXT "All messages" X "(bam-rmail-menus:rmail-summary)" X TEXT "Select by Label" X "(bam-rmail-menus:rmail-summary-by-labels)" X TEXT "Select by Recipients" X "(bam-rmail-menus:rmail-summary-by-recipients)" X END XEND XBUTTON "Edit" "" MENU TITLE "Rmail: Edit" X TEXT "Current Message" X "(bam-rmail-menus:rmail-edit-current-message)" X TEXT "Delete" "(bam-rmail-menus:rmail-delete-forward)" X MENU TITLE "Rmail: Delete" X TEXT "Move Forward after delete" X "(bam-rmail-menus:rmail-delete-forward)" X TEXT "Stay on it after delete" X "(bam-rmail-menus:rmail-delete-message)" X TEXT "Move Backward after delete" X "(bam-rmail-menus:rmail-delete-backward)" X END X TEXT "Label" "(bam-rmail-menus:rmail-add-label)" X MENU TITLE "Rmail: Label" X TEXT "Add" X "(bam-rmail-menus:rmail-add-label)" X TEXT "Remove" X "(bam-rmail-menus:rmail-kill-label)" X END X TEXT "Undelete" "(bam-rmail-menus:rmail-undelete)" X MENU TITLE "Rmail: Undelete" X TEXT "Stay on it after Undelete" X "(bam-rmail-menus:rmail-undelete)" X TEXT "Move Forward after Undelete" X "(bam-rmail-menus:undelete-and-forward)" X TEXT "Move Backward after Undelete" X "(bam-rmail-menus:undelete-and-backward)" X END X XEND XBUTTON "Search" "" MENU TITLE "Rmail: Search" X TEXT "In this Message" X "(bam-rmail-menus:isearch-forward)" X MENU TITLE "Rmail: Search In Message" X TEXT "Forward" X "(bam-rmail-menus:isearch-forward)" X MENU TITLE "Rmail: Search Forward" X TEXT "Incremental" X "(bam-rmail-menus:isearch-forward)" X TEXT "Normal" X "(bam-rmail-menus:search-forward)" X END X TEXT "Backward" X "(bam-rmail-menus:isearch-backward)" X MENU TITLE "Rmail: Search Backward" X TEXT "Incremental" X "(bam-rmail-menus:isearch-backward)" X TEXT "Normal" X "(bam-rmail-menus:search-backward)" X END X TEXT "Regular Expression" X "(bam-rmail-menus:rmail-search)" X MENU TITLE "Rmail: Search Regexp" X TEXT "Forward" X "(bam-rmail-menus:isearch-forward-regexp)" X TEXT "Backward" X "(bam-rmail-menus:isearch-backward-regexp)" X END X END X TEXT "In other Messages" X "(bam-rmail-menus:rmail-search)" X MENU TITLE "Rmail: Search Other Messages" X TEXT "Forward" X "(bam-rmail-menus:rmail-search)" X TEXT "Backward" X "(bam-rmail-menus:rmail-search 'backward)" X END XEND XBUTTON "Compose" "" MENU TITLE "Rmail: Compose" X TEXT "New" X "(bam-rmail-menus:mail)" X TEXT "Reply" "(bam-rmail-menus:rmail-reply nil nil)" X MENU TITLE "Rmail: Reply" X TEXT "To Sender" X "(bam-rmail-menus:rmail-reply nil nil)" X TEXT "To All" X "(bam-rmail-menus:rmail-reply nil 'to-all)" X TEXT "To Sender, Include this Message" X "(bam-rmail-menus:rmail-reply 'include-message nil)" X TEXT "To All, Include this Message" X "(bam-rmail-menus:rmail-reply 'include-message 'to-all)" X END X TEXT "Forward" "(bam-rmail-menus:rmail-forward)" XEND X XEND XEND X X END_OF_FILE if test 4959 -ne `wc -c <'bam-2.0/menus/rmail-menus'`; then echo shar: \"'bam-2.0/menus/rmail-menus'\" unpacked with wrong size! fi # end of 'bam-2.0/menus/rmail-menus' fi echo shar: End of archive 3 \(of 7\). cp /dev/null ark3isdone MISSING="" for I in 1 2 3 4 5 6 7 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 7 archives. rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0 exit 0 # Just in case...