(no commit message)
[geda-pcb/pcjc2.git] / src / gpcb-menu.res.in
blob47bee40c06c84434064605e0298c41951f000bc1
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 found" Select(Found)}
237    {"Select all connected" Select(Connection)}
238    -
239    {"Unselect all" Unselect(All)}
240    {"Unselect all found" Unselect(Found)}
241    {"Unselect all connected" Unselect(Connection)}
242    -
243    {"Select by name"
244     {"All objects" Select(ObjectByName) active=have_regex}
245     {"Elements" Select(ElementByName) active=have_regex}
246     {"Pads" Select(PadByName) active=have_regex}
247     {"Pins" Select(PinByName) active=have_regex}
248     {"Text" Select(TextByName) active=have_regex}
249     {"Vias" Select(ViaByName) active=have_regex}
250    }
251    -
252    {"Auto-place selected elements" AutoPlaceSelected() a={"Ctrl-P" "Ctrl<Key>p"}}
253    {"Disperse all elements" DisperseElements(All)}
254    {"Disperse selected elements" DisperseElements(Selected)}
255    -
256    {"Move selected elements to other side" Flip(SelectedElements) a={"Shift-B" "Shift<Key>b"}}
257    {"Move selected to current layer" MoveToCurrentLayer(Selected) a={"Shift-M" "Shift<Key>m"}}
258    {"Remove selected objects" RemoveSelected() a={"Shift-Delete" "Shift<Key>Delete"}}
259    {"Convert selection to element" Select(Convert)}
260    -
261    {"Optimize selected rats" DeleteRats(SelectedRats) AddRats(SelectedRats)}
262    {"Auto-route selected rats" AutoRoute(SelectedRats) a={"Alt-R" "Alt<Key>r"}}
263    {"Rip up selected auto-routed tracks" RipUp(Selected)}
264    -
265    {"Change size of selected objects"
266     {"Lines -10 mil" ChangeSize(SelectedLines,-10,mil) ChangeSize(SelectedArcs,-10,mil)}
267     {"Lines +10 mil" ChangeSize(SelectedLines,+10,mil) ChangeSize(SelectedArcs,+10,mil)}
268     {"Pads -10 mil" ChangeSize(SelectedPads,-10,mil)}
269     {"Pads +10 mil" ChangeSize(SelectedPads,+10,mil)}
270     {"Pins -10 mil" ChangeSize(SelectedPins,-10,mil)}
271     {"Pins +10 mil" ChangeSize(SelectedPins,+10,mil)}
272     {"Texts -10 mil" ChangeSize(SelectedTexts,-10,mil)}
273     {"Texts +10 mil" ChangeSize(SelectedTexts,+10,mil)}
274     {"Vias -10 mil" ChangeSize(SelectedVias,-10,mil)}
275     {"Vias +10 mil" ChangeSize(SelectedVias,+10,mil)}
276    }
277    -
278    {"Change drilling hole of selected objects"
279     {"Vias -10 mil" ChangeDrillSize(SelectedVias,-10,mil)}
280     {"Vias +10 mil" ChangeDrillSize(SelectedVias,+10,mil)}
281     {"Pins -10 mil" ChangeDrillSize(SelectedPins,-10,mil)}
282     {"Pins +10 mil" ChangeDrillSize(SelectedPins,+10,mil)}
283    }
284    -
285    {"Change square-flag of selected objects"
286     {"Elements" ChangeSquare(SelectedElements)}
287     {"Pins" ChangeSquare(SelectedPins)}
288    }
289   }
292 # Buffer menu
294   {"Buffer" m=B
295    {"Cut to buffer" GetXY(Click to set the snap point for this buffer)
296     PasteBuffer(Clear) PasteBuffer(AddSelected) RemoveSelected() Mode(PasteBuffer)}
297    {"Paste buffer" Mode(PasteBuffer)}
298    -
299    {"Rotate buffer 90 deg CCW" Mode(PasteBuffer) PasteBuffer(Rotate,1)
300     a={"Shift-F7" "Shift<Key>F7"}}
301    {"Rotate buffer 90 deg CW" Mode(PasteBuffer) PasteBuffer(Rotate,3)}
302    {"Arbitrarily Rotate Buffer" Mode(PasteBuffer) FreeRotateBuffer()}
303    {"Mirror buffer (up/down)" Mode(PasteBuffer) PasteBuffer(Mirror)}
304    {"Mirror buffer (left/right)" Mode(PasteBuffer) PasteBuffer(Rotate,1)
305     PasteBuffer(Mirror) PasteBuffer(Rotate,3)}
306    -
307    {"Clear buffer" PasteBuffer(Clear)}
308    {"Convert buffer to element" PasteBuffer(Convert)}
309    {"Break buffer elements to pieces" PasteBuffer(Restore)}
310    {"Save buffer elements to file" Save(PasteBuffer)}
311    -
312    {"Select Buffer #1" checked=buffer,1 PasteBuffer(1) m=1 a={"Shift-1" "Shift<Key>1"}}
313    {"Select Buffer #2" checked=buffer,2 PasteBuffer(2) m=2 a={"Shift-2" "Shift<Key>2"}}
314    {"Select Buffer #3" checked=buffer,3 PasteBuffer(3) m=3 a={"Shift-3" "Shift<Key>3"}}
315    {"Select Buffer #4" checked=buffer,4 PasteBuffer(4) m=4 a={"Shift-4" "Shift<Key>4"}}
316    {"Select Buffer #5" checked=buffer,5 PasteBuffer(5) m=5 a={"Shift-5" "Shift<Key>5"}}
317   }
320 # Connects menu
322   {"Connects" m=C
323    {"Lookup connection" GetXY(Click on the object) Connection(Find) a={"Ctrl-F" "Ctrl<Key>f"}}
324    {"Reset scanned pads/pins/vias" Connection(ResetPinsViasAndPads) Display(Redraw)}
325    {"Reset scanned lines/polygons" Connection(ResetLinesAndPolygons) Display(Redraw)}
326    {"Reset all connections" Connection(Reset) Display(Redraw) a={"Shift-F" "Shift<Key>f"}}
327    -
328    {"Optimize rats nest" Atomic(Save) DeleteRats(AllRats)
329     Atomic(Restore) AddRats(AllRats) Atomic(Block) a={"O" "<Key>o"}}
330    {"Erase rats nest" DeleteRats(AllRats) a={"E" "<Key>e"}}
331    {"Erase selected rats" DeleteRats(SelectedRats) a={"Shift-E" "Shift<Key>e"}}
332    -
333    {"Auto-route selected rats" AutoRoute(Selected)}
334    {"Auto-route all rats" AutoRoute(AllRats)}
335    {"Rip up all auto-routed tracks" RipUp(All)}
336    -
337    {"Optimize routed tracks"
338     {"Auto-Optimize" djopt(auto)  a={"Shift-=" "Shift<Key>="}}
339     {"Debumpify" djopt(debumpify) }
340     {"Unjaggy" djopt(unjaggy) }
341     {"Vianudge" djopt(vianudge) }
342     {"Viatrim" djopt(viatrim) }
343     {"Ortho pull" djopt(orthopull) }
344     {"Simple optimization" djopt(simple)  a={"=" "<Key>="}}
345     {"Miter" djopt(miter) }
346     {"Puller" a={"Y" "<Key>y"} Puller() }
347     {"Global Puller"
348      {"Selected" GlobalPuller(selected) }
349      {"Found" GlobalPuller(found) }
350      {"All" GlobalPuller() }
351     }
352     -
353     {"Only autorouted nets" OptAutoOnly() checked=optautoonly}
354    }
355    -
356    {"Design Rule Checker" DRC()}
357    -
358    {"Apply vendor drill mapping" ApplyVendor()}
359   }
362 # Info Menu
364   {"Info" m=I
365    {"Generate object report" ReportObject() a={"Ctrl-R" "Ctrl<Key>r"}}
366    {"Generate drill summary" Report(DrillReport)}
367    {"Report found pins/pads" Report(FoundPins)}
368    {"Key Bindings"
369     {"Remove" a={"Delete" "<Key>Delete"}
370      Mode(Save)
371      Mode(Remove)
372      Mode(Notify)
373      Mode(Restore)
374     }
375     {"Remove Selected" a={"Backspace" "<Key>BackSpace"}
376      RemoveSelected()
377     }
378     {"Remove Connected" a={"Shift-Backspace" "Shift<Key>BackSpace"}
379      Atomic(Save)
380      Connection(Reset)
381      Atomic(Restore)
382      Unselect(All)
383      Atomic(Restore)
384      Connection(Find)
385      Atomic(Restore)
386      Select(Connection)
387      Atomic(Restore)
388      RemoveSelected()
389      Atomic(Restore)
390      Connection(Reset)
391      Atomic(Restore)
392      Unselect(All)
393      Atomic(Block)
394     }
395     {"Set Same" a={"A" "<Key>a"} SetSame()}
396     {"Flip Object" a={"B" "<Key>b"} Flip(Object)}
397     {"Find Connections" a={"F" "<Key>f"} Connection(Reset) Connection(Find)}
398     {"ToggleHideName Object" a={"H" "<Key>h"} ToggleHideName(Object)}
399     {"ToggleHideName SelectedElement" a={"Shift-H" "Shift<Key>h"} ToggleHideName(SelectedElements)}
400     {"ChangeHole Object" a={"Ctrl-H" "Ctrl<Key>h"} ChangeHole(Object)}
401     {"ChangeJoin Object" a={"J" "<Key>j"} ChangeJoin(Object)}
402     {"ChangeJoin SelectedObject" a={"Shift-J" "Shift<Key>j"} ChangeJoin(SelectedObjects)}
403     {"Clear Object +" a={"K" "<Key>k"} ChangeClearSize(Object,+)}
404     {"Clear Object -" a={"Shift-K" "Shift<Key>k"} ChangeClearSize(Object,-)}
405     {"Clear Selected +" a={"Ctrl-K" "Ctrl<Key>k"} ChangeClearSize(SelectedObjects,+)}
406     {"Clear Selected -" a={"Shift-Ctrl-K" "Shift Ctrl<Key>k"} ChangeClearSize(SelectedObjects,-)}
407     {"Line Tool size +" a={"L" "<Key>l"} SetValue(LineSize,+)}
408     {"Line Tool size -" a={"Shift-L" "Shift<Key>l"} SetValue(LineSize,-)}
409     {"Move Object to current layer" a={"M" "<Key>m"} MoveToCurrentLayer(Object)}
410     {"MarkCrosshair" a={"Ctrl-M" "Ctrl<Key>m"} MarkCrosshair()}
411     {"Select shortest rat" a={"Shift-N" "Shift<Key>n"} AddRats(Close)}
412     {"AddRats to selected pins" a={"Shift-O" "Shift<Key>o"}
413      Atomic(Save)
414      DeleteRats(AllRats)
415      Atomic(Restore)
416      AddRats(SelectedRats)
417      Atomic(Block) }
418     {"ChangeOctagon Object" a={"Ctrl-O" "Ctrl<Key>o"} ChangeOctagon(Object)}
419     {"Polygon PreviousPoint" a={"P" "<Key>p"} Polygon(PreviousPoint)}
420     {"Polygon Close" a={"Shift-P" "Shift<Key>p"} Polygon(Close)}
421     {"ChangeSquare Object" a={"Q" "<Key>q"} ChangeSquare(ToggleObject)}
422     {"ChangeSize +" a={"S" "<Key>s"} ChangeSize(Object,+)}
423     {"ChangeSize -" a={"Shift-S" "Shift<Key>s"} ChangeSize(Object,-)}
424     {"ChangeDrill +5 mil" a={"Alt-S" "Alt<Key>s"} ChangeDrillSize(Object,+5,mil)}
425     {"ChangeDrill -5 mil" a={"Alt-Shift-S" "Alt Shift<Key>s"} ChangeDrillSize(Object,-5,mil)}
426     {"Text Tool scale +10 mil" a={"T" "<Key>t"} SetValue(TextScale,+10,mil)}
427     {"Text Tool scale -10 mil" a={"Shift-T" "Shift<Key>t"} SetValue(TextScale,-10,mil)}
428     {"Via Tool size +5 mil" a={"Shift-V" "Shift<Key>v"} SetValue(ViaSize,+5,mil)}
429     {"Via Tool size -5 mil" a={"Shift-Ctrl-V" "Shift Ctrl<Key>v"} SetValue(ViaSize,-5,mil)}
430     {"Via Tool drill +5 mil" a={"Alt-V" "Alt<Key>v"} SetValue(ViaDrillingHole,+5,mil)}
431     {"Via Tool drill -5 mil" a={"Alt-Shift-V" "Alt Shift<Key>v"} SetValue(ViaDrillingHole,-5,mil)}
432     {"AddRats Selected" a={"Shift-W" "Shift<Key>w"} AddRats(SelectedRats)}
433     {"Add All Rats" a={"W" "<Key>w"} AddRats(AllRats)}
434     {"Cycle Clip" a={"/" "<Key>/"} Display(CycleClip)}
435     {"Arrow Mode" a={"Space" "<Key>space"} Mode(Arrow) checked=arrowmode,1}
436     {"Temp Arrow ON" a={"[" "<Key>["} Mode(Save) Mode(Arrow) Mode(Notify)}
437     {"Temp Arrow OFF" a={"]" "<Key>]"} Mode(Release) Mode(Restore)}
438     -
439     {"Step Up" a={"Up" "<Key>Up"} Cursor(Warp,0,1,grid)}
440     {"Step Down" a={"Down" "<Key>Down"} Cursor(Warp,0,-1,grid)}
441     {"Step Left" a={"Left" "<Key>Left"} Cursor(Warp,-1,0,grid)}
442     {"Step Right" a={"Right" "<Key>Right"} Cursor(Warp,1,0,grid)}
443     {"Step +Up" a={"Up" "Shift<Key>Up"} Cursor(Pan,0,50,view)}
444     {"Step +Down" a={"Down" "Shift<Key>Down"} Cursor(Pan,0,-50,view)}
445     {"Step +Left" a={"Left" "Shift<Key>Left"} Cursor(Pan,-50,0,view)}
446     {"Step +Right" a={"Right" "Shift<Key>Right"} Cursor(Pan,50,0,view)}
447     {'"Click"' a={"Enter" "<Key>Enter"} Mode(Notify) Mode(Release)}
448     -
449    }
450   }
453 # Window Menu
455   {"Window" m=W
456    {"Library" DoWindows(Library) a={"i" "<Key>i"}}
457    {"Message Log" DoWindows(Log)}
458    {"DRC Check" DoWindows(DRC)}
459    {"Netlist" DoWindows(Netlist)}
460    {"Command Entry" Command() a={":" "<Key>:"}}
461    {"Pinout" Display(Pinout) a={"Shift-D" "Shift<Key>d"}}
462    -
463    {"About..." About()}
464   }
467 PopupMenus =
468   {
469     Popup1 =
470     {
471       {"Operations on selections"
472        {"Unselect all objects" Unselect(All)}
473        {"Remove selected objects" RemoveSelected()}
474        {"Copy selection to buffer"
475         GetXY(Click to set the snap point for this buffer)
476         PasteBuffer(Clear)
477         PasteBuffer(AddSelected)
478         Mode(PasteBuffer)
479        }
480        {"Cut selection to buffer"
481         GetXY(Click to set the snap point for this buffer)
482         PasteBuffer(Clear)
483         PasteBuffer(AddSelected)
484         RemoveSelected()
485         Mode(PasteBuffer)
486        }
487        {"Convert selection to element" Select(Convert)}
488        {"Auto place selected elements" AutoPlaceSelected()}
489        {"Autoroute selected elements" AutoRoute(SelectedRats)}
490        {"Rip up selected auto-routed tracks" RipUp(Selected)}
491       }
492       {"Operations on this location"
493        {"Generate object report" GetXY(Click on the object) Report(Object)}
494       }
495       -
496       {"Undo last operation" Undo()}
497       {"Redo last undone operation" Redo()}
498       -
499       {Tools
500        {"None" checked=nomode,1 Mode(None)}
501        {"Via" checked=viamode,1 Mode(Via) a={"F1" "<Key>F1"}}
502        {"Line" checked=linemode,1 Mode(Line) a={"F2" "<Key>F2"}}
503        {"Arc" checked=arcmode,1 Mode(Arc) a={"F3" "<Key>F3"}}
504        {"Text" checked=textmode,1 Mode(Text) a={"F4" "<Key>F4"}}
505        {"Rectangle" checked=rectanglemode,1 Mode(Rectangle) a={"F5" "<Key>F5"}}
506        {"Polygon" checked=polygonmode,1 Mode(Polygon) a={"F6" "<Key>F6"}}
507        {"Polygon Hole" checked=polygonholemode,1 Mode(PolygonHole)}
508        {"Buffer" checked=pastebuffermode,1 Mode(PasteBuffer) a={"F7" "<Key>F7"}}
509        {"Remove" checked=removemode,1 Mode(Remove) a={"F8" "<Key>F8"}}
510        {"Rotate" checked=rotatemode,1 Mode(Rotate) a={"F9" "<Key>F9"}}
511        {"Thermal" checked=thermalmode,1 Mode(Thermal) a={"F10" "<Key>F10"}}
512        {"Arrow" checked=arrowmode,1 Mode(Arrow)  a={"F11" "<Key>F11"}}
513        {"Insert Point" checked=insertpointmode,1 Mode(InsertPoint) a={"Insert" "<Key>Insert"}}
514        {"Move" checked=movemode,1 Mode(Move)}
515        {"Copy" checked=copymode,1 Mode(Copy)}
516        {"Lock" checked=lockmode,1 Mode(Lock) a={"F12" "<Key>F12"}}
517        {"Cancel" Mode(Escape) a={"Esc" "<Key>Escape"}}
518       }
519     }
520   }