Ok... :) I look forward to that! ;) ...I'll let you know if I find it out myself... Keep up the good work! Thanks for this program!

Posted on 2003-10-09 12:52:10 by Tommy
Hi Tommy,

Check the site, I have added a save as icon plug in.
Posted on 2003-10-10 05:08:00 by donkey
Cool! :cool: I'll take a look! ;)
Posted on 2003-10-10 10:57:31 by Tommy
Good work! :alright: What about saving multiple formats in one icon (example: one 16x16, one 32x32 and one 48x48)?
Take your time, and only if you want to... If you're not doing it, maybe I get the time to fix it.... (or: probably not, school takes all my time :() Well, although, excellent work! ;)

Thanks! So long!
Posted on 2003-10-10 11:10:30 by Tommy

Good work! :alright: What about saving multiple formats in one icon (example: one 16x16, one 32x32 and one 48x48)?
Take your time, and only if you want to... If you're not doing it, maybe I get the time to fix it.... (or: probably not, school takes all my time :() Well, although, excellent work! ;)

Thanks! So long!

Thanks Tommy,

The problem with multiple size formats is where is the data coming from ? You could stretchblt the contents but LoadImage will do that for you when you load the icon anyway, the shell will also stretchblt if one is not available. I may write a dedicated icon editor that can save multiple icon formats but TBPaint is not really adaptable in any meaningful way to multiple size formats. What might be useful is the ability to save at multiple color depths but the current algoritm is not really set up to allow good color reduction, it would require a bit of work with the color DIB section, I may tackle that some time soon.

I think a good application for a new icon plug in would be to save the complete toolbar or a range of buttons as an ani icon, that may be my next icon project. For now though I am a bit fed up with the icon file format to tackle the project for a few days and the trip to color reduction hell is not something I am looking forward to ;)
Posted on 2003-10-10 11:34:58 by donkey
Yes, I see.... I was actually thinking about the same... :) I agree with you: an icon-editor should be a separate application.
Posted on 2003-10-10 12:12:54 by Tommy
Just thought I'd mention it, Toolbar paint has received the top rating at WebAttack.com, that gives it a top rating at 3 different freeware sites.

Posted on 2003-10-10 14:07:22 by donkey
Wow! Congratulations! :alright:
Posted on 2003-10-10 14:57:14 by Delight

Just used Toolbar paint yesterday and today to recreate the toolbar that Ewayne's ASMEdit helped me create a year ago. (His step-by-step build a program generator was just what I needed when I didn't know anything about toolbars)

I also used Toolbar paint to create 3 spare button as separate .bmp files and then I use ImageList_Replace to change my fifth button, based on the status of a business condition. It has become my color coded alert system!

I've tried other .bmp tools but I found Toolbar paint exactly what I needed! Thanks!

You da' equine!

Posted on 2003-10-10 21:07:13 by farrier
Thanks farrier,

Good to hear that it's being put to work, for me it came out of frustration with trying to draw toolbar graphics in MSPaint and replacing graphics with copy and paste. It always seemed to take 2 or 3 tries to get the image exactly aligned especially in large toolbars, I decided there had to be a better way. Funny thing is that there is absolutely nothing else I can find that does this, I had originally searched the web without finding anything and decided that the only way I was going to get a tool for it was to write it myself.
Posted on 2003-10-10 21:23:26 by donkey
Lim Chee Aun at Phoenity has redone the toolbar paint toolbar in Phoenity style and I personally really like it. It also gets rid of those nasty buttons I harvested from other applications :grin: , I have uploaded a new Toolbar paint with it's new toolbar look. Tell me what you think...

PS I guess I should add that you must enable Phoenity buttons on the options menu then restart the program to see the new buttons.
Posted on 2003-10-16 11:47:10 by donkey
There was a critical buffer overrun in TBPaint's tbx handler, it has been fixed and a new download is available at my website.
Posted on 2003-10-17 15:05:12 by donkey
Uploaded version to my website:

New in version 1.2.0 Build 2041
Fixed most recently used menu bug -Thanks to Roberto for spotting it
Added Save position - Will save the window positions on close

