diff --git a/src/callback.c b/src/callback.c index dd0638f9..96d9b19e 100644 --- a/src/callback.c +++ b/src/callback.c @@ -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 diff --git a/src/resources.tcl b/src/resources.tcl index cd136324..d1acd975 100644 --- a/src/resources.tcl +++ b/src/resources.tcl @@ -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 +" + diff --git a/src/xschem.tcl b/src/xschem.tcl index dec8f100..edab9bd7 100644 --- a/src/xschem.tcl +++ b/src/xschem.tcl @@ -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