Beispiel #1
0
 public override void TextDidChange()
 {
     drawWords         = SMWordToken.WordListFromString(Text, this);
     drawWordsModified = true;
 }
Beispiel #2
0
        public override void ExportToHtml(MNExportContext ctx, int zorder, StringBuilder sbHtml, StringBuilder sbCss, StringBuilder sbJS)
        {
            sbHtml.Append("<div ");
            sbHtml.AppendFormat(" id=\"c{0}\" ", this.Id);
            sbHtml.AppendFormat(" style ='overflow-y:scroll;position:absolute;z-index:{0};", zorder);
            sbHtml.Append(Area.HtmlLTRB());
            sbHtml.Append(Font.HtmlString() + Paragraph.Html() + ContentPaddingHtml());
            sbHtml.Append("'>");
            int tvid = 0;

            if (Text.IndexOf("<edit") >= 0 || Text.IndexOf("<drop") >= 0)
            {
                sbHtml.Append("<div style='display:flex;flex-direction:row;'>");
                drawWords = SMWordToken.WordListFromString(Text, this);
                int previousCount = 0;
                foreach (SMWordBase wb in drawWords)
                {
                    string elemId = string.Format("tv{0}_{1}", Id, tvid++);
                    if (previousCount > 0)
                    {
                        sbHtml.AppendFormat("<div class=\"textViewElem\">&nbsp;</div>");
                    }
                    if (wb is SMWordImage wbi)
                    {
                        sbHtml.AppendFormat("<div class=\"textViewElem\"><img src=\"{0}\" width={1} height={2}></div>", ctx.GetFileNameFromImage(wbi.image), wbi.imageSize.Width, wbi.imageSize.Height);
                        previousCount++;
                    }
                    else if (wb is SMWordSpecial wbs)
                    {
                        switch (wbs.Type)
                        {
                        case SMWordSpecialType.HorizontalLine:
                            sbHtml.Append("<hr>");
                            previousCount = 0;
                            break;

                        case SMWordSpecialType.Newline:
                            sbHtml.Append("</div>");
                            sbHtml.Append("<div style='display:flex;flex-direction:row;'>");
                            previousCount = 0;
                            break;

                        case SMWordSpecialType.NewPage:
                            sbHtml.Append("</div>");
                            sbHtml.Append("<div style='display:flex;flex-direction:row;margin-top:16pt;'>");
                            previousCount = 0;
                            break;

                        case SMWordSpecialType.NewColumn:
                            sbHtml.Append("</div>");
                            sbHtml.Append("<div style='display:flex;flex-direction:row;margin-top:16pt;'>");
                            previousCount = 0;
                            break;
                        }
                    }
                    else if (wb is SMWordText wbt)
                    {
                        sbHtml.AppendFormat("<div id=\"{1}\" class=\"textViewElem\">{0}</div>", wbt.text, elemId);
                        previousCount++;
                    }
                    else if (wb is SMWordToken wbk)
                    {
                        if (wbk.Editable)
                        {
                            sbHtml.AppendFormat("<div class=\"textViewElem\"><input id=\"{2}\" type=text size={1} style='background:LightYellow;font-family:{0};font-size:100%;'></div>", Font.Name, wbk.tag.Length, elemId);
                        }
                        else
                        {
                            sbHtml.AppendFormat("<div id=\"{2}\" class=\"textViewElem dropable\" data-tag=\"{1}\">{0}</div>", wbk.text.Length > 0 ? wbk.text : "__________", wbk.tag, elemId);
                        }
                        previousCount++;
                    }
                }
                sbHtml.Append("</div>");
            }
            else
            {
                sbHtml.Append(this.Text.Replace("\n", "<br>"));
            }

            sbHtml.Append("</div>\n");
        }