X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fext-value.h;fp=src%2Fext-value.h;h=a5002bb349973bd22d864854da59d5c0223408cb;hb=5b7b5519d955cd0c99d094ba140514e0a2b73083;hp=0000000000000000000000000000000000000000;hpb=8988b3bef0760b4cab8144715cc3d8f55688861c;p=chaz%2Fhomebank diff --git a/src/ext-value.h b/src/ext-value.h new file mode 100644 index 0000000..a5002bb --- /dev/null +++ b/src/ext-value.h @@ -0,0 +1,64 @@ + +#ifndef __EXT_VALUE_H__ +#define __EXT_VALUE_H__ + +#include "homebank.h" + + +#define DA_TYPE_ACC (da_acc_get_type()) +#define DA_TYPE_TRANSACTION (da_transaction_get_type()) + +#define obj(_1, _2, _3, _4, PREFIX) GType PREFIX##get_type(void); +#include "ext-value.h" +#undef obj + + +#define val(CTYPE, NAME, PART, GTYPE) \ +static inline GValue* EXT_##NAME(GValue* v, CTYPE c) { \ + g_value_init(v, GTYPE); \ + g_value_set_##PART(v, c); \ + return v; \ +} +#define obj(CTYPE, NAME, PART, GTYPE, _5) val(CTYPE*, NAME, PART, GTYPE) +#include "ext-value.h" +#undef val +#undef obj + + +const GValue* ext_value_undef(void); +const GValue* ext_value_true(void); +const GValue* ext_value_false(void); + +#define EXT_UNDEF (ext_value_undef()) +#define EXT_TRUE (ext_value_true()) +#define EXT_FALSE (ext_value_false()) + +GValue* EXT_LIST(GValue* v, ...); +GValue* EXT_HASH(GValue* v, ...); +GValue* EXT_JULIAN(GValue* v, guint32 d); + + +#else + +#ifdef val +// C type, name, fundamental, GType +val(gboolean, BOOLEAN, boolean, G_TYPE_BOOLEAN) +val(gint, INT, int, G_TYPE_INT) +val(guint, UINT, uint, G_TYPE_UINT) +val(gdouble, DOUBLE, double, G_TYPE_DOUBLE) +val(gchar, CHAR, schar, G_TYPE_CHAR) +val(gchar*, STRING, string, G_TYPE_STRING) +val(GPtrArray*, ARRAY, boxed, G_TYPE_PTR_ARRAY) +val(GHashTable*, HASH_TABLE, boxed, G_TYPE_HASH_TABLE) +val(GDate*, DATE, boxed, G_TYPE_DATE) +val(void*, OBJECT, object, G_TYPE_OBJECT) +#endif + +#ifdef obj +// C type, name, fundamental, GType, prefix +obj(Account, ACCOUNT, pointer, DA_TYPE_ACC, da_acc_) +obj(Transaction, TRANSACTION, pointer, DA_TYPE_TRANSACTION, da_transaction_) +#endif + +#endif +