added RequestUserAttention

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31189 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2004-12-29 10:10:14 +00:00
parent 23a59c2cbe
commit 3feeb1e1e0
3 changed files with 53 additions and 0 deletions

View File

@@ -306,6 +306,30 @@ protected :
bool m_release ; bool m_release ;
} ; } ;
//
// helper class for allocating and deallocating Universal Proc Ptrs
//
template <typename procType, typename uppType , uppType (*newUPP)(procType) , void (*disposeUPP)(uppType) > class wxMacUPP
{
public :
wxMacUPP( procType proc )
{
m_upp = NULL ;
m_upp = (*newUPP)( NULL ) ;
}
~wxMacUPP()
{
if ( m_upp )
disposeUPP( m_upp ) ;
}
operator uppType() { return m_upp ; }
private :
uppType m_upp ;
} ;
typedef wxMacUPP<NMProcPtr,NMUPP,NewNMUPP,DisposeNMUPP> wxMacNMUPP ;
#if wxUSE_GUI #if wxUSE_GUI
GWorldPtr wxMacCreateGWorld( int width , int height , int depth ) ; GWorldPtr wxMacCreateGWorld( int width , int height , int depth ) ;

View File

@@ -55,6 +55,10 @@ public:
virtual wxPoint GetClientAreaOrigin() const; virtual wxPoint GetClientAreaOrigin() const;
// Attracts the users attention to this window if the application is
// inactive (should be called when a background event occurs)
virtual void RequestUserAttention(int flags = wxUSER_ATTENTION_INFO);
// implement base class pure virtuals // implement base class pure virtuals
virtual void Maximize(bool maximize = TRUE); virtual void Maximize(bool maximize = TRUE);
virtual bool IsMaximized() const; virtual bool IsMaximized() const;

View File

@@ -1373,6 +1373,31 @@ wxUint32 wxTopLevelWindowMac::MacGetWindowAttributes() const
return attr ; return attr ;
} }
// Attracts the users attention to this window if the application is
// inactive (should be called when a background event occurs)
static pascal void wxMacNMResponse( NMRecPtr ptr )
{
NMRemove( ptr ) ;
DisposePtr( (Ptr) ptr ) ;
}
void wxTopLevelWindowMac::RequestUserAttention(int flags )
{
NMRecPtr notificationRequest = (NMRecPtr) NewPtr( sizeof( NMRec) ) ;
static wxMacNMUPP nmupp( wxMacNMResponse )
;
memset( notificationRequest , 0 , sizeof(*notificationRequest) ) ;
notificationRequest->qType = nmType ;
notificationRequest->nmMark = 1 ;
notificationRequest->nmIcon = 0 ;
notificationRequest->nmSound = 0 ;
notificationRequest->nmStr = NULL ;
notificationRequest->nmResp = nmupp ;
verify_noerr( NMInstall( notificationRequest ) ) ;
}
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
// Shape implementation // Shape implementation
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------