Ejemplo n.º 1
0
        protected override bool DoAcceptAction(int aItemNo, int aOffset, HCAction aAction)
        {
            bool Result = base.DoAcceptAction(aItemNo, aOffset, aAction);

            if (Result && (aAction == HCAction.actDeleteItem))
            {
                if (Items[aItemNo].StyleNo == HCStyle.Domain)
                {
                    if ((Items[aItemNo] as HCDomainItem).MarkType == MarkType.cmtEnd)
                    {
                        int vItemNo = GetDomainAnother(aItemNo);  // 找起始
                        Result = (vItemNo >= SelectInfo.StartItemNo) && (vItemNo <= SelectInfo.EndItemNo);
                        if (Result)
                        {
                            FDomainStartDeletes.Add(vItemNo);  // 记录下来
                        }
                    }
                    else  // 域起始标记
                    {
                        Result = FDomainStartDeletes.IndexOf(aItemNo) >= 0;  // 结束标识已经删除了
                    }
                }
            }

            return(Result);
        }
Ejemplo n.º 2
0
        public override bool AcceptAction(int aOffset, HCAction aAction)
        {
            bool Result = base.AcceptAction(aOffset, aAction);

            if (Result)
            {
                if (this.IsElement)
                {
                    if ((aAction == HCAction.actInsertText) || (aAction == HCAction.actBackDeleteText) || (aAction == HCAction.actDeleteText))
                    {
                        Result = !FEditProtect;
                    }
                    else
                    if (aAction == HCAction.actDeleteItem)
                    {
                        Result = FDeleteAllow;
                    }
                }
                else
                {
                    Result = !FEditProtect;
                }
            }

            if (!Result)
            {
                User.MessageBeep(0);
            }

            return(Result);
        }
Ejemplo n.º 3
0
        protected override bool DoAcceptAction(int aItemNo, int aOffset, HCAction aAction)
        {
            bool vResult = true;

            if (Style.States.Contain(HCState.hosLoading) ||
                Style.States.Contain(HCState.hosUndoing) ||
                Style.States.Contain(HCState.hosRedoing)
                )
            {
                return(vResult);
            }

            if (aAction == HCAction.actDeleteItem)
            {
                if (Items[aItemNo].StyleNo == HCStyle.Annotate)  // 是批注
                {
                    vResult = false;
                }
            }

            if (vResult)
            {
                vResult = base.DoAcceptAction(aItemNo, aOffset, aAction);
            }

            return(vResult);
        }
Ejemplo n.º 4
0
        public override bool AcceptAction(int aOffset, bool aRestrain, HCAction aAction)
        {
            bool vR = base.AcceptAction(aOffset, aRestrain, aAction);

            if (vR && FHyperLink != "" && aAction == HCAction.actConcatText)
            {
                vR = false;
            }

            return(vR);
        }
Ejemplo n.º 5
0
        public override bool AcceptAction(int aOffset, bool aRestrain, HCAction aAction)
        {
            bool vResult = base.AcceptAction(aOffset, aRestrain, aAction);

            if (vResult)
            {
                switch (aAction)
                {
                case HCAction.actInsertText:
                    if (FEditProtect)      // 两头允许输入,触发actConcatText时返回供Data层处理新TextItem还是连接
                    {
                        vResult = (aOffset == 0) || (aOffset == this.Length);
                    }

                    break;

                case HCAction.actConcatText:
                    if (FEditProtect)
                    {
                        vResult = false;
                    }
                    else
                    if (IsElement)
                    {
                        vResult = false;
                    }

                    break;

                case HCAction.actBackDeleteText:
                    if (FEditProtect)
                    {
                        vResult = aOffset == 0;
                    }

                    break;

                case HCAction.actDeleteText:
                    if (FEditProtect)
                    {
                        vResult = aOffset == this.Length;
                    }
                    break;
                }
            }

            return(vResult);
        }
Ejemplo n.º 6
0
        public HCCustomUndoAction ActionAppend(HCAction aTag, int aItemNo, int aOffset, bool aParaFirst)
        {
            HCCustomUndoAction Result = null;

            switch (aTag)
            {
            case HCAction.actBackDeleteText:
            case HCAction.actDeleteText:
            case HCAction.actInsertText:
                Result = new HCTextUndoAction();
                break;

            case HCAction.actSetItemText:
                Result = new HCSetItemTextUndoAction();
                break;

            case HCAction.actDeleteItem:
            case HCAction.actInsertItem:
            case HCAction.actItemMirror:
                Result = new HCItemUndoAction();
                break;

            //case HCAction.actItemProperty:
            //    Result = new HCItemParaFirstUndoAction();
            //    break;

            case HCAction.actItemSelf:
                Result = new HCItemSelfUndoAction();
                break;

            default:
                Result = new HCCustomUndoAction();
                break;
            }

            Result.Tag       = aTag;
            Result.ItemNo    = aItemNo;
            Result.Offset    = aOffset;
            Result.ParaFirst = aParaFirst;

            this.Actions.Add(Result);

            return(Result);
        }
Ejemplo n.º 7
0
        protected override void DoItemAction(int aItemNo, int aOffset, HCAction aAction)
        {
            switch (aAction)
            {
            case HCAction.actDeleteItem:
                _AnnotateRemove(aItemNo, aOffset);
                break;

            case HCAction.actInsertText:
                _AnnotateInsertChar(aItemNo, aOffset);
                break;

            case HCAction.actBackDeleteText:
                _AnnotateBackChar(aItemNo, aOffset);
                break;

            case HCAction.actDeleteText:
                _AnnotateDeleteChar(aItemNo, aOffset);
                break;
            }
        }
Ejemplo n.º 8
0
 public virtual bool AcceptAction(int aOffset, bool aRestrain, HCAction aAction)
 {
     return(true);
 }