Ejemplo n.º 1
0
        protected override void DrawItem(PaintEventArgs e)
        {
            //Rectangle rectangle = this.DisplayRectangle;
            IViewItemOwner pViewItemOwner     = this.pOwner as IViewItemOwner;
            Rectangle      viewItemsRectangle = e.ClipRectangle;// pViewItemOwner == null ? rectangle : pViewItemOwner.ViewItemsRectangle;

            GISShare.Controls.WinForm.WFNew.LayoutEngine.LayoutStackH_Row(e.Graphics, this, viewItemsRectangle, this.DisplayRectangle, ref this._TopViewItemIndex, ref this._BottomViewItemIndex);
            ViewItem      viewItem = null;
            IMessageChain pMessageChain;

            for (int i = this.TopViewItemIndex; i <= this.BottomViewItemIndex; i++)
            {
                viewItem = this.ViewItems[i];
                if (viewItem == null)
                {
                    continue;
                }
                Rectangle clipRectangle = Rectangle.Intersect(viewItemsRectangle, viewItem.DisplayRectangle);
                if (clipRectangle.Width > 0 && clipRectangle.Height > 0)
                {
                    pMessageChain = viewItem as IMessageChain;
                    if (pMessageChain != null)
                    {
                        //e.Graphics.SetClip(clipRectangle);
                        e.Graphics.SetClip(System.Drawing.Rectangle.FromLTRB(clipRectangle.Left - 1, clipRectangle.Top - 1, clipRectangle.Right, clipRectangle.Bottom));
                        MessageInfo messageInfo = new MessageInfo(this, MessageStyle.eMSPaint, new PaintEventArgs(e.Graphics, clipRectangle));
                        pMessageChain.SendMessage(messageInfo);
                    }
                }
            }
            //base.DrawItem(e);
        }
Ejemplo n.º 2
0
        private void MSMouseMove(MessageInfo messageInfo)//
        {
            //if (this.m_MouseDown) return;
            //
            IViewItemOwner pViewItemOwner = messageInfo.Now as IViewItemOwner;

            if (pViewItemOwner != null)
            {
                MouseEventArgs mouseEventArgs = messageInfo.MessageParameter as MouseEventArgs;
                if (mouseEventArgs != null)
                {
                    Rectangle rectangle = Rectangle.Intersect(pViewItemOwner.ViewItemsRectangle, this.DisplayRectangle);
                    if (this.m_MouseDown && !rectangle.Contains(mouseEventArgs.Location))
                    {
                        return;                                                                  //key
                    }
                    //
                    bool bMouseMove = Form.MouseButtons == MouseButtons.None ? rectangle.Contains(mouseEventArgs.Location) : this.m_MouseDown;
                    //if (this.DisplayRectangle.Contains(mouseEventArgs.Location))
                    if (bMouseMove)
                    {
                        if (!this.m_MouseEnter)
                        {
                            this.m_MouseEnter = true;
                            //Console.WriteLine(this.Text + "|true|" + this.eBaseItemState);
                            if (this.RefreshBaseItemState)
                            {
                                pViewItemOwner.Refresh();
                            }
                            //植入监听
                            this.MessageMonitor(new MessageInfo(this, MessageStyle.eMSMouseEnter, messageInfo.MessageParameter));
                        }
                        //植入监听
                        this.MessageMonitor(messageInfo);//new MessageInfo(this, messageInfo.eMessageStyle, messageInfo.MessageParameter)
                    }
                    else
                    {
                        if (this.m_MouseEnter)
                        {
                            this.m_MouseEnter = false;
                            //Console.WriteLine(this.Text + "|2 false|" + this.eBaseItemState);
                            if (this.RefreshBaseItemState)
                            {
                                pViewItemOwner.Refresh();
                            }
                            //植入监听
                            this.MessageMonitor(new MessageInfo(this, MessageStyle.eMSMouseLeave, messageInfo.MessageParameter));
                        }
                    }
                }
            }
        }
Ejemplo n.º 3
0
        private void MSMouseDoubleClick(MessageInfo messageInfo)
        {
            IViewItemOwner pViewItemOwner = messageInfo.Now as IViewItemOwner;

            if (pViewItemOwner != null)
            {
                MouseEventArgs mouseEventArgs = messageInfo.MessageParameter as MouseEventArgs;
                if (mouseEventArgs != null && this.DisplayRectangle.Contains(mouseEventArgs.Location))
                {
                    //植入监听
                    this.MessageMonitor(messageInfo);//new MessageInfo(this, messageInfo.eMessageStyle, messageInfo.MessageParameter)
                }
            }
        }
Ejemplo n.º 4
0
 private void MSMouseEnter(MessageInfo messageInfo)
 {
     if (!this.m_MouseEnter)
     {
         this.m_MouseEnter = true;
         //Console.WriteLine(this.Text + "|2 true|" + this.eBaseItemState);
         IViewItemOwner pViewItemOwner = messageInfo.Now as IViewItemOwner;
         if (pViewItemOwner != null)
         {
             if (this.RefreshBaseItemState)
             {
                 pViewItemOwner.Refresh();
             }
         }
     }
 }
