Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
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