gwenhywfar 4.0.3

htmlgroup.c

Go to the documentation of this file.
00001 /***************************************************************************
00002  begin       : Sat Feb 20 2010
00003  copyright   : (C) 2010 by Martin Preuss
00004  email       : martin@libchipcard.de
00005 
00006  ***************************************************************************
00007  *          Please see toplevel file COPYING for license details           *
00008  ***************************************************************************/
00009 
00010 #ifdef HAVE_CONFIG_H
00011 # include <config.h>
00012 #endif
00013 
00014 #define DISABLE_DEBUGLOG
00015 
00016 
00017 #include "htmlgroup_p.h"
00018 
00019 #include <gwenhywfar/misc.h>
00020 #include <gwenhywfar/debug.h>
00021 
00022 
00023 
00024 GWEN_INHERIT_FUNCTIONS(HTML_GROUP)
00025 
00026 
00027 
00028 
00029 
00030 HTML_GROUP *HtmlGroup_new(const char *groupName,
00031                           HTML_GROUP *parent,
00032                           GWEN_XML_CONTEXT *ctx) {
00033   HTML_GROUP *g;
00034 
00035   GWEN_NEW_OBJECT(HTML_GROUP, g);
00036   GWEN_INHERIT_INIT(HTML_GROUP, g);
00037   g->parent=parent;
00038   g->xmlContext=ctx;
00039   if (groupName)
00040     g->groupName=strdup(groupName);
00041   if (g->xmlContext==NULL && g->parent)
00042     g->xmlContext=parent->xmlContext;
00043 
00044   return g;
00045 }
00046 
00047 
00048 
00049 void HtmlGroup_free(HTML_GROUP *g) {
00050   if (g) {
00051     GWEN_INHERIT_FINI(HTML_GROUP, g);
00052 
00053     HtmlProps_free(g->properties);
00054     free(g->groupName);
00055 
00056     GWEN_FREE_OBJECT(g);
00057   }
00058 }
00059 
00060 
00061 
00062 HTML_GROUP *HtmlGroup_GetParent(const HTML_GROUP *g) {
00063   assert(g);
00064   return g->parent;
00065 }
00066 
00067 
00068 
00069 GWEN_XML_CONTEXT *HtmlGroup_GetXmlContext(const HTML_GROUP *g) {
00070   assert(g);
00071   return g->xmlContext;
00072 }
00073 
00074 
00075 
00076 const char *HtmlGroup_GetGroupName(const HTML_GROUP *g) {
00077   assert(g);
00078   return g->groupName;
00079 }
00080 
00081 
00082 
00083 HTML_OBJECT *HtmlGroup_GetObject(const HTML_GROUP *g) {
00084   assert(g);
00085   return g->object;
00086 }
00087 
00088 
00089 
00090 void HtmlGroup_SetObject(HTML_GROUP *g, HTML_OBJECT *o) {
00091   assert(g);
00092   g->object=o;
00093 }
00094 
00095 
00096 
00097 HTML_PROPS *HtmlGroup_GetProperties(const HTML_GROUP *g) {
00098   assert(g);
00099   return g->properties;
00100 }
00101 
00102 
00103 
00104 void HtmlGroup_SetProperties(HTML_GROUP *g, HTML_PROPS *pr){
00105   assert(g);
00106 
00107   HtmlProps_Attach(pr);
00108   HtmlProps_free(g->properties);
00109   g->properties=pr;
00110 }
00111 
00112 
00113 
00114 
00115 
00116 
00117 
00118 
00119 HTML_GROUP_STARTTAG_FN
00120 HtmlGroup_SetStartTagFn(HTML_GROUP *g,
00121                         HTML_GROUP_STARTTAG_FN f) {
00122   HTML_GROUP_STARTTAG_FN oldFn;
00123 
00124   assert(g);
00125   oldFn=g->startTagFn;
00126   g->startTagFn=f;
00127   return oldFn;
00128 }
00129 
00130 
00131 
00132 HTML_GROUP_ENDTAG_FN
00133 HtmlGroup_SetEndTagFn(HTML_GROUP *g,
00134                       HTML_GROUP_ENDTAG_FN f) {
00135   HTML_GROUP_ENDTAG_FN oldFn;
00136 
00137   assert(g);
00138   oldFn=g->endTagFn;
00139   g->endTagFn=f;
00140   return oldFn;
00141 }
00142 
00143 
00144 
00145 HTML_GROUP_ADDDATA_FN
00146 HtmlGroup_SetAddDataFn(HTML_GROUP *g,
00147                        HTML_GROUP_ADDDATA_FN f) {
00148   HTML_GROUP_ADDDATA_FN oldFn;
00149 
00150   assert(g);
00151   oldFn=g->addDataFn;
00152   g->addDataFn=f;
00153   return oldFn;
00154 }
00155 
00156 
00157 
00158 HTML_GROUP_ENDSUBGROUP_FN
00159 HtmlGroup_SetEndSubGroupFn(HTML_GROUP *g,
00160                            HTML_GROUP_ENDSUBGROUP_FN f) {
00161   HTML_GROUP_ENDSUBGROUP_FN oldFn;
00162 
00163   assert(g);
00164   oldFn=g->endSubGroupFn;
00165   g->endSubGroupFn=f;
00166   return oldFn;
00167 }
00168 
00169 
00170 
00171 
00172 
00173 int HtmlGroup_StartTag(HTML_GROUP *g,
00174                        const char *tagName) {
00175   assert(g);
00176   if (g->startTagFn)
00177     return g->startTagFn(g, tagName);
00178   else
00179     return GWEN_ERROR_NOT_IMPLEMENTED;
00180 }
00181 
00182 
00183 
00184 int HtmlGroup_EndTag(HTML_GROUP *g,
00185                         const char *tagName) {
00186   assert(g);
00187   if (g->endTagFn)
00188     return g->endTagFn(g, tagName);
00189   else
00190     return GWEN_ERROR_NOT_IMPLEMENTED;
00191 }
00192 
00193 
00194 
00195 int HtmlGroup_AddData(HTML_GROUP *g,
00196                          const char *data) {
00197   assert(g);
00198   if (g->addDataFn)
00199     return g->addDataFn(g, data);
00200   else
00201     return GWEN_ERROR_NOT_IMPLEMENTED;
00202 }
00203 
00204 
00205 
00206 int HtmlGroup_EndSubGroup(HTML_GROUP *g, HTML_GROUP *sg) {
00207   assert(g);
00208   if (g->endSubGroupFn)
00209     return g->endSubGroupFn(g, sg);
00210   else
00211     return GWEN_ERROR_NOT_IMPLEMENTED;
00212 }
00213 
00214 
00215 
00216 
00217