* Get rid of #if wxUSE_SOUND from header. wx/sound.h checks this already.
* Get rid of pragma interface/implementation. Apple GCC dislikes them anyway.
* Allow source file to use precompiled headers (wx/wxprec.h)
* Include only needed AppKit/Foundation headers, not AppKit/AppKit.h.
* Implement simple constructors inline in header.
* Get rid of m_sndname and m_waveLength instance variables. They aren't used.
* Add copy constructor (why not).
* Move implementation of byte-array constructor into LoadWAV for consistency
with UNIX wxSound.
* LoadWAV (what was in the constructor) now properly allocs, inits, and
releases NSData. The old code for this was not valid.
* Rename lastSound to s_currentSound.
* Rename isLastSoundLooping to s_loopCurrentSound.
* Ignore the sound:didFinishPlaying: delegate message if it is received
for an NSSound other than s_currentSound.
* Create should not Stop the current sound.
* Don't use NSBundle to get a resource sound but use [NSSound soundNamed:]
which will include system sounds.
* Playing a sound synchronously uses wxEventLoop::Dispatch which will
really block (not spin the CPU like Yield). The sound is considered
finished playing when s_currentSound is set to something else. In order
to make sure we don't get stuck in this event loop the delegate
calls wxApp::WakeUpIdle if it releases s_currentSound.
* Have IsPlaying() check to make sure s_currentSound is not nil since
only messages returning another object or void are allowed to be
sent to nil objects.
Changes involving retain/release
* Get rid of comment about tricky API, it's not.
* Get rid of isLastSoundInScope. Cocoa has proper reference counting.
* Add SetNSSound which, like the rest of wxCocoa, retains/releases
appropriately, sets the delegate, and logs when WXTRACE=COCOA_RetainRelease.
* Destructor does SetNSSound(nil) which will always release the NSSound.
Create and LoadWAV use SetNSSound method like the rest of wxCocoa.
* Make the delegate always release s_currentSound if not (or if done) looping.
DoPlay sets s_currentSound to m_cocoaNSSound after retaining it so that
the delegate can always safely release it.
* Stop, like everything else, does not need check of isLastSoundInScope
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30043 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
block for an infinite amount of time but rather to not block at all.
Also added a bit of an overview since apparently the purpose of this code
was not readily apparent even with the existing comments.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29986 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
Changed YES/NO to true/false; do not confuse BOOL (Objective-C) with bool (C++).
Changed some of the indentation to match that the rest of wxCocoa.
There was an if (isLastSoundInScope = NO) which I think was wrong not only
because it used NO rather than false but also because it's an assignment
rather than a test. Changed it to if (!isLastSoundInScope).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29972 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
(there may be intervening controls). Without this fix, an out-of-sync
assert is generated when clicking on a radio button and then calling
GetValue().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29971 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
those of the preexisting wxMac class. This should
make transition of the wxMac classes to the new
wxPrintNativeData classes easier.
Renamed wxWindowsPrintNativeData to a proper name
that is less confusing (GetNativeData -> GetDevMode).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29956 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
data into native dirs and cleaning up the code.
The native part of wxPrintData is now created
via the wxPrintFactory. I moved the code for
PostScript to /src/generic/prntdlgg. and for
MSW to its the respective dir. I only made
wxMac compile, but it already has a native
print data class, which should be easy to
merge.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29947 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775