public string GetStyle_class_tag(string classname, hglParser.Element xe) { var curTag = xe != null ? xe.text : null; if (curTag == null) { return(null); } string s = null; if (string.IsNullOrEmpty(classname)) { s = KEYVAL.Find(curTag, m_list); } if (s == null) { s = KEYVAL.Find(curTag + "." + classname, m_list); } if (s == null) { s = KEYVAL.Find("." + classname, m_list); } return(s); }
IEnumerator SLIDE_SUB(hglParser.Element e, int validDepth) { if (e == null || e.tmp1 == null || e.tmp2 == null || e.tmp3 == null) { yield break; } float interval = (float)e.tmp2; float time = (float)e.tmp3; int depth = (int)e.tmp4; if (validDepth > 0 && depth > validDepth) { yield break; } yield return(new WaitForSeconds(interval)); Vector3[] vs = (Vector3[])e.tmp1; if (e.bone1 != null) { m_scrObj.StartCoroutine(hgMove.linear_Vector3(e.bone1.transform.localPosition, vs[0], time, (vx) => { e.bone1.transform.localPosition = vx; })); } if (e.bone2 != null) { m_scrObj.StartCoroutine(hgMove.linear_Vector3(e.bone2.transform.localPosition, vs[1], time, (vx) => { e.bone2.transform.localPosition = vx; })); } }
public void CommentWork(hglParser.Element xe) { if (xe.parent != null && xe.parent.baseBody != null) { hglBaseHead tag = (hglBaseHead)xe.parent.baseBody; tag.CommentWork(xe.text); } }
public void EndElementWork(hglParser.Element xe) { if (xe.baseBody != null) { hglBaseHead tag = (hglBaseHead)xe.baseBody; tag.EndElementWork(); } }
public void TextWork(hglParser.Element xe) { if (xe.parent != null && xe.parent.baseBody != null) { hglBaseHead tag = (hglBaseHead)xe.parent.baseBody; var nt = hglEtc.decodeTextToDisplay(xe.text); tag.TextWork(nt); } }
public void Init(hglParser.Element xe) { m_xe = xe; m_a = xe.GetAnchor(); m_colorMan = xe.GetTags().m_htmlRender.m_htmlColor; m_colorIndex = xe.colorIndex; m_col = m_colorMan.GetColor(m_colorIndex); m_colSave = m_col; }
public void ElementWork(hglParser.Element xe) { hglBaseHead work = (hglBaseHead)m_tags[xe.text]; if (work != null) { hglBaseHead tag = work.Clone(); xe.baseBody = tag; tag.ElementWork(xe.attrib); } }
public void SetTR(hglParser.Element xe) { m_cur_y = m_cur_y < 0 ? 0 : m_cur_y + 1; m_cur_x = 0; Element e = new Element() { mode = Element.Mode.TR, xe = xe, calcSize = Vector2.zero }; m_baseTable.AddElement(m_cur_x, m_cur_y, e); m_cur_x++; }
IEnumerator FX_SZ_sub(hglParser.Element e, float speed, float maxscale) { if (e.bone1 != null) { float d = 0; while (true) { d += speed * Time.deltaTime; yield return(null); e.bone1.transform.localScale = (1 + maxscale * Mathf.Sin(d * Mathf.Deg2Rad)) * Vector3.one; } } }
IEnumerator SLIDEBACK_SUB(hglParser.Element e, float time) { float interval = (e.tmp2 != null) ? (float)e.tmp2 : 0; if (interval > 0) { yield return(new WaitForSeconds(interval)); } if (e.bone1 != null) { m_scrObj.StartCoroutine(hgMove.linear_Vector3(e.bone1.transform.localPosition, e.bone1_savepos, 0.1f + (float)0.1f, (v) => { e.bone1.transform.localPosition = v; })); } if (e.bone2 != null) { m_scrObj.StartCoroutine(hgMove.linear_Vector3(e.bone2.transform.localPosition, e.bone2_savepos, 0.1f + (float)0.1f, (v) => { e.bone2.transform.localPosition = v; })); } }
IEnumerator FX_COL_sub(hglParser.Element e, string mode, Color dst, float speed) { int index = -1; switch (mode) { case "main": index = e.colorIndex; break; case "back": index = e.backcolorIndex; break; case "frame": index = e.frameColorIndex; break; case "effect": index = e.effectColorIndex; break; } if (index < 0) { yield break; } hglHtmlColor htmlColor = null; { var render = m_renderInfo.GetRender(); htmlColor = render.m_render.m_htmlColor; } Vector3 startColor = hglEtc.toVector3(htmlColor.GetColor(index)); Vector3 endColor = hglEtc.toVector3(dst); float i = 0; while (true) { yield return(null); i += speed * Time.deltaTime; float h = 0.5f + 0.5f * Mathf.Sin(i * Mathf.Deg2Rad); var cur = Vector3.Lerp(startColor, endColor, h); htmlColor.SetColor(index, hglEtc.toColor(cur)); } }
public void SetTD(hglParser.Element xe, int colspan, int rowspan) { if (m_cur_y < 0 || m_cur_x <= 0) { throw new SystemException("Unexpected!"); } Element e = new Element() { mode = Element.Mode.ORIGINAL, xe = xe }; while (m_baseTable.GetPoint(m_cur_x, m_cur_y) != null) { m_cur_x++; } m_baseTable.AddElement(m_cur_x, m_cur_y, e); if (colspan > 1) { for (int ix = 1; ix < colspan; ix++) { if (rowspan > 1) { for (int iy = 1; iy < rowspan; iy++) { Element se = new Element() { mode = Element.Mode.SPAN, original = e }; m_baseTable.AddElement(m_cur_x + ix, m_cur_y + iy, se); } } } } if (colspan > 1) { m_cur_x += colspan - 1; } }
public static string[] GetAllFilenames(hglParser.Element root) { string[] allowexts = new string[] { ".txt", ".png", ".css", ".js", ".gif", ".jpg" }; HashSet <string> files = new HashSet <string>(); Action <string> check = (s) => { foreach (var t in allowexts) { if (hglEtc.check_tail(s, t)) { files.Add(s); break; } } }; hglParser.TraverseHglWork(root, (e) => { if (e.mode != hglParser.Mode.TAG) { return; } if (e.text == "link") { check((string)e.attrib["href"]); check((string)e.attrib["src"]); } else if (e.text == "img") { check((string)e.attrib["src"]); } }); string[] ans = new string[files.Count]; files.CopyTo(ans); return(ans); }
IEnumerator FX_ROT_sub(hglParser.Element e, string pivot, float speed) { Vector3 pv = Vector3.up; switch (pivot) { case "x": pv = Vector3.right; break; case "y": pv = Vector3.up; break; case "z": pv = Vector3.forward; break; } if (e.bone1 != null) { while (true) { var v = speed * Time.deltaTime; yield return(null); e.bone1.transform.RotateAroundLocal(pv, v); } } }
IEnumerator FX_ALFA_sub(hglParser.Element e, string mode, float speed) { if (e.mode == hglParser.Mode.TAG && e.text == "img" && e.bone1.renderer != null) { var mat = e.bone1.renderer.material; float i = 0; while (true) { yield return(null); i += speed * Time.deltaTime; float h = 0.5f + 0.5f * Mathf.Cos(i * Mathf.Deg2Rad); mat.SetFloat("_Alpha1", h); } } else if (e.mode == hglParser.Mode.TAG && e.text == "body") { var mat = m_renderInfo.GetRender().renderer.material; float i = 0; while (true) { yield return(null); i += speed * Time.deltaTime; float h = 0.5f + 0.5f * Mathf.Cos(i * Mathf.Deg2Rad); mat.SetFloat("_Alpha", h); } } else { int index = -1; switch (mode) { case "main": index = e.colorIndex; break; case "back": index = e.backcolorIndex; break; case "frame": index = e.frameColorIndex; break; case "effect": index = e.effectColorIndex; break; } if (index < 0) { yield break; } hglHtmlColor htmlColor = null; { var render = m_renderInfo.GetRender(); htmlColor = render.m_render.m_htmlColor; } var col = htmlColor.GetColor(index); float i = 0; while (true) { yield return(null); i += speed * Time.deltaTime; float h = 0.5f + 0.5f * Mathf.Cos(i * Mathf.Deg2Rad); col.a = h; htmlColor.SetColor(index, col); } } }
IEnumerator HglReadFlow(string i_file, bool viewSrc) { m_winInfo.m_curRootElement = null; m_winInfo.m_curHeadElement = null; m_winInfo.m_curBodyElement = null; string file1; if (string.IsNullOrEmpty(i_file)) { yield break; } if (hglEtc.check_head(i_file, "http")) { file1 = i_file; } else { file1 = (new System.IO.FileInfo(i_file)).FullName.Replace('\\', '/'); } { var i = file1.LastIndexOf('/'); m_winInfo.m_curBaseUrl = file1.Substring(0, i + 1); m_winInfo.m_curUrl = file1; } string src = m_resman.GetText(file1); if (src == null) { if (m_winInfo.m_useText && m_winInfo.m_curUrlShort == m_winInfo.m_url) { src = m_winInfo.m_text; m_resman.Register(m_winInfo.m_url, file1, m_winInfo.m_text); } else { var fd = m_resman.Register(m_winInfo.m_curUrlShort, file1); if (fd.obj == null && fd.isNet) { yield return(StartCoroutine(m_resman.ReadNet(fd, this))); } src = (string)fd.obj; } } hglParseStyleSheet hglStyleSheet = new hglParseStyleSheet(); hglTags_head tagsHead = new hglTags_head(); hglWorkHead hglwork_head = new hglWorkHead(); hglWorkBody hglwork_body = new hglWorkBody(); tagsHead.Init(hglwork_head, hglStyleSheet, m_resman, m_winInfo); if (ReadResource1(src)) { yield return(StartCoroutine(m_resman.ReadAllNet(this))); } hglParser.Element root = null; hglParser.Element head = null; hglParser.Element body = null; if (!viewSrc) { yield return(StartCoroutine(m_xmlScript.Init())); string src_output = hglParserScript.ParserScript(src, (s) => m_xmlScript.RunProgram(s)); if (ReadResource1(src_output)) { yield return(StartCoroutine(m_resman.ReadAllNet(this))); } root = hglParser.Parser(src_output); head = hglParser.FindTag("head", root); body = hglParser.FindTag("body", root); if (head != null) { hglParser.TraverseHglWorkHead(head, hglwork_head); } if (body == null) { body = root; } } else { body = hglParser.CreateRowText(src); root = body; } root.thisStyle.Set(StyleKey.font_size, 20); root.thisStyle.SetColor(StyleKey.color, Color.black); root.thisStyle.SetColor(StyleKey.background_color, Color.white); root.thisStyle.Set(StyleKey.margin, ""); root.thisStyle.Set(StyleKey.text_align, ""); root.thisStyle.Set(StyleKey.line_height, 2f); root.thisStyle.Set(StyleKey.width, m_winInfo.m_fixedWidth); if (m_winInfo.m_winType == hglWindowType.MAIN) { m_winInfo.m_mainCamera.camera.backgroundColor = root.thisStyle.GetColor(StyleKey.background_color); } //while (true) { hgca.DestroyAllChildren(gameObject); yield return(null); CreateRenerObj(); yield return(null); //create yield return(null); //exec start hglTags_body tagsBody = new hglTags_body(); tagsBody.Init(hglwork_body, hglStyleSheet, m_winInfo, m_rendere.m_render, m_resman); hglParser.TraverseHglWorkBody(body, hglwork_body); m_rendere.m_render.OutputRendering(m_rendere.gameObject); } hglParser.SavePositions(body); m_winInfo.m_curRootElement = root; m_winInfo.m_curHeadElement = head; m_winInfo.m_curBodyElement = body; { var jsobjs = GetComponentsInChildren <xmlScriptObj>(); foreach (var jo in jsobjs) { jo.m_valid = true; } } }