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