grim/gplate

some more testing migration stuff.

2012-09-04, Gary Kramlich
7f8e0e4f250f
some more testing migration stuff.
Variables aren't done yet
/*
* GPlate - GObject based templating library
* Copyright (C) 2007-2012 Gary Kramlich <grim@reaperworld.com>
*
* This library is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef GPLATE_COLLECTION_H
#define GPLATE_COLLECTION_H
#include <glib.h>
#include <glib-object.h>
#include <gplate/gplate-variable.h>
#include <gplate/gplate-iterator.h>
#define GPLATE_TYPE_COLLECTION (gplate_collection_get_gtype())
#define GPLATE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GPLATE_TYPE_COLLECTION, GPlateCollection))
#define GPLATE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GPLATE_TYPE_COLLECTION))
#define GPLATE_COLLECTION_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE((obj), GPLATE_TYPE_COLLECTION, GPlateCollectionIface))
typedef struct _GPlateCollection GPlateCollection;
typedef struct _GPlateCollectionIface GPlateCollectionIface;
struct _GPlateCollectionIface {
GTypeInterface gparent;
GPlateVariable *(*find_variable)(const GPlateCollection *collection, const gchar *name);
gboolean (*add_variable_with_name)(GPlateCollection *collection, const gchar *name, GPlateVariable *variable);
gboolean (*remove_variable)(GPlateCollection *collection, GPlateVariable *variable);
gboolean (*remove_all)(GPlateCollection *collection);
GPlateIterator *(*get_iterator)(GPlateCollection *collection);
void (*_gplate_reserved1)(void);
void (*_gplate_reserved2)(void);
void (*_gplate_reserved3)(void);
void (*_gplate_reserved4)(void);
};
G_BEGIN_DECLS
#define gplate_collection_add(collection, type, name, value) { \
GPlateVariable *var = NULL; \
\
var = gplate_variable_new_from_##type((name), (value)); \
gplate_collection_add_variable(GPLATE_COLLECTION(collection), (var));\
}
#define gplate_collection_add_string(collection, name, value) \
gplate_collection_add((collection), string, (name), (value));
#define gplate_collection_add_boolean(collection, name, value) \
gplate_collection_add((collection), boolean, (name), (value));
#define gplate_collection_add_integer(collection, name, value) \
gplate_collection_add((collection), integer, (name), (value));
#define gplate_collection_add_float(collection, name, value) \
gplate_collection_add((collection), float, (name), (value));
#define gplate_collection_add_double(collection, name, value) \
gplate_collection_add((collection), double, (name), (value));
GType gplate_collection_get_gtype(void);
GPlateVariable *gplate_collection_find_variable(const GPlateCollection *collection, const gchar *name);
const gchar *gplate_collection_lookup(const GPlateCollection *collection, const gchar *name);
gboolean gplate_collection_add_variable(GPlateCollection *collection, GPlateVariable *variable);
gboolean gplate_collection_add_variable_with_name(GPlateCollection *collection, const gchar *name, GPlateVariable *variable);
gboolean gplate_collection_remove_variable(GPlateCollection *collection, GPlateVariable *variable);
gboolean gplate_collection_remove_all(GPlateCollection *collection);
GPlateIterator *gplate_collection_get_iterator(GPlateCollection *collection);
G_END_DECLS
#endif /* GPLATE_COLLECTION_H */