Index: trunk/src/pcb-menu-gtk.lht =================================================================== --- trunk/src/pcb-menu-gtk.lht (revision 1443) +++ trunk/src/pcb-menu-gtk.lht (revision 1444) @@ -9,7 +9,7 @@ li:right { li:press = { Pan(1) } li:release = { Pan(0) } - li:press-shift = { Popup(Popup1) } + li:press-shift = { Popup(popup1) } li:press-ctrl = { Display(CycleCrosshair) } } li:middle { @@ -311,7 +311,7 @@ ha:Pins = { action=ChangeSquare(SelectedPins) } } } - ha:Cycle object being dragged = { a=x; action=CycleDrag() } + ha:Cycle object being dragged = { a=x; action=CycleDrag() } } } # Select @@ -319,18 +319,18 @@ m=B li:submenu { ha:Cut selection to buffer = { li:action={GetXY(Click to set the snap point for this buffer); PasteBuffer(Clear); PasteBuffer(AddSelected); RemoveSelected(); Mode(PasteBuffer)} } - ha:Paste buffer to layout = { action=Mode(PasteBuffer) } + ha:Paste buffer to layout = { action=Mode(PasteBuffer) } - - ha:Rotate buffer 90 deg CCW = { a=ShiftF7; li:action={Mode(PasteBuffer); PasteBuffer(Rotate,1)} } - ha:Rotate buffer 90 deg CW = { li:action={Mode(PasteBuffer); PasteBuffer(Rotate,3)} } - ha:Arbitrarily Rotate Buffer = { li:action={Mode(PasteBuffer); FreeRotateBuffer()} } - ha:Mirror buffer (up/down) = { li:action={Mode(PasteBuffer); PasteBuffer(Mirror)} } + ha:Rotate buffer 90 deg CCW = { a=ShiftF7; li:action={Mode(PasteBuffer); PasteBuffer(Rotate,1)} } + ha:Rotate buffer 90 deg CW = { li:action={Mode(PasteBuffer); PasteBuffer(Rotate,3)} } + ha:Arbitrarily Rotate Buffer = { li:action={Mode(PasteBuffer); FreeRotateBuffer()} } + ha:Mirror buffer (up/down) = { li:action={Mode(PasteBuffer); PasteBuffer(Mirror)} } ha:Mirror buffer (left/right) = { li:action={Mode(PasteBuffer); PasteBuffer(Rotate,1); PasteBuffer(Mirror); PasteBuffer(Rotate,3)} } - - ha:Clear buffer = { action=PasteBuffer(Clear) } - ha:Convert buffer to element = { action=PasteBuffer(Convert) } + ha:Clear buffer = { action=PasteBuffer(Clear) } + ha:Convert buffer to element = { action=PasteBuffer(Convert) } ha:Break buffer elements to pieces = { action=PasteBuffer(Restore) } - ha:Save buffer elements to file = { action=Save(PasteBuffer) } + ha:Save buffer elements to file = { action=Save(PasteBuffer) } - ha:Select Buffer \#1 = { checked=buffer,1; m=1; a=Shift1; action=PasteBuffer(1) } ha:Select Buffer \#2 = { checked=buffer,2; m=2; a=Shift2; action=PasteBuffer(2) } @@ -358,20 +358,20 @@ - ha:Optimize routed tracks { li:submenu { - ha:Auto-Optimize = { a={Shift=}; action=djopt(auto) } - ha:Debumpify = { action=djopt(debumpify) } - ha:Unjaggy = { action=djopt(unjaggy) } - ha:Vianudge = { action=djopt(vianudge) } - ha:Viatrim = { action=djopt(viatrim) } - ha:Ortho pull = { action=djopt(orthopull) } - ha:Simple optimization = { a={=}; action=djopt(simple) } - ha:Miter = { action=djopt(miter) } - ha:Puller = { a=y; action=Puller() } + ha:Auto-Optimize = { a={Shift=}; action=djopt(auto) } + ha:Debumpify = { action=djopt(debumpify) } + ha:Unjaggy = { action=djopt(unjaggy) } + ha:Vianudge = { action=djopt(vianudge) } + ha:Viatrim = { action=djopt(viatrim) } + ha:Ortho pull = { action=djopt(orthopull) } + ha:Simple optimization = { a={=}; action=djopt(simple) } + ha:Miter = { action=djopt(miter) } + ha:Puller = { a=y; action=Puller() } ha:Global Puller { li:submenu { - ha:Selected = { action=GlobalPuller(selected) } - ha:Found = { action=GlobalPuller(found) } - ha:All = { action=GlobalPuller() } + ha:Selected = { action=GlobalPuller(selected) } + ha:Found = { action=GlobalPuller(found) } + ha:All = { action=GlobalPuller() } } } - @@ -385,8 +385,8 @@ - ha:Design changes (back annotation) { li:submenu { - ha:Swap nets on two selected pins = { a=Shiftx; action=net(swap) } - ha:Replace footprint = { a=Alt Shiftf; action=ReplaceFootprint() } + ha:Swap nets on two selected pins = { a=Shiftx; action=net(swap) } + ha:Replace footprint = { a=Alt Shiftf; action=ReplaceFootprint() } } } } @@ -399,5 +399,134 @@ } } # Plugins + ha:Info = { + m=I + li:submenu { + ha:Generate object report = { a=Ctrlr; action=ReportObject() } + ha:Generate drill summary = { action=Report(DrillReport) } + ha:Report found pins\/pads = { action=Report(FoundPins) } + ha:Key Bindings { + li:submenu { + ha:Remove = { a=Delete; li:action={Mode(Save); Mode(Remove); Mode(Notify); Mode(Restore)} } + ha:Remove Selected = { a=BackSpace; action=RemoveSelected() } + ha:Remove Connected = { a=ShiftBackSpace; li:action={Atomic(Save); Connection(Reset); Atomic(Restore); Unselect(All); Atomic(Restore); Connection(Find); Atomic(Restore); Select(Connection); Atomic(Restore); RemoveSelected(); Atomic(Restore); Connection(Reset); Atomic(Restore); Unselect(All); Atomic(Block)} } + ha:Remove Connected = { li:action={Atomic(Save); Connection(Reset); Atomic(Restore); Unselect(All); Atomic(Restore); Connection(Find); Atomic(Restore); Select(Connection); Atomic(Restore); RemoveSelected(); Atomic(Restore); Connection(Reset); Atomic(Restore); Unselect(All); Atomic(Block)} } + ha:Set Same = { a=a; action=SetSame() } + ha:Flip Object = { a=b; action=Flip(Object) } + ha:Find Connections = { a=f; li:action={Connection(Reset); Connection(Find)} } + ha:ToggleHideName Object = { a=h; action=ToggleHideName(Object) } + ha:ToggleHideName SelectedElement = { a=Shifth; action=ToggleHideName(SelectedElements) } + ha:ChangeHole Object = { a=Ctrlh; action=ChangeHole(Object) } + ha:ChangeJoin Object = { a=j; action=ChangeJoin(Object) } + ha:ChangeJoin SelectedObject = { a=Shiftj; action=ChangeJoin(SelectedObjects) } + ha:Clear Object +2 mil = { a=k; action=ChangeClearSize(Object,+2,mil) } + ha:Clear Object -2 mil = { a=Shiftk; action=ChangeClearSize(Object,-2,mil) } + ha:Clear Selected +2 mil = { a=Ctrlk; action=ChangeClearSize(SelectedObjects,+2,mil) } + ha:Clear Selected -2 mil = { a=Shift Ctrlk; action=ChangeClearSize(SelectedObjects,-2,mil) } + ha:Line Tool size +5 mil = { a=l; action=SetValue(LineSize,+5,mil) } + ha:Line Tool size -5 mil = { a=Shiftl; action=SetValue(LineSize,-5,mil) } + ha:Move Object to current layer = { a=m; action=MoveToCurrentLayer(Object) } + ha:MarkCrosshair = { a=Ctrlm; action=MarkCrosshair() } + ha:Select shortest rat = { a=Shiftn; action=AddRats(Close) } + ha:AddRats to selected pins = { a=Shifto; li:action={Atomic(Save); DeleteRats(AllRats); Atomic(Restore); AddRats(SelectedRats); Atomic(Block)} } + ha:ChangeOctagon Object = { a=Ctrlo; action=ChangeOctagon(Object) } + ha:Polygon PreviousPoint = { a=p; action=Polygon(PreviousPoint) } + ha:Polygon Close = { a=Shiftp; action=Polygon(Close) } + ha:ChangeSquare Object = { a=q; action=ChangeSquare(ToggleObject) } + ha:ChangeSizes to Route style = { a=Shifty; action=ChangeSizes(Object,style,mil) } + ha:ChangeSize +5 mil = { a=s; action=ChangeSize(Object,+5,mil) } + ha:ChangeSize -5 mil = { a=Shifts; action=ChangeSize(Object,-5,mil) } + ha:ChangeDrill +5 mil = { a=Alts; action=ChangeDrillSize(Object,+5,mil) } + ha:ChangeDrill -5 mil = { a=Alt Shifts; action=ChangeDrillSize(Object,-5,mil) } + ha:Text Tool scale +10 mil = { a=t; action=SetValue(TextScale,+10,mil) } + ha:Text Tool scale -10 mil = { a=Shiftt; action=SetValue(TextScale,-10,mil) } + ha:Via Tool size +5 mil = { a=Shiftv; action=SetValue(ViaSize,+5,mil) } + ha:Via Tool size -5 mil = { a=Shift Ctrlv; action=SetValue(ViaSize,-5,mil) } + ha:Via Tool drill +5 mil = { a=Altv; action=SetValue(ViaDrillingHole,+5,mil) } + ha:Via Tool drill -5 mil = { a=Alt Shiftv; action=SetValue(ViaDrillingHole,-5,mil) } + ha:AddRats Selected = { a=Shiftw; action=AddRats(SelectedRats) } + ha:Add All Rats = { a=w; action=AddRats(AllRats) } + ha:Cycle Clip = { a=/; action=Display(CycleClip) } + ha:Arrow Mode = { a=space; checked=arrowmode,1; action=Mode(Arrow) } + ha:Temp Arrow ON = { a=[; li:action={Mode(Save); Mode(Arrow); Mode(Notify)} } + ha:Temp Arrow OFF = { a=]; li:action={Mode(Release); Mode(Restore)} } + - + ha:Step Up = { a=Up; action=Cursor(Warp,0,1,grid) } + ha:Step Down = { a=Down; action=Cursor(Warp,0,-1,grid) } + ha:Step Left = { a=Left; action=Cursor(Warp,-1,0,grid) } + ha:Step Right = { a=Right; action=Cursor(Warp,1,0,grid) } + ha:Step +Up = { a=ShiftUp; action=Cursor(Pan,0,50,view) } + ha:Step +Down = { a=ShiftDown; action=Cursor(Pan,0,-50,view) } + ha:Step +Left = { a=ShiftLeft; action=Cursor(Pan,-50,0,view) } + ha:Step +Right = { a=ShiftRight; action=Cursor(Pan,50,0,view) } + ha:Click = { a=Enter; li:action={Mode(Notify); Mode(Release)} } + } + } + } + } # Info + + ha:Window { + m=W + li:submenu { + ha:Library = { a=i; action=DoWindows(Library) } + ha:Message Log = { action=DoWindows(Log) } + ha:DRC Check = { action=DoWindows(DRC) } + ha:Netlist = { action=DoWindows(Netlist) } + ha:Command Entry = { a=\:; action=Command() } + ha:Pinout = { a=Shiftd; action=Display(Pinout) } + - + ha:About... = { action=About() } + } + } # Window } # main menu + + li:popups { + ha:popup1 { + li:submenu { + ha:Operations on selections { + li:submenu { + ha:Unselect all objects = { action=Unselect(All) } + ha:Remove selected objects = { action=RemoveSelected() } + ha:Copy selection to buffer = { li:action={GetXY(Click to set the snap point for this buffer); PasteBuffer(Clear); PasteBuffer(AddSelected); Mode(PasteBuffer)} } + ha:Cut selection to buffer = { li:action={GetXY(Click to set the snap point for this buffer); PasteBuffer(Clear); PasteBuffer(AddSelected); RemoveSelected(); Mode(PasteBuffer)} } + ha:Convert selection to element = { action=Select(Convert) } + ha:Auto place selected elements = { action=AutoPlaceSelected() } + ha:Autoroute selected elements = { action=AutoRoute(SelectedRats) } + ha:Rip up selected auto-routed tracks = { action=RipUp(Selected) } + } + } + ha:Operations on this location { + li:submenu { + ha:Generate object report = { li:action={GetXY(Click on the object); Report(Object)} } + } + } + - + ha:Undo last operation = { action=Undo() } + ha:Redo last undone operation = { action=Redo() } + - + ha:Tools { + li:submenu { + ha:None = { checked=nomode,1; action=Mode(None) } + ha:Via = { checked=viamode,1; a=F1; action=Mode(Via) } + ha:Line = { checked=linemode,1; a=F2; action=Mode(Line) } + ha:Arc = { checked=arcmode,1; a=F3; action=Mode(Arc) } + ha:Text = { checked=textmode,1; a=F4; action=Mode(Text) } + ha:Rectangle = { checked=rectanglemode,1; a=F5; action=Mode(Rectangle) } + ha:Polygon = { checked=polygonmode,1; a=F6; action=Mode(Polygon) } + ha:Polygon Hole = { checked=polygonholemode,1; action=Mode(PolygonHole) } + ha:Buffer = { checked=pastebuffermode,1; a=F7; action=Mode(PasteBuffer) } + ha:Remove = { checked=removemode,1; a=F8; action=Mode(Remove) } + ha:Rotate = { checked=rotatemode,1; a=F9; action=Mode(Rotate) } + ha:Thermal = { checked=thermalmode,1; a=F10; action=Mode(Thermal) } + ha:Arrow = { checked=arrowmode,1; a=F11; action=Mode(Arrow) } + ha:Insert Point = { checked=insertpointmode,1; a=Insert; action=Mode(InsertPoint) } + ha:Move = { checked=movemode,1; action=Mode(Move) } + ha:Copy = { checked=copymode,1; action=Mode(Copy) } + ha:Lock = { checked=lockmode,1; a=F12; action=Mode(Lock) } + ha:Cancel = { a=Escape; action=Mode(Escape) } + } + } + } + } # popup1 + } # popups } # root