;ELC ;;; compiled by jwz@thalidomide on Wed May 25 23:53:21 1994 ;;; from file /u/jwz/emacs19/lisp/eos/eos-menubar.el ;;; emacs version 19.10 Lucid. ;;; bytecomp version 2.24; 26-Apr-94. ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19"))) (error "This file was compiled for Emacs 19.")) (fset 'eos::toggle-sbrowser-selected-screen #[nil " ! !" [eos::sbrowser-screen selected-screen eos::select-sbrowser-screen nil] 2 "\ Toggle whether this screen is selected for SBrowser" nil]) (fset 'eos::toggle-debugger-selected-screen #[nil " ! !" [eos::debugger-screen selected-screen eos::select-debugger-screen nil] 2 "\ Toggle whether this screen is selected for Debugger" nil]) (byte-code "!!" [boundp eos::long-menu (["News..." eos::sw-news t] "-----" ["Do Dbx Command" eos::dbx-cmd (not (eq eos::key-mode 'none))] ["Run" eos::run (not (eq eos::key-mode 'none))] ["Fix" eos::fix (not (eq eos::key-mode 'none))] "-----" ["Print" eos::print (not (eq eos::key-mode 'none))] ["Print *" eos::print* (not (eq eos::key-mode 'none))] ["Dismiss Print" eos::dismiss-print-screen (not (eq eos::key-mode 'none))] "-----" ["Continue" eos::cont (not (eq eos::key-mode 'none))] ["Stop" eos::stop-at (not (eq eos::key-mode 'none))] ["Clear" eos::clear-at (not (eq eos::key-mode 'none))] ["Next" eos::next (not (eq eos::key-mode 'none))] ["Step" eos::step (not (eq eos::key-mode 'none))] ["Step Up" eos::step-up (not (eq eos::key-mode 'none))] ["Continue To" eos::cont-to (not (eq eos::key-mode 'none))] "-----" ["Stack Up" eos::up (not (eq eos::key-mode 'none))] ["Stack Down" eos::down (not (eq eos::key-mode 'none))] "-----" ["Select for SBrowser" eos::toggle-sbrowser-selected-screen :style toggle :selected (equal eos::sbrowser-screen (selected-screen))] ["Select for Debugger" eos::toggle-debugger-selected-screen :style toggle :selected (equal eos::debugger-screen (selected-screen))]) eos::short-menu (["News..." eos::sw-news t] "-----" ["Select for SBrowser" eos::toggle-sbrowser-selected-screen :style toggle :selected (equal eos::sbrowser-screen (selected-screen))] ["Select for Debugger" eos::toggle-debugger-selected-screen :style toggle :selected (equal eos::debugger-screen (selected-screen))])] 2) (fset 'eos::menubar-startup #[nil "! \" !!\"!\n!$%$!#!$" [make-face eos::sw-face set-face-foreground "red" set-face-background face-background get-face default make-pixmap "bullet.xbm" eos::choose-me add-menu ("Options") "SPARCworks" copy-tree (["Use only selection service" (eos::set-key-mode 'none) :style radio :selected (eq eos::key-mode 'none)] ["Use C-c d prefix map" (eos::set-key-mode 'prefix) :style radio :selected (eq eos::key-mode 'prefix)] ["Use function keys" (eos::set-key-mode 'function) :style radio :selected (eq eos::key-mode 'function)] "---" ["Use popup menu" eos::toggle-popup-menu :style toggle :selected eos::popup-mode]) "Save Options" add-menu-item ("Options") "--" nil t ("Help") ("Help") (["Introduction..." eos::sw-intro t] ["Installation for SW3.0..." eos::sw-install t] ["Keyboard Mappings..." eos::sw-cheat-sheet t]) eos::short-menu "SCCS"] 6 "\ Actions to do at startup for eos-menubar.el"]) (byte-code "MMMMM" [eos::insert-italics #[(a-string) " \"" [eos::insert-with-font a-string italic] 3] eos::insert-red #[(a-string) " \"" [eos::insert-with-font a-string eos::sw-face] 3] eos::insert-bold #[(a-string) " \"" [eos::insert-with-font a-string bold] 3] eos::insert-with-font #[(a-string a-font) "` c` \n\" !\"+" [nil ext b a a-string make-extent set-extent-face find-face a-font] 4 nil ""] eos::insert #[(s) "G W # V \\Hʚ š Oc! \\HΚ š Oc! \\Hњ š Oc! \\HԚ Қ O! Ϛ O! ˚ O! š!! \\ š Oc !\n," [s 0 normal state newpos pos len string-match "#[bnir]" 1 98 bold error "found bold when not in normal" 114 red "found red when not in normal" 105 italics "found italics when not in normal" 110 eos::insert-italics eos::insert-red eos::insert-bold "found normal when in normal" "internal error" 2 nil "eos::insert with unclosed special font"] 5]] 2) (fset 'eos::insert-hot-area #[(pos proc) " \n# \" \n\" \" )" [make-annotation eos::choose-me pos outside-margin ann set-annotation-action proc set-annotation-data set-extent-face eos::sw-face] 4 "\ Insert a graphical annotation at POS with PROC as its action item"]) (fset 'eos::sw-intro #[nil "!\n!ed|!eb)" [get-buffer-create " *SPARCworks Intro*" buffer1 switch-to-buffer nil buffer-read-only eos::insert "\n #bSPARCworks Editor Integration#n\n\n#bIntroduction#n\n\n#iSPARCworks#n is a set of integrated programming tools from SunPro that\nsupport the program development cycle. The tools are available in\ndifferent product packages and include \"programming-in-the-small\" tools\nas well as groupware. SPARCworks tools communicate with one another using\n#iToolTalk#n.\n\n#iXemacs#n is a version of the Emacs editor that includes interfaces\nto the selection service and to the ToolTalk service. The #iEos#n\npackage uses these two interfaces to provide a simple yet useful\neditor integration with two SPARCworks tools: the #iSourceBrowser#n\nand the #iDebugger#n.\n\nTo use this integration, the user starts the SourceBrowser and the\nDebugger requesting that they do not contain a source pane, and then\nselects any Xemacs screen (that is, a top-level X11 window) as the\nsource display for the SourceBrowser and the Debugger. The user can\nthen interact with the Xemacs screen in a way very similar to how the\nsource panes of the SW tools were used. The user can also drive the\ndebugger directly from Xemacs; in this mode a simple but fast visual\ndata inspector is also available.\n\n#bRelevant Menus#n\n\nThere are several menus and sub-menus that describe #iEos#n. The main\ninteraction is done using the top-level #iSPARCworks#n menu. This\nmenu initially contains 3 menu items, one to present the latest news\nof #iEos#n and two to control how a given Xemacs screen interacts with\nthe Debugger and the SourceBrowser.\n\nInformation on #iEos#n is available in the #iSPARCworks#n submenu of\nthe top-level #iHelp#n menu; this submenu includes this introductory\nmessage, some instructions for using SPARCworks3.0, and a cheat sheet\nfor the keyboard accelerators (if you are using them).\n\nThe behavior of #iEos#n is customized using the #iSPARCworks#n submenu\nof the top-level #iOptions#n menu.\n\n#bInstructions#n\n\nTo use the editor integration, first start Xemacs.\n\nIf you are using #iEos#n with the Debugger of SPARCworks 3.0, you will\nneed to perform some customization. The #iSPARCworks#n submenu of\n#iHelp#n contains instructions on how to do this.\n\nAfter selecting any desired options (see below), use the\n#iSPARCworks#n top-level menu to select at most one Xemacs screen to\nbe used to display SourceBrowser or Debugger sources. Both menu items\ntoggle to deselect a screen for the tool. If no screens are selected\nfor a given tool, the editor integration for that tool is disabled.\n\nAfter doing any customization needed for SW3.0, start the desired\nSPARCworks tool. #iEos#n uses glyphs in a manner similar to how they are\nused in the source panes of the Source Browser and the Debugger. The\ndefault mode of interaction is to click on command buttons in the\nSourceBrowser and Debugger to invoke operations that operate on the\nselection or its position.\n\n#iSourceBrowser#n\n\nStart the SourceBrowser with the #i-editor#n flag. All SourceBrowser\ncommands will work as expected, except that only the current match of\nthe current query will be given a glyph. #iNext#n and #iprev#n will\nchange the current match and the selected Xemacs screen will display it.\nRequesting #iSource#n in the Call Grapher, the Class Grapher and the\nClass Browser will show the source in the selected Xemacs screen.\n\n#iDebugger#n\n\nIn SW3.0, there is no #i-editor#n flag. You should start the debugger\nas usual. In later releases, start the debugger with the #i-editor#n\nflag. All commands that operate on the contents of the selection will\nwork as expected. Operations like #iup#n and #idown#n (done either in\nthe command pane or in the Stack Inspector) will work as expected.\n\nThe Debugger commands: #iStop At#n and #iClear#n operate on the\nposition of the selection. In SPARCworks 3.0, these commands do not\nwork when the selection is owned by Xemacs; therefore, an extension\nfile has been provided for the Debugger that contains two replacements\nthat work as expected. If you follow the instructions in #iInstall SW3.0#n\nfrom the SPARCworks menu, the two original buttons will be replaced with\nnew buttons, which use the new commands.\n\n#iDriving the Debugger from Xemacs#n\n\nSome users may want to drive the Debugger from Xemacs, and #iEos#n\nsupports this. The #i*debugger*#n buffer provides a place where\nDebugger commands can be typed. This mechanism is always available.\nIn addition, #iEos#n provides two different interfaces providing\nkeyboard accelerators for the most common debugger actions. The two\ninterfaces can be activated and selected using the #iOptions#n menu;\none provides a new prefix map, C-c d, while the other uses function\nkeys. In both cases there is a key sequence to type a single debugger\ncommand.\n\n#iEos#n also provides a popup accelerator for some common debugger\ncommands that act on the selection (either content or its position). This\npermits following a selection by an operation on the selection. This feature\ncan be activated using the #iOptions#n menu.\n\n#iA Visual Data Inspector in Xemacs#n\n\nUsers that choose to drive the debugger from Xemacs also have\navailable a very simple but fast visual data inspector. The results\nof #iprint#n and #iprint*#n commands (invoked either from a menu item\nunder the SPARCworks menu or the popup, or from a key accelerator) are\nformatted into an Xemacs buffer and presented into a separate screen.\nThis screen is mapped and unmapped so that, except for the first time,\nit appears quickly.\n\n#bRestrictions#n\n\nThe current version of #iEos#n can only interact with a single instance\nof each of SourceBrowser and Debugger.\n\n#iEos#n cannot send commands to the Debugger until after the Debugger\nhas loaded a program; furthermore, the loading has to be done as an\nexplicit command in the Debugger, not passed as an argument in the\ncommand line.\n\n#bDisclaimers#n\n\nThe preceeding user model is not necessarily indicative of any future\ndirections for SPARCworks; however, you are encouraged to send us\nfeedback via the Comments button in the About Box of either SPARCworks\ntool, or directly to eos-comments@cs.uiuc.edu.\n\nThe lightweight editor integration is not a supported feature in\nSW3.0; the TT messages are supported, though, and that is the key to\nmaking such an integration possible.\n\n#bEnjoy.#n" t] 2 "\ Generate an intro buffer." nil]) (fset 'eos::sw-install #[nil "!‰  ! !ed|!`c`c`c`c`c`c\"\"\" \" \" \" eb." [get-buffer-create " *SPARCworks Install*" nil six five four three two one buffer1 switch-to-buffer buffer-read-only set-buffer-left-margin-width 3 eos::insert "\n #bInstallation for SPARCworks3.0#n\n #rNOT FOR LATER RELEASES#n\n\nNote: If you are using a release of SPARCworks that is later than 3.0\nyou #bneed not and should not apply #n the installations described here.\n\nSPARCworks 3.0 requires some customization to provide better editor\nintegration; the steps are described below. This buffer contains some\n#iannotations#n on the left margin, shown as bullets. A mouse click on\nan annotation will activate the step described to its right\n\nThe SPARCworks 3.0 debugger requires the loading of a simple\ncustomization file using the import command; we recommed you do this\nautomatically in your .dbxrc. The imports command defines some new\ncommands; to make these more accesible we advise defining some new\nbuttons to access these commands; to avoid confusion we also recommend\nremoving the old buttons.\n\nIt is also possible to request the debugger to start without a source\npane. This is done by modifying the .debugger-init file to include the\nappropriate resource specification.\n\nThe source browser requires no customization, just start it using\nthe -editor flag\n\nYou can now click on the annotations shown below to follow these\nrecomendations\n\n" "Insert the suggested new commands in ~/.dbxrc.\nYou may want to edit the file after.\n\n" "Save ~/.dbxrc.\n\n" "Insert the suggested new resource specification in ~/.debugger-init.\nYou may want to edit this file after.\n\n" "Save ~/.debugger-init.\n\n" "Insert commands into ~/.emacs so that the initial screen will disable\nthe presentation of both source browser and debugger (on by default).\nYou may want to edit this file after.\n\n" "Save ~/.emacs.\n\n" eos::insert-hot-area eos::edit-dbxrc eos::save-dbxrc eos::edit-debugger-init eos::save-debugger-init eos::edit-emacs eos::save-emacs t] 7 "\ Generate an install buffer. Will have hot areas" nil]) (fset 'eos::sw-cheat-sheet #[nil "!\n!ed|!eb)" [get-buffer-create " *Cheat Sheets*" buffer1 switch-to-buffer nil buffer-read-only eos::insert "\n #bCheat Sheets for Eos#n\n\nThis buffer has a description of the key maps that can be printed, cut\nand then taped somewhere (like on the keyboard or on your monitor).\nThis is particularly useful for the function keys since their numbers\ndon't any particular mnemonic value.\n\n\n#bWhen using function keys#n #i[Options->SPARCworks->Use Function Keys]#n\n\n----------------------------------------\n\nF6 F7 F8 F9\n\nDo Print Cont ---- Next\nRun Print* Stop Step\nFix Dismiss Clear Step Up\n\n\n----------------------------------------\n\n#bWhen using prefix map#n #i[Options->SPARCworks->Use C-c d Prefix Map]#n\n\n----------------------------------------\nBasic prefix: C-c d\n\n\n Do %\n Run r\n Fix f\n\n Print p\n Print* C-p\n\n Cont c\n Stop b (for breakpoint)\n Clear C-b\n\n Next n\n Step s\n Step up C-s\n\n Up u\n Down d\n----------------------------------------\n\n" t] 2 "\ Generate buffer that has a description of the key maps that can be printed, cut and then taped somewhere (like on the keyboard or on your monitor). This is particularly useful for the function keys" nil]) (fset 'eos::sw-news #[nil "!\n!ed|!eb)" [get-buffer-create " *Eos News*" buffer1 switch-to-buffer nil buffer-read-only eos::insert "\n #bEos News#n\n\nThis is the #iNews#n document for the SPARCworks lightweight editor\nintegration package, #bEos#n. This buffer has short descriptions of\nthe main changes at each new version. The end of the buffer lists some\npossible future enhancements.\n\nSee the #iHelp#n top-level menu for additional information on the\nSPARCworks lightweight editor integration (Eos), including actions\nneeded to use SPARCworks3.0 (later releases of SPARCworks need no\nspecial configuration actions). Option configuration is available\nthrough the #iOptions#n top level menu.\n\nThe current version of Eos is available as the contents of the\nvariable eos::version. \n\n\n#bversion 1.3#n\n\nProvided popup-menu bindings for those debugger actions that operate\non the contents of the selection or its position; selectable via options.\n\nThe *debugger* buffer now support M-p and M-n.\n\n\n#bversion 1.2#n\n\nBetter support for interactions via *debugger* buffer and directly\nusing a prefix map and function keys.\n\nConverted to use new toggle and radio menus, reorganizing SPARCworks\nmenu to factor out help and options into submenus, which are now\navailable under the Options and Help top-level menus.\n\n\n#bversion 1.1#n\n\nSome internal cleanup.\n\nEos now provides basic machinery to drive the debugger engine directly\nusing ToolTalk messages. This feature is not yet very well\npolished. You can try using it at your own risk, or await for release\n1.2 (soon to come) that will provide a better interface and improved\nfunctionality, as well as documentation for the interface.\n\n\n#bversion 1.0#n\n\nFirst widely available release. Supports simple #iselect and click#n model.\n\n\n#bPossible Future Enhancements#n\n\nThe comint package should be generalized to allow for TT-based interpreters\nand it should be used in Eos.\n\nEos will use the tool bar as soon as it is available.\n\nKey & popup bindings should probably be a minor mode.\n\nShould support locking a print screen to force new print screens.\n\nThe current window management makes very cumbersome using *debugger* in\nthe same screen that is selected for displaying the debugger source; this will be\nfixed.\n\n\n#bFeedback#n\n\nSend feedback to #ieos-comments@cs.uiuc.edu#n" t] 2 "\ Generate a News buffer." nil]) (byte-code "M" [nil eos::dbxrc-buffer eos::debugger-init-buffer eos::emacs-buffer eos::recenter-install #[(where) "!\nb!" [switch-to-buffer " *SPARCworks Install*" where recenter 2] 2]] 2) (fset 'eos::edit-dbxrc #[(data) " ! !!!dbp c ͱc" [eos::recenter-install data delete-other-windows split-window-vertically other-window 1 find-file expand-file-name "~/.dbxrc" eos::dbxrc-buffer "function sync\n{\n visit_file $vfile $vlineno\n} \n\n" "import " eos::base-directory "/visit_file.so\n" "unbutton \"stop at\"\nunbutton \"clear\"\nunbutton \"where\"\nunbutton \"display\"\nunbutton \"display *\"\nunbutton \"stop in\"\nunbutton \"up\"\nunbutton \"down\"\nbutton expand \"stop in\"\nbutton ignore \"stop_at\"\nbutton ignore \"clear_at\"\nbutton ignore \"sync\"\n"] 3 "\ will edit home .dbxrc"]) (fset 'eos::save-dbxrc #[(data) " ! !! ! !" [eos::recenter-install data bufferp eos::dbxrc-buffer message "~/.dbxrc buffer not there anymore" switch-to-buffer save-buffer kill-buffer] 2 "\ will save home .dbxrc"]) (fset 'eos::edit-debugger-init #[(data) " ! !!!dbp c" [eos::recenter-install data delete-other-windows split-window-vertically other-window 1 find-file expand-file-name "~/.debugger-init" eos::debugger-init-buffer "Debugger.SourceWindow.Lines: 0\nDebugger.CommandWindow.Lines: 15\n"] 3 "\ will edit .debugger-init"]) (fset 'eos::save-debugger-init #[(data) " ! !! ! !" [eos::recenter-install data bufferp eos::debugger-init-buffer message "~/.debugger-init buffer not there anymore" switch-to-buffer save-buffer kill-buffer] 2 "\ will save home .debugger-init"]) (fset 'eos::edit-emacs #[(data) " ! !!!dbp c" [eos::recenter-install data delete-other-windows split-window-vertically other-window 1 find-file expand-file-name "~/.emacs" eos::emacs-buffer "(if (boundp 'era-version)\n (progn\n (eos::select-sbrowser-screen (selected-screen))\n (eos::select-debugger-screen (selected-screen))\n ))\n"] 3 "\ will edit .emacs"]) (fset 'eos::save-emacs #[(data) " ! !! ! !" [eos::recenter-install data bufferp eos::emacs-buffer message "~/.emacs buffer not there anymore" switch-to-buffer save-buffer kill-buffer] 2 "\ will save home .emacs"])