⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 svg_nodes_sani.c

📁 一个用于智能手机的多媒体库适合S60 WinCE的跨平台开发库
💻 C
📖 第 1 页 / 共 5 页
字号:
			info->far_ptr = &((SVG_SANI_Element *)node)->timing->min;			return GF_OK;		case 21:			info->name = "max";			info->fieldType = SMIL_Duration_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->timing->max;			return GF_OK;		case 22:			info->name = "fill";			info->fieldType = SMIL_Fill_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->timing->fill;			return GF_OK;		case 23:			info->name = "clipBegin";			info->fieldType = SVG_Clock_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->timing->clipBegin;			return GF_OK;		case 24:			info->name = "clipEnd";			info->fieldType = SVG_Clock_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->timing->clipEnd;			return GF_OK;		case 25:			info->name = "syncBehavior";			info->fieldType = SMIL_SyncBehavior_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->sync->syncBehavior;			return GF_OK;		case 26:			info->name = "syncTolerance";			info->fieldType = SMIL_SyncTolerance_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->sync->syncTolerance;			return GF_OK;		case 27:			info->name = "syncMaster";			info->fieldType = SVG_Boolean_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->sync->syncMaster;			return GF_OK;		case 28:			info->name = "syncReference";			info->fieldType = SVG_String_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->sync->syncReference;			return GF_OK;		case 29:			info->name = "requiredExtensions";			info->fieldType = SVG_ListOfIRI_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->conditional->requiredExtensions;			return GF_OK;		case 30:			info->name = "requiredFeatures";			info->fieldType = SVG_ListOfIRI_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->conditional->requiredFeatures;			return GF_OK;		case 31:			info->name = "requiredFonts";			info->fieldType = SVG_FontList_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->conditional->requiredFonts;			return GF_OK;		case 32:			info->name = "requiredFormats";			info->fieldType = SVG_FormatList_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->conditional->requiredFormats;			return GF_OK;		case 33:			info->name = "systemLanguage";			info->fieldType = SVG_LanguageIDs_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->conditional->systemLanguage;			return GF_OK;		case 34:			info->name = "type";			info->fieldType = SVG_ContentType_datatype;			info->far_ptr = & ((SVG_SANI_audioElement *)node)->type;			return GF_OK;		case 35:			info->name = "audio-level";			info->fieldType = SVG_Number_datatype;			info->far_ptr = & ((SVG_SANI_audioElement *)node)->audio_level;			return GF_OK;		case 36:			info->name = "display";			info->fieldType = SVG_Display_datatype;			info->far_ptr = & ((SVG_SANI_audioElement *)node)->display;			return GF_OK;		default: return GF_BAD_PARAM;	}}void *gf_svg_sani_new_circle(){	SVG_SANI_circleElement *p;	GF_SAFEALLOC(p, SVG_SANI_circleElement);	if (!p) return NULL;	gf_node_setup((GF_Node *)p, TAG_SVG_SANI_circle);	gf_sg_parent_setup((GF_Node *) p);#ifdef GF_NODE_USE_POINTERS	((GF_Node *p)->sgprivate->name = "circle";	((GF_Node *p)->sgprivate->node_del = gf_svg_sani_circle_del;	((GF_Node *p)->sgprivate->get_field = gf_svg_sani_circle_get_attribute;#endif	gf_svg_sani_init_core((SVG_SANI_Element *)p);	gf_svg_sani_init_focus((SVG_SANI_Element *)p);	gf_svg_sani_init_conditional((SVG_SANI_Element *)p);	gf_mx2d_init(p->transform.mat);	p->display = SVG_DISPLAY_INLINE;	p->visibility = SVG_VISIBILITY_VISIBLE;	p->fill_opacity.type = SVG_NUMBER_VALUE;	p->fill_opacity.value = FIX_ONE;	p->stroke_opacity.type = SVG_NUMBER_VALUE;	p->stroke_opacity.value = FIX_ONE;	p->fill.type = SVG_PAINT_COLOR;	p->fill.color.type = SVG_COLOR_RGBCOLOR;	p->fill_rule = SVG_FILLRULE_NONZERO;	p->stroke.type = SVG_PAINT_NONE;	p->stroke.color.type = SVG_COLOR_RGBCOLOR;	p->stroke_dasharray.type = SVG_STROKEDASHARRAY_NONE;	p->stroke_dashoffset.type = SVG_NUMBER_VALUE;	p->stroke_linecap = SVG_STROKELINECAP_BUTT;	p->stroke_linejoin = SVG_STROKELINEJOIN_MITER;	p->stroke_miterlimit.type = SVG_NUMBER_VALUE;	p->stroke_miterlimit.value = 4*FIX_ONE;	p->stroke_width.type = SVG_NUMBER_VALUE;	p->stroke_width.value = FIX_ONE;	p->vector_effect = SVG_VECTOREFFECT_NONE;	return p;}static void gf_svg_sani_circle_del(GF_Node *node){	SVG_SANI_circleElement *p = (SVG_SANI_circleElement *)node;	gf_svg_sani_reset_base_element((SVG_SANI_Element *)p);	if (p->motionTransform) free(p->motionTransform);	gf_sg_parent_reset((GF_Node *) p);	gf_node_free((GF_Node *)p);}static GF_Err gf_svg_sani_circle_get_attribute(GF_Node *node, GF_FieldInfo *info){	switch (info->fieldIndex) {		case 0:			info->name = "id";			info->fieldType = SVG_ID_datatype;			info->far_ptr = gf_node_get_name_address(node);			return GF_OK;		case 1:			info->name = "xml:id";			info->fieldType = SVG_ID_datatype;			info->far_ptr = gf_node_get_name_address(node);			return GF_OK;		case 2:			info->name = "class";			info->fieldType = SVG_String_datatype;			info->far_ptr = &((SVG_SA_Element *)node)->core->_class;			return GF_OK;		case 3:			info->name = "xml:lang";			info->fieldType = SVG_LanguageID_datatype;			info->far_ptr = &((SVG_SA_Element *)node)->core->lang;			return GF_OK;		case 4:			info->name = "xml:base";			info->fieldType = SVG_String_datatype;			info->far_ptr = &((SVG_SA_Element *)node)->core->base;			return GF_OK;		case 5:			info->name = "xml:space";			info->fieldType = XML_Space_datatype;			info->far_ptr = &((SVG_SA_Element *)node)->core->space;			return GF_OK;		case 6:			info->name = "externalResourcesRequired";			info->fieldType = SVG_Boolean_datatype;			info->far_ptr = &((SVG_SA_Element *)node)->core->eRR;			return GF_OK;		case 7:			info->name = "focusHighlight";			info->fieldType = SVG_FocusHighlight_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->focus->focusHighlight;			return GF_OK;		case 8:			info->name = "focusable";			info->fieldType = SVG_Boolean_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->focus->focusable;			return GF_OK;		case 9:			info->name = "nav-down";			info->fieldType = SVG_Focus_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->focus->nav_down;			return GF_OK;		case 10:			info->name = "nav-down-left";			info->fieldType = SVG_Focus_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->focus->nav_down_left;			return GF_OK;		case 11:			info->name = "nav-down-right";			info->fieldType = SVG_Focus_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->focus->nav_down_right;			return GF_OK;		case 12:			info->name = "nav-left";			info->fieldType = SVG_Focus_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->focus->nav_left;			return GF_OK;		case 13:			info->name = "nav-next";			info->fieldType = SVG_Focus_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->focus->nav_next;			return GF_OK;		case 14:			info->name = "nav-prev";			info->fieldType = SVG_Focus_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->focus->nav_prev;			return GF_OK;		case 15:			info->name = "nav-right";			info->fieldType = SVG_Focus_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->focus->nav_right;			return GF_OK;		case 16:			info->name = "nav-up";			info->fieldType = SVG_Focus_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->focus->nav_up;			return GF_OK;		case 17:			info->name = "nav-up-left";			info->fieldType = SVG_Focus_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->focus->nav_up_left;			return GF_OK;		case 18:			info->name = "nav-up-right";			info->fieldType = SVG_Focus_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->focus->nav_up_right;			return GF_OK;		case 19:			info->name = "requiredExtensions";			info->fieldType = SVG_ListOfIRI_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->conditional->requiredExtensions;			return GF_OK;		case 20:			info->name = "requiredFeatures";			info->fieldType = SVG_ListOfIRI_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->conditional->requiredFeatures;			return GF_OK;		case 21:			info->name = "requiredFonts";			info->fieldType = SVG_FontList_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->conditional->requiredFonts;			return GF_OK;		case 22:			info->name = "requiredFormats";			info->fieldType = SVG_FormatList_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->conditional->requiredFormats;			return GF_OK;		case 23:			info->name = "systemLanguage";			info->fieldType = SVG_LanguageIDs_datatype;			info->far_ptr = &((SVG_SANI_Element *)node)->conditional->systemLanguage;			return GF_OK;		case 24:			info->name = "transform";			info->fieldType = SVG_Transform_datatype;			info->far_ptr = &((SVG_SANI_TransformableElement *)node)->transform;			return GF_OK;		case 25:			info->name = "motionTransform";			info->fieldType = SVG_Transform_datatype;			info->far_ptr = ((SVG_SANI_TransformableElement *)node)->motionTransform;			return GF_OK;		case 26:			info->name = "display";			info->fieldType = SVG_Display_datatype;			info->far_ptr = & ((SVG_SANI_circleElement *)node)->display;			return GF_OK;		case 27:			info->name = "visibility";			info->fieldType = SVG_Visibility_datatype;			info->far_ptr = & ((SVG_SANI_circleElement *)node)->visibility;			return GF_OK;		case 28:			info->name = "pointer-events";			info->fieldType = SVG_PointerEvents_datatype;			info->far_ptr = & ((SVG_SANI_circleElement *)node)->pointer_events;			return GF_OK;		case 29:			info->name = "fill-opacity";			info->fieldType = SVG_Number_datatype;			info->far_ptr = & ((SVG_SANI_circleElement *)node)->fill_opacity;			return GF_OK;		case 30:			info->name = "stroke-opacity";			info->fieldType = SVG_Number_datatype;			info->far_ptr = & ((SVG_SANI_circleElement *)node)->stroke_opacity;			return GF_OK;		case 31:			info->name = "fill";			info->fieldType = SVG_Paint_datatype;			info->far_ptr = & ((SVG_SANI_circleElement *)node)->fill;			return GF_OK;		case 32:			info->name = "fill-rule";			info->fieldType = SVG_FillRule_datatype;			info->far_ptr = & ((SVG_SANI_circleElement *)node)->fill_rule;			return GF_OK;		case 33:			info->name = "stroke";			info->fieldType = SVG_Paint_datatype;			info->far_ptr = & ((SVG_SANI_circleElement *)node)->stroke;			return GF_OK;		case 34:			info->name = "stroke-dasharray";			info->fieldType = SVG_StrokeDashArray_datatype;			info->far_ptr = & ((SVG_SANI_circleElement *)node)->stroke_dasharray;			return GF_OK;		case 35:			info->name = "stroke-dashoffset";			info->fieldType = SVG_Length_datatype;			info->far_ptr = & ((SVG_SANI_circleElement *)node)->stroke_dashoffset;			return GF_OK;		case 36:			info->name = "stroke-linecap";			info->fieldType = SVG_StrokeLineCap_datatype;			info->far_ptr = & ((SVG_SANI_circleElement *)node)->stroke_linecap;			return GF_OK;		case 37:			info->name = "stroke-linejoin";			info->fieldType = SVG_StrokeLineJoin_datatype;			info->far_ptr = & ((SVG_SANI_circleElement *)node)->stroke_linejoin;			return GF_OK;		case 38:			info->name = "stroke-miterlimit";			info->fieldType = SVG_Number_datatype;			info->far_ptr = & ((SVG_SANI_circleElement *)node)->stroke_miterlimit;			return GF_OK;		case 39:			info->name = "stroke-width";			info->fieldType = SVG_Length_datatype;			info->far_ptr = & ((SVG_SANI_circleElement *)node)->stroke_width;			return GF_OK;		case 40:			info->name = "vector-effect";			info->fieldType = SVG_VectorEffect_datatype;			info->far_ptr = & ((SVG_SANI_circleElement *)node)->vector_effect;			return GF_OK;		case 41:			info->name = "cx";			info->fieldType = SVG_Coordinate_datatype;			info->far_ptr = & ((SVG_SANI_circleElement *)node)->cx;			return GF_OK;		case 42:			info->name = "cy";			info->fieldType = SVG_Coordinate_datatype;			info->far_ptr = & ((SVG_SANI_circleElement *)node)->cy;			return GF_OK;		case 43:			info->name = "r";			info->fieldType = SVG_Length_datatype;			info->far_ptr = & ((SVG_SANI_circleElement *)node)->r;			return GF_OK;		default: return GF_BAD_PARAM;	}}void *gf_svg_sani_new_conditional(){	SVG_SANI_conditionalElement *p;	GF_SAFEALLOC(p, SVG_SANI_conditionalElement);	if (!p) return NULL;	gf_node_setup((GF_Node *)p, TAG_SVG_SANI_conditional);	gf_sg_parent_setup((GF_Node *) p);#ifdef GF_NODE_USE_POINTERS	((GF_Node *p)->sgprivate->name = "conditional";	((GF_Node *p)->sgprivate->node_del = gf_svg_sani_conditional_del;	((GF_Node *p)->sgprivate->get_field = gf_svg_sani_conditional_get_attribute;#endif	gf_svg_sani_init_core((SVG_SANI_Element *)p);	gf_svg_sani_init_timing((SVG_SANI_Element *)p);	gf_svg_sa_init_lsr_conditional(&p->updates);	gf_svg_sani_init_timing((SVG_SANI_Element *)p);	return p;}static void gf_svg_sani_conditional_del(GF_Node *node){	SVG_SANI_conditionalElement *p = (SVG_SANI_conditionalElement *)node;	gf_svg_sani_reset_base_element((SVG_SANI_Element *)p);	gf_svg_sa_reset_lsr_conditional(&p->updates);	gf_sg_parent_reset((GF_Node *) p);	gf_node_free((GF_Node *)p);}static GF_Err gf_svg_sani_conditional_get_attribute(GF_Node *node, GF_FieldInfo *info){	switch (info->fieldIndex) {		case 0:			info->name = "id";			info->fieldType = SVG_ID_datatype;			info->far_ptr = gf_node_get_name_address(node);			return GF_OK;		case 1:			info->name = "xml:id";			info->fieldType = SVG_ID_datatype;			in

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -