private Ternary GetFontEffect(uint mask, uint effect) { STRUCT_CHARFORMAT2 charFormat2 = new STRUCT_CHARFORMAT2(); GetCharFormat(ref charFormat2); if ((charFormat2.dwMask & mask) == 0) { return(Ternary.Indeterminate); } return(((charFormat2.dwEffects & effect) != 0) ? Ternary.Yes : Ternary.No); }
private void SetCharFormat(ref STRUCT_CHARFORMAT2 charFormat2) { charFormat2.cbSize = Marshal.SizeOf(charFormat2); /* * charFormat2.dwMask |= CFM_UNDERLINE | CFM_UNDERLINETYPE; * charFormat2.dwEffects |= CFE_UNDERLINE; * charFormat2.bUnderlineType = CFU_UNDERLINETHICK; */ SendMessageCharFormat2(this.Handle, EM_SETCHARFORMAT, SCF_SELECTION, ref charFormat2); }
private void SetFontEffect(uint mask, uint effect, Ternary val) { if (val == Ternary.Indeterminate) { return; } STRUCT_CHARFORMAT2 charFormat2 = new STRUCT_CHARFORMAT2(); charFormat2.dwMask = mask; charFormat2.dwEffects = val == Ternary.Yes ? effect : 0; SetCharFormat(ref charFormat2); }
public FormatChanges GetFormatChanges() { FormatChanges fc = new FormatChanges(); fc.color = SelectionColor; fc.font = SelectionFont; STRUCT_CHARFORMAT2 cf2 = new STRUCT_CHARFORMAT2(); GetCharFormat(ref cf2); if ((cf2.dwMask & CFM_BOLD) != 0) { fc.bold = ((cf2.dwEffects & CFE_BOLD) != 0) ? Ternary.Yes : Ternary.No; } if ((cf2.dwMask & CFM_ITALIC) != 0) { fc.italic = ((cf2.dwEffects & CFE_ITALIC) != 0) ? Ternary.Yes : Ternary.No; } if ((cf2.dwMask & CFM_UNDERLINE) != 0) { fc.underline = ((cf2.dwEffects & CFE_UNDERLINE) != 0) ? Ternary.Yes : Ternary.No; } if ((cf2.dwMask & CFM_SUPERSCRIPT) != 0) { fc.superscript = ((cf2.dwEffects & CFE_SUPERSCRIPT) != 0) ? Ternary.Yes : Ternary.No; } if ((cf2.dwMask & CFM_SUBSCRIPT) != 0) { fc.subscript = ((cf2.dwEffects & CFE_SUBSCRIPT) != 0) ? Ternary.Yes : Ternary.No; } if ((cf2.dwMask & CFM_STRIKEOUT) != 0) { fc.strikeout = ((cf2.dwEffects & CFE_STRIKEOUT) != 0) ? Ternary.Yes : Ternary.No; } if ((cf2.dwMask & CFM_FACE) != 0) { fc.fontfamily = cf2.szFaceName; } if ((cf2.dwMask & CFM_SIZE) != 0) { fc.fontsize = cf2.yHeight / 20f; /*again, this may not be right. why 20?*/ } return(fc); }
private static extern Int32 SendMessageCharFormat2(IntPtr hWnd, int Msg, Int32 wParam, ref STRUCT_CHARFORMAT2 cf2);
private void GetCharFormat(ref STRUCT_CHARFORMAT2 charFormat2) { charFormat2.cbSize = Marshal.SizeOf(charFormat2); SendMessageCharFormat2(this.Handle, EM_GETCHARFORMAT, SCF_SELECTION, ref charFormat2); }
public void SetFormatChanges(FormatChanges fc) { if (fc.color != Color.Empty) { SelectionColor = fc.color; } if (fc.font != null) { SelectionFont = fc.font; } STRUCT_CHARFORMAT2 cf2 = new STRUCT_CHARFORMAT2(); if (fc.fontfamily != String.Empty) { cf2.dwMask |= CFM_FACE; cf2.szFaceName = fc.fontfamily; } if (fc.fontsize != 0f) { cf2.dwMask |= CFM_SIZE; cf2.yHeight = (int)(fc.fontsize * 20f); /*no idea if this is correct conversion*/ } if (fc.bold != Ternary.Indeterminate) { cf2.dwMask |= CFM_BOLD; if (fc.bold == Ternary.Yes) { cf2.dwEffects |= CFE_BOLD; } } if (fc.italic != Ternary.Indeterminate) { cf2.dwMask |= CFM_ITALIC; if (fc.italic == Ternary.Yes) { cf2.dwEffects |= CFE_ITALIC; } } if (fc.underline != Ternary.Indeterminate) { cf2.dwMask |= CFM_UNDERLINE; if (fc.underline == Ternary.Yes) { cf2.dwEffects |= CFE_UNDERLINE; } } if (fc.strikeout != Ternary.Indeterminate) { cf2.dwMask |= CFM_STRIKEOUT; if (fc.strikeout == Ternary.Yes) { cf2.dwEffects |= CFE_STRIKEOUT; } } if (fc.superscript != Ternary.Indeterminate) { cf2.dwMask |= CFM_SUPERSCRIPT; if (fc.superscript == Ternary.Yes) { cf2.dwEffects |= CFE_SUPERSCRIPT; } } if (fc.subscript != Ternary.Indeterminate) { cf2.dwMask |= CFM_SUBSCRIPT; if (fc.subscript == Ternary.Yes) { cf2.dwEffects |= CFE_SUBSCRIPT; } } if (cf2.dwMask != 0) { SetCharFormat(ref cf2); } }
private void SetCharFormat(ref STRUCT_CHARFORMAT2 charFormat2) { charFormat2.cbSize = Marshal.SizeOf(charFormat2); /* charFormat2.dwMask |= CFM_UNDERLINE | CFM_UNDERLINETYPE; charFormat2.dwEffects |= CFE_UNDERLINE; charFormat2.bUnderlineType = CFU_UNDERLINETHICK; */ SendMessageCharFormat2(this.Handle, EM_SETCHARFORMAT, (IntPtr)SCF_SELECTION, ref charFormat2); }
private void SetFontEffect(uint mask, uint effect, Ternary val) { if (val == Ternary.Indeterminate) return; STRUCT_CHARFORMAT2 charFormat2 = new STRUCT_CHARFORMAT2(); charFormat2.dwMask = mask; charFormat2.dwEffects = val == Ternary.Yes ? effect : 0; SetCharFormat(ref charFormat2); }
private Ternary GetFontEffect(uint mask, uint effect) { STRUCT_CHARFORMAT2 charFormat2 = new STRUCT_CHARFORMAT2(); GetCharFormat(ref charFormat2); if ((charFormat2.dwMask & mask) == 0) return Ternary.Indeterminate; return ((charFormat2.dwEffects & effect) != 0) ? Ternary.Yes : Ternary.No; }
private void GetCharFormat(ref STRUCT_CHARFORMAT2 charFormat2) { charFormat2.cbSize = Marshal.SizeOf(charFormat2); SendMessageCharFormat2(this.Handle, EM_GETCHARFORMAT, (IntPtr)SCF_SELECTION, ref charFormat2); }
private static extern IntPtr SendMessageCharFormat2(IntPtr hWnd, UInt32 Msg, IntPtr wParam, ref STRUCT_CHARFORMAT2 cf2);
public void SetFormatChanges(FormatChanges fc) { if (fc.color != Color.Empty) SelectionColor = fc.color; if (fc.font != null) SelectionFont = fc.font; STRUCT_CHARFORMAT2 cf2 = new STRUCT_CHARFORMAT2(); if (fc.fontfamily != String.Empty) { cf2.dwMask |= CFM_FACE; cf2.szFaceName = fc.fontfamily; } if (fc.fontsize != 0f) { cf2.dwMask |= CFM_SIZE; cf2.yHeight = (int)(fc.fontsize * 20f); /*no idea if this is correct conversion*/ } if (fc.bold != Ternary.Indeterminate) { cf2.dwMask |= CFM_BOLD; if (fc.bold == Ternary.Yes) cf2.dwEffects |= CFE_BOLD; } if (fc.italic != Ternary.Indeterminate) { cf2.dwMask |= CFM_ITALIC; if (fc.italic == Ternary.Yes) cf2.dwEffects |= CFE_ITALIC; } if (fc.underline != Ternary.Indeterminate) { cf2.dwMask |= CFM_UNDERLINE; if (fc.underline == Ternary.Yes) cf2.dwEffects |= CFE_UNDERLINE; } if (fc.strikeout != Ternary.Indeterminate) { cf2.dwMask |= CFM_STRIKEOUT; if (fc.strikeout == Ternary.Yes) cf2.dwEffects |= CFE_STRIKEOUT; } if (fc.superscript != Ternary.Indeterminate) { cf2.dwMask |= CFM_SUPERSCRIPT; if (fc.superscript == Ternary.Yes) cf2.dwEffects |= CFE_SUPERSCRIPT; } if (fc.subscript != Ternary.Indeterminate) { cf2.dwMask |= CFM_SUBSCRIPT; if (fc.subscript == Ternary.Yes) cf2.dwEffects |= CFE_SUBSCRIPT; } if (cf2.dwMask != 0) SetCharFormat(ref cf2); }
public FormatChanges GetFormatChanges() { FormatChanges fc = new FormatChanges(); fc.color = SelectionColor; fc.font = SelectionFont; STRUCT_CHARFORMAT2 cf2 = new STRUCT_CHARFORMAT2(); GetCharFormat(ref cf2); if ((cf2.dwMask & CFM_BOLD) != 0) fc.bold = ((cf2.dwEffects & CFE_BOLD) != 0) ? Ternary.Yes : Ternary.No; if ((cf2.dwMask & CFM_ITALIC) != 0) fc.italic = ((cf2.dwEffects & CFE_ITALIC) != 0) ? Ternary.Yes : Ternary.No; if ((cf2.dwMask & CFM_UNDERLINE) != 0) fc.underline = ((cf2.dwEffects & CFE_UNDERLINE) != 0) ? Ternary.Yes : Ternary.No; if ((cf2.dwMask & CFM_SUPERSCRIPT) != 0) fc.superscript = ((cf2.dwEffects & CFE_SUPERSCRIPT) != 0) ? Ternary.Yes : Ternary.No; if ((cf2.dwMask & CFM_SUBSCRIPT) != 0) fc.subscript = ((cf2.dwEffects & CFE_SUBSCRIPT) != 0) ? Ternary.Yes : Ternary.No; if ((cf2.dwMask & CFM_STRIKEOUT) != 0) fc.strikeout = ((cf2.dwEffects & CFE_STRIKEOUT) != 0) ? Ternary.Yes : Ternary.No; if ((cf2.dwMask & CFM_FACE) != 0) fc.fontfamily = cf2.szFaceName; if ((cf2.dwMask & CFM_SIZE) != 0) fc.fontsize = cf2.yHeight / 20f; /*again, this may not be right. why 20?*/ return fc; }