module ws.bindings.fontconfig;

version(Posix):

import x11.Xlib;

extern(C):

	enum FC_CHARSET = "charset";
	enum FC_SCALABLE = "scalable";

	alias FcChar8 = char;
	alias FcChar32 = long;
	struct FcPattern {}
	struct FcCharSet{}
	
	enum FcResult {
	    FcResultMatch, FcResultNoMatch, FcResultTypeMismatch, FcResultNoId,
	    FcResultOutOfMemory
    }
	
	alias FcMatchKind = int;

	enum: FcMatchKind {
	    FcMatchPattern, FcMatchFont, FcMatchScan
	}
	
	Bool FcPatternAddBool(FcPattern*, const(char)*, Bool b);
	Bool FcPatternAddCharSet(FcPattern*, const(char)*, const(FcCharSet)*);
    Bool FcConfigSubstitute(void*, FcPattern*, FcMatchKind);
    FcCharSet* FcCharSetCreate();
    Bool FcCharSetAddChar(FcCharSet*, FcChar32);
	FcPattern* FcNameParse(const(char)* name);
	FcPattern* FcPatternDuplicate(FcPattern*);
	void FcDefaultSubstitute(FcPattern*);
	void FcPatternDestroy(FcPattern*);
	void FcCharSetDestroy(FcCharSet*);
	void FcPatternPrint(const FcPattern *p);
	FcPattern * FcFontMatch(FcConfig *config, FcPattern *p, FcResult *result);
	FcResult FcPatternGetInteger(FcPattern *p, const char *object, int n, int *i);
	FcResult FcPatternGetString(FcPattern *p, const char *object, int n, FcChar8 **s);
	alias FcConfig = void*;