view include/mb_so.h @ 1299:6949e2b6cae2

Add unlink clone checker. - Monitor changes of DOM-tree of the document - Unlinking a clone is actually removing the clone and copying nodes from the source. - Copy value of ID of a node to saved_id to track source of copy nodes. - For a new node with 'saved_id' is a copy of another node. - Copy vulae of 'saved_id' to 'ns0:duplicate-src' to keep the source - Change value of 'saved_id' to the value of ID of the node for later copying. - For a new node without 'saved_id' is not a copy of another node. - only set 'saved_id' to the value of its ID.
author Thinker K.F. Li <thinker@codemud.net>
date Sun, 16 Jan 2011 16:13:37 +0800
parents 586e50f82c1f
children
line wrap: on
line source

// -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 4; -*-
// vim: sw=4:ts=8:sts=4
/*! \file
 * \brief Define types for sprite shared objects.
 *
 * A sprite shared object includes definitions of multiple sprite factories.
 * Sprite factories are used to create sprites for MadButterfly.
 *
 * \see http://en.wikipedia.org/wiki/Sprite_(computer_graphics)
 */
#ifndef __MB_SO_H_
#define __MB_SO_H_

/*! \brief Name of the variable that define contents in a shared object. */
#define MB_SPRITE_SO_SYM "mb_sprite_so_def"

typedef struct _mb_sprite_so mb_sprite_so_t;
typedef struct _sprite_factory sprite_factory_t;


/*! \brief Define content of a sprite shared object.
 *
 * The type of symbol with name, defined by \ref MB_SPRITE_SO_SYM, in
 * a sprite shared object.  It define content of a sprite object, a.k.a.
 * an array of sprite factories (\ref sprite_factory_t).
 */
struct _mb_sprite_so {
    const char *soname;
    int num_factories;
    sprite_factory_t *factories;
};

/*! \brief Define a factory to create sprites.
 */
struct _sprite_factory {
    const char *name;
    sprite_t *(*new)(coord_t*);
};

#endif /* __MB_SO_H_ */