[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: gEDA-user: Gschem Segment Fault
Here is /usr/local/share/gEDA/system-gschemrc
tomdean
;
; Init file for gschem
;
; ;'s are comments
; keywords are case sensitive (guile feature)
; mode strings are case sensitive
; colors are not case sensitive
;
; gschem-version string
;
; Specifies the version of this file. This number is used to make sure
; that the rc file is compatible with the version of gschem that is
; being run. The end user should *not* change this value.
;
(gschem-version "20040111")
; Load up commonrc
;
; Contains all paths needed for all programs
(define gedadata (getenv "GEDADATA"))
(define gedadatarc (getenv "GEDADATARC"))
(load (string-append gedadatarc "/system-commonrc"))
;
; Start of color section
;
; Load up a color scheme has a light (almost white) background
; Comment out the first line and comment in the second line for a
; dark (black) background. The dark background is the original look.
;
(load (string-append gedadatarc "/gschem-darkbg")) ; dark background
;(load (string-append gedadatarc "/gschem-lightbg")) ; light background
;
; End of color section
;
;
; Start of mode related keywords
;
; toolbars string
;
; Controls if the toolbars are visible or not.
;
(toolbars "enabled")
;(toolbars "disabled")
; handleboxes string
;
; Controls if the handleboxes (which contain the menu and toolbar) are
; visible or not.
;
(handleboxes "enabled")
;(handleboxes "disabled")
; undo-control string
;
; Controls if the undo is enabled or not
;
(undo-control "enabled")
;(undo-control "disabled")
; undo-levels number
;
; Determines the number of levels of undo. Basically this number decides
; how many backup schematics are saved on disk.
;
(undo-levels 10)
; undo-type string
;
; Controls which kind of undo is used. The default is to use the disk as
; the storing medium (ie after every action the undo information is stored
; to disk). The other mechanism uses only memory. The disk mechanism is
; nice because you get undo-level number of backups of the schematic written
; to disk as backups so you should never lose a schematic due to a crash.
;
(undo-type "disk")
;(undo-type "memory")
; draw-grips string
;
; Controls if the editing grips are drawn when selecting objects
;
(draw-grips "enabled")
;(draw-grips "disabled")
; net-endpoint-mode string
;
; Not user changable.
(net-endpoint-mode "filledbox")
; net-midpoint-mode string
;
; Not user changable.
(net-midpoint-mode "filled")
; net-consolidate string
;
; Controls if the net consolidation code is used when schematics are read
; in, written to disk, and when nets are being drawn (does not consolidate
; when things are being copied or moved yet). Net consolidation is the
; connection of nets which can be combined into one.
; Comment out if you want the default mode
;
(net-consolidate "enabled")
;(net-consolidate "disabled")
; net-style string
;
; Set to thin if you want thin nets.
; Set to thick if you want thick nets.
; This mode also determines what net style gets printed
;
;(net-style "thin")
(net-style "thick")
; netconn-rubberband string
;
; Controls if net connections are maintained when you move a connecting
; component or net.
;
(netconn-rubberband "enabled")
;(netconn-rubberband "disabled")
; bus-style string
;
; Set to thin if you want thin buses.
; Set to thick if you want thick buses.
; This mode also determines what bus style gets printed
;
;(bus-style "thin")
(bus-style "thick")
; pin-style string
;
; Set to thin if you want thin pins
; Set to thick if you want thick pins.
; This mode also determines what pin style gets printed
;
;(pin-style "thin")
(pin-style "thick")
; zoom-with-pan string
;
; Sets the zoom in and zoom out functions to pan the display and then zoom.
; Basically zoom in / out where the mouse pointer sits on the display.
; Comment out if you want the default mode.
;
(zoom-with-pan "enabled")
;(zoom-with-pan "disabled")
; fast-mousepan string
;
; Controls if text is drawn properly or if a simplified version (a line which
; represents the text string) is drawn during mouse pan. Drawing a simple
; line speeds up mousepan a lot for big schematics
(fast-mousepan "enabled")
;(fast-mousepan "disabled")
; action-feedback-mode string
;
; Set the default action feedback mode (for copy/move/component place).
; Set to outline to get an outline of the selection.
; Set to boundingbox to get a bounding box of the selection.
; For a fast machines with fast video use outline (it looks good).
; For a slow machine use boundingbox; it is much faster.
; Comment out if you want the default mode.
;
(action-feedback-mode "outline")
;(action-feedback-mode "boundingbox")
; continue-component-place string
;
; If this enabled then multiple instances of the same component can be placed
; immediately without having to click on the name or Apply in the Component
; Place... dialog box. If this is disabled then only one component can be
; placed (the user must then press Apply in the dialog box to place multiple
; instances of the same component)
;
(continue-component-place "enabled")
;(continue-component-place "disabled")
; sort-components-library string
;
; If this is enabled, then the component library will be sorted in alpha
; order. Enabling this will hide the search order for components, keep
; that in mind.
;
; This is currently BROKEN. DO NOT USE! Always leave this disabled.
;
(sort-component-library "disabled")
;(sort-component-library "enabled")
; text-feedback string
;
; Controls if text is drawn when doing an xor action (like copy/move)
; Comment out if you want the default mode.
; Not in production yet.
;
(text-feedback "only-when-readable")
;(text-feedback "always")
; text-display-zoomfactor number
;
; Sets the zoomfactor number (~150 being the most zoomed out factor)
; (zoom factors get smaller as you zoom in) at which text is displayed
; completely (not a line). This is only valid if above is set to
; "only-when-readable"
;
(text-display-zoomfactor 30)
; text-origin-marker string
;
; Controls if the text origin markers are displayed (or not)
;
(text-origin-marker "enabled")
;(text-origin-marker "disabled")
; scrollbars string
;
; Controls if the scrollbars are displayed (enabled) or not (disabled)
;
(scrollbars "enabled")
;(scrollbars "disabled")
; scrollbar-update string
;
; Specifies the behavior of the scrollbars in the main window.
; continuous - display is redrawn as you move the scrollbar
; delayed - display is redrawn once you stop moving the scrollbar
; Default is continuous
;
(scrollbar-update "continuous")
;(scrollbar-update "delayed")
; raise-dialog-boxes-on-expose string
;
; Controls if dialog boxes are raised whenever an expose event happens
; Default is enabled
;
(raise-dialog-boxes-on-expose "enabled")
;(raise-dialog-boxes-on-expose "disabled")
; object-clipping string
;
; Determines if the object clipping code is executed or not
; This code does speed up redraws a bit.
; Possible options: enabled or disabled
; Default is enabled, I do not recommend turning this off, since some X
; servers don't handle clipping correctly.
;
(object-clipping "enabled")
;(object-clipping "disabled")
; embed-components string
;
; Determines if the newly placed components are embedded in the schematic
; or if only the filename is specified and the component is searched for
; instead. If it is enabled, then all new components will be embedded
; othewise they are not embedded. This can be controlled on the fly during
; runtime with the "Embed Component" checkbox on the select component dialog
; box
;
;(embed-components "enabled")
(embed-components "disabled")
; attribute-promotion string
;
; This keyword controls if attribute promotion occurs when you instanciate a
; component. Attribute promotion basically means that any floating attribute
; (unattached) which is inside a symbol gets "promoted" or attached to the
; newly inserted component. This only occurs when the component is
; instanciated.
;
(attribute-promotion "enabled")
;(attribute-promotion "disabled")
; promote-invisible string
;
; If attribute-promotion is enabled, then this controls if invisible floating
; attributes are promoted (attached to the outside of the component) if the
; text string is invisible. There are cases where it is undesirable, so the
; default is disabled.
;
;(promote-invisible "enabled")
(promote-invisible "disabled")
; keep-invisible string
;
; If both attribute-promotion and promote-invisible are enabled, then this
; controls if invisible floating attributes are kept around in memory and
; NOT deleted. Having this enabled will keeps component slotting working.
; If attribute-promotion and promote-invisible are enabled and this
; keyword is disabled, then component slotting will NOT work (and maybe
; other functions which depend on hidden attributes, since those attributes
; are deleted from memory).
;
;(keep-invisible "disabled")
(keep-invisible "enabled")
; logging string
;
; Determines if the logging mechanism is enabled or disabled
; Possible options: enabled or disabled
; Default is enabled.
; See below for the logging-destination keyword for control over
; where the messages go.
;
(logging "enabled")
;(logging "disabled")
; log-window string
;
; Controls if the log message window is mapped when gschem is started up
; Possible options:
; startup - opened up when gschem starts
; later - NOT opened up when gschem starts
; (can be opened by Options/Show Log Window)
;
(log-window "startup")
;(log-window "later")
; log-window-type string
;
; Controls if the log message window is a transient or if it is decorated
; as a normal window (this is dependant on the window manager doing decoration
; right)
;
; Possible options:
; decorated - log window is a normal decorated window
; transient - log window is a transient dialog box, typically
; not decorated by the window manager
;
(log-window-type "decorated")
;(log-window-type "transient")
; logging-destination string
;
; Specifies where log message go during run time.
; Possible options are:
; log_window The log window (if it's visible)
; tty The stdout of the terminal where gschem was run from
; both Both of the above locations
; Message are always written to the log file (unless logging is disabled)
; by the above keyword
;
; Default is log_window
;
(logging-destination "log_window")
;(logging-destination "tty")
;(logging-destination "both")
; text-size number
;
; Sets the default text size.
;
(text-size 10)
; snap-size number
;
; Sets the default spacing which objects snap to. This is not the grid
; spacing (that's independent of this variable)
;
(snap-size 100)
; text-caps-style string
;
; Sets the default caps style used for the input of text
; lower specifies that all inputed text is in lowercase
; upper specifies that all inputed text is in uppercase
; both specifies that all inputed text is used as is (no case conversion)
;
(text-caps-style "both")
;(text-caps-style "lower")
;(text-caps-style "upper")
; file-preview string
;
; Controls if the preview area in the File Open/Save As and Component
; dialog boxes is enabled by default or not
;
(file-preview "disabled")
;(file-preview "enabled")
; enforce-hierarchy string
;
; Controls if the movement between hierarchy levels (of the same underlying
; schematics) is allowed or not.
; If this is enabled, then the user cannot (without using the page manager)
; move between hierarchy levels otherwise, if enabled, the user sees all
; the hierarchy levels as being flat.
;
(enforce-hierarchy "enabled")
;(enforce-hierarchy "disabled")
; default-series-name string
;
; Specify the default series name (of new schematics)
; Will probably be changed a runtime
;
(default-series-name "untitled")
; untitled-name string
;
; Specify the default untitled basename (usually only used a startup time)
; And typically not changed at runtime
;
(untitled-name "untitled")
; window-size width height
;
; Specifies the size of the drawing area window. The width and height
; are specified in pixels and do not include the three menu bars and
; scrollbars (so the window will be larger than the specified
; measurements). Try to keep an aspect ratio of 1.333333 if at all possible.
; These numbers are NOT the true size of the window, but of the drawing area.
;
;(window-size 650 487) ; Good size for 800x600
(window-size 900 650) ; Good size for 1024x768
;(window-size 950 712) ; Good size for 1152x864
;(window-size 1100 825) ; Good size for 1280x1024
; world-size width height border
;
; Specifies the size of the world and a border (in world space units)
; Be sure all inputs are reals (floats/doubles) and don't try to reverse
; the values: to get a portrait mode. Code to support that needs to be added
; The code that implements this automatically transforms the dimensions into
; the proper aspect ratio. All units are in inches.
; This is not the paper size. That is specified elsewhere. End users should
; not change this at all.
;
(world-size 120.0 90.0 1.0)
;(world-size 60.0 45.0 1.0)
; page-size width height
;
; Specifies the size of the default paper size
; Be sure all inputs are reals (floats/doubles) and don't try to reverse
; the values: to get a portrait mode. Code to support that needs to be added
; The code that implements this automatically transforms the dimensions into
; the proper aspect ratio. All units are in inches. (use output-orientation
; to get portrait mode)
;
(paper-size 11.0 8.5) ; letter
;(paper-size 14.0 8.5) ; legal
;(paper-size 8.5 5.5) ; statement
;(paper-size 17.0 11.0) ; tabloid
;(paper-size 11.0 17.0) ; ledger
;(paper-size 13.0 8.5) ; folio
;(paper-size 10.833 8.472) ; quarto
;(paper-size 14 10) ; 10x14
;(paper-size 10.0 7.5) ; executive
;(paper-size 11.0 8.5) ; A
;(paper-size 17.0 11.0) ; B
;(paper-size 22.0 17.0) ; C
;(paper-size 34.0 22.0) ; D
;(paper-size 44.0 34.0) ; E
;(paper-size 46.81 33.11) ; A0
;(paper-size 33.11 23.39) ; A1
;(paper-size 23.39 16.54) ; A2
;(paper-size 16.54 11.69) ; A3
;(paper-size 11.69 8.27) ; A4
;(paper-size 8.27 5.83) ; A5
;(paper-size 5.83 4.13) ; A6
;(paper-size 4.13 2.91) ; A7
;(paper-size 2.91 2.05) ; A8
;(paper-size 2.05 1.46) ; A9
;(paper-size 1.46 1.02) ; A10
;(paper-size 1.02 0.71) ; A11
;(paper-size 0.71 0.51) ; A12
; paper-sizes string width height
;
; Specifies which paper sizes are available for printing.
; The width and height parameters are in the order for landscape printing,
; so reversing them for portrait won't work just yet. (and that will be
; implemented differently.
; The default paper size is set above. All units are in inches (forgiveness
; please).
;
; You MUST change this list in this file (gschem-systemrc) if you want
; any reordering changes to take effect.
;
(paper-sizes "Letter : 8.5 in x 11 in" 11.0 8.5)
(paper-sizes "Legal : 8.5 in x 14 in" 14.0 8.5)
(paper-sizes "Statement : 5.5 in x 8.5 in" 8.5 5.5)
(paper-sizes "Tabloid : 11 in x 17 in" 17.0 11.0)
(paper-sizes "Ledger : 17 in x 11 in" 11.0 17.0)
(paper-sizes "Folio : 8.5 in x 13 in" 13.0 8.5)
(paper-sizes "Quarto : 8.472 in x 10.833 in" 10.833 8.472)
(paper-sizes "10x14 : 10 in x 14 in " 14.0 10.0)
(paper-sizes "Executive : 7.5 x 10" 10.0 7.5)
(paper-sizes "A : 8.5 in x 11 in" 11.0 8.5)
(paper-sizes "B : 11 in x 17 in" 17.0 11.0)
(paper-sizes "C : 17 in x 22 in" 22.0 17.0)
(paper-sizes "D : 22 in x 34 in" 34.0 22.0)
(paper-sizes "E : 34 in x 44 in" 44.0 34.0)
(paper-sizes "A0 84.10 cm x 118.90 cm" 46.81 33.11)
(paper-sizes "A1 59.40 cm x 84.10 cm" 33.11 23.39)
(paper-sizes "A2 42.00 cm x 59.40 cm" 23.39 16.54)
(paper-sizes "A3 29.70 cm x 42.00 cm" 16.54 11.69)
(paper-sizes "A4 21.00 cm x 29.70 cm" 11.69 8.27)
(paper-sizes "A5 14.80 cm x 21.00 cm" 8.27 5.83)
(paper-sizes "A6 10.50 cm x 14.80 cm" 5.83 4.13)
(paper-sizes "A7 7.40 cm x 10.50 cm" 4.13 2.91)
(paper-sizes "A8 5.20 cm x 7.40 cm" 2.91 2.05)
(paper-sizes "A9 3.70 cm x 5.20 cm" 2.05 1.46)
(paper-sizes "A10 2.60 cm x 3.70 cm" 1.46 1.02)
(paper-sizes "A11 1.80 cm x 2.60 cm" 1.02 0.71)
(paper-sizes "A12 1.30 cm x 1.80 cm" 0.71 0.51)
; output-text string
;
; Controls how text is rendered to postscript
; vector - the displayed vector font is rendered to the postscript file
; ps - an equivalent postscript font is rendered to the ps file
; vector rendering is *exactly* as the display is shown
; ps is close, but not perfect (yet) (ps rendering does NOT render 180 degree
; rotated text correctly yet)
; Also vector rendered text files are much much larger then ps files.
;
;(output-text "vector")
(output-text "ps")
; output-type string
;
; Controls what is actually printed
; string is either "extents" or "extents no margins" or
; "current window"
;
(output-type "extents")
;(output-type "extents no margins")
;(output-type "current window")
;;; (output-type "limits") "limits" is considered deprecated and should
;;; not be used.
; output-orientation string
;
; Controls which way the output page is layed out (landscape or portrait)
;
;(output-orientation "portrait")
(output-orientation "landscape")
; output-color string
;
; Controls if output (postscript) is color (enabled) or black/white (disabled)
;
(output-color "disabled")
;(output-color "enabled")
; output-capstyle string
;
; Controls the capstyle at the end of lines in the postscript output
;
(output-capstyle "square")
;(output-capstyle "round")
;(output-capstyle "butt")
; setpagedevice-orientation string
;
; If enabled, puts a << /Orientation x >> setpagedevice into the postscript
; output. x is either 1 for landscape or 0 for portrait.
;
(setpagedevice-orientation "disabled")
;(setpagedevice-orientation "enabled")
; setpagedevice-pagesize string
;
; If enabled, puts a << /PageSize XxY >> setpagedevice into the postscript
; output. XxY is the size of the paper in points.
;
(setpagedevice-pagesize "disabled")
;(setpagedevice-pagesize "enabled")
; image-color string
;
; Controls if image (png) is color (enabled) or black/white (disabled)
;
(image-color "enabled")
;(image-color "disabled")
; middle-button string
;
; Controls if the middle mouse button draws strokes, repeats the last
; command, or does an action (move and copy (holding down the ALT key)
; are supported) on a single objects.
;
(middle-button "action")
;(middle-button "stroke")
;(middle-button "repeat")
; third-button string
;
; Controls if the third mouse button performs the popup ("popup") or
; if it does the mouse panning ("mousepan")
;
(third-button "popup")
;(third-button "mousepan")
; warp-cursor string
;
; Controls if the cursor is warped (or moved) when you zoom in and out.
; Some people find this forced cursor movement annoying.
;
(warp-cursor "enabled")
;(warp-cursor "disabled")
; Bus ripper controls
; The following keywords control the auto bus ripper addition code
;
; bus-ripper-size : Sets the size of the auto bus rippers.
; bus-ripper-type : Sets the bus ripper type either a "component" or
; plain "net"
; bus-ripper-syname : If above is set to component, specify the symbol name.
; The symbol must exist in a component library
; bus-ripper-rotation : Either "symmetric" or "non-symmetric". This deals
; with how the bus ripper symbol is rotated when it
; is auto added to a schematic.
;
; The default bus ripper
(bus-ripper-size 200)
(bus-ripper-type "component")
(bus-ripper-symname "busripper-1.sym")
(bus-ripper-rotation "non-symmetric")
; A symmetric alternative
;(bus-ripper-size 200)
;(bus-ripper-type "component")
;(bus-ripper-symname "busripper-2.sym")
;(bus-ripper-rotation "symmetric")
; A simple net
;(bus-ripper-size 200)
;(bus-ripper-type "net")
; force-boundingbox string
;
; Controls if the entire bounding box of a symbol is used when figuring out
; whichend of the pin is considered the active port. Enable this when
; gschem is guessing incorrectly.
;
(force-boundingbox "disabled")
;(force-boundingbox "enabled")
; reset-componet-library
;
; When reset-component-library is executed, then all known component library
; paths are erased. This is useful if the user wants to override all the
; system provided paths and provide his/her own set. Normally this is not
; commented in.
;
; (reset-component-library)
; reset-source-library
;
; When reset-source-library is executed, then all known source library
; paths are erased. This is useful if the user wants to override all the
; system provided paths and provide his/her own set. Normally this is not
; commented in.
;
; (reset-source-library)
;
; End of mode related keywords
;
;
; Start of hooks
;
;
; Comment in this scheme code if you want automatic numbering when
; placing new component and copying components
;
;(load (string-append gedadatarc "/scheme/auto-uref.scm"))
;(add-hook! add-component-hook auto-uref)
;(add-hook! copy-component-hook auto-uref)
;
; End of hooks
;
;
; Start of path related keywords
;
; attribute-name string
;
; Specifies the default attributes which are presented to the user in the
; "Add Attribute" dialog box.
; The main purpose of this keyword is to allow the user to add any attributes
; which should be in this dialog box.
; Some of these names are specific for symbols while others are for general
; components or nets. The attribute names are case sensitive. (change this?)
;
; The order of the attribute-name keywords determines the order they
; are displayed.
;
(attribute-name "netname")
(attribute-name "refdes")
(attribute-name "slot")
(attribute-name "value")
(attribute-name "net")
(attribute-name "device")
(attribute-name "pinnumber")
(attribute-name "pinseq")
(attribute-name "pintype")
(attribute-name "pinlabel")
(attribute-name "source")
(attribute-name "numslots")
(attribute-name "slot")
(attribute-name "slotdef")
(attribute-name "graphical")
(attribute-name "footprint")
(attribute-name "description")
(attribute-name "documentation")
;
; End of path related keywords
;
;
; Start of stroke related keywords
;
;
; This section defines associations between a stroke sequence and a
; guile function which is executed when the stroke is drawn in the
; gschem window
;
; Strokes are defined as follows:
;
; 1 2 3
;
; 4 5 6
;
; 7 8 9
;
; The sequence of number such as "852" specify how the stroke is drawn.
; Sequence "852" happens to be a vertical line drawn from the bottom going
; up.
;
; Please see the libstroke documentation for further information on the
; stroke description.
;
; For the most part I went a little overboard on the stroke defs, you
; probably can get away with many less stroke defs, but I'm a very
; sloppy stroke drawing person. :-) Guess my teachers were always
; right-- my handwritting was/is awful.
;
; Be careful here, strokes is a rather large list, and make sure you maintain
; proper ( and )'s.
;
(define strokes
; Letter L for line
'(("14789" . add-line)
; Letter Z for zoom window
("125789" . view-zoom-box)
("1254789" . view-zoom-box)
("1235789" . view-zoom-box)
("2354789" .view-zoom-box)
("2324789" . view-zoom-box)
("12354789" . view-zoom-box)
("12324789" . view-zoom-box)
("12365789" . view-zoom-box)
("1232789" . view-zoom-box)
; line up for zoom out
("852" . view-zoom-out)
; line down for zoom in
("258" . view-zoom-in)
; Letter C for copy
("3214789" . edit-copy)
("214789" . edit-copy)
("21489" . edit-copy)
("32478" . edit-copy)
; Letter E for edit
("563214789" . edit-edit)
("53214789" . edit-edit)
("5321478" . edit-edit)
("5214789" . edit-edit)
("521478" . edit-edit)
("453214789" . edit-edit)
("45321478" . edit-edit)
("456321478" . edit-edit)
("456214789" . edit-edit)
("45621478" . edit-edit)
; Letter N for net
("415963" . add-net)
("7414863" . add-net)
("74148963" . add-net)
("74158963" . add-net)
("7415963" . add-net)
; Letter M for move
("741236963" . edit-move)
("7412572369" . edit-move)
("7412575369" . edit-move)
("741258369" . edit-move)
("74125852369" . edit-move)
("7412585369" . edit-move)
("74125863" . edit-move)
("74126963" . edit-move)
("741475369" . edit-move)
("7414785369" . edit-move)
("74148369" . edit-move)
("7414852369" . edit-move)
("741485369" . edit-move)
("74148669" . edit-move)
("741552369" . edit-move)
("741575369" . edit-move)
("7415852369" . edit-move)
("741585369" . edit-move)
("74185369" . edit-move)
("74255369" . edit-move)
("7425852369" . edit-move)
("742585369" . edit-move)
("7426963" . edit-move)
("74585369" . edit-move)
; Letter D for delete
("14786321" . edit-delete)
("14789621" . edit-delete)
("147896321" . edit-delete)
("15896321" . edit-delete)
("257896321" . edit-delete)
("25896321" . edit-delete)
("4789621" . edit-delete)
; Letter S for select
("2145987" . edit-select )
("215987" . edit-select )
("2156987" . edit-select )
("21256987" . edit-select )
("3215987" . edit-select )
("32156987" . edit-select )
("32148987" . edit-select )
("32145987" . edit-select )))
;
; End of stroke related keywords
;
;
; Start of keymapping related keywords
;
; Keymapping rules:
;
; - Everything is case sensitive
; - For a -- "a"
; - For Shift-A -- "Shift A"
; - For Control-a -- "Control a"
; - For Alt-a -- "Alt a"
; - At this point in time you can only have one modifier
; (shift, control, alt) at a time.
; - Keys must be unique in each keymap, especially the global one
; - Strings (without any modifers) are the same strings specified
; for the keys in the file /usr/lib/X11/XKeysymDB (at least on
; a linux box)
;
; All keys in this keymap *must* be unique
(define file-keymap
'(("w" . file-new-window)
("n" . file-new)
("o" . file-open)
("s" . file-save)
("e" . page-close) ; yes this is okay; reusing page-close
("a" . file-save-as)
("l" . file-save-all)
("p" . file-print)
("r" . page-revert) ; yes this is okay; resuing page-revert
("i" . file-image)
("t" . file-script)
("c" . file-close-window)
("q" . file-quit)))
; All keys in this keymap *must* be unique
(define edit-keymap
'(("Shift U" . edit-undo)
("Shift R" . edit-redo)
("s" . edit-select)
("c" . edit-copy-hotkey) ; This can also just be edit-copy and then
("e" . edit-edit) ; you must pick the anchor point
("x" . edit-text)
("m" . edit-move-hotkey) ; This can also just be edit-move
("d" . edit-delete)
("r" . edit-rotate-90-hotkey)
("i" . edit-mirror-hotkey)
("Shift S" . edit-slot)
("o" . edit-color)
("l" . edit-lock)
("Shift L" . edit-unlock)
("w" . edit-linetype)
("f" . edit-filltype)
("t" . edit-translate)
("b" . edit-embed)
("u" . edit-unembed)
("p" . edit-update)
("n" . edit-show-hidden)
("v" . edit-make-text-visible)))
;;; ("h" . edit-stretch-hotkey) Obsolete
; All keys in this keymap *must* be unique
(define view-keymap
'(("r" . view-redraw)
("b" . view-zoom-box-hotkey)
("f" . view-zoom-full)
("l" . view-zoom-extents)
("e" . view-zoom-extents)
("p" . view-pan-hotkey)
("u" . view-update-cues)
("o" . view-zoom-out-hotkey)
("i" . view-zoom-in-hotkey)))
(define buffer-keymap
'(("c" . buffer-copy1)
("u" . buffer-cut1)
("p" . buffer-paste1-hotkey)))
; All keys in this keymap *must* be unique
(define page-keymap
'(("m" . page-manager)
("n" . page-next)
("p" . page-prev)
("e" . page-new)
("r" . page-revert)
("c" . page-close)
("d" . page-discard)
("Shift P" . page-print)))
; All keys in this keymap *must* be unique
(define add-keymap
'(("c" . add-component)
("a" . add-attribute-hotkey)
("n" . add-net-hotkey)
("u" . add-bus-hotkey)
("t" . add-text)
("l" . add-line-hotkey)
("b" . add-box-hotkey)
("i" . add-circle-hotkey)
("r" . add-arc-hotkey)
("p" . add-pin-hotkey)))
; All keys in this keymap *must* be unique
(define hierarchy-keymap
'(("d" . hierarchy-down-schematic)
("s" . hierarchy-down-symbol)
("u" . hierarchy-up)
("o" . hierarchy-documentation)))
; All keys in this keymap *must* be unique
(define attributes-keymap
'(("a" . attributes-attach)
("d" . attributes-detach)
("n" . attributes-show-name)
("v" . attributes-show-value)
("b" . attributes-show-both)
("t" . attributes-visibility-toggle)
("Shift F" . edit-find-text)
("h" . edit-hide-text)
("Shift H" . edit-show-text)
("a" . edit-autonumber)))
; All keys in this keymap *must* be unique
(define options-keymap
'(("t" . options-text-size)
("a" . options-action-feedback)
("g" . options-grid)
("s" . options-snap)
("r" . options-rubberband)
("Shift S" . options-snap-size)
("l" . options-show-log-window)
("c" . options-show-coord-window)))
; All keys in this keymap *must* be unique
(define help-keymap
'(("a" . help-about)
("m" . help-manual)
("h" . help-hotkeys)
("c" . hierarchy-documentation))) ; yes this is okay; reusing
; All keys in the global-keymap *must* be unique
(define global-keymap
'(("Escape" . cancel)
("a" . add-keymap)
("b" . add-box-hotkey)
("c" . edit-copy-hotkey)
("d" . edit-delete)
("e" . edit-keymap)
("f" . file-keymap)
("g" . no-action)
("h" . help-keymap)
("i" . add-component)
("j" . no-action)
("k" . no-action)
("l" . add-line-hotkey)
("m" . edit-move-hotkey)
("n" . add-net-hotkey)
("o" . options-keymap)
("p" . page-keymap)
("q" . no-action)
("r" . view-redraw)
("s" . edit-select)
("t" . attributes-keymap)
("u" . add-bus-hotkey)
("v" . view-keymap)
("w" . view-zoom-box-hotkey)
("x" . view-pan-hotkey)
("y" . buffer-keymap)
("z" . view-zoom-in-hotkey)
("period" . repeat-last-command)
("comma" . misc-misc)
("equal" . misc-misc2)
("Shift plus" . misc-misc3)
("Delete" . edit-delete)
("Shift greater" . page-next)
("Shift less" . page-prev)
("Alt q" . file-quit)
("Shift H" . hierarchy-keymap)
("Shift U" . edit-undo)
("Shift R" . edit-redo)
("Shift Z" . view-zoom-out-hotkey)))
; finally set the keymap point to the newly created datastructure
(define current-keymap global-keymap)
;
; Here are the definitions for the top pull down menu bar
;
; The "menu item name" is the name of the item as it will appear in the menu
; The "menu action" is the scheme function which is executed when the item
; is selected off of the menu. And "menu hotkey function" is the scheme
; function which is executed when the hotkey is pressed.
; "menu hotkey function" has no real functionality in the menuing scheme other
; than providing the information as to what hotkey to display in the menu.
; "menu hotkey function" is not executed when you select an item off of the
; list. The hotkeys which are displayed are defined by the global-keymap.
; Actions can have several hotkeys, but the displayed keys are the last
; ones found.
;
; The SEPARATOR keyword is case sensitive and puts a seperator into the menu.
;
(define file-menu-items
;;
;; menu item name menu action menu hotkey function
;;
'( ("New Window" file-new-window file-new-window)
("New Page" file-new file-new)
("Open Page..." file-open file-open)
("Close Page" page-close page-close)
("Revert Page" page-revert page-revert)
("Save Page" file-save file-save)
("Save Page As..." file-save-as file-save-as)
("Save All" file-save-all file-save-all)
("Print..." file-print file-print)
("Write PNG..." file-image file-image)
("SEPARATOR" no-action no-action)
("Execute Script..." file-script file-script)
("SEPARATOR" no-action no-action)
("Close Window" file-close-window file-close-window)
("Quit" file-quit file-quit)))
(define edit-menu-items
;;
;; menu item name menu action menu hotkey action
;;
'( ("Undo" edit-undo edit-undo)
("Redo" edit-redo edit-redo)
("SEPARATOR" no-action no-action)
("Select Mode" edit-select edit-select)
("Edit..." edit-edit edit-edit)
("Edit Text..." edit-text edit-text)
("Copy Mode" edit-copy edit-copy-hotkey)
("Move Mode" edit-move edit-move-hotkey)
("Delete" edit-delete edit-delete)
("Rotate 90 Mode" edit-rotate-90 edit-rotate-90-hotkey)
("Mirror Mode" edit-mirror edit-mirror-hotkey)
("SEPARATOR" no-action no-action)
("Slot..." edit-slot edit-slot)
("Color..." edit-color edit-color)
("Lock" edit-lock edit-lock)
("Unlock" edit-unlock edit-unlock)
("Line Width & Type..." edit-linetype edit-linetype)
("Fill Type..." edit-filltype edit-filltype)
("Symbol Translate..." edit-translate edit-translate)
("Embed Component" edit-embed edit-embed)
("Unembed Component" edit-unembed edit-unembed)
("Update Component" edit-update edit-update)
("Show/Hide Inv Text" edit-show-hidden edit-show-hidden)
("Make Inv Text Vis" edit-make-text-visible edit-make-text-visible)))
(define buffer-menu-items
;;
;; menu item name menu action menu hotkey action
;;
'( ("Copy into 1" buffer-copy1 buffer-copy1)
("Copy into 2" buffer-copy2 buffer-copy2)
("Copy into 3" buffer-copy3 buffer-copy3)
("Copy into 4" buffer-copy4 buffer-copy4)
("Copy into 5" buffer-copy5 buffer-copy5)
("Cut into 1" buffer-cut1 buffer-cut1)
("Cut into 2" buffer-cut2 buffer-cut2)
("Cut into 3" buffer-cut3 buffer-cut3)
("Cut into 4" buffer-cut4 buffer-cut4)
("Cut into 5" buffer-cut5 buffer-cut5)
("Paste from 1" buffer-paste1 buffer-paste1-hotkey)
("Paste from 2" buffer-paste2 buffer-paste2-hotkey)
("Paste from 3" buffer-paste3 buffer-paste3-hotkey)
("Paste from 4" buffer-paste4 buffer-paste4-hotkey)
("Paste from 5" buffer-paste5 buffer-paste5-hotkey)))
(define view-menu-items
;;
;; menu item name menu action menu hotkey action
;;
'( ("Redraw" view-redraw view-redraw)
("Pan" view-pan view-pan-hotkey)
("Zoom Box" view-zoom-box view-zoom-box-hotkey)
("Zoom Extents" view-zoom-extents view-zoom-extents)
("Zoom In" view-zoom-in view-zoom-in-hotkey)
("Zoom Out" view-zoom-out view-zoom-out-hotkey)
("Zoom Full" view-zoom-full view-zoom-full)))
(define page-menu-items
;;
;; menu item name menu action menu hotkey action
;;
'( ("Manager..." page-manager page-manager)
("Next" page-next page-next)
("Previous" page-prev page-prev)
("New" page-new page-new)
("Revert" page-revert page-revert)
("Close" page-close page-close)
("SEPARATOR" no-action no-action)
("Discard" page-discard page-discard)))
(define add-menu-items
;;
;; menu item name menu action menu hotkey action
;;
'( ("Component..." add-component add-component)
("Net" add-net add-net-hotkey)
("Bus" add-bus add-bus-hotkey)
("Attribute..." add-attribute add-attribute-hotkey)
("Text..." add-text add-text)
("SEPARATOR" no-action no-action)
("Line" add-line add-line-hotkey)
("Box" add-box add-box-hotkey)
("Circle" add-circle add-circle-hotkey)
("Arc" add-arc add-arc-hotkey)
("Pin" add-pin add-pin-hotkey)))
(define hierarchy-menu-items
;;
;; menu item name menu action menu hotkey action
;;
'( ("Down Schematic" hierarchy-down-schematic
hierarchy-down-schematic)
("Down Symbol" hierarchy-down-symbol
hierarchy-down-symbol)
("Up" hierarchy-up
hierarchy-up)
("Documentation" hierarchy-documentation
hierarchy-documentation)))
(define attributes-menu-items
;;
;; menu item name menu action menu hotkey action
;;
'( ("Attach" attributes-attach attributes-attach)
("Detach" attributes-detach attributes-detach)
("Show Value" attributes-show-value attributes-show-value)
("Show Name" attributes-show-name attributes-show-name)
("Show Both" attributes-show-both attributes-show-both)
("Toggle Visibility" attributes-visibility-toggle
attributes-visibility-toggle)
("Find Specific Text..." edit-find-text edit-find-text)
("Hide Specific Text..." edit-hide-text edit-hide-text)
("Show Specific Text..." edit-show-text edit-show-text)
("Autonumber Text..." edit-autonumber edit-autonumber)))
(define options-menu-items
;;
;; menu item name menu action menu hotkey action
;;
'( ("Text Size..." options-text-size options-text-size)
("Toggle Grid On/Off" options-grid options-grid)
("Toggle Snap On/Off" options-snap options-snap)
("Snap Grid Spacing..." options-snap-size options-snap-size)
("Toggle Outline/Box" options-action-feedback
options-action-feedback)
("Toggle Net Rubberband" options-rubberband options-rubberband)
("Show Log Window..." options-show-log-window
options-show-log-window)
("Show Coord Window..." options-show-coord-window
options-show-coord-window)))
(define help-menu-items
;;
;; menu item name menu action menu hotkey action
;;
'( ("About..." help-about help-about)
("Manual..." help-manual help-manual)
("Hotkeys..." help-hotkeys help-hotkeys)
("Component..." hierarchy-documentation
hierarchy-documentation)))
;
; Now actually add the menus. The order here defines the order in which
; the menus appear in the top menu bar.
;
(add-menu "File" file-menu-items)
(add-menu "Edit" edit-menu-items)
(add-menu "Buffer" buffer-menu-items)
(add-menu "View" view-menu-items)
(add-menu "Page" page-menu-items)
(add-menu "Add" add-menu-items)
(add-menu "Hierarchy" hierarchy-menu-items)
(add-menu "Attributes" attributes-menu-items)
(add-menu "Options" options-menu-items)
(add-menu "Help" help-menu-items) ; help is special it will be on the right
;
; End of keymapping related keywords
;