From f5f6b681e2400205548e9c01914eec115f2f63da Mon Sep 17 00:00:00 2001 From: Stefan Frederik Date: Thu, 4 Nov 2021 02:07:41 +0100 Subject: [PATCH] removed rarely used toolbar buttons, added Abort context menu command --- src/callback.c | 65 +++++++++++++++++++++++++---------------------- src/resources.tcl | 64 +++++++++++++++++++++++----------------------- src/xschem.tcl | 8 ++++-- 3 files changed, 73 insertions(+), 64 deletions(-) diff --git a/src/callback.c b/src/callback.c index c9dfb175..dd0638f9 100644 --- a/src/callback.c +++ b/src/callback.c @@ -46,6 +46,36 @@ void redraw_w_a_l_r_p_rubbers(void) new_polygon(RUBBER); } } +void abort_operation(void) +{ + xctx->no_draw = 0; + tcleval("set constrained_move 0" ); + constrained_move=0; + xctx->last_command=0; + xctx->manhattan_lines = 0; + dbg(1, "abort_operation(): Escape: ui_state=%ld\n", xctx->ui_state); + if(xctx->ui_state & STARTMOVE) + { + move_objects(ABORT,0,0,0); + if(xctx->ui_state & START_SYMPIN) { + delete(1/* to_push_undo */); + xctx->ui_state &= ~START_SYMPIN; + } + return; + } + if(xctx->ui_state & STARTCOPY) + { + copy_objects(ABORT); + return; + } + if(xctx->ui_state & STARTMERGE) { + delete(1/* to_push_undo */); + set_modify(0); /* aborted merge: no change, so reset modify flag set by delete() */ + } + xctx->ui_state = 0; + unselect_all(); + draw(); +} void start_place_symbol(double mx, double my) { @@ -581,37 +611,9 @@ int callback(int event, int mx, int my, KeySym key, new_polygon(ADD|END); break; } - if(key == XK_Escape ) /* abort & redraw */ + if(key == XK_Escape && xctx->semaphore < 2) /* abort & redraw */ { - xctx->no_draw = 0; - if(xctx->semaphore >= 2) break; - tcleval("set constrained_move 0" ); - constrained_move=0; - xctx->last_command=0; - xctx->manhattan_lines = 0; - dbg(1, "callback(): Escape: ui_state=%ld\n", xctx->ui_state); - if(xctx->ui_state & STARTMOVE) - { - move_objects(ABORT,0,0,0); - if(xctx->ui_state & START_SYMPIN) { - delete(1/* to_push_undo */); - xctx->ui_state &= ~START_SYMPIN; - } - break; - } - if(xctx->ui_state & STARTCOPY) - { - copy_objects(ABORT); - break; - } - if(xctx->ui_state & STARTMERGE) { - delete(1/* to_push_undo */); - set_modify(0); /* aborted merge: no change, so reset modify flag set by delete() */ - } - - xctx->ui_state = 0; - unselect_all(); - draw(); + abort_operation(); break; } if(key=='z' && state == 0) /* zoom box */ @@ -1565,6 +1567,9 @@ int callback(int event, int mx, int my, KeySym key, xctx->last_command = 0; new_arc(PLACE, 360.); break; + case 21: /* abort & redraw */ + abort_operation(); + break; default: break; } diff --git a/src/resources.tcl b/src/resources.tcl index 57d934fd..cd136324 100644 --- a/src/resources.tcl +++ b/src/resources.tcl @@ -15,30 +15,30 @@ ## FILE -image create photo imgFileNew -data " -iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAACnAAAApwEPOh3cAAAA -GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAapJREFUSImt1T1rFFEUBuBn49cK -WunWAdNYygqKtQoWiunUPxB/gqWtNnZ2ifgjVIgSUPsUamICGhRR/Gj8COj6kYzFPaOzw+7MbjIv -DId773vPe8+5556hebRxpDx5AAs41YDAVWzicNH5Kn7hRwMiN5DheD6xgl5MZiFychsC98JPDxsT -2FkitHFniyL7sSsE9oTVwQv9UWT4brx0zUnRZ/iJp1jKF6tERo3ka2lv/v1DBy9DvUjYQHcEgYO4 -iOXY9xlXyqRyJJt4J5VwHeaDn+E9FvFhELGDV0F8hL1Yw4UagU9qUlTEFJ7gOY7hHN5iX4VAS0rR -m3D8GtNVJ2phRsrlNdzH9Qr+YuHUPYWXXIdDeIh1Kcfnh/DW8Nv/+zszqgBMYDY2fhmwfklKJQNa -xTg4jWchmGO3VMrzMb65HYFBaIfDBektfIzxsFRuWeCxVHkZHuiPshGBb2Hnis7LnbSIE7hdwyGV -M6mTzuKyVG2oDqNVsTYMmdSBb6l+lGMhT9F62D9hz9LgRUitIcOOGB9tWmBSf1q71F/gKMhb9BLu -SifvSv8WfwEj8oUo4ooZDgAAAABJRU5ErkJggg== -" +# image create photo imgFileNew -data " +# iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAACnAAAApwEPOh3cAAAA +# GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAapJREFUSImt1T1rFFEUBuBn49cK +# WunWAdNYygqKtQoWiunUPxB/gqWtNnZ2ifgjVIgSUPsUamICGhRR/Gj8COj6kYzFPaOzw+7MbjIv +# DId773vPe8+5556hebRxpDx5AAs41YDAVWzicNH5Kn7hRwMiN5DheD6xgl5MZiFychsC98JPDxsT +# 2FkitHFniyL7sSsE9oTVwQv9UWT4brx0zUnRZ/iJp1jKF6tERo3ka2lv/v1DBy9DvUjYQHcEgYO4 +# iOXY9xlXyqRyJJt4J5VwHeaDn+E9FvFhELGDV0F8hL1Yw4UagU9qUlTEFJ7gOY7hHN5iX4VAS0rR +# m3D8GtNVJ2phRsrlNdzH9Qr+YuHUPYWXXIdDeIh1Kcfnh/DW8Nv/+zszqgBMYDY2fhmwfklKJQNa +# xTg4jWchmGO3VMrzMb65HYFBaIfDBektfIzxsFRuWeCxVHkZHuiPshGBb2Hnis7LnbSIE7hdwyGV +# M6mTzuKyVG2oDqNVsTYMmdSBb6l+lGMhT9F62D9hz9LgRUitIcOOGB9tWmBSf1q71F/gKMhb9BLu +# SifvSv8WfwEj8oUo4ooZDgAAAABJRU5ErkJggg== +# " -image create photo imgFileNewSym -data " -iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAACnAAAApwEPOh3cAAAA -GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAWVJREFUSInt1L9KHUEUx/GPuRZB -LEQsxFiI2AhqYQoJ2OkTJLcUfAEhoFew9hEUxEKEQBAt0xiwCJgmIYiIT2AlihpUxIv/1hQzV2HZ -SzbJ3i4/OAycObPfc+acWf4rpyZwhMFGfbyKBBcYKBrwgMdoD42ATOM6BTlvBKSaASm0J5UUJMEt -XhUJmfF8XQlO8KFIAMxGwD46cIrRoiHvheyXInAPzUVDOvEJB7jBctGAmiaFqUr8xVQ15Yx7jU18 -xGG0+3i+F9/xTaj0n1TxPMZpO8NU+kCexjVhHG3oir7P2EZJqO4MZSyiHfN/kvV4RrYbGXHdwkDc -oa/mLOUAHAojuy380oci4Gsq7hI/8Q6twoPtyVtFTW+FCip19stS1ebtwRu0CNnDizqx93H9gi1h -tH+rsXRWWM+Ie4kfcX+k5szTg2PhPneEXvRjF1fCGxjFMFbiuoaFPJlnaU79d5BgNVbypF9mbG+9 -d79s7wAAAABJRU5ErkJggg= -" +# image create photo imgFileNewSym -data " +# iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAACnAAAApwEPOh3cAAAA +# GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAWVJREFUSInt1L9KHUEUx/GPuRZB +# LEQsxFiI2AhqYQoJ2OkTJLcUfAEhoFew9hEUxEKEQBAt0xiwCJgmIYiIT2AlihpUxIv/1hQzV2HZ +# SzbJ3i4/OAycObPfc+acWf4rpyZwhMFGfbyKBBcYKBrwgMdoD42ATOM6BTlvBKSaASm0J5UUJMEt +# XhUJmfF8XQlO8KFIAMxGwD46cIrRoiHvheyXInAPzUVDOvEJB7jBctGAmiaFqUr8xVQ15Yx7jU18 +# xGG0+3i+F9/xTaj0n1TxPMZpO8NU+kCexjVhHG3oir7P2EZJqO4MZSyiHfN/kvV4RrYbGXHdwkDc +# oa/mLOUAHAojuy380oci4Gsq7hI/8Q6twoPtyVtFTW+FCip19stS1ebtwRu0CNnDizqx93H9gi1h +# tH+rsXRWWM+Ie4kfcX+k5szTg2PhPneEXvRjF1fCGxjFMFbiuoaFPJlnaU79d5BgNVbypF9mbG+9 +# d79s7wAAAABJRU5ErkJggg= +# " image create photo imgFileOpen -data " R0lGODlhGAAYAPYAAAAAAAEBAQMDAwQEBAUFBQcHBwgICAkJCQsLCw0NDRISEhMTExcXFxkZGRwc @@ -65,15 +65,15 @@ Ki0vJxkDgLRCtrcFycrJw8SigNDRzrXS1dHFOsfW1dja29fP39Dd4tzh5bNEbeiAAh5EJAxd6AQN JUQzJU4Y/P3+/R5K0FBCsKBBIkEAADs= " -image create photo imgFileMerge -data " -iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAACnAAAApwEPOh3cAAAA -GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAPpJREFUSInN1T1KxFAUxfHfaMBO -a7Gy0R24Bl2AvW7ATlAwIzLT2UzlNmwEF2KljZ1jqY3gF1r4wrwpdF5eeDgHQt5N7jl/uNyQHkbY -MNEFruRpF/tRfVNhE9vRw8vMcFjFTlS/LnQIS9LcAs5RlQLU2EOvBKBGv42vDaAJTxpNo9TmAY6x -GOoV3EfvH7CVC6hxFIUL57WofvrNPGtEJzLGEusv42kAZIfzzx/aWbg+SgFg2BWSMt8hlkyv6Sce -o56XLgB+VvXNZKOesY73WcY2GzII934LT+sVbCAHpQANZBlfpQBwmNo4t3+0ZFW4NT3PcYe8Ma6j -+u4bIZwl0p2441sAAAAASUVORK5CYII= -" +# image create photo imgFileMerge -data " +# iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAACnAAAApwEPOh3cAAAA +# GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAPpJREFUSInN1T1KxFAUxfHfaMBO +# a7Gy0R24Bl2AvW7ATlAwIzLT2UzlNmwEF2KljZ1jqY3gF1r4wrwpdF5eeDgHQt5N7jl/uNyQHkbY +# MNEFruRpF/tRfVNhE9vRw8vMcFjFTlS/LnQIS9LcAs5RlQLU2EOvBKBGv42vDaAJTxpNo9TmAY6x +# GOoV3EfvH7CVC6hxFIUL57WofvrNPGtEJzLGEusv42kAZIfzzx/aWbg+SgFg2BWSMt8hlkyv6Sce +# o56XLgB+VvXNZKOesY73WcY2GzII934LT+sVbCAHpQANZBlfpQBwmNo4t3+0ZFW4NT3PcYe8Ma6j +# +u4bIZwl0p2441sAAAAASUVORK5CYII= +# " image create photo imgFileReload -data " R0lGODlhGAAYAPZLAAAAAAEBAQICAgQEBAUFBQcHBwgICAsLCw0NDQ4ODg8PDxMTExQUFBoaGhsb diff --git a/src/xschem.tcl b/src/xschem.tcl index 8f96c1c6..146c13e8 100644 --- a/src/xschem.tcl +++ b/src/xschem.tcl @@ -3211,6 +3211,10 @@ proc context_menu { } { button .ctxmenu.b8 -text {Paste} -padx 1 -pady 0 -anchor w -activebackground red \ -font [subst $font] -command {set retval 8; destroy .ctxmenu} } + button .ctxmenu.b21 -text {Abort command} -padx 1 -pady 0 -anchor w -activebackground red \ + -font [subst $font] -command {set retval 21; destroy .ctxmenu} + + pack .ctxmenu.b21 -fill x -expand true if {!$selection} { pack .ctxmenu.b9 -fill x -expand true } @@ -3260,7 +3264,7 @@ proc setup_toolbar {} { # FileNewSym FileOpen FileSave - FileMerge +# FileMerge FileReload "---" EditUndo @@ -3954,7 +3958,7 @@ if { ( $::OS== "Windows" || [string length [lindex [array get env DISPLAY] 1] ] .menubar.file.menu add command -label "Save" -command "xschem save" -accelerator {Ctrl+S} toolbar_create FileSave "xschem save" "Save File" .menubar.file.menu add command -label "Merge" -command "xschem merge" -accelerator {Shift+B} - toolbar_create FileMerge "xschem merge" "Merge File" + # toolbar_create FileMerge "xschem merge" "Merge File" .menubar.file.menu add command -label "Reload" -accelerator {Alt+S} \ -command { if { [string compare [tk_messageBox -type okcancel -message {Are you sure you want to reload?}] ok]==0 } {