############################################################################# ## Name: XS/Log.xs ## Purpose: XS for Wx::Log and derived classes ## Author: Mattia Barbon ## Modified by: ## Created: 29/10/2000 ## RCS-ID: $Id: Log.xs 3426 2013-01-19 06:29:12Z mdootson $ ## Copyright: (c) 2000-2003, 2005-2007, 2009, 2012-2013 Mattia Barbon ## Licence: This program is free software; you can redistribute it and/or ## modify it under the same terms as Perl itself ############################################################################# #include <wx/log.h> #include "cpp/log.h" MODULE=Wx PACKAGE=Wx::Log void wxLog::Destroy() CODE: delete THIS; bool IsEnabled() CODE: RETVAL = wxLog::IsEnabled(); OUTPUT: RETVAL bool EnableLogging( enable = true ) bool enable CODE: RETVAL = wxLog::EnableLogging( enable ); OUTPUT: RETVAL #if WXPERL_W_VERSION_GE( 2, 8, 5 ) void SetRepetitionCounting( RepetCounting = true ) bool RepetCounting CODE: wxLog::SetRepetitionCounting( RepetCounting ); bool GetRepetitionCounting() CODE: RETVAL = wxLog::GetRepetitionCounting(); OUTPUT: RETVAL void DoCreateOnDemand() CODE: wxLog::DoCreateOnDemand(); #endif void AddTraceMask( mask ) wxString mask CODE: wxLog::AddTraceMask( mask ); void ClearTraceMasks() CODE: wxLog::ClearTraceMasks(); void RemoveTraceMask( mask ) wxString mask CODE: wxLog::RemoveTraceMask( mask ); bool IsAllowedTraceMask( mask ) wxString mask CODE: RETVAL = wxLog::IsAllowedTraceMask( mask ); OUTPUT: RETVAL void GetTraceMasks() PPCODE: const wxArrayString& masksallowed = wxLog::GetTraceMasks(); PUTBACK; wxPli_stringarray_push( aTHX_ masksallowed ); SPAGAIN; wxLog* GetActiveTarget() CODE: RETVAL = wxLog::GetActiveTarget(); OUTPUT: RETVAL wxLog* SetActiveTarget( target ) wxLog* target CODE: RETVAL = wxLog::SetActiveTarget( target ); OUTPUT: RETVAL void DontCreateOnDemand() CODE: wxLog::DontCreateOnDemand(); void Suspend() CODE: wxLog::Suspend(); void Resume() CODE: wxLog::Resume(); wxLogLevel GetLogLevel() CODE: RETVAL = wxLog::GetLogLevel(); OUTPUT: RETVAL void SetLogLevel( loglevel ) wxLogLevel loglevel CODE: wxLog::SetLogLevel( loglevel ); void wxLog::Flush() ## // Allow static function call and previously ## // wrapped method call for FlushActive void FlushActive( myLog = NULL ) wxLog* myLog CODE: wxLog::FlushActive(); bool wxLog::HasPendingMessages() ## // Allow correct static function call and previously ## // wrapped method call for Get / SetVerbose ## // It all maps to a static call anyway. ## // Old code should still work # DECLARE_OVERLOAD( wlog, Wx::Log ) void SetVerbose( ... ) PPCODE: BEGIN_OVERLOAD() MATCH_VOIDM_REDISP_FUNCTION( Wx::Log::SetVerboseFunctionDefault ) MATCH_REDISP_COUNT_FUNCTION(wxPliOvl_wlog, Wx::Log::SetVerboseMethodDefault, 1 ) MATCH_REDISP_COUNT_FUNCTION(wxPliOvl_n, Wx::Log::SetVerboseFunctionParam, 1) MATCH_REDISP_COUNT_FUNCTION(wxPliOvl_wlog_n, Wx::Log::SetVerboseMethodParam, 2) END_OVERLOAD( "Wx::Log::SetVerbose" ) void SetVerboseFunctionDefault() CODE: wxLog::SetVerbose( true ); void SetVerboseMethodDefault( myLog ) wxLog* myLog CODE: wxLog::SetVerbose( true ); void SetVerboseFunctionParam( enable ) bool enable CODE: wxLog::SetVerbose( enable ); void SetVerboseMethodParam( myLog, enable ) wxLog* myLog bool enable CODE: wxLog::SetVerbose( enable ); bool GetVerbose( myLog = NULL ) wxLog* myLog CODE: RETVAL = wxLog::GetVerbose(); OUTPUT: RETVAL #if WXPERL_W_VERSION_GE( 2, 9, 0 ) void _SetTimestamp( format, buffer ) wxString format SV* buffer CODE: wxLog::SetTimestamp( format ); wxString wxLog::GetTimestamp(); #else void _SetTimestamp( format, buffer ) SV* format SV* buffer CODE: if( SvOK( ST(0) ) ) { const wxString format_tmp = ( SvUTF8( format ) ) ? ( wxString( SvPVutf8_nolen( format ), wxConvUTF8 ) ) : ( wxString( SvPV_nolen( format ), wxConvLibc ) ); const wxChar* fmt = (const wxChar*)format_tmp.c_str(); STRLEN size = wxStrlen( fmt ) * sizeof(wxChar) + sizeof(wxChar); SvUPGRADE( buffer, SVt_PV ); wxLog::SetTimestamp( wxStrcpy( (wxChar*)SvGROW( buffer, size ), fmt ) ); } else { wxLog::SetTimestamp( NULL ); } const wxChar* wxLog::GetTimestamp() #endif #if WXPERL_W_VERSION_GE( 2, 9, 0 ) void SetComponentLevel( component, level ) wxString component wxLogLevel level CODE: wxLog::SetComponentLevel( component, level ); wxLogLevel GetComponentLevel( component ) wxString component CODE: RETVAL = wxLog::GetComponentLevel( component ); OUTPUT: RETVAL bool IsLevelEnabled( level, component ) wxLogLevel level wxString component CODE: RETVAL = wxLog::IsLevelEnabled( level, component ); OUTPUT: RETVAL #endif #if WXPERL_W_VERSION_LT( 2, 9, 0 ) || WXWIN_COMPATIBILITY_2_8 void SetTraceMask( mask ) wxTraceMask mask CODE: wxLog::SetTraceMask( mask ); wxTraceMask GetTraceMask() CODE: RETVAL = wxLog::GetTraceMask(); OUTPUT: RETVAL #endif MODULE=Wx PACKAGE=Wx::PlLog wxPlLog* wxPlLog::new() CODE: RETVAL = new wxPlLog( CLASS ); OUTPUT: RETVAL MODULE=Wx PACKAGE=Wx::LogTextCtrl wxLogTextCtrl* wxLogTextCtrl::new( ctrl ) wxTextCtrl* ctrl MODULE=Wx PACKAGE=Wx::LogNull wxLogNull* wxLogNull::new() static void wxLogNull::CLONE() CODE: wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object ); ## // thread OK void wxLogNull::DESTROY() CODE: wxPli_thread_sv_unregister( aTHX_ "Wx::LogNull", THIS, ST(0) ); delete THIS; MODULE=Wx PACKAGE=Wx::LogGui wxLogGui* wxLogGui::new() MODULE=Wx PACKAGE=Wx::LogWindow wxLogWindow* wxLogWindow::new( parent, title, show = true, passtoold = true ) wxFrame* parent wxString title bool show bool passtoold MODULE=Wx PACKAGE=Wx # this is a test for INTERFACE: # in this specific case it saves around 256 bytes / function, # more for more complex typemaps / longer parameter lists #if 0 #define XSINTERFACE__wxstring( _ret, _cv, _f ) \ ( ( void (*)( const wxString& ) ) _f) #define XSINTERFACE__wxstring_SET( _cv, _f ) \ ( CvXSUBANY( _cv ).any_ptr = (void*) _f ) #undef dXSFUNCTION #define dXSFUNCTION( a ) \ void (*XSFUNCTION)( const wxString& ) void interface__wxstring( string ) wxString string INTERFACE_MACRO: XSINTERFACE__wxstring XSINTERFACE__wxstring_SET INTERFACE: wxLogError wxLogFatalError wxLogWarning wxLogVerbose wxLogDebug wxLogMessage #else #if WXPERL_W_VERSION_GE( 2, 9, 0 ) void wxLogError( string ) wxString string void wxLogFatalError( string ) wxString string void wxLogWarning( string ) wxString string void wxLogMessage( string ) wxString string void wxLogVerbose( string ) wxString string void wxLogDebug( string ) wxString string #else void wxLogError( string ) const wxChar* string void wxLogFatalError( string ) const wxChar* string void wxLogWarning( string ) const wxChar* string void wxLogMessage( string ) const wxChar* string void wxLogVerbose( string ) const wxChar* string void wxLogDebug( string ) const wxChar* string #endif #endif void wxLogStatusFrame( frame, string ) wxFrame* frame const wxChar* string CODE: wxLogStatus( frame, string ); void wxLogStatus( string ) const wxChar* string #if WXPERL_W_VERSION_LE( 2, 5, 0 ) void wxLogTrace( string ) const wxChar* string #endif void wxLogTraceMask( mask, string ) const wxChar* mask const wxChar* string CODE: wxLogTrace( mask, string ); void wxLogSysError( string ) const wxChar* string MODULE=Wx PACKAGE=Wx PREFIX=wx unsigned long wxSysErrorCode() const wxChar* wxSysErrorMsg( errCode = 0 ) unsigned long errCode MODULE=Wx PACKAGE=Wx::LogChain wxLogChain* wxLogChain::new( logger ) wxLog* logger wxLog* wxLogChain::GetOldLog() #if WXPERL_W_VERSION_GE( 2, 8, 5 ) void wxLogChain::DetachOldLog() #endif bool wxLogChain::IsPassingMessages() void wxLogChain::PassMessages( passMessages ) bool passMessages void wxLogChain::SetLog( logger ) wxLog* logger MODULE=Wx PACKAGE=Wx::LogPassThrough wxLogPassThrough* wxLogPassThrough::new() MODULE=Wx PACKAGE=Wx::PlLogPassThrough wxPlLogPassThrough* wxPlLogPassThrough::new() CODE: RETVAL = new wxPlLogPassThrough( CLASS ); OUTPUT: RETVAL MODULE=Wx PACKAGE=Wx::LogStderr wxLogStderr* wxLogStderr::new( fp = NULL ) FILE* fp; #if WXPERL_W_VERSION_GE( 2, 9, 0 ) MODULE=Wx PACKAGE=Wx::PlLogFormatter wxPlLogFormatter* wxPlLogFormatter::new() CODE: RETVAL = new wxPlLogFormatter( CLASS ); OUTPUT: RETVAL void wxPlLogFormatter::Destroy() CODE: delete THIS; MODULE=Wx PACKAGE=Wx::LogFormatter void wxLogFormatter::Destroy() CODE: delete THIS; MODULE=Wx PACKAGE=Wx::LogRecordInfo const char* wxLogRecordInfo::filename() CODE: RETVAL = THIS->filename; OUTPUT: RETVAL int wxLogRecordInfo::line() CODE: RETVAL = THIS->line; OUTPUT: RETVAL const char* wxLogRecordInfo::func() CODE: RETVAL = THIS->func; OUTPUT: RETVAL const char* wxLogRecordInfo::component() CODE: RETVAL = THIS->filename; OUTPUT: RETVAL time_t wxLogRecordInfo::timestamp() CODE: RETVAL = THIS->timestamp; OUTPUT: RETVAL void StoreValue( ... ) PPCODE: BEGIN_OVERLOAD() MATCH_REDISP_COUNT(wxPliOvl_s_n, Wx::LogRecordInfo::StoreNumValue, 2 ) MATCH_REDISP_COUNT(wxPliOvl_s_s, Wx::LogRecordInfo::StoreStrValue, 2 ) END_OVERLOAD( "Wx::LogRecordInfo::StoreValue" ) void wxLogRecordInfo::StoreNumValue( key, val ) wxString key wxUIntPtr val CODE: THIS->StoreValue( key, val ); void wxLogRecordInfo::StoreStrValue( key, val ) wxString key wxString val CODE: THIS->StoreValue( key, val ); void wxLogRecordInfo::GetNumValue( key ) wxString key PREINIT: wxUIntPtr val; PPCODE: bool result = THIS->GetNumValue( key, &val); EXTEND( SP, 1 ); if(result) { PUSHs( sv_2mortal( newSVuv( val ) ) ); } else { PUSHs( &PL_sv_undef ); } void wxLogRecordInfo::GetStrValue( key ) wxString key PREINIT: wxString val; PPCODE: bool result = THIS->GetStrValue( key, &val); EXTEND( SP, 1 ); if(result) { SV* sv = sv_newmortal(); wxPli_wxString_2_sv( aTHX_ val, sv ); } else { PUSHs( &PL_sv_undef ); } #endif