fix deletion of ctxmenu if user keeps right button pressed and exits window, icons in ctxmenu

This commit is contained in:
Stefan Frederik 2021-11-04 12:57:41 +01:00
parent fdf198d71e
commit 966ebdc26e
3 changed files with 240 additions and 23 deletions

View File

@ -199,7 +199,8 @@ int callback(int event, int mx, int my, KeySym key,
{
if(debug_var>=2)
if(event != MotionNotify)
fprintf(errfp, "callback(): reentrant call of callback(), semaphore=%d\n", xctx->semaphore);
fprintf(errfp, "callback(): reentrant call of callback(), semaphore=%d, ev=%d, ui_state=%ld\n",
xctx->semaphore, event, xctx->ui_state);
/* if(event==Expose) {
* XCopyArea(display, xctx->save_pixmap, xctx->window, xctx->gctiled, mx,my,button,aux,mx,my);
*
@ -219,6 +220,7 @@ int callback(int event, int mx, int my, KeySym key,
switch(event)
{
case EnterNotify:
tcleval("catch {destroy .ctxmenu}");
if(!xctx->sel_or_clip[0]) my_snprintf(xctx->sel_or_clip, S(xctx->sel_or_clip), "%s/%s", user_conf_dir, ".selection.sch");
/* xschem window *sending* selected objects

View File

@ -509,3 +509,197 @@ kpw0KjnnEw7hfGgMScZ4nQXKf9DFfE03d3FTOutfNeNN2GyyacZ00dnA2EmBV7iEx7g/oP5GWWDU
vzbNGIm4qGK9QbCdTbfwdDfCO7FpRnc3BfIRbeA2HvaZN4Hn/1OAdPfU2VRDfls0XXatYBgXI07i
csv6ax3JIXuFXkd6PF5Id9FcywXyu+EOLrQsvj/4C1NSYkvsT/JxAAAAAElFTkSuQmCC
"
# Context menu
image create photo CtxmenuBlank -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAABJJREFUOI1jYBgFo2AUjAIIAAAE
EAABf014jgAAAABJRU5ErkJggg=
"
image create photo CtxmenuAbort -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAASdJREFUOI2V008rhFEUBvDfjMEk
JRZ8AGvZIitL1mKjUGq+gQ0LH0DWPgEb8hGUYmVBiq2FMmpixow/hdfivWNeY/45dXt7zz3Pc597
nnP5G1M4QxmFsMq4wGyD+p/owi6KiJqsIg7RWw9OYT+cFOEJeRwEwH3IRajgBD1JghWUEuCFBgqX
6kh2kpu3CYmTLa45niB5xJAAKOALRy3A1djCS1CxnMEcBkMij/U2BBl8oh8zGYyJm9iH1Q4UEDsG
o2lx5/8bqfDNZnAu7vq72LKrNuARrImvcAcT4iZGOO3g9D184A05SONBbQbmW4Cn/bZxuLqRUxvh
IrYxkABmsZGoecZmI2nVUa6EoktcJ/4jvIZ8dz1Bp4/pWGx502j0nEu4waKaheAb/bNlpCjdoIAA
AAAASUVORK5CYII=
"
image create photo CtxmenuRecent -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAO5JREFUOI2907EvBEEUx/FPluOE
KxDJ5QoaiVAQuYREc5rLneoqRPR6jUiuVFFd/BcKlZZao6DxZ2j0KHaWy9pdS+HbzMu832/mvZk8
itnAXpEgCmsFBxn5RayFeALjIe6gPiwcwS1OUgfUsRLiO5yjh2fMpG+bwmlOpW28YwtHWMjR5XKP
m9+aEnp4w/pfzBEecVUkmMQuNjPyfaziIayVsL8cPI0INTSxlHHALF5xgSe8oIH54Jkr28o0WjjE
aFnT/xNhp4RuW/zwn6aEge+DUxX3P0wT1xhLCy99fVPCPs4yquiLB+1HujguEnwAKLgZq/0lqQcA
AAAASUVORK5CYII=
"
image create photo CtxmenuSymbol -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAN9JREFUOI3l0qFLg2EQx/HPdLxJ
w2BJHQMHS/4JJsFkUDC7OIzaLIYFh92/QIwGi80gCAbBZBWxaLAqDIZBg/fCy8Oe1QUPjnvunt99
eY57mLXVknwZD3jHZ9Sa4Zc4w+skUAsnuMLPFB9hcxLgKBHeYTW8gzUcYIxnFClgAbs4DsAwM/Jp
3PfQwHwqWA/BIAPYSV56Xc8IczYX8Q0feCwBXRxiKfJGBrAXsYdbKAHb2K8IN9CP86K/9Xaxhfuy
uWpFNA1NX+MT2tXG9CMVOMcLvqLWxAoucIPvzHj/1n4Ba9U1ymAGS00AAAAASUVORK5CYII=
"
image create photo CtxmenuUp -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAJBJREFUOI3t0S0KAlEUhuHHH7Bo
M7sAo1mT29G9yOxDcA26ADFps1gEYYJYLFpGuAxzx6vB5AdfOfe8Lxwu9Rmj+WanMg0skGONwSdw
Byvc8Sh6xCwF7mMTgGGvWKIbg4fYRuCwO0zL8AhnnIreIvDr/YJ53SmHiGBSXvzqi/6CNEErVdCO
zDP0Kub7VPHv8gQNgyyppvr3VAAAAABJRU5ErkJggg==
"
image create photo CtxmenuDown -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAKdJREFUOI3t0rGOAVEUxvEfGQ2J
UrdRbC/RS7bxHlqvss0mWr1uvQOvoNGR2FqiYGJDQmNCxgwXrS85xf3u+X855+byogo5/gdKGf4f
diHBc6xTFaOVboxyAv5RyfCvJi6GjHNL74DzqzbQx+p0bqKW0T/GFmUM0bu8bGOCw52KMZD90VTx
i00OvMRPyGpdzFLwAp0QONEnRthjiq9H4EQRvlF/Bg7SEdn0Ke+EdPYuAAAAAElFTkSuQmCC
"
image create photo CtxmenuDownSym -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAQ9JREFUOI2l0j0rxWEYBvDfOUdK
nYGB8lIGFjtnEQNmo4yS2UJGC+ULnEXhA8gHkNEoNtHJYCFFeSslEsPzPznn6f+EXPUMz33f1/12
3fwThYS9ipHItoPNOLAlkaATlch2kBdYiv6LmMYweiJfAYNox3misBU84DPxrjGZItexiucc8g1m
fiLXUcVrA/kOC78l17GNd2Gk5b+SoYg9YaQk8u6gFWfCwt7QJexkTY6UjXfQiTmUMYArof02dGMf
s9hNdTOKW98yxhvfQg1TGBdGzEVHlmAssq9rlrUiyjKBD9xn/74GXwlDOMnG68dRXLmMeSxlFWo4
xiUe8ZIVaUKeCkUc4kJQoRdP2MBpHPwF2D5A7jIINwQAAAAASUVORK5CYII=
"
image create photo CtxmenuPaste -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAALNJREFUOI3l0TGKAkEQBdCnOGAi
4gEEU1NjMdELiHsAwRt4gD2OgZmBeAwTwcDIVAMFAwNZNGmxWZ0ZzAQ/fJqqrvr1q5uvQhMbrAIn
WcW/KPzLtfCHa+AMiikCQ0yR5NkqhXMUmq4hrmCABfo45Qk00H5x38UcnTyBC3aRgyrKWGOctcId
CWoRN1gGZ3e8fMTYwSEq3uIHx7zJpZR8LyV/9lgz4fmvs5CgHsUn7N/o/1TcAN3IIPcoHvjxAAAA
AElFTkSuQmCC
"
image create photo CtxmenuDelete -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAPBJREFUOI2t0r8rhVEcx/EXSQyU
sKA7KUb5E24mg+IvUHdRhju5ZbP4F/hDbBZmKRZGPybJIgYpeQz3PPXt9NzHM9xPnTqdz+f9Oed0
DkPUOMb+yYxiospYwguesDwAnsMNPrCem5so0njEYuZP4zpk9quOfxEC92lHmMRl8O4wU3XEKVyF
4C3mcRbWntEacEUwm3Yogbcwf8VKHVxqAQ8BLPCOtSZwqdOs4Fz/CRupm8HlOGkC7+I3AT84xGco
Oa6DdxJUpJJOWm/jK5T0quBVfIdQN/O3s/KNvKAd4KMG1+vk5gj2UqhOWzjQ/7nD0R/bz0yBV73W
+QAAAABJRU5ErkJggg==
"
image create photo CtxmenuDuplicate -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAKFJREFUOI3d0j0OQUEUxfHf85Gw
DI3YgcYGxAo0tqG1D41WrEMjWkugUBCJ5KlQeC9kZN4ThcJJJpnck/s/92Ym8VQTfVTFtcMyZg5x
KzmXsKn2cq/jhFYkYIBZEUCWcvRYpRt4HSSYYItpCBtlzbAoWWWdN1Ui414j9Tc/BvhYfwhoYIz2
N7Ae9jggVfyMqzLY/FNA+BNznbEpCEjLJvid7kapNFQRDG8iAAAAAElFTkSuQmCC
"
image create photo CtxmenuCut -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAS9JREFUOI2l0r8v3lEUx/GX+BWJ
oSxISDqRDsRikhhoYurAILF0aGLpUJtITGaJSSxMBsGKNBG1PEvT/6GDP0AErd8eBueJg2+E+CQ3
uefez/vcc8+93KsaP/ATaxj2Rq3jNo0yvr0WHkjQKn5HfIi6F7hmfIapAH7FRiMuYq2nAKzFJA5w
W4Oj2GgPuDtM0l5FXzCHroj/w0ecxonHuE5XmkcTPmHb4x5tBAu+4iwZrtP8DDcp/oP+oqb0YRGz
6HT/pOUEXmEBVUXwGP4l8+WTeU6060lzOxJ8nsxlLKE1qiulJDdYQQtMxOJffMBQStKRDqrCOPZT
okOYjmAnjA0e/kFvwXUbMIOT8BhMJS9jz8OT1hc1LNSGkUqwmcqqjO8vwM9UG2WVsIXRt8Dv0h1v
1mjSLHuXngAAAABJRU5ErkJggg==
"
image create photo CtxmenuMove -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAM1JREFUOI3V0b9KgmEYhvFfOocG
Tc5B4OABCLV0AB2A5+AZCBHRaqfgCejg1ODg3hARhCIa/ZmiIQcbGmzwEeTj8xu+SW94l/e6n+vl
4WUXc56TgUu8ZPB73G6DJxjjIUPQxTcaSXAYg0v84BUfOA0+iruv6ExRWw8foB9g8yxQjc44hT+i
DFf4yyFYogfHeMoh+MTFeo063hKF3w3BJMHmaEIxCu/x4hlmuLb6smGsN8cAR6igg5aU3OE5DUT6
IS5uKxTQzhDcoJTB9zH/q4ZL9x8sfy0AAAAASUVORK5CYII=
"
image create photo CtxmenuCopy -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAQFJREFUOI2l0k8rRFEYBvCfYY2U
UmOlFIo0WEvWFjaSnY2UL+ADWNhZ+wDKF7DSKBuU2CrL2SjJKIqSuRb3nOZ2zeXiqbfznvf0PO+/
062NQYxjAA+YwjBe8aYE6kiCbWb8M2z9RB7DFWYwiQqmw30bd0XEnnCOoobrkBXmsIJqaOs4w0uw
i5NKCHyglRNfwggauEUzY7OYz1ZwirVM9og6NjpUfhmdWEEN+wVtfoso0I8+dP1V4BkvvrZQWuAC
678l0x7iAg6lu08wgSHclxV4CtXsSNe5HOKNsgLn6JX++ST4B3gsK0A6xIgm3rGKxQ68Ko7yAnns
4abgrSWd2f/xCe+6NftbSJvdAAAAAElFTkSuQmCC
"
image create photo CtxmenuEdit -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAANhJREFUOI2N071KwlEYx/GPKdXQ
4uLa0tQFJQ3dRFMX4CIIQuDg0BUUDYKzNEaIXkA34KKjiviy/MXTv3Pq/OBw4Hn5Pi+cU3HSBe5x
7m/tMcCs7LgrnDmnc0yqBYDL4n7FOFG9gceiW3AWCRoVVUJN0cZLOTgG2GFbsq0THf0YIQzupxJy
AHV8o1Kyf6KVA1jgJlHwNgdwhV7gW+IJqxgxtYOR0whbbBIdRQEbfKEa2K4xzwXU8eb3Eifo5gBq
aMaqSS8XPMj/C8+xDj4wFLzzhPZ4/ycmXwdUuTYEvXczbwAAAABJRU5ErkJggg==
"
image create photo CtxmenuWire -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAH5JREFUOI3t0CEOwkAQRuGPZA2q
IQ0Kh+xdkBhsDXfgJnADLJKQ4DkBIHoJFBXFbMIKtgISVF8y4k3+zEyGgZ8ZocIieostHj35GmX0
S8AGqyQ0xSkzYIZd4nfYo/uymvBhyxm3zAUTLNNGwAHz6E+scc0MGKPw/sExkxv4Ky8Gexz58Sie
KwAAAABJRU5ErkJggg==
"
image create photo CtxmenuLine -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAItJREFUOI2t0s0KAQEYBdCTWXke
O5FoJImSJEnKwmN5Ae8m5f9nZDGzmO03uftT99ZNVEuKBMcqeIcvDlXwFhlOaETxpsAXtKN4jjeu
6ETxrIS7UTzFCzf0oniIB54YRfGghMdR3MddXn0Sxal87weLKG7hXOBlFDdLeBXFdfk1M6yjGGrY
q1D7L/kB6MkiUUxrTbkAAAAASUVORK5CYII=
"
image create photo CtxmenuBox -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAHNJREFUOI1jYBhowAillRgYGIoY
GBhYidT3n4GBYSkDA8NhmEAjVJAUvI2BgYGBBWoAM5TOZ2BguEbAdmYGBoYdMD0saJKnGRgYjhMw
AEUPEwHFBMGoAZixsJOBgeEPOS44xsDA8JIEzW8ZGBj2kWLRIAYAL9AZ7CAcb1AAAAAASUVORK5C
YII=
"
image create photo CtxmenuPoly -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAThJREFUOI2d0r0vZVEUBfDfxIwJ
E+IjmEIrFERFRKImWoVeJeoR5QzFFEoKvRaJqEQj4S8QhY/oRqVgnnjJZAZXcffLO65HMlZyc07W
Xmt/nVunNibwD6VX4m9iCI/Yfo8ZDpDhFh//1zwV5oc4h2toGvATv9CTBupxIZ/9eyRYKJjHQ5PF
158GvwW5ik75HnYj1oX1xJjhNDW34xq/0RHcMe4wh5swnWEt7ktpgoUg5xNuJan2Bz/wGRvBDaQJ
Kln7Em4yuH30BvcFZZwoYCvEbfJldgffgw+JbrpW+3CIv2iMimU0F0XYrNU++UavsKM692hB0/la
++QvUDGW4pzBV8xiLzrMsFg0f5K/eYYj1eVdqf6RGS7lL9NaTNAUwvOo2IL7MF1gGSOeL/MFxmLG
CkYx+JahgiccyVrAZNgVDAAAAABJRU5ErkJggg==
"
image create photo CtxmenuArc -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAALRJREFUOI2d0a9qglEYwOHHP2Bw
IIhV1lYMphXbmnnewNYMsuiF7AK8ArPBoFkswgQvQQaCwbGVgYbzGQT5Pnh/cOrznvecklQTQ/Tw
iH98Y4UpvhQ0xjnnzPCUB7Twji7qeEAHH9hmyA8GRTe5Vxkj/EmrvUYQeMEvTgrWyetNWmceBWCR
Ic9RoJ8Bn1GgiiN2UQCW0o/UykFgjwoaUeBaKQq0pRUO0cknbEgvGmmCdXT6TReuMiZjjvpqKwAA
AABJRU5ErkJggg==
"
image create photo CtxmenuCircle -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAARBJREFUOI2d008rRHEUxvHPTCNL
UworW1JjXsCURsl7sLCQspM3wMJLsLGWF2CUV6CwsZBGUlKSLCwIO38ai3tGt3HvNTl1e+qc53zP
+d37uyX5UUcNFdzgBF8F/p+YQxudnucBy381r8SUDg6xiQ208B757bzmGXzgCfMZ9SlcBWQ1C3Aa
05sFG47HgGdU04VakFsFzd1YD+8SlCPZCN3rA9Ad0kgDRkLv+gDcho6mAW+h1V53RnQ9r2nARWiz
D8BsaDudHMQjXjBW0DyAc8nXmugtrkne7rHso1SwE57dLHoZ+2G4D2BdcoEWcRa1SwwVrbiFT7//
hQ4OMJxuKOWAJrGA6Vj9WnJHjvIm/zu+AWQbPpZSicXdAAAAAElFTkSuQmCC
"
image create photo CtxmenuText -data "
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACkAAAAsAGMLevkAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAALxJREFUOI2l0juKAkEQxvGfD9hI
cxPBC2xmuEcwMTc0M/UGgpH30GDBeLM9gZhusoiZiSBmg2gyA8M8W+YPRdN0Pb6uKhrSis82PtEp
8DnjUpdogWeJnaoCu/H5i12sJMuhrnojkh4MMEvd69jKfG2pvAdFtsoq6GGKj4DqEfa4BqqtJlHw
hY38FL6xrkqQjHGEccH7f6gC6Mtv4g2P0ATDlKIy7krWei58hJN0YFLxiB/Fq5wmwl+Nz3u8AGW5
McJOhhO+AAAAAElFTkSuQmCC
"

View File

@ -3157,8 +3157,8 @@ proc balloon_show {w arg} {
proc context_menu { } {
global retval
set retval 0
set retval 0
set font {Sans 8 bold}
set selection [expr {[xschem get lastsel] eq {1}}]
toplevel .ctxmenu
@ -3166,52 +3166,73 @@ proc context_menu { } {
set x [expr {[winfo pointerx .ctxmenu] - 10}]
set y [expr {[winfo pointery .ctxmenu] - 10}]
if { !$selection} {
button .ctxmenu.b9 -text {Open most recent} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b9 -text {Open most recent} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuRecent -compound left \
-font [subst $font] -command {set retval 9; destroy .ctxmenu}
}
button .ctxmenu.b10 -text {Edit attributes} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b10 -text {Edit attributes} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuEdit -compound left \
-font [subst $font] -command {set retval 10; destroy .ctxmenu}
button .ctxmenu.b11 -text {Edit attr in editor} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b11 -text {Edit attr in editor} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuEdit -compound left \
-font [subst $font] -command {set retval 11; destroy .ctxmenu}
if {$selection} {
button .ctxmenu.b12 -text {Descend schematic} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b12 -text {Descend schematic} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuDown -compound left \
-font [subst $font] -command {set retval 12; destroy .ctxmenu}
button .ctxmenu.b13 -text {Descend symbol} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b13 -text {Descend symbol} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuDownSym -compound left \
-font [subst $font] -command {set retval 13; destroy .ctxmenu}
button .ctxmenu.b18 -text {Delete selection} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b18 -text {Delete selection} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuDelete -compound left \
-font [subst $font] -command {set retval 18; destroy .ctxmenu}
button .ctxmenu.b7 -text {Cut selection} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b7 -text {Cut selection} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuCut -compound left \
-font [subst $font] -command {set retval 7; destroy .ctxmenu}
button .ctxmenu.b15 -text {Copy selection} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b15 -text {Copy selection} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuCopy -compound left \
-font [subst $font] -command {set retval 15; destroy .ctxmenu}
button .ctxmenu.b16 -text {Move Selection} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b16 -text {Move Selection} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuMove -compound left \
-font [subst $font] -command {set retval 16; destroy .ctxmenu}
button .ctxmenu.b17 -text {Duplicate Selection} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b17 -text {Duplicate Selection} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuDuplicate -compound left \
-font [subst $font] -command {set retval 17; destroy .ctxmenu}
}
if {!$selection} {
button .ctxmenu.b14 -text {Go to upper level} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b14 -text {Go to upper level} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuUp -compound left \
-font [subst $font] -command {set retval 14; destroy .ctxmenu}
button .ctxmenu.b1 -text {Insert symbol} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b1 -text {Insert symbol} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuSymbol -compound left \
-font [subst $font] -command {set retval 1; destroy .ctxmenu}
button .ctxmenu.b2 -text {Insert wire} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b2 -text {Insert wire} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuWire -compound left \
-font [subst $font] -command {set retval 2; destroy .ctxmenu}
button .ctxmenu.b3 -text {Insert line} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b3 -text {Insert line} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuLine -compound left \
-font [subst $font] -command {set retval 3; destroy .ctxmenu}
button .ctxmenu.b4 -text {Insert box} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b4 -text {Insert box} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuBox -compound left \
-font [subst $font] -command {set retval 4; destroy .ctxmenu}
button .ctxmenu.b5 -text {Insert polygon} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b5 -text {Insert polygon} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuPoly -compound left \
-font [subst $font] -command {set retval 5; destroy .ctxmenu}
button .ctxmenu.b19 -text {Insert arc} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b19 -text {Insert arc} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuArc -compound left \
-font [subst $font] -command {set retval 19; destroy .ctxmenu}
button .ctxmenu.b20 -text {Insert circle} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b20 -text {Insert circle} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuCircle -compound left \
-font [subst $font] -command {set retval 20; destroy .ctxmenu}
button .ctxmenu.b6 -text {Insert text} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b6 -text {Insert text} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuText -compound left \
-font [subst $font] -command {set retval 6; destroy .ctxmenu}
button .ctxmenu.b8 -text {Paste} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b8 -text {Paste} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuPaste -compound left \
-font [subst $font] -command {set retval 8; destroy .ctxmenu}
}
button .ctxmenu.b21 -text {Abort command} -padx 1 -pady 0 -anchor w -activebackground red \
button .ctxmenu.b21 -text {Abort command} -padx 3 -pady 0 -anchor w -activebackground red \
-image CtxmenuAbort -compound left \
-font [subst $font] -command {set retval 21; destroy .ctxmenu}
pack .ctxmenu.b21 -fill x -expand true