/// <summary> 创建一个新字体样式 </summary> /// <returns>样式编号</returns> public int NewDefaultTextStyle() { HCTextStyle vTextStyle = new HCTextStyle(); FTextStyles.Add(vTextStyle); return(FTextStyles.Count - 1); }
public override int GetMatchStyleNo(HCStyle AStyle, int ACurStyleNo) { int Result = HCStyle.Null; if (AStyle.TextStyles[ACurStyleNo].BackColor == FColor) { Result = ACurStyleNo; return(Result); } HCTextStyle vTextStyle = new HCTextStyle(); try { vTextStyle.AssignEx(AStyle.TextStyles[ACurStyleNo]); // item当前的样式 vTextStyle.BackColor = FColor; if (this.OnTextStyle != null) { this.OnTextStyle(ACurStyleNo, ref vTextStyle); } Result = AStyle.GetStyleNo(vTextStyle, true); // 新样式编号 } finally { vTextStyle.Dispose(); } return(Result); }
public int GetStyleNo(HCTextStyle aTextStyle, bool aCreateIfNull) { int Result = -1; for (int i = 0; i <= FTextStyles.Count - 1; i++) { if (FTextStyles[i].EqualsEx(aTextStyle)) { Result = i; return(Result); } } if (aCreateIfNull && (Result < 0)) { HCTextStyle vTextStyle = new HCTextStyle(); vTextStyle.AssignEx(aTextStyle); FTextStyles.Add(vTextStyle); vTextStyle.ApplyStyle(FTempCanvas); Result = FTextStyles.Count - 1; FTempStyleNo = Result; } return(Result); }
public void AssignEx(HCTextStyle aSource) { this.FSize = aSource.Size; this.FFontStyles.Value = aSource.FontStyles.Value; this.FFamily = aSource.Family; this.FColor = aSource.Color; this.FBackColor = aSource.BackColor; }
/// <summary> 创建一个新字体样式 </summary> /// <returns>样式编号</returns> public int NewDefaultTextStyle() { HCTextStyle vTextStyle = new HCTextStyle(); FTextStyles.Add(vTextStyle); vTextStyle.ApplyStyle(FTempCanvas); return(FTextStyles.Count - 1); }
public void AssignEx(HCTextStyle ASource) { this.FSize = ASource.Size; this.FFontStyles = ASource.FontStyles; this.FFamily = ASource.Family; this.FColor = ASource.Color; this.FBackColor = ASource.BackColor; }
public bool EqualsEx(HCTextStyle aSource) { return((this.FSize == aSource.Size) && (this.FFontStyles.Value == aSource.FontStyles.Value) && (this.FFamily == aSource.Family) && (this.FColor == aSource.Color) && (this.FBackColor == aSource.BackColor)); }
// 类内部方法 private void ApplySupSubStyle(HCTextStyle aTextStyle, HCCanvas aCanvas, Single aScale = 1) { if (aTextStyle.BackColor == HC.HCTransparentColor) { aCanvas.Brush.Style = HCBrushStyle.bsClear; } else { aCanvas.Brush.Color = aTextStyle.BackColor; } aCanvas.Font.BeginUpdate(); try { aCanvas.Font.Color = aTextStyle.Color; aCanvas.Font.Family = aTextStyle.Family; aCanvas.Font.Size = (int)Math.Round(aTextStyle.Size * 2 / 3f); if (aTextStyle.FontStyles.Contains((byte)HCFontStyle.tsBold)) { aCanvas.Font.FontStyles.InClude((byte)HCFontStyle.tsBold); } else { aCanvas.Font.FontStyles.ExClude((byte)HCFontStyle.tsBold); } if (aTextStyle.FontStyles.Contains((byte)HCFontStyle.tsItalic)) { aCanvas.Font.FontStyles.InClude((byte)HCFontStyle.tsItalic); } else { aCanvas.Font.FontStyles.ExClude((byte)HCFontStyle.tsItalic); } if (aTextStyle.FontStyles.Contains((byte)HCFontStyle.tsUnderline)) { aCanvas.Font.FontStyles.InClude((byte)HCFontStyle.tsUnderline); } else { aCanvas.Font.FontStyles.ExClude((byte)HCFontStyle.tsUnderline); } if (aTextStyle.FontStyles.Contains((byte)HCFontStyle.tsStrikeOut)) { aCanvas.Font.FontStyles.InClude((byte)HCFontStyle.tsStrikeOut); } else { aCanvas.Font.FontStyles.ExClude((byte)HCFontStyle.tsStrikeOut); } } finally { aCanvas.Font.EndUpdate(); } }
protected void LoadItemFromStreamAlone(Stream aStream, ref HCCustomItem aItem) { string vFileExt = ""; ushort vFileVersion = 0; byte vLan = 0; aStream.Position = 0; HC._LoadFileFormatAndVersion(aStream, ref vFileExt, ref vFileVersion, ref vLan); // 文件格式和版本 if ((vFileExt != HC.HC_EXT) && (vFileExt != "cff.")) { throw new Exception("加载失败,不是" + HC.HC_EXT + "文件!"); } int vStyleNo = HCStyle.Null; byte[] vBuffer = BitConverter.GetBytes(vStyleNo); aStream.Read(vBuffer, 0, vBuffer.Length); vStyleNo = BitConverter.ToInt32(vBuffer, 0); if (aItem == null) { aItem = CreateItemByStyle(vStyleNo); } aItem.LoadFromStream(aStream, null, vFileVersion); if (vStyleNo > HCStyle.Null) { HCTextStyle vTextStyle = new HCTextStyle(); try { vTextStyle.LoadFromStream(aStream, vFileVersion); vStyleNo = Style.GetStyleNo(vTextStyle, true); aItem.StyleNo = vStyleNo; } finally { vTextStyle.Dispose(); } } int vParaNo = -1; HCParaStyle vParaStyle = new HCParaStyle(); try { vParaStyle.LoadFromStream(aStream, vFileVersion); vParaNo = Style.GetParaNo(vParaStyle, true); } finally { vParaStyle.Dispose(); } aItem.ParaNo = vParaNo; }
public override int GetMatchStyleNo(HCStyle AStyle, int ACurStyleNo) { int Result = HCStyle.Null; HCTextStyle vTextStyle = new HCTextStyle(); try { vTextStyle.AssignEx(AStyle.TextStyles[ACurStyleNo]); // item当前的样式 if (this.Append) { if (!vTextStyle.FontStyles.Contains((byte)FFontStyle)) { // 不能同时为上标和下标 if (FFontStyle == HCFontStyle.tsSuperscript) { vTextStyle.FontStyles.ExClude((byte)HCFontStyle.tsSubscript); } else if (FFontStyle == HCFontStyle.tsSubscript) { vTextStyle.FontStyles.ExClude((byte)HCFontStyle.tsSuperscript); } vTextStyle.FontStyles.InClude((byte)FFontStyle); } else { return(ACurStyleNo); } } else // 减去 { if (vTextStyle.FontStyles.Contains((byte)FFontStyle)) { vTextStyle.FontStyles.ExClude((byte)FFontStyle); } else { return(ACurStyleNo); } } if (this.OnTextStyle != null) { this.OnTextStyle(ACurStyleNo, ref vTextStyle); } Result = AStyle.GetStyleNo(vTextStyle, true); // 新样式编号 } finally { vTextStyle.Dispose(); } return(Result); }
Custom = -1000; // 自定义类型分界线 public HCStyle() { FTempCanvas = CreateStyleCanvas(); FTempStyleNo = HCStyle.Null; FBackgroundColor = Color.FromArgb(255, 255, 255); FSelColor = Color.FromArgb(0xA6, 0xCA, 0xF0); FLineSpaceMin = 8; FShowParaLastMark = true; FStates = new HCStates(); FUpdateInfo = new UpdateInfo(); FTextStyles = new List <HCTextStyle>(); FParaStyles = new List <HCParaStyle>(); FDefaultTextStyle = new HCTextStyle(); }
public override bool StyleHasMatch(HCStyle AStyle, int ACurStyleNo) { bool Result = false; HCTextStyle vTextStyle = new HCTextStyle(); try { vTextStyle.AssignEx(AStyle.TextStyles[ACurStyleNo]); // item当前的样式 Result = vTextStyle.FontStyles.Contains((byte)FFontStyle); } finally { vTextStyle.Dispose(); } return(Result); }
Custom = -1000; // 自定义类型分界线 public HCStyle() { FTempCanvas = CreateStyleCanvas(); FTempStyleNo = HCStyle.Null; FBackgroundColor = Color.FromArgb(255, 255, 255); FSelColor = Color.FromArgb(0xA6, 0xCA, 0xF0); FLineSpaceMin = 8; FFormatVersion = 2; FShowParaLastMark = true; FDrawHotDomainRegion = true; FDrawActiveDomainRegion = true; FStates = new HCStates(); FUpdateInfo = new UpdateInfo(); FTextStyles = new List <HCTextStyle>(); FParaStyles = new List <HCParaStyle>(); FDefaultTextStyle = new HCTextStyle(); FDefaultTextStyle.ApplyStyle(FTempCanvas); }
public int GetMatchStyleNo(HCStyle aStyle, int aCurStyleNo) { if (DoMatchCur(aStyle.TextStyles[aCurStyleNo])) { return(aCurStyleNo); } using (HCTextStyle vTextStyle = new HCTextStyle()) { vTextStyle.AssignEx(aStyle.TextStyles[aCurStyleNo]); DoMatchNew(vTextStyle); if (FOnTextStyle != null) { FOnTextStyle(aCurStyleNo, vTextStyle); } return(aStyle.GetStyleNo(vTextStyle, true)); } }
protected override void DoMatchNew(HCTextStyle aTextStyle) { if (Append) { if (FFontStyle == HCFontStyle.tsSuperscript) { aTextStyle.FontStyles.ExClude((byte)HCFontStyle.tsSubscript); } else if (FFontStyle == HCFontStyle.tsSubscript) { aTextStyle.FontStyles.ExClude((byte)HCFontStyle.tsSuperscript); } aTextStyle.FontStyles.InClude((byte)FFontStyle); } else { aTextStyle.FontStyles.ExClude((byte)FFontStyle); } }
public int GetStyleNo(HCTextStyle ATextStyle, bool ACreateIfNull) { int Result = -1; for (int i = 0; i <= FTextStyles.Count - 1; i++) { if (FTextStyles[i].EqualsEx(ATextStyle)) { Result = i; return(Result); } } if (ACreateIfNull && (Result < 0)) { HCTextStyle vTextStyle = new HCTextStyle(); vTextStyle.AssignEx(ATextStyle); FTextStyles.Add(vTextStyle); Result = FTextStyles.Count - 1; } return(Result); }
protected override void DoMatchNew(HCTextStyle aTextStyle) { aTextStyle.Family = FFontName; }
public int AddTextStyle(HCTextStyle aTextStyle) { FTextStyles.Add(aTextStyle); return(FTextStyles.Count - 1); }
protected override bool DoMatchCur(HCTextStyle aTextStyle) { return(Append && aTextStyle.FontStyles.Contains((byte)FFontStyle)); }
protected abstract void DoMatchNew(HCTextStyle aTextStyle);
protected abstract bool DoMatchCur(HCTextStyle aTextStyle);
protected override void DoMatchNew(HCTextStyle aTextStyle) { aTextStyle.BackColor = FColor; }
protected override bool DoMatchCur(HCTextStyle aTextStyle) { return(aTextStyle.BackColor == FColor); }
protected override void DoMatchNew(HCTextStyle aTextStyle) { aTextStyle.Size = FFontSize; }
protected override bool DoMatchCur(HCTextStyle aTextStyle) { return(aTextStyle.Size == FFontSize); }
protected override bool DoMatchCur(HCTextStyle aTextStyle) { return(aTextStyle.Family == FFontName); }