From eebd2b38fa0970ccb5ac57fa6e5e1e665680deb6 Mon Sep 17 00:00:00 2001 From: Stefan Frederik Date: Sun, 28 Aug 2022 00:27:52 +0200 Subject: [PATCH] add sample add_custom_button.tcl script to add custom toolbar buttons --- src/Makefile.in | 3 ++- src/add_custom_button.tcl | 41 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 src/add_custom_button.tcl diff --git a/src/Makefile.in b/src/Makefile.in index 37f652ec..04417394 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -13,7 +13,8 @@ put /local/install_shares { keys.help xschem.help xschem.tcl break.awk convert_to_verilog2001.awk flatten.awk flatten_tedax.awk flatten_savenodes.awk make_sym.awk make_sym_lcc.awk symgen.awk order_labels.awk sort_labels.awk spice.awk tedax.awk verilog.awk vhdl.awk hspice_backannotate.tcl add_custom_menu.tcl - change_index.tcl resources.tcl xschemrc ngspice_backannotate.tcl gschemtoxschem.awk traversal.tcl + add_custom_button.tcl change_index.tcl resources.tcl xschemrc ngspice_backannotate.tcl gschemtoxschem.awk + traversal.tcl } # generate a list of objects from the list of source files diff --git a/src/add_custom_button.tcl b/src/add_custom_button.tcl new file mode 100644 index 00000000..6b5dd96c --- /dev/null +++ b/src/add_custom_button.tcl @@ -0,0 +1,41 @@ +# This example shows how to add a custom toolbar button to xschem +# Stefan Schippers 20220827 + +# 24x24 GIF image (so it will be loaded by 20 years old tcl8.4, recent +# tcl accepts also PNG). Transparent background, encoded as base64 +set MyButtonData { + R0lGODlhGAAYAPcAACIiIiMjIyUlJSYmJicnJykpKSoqKisrKywsLDAwMDExMTIyMjMzMzQ0NDU1 + NTY2Njc3Nzg4ODk5OTo6Oj09PT4+Pj8/P0FBQUJCQkNDQ0REREVFRUZGRklJSUxMTE1NTU5OTlFR + UVJSUlNTU1lZWVpaWltbW1xcXF1dXV5eXl9fX2FhYWNjY2RkZGZmZmdnZ2hoaGlpaWtra2xsbG1t + bXFxcXJycnR0dHV1dXl5eXt7e3x8fICAgIODg4eHh4uLi4yMjI2NjY6Ojo+Pj5GRkZKSkpSUlJaW + lpeXl5mZmZqampubm5ycnJ2dnZ6enp+fn6GhoaKioqOjo6SkpKampqenp6ioqKmpqa6urrCwsLGx + sbOzs7S0tLW1tba2tre3t7m5ubu7u76+vsDAwMHBwcLCwsbGxsfHx8jIyMnJycrKysvLy83Nzc/P + z9DQ0NLS0tPT09XV1dbW1tfX19jY2NnZ2dra2tvb29/f3+Hh4eLi4uXl5efn5+jo6Onp6erq6uvr + 6+zs7O/v7/Dw8PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/gAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAI4ALAAAAAAYABgA + AAj+AB0JHDhwUR85ew4RXMhQoBgaCABIFJDiisKGBPGUkAhAAAQDHDGUwShQjQIACH68uahniYSO + UTDaiViiT8NCOyRiYXgIAwAXZlKMoDJQjdArRwAYwLOwCQANdkBKzOIIj1QAXGgAkEFwEQQAYZyy + CAKAhaMlP39s3QPSzsA2ADAsogIAhAwANBxFqXu3hiMcAI4MJAJghyNBEgR0VHP4Zcc2jriUHZiT + qKM+QXi8Gdjnxw45Au08HaiVC0mGfQAooAzA8umBojUMBsDjNcEwAFIUHe2IRo2LBJuMsJkjcMGT + ZRadlDGoIGEAcgRFBD0waYdCaiIiwHGERwWJTf5TTiZY6HuNRXJAcJQIIYzejtQJvgHpYtAiNUFy + BOFyaBHZ1hiVEZECR+gxkCBXaNCRYCSlx5ECGnwlkQSmvbZIFiwoxhEISxRiG3l2mBHdhyQ2FBAA + Ow== +} + +# Add a "MyButton" button to toolbar_list +lappend toolbar_list MyButton + +# Create an image object. Name should be img +image create photo imgMyButton -data $MyButtonData + +# Create the toolbar button +# constructor name tcl command tooltip topwindow +toolbar_create MyButton { puts SMILE! } "SMILE!" {} +# destroy and rebuild the toolbar +toolbar_hide +toolbar_show