From 24f2af8c81c38e665a45a2378beaeb2cf390454a Mon Sep 17 00:00:00 2001 From: stefan schippers Date: Sun, 6 Apr 2025 12:58:13 +0200 Subject: [PATCH] update keybinding documentation; add `/` command to show fullscreen image of keybindings also in Help menu) --- doc/xschem_man/commands.html | 6 +- src/callback.c | 15 ++- src/draw.c | 117 +++++++++--------- src/keys.help | 5 +- src/xinit.c | 4 +- src/xschem.tcl | 35 ++++-- .../devices/bindkeys_cheatsheet.sym | 85 ++++++++----- 7 files changed, 159 insertions(+), 108 deletions(-) diff --git a/doc/xschem_man/commands.html b/doc/xschem_man/commands.html index 8a1f55ac..1c79e308 100644 --- a/doc/xschem_man/commands.html +++ b/doc/xschem_man/commands.html @@ -57,7 +57,6 @@ p{padding: 15px 30px 10px;} This list is available in XSCHEM in the Help menu

-
                         XSCHEM MOUSE BINDINGS
 ----------------------------------------------------------------------
 LeftButton              Clear selection and select a graphic object 
@@ -129,9 +128,13 @@ ctrl       Enter        Confirm closing dialog boxes
 -          Up           Move up
 ctrl       Left         Previous tab (if tabbed interface enabled) 
 ctrl       Right        Next tab (if tabbed interface enabled)
+-           ':'         Toggle flat netlist
 -           '\'         Toggle fullscreen
 -           '!'         Break selected wires at any wire or component pin
                         connection
+shift       '<'         Show all layers
+shift       '>'         Show only current set layer
+-           '/'         Show fullscreen image of bindkeys
 -           ' '         Pan schematic
 -           ' '         When drawing lines or wires toggle between 
                         manhattan H-V, manhattan V-H or oblique path.
@@ -264,7 +267,6 @@ ctrl        '+'         Test mode: change line width
 ctrl        '='         Toggle fill rectangles
 -           '$'         Toggle pixmap  saving
 ctrl        '$'         Toggle use XCopyArea vs drawing primitives for drawing the screen
--           ':'         Toggle flat netlist
  

KEYBIND CUSTOMIZATION

