FILE *fp = fopen_p(path, "a");
/* Make temp data */
- struct _cache_info info = {
+ struct _CacheInfo info = {
.fp = fp,
.path = path,
.callback = callback,
/* GisCallback */
G_DEFINE_TYPE(GisCallback, gis_callback, GIS_TYPE_OBJECT);
-static void gis_callback_init(GisCallback *cb) { }
-static void gis_callback_class_init(GisCallbackClass *klass) { }
+static void gis_callback_init(GisCallback *cb)
+{
+}
+
+static void gis_callback_class_init(GisCallbackClass *klass)
+{
+}
GisCallback *gis_callback_new(GisCallbackFunc callback, gpointer user_data)
{
#include "gis-object.h"
/* GisCallback */
-#define GIS_TYPE_CALLBACK (gis_callback_get_type())
+#define GIS_TYPE_CALLBACK (gis_callback_get_type())
+#define GIS_CALLBACK(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GIS_TYPE_CALLBACK, GisCallback))
+#define GIS_IS_CALLBACK(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GIS_TYPE_CALLBACK))
+#define GIS_CALLBACK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIS_TYPE_CALLBACK, GisCallbackClass))
+#define GIS_IS_CALLBACK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIS_TYPE_CALLBACK))
+#define GIS_CALLBACK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIS_TYPE_CALLBACK, GisCallbackClass))
-GOBJECT_HEAD(
- GIS, CALLBACK,
- Gis, Callback,
- gis, callback);
+typedef struct _GisCallback GisCallback;
+typedef struct _GisCallbackClass GisCallbackClass;
typedef gpointer (*GisCallbackFunc)(GisCallback *callback, gpointer user_data);
GisObjectClass parent_class;
};
+GType gis_callback_get_type(void);
+
GisCallback *gis_callback_new(GisCallbackFunc callback, gpointer user_data);
#endif
}
G_DEFINE_TYPE(GisMarker, gis_marker, GIS_TYPE_OBJECT);
-static void gis_marker_init(GisMarker *marker) { }
+static void gis_marker_init(GisMarker *marker)
+{
+}
static void gis_marker_finalize(GObject *_marker)
{
#include "gis-object.h"
/* GisMarker */
-#define GIS_TYPE_MARKER (gis_marker_get_type())
+#define GIS_TYPE_MARKER (gis_marker_get_type())
+#define GIS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GIS_TYPE_MARKER, GisMarker))
+#define GIS_IS_MARKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GIS_TYPE_MARKER))
+#define GIS_MARKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIS_TYPE_MARKER, GisMarkerClass))
+#define GIS_IS_MARKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIS_TYPE_MARKER))
+#define GIS_MARKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIS_TYPE_MARKER, GisMarkerClass))
-GOBJECT_HEAD(
- GIS, MARKER,
- Gis, Marker,
- gis, marker);
+typedef struct _GisMarker GisMarker;
+typedef struct _GisMarkerClass GisMarkerClass;
struct _GisMarker {
GisObject parent_instance;
GisObjectClass parent_class;
};
+GType gis_marker_get_type(void);
+
GisMarker *gis_marker_new(const gchar *label);
#endif
#include <config.h>
#include "gis-object.h"
+
/* GisPoint */
GisPoint *gis_point_new()
{
/* GisObject */
-G_DEFINE_TYPE(GisObject, gis_object, G_TYPE_OBJECT);
-static void gis_object_init(GisObject *object) { }
-static void gis_object_class_init(GisObjectClass *klass) { }
+G_DEFINE_ABSTRACT_TYPE(GisObject, gis_object, G_TYPE_OBJECT);
+static void gis_object_init(GisObject *object)
+{
+}
+
+static void gis_object_class_init(GisObjectClass *klass)
+{
+}
#include <glib.h>
#include <glib-object.h>
-/* Take that GLib boilerplate! */
-#define GOBJECT_HEAD( \
- MAM, BAR, \
- Mam, Bar, \
- mam, bar) \
-GType mam##_##bar##_get_type(void); \
-typedef struct _##Mam##Bar Mam##Bar; \
-typedef struct _##Mam##Bar##Class Mam##Bar##Class; \
-static inline Mam##Bar *MAM##_##BAR(gpointer obj) { \
- return G_TYPE_CHECK_INSTANCE_CAST(obj, MAM##_TYPE_##BAR, Mam##Bar); \
-} \
-static inline gboolean MAM##_IS_##BAR(gpointer obj) { \
- return G_TYPE_CHECK_INSTANCE_TYPE(obj, MAM##_TYPE_##BAR); \
-} \
-static inline Mam##Bar##Class *MAM##_##BAR##_CLASS(gpointer klass) { \
- return G_TYPE_CHECK_CLASS_CAST(klass, MAM##_TYPE_##BAR, Mam##Bar##Class); \
-} \
-static inline gboolean MAM##_IS_##BAR##_CLASS(gpointer klass) { \
- return G_TYPE_CHECK_CLASS_TYPE(klass, MAM##_TYPE_##BAR); \
-} \
-static inline Mam##Bar##Class *MAM##_##BAR##_GET_CLASS(gpointer obj) { \
- return G_TYPE_INSTANCE_GET_CLASS(obj, MAM##_TYPE_##BAR, Mam##Bar##Class); \
-}
-
-#define GOBJECT_BODY( \
- parent_type, \
- MAM, BAR, \
- Mam, Bar, \
- mam, bar) \
-G_DEFINE_TYPE(Mam##Bar, mam##_##bar, parent_type); \
-static void mam##_##bar##_init(Mam##Bar *mambar) { \
-} \
-static void mam##_##bar##_class_init(Mam##Bar##Class *klass) { \
-} \
-static Mam##Bar *mam##_##bar##_new() { \
- return g_object_new(MAM##_TYPE_##BAR, NULL); \
-}
-
-
/* GisPoint */
typedef struct _GisPoint GisPoint;
/* GisObject */
-#define GIS_TYPE_OBJECT (gis_object_get_type())
+#define GIS_TYPE_OBJECT (gis_object_get_type())
+#define GIS_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GIS_TYPE_OBJECT, GisObject))
+#define GIS_IS_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GIS_TYPE_OBJECT))
+#define GIS_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIS_TYPE_OBJECT, GisObjectClass))
+#define GIS_IS_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIS_TYPE_OBJECT))
+#define GIS_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIS_TYPE_OBJECT, GisObjectClass))
-GOBJECT_HEAD(
- GIS, OBJECT,
- Gis, Object,
- gis, object);
+typedef struct _GisObject GisObject;
+typedef struct _GisObjectClass GisObjectClass;
struct _GisObject {
- GObject parent_instance;
+ GObject parent_instance;
GisPoint center;
gdouble lod;
};
GObjectClass parent_class;
};
+GType gis_object_get_type(void);
+
static inline GisPoint *gis_object_center(GisObject *object)
{
return &GIS_OBJECT(object)->center;
/* GObject code */
G_DEFINE_TYPE(GisTile, gis_tile, GIS_TYPE_OBJECT);
-static void gis_tile_init(GisTile *tile) { }
-static void gis_tile_class_init(GisTileClass *klass) { }
+static void gis_tile_init(GisTile *tile)
+{
+}
+
+static void gis_tile_class_init(GisTileClass *klass)
+{
+}
#include <glib-object.h>
#include "gis-object.h"
-#define GIS_TYPE_TILE (gis_tile_get_type())
+#define GIS_TYPE_TILE (gis_tile_get_type())
+#define GIS_TILE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GIS_TYPE_TILE, GisTile))
+#define GIS_IS_TILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GIS_TYPE_TILE))
+#define GIS_TILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIS_TYPE_TILE, GisTileClass))
+#define GIS_IS_TILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIS_TYPE_TILE))
+#define GIS_TILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIS_TYPE_TILE, GisTileClass))
-GOBJECT_HEAD(
- GIS, TILE,
- Gis, Tile,
- gis, tile);
+typedef struct _GisTile GisTile;
+typedef struct _GisTileClass GisTileClass;
struct _GisTile {
GisObject parent_instance;
/* Path to string table, keep in sync with tile->children */
extern gchar *gis_tile_path_table[2][2];
+GType gis_tile_get_type(void);
+
/* Allocate a new Tile */
GisTile *gis_tile_new(GisTile *parent,
gdouble n, gdouble s, gdouble e, gdouble w);