Introduce POLYGONHOLE_MODE for creating holes in polygons
[geda-pcb/gde.git] / src / pcb-menu.res
blob0df4b7fcee26fe2f05554cab26ebf63fb5b30bf5
1 # -*- c -*-
2 # Note - pcb-menu.res is used to build pcb-menu.h
3 # Note - parameters are sensitive to extra spaces around the commas
5 Mouse =
7   Left = {
8     Mode(Notify)
9     up = Mode(Release)
10   }
11   Right = {
12     { Mode(Save) Mode(Rotate) Mode(Notify) Mode(Release) Mode(Restore) }
13     ctrl = Display(CycleCrosshair)
14   }
15   Middle = {
16     Pan(1)
17     up = Pan(0)
18     ctrl = Pan(thumb,1)
19     ctrl-up = Pan(thumb,0)
20   }
21   Up = Zoom(0.8)
22   Down = Zoom(1.25)
23 # If you want zoom to center, do this instead.
24   #Up = { {Zoom(0.8) Center()} }
25   #Down = { {Zoom(1.25) Center()} }
28 MainMenu =
30   {File
31    {"About..." About()}
32    {"Save layout" Save(Layout)}
33    {"Save layout as..." Save(LayoutAs)}
34         {"Revert" Load(Revert,none)}
35    {"Import Schematics" Import() }
36    {"Load layout" Load(Layout)}
37    {"Load element data to paste-buffer" PasteBuffer(Clear) Load(ElementTobuffer)}
38    {"Load layout data to paste-buffer" PasteBuffer(Clear) Load(LayoutTobuffer)}
39    {"Load netlist file" Load(Netlist)}
40    {"Load vendor resource file" LoadVendor()}
41    {"Print layout..." Print()}
42    {"Export layout..." Export()}
43    {"Calibrate Printer..." PrintCalibrate()}
44    -
45    {"Save connection data of..." foreground=grey50 sensitive=false}
46    {" a single element" GetXY(Click to set the element mark <>) Save(ElementConnections)}
47    {" all elements" Save(AllConnections)}
48    {" unused pins" Save(AllUnusedPins)}
49    -
50    {"Start new layout" New()}
51    -
52    {"Quit Program" Quit() m=Q a={"Ctrl-Q" "Ctrl<Key>q"}}
53   }
54   {View
55    {"Flip up/down" checked=flip_y SwapSides(V) a={"Tab" "<Key>Tab"}}
56    {"Flip left/right" checked=flip_x SwapSides(H) a={"Shift-Tab" "Shift<Key>Tab"}}
57    {"Spin 180°" SwapSides(R) a={"Ctrl-Tab" "Ctrl<Key>Tab"}}
58    {"Swap Sides" SwapSides() a={"Ctrl-Shift-Tab" "Ctrl Shift<Key>Tab"}}
59    {"Center cursor" Center() a={"C" "<Key>c"}}
60    {"Show soldermask" checked=showmask Display(ToggleMask)}
61    -
62    {"Displayed element-name..." foreground=grey50 sensitive=false}
63    {"Description" Display(Description) checked=elementname,1}
64    {"Reference Designator" Display(NameOnPCB) checked=elementname,2}
65    {"Value" Display(Value) checked=elementname,3}
66    {"Lock Names" checked=locknames Display(ToggleLockNames)}
67    {"Only Names" checked=onlynames Display(ToggleOnlyNames)}
68    {"Hide Names" checked=hidenames Display(ToggleHideNames)}
69    -
70    {"Pinout shows number" checked=shownumber Display(ToggleName)}
71    {"Open pinout menu" Display(Pinout) a={"Shift-D" "Shift<Key>d"}}
72    -
73    {Zoom
74     {"Zoom In 2X" Zoom(-2)}
75     {"Zoom In 20%" Zoom(-1.2) m=Z a={"Z" "<Key>z"}}
76     {"Zoom Out 20%" Zoom(+1.2) m=O a={"Shift-Z" "Shift<Key>z"}}
77 # If you want zoom to center, do this instead.
78     #{"Zoom In 20%" Zoom(-1.2) Center() m=Z a={"Z" "<Key>z"}}
79     #{"Zoom Out 20%" Zoom(+1.2) Center() m=O a={"Shift-Z" "Shift<Key>z"}}
80     {"Zoom Out 2X" Zoom(+2)}
81     {"Zoom Max" Zoom() m=M a={"V" "<Key>v"}}
82     {"Zoom Toggle" Zoom(Toggle) a={"`" "<Key>`"}}
83     -
84     {"Zoom to 0.1mil/px" Zoom(=10)}
85     {"Zoom to 0.01mm/px" Zoom(=39.37)}
86     {"Zoom to 1mil/px" Zoom(=100)}
87     {"Zoom to 0.05mm/px" Zoom(=196.8504)}
88     {"Zoom to 2.5mil/px" Zoom(=250)}
89     {"Zoom to 0.1mm/px" Zoom(=393.7)}
90     {"Zoom to 10mil/px" Zoom(=1000)}
91    }
92    {Grid
93     {"mil" checked=grid_units_mm,0 SetUnits(mil)}
94     {"mm"  checked=grid_units_mm,1 SetUnits(mm)}
95     {"Display grid" checked=drawgrid Display(Grid)}
96     {"Realign grid" GetXY(Click to set the grid origin) Display(ToggleGrid)}
97     {"No Grid" checked=gridsize,1 SetValue(Grid,1)}
98     -
99     {  "0.1 mil" checked=gridsize,10 SetUnits(mil) SetValue(Grid,10)}
100     {  "1 mil"   checked=gridsize,100 SetUnits(mil) SetValue(Grid,100)}
101     {  "5 mil"   checked=gridsize,500 SetUnits(mil) SetValue(Grid,500)}
102     { "10 mil"   checked=gridsize,1000 SetUnits(mil) SetValue(Grid,1000)}
103     { "25 mil"   checked=gridsize,2500 SetUnits(mil) SetValue(Grid,2500)}
104     { "50 mil"   checked=gridsize,5000 SetUnits(mil) SetValue(Grid,5000)}
105     {"100 mil"   checked=gridsize,10000 SetUnits(mil) SetValue(Grid,10000)}
106     -
107     {"0.01 mm" checked=gridsize,39 SetUnits(mm) SetValue(Grid,39.37007874)}
108     {"0.05 mm" checked=gridsize,197 SetUnits(mm) SetValue(Grid,196.85039370)}
109     {"0.1 mm"  checked=gridsize,394 SetUnits(mm) SetValue(Grid,393.70078740)}
110     {"0.25 mm" checked=gridsize,984 SetUnits(mm) SetValue(Grid,984.25197)}
111     {"0.5 mm"  checked=gridsize,1969 SetUnits(mm) SetValue(Grid,1968.503937)}
112     {"1 mm"    checked=gridsize,3937 SetUnits(mm) SetValue(Grid,3937.00787400)}
113     -
114     {"Grid -5mil" SetValue(Grid,-5,mil) a={"Shift-G" "Shift<Key>g"}}
115     {"Grid +5mil" SetValue(Grid,+5,mil) a={"G" "<Key>g"}}
116     {"Grid -0.05mm" SetValue(Grid,-0.05,mm) a={"Shift-Ctrl-G" "Shift Ctrl<Key>g"}}
117     {"Grid +0.05mm" SetValue(Grid,+0.05,mm) a={"Ctrl-G" "Ctrl<Key>g"}}
118    }
119    -
120    {"Shown Layers"
121     @layerview
122     -
123     {"Edit Layer Groups" EditLayerGroups()}
124    }
125    {"Current Layer"
126     @layerpick
127     -
128     {"Delete current layer" MoveLayer(c,-1)}
129     {"Add new layer" MoveLayer(-1,c)}
130     {"Move current layer up" MoveLayer(c,up)}
131     {"Move current layer down" MoveLayer(c,down)}
132    }
133   }
134   {Edit
135    {"Undo last operation" Undo() a={"U" "<Key>u"}}
136    {"Redo last undone operation" Redo() a={"Shift-R" "Shift<Key>r"}}
137    {"Clear undo-buffer" Undo(ClearList) a={"Shift-Ctrl-U" "Shift Ctrl<Key>u"}}
138    -
139    {"Cut selection to buffer" GetXY(Click to set the snap point for this buffer)
140     PasteBuffer(Clear) PasteBuffer(AddSelected) RemoveSelected() Mode(PasteBuffer)
141     a={"Ctrl-X" "Ctrl<Key>x"}}
142    {"Copy selection to buffer" GetXY(Click to set the snap point for this buffer)
143     PasteBuffer(Clear) PasteBuffer(AddSelected) Mode(PasteBuffer)
144     a={"Ctrl-C" "Ctrl<Key>c"}}
145    {"Paste buffer to layout" Mode(PasteBuffer) a={"Ctrl-V" "Ctrl<Key>v"}}
146    -
147    {"Unselect all" Unselect(All) a={"Shift-Alt-A" "Shift Alt<Key>a"}}
148    {"Select all visible" Select(All) a={"Alt-A" "Alt<Key>a"}}
149    -
150    {"Move to current layer" MoveToCurrentLayer(Object) a={"M" "<Key>m"}}
151    {"Move selected to current layer" MoveToCurrentLayer(Selected) a={"Shift-M" "Shift<Key>m"}}
152    -
153    {"Edit Names..." foreground=grey50 sensitive=false}
154    {" Change text on layout" ChangeName(Object) a={"N" "<Key>n"}}
155    {" Edit name of layout" ChangeName(Layout)}
156    {" Edit name of active layer" ChangeName(Layer)}
157    {"Edit Attributes..." foreground=grey50 sensitive=false}
158    {" Layout" Attributes(Layout)}
159    {" CurrentLayer" Attributes(Layer)}
160    {" Element" Attributes(Element)}
161    -
162    {"Board Sizes" AdjustSizes()}
163    {"Route Styles"
164     @routestyles
165     -
166     {"Edit..." AdjustStyle(0)}
167    }
168   }
169   {Tools
170    {"None" checked=nomode,1 Mode(None)}
171    {"Via" checked=viamode,1 Mode(Via) a={"F1" "<Key>F1"}}
172    {"Line" checked=linemode,1 Mode(Line) a={"F2" "<Key>F2"}}
173    {"Arc" checked=arcmode,1 Mode(Arc) a={"F3" "<Key>F3"}}
174    {"Text" checked=textmode,1 Mode(Text) a={"F4" "<Key>F4"}}
175    {"Rectangle" checked=rectanglemode,1 Mode(Rectangle) a={"F5" "<Key>F5"}}
176    {"Polygon" checked=polygonmode,1 Mode(Polygon) a={"F6" "<Key>F6"}}
177    {"Polygon Hole" checked=polygonholemode,1 Mode(PolygonHole)}
178    {"Buffer" checked=pastebuffermode,1 Mode(PasteBuffer) a={"F7" "<Key>F7"}}
179    {"Remove" checked=removemode,1 Mode(Remove) a={"F8" "<Key>F8"}}
180    {"Rotate" checked=rotatemode,1 Mode(Rotate) a={"F9" "<Key>F9"}}
181    {"Thermal" checked=thermalmode,1 Mode(Thermal) a={"F10" "<Key>F10"}}
182    {"Arrow" checked=arrowmode,1 Mode(Arrow)  a={"F11" "<Key>F11"}}
183    {"Insert Point" checked=insertpointmode,1 Mode(InsertPoint) a={"Insert" "<Key>Insert"}}
184    {"Move" checked=movemode,1 Mode(Move)}
185    {"Copy" checked=copymode,1 Mode(Copy)}
186    {"Lock" checked=lockmode,1 Mode(Lock) a={"F12" "<Key>F12"}}
187    {"Cancel" Mode(Cancel) a={"Esc" "<Key>Escape"}}
188    -
189    {"Command" Command() a={":" "<Key>:"}}
190   }
191   {Settings
192    {"Layer groups" foreground=grey50 sensitive=false}
193    {"Edit layer groupings" EditLayerGroups()}
194    -
195    {"'All-direction' lines" checked=alldirection Display(Toggle45Degree) a={"." "<Key>."}}
196    {"Auto swap line start angle" checked=swapstartdir Display(ToggleStartDirection)}
197    {"Orthogonal moves" checked=orthomove Display(ToggleOrthoMove)}
198    {"Crosshair snaps to pins and pads" checked=snappin Display(ToggleSnapPin)}
199    {"Crosshair shows DRC clearance" checked=showdrc Display(ToggleShowDRC)}
200    {"Auto enforce DRC clearance" checked=autodrc Display(ToggleAutoDRC)}
201    -
202    {"Rubber band mode" checked=rubberband Display(ToggleRubberBandMode)}
203    {"Require unique element names" checked=uniquename Display(ToggleUniqueNames)}
204    {"Auto-zero delta measurements" checked=localref Display(ToggleLocalRef)}
205    {"New lines, arcs clear polygons" checked=clearnew Display(ToggleClearLine)}
206    {"New polygons are full ones" checked=newfullpoly Display(ToggleFullPoly)}
207    {"Show autorouter trials" checked=liveroute Display(ToggleLiveRoute)}
208    {"Thin draw" checked=thindraw Display(ToggleThindraw) a={"|" "<Key>|"}}
209    {"Thin draw poly" checked=thindrawpoly Display(ToggleThindrawPoly) a={"Ctrl-Shift-P" "Ctrl Shift<Key>p"}}
210    {"Check polygons" checked=checkplanes Display(ToggleCheckPlanes)}
211    -
212    {"Pinout shows number" checked=shownumber Display(ToggleName)}
213    {"Pins/Via show Name/Number" Display(PinOrPadName) a={"D" "<Key>d"}}
214    {"Enable vendor drill mapping" ToggleVendor() checked=VendorMapOn}
215   }
216     
217   {Select
218    {"Select all visible objects" Select(All)}
219    {"Select all connected objects" Select(Connection)}
220    -
221    {"Unselect all objects" Unselect(All)}
222    {"unselect all connected objects" Unselect(Connection)}
223    -
224    {"Select by name" foreground=grey50 sensitive=false}
225    {"All objects" Select(ObjectByName) active=have_regex}
226    {"Elements" Select(ElementByName) active=have_regex}
227    {"Pads" Select(PadByName) active=have_regex}
228    {"Pins" Select(PinByName) active=have_regex}
229    {"Text Objects" Select(TextByName) active=have_regex}
230    {"Vias" Select(ViaByName) active=have_regex}
231    -
232    {"Auto-place selected elements" AutoPlaceSelected() a={"Ctrl-P" "Ctrl<Key>p"}}
233    {"Disperse all elements" DisperseElements(All)}
234    {"Move selected elements to other side" Flip(SelectedElements) a={"Shift-B" "Shift<Key>b"}}
235    {"Delete selected objects" Delete(Selected) a={"Delete" "<Key>Delete"}}
236    {"Convert selection to element" Select(Convert)}
237    -
238    {"Optimize selected rats" DeleteRats(SelectedRats) AddRats(SelectedRats)}
239    {"Auto-route selected rats" AutoRoute(SelectedRats) a={"Alt-R" "Alt<Key>r"}}
240    {"Rip up selected auto-routed tracks" RipUp(Selected)}
241    -
242    {"Change size of selected objects" foreground=grey50 sensitive=false}
243    {"Lines -10 mil" ChangeSize(SelectedLines,-10,mil) ChangeSize(SelectedArcs,-10,mil)}
244    {"Lines +10 mil" ChangeSize(SelectedLines,+10,mil) ChangeSize(SelectedArcs,+10,mil)}
245    {"Pads -10 mil" ChangeSize(SelectedPads,-10,mil)}
246    {"Pads +10 mil" ChangeSize(SelectedPads,+10,mil)}
247    {"Pins -10 mil" ChangeSize(SelectedPins,-10,mil)}
248    {"Pins +10 mil" ChangeSize(SelectedPins,+10,mil)}
249    {"Texts -10 mil" ChangeSize(SelectedTexts,-10,mil)}
250    {"Texts +10 mil" ChangeSize(SelectedTexts,+10,mil)}
251    {"Vias -10 mil" ChangeSize(SelectedVias,-10,mil)}
252    {"Vias +10 mil" ChangeSize(SelectedVias,+10,mil)}
253    -
254    {"Change drilling hole of selected objects" foreground=grey50 sensitive=false}
255    {"Vias -10 mil" ChangeDrillSize(SelectedVias,-10,mil)}
256    {"Vias +10 mil" ChangeDrillSize(SelectedVias,+10,mil)}
257    {"Pins -10 mil" ChangeDrillSize(SelectedPins,-10,mil)}
258    {"Pins +10 mil" ChangeDrillSize(SelectedPins,+10,mil)}
259    -
260    {"Change square-flag of selected objects" foreground=grey50 sensitive=false}
261    {"Elements" ChangeSquare(SelectedElements)}
262    {"Pins" ChangeSquare(SelectedPins)}
263   }
264     
265   {Buffer
266    {"Copy selection to buffer" GetXY(Click to set the snap point for this buffer)
267     PasteBuffer(Clear) PasteBuffer(AddSelected) Mode(PasteBuffer)}
268    {"Cut selection to buffer" GetXY(Click to set the snap point for this buffer)
269     PasteBuffer(Clear) PasteBuffer(AddSelected) RemoveSelected() Mode(PasteBuffer)}
270    {"Paste buffer to layout" Mode(PasteBuffer)}
271    -
272    {"Rotate buffer 90 deg CCW" Mode(PasteBuffer) PasteBuffer(Rotate,1)
273     a={"Shift-F7" "Shift<Key>F7"}}
274    {"Rotate buffer 90 deg CW" Mode(PasteBuffer) PasteBuffer(Rotate,3)}
275    {"Mirror buffer (up/down)" Mode(PasteBuffer) PasteBuffer(Mirror)}
276    {"Mirror buffer (left/right)" Mode(PasteBuffer) PasteBuffer(Rotate,1)
277     PasteBuffer(Mirror) PasteBuffer(Rotate,3)}
278    -
279    {"Clear buffer" PasteBuffer(Clear)}
280    {"Convert buffer to element" PasteBuffer(Convert)}
281    {"Break buffer elements to pieces" PasteBuffer(Restore)}
282    {"Save buffer elements to file" Save(PasteBuffer)}
283    -
284    {"Select current buffer" foreground=grey50 sensitive=false}
285    {"#1" checked=buffer,1 PasteBuffer(1) a={"Shift-1" "Shift<Key>1"}}
286    {"#2" checked=buffer,2 PasteBuffer(2) a={"Shift-2" "Shift<Key>2"}}
287    {"#3" checked=buffer,3 PasteBuffer(3) a={"Shift-3" "Shift<Key>3"}}
288    {"#4" checked=buffer,4 PasteBuffer(4) a={"Shift-4" "Shift<Key>4"}}
289    {"#5" checked=buffer,5 PasteBuffer(5) a={"Shift-5" "Shift<Key>5"}}
290   }
291     
292   {Connects
293    {"Lookup connection to object" GetXY(Click on the object) Connection(Find) a={"Ctrl-F" "Ctrl<Key>f"}}
294    {"Reset scanned pads/pins/vias" Connection(ResetPinsViasAndPads) Display(Redraw)}
295    {"Reset scanned lines/polygons" Connection(ResetLinesAndPolygons) Display(Redraw)}
296    {"Reset all connections" Connection(Reset) Display(Redraw) a={"Shift-F" "Shift<Key>f"}}
297    -
298    {"Optimize rats-nest" Atomic(Save) DeleteRats(AllRats)
299     Atomic(Restore) AddRats(AllRats) Atomic(Block) a={"O" "<Key>o"}}
300    {"Erase rats-nest" DeleteRats(AllRats) a={"E" "<Key>e"}}
301    {"Erase selected rats" DeleteRats(SelectedRats) a={"Shift-E" "Shift<Key>e"}}
302    -
303    {"Auto-route selected rats" AutoRoute(Selected)}
304    {"Auto-route all rats" AutoRoute(AllRats)}
305    {"Rip up all auto-routed tracks" RipUp(All)}
306    -
307    {"Auto-Optimize" djopt(auto)  a={"Shift-=" "Shift<Key>="}}
308    {"Debumpify" djopt(debumpify) }
309    {"Unjaggy" djopt(unjaggy) }
310    {"Vianudge" djopt(vianudge) }
311    {"Viatrim" djopt(viatrim) }
312    {"Orthopull" djopt(orthopull) }
313    {"SimpleOpts" djopt(simple)  a={"=" "<Key>="}}
314    {"Miter" djopt(miter) }
315    {"Puller" a={"Y" "<Key>y"} Puller() }
316    {"Global Puller"
317     {"Selected" GlobalPuller(selected) }
318     {"Found" GlobalPuller(found) }
319     {"All" GlobalPuller() }
320    }
321    {"Only autorouted nets" OptAutoOnly() checked=optautoonly}
322    -
323    {"Design Rule Checker" DRC()}
324    -
325    {"Apply vendor drill mapping" ApplyVendor()}
326   }
327     
328   {Info
329    {"Generate object report" ReportObject() a={"Ctrl-R" "Ctrl<Key>r"}}
330    {"Generate drill summary" Report(DrillReport)}
331    {"Report found pins/pads" Report(FoundPins)}
332    {"Report net length" Report(NetLength) a={"R" "<Key>r"}}
333    {"Key Bindings"
334     {"Remove" a={"Backspace" "<Key>BackSpace"}
335      Delete(Selected)
336     }
337     {"Remove Connected" a={"Shift-Backspace" "Shift<Key>BackSpace"}
338      Atomic(Save)
339      Connection(Reset)
340      Atomic(Restore)
341      Unselect(All)
342      Atomic(Restore)
343      Connection(Find)
344      Atomic(Restore)
345      Select(Connection)
346      Atomic(Restore)
347      RemoveSelected()
348      Atomic(Restore)
349      Connection(Reset)
350      Atomic(Restore)
351      Unselect(All)
352      Atomic(Block)
353     }
354     {"Remove Connected" a={"Shift-Delete" "Shift<Key>Delete"}
355      Atomic(Save)
356      Connection(Reset)
357      Atomic(Restore)
358      Unselect(All)
359      Atomic(Restore)
360      Connection(Find)
361      Atomic(Restore)
362      Select(Connection)
363      Atomic(Restore)
364      RemoveSelected()
365      Atomic(Restore)
366      Connection(Reset)
367      Atomic(Restore)
368      Unselect(All)
369      Atomic(Block)
370     }
371     {"Set Same" a={"A" "<Key>a"} SetSame()}
372     {"Flip Object" a={"B" "<Key>b"} Flip(Object)}
373     {"Find Connections" a={"F" "<Key>f"} Connection(Reset) Connection(Find)}
374     {"ToggleHideName Object" a={"H" "<Key>h"} ToggleHideName(Object)}
375     {"ToggleHideName SelectedElement" a={"Shift-H" "Shift<Key>h"} ToggleHideName(SelectedElements)}
376     {"ChangeHole Object" a={"Ctrl-H" "Ctrl<Key>h"} ChangeHole(Object)}
377     {"ChangeJoin Object" a={"J" "<Key>j"} ChangeJoin(Object)}
378     {"ChangeJoin SelectedObject" a={"Shift-J" "Shift<Key>j"} ChangeJoin(SelectedObjects)}
379     {"Clear Object +2 mil" a={"K" "<Key>k"} ChangeClearSize(Object,+2,mil)}
380     {"Clear Object -2 mil" a={"Shift-K" "Shift<Key>k"} ChangeClearSize(Object,-2,mil)}
381     {"Clear Selected +2 mil" a={"Ctrl-K" "Ctrl<Key>k"} ChangeClearSize(SelectedObjects,+2,mil)}
382     {"Clear Selected -2 mil" a={"Shift-Ctrl-K" "Shift Ctrl<Key>k"} ChangeClearSize(SelectedObjects,-2,mil)}
383     {"Line Tool size +5 mil" a={"L" "<Key>l"} SetValue(LineSize,+5,mil)}
384     {"Line Tool size -5 mil" a={"Shift-L" "Shift<Key>l"} SetValue(LineSize,-5,mil)}
385     {"MarkCrosshair" a={"Ctrl-M" "Ctrl<Key>m"} MarkCrosshair()}
386     {"Select shortest rat" a={"Shift-N" "Shift<Key>n"} AddRats(Close)}
387     {"AddRats to selected pins" a={"Shift-O" "Shift<Key>o"}
388      Atomic(Save)
389      DeleteRats(AllRats)
390      Atomic(Restore)
391      AddRats(SelectedRats)
392      Atomic(Block) }
393     {"ChangeOctagon Object" a={"Ctrl-O" "Ctrl<Key>o"} ChangeOctagon(Object)}
394     {"Polygon PreviousPoint" a={"P" "<Key>p"} Polygon(PreviousPoint)}
395     {"Polygon Close" a={"Shift-P" "Shift<Key>p"} Polygon(Close)}
396     {"ChangeSquare Object" a={"Q" "<Key>q"} ChangeSquare(Object)}
397     {"ChangeSize +5 mil" a={"S" "<Key>s"} ChangeSize(Object,+5,mil)}
398     {"ChangeSize -5 mil" a={"Shift-S" "Shift<Key>s"} ChangeSize(Object,-5,mil)}
399     {"ChangeDrill +5 mil" a={"Alt-S" "Alt<Key>s"} ChangeDrillSize(Object,+5,mil)}
400     {"ChangeDrill -5 mil" a={"Alt-Shift-S" "Alt Shift<Key>s"} ChangeDrillSize(Object,-5,mil)}
401     {"Text Tool scale +10 mil" a={"T" "<Key>t"} SetValue(TextScale,+10,mil)}
402     {"Text Tool scale -10 mil" a={"Shift-T" "Shift<Key>t"} SetValue(TextScale,-10,mil)}
403     {"Via Tool size +5 mil" a={"Shift-V" "Shift<Key>v"} SetValue(ViaSize,+5,mil)}
404     {"Via Tool size -5 mil" a={"Shift-Ctrl-V" "Shift Ctrl<Key>v"} SetValue(ViaSize,-5,mil)}
405     {"Via Tool drill +5 mil" a={"Alt-V" "Alt<Key>v"} SetValue(ViaDrillingHole,+5,mil)}
406     {"Via Tool drill -5 mil" a={"Alt-Shift-V" "Alt Shift<Key>v"} SetValue(ViaDrillingHole,-5,mil)}
407     {"AddRats Selected" a={"Shift-W" "Shift<Key>w"} AddRats(SelectedRats)}
408     {"Add All Rats" a={"W" "<Key>w"} AddRats(AllRats)}
409     {"Undo" a={"Alt-Z" "Alt<Key>z"} Undo()}
410     {"Cycle Clip" a={"/" "<Key>/"} Display(CycleClip)}
411     {"Arrow" a={"Space" "<Key>space"} Mode(Arrow) checked=arrowmode,1}
412     {"Temp Arrow ON" a={"[" "<Key>["} Mode(Save) Mode(Arrow) Mode(Notify)}
413     {"Temp Arrow OFF" a={"]" "<Key>]"} Mode(Release) Mode(Restore)}
415     {"Step Up" a={"Up" "<Key>Up"} Cursor(Warp,0,1,grid)}
416     {"Step Down" a={"Down" "<Key>Down"} Cursor(Warp,0,-1,grid)}
417     {"Step Left" a={"Left" "<Key>Left"} Cursor(Warp,-1,0,grid)}
418     {"Step Right" a={"Right" "<Key>Right"} Cursor(Warp,1,0,grid)}
419     {"Step +Up" a={"Up" "Shift<Key>Up"} Cursor(Pan,0,50,view)}
420     {"Step +Down" a={"Down" "Shift<Key>Down"} Cursor(Pan,0,-50,view)}
421     {"Step +Left" a={"Left" "Shift<Key>Left"} Cursor(Pan,-50,0,view)}
422     {"Step +Right" a={"Right" "Shift<Key>Right"} Cursor(Pan,50,0,view)}
423     {'"Click"' a={"Enter" "<Key>Enter"} Mode(Notify) Mode(Release) }
424    }
425   }
426   {Window
427    {"Board Layout" DoWindows(Layout)}
428    {"Library" DoWindows(Library)}
429    {"Message Log" DoWindows(Log)}
430    {"Netlist" DoWindows(Netlist)}
431    {"Pinout" Display(Pinout) a={"Shift-D" "Shift<Key>d"}}
432   }