diff --git a/src/callback.c b/src/callback.c index 54f424c2..25f5f2d9 100644 --- a/src/callback.c +++ b/src/callback.c @@ -3255,7 +3255,7 @@ static void handle_key_press(int event, KeySym key, int state, int rstate, int m } else if(rstate == ControlMask) { /* clear schematic */ if(xctx->semaphore >= 2) break; - tcleval("xschem clear SCHEMATIC"); + tcleval("xschem clear schematic"); } break; @@ -3300,7 +3300,7 @@ static void handle_key_press(int event, KeySym key, int state, int rstate, int m } else if(rstate == ControlMask ) { /* clear symbol */ if(xctx->semaphore >= 2) break; - tcleval("xschem clear SYMBOL"); + tcleval("xschem clear symbol"); } break; @@ -4045,15 +4045,24 @@ static void handle_key_press(int event, KeySym key, int state, int rstate, int m case '>': if(xctx->semaphore >= 2) break; if(xctx->draw_single_layer< cadlayers-1) xctx->draw_single_layer++; + xctx->draw_single_layer = xctx->rectcolor; draw(); break; case '<': if(xctx->semaphore >= 2) break; - if(xctx->draw_single_layer>=0 ) xctx->draw_single_layer--; + xctx->draw_single_layer = -1; draw(); break; + case '?': + if(xctx->semaphore >= 2) break; + tcleval("textwindow \"${XSCHEM_SHAREDIR}/xschem.help\""); + break; + case XK_slash: + if(xctx->semaphore >= 2) break; + tcleval("show_bindkeys"); + break; /* toggle flat netlist (only spice) */ case ':': if(!tclgetboolvar("flat_netlist")) { diff --git a/src/draw.c b/src/draw.c index a91b821b..58671b90 100644 --- a/src/draw.c +++ b/src/draw.c @@ -676,9 +676,10 @@ void draw_symbol(int what,int c, int n,int layer,short tmp_flip, short rot, draw_texts: - if(xctx->inst[n].flags & PIN_OR_LABEL) c_for_text = TEXTWIRELAYER; - if(xctx->sym_txt && !(xctx->inst[n].flags & PIN_OR_LABEL)) c_for_text = TEXTLAYER; if( !(xctx->inst[n].flags & HIDE_SYMBOL_TEXTS) && (layer == cadlayers - 1)) { + if(xctx->inst[n].flags & PIN_OR_LABEL) c_for_text = TEXTWIRELAYER; + if(xctx->sym_txt && !(xctx->inst[n].flags & PIN_OR_LABEL)) c_for_text = TEXTLAYER; + if(c != layer) c_for_text = c; for(j=0;j< symptr->texts; ++j) { double xscale, yscale; @@ -702,6 +703,7 @@ void draw_symbol(int what,int c, int n,int layer,short tmp_flip, short rot, } } if(textlayer < 0 || textlayer >= cadlayers) textlayer = c_for_text; + if(xctx->draw_single_layer != -1 && textlayer != xctx->draw_single_layer) continue; /* display PINLAYER colored instance texts even if PINLAYER disabled */ if(xctx->inst[n].color == -PINLAYER || xctx->enable_layer[textlayer]) { char *txtptr = NULL; @@ -4983,14 +4985,14 @@ void draw(void) } dbg(3, "draw(): check4\n"); for(c=0;cdraw_single_layer!=-1 && c != xctx->draw_single_layer) continue; + int draw_layer = (xctx->draw_single_layer == -1 || c == xctx->draw_single_layer); cc = c; if(xctx->only_probes) cc = GRIDLAYER; - if(xctx->enable_layer[c]) for(i=0;ilines[c]; ++i) { + if(draw_layer && xctx->enable_layer[c]) for(i=0;ilines[c]; ++i) { xLine *l = &xctx->line[c][i]; if(l->bus) drawline(cc, THICK, l->x1, l->y1, l->x2, l->y2, l->dash, NULL); else drawline(cc, ADD, l->x1, l->y1, l->x2, l->y2, l->dash, NULL); } - if(xctx->enable_layer[c]) for(i=0;irects[c]; ++i) { + if(draw_layer && xctx->enable_layer[c]) for(i=0;irects[c]; ++i) { xRect *r = &xctx->rect[c][i]; #if HAS_CAIRO==1 if(c != GRIDLAYER || !(r->flags & (1 + 1024))) @@ -5002,12 +5004,12 @@ void draw(void) if(r->fill) filledrect(cc, ADD, r->x1, r->y1, r->x2, r->y2, r->fill, r->ellipse_a, r->ellipse_b); } } - if(xctx->enable_layer[c]) for(i=0;iarcs[c]; ++i) { + if(draw_layer && xctx->enable_layer[c]) for(i=0;iarcs[c]; ++i) { xArc **arc = xctx->arc; drawarc(cc, ADD, arc[c][i].x, arc[c][i].y, arc[c][i].r, arc[c][i].a, arc[c][i].b, arc[c][i].fill, arc[c][i].dash); } - if(xctx->enable_layer[c]) for(i=0;ipolygons[c]; ++i) { + if(draw_layer && xctx->enable_layer[c]) for(i=0;ipolygons[c]; ++i) { int bezier; xPoly *p = &xctx->poly[c][i]; bezier = 2 + !strboolcmp(get_tok_value(p->prop_ptr, "bezier", 0), "true"); @@ -5034,7 +5036,9 @@ void draw(void) symptr->polygons[c] || ((c==cadlayers - 1) && symptr->texts) ) { - draw_symbol(ADD, cc, i,c, 0, 0, 0.0, 0.0); /* ... then draw current layer */ + if(c == 0 || c == cadlayers - 1 || draw_layer) { + draw_symbol(ADD, cc, i,c, 0, 0, 0.0, 0.0); /* ... then draw current layer */ + } } } filledrect(cc, END, 0.0, 0.0, 0.0, 0.0, 2, -1, -1); /* fill parameter must be 2! */ @@ -5067,56 +5071,55 @@ void draw(void) filledrect(cc, END, 0.0, 0.0, 0.0, 0.0, 2, -1, -1); /* fill parameter must be 2! */ drawline(cc, END, 0.0, 0.0, 0.0, 0.0, 0, NULL); } - if(xctx->draw_single_layer ==-1 || xctx->draw_single_layer==TEXTLAYER) { - for(i=0;itexts; ++i) - { - const char *txt_ptr; - textlayer = xctx->text[i].layer; - if(!xctx->show_hidden_texts && (xctx->text[i].flags & HIDE_TEXT)) continue; - if(xctx->only_probes) textlayer = GRIDLAYER; - else if(textlayer < 0 || textlayer >= cadlayers) textlayer = TEXTLAYER; - #if HAS_CAIRO==1 - if(!xctx->enable_layer[textlayer]) continue; - textfont = xctx->text[i].font; - if( (textfont && textfont[0]) || - (xctx->text[i].flags & (TEXT_BOLD | TEXT_OBLIQUE | TEXT_ITALIC))) { - cairo_font_slant_t slant; - cairo_font_weight_t weight; - textfont = (xctx->text[i].font && xctx->text[i].font[0]) ? - xctx->text[i].font : tclgetvar("cairo_font_name"); - weight = ( xctx->text[i].flags & TEXT_BOLD) ? CAIRO_FONT_WEIGHT_BOLD : CAIRO_FONT_WEIGHT_NORMAL; - slant = CAIRO_FONT_SLANT_NORMAL; - if(xctx->text[i].flags & TEXT_ITALIC) slant = CAIRO_FONT_SLANT_ITALIC; - if(xctx->text[i].flags & TEXT_OBLIQUE) slant = CAIRO_FONT_SLANT_OBLIQUE; + for(i=0;itexts; ++i) + { + const char *txt_ptr; + textlayer = xctx->text[i].layer; + if(!xctx->show_hidden_texts && (xctx->text[i].flags & HIDE_TEXT)) continue; + if(xctx->only_probes) textlayer = GRIDLAYER; + else if(textlayer < 0 || textlayer >= cadlayers) textlayer = TEXTLAYER; + #if HAS_CAIRO==1 + if(!xctx->enable_layer[textlayer]) continue; + if(xctx->draw_single_layer != -1 && xctx->draw_single_layer != textlayer) continue; + textfont = xctx->text[i].font; + if( (textfont && textfont[0]) || + (xctx->text[i].flags & (TEXT_BOLD | TEXT_OBLIQUE | TEXT_ITALIC))) { + cairo_font_slant_t slant; + cairo_font_weight_t weight; + textfont = (xctx->text[i].font && xctx->text[i].font[0]) ? + xctx->text[i].font : tclgetvar("cairo_font_name"); + weight = ( xctx->text[i].flags & TEXT_BOLD) ? CAIRO_FONT_WEIGHT_BOLD : CAIRO_FONT_WEIGHT_NORMAL; + slant = CAIRO_FONT_SLANT_NORMAL; + if(xctx->text[i].flags & TEXT_ITALIC) slant = CAIRO_FONT_SLANT_ITALIC; + if(xctx->text[i].flags & TEXT_OBLIQUE) slant = CAIRO_FONT_SLANT_OBLIQUE; - cairo_save(xctx->cairo_ctx); - cairo_save(xctx->cairo_save_ctx); - xctx->cairo_font = - cairo_toy_font_face_create(textfont, slant, weight); - cairo_set_font_face(xctx->cairo_ctx, xctx->cairo_font); - cairo_set_font_face(xctx->cairo_save_ctx, xctx->cairo_font); - cairo_font_face_destroy(xctx->cairo_font); - } - #endif - txt_ptr = get_text_floater(i); - dbg(1, "draw(): drawing string %d = %s\n",i, txt_ptr); - draw_string(textlayer, ADD, txt_ptr, - xctx->text[i].rot, xctx->text[i].flip, xctx->text[i].hcenter, xctx->text[i].vcenter, - xctx->text[i].x0,xctx->text[i].y0, - xctx->text[i].xscale, xctx->text[i].yscale); - #if HAS_CAIRO==1 - if( (textfont && textfont[0]) || - (xctx->text[i].flags & (TEXT_BOLD | TEXT_OBLIQUE | TEXT_ITALIC))) { - cairo_restore(xctx->cairo_ctx); - cairo_restore(xctx->cairo_save_ctx); - } - #endif - #if HAS_CAIRO!=1 - drawrect(textlayer, END, 0.0, 0.0, 0.0, 0.0, 0, -1, -1); - drawline(textlayer, END, 0.0, 0.0, 0.0, 0.0, 0, NULL); - #endif - } /* for(i=0;itexts; ++i) */ - } /* if(xctx->draw_single_layer ==-1 || xctx->draw_single_layer==TEXTLAYER) */ + cairo_save(xctx->cairo_ctx); + cairo_save(xctx->cairo_save_ctx); + xctx->cairo_font = + cairo_toy_font_face_create(textfont, slant, weight); + cairo_set_font_face(xctx->cairo_ctx, xctx->cairo_font); + cairo_set_font_face(xctx->cairo_save_ctx, xctx->cairo_font); + cairo_font_face_destroy(xctx->cairo_font); + } + #endif + txt_ptr = get_text_floater(i); + dbg(1, "draw(): drawing string %d = %s\n",i, txt_ptr); + draw_string(textlayer, ADD, txt_ptr, + xctx->text[i].rot, xctx->text[i].flip, xctx->text[i].hcenter, xctx->text[i].vcenter, + xctx->text[i].x0,xctx->text[i].y0, + xctx->text[i].xscale, xctx->text[i].yscale); + #if HAS_CAIRO==1 + if( (textfont && textfont[0]) || + (xctx->text[i].flags & (TEXT_BOLD | TEXT_OBLIQUE | TEXT_ITALIC))) { + cairo_restore(xctx->cairo_ctx); + cairo_restore(xctx->cairo_save_ctx); + } + #endif + #if HAS_CAIRO!=1 + drawrect(textlayer, END, 0.0, 0.0, 0.0, 0.0, 0, -1, -1); + drawline(textlayer, END, 0.0, 0.0, 0.0, 0.0, 0, NULL); + #endif + } /* for(i=0;itexts; ++i) */ if(xctx->only_probes) build_colors(1.0, 0); if(xctx->only_probes) { xctx->save_lw = xctx->lw; diff --git a/src/keys.help b/src/keys.help index 0a34e615..58d48e98 100644 --- a/src/keys.help +++ b/src/keys.help @@ -69,9 +69,13 @@ ctrl Enter Confirm closing dialog boxes - Up Move up ctrl Left Previous tab (if tabbed interface enabled) ctrl Right Next tab (if tabbed interface enabled) +- ':' Toggle flat netlist - '\' Toggle fullscreen - '!' Break selected wires at any wire or component pin connection +shift '<' Show all layers +shift '>' Show only current set layer +- '/' Show fullscreen image of bindkeys - ' ' Pan schematic - ' ' When drawing lines or wires toggle between manhattan H-V, manhattan V-H or oblique path. @@ -204,4 +208,3 @@ ctrl '+' Test mode: change line width ctrl '=' Toggle fill rectangles - '$' Toggle pixmap saving ctrl '$' Toggle use XCopyArea vs drawing primitives for drawing the screen -- ':' Toggle flat netlist diff --git a/src/xinit.c b/src/xinit.c index 7cdf1b3f..4498d0ae 100644 --- a/src/xinit.c +++ b/src/xinit.c @@ -1242,7 +1242,7 @@ int preview_window(const char *what, const char *win_path, const char *fname) } } else if(!strcmp(what, "draw") ) { - int i; + int i, save_grid = tclgetboolvar("draw_grid"); for(i = 0; i < 10; i++) { if(Tk_NameToWindow(interp, win_path, mainwindow) == tkpre_window[i] && tkpre_window[i]) break; } @@ -1269,7 +1269,9 @@ int preview_window(const char *what, const char *win_path, const char *fname) } else { if(xctx) resetwin(1, 1, 0, 0, 0); /* resetwin(create_pixmap, clear_pixmap, force) */ } + Tcl_SetVar(interp, "draw_grid", "0", TCL_GLOBAL_ONLY); zoom_full(1, 0, 1 + 2 * tclgetboolvar("zoom_full_center"), 0.97); /* draw */ + Tcl_SetVar(interp, "draw_grid", save_grid ? "1" : "0", TCL_GLOBAL_ONLY); xctx = save_xctx; result = 1; } diff --git a/src/xschem.tcl b/src/xschem.tcl index ab490100..8761f00d 100644 --- a/src/xschem.tcl +++ b/src/xschem.tcl @@ -8530,6 +8530,28 @@ proc switch_window {parent topwin event window} { } } } +proc show_bindkeys {} { + global dark_colorscheme dim_value dim_bg + if {[winfo exists .bk]} {return} + toplevel .bk -bg {} + wm attributes .bk -fullscreen 1 + + set save $dark_colorscheme + set dark_colorscheme 0 + set dim_value 0.0 + set dim_bg 0.0 + xschem build_colors + + xschem preview_window create .bk + xschem preview_window draw .bk [abs_sym_path bindkeys_cheatsheet.sym] + + set dark_colorscheme $save + xschem build_colors + + bind .bk {xschem preview_window destroy .bk } + bind .bk {xschem preview_window destroy .bk } + bind .bk {xschem preview_window draw .bk } +} proc set_bindings {topwin} { global env has_x OS autofocus_mainwindow @@ -8584,17 +8606,6 @@ global env has_x OS autofocus_mainwindow bind $topwin "xschem callback %W %T %x %y 0 %b 0 %s" #### test: show keybindings - # bind $topwin " - # if {!\[info exists bindkeys\]} { - # set bindkeys 1 - # xschem preview_window create $topwin - # xschem preview_window draw $topwin [abs_sym_path bindkeys_cheatsheet.sym] - # } else { - # unset bindkeys - # xschem preview_window $topwin close - # xschem redraw - # } - # " bind $topwin " if {{%K} eq {Escape}} { destroy .ctxmenu } xschem callback %W %T %x %y %N 0 0 %s" @@ -8618,7 +8629,6 @@ global env has_x OS autofocus_mainwindow " } bind $topwin " wm withdraw .infotext; set show_infowindow 0 " - bind $topwin "?" {textwindow "${XSCHEM_SHAREDIR}/xschem.help"} # on Windows Alt key mask is reported as 131072 (1<<17) so build masks manually with values passed from C code if {$OS == "Windows" } { @@ -8811,6 +8821,7 @@ proc build_widgets { {topwin {} } } { $topwin.menubar.help add command -label "Help" -command "textwindow \"${XSCHEM_SHAREDIR}/xschem.help\" ro" \ -accelerator {?} $topwin.menubar.help add command -label "Keys" -command "textwindow \"${XSCHEM_SHAREDIR}/keys.help\" ro" + $topwin.menubar.help add command -label "Show Keybindings" -command "show_bindkeys" $topwin.menubar.help add command -label "About XSCHEM" -command "about" $topwin.menubar.file add command -label "Clear Schematic" -accelerator Ctrl+N\ diff --git a/xschem_library/devices/bindkeys_cheatsheet.sym b/xschem_library/devices/bindkeys_cheatsheet.sym index 47ae27b2..d74845a5 100644 --- a/xschem_library/devices/bindkeys_cheatsheet.sym +++ b/xschem_library/devices/bindkeys_cheatsheet.sym @@ -109,8 +109,7 @@ T {F11} 882.5 -477.5 0 0 0.4 0.4 {lock=0} T {F12} 962.5 -477.5 0 0 0.4 0.4 {lock=0} T {Ins} 1042.5 -477.5 0 0 0.4 0.4 {lock=0} T {Del} 1122.5 -477.5 0 0 0.4 0.4 {lock=0} -T {~ -\\} 2.5 -397.5 0 0 0.4 0.4 {lock=0} +T {`} 2.5 -397.5 0 0 0.4 0.4 {lock=0} T {Q} 122.5 -317.5 0 0 0.4 0.4 {lock=0} T {W} 202.5 -317.5 0 0 0.4 0.4 {lock=0} T {E} 282.5 -317.5 0 0 0.4 0.4 {lock=0} @@ -120,12 +119,9 @@ T {U} 602.5 -317.5 0 0 0.4 0.4 {lock=0} T {I} 682.5 -317.5 0 0 0.4 0.4 {lock=0} T {O} 762.5 -317.5 0 0 0.4 0.4 {lock=0} T {P} 842.5 -317.5 0 0 0.4 0.4 {lock=0} -T {\{ -[} 922.5 -317.5 0 0 0.4 0.4 {lock=0} -T {\} -]} 1002.5 -317.5 0 0 0.4 0.4 {lock=0} -T {| -\\} 1082.5 -317.5 0 0 0.4 0.4 {lock=0} +T {\{} 922.5 -317.5 0 0 0.4 0.4 {lock=0} +T {\}} 1002.5 -317.5 0 0 0.4 0.4 {lock=0} +T {\\} 1082.5 -317.5 0 0 0.4 0.4 {lock=0} T {Tab} 2.5 -317.5 0 0 0.4 0.4 {lock=0} T {Caps Lock} 2.5 -237.5 0 0 0.4 0.4 {lock=0} T {A} 162.5 -237.5 0 0 0.4 0.4 {lock=0} @@ -137,10 +133,8 @@ T {H} 562.5 -237.5 0 0 0.4 0.4 {lock=0} T {J} 642.5 -237.5 0 0 0.4 0.4 {lock=0} T {K} 722.5 -237.5 0 0 0.4 0.4 {lock=0} T {L} 802.5 -237.5 0 0 0.4 0.4 {lock=0} -T {: -;} 882.5 -237.5 0 0 0.4 0.4 {lock=0} -T {" -'} 962.5 -237.5 0 0 0.4 0.4 {lock=0} +T {;} 882.5 -237.5 0 0 0.4 0.4 {lock=0} +T {'} 962.5 -237.5 0 0 0.4 0.4 {lock=0} T {Enter} 1042.5 -237.5 0 0 0.4 0.4 {lock=0} T {Shift} 2.5 -157.5 0 0 0.4 0.4 {layer=12 lock=0} @@ -151,12 +145,9 @@ T {V} 442.5 -157.5 0 0 0.4 0.4 {lock=0} T {B} 522.5 -157.5 0 0 0.4 0.4 {lock=0} T {N} 602.5 -157.5 0 0 0.4 0.4 {lock=0} T {M} 682.5 -157.5 0 0 0.4 0.4 {lock=0} -T {< -,} 762.5 -157.5 0 0 0.4 0.4 {lock=0} -T {> -.} 842.5 -157.5 0 0 0.4 0.4 {lock=0} -T {? -/} 922.5 -157.5 0 0 0.4 0.4 {lock=0} +T {,} 762.5 -157.5 0 0 0.4 0.4 {lock=0} +T {.} 842.5 -157.5 0 0 0.4 0.4 {lock=0} +T {/} 922.5 -157.5 0 0 0.4 0.4 {lock=0} T {Shift} 1002.5 -157.5 0 0 0.4 0.4 {layer=12 lock=0} T {Ctrl} 2.5 -77.5 0 0 0.4 0.4 {layer=4 @@ -181,10 +172,8 @@ T {7} 562.5 -397.5 0 0 0.4 0.4 {lock=0} T {8} 642.5 -397.5 0 0 0.4 0.4 {lock=0} T {9} 722.5 -397.5 0 0 0.4 0.4 {lock=0} T {0} 802.5 -397.5 0 0 0.4 0.4 {lock=0} -T {_ --} 882.5 -397.5 0 0 0.4 0.4 {lock=0} -T {+ -=} 962.5 -397.5 0 0 0.4 0.4 {lock=0} +T {-} 882.5 -397.5 0 0 0.4 0.4 {lock=0} +T {=} 962.5 -397.5 0 0 0.4 0.4 {lock=0} T {Backspace} 1042.5 -397.5 0 0 0.4 0.4 {lock=0} T {Abort oper.} 2.5 -415 0 0 0.18 0.18 {} T {Select all} 162.5 -195 0 0 0.18 0.18 {layer=4} @@ -348,7 +337,7 @@ T {Set layer 1} 82.5 -355 0 0 0.18 0.18 {layer=4} T {Break wires} 82.5 -343.75 0 0 0.18 0.18 {layer=12} T {Set logic to 1} 82.5 -332.5 0 0 0.18 0.18 {} T {-} 82.5 -366.25 0 0 0.18 0.18 {layer=7} -T {-} 82.5 -377.5 0 0 0.18 0.18 {layer=6} +T {Brk & rm wires} 82.5 -377.5 0 0 0.18 0.18 {layer=6} T {Set layer 2} 162.5 -355 0 0 0.18 0.18 {layer=4} T {-} 162.5 -343.75 0 0 0.18 0.18 {layer=12} T {Set logic to X} 162.5 -332.5 0 0 0.18 0.18 {} @@ -384,11 +373,11 @@ T {-} 722.5 -343.75 0 0 0.18 0.18 {layer=12} T {-} 722.5 -332.5 0 0 0.18 0.18 {} T {-} 722.5 -366.25 0 0 0.18 0.18 {layer=7} T {-} 722.5 -377.5 0 0 0.18 0.18 {layer=6} -T {-} 1102.5 -275 0 0 0.18 0.18 {layer=4} -T {Reserved} 1102.5 -263.75 0 0 0.18 0.18 {layer=12} -T {Toggle fullscreen} 1102.5 -252.5 0 0 0.18 0.18 {} -T {-} 1102.5 -286.25 0 0 0.18 0.18 {layer=7} -T {-} 1102.5 -297.5 0 0 0.18 0.18 {layer=6} +T {-} 1082.5 -275 0 0 0.18 0.18 {layer=4} +T {Reserved} 1082.5 -263.75 0 0 0.18 0.18 {layer=12} +T {Toggle fullscreen} 1082.5 -252.5 0 0 0.18 0.18 {} +T {-} 1082.5 -286.25 0 0 0.18 0.18 {layer=7} +T {-} 1082.5 -297.5 0 0 0.18 0.18 {layer=6} T {-} 412.5 -35 0 0 0.18 0.18 {layer=4} T {-} 412.5 -23.75 0 0 0.18 0.18 {layer=12} T {Toggle manhattan drawing / pan schematic} 412.5 -12.5 0 0 0.18 0.18 {} @@ -405,12 +394,12 @@ T {Del selection} 1122.5 -412.5 0 0 0.18 0.18 {} T {-} 1122.5 -446.25 0 0 0.18 0.18 {layer=7} T {-} 1122.5 -457.5 0 0 0.18 0.18 {layer=6} T {Help} 922.5 -103.75 0 0 0.18 0.18 {layer=12} -T {-} 922.5 -92.5 0 0 0.18 0.18 {} +T {Show bindkeys} 922.5 -92.5 0 0 0.18 0.18 {} T {Flat netlist} 882.5 -183.75 0 0 0.18 0.18 {layer=12} T {Reserved} 882.5 -172.5 0 0 0.18 0.18 {} -T {Incr line width} 962.5 -355 0 0 0.18 0.18 {layer=4} +T {Toggle fill style} 962.5 -355 0 0 0.18 0.18 {layer=4} T {-} 962.5 -343.75 0 0 0.18 0.18 {layer=12} -T {Toggle fill style} 962.5 -332.5 0 0 0.18 0.18 {} +T {-} 962.5 -332.5 0 0 0.18 0.18 {} T {Decr line width} 882.5 -355 0 0 0.18 0.18 {layer=4} T {Change line w.} 882.5 -343.75 0 0 0.18 0.18 {layer=12} T {-} 882.5 -332.5 0 0 0.18 0.18 {} @@ -423,4 +412,36 @@ T {-} 1042.5 -446.25 0 0 0.18 0.18 {layer=7} T {-} 1042.5 -457.5 0 0 0.18 0.18 {layer=6} T {Reserved} 2.5 -343.75 0 0 0.18 0.18 {layer=12} T {-} 2.5 -332.5 0 0 0.18 0.18 {} -T {BINDKEYS CHEATSHEET} 0 -630 0 0 2 2 {} +T {BINDKEYS CHEATSHEET} 250 -560 0 0 1.2 1.2 {} +T {~} 77.5 -397.5 0 1 0.4 0.4 {lock=0 layer=12} +T {[} 997.5 -317.5 0 1 0.4 0.4 {lock=0 layer=12} +T {]} 1077.5 -317.5 0 1 0.4 0.4 {lock=0 layer=12} +T {|} 1157.5 -317.5 0 1 0.4 0.4 {lock=0 layer=12} +T {:} 957.5 -237.5 0 1 0.4 0.4 {lock=0 layer=12} +T {"} 1037.5 -237.5 0 1 0.4 0.4 {lock=0 layer=12} +T {<} 837.5 -157.5 0 1 0.4 0.4 {lock=0 layer=12} +T {>} 917.5 -157.5 0 1 0.4 0.4 {lock=0 layer=12} +T {?} 997.5 -157.5 0 1 0.4 0.4 {lock=0 layer=12} +T {!} 157.5 -397.5 0 1 0.4 0.4 {lock=0 layer=12} +T {@} 237.5 -397.5 0 1 0.4 0.4 {lock=0 layer=12} +T {#} 317.5 -397.5 0 1 0.4 0.4 {lock=0 layer=12} +T {$} 397.5 -397.5 0 1 0.4 0.4 {lock=0 layer=12} +T {%} 477.5 -397.5 0 1 0.4 0.4 {lock=0 layer=12} +T {^} 557.5 -397.5 0 1 0.4 0.4 {lock=0 layer=12} +T {&} 637.5 -397.5 0 1 0.4 0.4 {lock=0 layer=12} +T {*} 717.5 -397.5 0 1 0.4 0.4 {lock=0 layer=12} +T {(} 797.5 -397.5 0 1 0.4 0.4 {lock=0 layer=12} +T {)} 877.5 -397.5 0 1 0.4 0.4 {lock=0 layer=12} +T {_} 957.5 -397.5 0 1 0.4 0.4 {lock=0 layer=12} +T {+} 1037.5 -397.5 0 1 0.4 0.4 {lock=0 layer=12} +T {-} 762.5 -115 0 0 0.18 0.18 {layer=4} +T {Draw all layers} 762.5 -103.75 0 0 0.18 0.18 {layer=12} +T {-} 762.5 -92.5 0 0 0.18 0.18 {} +T {-} 762.5 -126.25 0 0 0.18 0.18 {layer=7} +T {-} 762.5 -137.5 0 0 0.18 0.18 {layer=6} +T {-} 842.5 -115 0 0 0.18 0.18 {layer=4} +T {Draw cur. layer} 842.5 -103.75 0 0 0.18 0.18 {layer=12} +T {-} 842.5 -92.5 0 0 0.18 0.18 {} +T {-} 842.5 -126.25 0 0 0.18 0.18 {layer=7} +T {-} 842.5 -137.5 0 0 0.18 0.18 {layer=6} +T {Incr line width} 962.5 -366.25 0 0 0.18 0.18 {layer=6}