Seams like this one is for real Delphi geeks only.
This is how it looks (sorry, can’t post images)
Delphi IDE ugly toolbar

(source: piccy.info)
What’s wrong – disabled Delphi IDE toolbar and menu buttons are ugly black/white images.
What I want to do – make them look gray-scaled.
How? I made some research. Main problem in virtual TCustomImageList.DoDraw method. When paramater Enabled = False it paints ugly things (see disabled buttons on screenshot). I created my own override for this function and it paints gray-scaled images when Enabled = False
Now I want to replace default DoDraw with my own in IDE (using design-time package):
- I figured out that unit ImgList is compiled-in bds.exe, so trick with patching this function in
rtlXXX.bplwill not work. - Searching for function’s body content gave no result. Looks like bds.exe’s implementation (I’m talikng about machine codes) of
DoDrawis a bit different.
Any suggestions or ideas of how can I make this possible? As base example of runtime code patching I took Andy’s Midas Speed Fix: FindMethodPtr, HookProc, UnhookProc
I made it 🙂 Thanks to everyone who participated or viewed this question!
This is how my IDE looks now:
Fixed toolbar http://blog.frantic.im/wp-content/uploads/2009/11/delphi-ide-after.PNG
I just messed up with
vclXXX.pbl, my fault. Sources can be found here. Gradient toolbars must be enabled to make it work. If you are interested in further development of this idea – read this topic