Projekt

Allgemein

Profil

Herunterladen (3,57 KB) Statistiken
| Zweig: | Markierung: | Revision:
/***************************************************************************
begin : Sat Feb 20 2010
copyright : (C) 2010 by Martin Preuss
email : martin@libchipcard.de

***************************************************************************
* Please see toplevel file COPYING for license details *
***************************************************************************/

#ifdef HAVE_CONFIG_H
# include <config.h>
#endif

#define DISABLE_DEBUGLOG


#include "htmlgroup_p.h"

#include <gwenhywfar/misc.h>
#include <gwenhywfar/debug.h>



GWEN_INHERIT_FUNCTIONS(HTML_GROUP)





HTML_GROUP *HtmlGroup_new(const char *groupName,
HTML_GROUP *parent,
GWEN_XML_CONTEXT *ctx) {
HTML_GROUP *g;

GWEN_NEW_OBJECT(HTML_GROUP, g);
GWEN_INHERIT_INIT(HTML_GROUP, g);
g->parent=parent;
g->xmlContext=ctx;
if (groupName)
g->groupName=strdup(groupName);
if (g->xmlContext==NULL && g->parent)
g->xmlContext=parent->xmlContext;

return g;
}



void HtmlGroup_free(HTML_GROUP *g) {
if (g) {
GWEN_INHERIT_FINI(HTML_GROUP, g);

HtmlProps_free(g->properties);
free(g->groupName);

GWEN_FREE_OBJECT(g);
}
}



HTML_GROUP *HtmlGroup_GetParent(const HTML_GROUP *g) {
assert(g);
return g->parent;
}



GWEN_XML_CONTEXT *HtmlGroup_GetXmlContext(const HTML_GROUP *g) {
assert(g);
return g->xmlContext;
}



const char *HtmlGroup_GetGroupName(const HTML_GROUP *g) {
assert(g);
return g->groupName;
}



HTML_OBJECT *HtmlGroup_GetObject(const HTML_GROUP *g) {
assert(g);
return g->object;
}



void HtmlGroup_SetObject(HTML_GROUP *g, HTML_OBJECT *o) {
assert(g);
g->object=o;
}



HTML_PROPS *HtmlGroup_GetProperties(const HTML_GROUP *g) {
assert(g);
return g->properties;
}



void HtmlGroup_SetProperties(HTML_GROUP *g, HTML_PROPS *pr) {
assert(g);

HtmlProps_Attach(pr);
HtmlProps_free(g->properties);
g->properties=pr;
}








HTML_GROUP_STARTTAG_FN
HtmlGroup_SetStartTagFn(HTML_GROUP *g,
HTML_GROUP_STARTTAG_FN f) {
HTML_GROUP_STARTTAG_FN oldFn;

assert(g);
oldFn=g->startTagFn;
g->startTagFn=f;
return oldFn;
}



HTML_GROUP_ENDTAG_FN
HtmlGroup_SetEndTagFn(HTML_GROUP *g,
HTML_GROUP_ENDTAG_FN f) {
HTML_GROUP_ENDTAG_FN oldFn;

assert(g);
oldFn=g->endTagFn;
g->endTagFn=f;
return oldFn;
}



HTML_GROUP_ADDDATA_FN
HtmlGroup_SetAddDataFn(HTML_GROUP *g,
HTML_GROUP_ADDDATA_FN f) {
HTML_GROUP_ADDDATA_FN oldFn;

assert(g);
oldFn=g->addDataFn;
g->addDataFn=f;
return oldFn;
}



HTML_GROUP_ENDSUBGROUP_FN
HtmlGroup_SetEndSubGroupFn(HTML_GROUP *g,
HTML_GROUP_ENDSUBGROUP_FN f) {
HTML_GROUP_ENDSUBGROUP_FN oldFn;

assert(g);
oldFn=g->endSubGroupFn;
g->endSubGroupFn=f;
return oldFn;
}





int HtmlGroup_StartTag(HTML_GROUP *g,
const char *tagName) {
assert(g);
if (g->startTagFn)
return g->startTagFn(g, tagName);
else
return GWEN_ERROR_NOT_IMPLEMENTED;
}



int HtmlGroup_EndTag(HTML_GROUP *g,
const char *tagName) {
assert(g);
if (g->endTagFn)
return g->endTagFn(g, tagName);
else
return GWEN_ERROR_NOT_IMPLEMENTED;
}



int HtmlGroup_AddData(HTML_GROUP *g,
const char *data) {
assert(g);
if (g->addDataFn)
return g->addDataFn(g, data);
else
return GWEN_ERROR_NOT_IMPLEMENTED;
}



int HtmlGroup_EndSubGroup(HTML_GROUP *g, HTML_GROUP *sg) {
assert(g);
if (g->endSubGroupFn)
return g->endSubGroupFn(g, sg);
else
return GWEN_ERROR_NOT_IMPLEMENTED;
}





(24-24/50)