#ifndef PREFSOBJECTS_MACROS_H
#define PREFSOBJECTS_MACROS_H

#include <libraries/application.h>

#define DictAllocSetStringForKey(dict, key, defaultstring) 	IPrefsObjects->DictSetObjectForKey(dict, \
			IPrefsObjects->PrefsString(NULL, NULL, ALPOSTR_AllocSetString, defaultstring, TAG_DONE), key)
#define DictAllocSetLongForKey(dict, key, defaultlong) 	IPrefsObjects->DictSetObjectForKey(dict,     \
			IPrefsObjects->PrefsNumber(NULL, NULL, ALPONUM_AllocSetLong, defaultlong, TAG_DONE), key)
#define DictAllocSetBoolForKey(dict, key, defaultbool) 	IPrefsObjects->DictSetObjectForKey(dict,     \
			IPrefsObjects->PrefsNumber(NULL, NULL, ALPONUM_AllocSetBool, defaultbool, TAG_DONE), key)

#define AllocDictionary()        IPrefsObjects->PrefsDictionary(NULL, NULL, ALPO_Alloc, 0, TAG_DONE)
#define ReleaseDictionary(dict)  IPrefsObjects->PrefsDictionary(dict, NULL, ALPO_Release, 0, TAG_DONE)

#define AllocSetString(defaultstring) IPrefsObjects->PrefsString(NULL, NULL, ALPOSTR_AllocSetString, defaultstring, TAG_DONE)

#define NewALPODict          	IPrefsObjects->PrefsDictionary(NULL, NULL
#define NewALPOArray         	IPrefsObjects->PrefsArray(NULL, NULL
#define NewALPOBase         	IPrefsObjects->PrefsBaseObject(NULL, NULL
#define NewALPOBin         		IPrefsObjects->PrefsBinary(NULL, NULL
#define NewALPODate         	IPrefsObjects->PrefsDate(NULL, NULL
#define NewALPONum         		IPrefsObjects->PrefsNumber(NULL, NULL
#define NewALPOString         	IPrefsObjects->PrefsString(NULL, NULL


#define ALPODict(po, error) 		IPrefsObjects->PrefsDictionary(po, &error
#define ALPOArray(po, error) 		IPrefsObjects->PrefsArray(po, &error
#define ALPOBase(po, error)         IPrefsObjects->PrefsBaseObject(po, &error
#define ALPOBin(po, error)         	IPrefsObjects->PrefsBinary(po, &error
#define ALPODate(po, error)         IPrefsObjects->PrefsDate(po, &error
#define ALPONum(po, error)         	IPrefsObjects->PrefsNumber(po, &error
#define ALPOString(po, error)       IPrefsObjects->PrefsString(po, &error

#define ALPOEnd					TAG_END)

#endif // PREFSOBJECTS_MACROS_H