Ejemplo n.º 5
0
 private void MSMouseLeave(MessageInfo messageInfo)
 {
     if (this.m_MouseEnter)
     {
         this.m_MouseEnter = false;
         //Console.WriteLine(this.Text + "|1 false|" + this.eBaseItemState);
         IViewItemOwner pViewItemOwner = messageInfo.Now as IViewItemOwner;
         if (pViewItemOwner != null)
         {
             if (this.RefreshBaseItemState)
             {
                 pViewItemOwner.Refresh();
             }
         }
         //植入监听
         this.MessageMonitor(messageInfo);//new MessageInfo(this, messageInfo.eMessageStyle, messageInfo.MessageParameter)
     }
 }
Ejemplo n.º 6
0
        private void MSMouseUp(MessageInfo messageInfo)
        {
            this.m_MouseDown = false;
            IViewItemOwner pViewItemOwner = messageInfo.Now as IViewItemOwner;

            if (pViewItemOwner != null)
            {
                MouseEventArgs mouseEventArgs = messageInfo.MessageParameter as MouseEventArgs;
                if (mouseEventArgs == null || this.DisplayRectangle.Contains(mouseEventArgs.Location))
                {
                    this.m_MouseEnter = false;
                }
                if (this.RefreshBaseItemState)
                {
                    pViewItemOwner.Refresh();
                }
            }
            //植入监听
            this.MessageMonitor(messageInfo);//new MessageInfo(this, messageInfo.eMessageStyle, messageInfo.MessageParameter)
        }
Ejemplo n.º 7
0
        protected virtual void DrawItem(System.Windows.Forms.PaintEventArgs e)
        {
            //Rectangle rectangle = this.DisplayRectangle;
            IViewItemOwner pViewItemOwner     = this.pOwner as IViewItemOwner;
            Rectangle      viewItemsRectangle = e.ClipRectangle;// pViewItemOwner == null ? rectangle : pViewItemOwner.ViewItemsRectangle;

            GISShare.Controls.WinForm.WFNew.LayoutEngine.LayoutStackH_Row(e.Graphics, this, viewItemsRectangle, this.DisplayRectangle, ref this._TopViewItemIndex, ref this._BottomViewItemIndex);
            ViewItem      viewItem = null;
            IMessageChain pMessageChain;

            for (int i = this.TopViewItemIndex; i <= this.BottomViewItemIndex; i++)
            {
                viewItem = this.ViewItems[i];
                if (viewItem == null)
                {
                    continue;
                }
                Rectangle clipRectangle = Rectangle.Intersect(viewItemsRectangle, viewItem.DisplayRectangle);
                if (clipRectangle.Width > 0 && clipRectangle.Height > 0)
                {
                    pMessageChain = viewItem as IMessageChain;
                    if (pMessageChain != null)
                    {
                        e.Graphics.SetClip(clipRectangle);
                        MessageInfo messageInfo = new MessageInfo(this, MessageStyle.eMSPaint, new PaintEventArgs(e.Graphics, clipRectangle));
                        pMessageChain.SendMessage(messageInfo);
                    }
                }
            }
            #region 已抛弃(布局移植到LayoutEngine)
            //Rectangle rectangle = this.DisplayRectangle;
            //int iW = 0;
            //int iOffsetX = 0;
            ////
            //IViewItemOwner pViewItemOwner = this.pOwner as IViewItemOwner;
            //Rectangle viewItemsRectangle = pViewItemOwner == null ? rectangle : pViewItemOwner.ViewItemsRectangle;
            ////
            //ViewItem viewItem = null;
            //int iCount = this.ViewItems.Count;
            //int iLeftX = 0;
            //int iRightX = 0;
            //int iLeftIndex = 0;
            //int iRightIndex = iCount;
            //for (int i = 0; i < iCount; i++)
            //{
            //    viewItem = this.ViewItems[i];
            //    //
            //    iW = viewItem.MeasureSize(e.Graphics).Width;
            //    iLeftX = rectangle.Left + iOffsetX;
            //    iRightX = iLeftX + iW;
            //    if (iRightX <= viewItemsRectangle.Left)
            //    {
            //        iLeftIndex++;
            //    }
            //    else if (iLeftX >= viewItemsRectangle.Right)
            //    {
            //        iRightIndex--;
            //    }
            //    else
            //    {
            //        ISetViewItemHelper pSetViewItemHelper = viewItem as ISetViewItemHelper;
            //        if (pSetViewItemHelper != null)
            //        {
            //            pSetViewItemHelper.SetViewItemDisplayRectangle(new Rectangle(iLeftX, rectangle.Top, iW, rectangle.Height));
            //            //
            //            Rectangle clipRectangle = Rectangle.Intersect(viewItemsRectangle, viewItem.DisplayRectangle);
            //            if (clipRectangle.Width > 0 && clipRectangle.Height > 0)
            //            {
            //                IMessageChain pMessageChain = viewItem as IMessageChain;
            //                if (pMessageChain != null)
            //                {
            //                    e.Graphics.SetClip(clipRectangle);
            //                    MessageInfo messageInfo = new MessageInfo(this, MessageStyle.eMSPaint, new PaintEventArgs(e.Graphics, clipRectangle));
            //                    pMessageChain.SendMessage(messageInfo);
            //                }
            //            }
            //        }
            //    }
            //    //
            //    iOffsetX += iW;
            //}
            ////
            //this.m_TopViewItemIndex = iLeftIndex;
            //this.m_BottomViewItemIndex = iRightIndex - 1;
            #endregion
        }