packages feed

wxcore-0.13.2: src/cpp/eljlog.cpp

#include "wrapper.h"
#include "wx/log.h"

extern "C"
{

typedef void (*TLogFunc) (void*, int, void*, int);

}

class ELJLog : public wxLog
{
	private:
		TLogFunc func;
		void*    EiffelObject;
		
    protected:
		virtual void DoLog(wxLogLevel level, const wxChar *szString, time_t t)
                  {
                    wxString s(szString);
                    func (EiffelObject, (int)level, (void*)&s , (int)t);
                  }

	public:
		ELJLog (void* _obj, void* _fnc) : wxLog()
		{
			func = (TLogFunc)_fnc;
			EiffelObject = _obj;
		}
};

extern "C"
{

EWXWEXPORT(void*,ELJLog_Create)(void* self,void* _fnc)
{
	return (void*)new ELJLog(self, _fnc);
}

EWXWEXPORT(void,ELJLog_Delete)(ELJLog* self)
{
	delete self;
}

EWXWEXPORT(bool,ELJLog_IsEnabled)(ELJLog* self)
{
	return self->IsEnabled();
}
	
EWXWEXPORT(int,ELJLog_EnableLogging)(ELJLog* self,bool doIt)
{
	return (int)self->EnableLogging(doIt);
}
	
EWXWEXPORT(void,ELJLog_OnLog)(ELJLog* self,int level,void* szString,int t)
{
	self->OnLog((wxLogLevel)level, (const wxChar*)szString, (time_t)t);
}
	
EWXWEXPORT(void,ELJLog_Flush)(ELJLog* self)
{
	self->Flush();
}
	
EWXWEXPORT(int,ELJLog_HasPendingMessages)(ELJLog* self)
{
	return (int)self->HasPendingMessages();
}
	
EWXWEXPORT(void,ELJLog_FlushActive)(ELJLog* self)
{
	self->FlushActive();
}
	
EWXWEXPORT(void*,ELJLog_GetActiveTarget)()
{
	return (void*)ELJLog::GetActiveTarget();
}
	
EWXWEXPORT(void*,ELJLog_SetActiveTarget)(wxLog* pLogger)
{
	return (void*)ELJLog::SetActiveTarget(pLogger);
}
	
EWXWEXPORT(void,ELJLog_Suspend)(ELJLog* self)
{
	self->Suspend();
}
	
EWXWEXPORT(void,ELJLog_Resume)(ELJLog* self)
{
	self->Resume();
}
	
EWXWEXPORT(void,ELJLog_SetVerbose)(ELJLog* self,bool bVerbose)
{
	self->SetVerbose(bVerbose);
}
	
EWXWEXPORT(void,ELJLog_DontCreateOnDemand)(ELJLog* self)
{
	self->DontCreateOnDemand();
}
	
EWXWEXPORT(void,ELJLog_SetTraceMask)(ELJLog* self,int ulMask)
{
	self->SetTraceMask((wxTraceMask)ulMask);
}
	
EWXWEXPORT(void,ELJLog_AddTraceMask)(ELJLog* self,void* str)
{
	self->AddTraceMask((const wxChar*)str);
}
	
EWXWEXPORT(void,ELJLog_RemoveTraceMask)(ELJLog* self,void* str)
{
	self->RemoveTraceMask((const wxChar*)str);
}
	
EWXWEXPORT(void,ELJLog_SetTimestamp)(ELJLog* self,void* ts)
{
	self->SetTimestamp((const wxChar*)ts);
}
	
EWXWEXPORT(int,ELJLog_GetVerbose)(ELJLog* self)
{
	return (int)self->GetVerbose();
}
	
EWXWEXPORT(int,ELJLog_GetTraceMask)(ELJLog* self)
{
	return (int)self->GetTraceMask();
}
	
EWXWEXPORT(bool,ELJLog_IsAllowedTraceMask)(ELJLog* self,void* mask)
{
	return self->IsAllowedTraceMask((const wxChar*)mask);
}
	
EWXWEXPORT(void*,ELJLog_GetTimestamp)(ELJLog* self)
{
#if (wxVERSION_NUMBER < 2900)
	return (void*)self->GetTimestamp();
#else
    wxString retVal = self->GetTimestamp();
    return (void*) retVal.wchar_str();
#endif
}

EWXWEXPORT(int,ELJSysErrorCode)()
{
	return (int)wxSysErrorCode();
}

EWXWEXPORT(void*,ELJSysErrorMsg)(int nErrCode)
{
	return (void*)wxSysErrorMsg((unsigned long)nErrCode);
}

EWXWEXPORT(void,LogErrorMsg)(wxString* _msg)
{
	wxLogError(*_msg);
}

EWXWEXPORT(void,LogFatalErrorMsg)(wxString* _msg)
{
	wxLogFatalError(*_msg);
}

EWXWEXPORT(void,LogWarningMsg)(wxString* _msg)
{
	wxLogWarning(*_msg);
}

EWXWEXPORT(void,LogMessageMsg)(wxString* _msg)
{
	wxLogMessage(*_msg);
}


EWXWEXPORT(void*,wxLogChain_Create)(void* logger)
{
	return new wxLogChain ((wxLog*)logger);
}

EWXWEXPORT(void,wxLogChain_Delete)(wxLogChain* self)
{
	delete self;
}

EWXWEXPORT(void,wxLogChain_SetLog)(wxLogChain* self,wxLog* logger)
{
	self->SetLog(logger);
}
	
EWXWEXPORT(void,wxLogChain_PassMessages)(wxLogChain* self,bool bDoPass)
{
	self->PassMessages(bDoPass);
}
	
EWXWEXPORT(bool,wxLogChain_IsPassingMessages)(wxLogChain* self)
{
	return self->IsPassingMessages();
}
	
EWXWEXPORT(void*,wxLogChain_GetOldLog)(wxLogChain* self)
{
	return (void*)self->GetOldLog();
}
	
}