Ejemplo n.º 1
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);
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 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);
        }
Ejemplo n.º 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);
        }