I decided to take the "easy way out" while getting AAC::Pvoice::Bitmap to work. That class uses Image::Magick to convert, resize and annotate images for pVoice. However, I wasn't able to get Image::Magick 6.x to work on OS X (and according to what I've found on Google, I'm not the only one).
Therefore I reverted back to an older version of this class that didn't use Image::Magick, but simply Wx::Image. That of course results in less fileformats to be supported, but at least it works.
Two other things I ran into, are:
- wxSTAY_ON_TOP
I used this flag for the dialog windows, to make sure they always stayed on top of the main pVoice window. That worked fine under MSWin32, however, its side-effect on non-Win32 platforms is that when you launch another window from any dialog created with this flag, that launched window never gets the focus. The preferences window launches a Wx::ColourDialog for example, and because the Preferences window always 'Stays On Top', you can never select a colour from the ColourDialog.
It turns out that wxWidgets now has a wxFRAME_FLOAT_ON_PARENT flag, that is supposed to Do What I Mean.
- SetBackgroundColour on buttons
The preferences window allows the user to modify the appearance of the application by changing colours and fonts. Therefore I had a number of buttons on which I set the current colour and when the user clicked it, the ColourDialog popped up. On Windows (and GTK) this works fine: you do a $button->SetBackgroundColour($colour), don't put any text on it, and you have a colourful button. However, on OS X this results in an empty, standard-coloured button, with a coloured background around the button itself. That wasn't the plan. Don't know yet how I'll work around it.
- Speech::Synthesis
Since I released the 0.03 version of Speech::Synthesis, I modified pVoice to use this module for all Text To Speech related tasks. Therefore the Pvoice::TTS module (part of the pVoice sources) is now obsolete. The S::S module supports MSAgent, SAPI4 and SAPI5 on Win32, Mac::Speech on OS X and Festival (Festival::Client::Async) on all platforms.
More to come later...