Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
        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));
            }
        }
Beispiel #6
0
        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);
        }