/// <summary> /// Appends a styled <span> tag to the input StringBuilder. /// </summary> /// <param name="lastSelection"></param> /// <param name="sb">Contains html markup.</param> private void AppendOpeningSpanTag(SelectedRichText lastSelection, StringBuilder sb) { sb.Append("<span style=\""); if (ckFontName.Checked) { if (lastSelection.Font == null || lastSelection.Font.Name != rtCode.SelectionFont.Name) { sb.Append("font-family: '" + rtCode.SelectionFont.Name + "';"); } } if (ckColor.Checked && lastSelection.ForeColor != rtCode.SelectionColor) { sb.Append("color: " + ColorToHex(rtCode.SelectionColor) + ";"); } if (ckBackColor.Checked && lastSelection.BackColor != rtCode.SelectionBackColor) { sb.Append("background-color: " + ColorToHex(rtCode.SelectionBackColor) + ";"); } if (ckFontBold.Checked) { if (lastSelection.Font == null || lastSelection.Font.Bold != rtCode.SelectionFont.Bold) { sb.Append("font-weight: " + (rtCode.SelectionFont.Bold ? "bold" : "normal") + ";"); } } sb.Append("\">"); }
private void btnBeautify_Click(object sender, EventArgs e) { try { if (!FormValidated()) { return; } StringBuilder sb = new StringBuilder(); SelectedRichText lastSelection = new SelectedRichText(null, Color.Empty, Color.Empty); rtCode.Select(0, 1); AppendOpeningSpanTag(lastSelection, sb); lastSelection.Font = rtCode.SelectionFont; lastSelection.BackColor = rtCode.SelectionBackColor; lastSelection.ForeColor = rtCode.SelectionColor; //Iterate through characters. for (int i = 0; i < rtCode.Text.Length; i++) { rtCode.Select(i, 1); char c = rtCode.SelectedText[0]; if ( (rtCode.SelectionBackColor != lastSelection.BackColor) || (!char.IsWhiteSpace(c) && rtCode.SelectionFont.Name != lastSelection.Font.Name) || (!char.IsWhiteSpace(c) && rtCode.SelectionColor != lastSelection.ForeColor) || (!char.IsWhiteSpace(c) && (rtCode.SelectionFont.Bold != lastSelection.Font.Bold)) ) { sb.Append("</span>"); AppendOpeningSpanTag(lastSelection, sb); lastSelection.Font = rtCode.SelectionFont; lastSelection.BackColor = rtCode.SelectionBackColor; lastSelection.ForeColor = rtCode.SelectionColor; } sb.Append(rtCode.SelectedText); } sb.Append("</span>"); txtCode.Text = sb.ToString(); txtCode.SelectAll(); Clipboard.SetText(txtCode.Text); } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void btnBeautify_Click(object sender, EventArgs e) { try { if (!FormValidated()) { return; } StringBuilder sb = new StringBuilder(); SelectedRichText lastSelection = new SelectedRichText(null, Color.Empty, Color.Empty); //if(ckRootNode.Checked) //{ // sb.AppendLine("<" + txtRootName.Text + " " + txtNodeAttributes.Text + ">"); //} rtCode.Select(0, 1); AppendOpeningSpanTag(lastSelection, sb); lastSelection.Font = rtCode.SelectionFont; lastSelection.BackColor = rtCode.SelectionBackColor; lastSelection.ForeColor = rtCode.SelectionColor; //Iterate through characters. for (int i = 0; i < rtCode.Text.Length; i++) { rtCode.Select(i, 1); char c = rtCode.SelectedText[0]; if ( (rtCode.SelectionBackColor != lastSelection.BackColor) || (!char.IsWhiteSpace(c) && rtCode.SelectionFont.Name != lastSelection.Font.Name) || (!char.IsWhiteSpace(c) && rtCode.SelectionColor != lastSelection.ForeColor) || (!char.IsWhiteSpace(c) && (rtCode.SelectionFont.Bold != lastSelection.Font.Bold)) ) { sb.Append("</span>"); AppendOpeningSpanTag(lastSelection, sb); lastSelection.Font = rtCode.SelectionFont; lastSelection.BackColor = rtCode.SelectionBackColor; lastSelection.ForeColor = rtCode.SelectionColor; } if (c == '<') { sb.Append("<"); } else if (c == '>') { sb.Append(">"); } else { sb.Append(rtCode.SelectedText); } } sb.Append("</span>"); if (ckLineNumbers.Checked) { AddLineNumbers(ref sb); } if (ckRootNode.Checked) { sb.Insert(0, "<" + txtRootName.Text + " " + txtNodeAttributes.Text + ">" + Environment.NewLine); sb.Append(Environment.NewLine + "</" + txtRootName.Text + ">"); } txtCode.Text = sb.ToString(); txtCode.SelectAll(); Clipboard.SetText(txtCode.Text); } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }