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