New in version 1.2.0 Build 2040
Added Load last file option, it will auto-load the last file saved if checked
Load last file remembers the last button index
Grid on/off setting is now remembered
New program icon by Lim Chee Aun
Posted on 2003-10-21 05:13:35 by donkey
Uploaded version o my website, it includes faster graphics rendering through direct to bitmap writes, bypassing the GDI as well a fix for the TBP_KILLSELECTION tbx message. BTW I checked in at WebAttack, one of the freeware sites listing TBPaint and it is #1 in the Graphics editors category based on current download statistics:

Posted on 2003-11-13 17:50:50 by donkey
Hi Donkey,

I downloaded 2042 and I must say it is even worse in handling the selection than 2041. I created a dummy plugin for testing, please have a look at it. Test it with a "normal" selection and with a floating one (pasted). Maybe I'm doing something wrong in the plugin code...

Some bugs with selection in 2042 (done on Win98, WinNT4 SP6a)

1. Copy and paste a selection
2. Goto another image

Pasted selection does not disappear

3. Copy selection (the one that did not disappear)
4. Goto another image

Selection gets merged with the background, but the change flag is not set (you're not asked to update the image)

5. Paste the selection

The selction is merged with the background, but it should be floating

And two more things concerning TbxInstall procedure:
1. The parameters are switched (you pass hTbxID as hTbxMenu and vice versa - I checked it in OllyDbg)
2. There's something wrong with your routine that handles extra menu IDs passed in ecx (storing procedure addresses in an array. The pseudocode is:

[i]if NULL goto next plugin[/i]
[i]store this address in two memory locations (local variable and array of pointers)[/i]

[i]store this address in two memory locations (local variable and array of pointers)[/i]


[i]if ecx is not 0 then[/i]
[b]inc edi[/b] [COLOR=red];this is the source of the error, because you should increase edi by 8 (two addresses)[/COLOR]
[i]store TbxInstall and TbxInvoke in the array[/i]
[i]loop until ecx is 0[/i]
Posted on 2003-11-14 02:12:59 by Morris
Hi morris,

You're right, that procedure is not supposed to be in there. It is the test version is supposed to be excluded by a conditional assembly and only present in the debug version (_debug=TRUE). I will take care of it.
Posted on 2003-11-14 07:23:18 by donkey
Originally posted by donkey
TBPaint and it is #1 in the Graphics editors category

Donkey, congratulations!. You are doing a very good product!:alright:
Posted on 2003-11-14 07:53:48 by pelaillo
Thanks pelaillo,


The weird thing is that the section of code with edi was add edi,SIZEOF FILTERPROCS in my version here. But when I went to reupload it I noticed that the zip file for TBPaint was still in the dev folder. It should have been moved automatically so I geuss I uploaded a test version (basically the nightly build). Pretty much incredibly stupid on my part, sorry. Uploaded build 2043, changing buttons during a paste operatiion will now cancel the operation.

Damn, it did it again. I think that I am copying the file before the disk cache is flushed or something because I make a change and it is sent to upx but the wrong version appears every once in a while. I am going back to manually doing it.
Posted on 2003-11-14 08:09:33 by donkey
Hi all,

I have uploaded build 2045 to the website. It includes a completely rewritten plugin loader, the loader is 100% compatible with the old version but now handles multiple menu items much better. You can also pass the a number in ECX from the TbxInstall proc that will reserve menu IDs. The menu srting that is returned from TbxInstall is now versioned, so far there is only one version plus the default old style:

RetString db "#1,MenuLabel,Item1,Item2,Item3",0

#1 = Version 1 (excluding this number will revert to the old single item version)
MenuLabel = Submenu name (this version creates a sub menu in the PlugIns menu)
Item1...= menu items

The menu items will be numbered sequentially beginning at the nTbxId value passed to the TbxInstall procedure from TBPaint. You return a pointer to this string in EAX to build the menu. If you wish to add your own menu items the Plug Ins menu handle is passed in the hTbxMenu parameter, you must reserve menu ID numbers, this is done by passing the total number of IDs your plug in requires in ECX (including at least one created by the string). If you add menu items the MENUITEMINFO structure *must* have a pointer to it's TbxInvoke procedure in the dwItemData member or it will be ignored, you can use this to have multiple TbxInvoke type procedures in a single plug in. The artificially imposed limit of 32 characters for a menu string has necessarily been lifted. A few other messages have been added, see the tbx.inc file for details.
Posted on 2003-11-19 03:26:23 by donkey
Hi donkey,

May i ask, will we use "Small Fonts" in "tbpaint" ?
Posted on 2003-11-20 14:06:09 by cakmak