packages feed

wxcore-0.10.1: wxc/src/ewxw/eljfont.cpp

#include "wrapper.h"
#include "wx/fontenum.h"
#include "wx/fontmap.h"
#include "wx/encconv.h"

extern "C"
{

typedef int _cdecl (*TTextEnum) (void* _obj, void* _txt);

}

class ELJFontEnumerator : public wxFontEnumerator
{
	private:
		TTextEnum func;
		void*     EiffelObject;
	public:
		ELJFontEnumerator (void* _obj, void* _fnc) : wxFontEnumerator()
		{
			func = (TTextEnum)_fnc;
			EiffelObject = _obj;
		}
		
	    virtual bool OnFacename(const wxString& facename)
        { 
			return func(EiffelObject, (void*)facename.c_str()) != 0;
		}
		virtual bool OnFontEncoding(const wxString& WXUNUSED(facename), const wxString& encoding)
        {
			return func(EiffelObject, (void*)encoding.c_str()) != 0;
		}

};

extern "C"
{

EWXWEXPORT(void*, wxFont_Create) (int pointSize, int family, int style, int weight, int underlined, wxChar* face, int enc)
{
	return new wxFont (pointSize, family, style, weight, underlined != 0, face, (wxFontEncoding)enc);
}

EWXWEXPORT(void*, wxFont_CreateDefault)()
{
	return new wxFont ();
}

EWXWEXPORT(void, wxFont_Delete)(void* _obj)
{
	delete ((wxFont*)_obj);
}

EWXWEXPORT(int, wxFont_Ok)(void* _obj)
{
	return (int)((wxFont*)_obj)->Ok();
}
	
EWXWEXPORT(int, wxFont_GetPointSize)(void* _obj)
{
	return ((wxFont*)_obj)->GetPointSize();
}
	
EWXWEXPORT(int, wxFont_GetFamily)(void* _obj)
{
	return ((wxFont*)_obj)->GetFamily();
}
	
EWXWEXPORT(int, wxFont_GetStyle)(void* _obj)
{
	return ((wxFont*)_obj)->GetStyle();
}
	
EWXWEXPORT(int, wxFont_GetWeight)(void* _obj)
{
	return ((wxFont*)_obj)->GetWeight();
}
	
EWXWEXPORT(int, wxFont_GetUnderlined)(void* _obj)
{
	return (int)((wxFont*)_obj)->GetUnderlined();
}
	
EWXWEXPORT(int, wxFont_GetFaceName)(void* _obj, void* _buf)
{
	wxString result = ((wxFont*)_obj)->GetFaceName();
	return copyStrToBuf(_buf, result);
}
	
EWXWEXPORT(int, wxFont_GetEncoding)(void* _obj)
{
	return (int)((wxFont*)_obj)->GetEncoding();
}
	
EWXWEXPORT(void, wxFont_SetPointSize)(void* _obj, int pointSize)
{
	((wxFont*)_obj)->SetPointSize(pointSize);
}
	
EWXWEXPORT(void, wxFont_SetFamily)(void* _obj, int family)
{
	((wxFont*)_obj)->SetFamily(family);
}
	
EWXWEXPORT(void, wxFont_SetStyle)(void* _obj, int style)
{
	((wxFont*)_obj)->SetStyle(style);
}
	
EWXWEXPORT(void, wxFont_SetWeight)(void* _obj, int weight)
{
	((wxFont*)_obj)->SetWeight(weight);
}
	
EWXWEXPORT(void, wxFont_SetFaceName)(void* _obj, wxChar* faceName)
{
	((wxFont*)_obj)->SetFaceName(faceName);
}
	
EWXWEXPORT(void, wxFont_SetUnderlined)(void* _obj, int underlined)
{
	((wxFont*)_obj)->SetUnderlined(underlined != 0);
}
	
EWXWEXPORT(void, wxFont_SetEncoding)(void* _obj, int encoding)
{
	((wxFont*)_obj)->SetEncoding((wxFontEncoding)encoding);
}
	
EWXWEXPORT(int, wxFont_GetFamilyString)(void* _obj, void* _buf)
{
	wxString result = ((wxFont*)_obj)->GetFamilyString();
	return copyStrToBuf(_buf, result);
}
	
EWXWEXPORT(int, wxFont_GetStyleString)(void* _obj, void* _buf)
{
	wxString result = ((wxFont*)_obj)->GetStyleString();
	return copyStrToBuf(_buf, result);
}
	
EWXWEXPORT(int, wxFont_GetWeightString)(void* _obj, void* _buf)
{
	wxString result = ((wxFont*)_obj)->GetWeightString();
	return copyStrToBuf(_buf, result);
}
	
EWXWEXPORT(int, wxFont_GetDefaultEncoding)(void* _obj)
{
	return (int)((wxFont*)_obj)->GetDefaultEncoding();
}
	
EWXWEXPORT(void, wxFont_SetDefaultEncoding)(void* _obj, int encoding)
{
	((wxFont*)_obj)->SetDefaultEncoding((wxFontEncoding) encoding);
}
	

EWXWEXPORT(void*, wxFontEnumerator_Create)(void* _obj, void* _fnc)
{
	return (void*) new ELJFontEnumerator(_obj, _fnc);
}

EWXWEXPORT(void, wxFontEnumerator_Delete)(void* _obj)
{
	delete ((ELJFontEnumerator*)_obj);
}

EWXWEXPORT(int,wxFontEnumerator_EnumerateFacenames)(void* _obj, int encoding, int fixedWidthOnly)
{
	return (int)((ELJFontEnumerator*)_obj)->EnumerateFacenames((wxFontEncoding)encoding, fixedWidthOnly != 0);
}
	
EWXWEXPORT(int,wxFontEnumerator_EnumerateEncodings)(void* _obj, void* facename)
{
	return (int)((ELJFontEnumerator*)_obj)->EnumerateEncodings((const wxChar*)facename);
}
	

EWXWEXPORT(void*, wxFontMapper_Create)()
{
	return wxTheFontMapper;
}

EWXWEXPORT(int,wxFontMapper_GetAltForEncoding)(void* _obj, int encoding, void* alt_encoding, void* _buf)
{
	return (int)((wxFontMapper*)_obj)->GetAltForEncoding((wxFontEncoding)encoding, (wxFontEncoding*)alt_encoding, (const wxChar*)_buf, false);
}
	
EWXWEXPORT(int,wxFontMapper_IsEncodingAvailable)(void* _obj, int encoding, void* _buf)
{
	return (int)((wxFontMapper*)_obj)->IsEncodingAvailable((wxFontEncoding)encoding, (const wxChar*)_buf);
}
	

EWXWEXPORT(void*, wxEncodingConverter_Create)()
{
	return (void*) new wxEncodingConverter();
}

EWXWEXPORT(void, wxEncodingConverter_Delete)(void* _obj)
{
	delete (wxEncodingConverter*)_obj;
}

EWXWEXPORT(int,wxEncodingConverter_Init)(void* _obj, int input_enc, int output_enc, int method)
{
	return (int)((wxEncodingConverter*)_obj)->Init((wxFontEncoding)input_enc, (wxFontEncoding)output_enc, method);
}
	
EWXWEXPORT(void,wxEncodingConverter_Convert)(void* _obj, void* input, void* output)
{
	((wxEncodingConverter*)_obj)->Convert((const char*)input, (char*)output);
}

EWXWEXPORT(int,wxEncodingConverter_GetPlatformEquivalents)(void* _obj, int enc, int platform, void* _lst)
{
	wxFontEncodingArray arr = ((wxEncodingConverter*)_obj)->GetPlatformEquivalents((wxFontEncoding)enc, platform);
	if (_lst)
	{
		for (unsigned int i = 0; i < arr.GetCount(); i++)
			((int*)_lst)[i] = (int)arr.Item(i);
	}
	return (int)arr.GetCount();
}

EWXWEXPORT(int,wxEncodingConverter_GetAllEquivalents)(void* _obj, int enc, void* _lst)
{
	wxFontEncodingArray arr = ((wxEncodingConverter*)_obj)->GetAllEquivalents((wxFontEncoding)enc);
	if (_lst)
	{
		for (unsigned int i = 0; i < arr.GetCount(); i++)
			((int*)_lst)[i] = (int)arr.Item(i);
	}
	return (int)arr.GetCount();
}

}