packages feed

wxcore-0.10.3: wxc/src/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)
		{
			func (EiffelObject, (int)level, (void*)szString, (int)t);
		}

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

extern "C"
{

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

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

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

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

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

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

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

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

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


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

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

EWXWEXPORT(void,wxLogChain_SetLog)(void* _obj, void* logger)
{
	((wxLogChain*)_obj)->SetLog((wxLog*)logger);
}
	
EWXWEXPORT(void,wxLogChain_PassMessages)(void* _obj, int bDoPass)
{
	((wxLogChain*)_obj)->PassMessages(bDoPass != 0);
}
	
EWXWEXPORT(int,wxLogChain_IsPassingMessages)(void* _obj)
{
	return (int)((wxLogChain*)_obj)->IsPassingMessages();
}
	
EWXWEXPORT(void*,wxLogChain_GetOldLog)(void* _obj)
{
	return (void*)((wxLogChain*)_obj)->GetOldLog();
}
	

}