Toolbar Paint plug ins

Beginning with build 2026 Toolbar Paint has a rudimentary plug in interface that allows programmers to write a tbx module  in order to have custom image adjustments. If you create a plug in in any language just email it to me with or without source and I will post it here.

To use a plug in all that is required is to copy the tbx file to the same folder as TBPaint.exe, the program will search for plug ins and load all it finds. There is support for a maximum of 256 plug ins.


Adjust luma

This plug in will adjust the relative brightness (luma) of an image. It is meant as a demonstration of how to write plug ins but it is also a useful tool. There is a short text file that explains a few messages available to plug ins, for a more complete list download the include file at the bottom of this page.

Download Brightness.tbx
Download Brightness.tbx
with source code


Blur Image

Morris has been one of Toolbar Paint's friends from early on, he has tirelessly bug tested every release and has been a steady source of suggestions that have improved the package. He has rewritten the algorithm to blur images and packaged the improved version as a plug in. It is available here. This plug in generates vastly improved blurs and corrects the edge effect found in my algorithm. I have removed the blur function from the tools window.

Download BlurImage.tbx
Download BlurImage.tbx
with source code


Save as icon

The SaveAsIcon plug in will allow you to save a single button as an icon. Supported sizes are 16x16, 32x32 and 48x48. If your button is a size other than those it will be stretched or reduced into the size that you select. The plug in only supports 24 bit icons, that may change if there is enough of a demand for other color depths but when dealing with small ico files 24 bit color can actually produce smaller files than 256 color. The plug in will use the current mask color as the transparency color, any pixels matching the mask will be made transparent in the icon. Source code is included.

Download SaveAsIcon.tbx
Download SaveAsIcon.tbx
with source code


Save as ani icon

This plug in will create animated icons with a uniform frame rate. The frame images are extracted from the current toolbar, all buttons are added to the animation, the transparency color is taken from the current mask color. It allows you to select a bit depth 4, 8 or 24 bits but there is no integral color management so there may be some skewing of colors as they are mapped to the default palette. 24 bit requires no color management and will always display as drawn. To use the plug in simple copy the tbx file to the same folder as TBPaint.exe. Source code is included.

Download AniIcon.tbx
Download AniIcon.tbx
with source code


TBX template for PowerBasic *New*

Chris Boss of EZGui  has written a template for creating TBX plug ins in Power Basic. I have included it here for Power Basic programmers who wish to author plug ins. Thanks Chris !

Download pbcode.zip


About TBX files

A tbx file is just a dll with the extension tbx. The source code supplied here is generally written in MASM but any language that can generate a DLL can be used to write a plug in. The following include file is required for creating tbx extensions, it is in assembler format but is extremely easy to translate to other languages as it is just a short list of equates.

Download tbx.inc

Note: If you are planning to author a plug in, the following characters are reserved for the use of TBPaint and must not be used in the menu text:

,	Comma
{}	Open and close curly brackets
;	Semi- colon
[]	Open and close square brackets
@	At symbol
#	Pound sign

Format for type #1 multiple menu item strings:

#1,SubMenuLabel,Item1,Item2,Item3

The #1 specifies a type #1 menu string. SubMenuLabel is the label that will be used for your sub menu in the Plug Ins menu. Each item is then listed comma delimited, the menu ID is incremented sequentially for each item beginning at the ID passed to your Plug In in the TbxInstall procedure. If you wish to include a separator just leave the entry blank (no space) e.g. Item1,,Item2. Separators do not increment the ID number.