mirror of
				https://github.com/cookiengineer/audacity
				synced 2025-11-04 08:04:06 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			73 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
/**********************************************************************
 | 
						|
 | 
						|
  Audacity: A Digital Audio Editor
 | 
						|
 | 
						|
  WxWishlist.dox2
 | 
						|
 | 
						|
  James Crook
 | 
						|
 | 
						|
********************************************************************//**
 | 
						|
 | 
						|
\page WxWishList WX Wish List
 | 
						|
 | 
						|
\section WxWishlistIntro Introduction
 | 
						|
 | 
						|
We're using this section to record requests for enhancements to 
 | 
						|
wxWidgets.  It's here in the documentation on the source code, because
 | 
						|
it indicates issues we have 'worked around' which we'd like a cleaner 
 | 
						|
solution to.
 | 
						|
 | 
						|
\section WxWishlistTransparency Transparency, Masks, Alpha, wxImages and wxBitmaps
 | 
						|
 | 
						|
At the time of writing, wxWidgets support for alpha-channel based 
 | 
						|
transparency is patchy.
 | 
						|
 | 
						|
 - Support for masks, that is all or nothing transparency, is excellent.
 | 
						|
 - Support for alpha channel transparency, that is where values between
 | 
						|
 0 and 255 let some but not all of the background show through, is 
 | 
						|
 incomplete.  It seems to be best supported on Windows, and least well
 | 
						|
 supported on Mac.
 | 
						|
 | 
						|
Mask based transparency leads to sharp edges that look blocky and 'dated' on
 | 
						|
modern PC's - so we try to use alpha blending when we need transparency .
 | 
						|
 | 
						|
Support for alpha blending in wxImage and wxBitmap is different.
 | 
						|
 | 
						|
  - wxImage is a platform neutral image.  There are nice functions
 | 
						|
  for loading and saving PNGs with transparency to or from a wxImage.
 | 
						|
  These work on all platforms we use.
 | 
						|
  - wxBitmap is a platform specific 'image'.  To display an image it 
 | 
						|
  must at some point be converted to a wxBitmap.
 | 
						|
 | 
						|
Now, a 32 bit wxBitmap has 24 bits for RGB and 8 bits for alpha.  Under
 | 
						|
WindowsXP you can paste wxBitmaps into a wxMemDc and preserve the alpha 
 | 
						|
channel.  However, when you convert to a wxImage, unless you use an 
 | 
						|
undocumented function which only works on WindowsXP, you lose it.  To 
 | 
						|
output a wxBitmap to a file you have to convert to a wxImage.
 | 
						|
 | 
						|
The workarounds for the incomplete alpha-channel support can be found
 | 
						|
in \ref ImageManipulation.cpp .  Also, in implementing \ref Themability 
 | 
						|
we keep both wxImages and wxBitmaps to work around the conversion 
 | 
						|
problems.
 | 
						|
 | 
						|
So, the wishlist item is for wxWidgets to sort this out!
 | 
						|
 | 
						|
\section WxWishlistTreebook wxTreeBook 
 | 
						|
 | 
						|
We know a wxTreeBook is coming in wxWidgets 2.7.0.  We're using 
 | 
						|
a contrib-version that works pretty well, but using it as 
 | 
						|
if it were a wxListBook.  We've tried using wxWidgets 2.6.3 
 | 
						|
undocumented versions of wxChoiceBook and wxListBook, and 
 | 
						|
in 2.6.3, neither is ready for prime time.
 | 
						|
 | 
						|
We're looking forward to having a built in wxTreeBook.
 | 
						|
 | 
						|
\section WxWishlist Docking And Layout System
 | 
						|
 | 
						|
There are contrib directories that have partial implementations of
 | 
						|
Toolbar docking and layout.  Our own system is rather hacked together, 
 | 
						|
and just about meets our needs.  We'd like a full strength system built
 | 
						|
in to wxWidgets.
 | 
						|
 | 
						|
 | 
						|
*//********************************************************************/ |