#
# Cadence-compatibility bindings except where marked.
#
macro f  "view"	     ;# zoom to fit window
macro ^z "zoom 0.5"  ;# zoom in
macro Z  "zoom 2"    ;# zoom out
macro B  "popstack"  ;# up hierarchy
macro X  {pushstack [cellname list self]}	;# down hierarchy
macro x  "edit"		;# down hierarchy, edit-in-place
macro b  "select top cell ; edit"  ;# up hierarchy from edit-in-place
macro p  "tool wire; magic::trackwire %W pick"	;# path
macro ^r "redraw"
macro ^f "unexpand"
macro F  "expand"
macro ^a "select area"
macro ^d "select clear"
macro k  "magic::measure"
macro K  "magic::unmeasure"
macro i  "magic::promptload getcell"
macro l  "magic::update_texthelper ; wm deiconify .texthelper ; raise .texthelper"
macro O  "magic::clock"
macro <del> "magic::delete"

# Toolkit parameter dialog
macro q "magic::gencell {} ; raise .params"
#
# The following should be already implemented as existing Magic bindings
#
macro u "undo"
macro U "redo"
macro m "move"
macro c "copy"
#
# Compatibility with Electric;  Cadence bindings are on function keys and
# do not work through the VNC.
macro ^s "magic::promptsave magic"	;# save dialog menu

#
# Bertrand's bindings follow except where marked.
#
macro < sideways
macro ^ upsidedown
#
# Set grid at 1 micron
#
macro 0  "grid on ; grid 1l"	;# Grid at 0.5um (1 lambda)
# macro ^f "feedback clear"	;# conflicts with Cadence binding
#
# Paint/Erase macros 
#
macro 1 "paint m1"
macro ! "erase m1"
macro 2 "paint m2"
macro @ "erase m2"
macro 3 "paint m3"
macro # "erase m3"
#ifdef METAL4
macro 4 "paint mtp"
macro $ "erase mtp"
#endif
#ifdef METAL5
macro 4 "paint m4"
macro $ "erase m4"
macro 5 "paint mtp"
macro % "erase mtp"
#endif
#ifdef METAL6
macro 4 "paint m4"
macro $ "erase m4"
macro 5 "paint m5"
macro % "erase m5"
macro 6 "paint mtp"
macro ^ "erase mtp"
#endif

macro 7 "paint poly"
# macro & "erase poly"
# macro p "paint pdiff"
macro n "paint ndiff"
# macro l "erase labels"
macro P "erase pdiff"
macro N "erase ndiff"
macro y "drc check; drc why"
macro ? "select area; what"

macro / "expand toggle"
macro ^w "writeall force"
macro ^e "edit"
# macro ^x "quit"

macro z "findbox zoom"
# "f" conflicts with Cadence "full view", so use control-i to select cells.
# macro f "select cell"
macro ^i "select cell"

# Leave keypad bindings as-is, further down.  However, keypad
# keys generally don't translate through the VNC session, so
# use the following arrow key bindings:
#
#                         no shift  shift
# arrows only -> Pan       10%      100%
# with alt    -> Move      1 lambda 1 grid
# with ctrl   -> Stretch   1 lambda 1 grid
# 
# Pan 10 percent of the window size with arrows
# macro XK_Left  "scroll l .1 w"
# macro XK_Up    "scroll u .1 w"
# macro XK_Right "scroll r .1 w"
# macro XK_Down  "scroll d .1 w"

# Pan 100 percent of the window size with arrows
# macro Shift_XK_Left  "scroll l 1 w"
# macro Shift_XK_Up    "scroll u 1 w"
# macro Shift_XK_Right "scroll r 1 w"
# macro Shift_XK_Down  "scroll d 1 w"

# move 0.05um with arrows
# macro Alt_XK_Left          "move l 1l"
# macro Alt_XK_Right         "move r 1l"
# macro Alt_XK_Up            "move u 1l"
# macro Alt_XK_Down          "move d 1l"

# move 1 grid unit with arrows
# macro Alt_Shift_XK_Left  "move l 1g"
# macro Alt_Shift_XK_Right "move r 1g"
# macro Alt_Shift_XK_Up    "move u 1g"
# macro Alt_Shift_XK_Down  "move d 1g"

# stretch 0.05um with arrows
# macro Control_XK_Left          "stretch l 1l"
# macro Control_XK_Right         "stretch r 1l"
# macro Control_XK_Up            "stretch u 1l"
# macro Control_XK_Down          "stretch d 1l"

# stretch 1 grid unit with arrows
# macro Control_Shift_XK_Left  "stretch l 1g"
# macro Control_Shift_XK_Right "stretch r 1g"
# macro Control_Shift_XK_Up    "stretch u 1g"
# macro Control_Shift_XK_Down  "stretch d 1g"

# shift mouse wheel bindings for right-left shift
macro Shift_XK_Pointer_Button4 "scroll r .05 w"
macro Shift_XK_Pointer_Button5 "scroll l .05 w"

# control mouse wheel bindings for zoom in/out
macro Control_XK_Pointer_Button4 "zoom 0.70711"
macro Control_XK_Pointer_Button5 "zoom 1.41421"

# Bertrand's original arrow macros
# move 1 grid unit with arrows
macro XK_Left          "move l 1g"
macro XK_Right         "move r 1g"
macro XK_Up            "move u 1g"
macro XK_Down          "move d 1g"

# move 0.05um with arrows
macro Control_XK_Left  "move l 1l"
macro Control_XK_Right "move r 1l"
macro Control_XK_Up    "move u 1l"
macro Control_XK_Down  "move d 1l"

# stretch 1 grid unit with arrows
macro Shift_XK_Left          "stretch l 1g"
macro Shift_XK_Right         "stretch r 1g"
macro Shift_XK_Up            "stretch u 1g"
macro Shift_XK_Down          "stretch d 1g"

# stretch 0.05um with arrows
macro Control_Shift_XK_Left  "stretch l 1l"
macro Control_Shift_XK_Right "stretch r 1l"
macro Control_Shift_XK_Up    "stretch u 1l"
macro Control_Shift_XK_Down  "stretch d 1l"

# Restore pan function on Alt-key
# Pan 10 percent of the window size with arrows
macro Alt_XK_Left  "scroll l .1 w"
macro Alt_XK_Up    "scroll u .1 w"
macro Alt_XK_Right "scroll r .1 w"
macro Alt_XK_Down  "scroll d .1 w"

# Pan 100 percent of the window size with arrows
macro Alt_Shift_XK_Left  "scroll l 1 w"
macro Alt_Shift_XK_Up    "scroll u 1 w"
macro Alt_Shift_XK_Right "scroll r 1 w"
macro Alt_Shift_XK_Down  "scroll d 1 w"

