packages feed

wxcore-0.10.1: wxc/src/eljmime.cpp

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

extern "C"
{

EWXWEXPORT(void*, wxMimeTypesManager_Create) ()
{
        return (void*) wxTheMimeTypesManager;
}

EWXWEXPORT(void*, wxMimeTypesManager_GetFileTypeFromExtension) (void* _obj, void* _ext)
{
        return (void*)((wxMimeTypesManager*)_obj)->GetFileTypeFromExtension((const wxChar*)_ext);
}

EWXWEXPORT(void*, wxMimeTypesManager_GetFileTypeFromMimeType) (void* _obj, void* _name)
{
        return (void*)((wxMimeTypesManager*)_obj)->GetFileTypeFromMimeType((const wxChar*)_name);
}

EWXWEXPORT(int, wxMimeTypesManager_ReadMailcap) (void* _obj, void* _file, int _fb)
{
        return (int)((wxMimeTypesManager*)_obj)->ReadMailcap((const wxChar*)_file, _fb != 0);
}

EWXWEXPORT(int, wxMimeTypesManager_ReadMimeTypes) (void* _obj, void* _file)
{
        return (int)((wxMimeTypesManager*)_obj)->ReadMimeTypes((const wxChar*)_file);
}

EWXWEXPORT(int, wxMimeTypesManager_EnumAllFileTypes) (void* _obj, void* _lst)
{
        wxArrayString arr;
        int result = (int)((wxMimeTypesManager*)_obj)->EnumAllFileTypes(arr);

        if (_lst)
        {
                for (unsigned int i = 0; i < arr.GetCount(); i++)
                        ((const wxChar**)_lst)[i] = wxStrdup (arr.Item(i).c_str());
        }

        return result;
}

EWXWEXPORT(void, wxMimeTypesManager_AddFallbacks) (void* _obj, void* _types)
{
        ((wxMimeTypesManager*)_obj)->AddFallbacks((const wxFileTypeInfo*)_types);
}

EWXWEXPORT(int, wxMimeTypesManager_IsOfType)(void* _obj, void* _type, void* _wildcard)
{
        return (int)((wxMimeTypesManager*)_obj)->IsOfType ((const wxChar*)_type, (const wxChar*)_wildcard);
}


EWXWEXPORT(int, wxFileType_GetMimeType) (void* _obj, void* _buf)
{
        wxString result;

        if (((wxFileType*)_obj)->GetMimeType(&result) && _buf)
                copyStrToBuf(_buf, result);

        return result.Length();
}

EWXWEXPORT(int, wxFileType_GetMimeTypes) (void* _obj, void* _lst)
{
        wxArrayString arr;

        if (((wxFileType*)_obj)->GetMimeTypes(arr) && _lst)
        {
                for (unsigned int i = 0; i < arr.GetCount(); i++)
                        ((const wxChar**)_lst)[i] = wxStrdup (arr.Item(i).c_str());
        }

        return arr.GetCount();
}

EWXWEXPORT(int, wxFileType_GetExtensions) (void* _obj, void* _lst)
{
        wxArrayString arr;

        if (((wxFileType*)_obj)->GetExtensions(arr) && _lst)
        {
                for (unsigned int i = 0; i < arr.GetCount(); i++)
                        ((const wxChar**)_lst)[i] = wxStrdup (arr.Item(i).c_str());
        }

        return arr.GetCount();
}

EWXWEXPORT(int, wxFileType_GetIcon) (void* _obj, void *icon)
{
#if wxCHECK_VERSION(2,5,0)
	wxIconLocation iconLoc;
	int res = ((wxFileType*)_obj)->GetIcon(&iconLoc);
	*((wxIcon*)icon) = wxIcon(iconLoc);
	return res;
#else
	return (int)((wxFileType*)_obj)->GetIcon((wxIcon*)icon);
#endif
}

EWXWEXPORT(int, wxFileType_GetDescription) (void* _obj, void* _buf)
{
        wxString result;

        if (((wxFileType*)_obj)->GetDescription(&result) && _buf)
                copyStrToBuf(_buf, result);

        return result.Length();
}

EWXWEXPORT(int, wxFileType_GetOpenCommand) (void* _obj, void* _buf, void* _params)
{
        wxString result;

        if (((wxFileType*)_obj)->GetOpenCommand(&result, *((wxFileType::MessageParameters*)_params)) && _buf)
                copyStrToBuf(_buf, result);

        return result.Length();
}

EWXWEXPORT(int, wxFileType_GetPrintCommand) (void* _obj, void* _buf, void* _params)
{
        wxString result;

        if (((wxFileType*)_obj)->GetPrintCommand(&result, *((wxFileType::MessageParameters*)_params)) && _buf)
                copyStrToBuf(_buf, result);

        return result.Length();
}

EWXWEXPORT(int, wxFileType_ExpandCommand) (void* _obj, void* _cmd, void* _params, void* _buf)
{
        wxString result = ((wxFileType*)_obj)->ExpandCommand((const wxChar*)_cmd, *((wxFileType::MessageParameters*)_params));

        return copyStrToBuf(_buf, result);
}

EWXWEXPORT(void, wxFileType_Delete) (void* _obj)
{
        delete (wxFileType*)_obj;
}


}