Ejemplo n.º 1
0
        /// <summary>
        /// 消息转发
        /// </summary>
        /// <param name="msg"></param>
        protected override void GUIProc(Message msg) {
            base.GUIProc(msg);

            switch (msg.ID) {
                case Messages.Message.MOUSE_WHEEL:
                case Messages.Message.KEY_UP:
                case Messages.Message.KEY_DOWN:
                case Messages.Message.KEY_CHAR:
                case Messages.Message.KEY_IME_POS:
                    if (gnEditID > 0) {
                        Objects.Object obj = Pool.ObjectPool.GetObjectByID(gnEditID);
                        if (obj != null) {
                            ((GUI.Controls.Control)obj).SendMessage(msg);
                        }
                    }
                    //Pub.Debug.WriteLine("GUIProc", msg.ToString(), msg.ToString());
                    break;
                default:
                    for (int i = 0; i < gControls.Count; i++) {
                        if (gControls[i].Visible) {
                            gControls[i].SendMessage(msg);
                            if (msg.Suppress) return;
                        }
                    }
                    break;
            }

        }
Ejemplo n.º 2
0
        protected override void GUIProc(Message m) {
            base.GUIProc(m);
            switch (m.ID) {
                case Message.MOUSE_MOVE:
                    //GUIProcMouseMove((Message.MouseMessage)m.Data);
                    MouseMessage data = (MouseMessage)m;
                    Point mp = this.AbsoluteLocation();
                    Point p = new Point(data.Point.X - mp.X, data.Point.Y - mp.Y);
                    //if (gMouseDown) {
                    //    int iLeft = p.X + gHScroll - base.ShadowsSize - base.BorderSize - base.PaddingLeft;
                    //    if (iLeft < 0) {
                    //        gSelectEnd = 0;
                    //    } else {
                    //        for (int i = 0; i <= base.Text.Length; i++) {
                    //            int len = base.Text.Length - i;
                    //            if (base.FontManager.GetWordWidth(base.Text.Substring(0, len)) < iLeft) {
                    //                if (gSelectEnd != len) {
                    //                    gSelectEnd = len;
                    //                    base.Refresh();
                    //                }
                    //                break;
                    //            }
                    //        }
                    //    }
                    //    //base.Form.Text = "X:" + p.X + ",Select:" + gSelectEnd;
                    //}
                    break;
                case Message.MOUSE_DOWN:
                    //GUIProcMouseDown((Message.MouseMessage)m.Data);
                    break;
                case Message.MOUSE_UP:
                    //GUIProcMouseUp((Message.MouseMessage)m.Data);
                    gMouseDown = false;
                    break;
                case Message.PAINT:
                    //GUIProcPaint((Message.PaintMessage)m.Data);
                    break;
                case Message.KEY_IME_POS:
                    KeyImePosMessage kipMsg = (KeyImePosMessage)m;

                    Point pos = this.AbsoluteLocation();

                    kipMsg.Y = pos.Y + this.PaddingTop + base.BorderSize + this.ShadowsSize;
                    //kipMsg.X = pos.X + this.PaddingLeft + base.BorderSize + this.ShadowsSize + (int)OnGetTextLen(gSelectStart) - gHScroll;
                    break;
            }
        }
Ejemplo n.º 3
0
        protected override void GUIProc(Message m) {
            switch (m.ID) {
                case Message.MOUSE_DOWN:
                    MouseMessage data = (MouseMessage)m;
                    Point p = new Point(data.Point.X, data.Point.Y);
                    if (this.Rectangle.Contains(p)) {
                        //gForm.Text = "Name:" + this.ID;
                        m.Suppress = true;

                        System.Diagnostics.StackFrame stackFrame = new System.Diagnostics.StackFrame();
                        System.Reflection.MethodBase methodBase = stackFrame.GetMethod();
                        System.Diagnostics.Trace.WriteLine(this.GetType().Name + "." + methodBase.Name + "\\>Suppress:" + m.Suppress);

                    }
                    break;
            }
            base.GUIProc(m);
        }
Ejemplo n.º 4
0
 protected override void GUIProc(Message m) {
     switch (m.ID) {
         case Message.PAINT:
             //GUIProcPaint((PaintMessage)m);
             base.GUIProc(m);
             break;
         case Message.MOUSE_WHEEL:
             GUIProcMouseWheel((MouseMessage)m);
             break;
         default:
             //System.Windows.Forms.MessageBox.Show("All:" + m.Msg);
             //if (m.Msg != Message.MessageTypes.MOUSE_MOVE) Trace.WriteLine("PanelMessage\\>ID:" + this.ID + ",Name:" + this.Name + ",Msg:(" + m.Msg + ")");
             base.GUIProc(m);
             break;
     }
 }
Ejemplo n.º 5
0
 private void ControlContainer_Apply(object sender, Message Msg) {
     //throw new NotImplementedException();
 }
Ejemplo n.º 6
0
        protected override void GUIProc(Message m) {
            //System.Windows.Forms.MessageBox.Show("All:" + m.Msg + ":" + base.GUIProcSendToChildren);
            //if (m.Msg != Message.MessageTypes.MOUSE_MOVE) Trace.WriteLine("ContainersMessage\\>ID:" + this.ID + ",Name:" + this.Name + ",Msg:(" + m.Msg + "),SendToChildren:" + base.GUIProcSendToChildren);
            //if (base.GUIProcSendToChildren) {

            //base.Debug(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName, "GUIProc", "m.ID", m.ID.ToString());

            switch (m.ID) {
                case Message.MOUSE_DOWN:
                    MouseMessage mData = (MouseMessage)m;
                    //base.Form.Text = "X:" + mData.X + ",Y:" + mData.Y;
                    MouseMessageSend(m);

                    //StackFrame stackFrame = new StackFrame();
                    //System.Reflection.MethodBase methodBase = stackFrame.GetMethod();
                    //Trace.WriteLine(this.GetType().Name + "." + methodBase.Name + "\\>Suppress:" + m.Suppress);

                    if (!m.Suppress) base.GUIProc(m);
                    break;
                case Message.MOUSE_MOVE:
                    MouseMessage moveData = (MouseMessage)m;
                    //base.Form.Text = "Move->X:" + moveData.X + ",Y:" + moveData.Y;
                    MouseMessageSend(m);
                    if (!m.Suppress) base.GUIProc(m);
                    break;
                case Message.MOUSE_UP:
                    MouseMessageSend(m);
                    if (!m.Suppress) base.GUIProc(m);
                    break;
                case Message.RELAYOUT:
                    gChildren.SetOrderByZIndex();
                    NormalMessageSend(m);
                    break;
                case Message.PAINT://绘制事件路由
                    base.GUIProc(m);
                    //根据容器的设定重新设定请求区域
                    //int nTop = base.ShadowsSize + base.BorderSize + base.PaddingTop;
                    //int nLeft = base.ShadowsSize + base.BorderSize + base.PaddingLeft;
                    //int nWidth = base.Width - (base.ShadowsSize * 2 + base.BorderSize * 2 + base.PaddingRight + base.PaddingLeft) - 1;
                    //int nHeight = base.Height - (base.ShadowsSize * 2 + base.BorderSize * 2 + base.PaddingBottom + base.PaddingTop) - 1;

                    //PaintMessage pm = (PaintMessage)m;

                    ////base.Debug(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName, "GUIProc", "pm.Rectangle", pm.Rectangle.ToString());
                    ////base.Debug(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName, "GUIProc", "this.Rectangle", this.Rectangle.ToString());
                    ////base.Debug(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName, "GUIProc", "Pading", "(" + nLeft + ":" + nTop + ")");

                    ////当绘制区域和当前区域有交集时路由绘制
                    //if (this.Rectangle.IntersectsWith(pm.Rectangle)) {

                    //    //重新定义绘制大小,避免子对象的内容超出父对象的限定
                    //    int nRectWidth = pm.Rectangle.Width;
                    //    int nRectHeight = pm.Rectangle.Height;

                    //    //重新定义宽度
                    //    if (pm.Rectangle.Right > this.Right - this.PaddingRight) {
                    //        nRectWidth -= pm.Rectangle.Right - (this.Right - this.PaddingRight);
                    //    }

                    //    //重新定义高度
                    //    if (pm.Rectangle.Bottom > this.Bottom - this.PaddingBottom) {
                    //        nRectHeight -= pm.Rectangle.Bottom - (this.Bottom - this.PaddingBottom);
                    //    }

                    //    Rectangle rect = new Rectangle(pm.Rectangle.Left - this.Left - nLeft - gnOffsetX, pm.Rectangle.Top - this.Top - nTop - gnOffsetY, nRectWidth, nRectHeight);
                    //    Rectangle rectAbs = new Rectangle(pm.Rectangle.Left - this.Left - nLeft, pm.Rectangle.Top - this.Top - nTop, nRectWidth, nRectHeight);
                    //    PaintMessage pmNew = new PaintMessage(pm.Graphics, rect);
                    //    PaintMessage pmNewAbs = new PaintMessage(pm.Graphics, rectAbs);

                    //    base.GUIProc(m);
                    //    for (int i = 0; i < gChildren.Count; i++) {
                    //        if (gChildren[i].Visible) {
                    //            if (gChildren[i].Absolute) {
                    //                gChildren[i].SendMessage(pmNewAbs);
                    //            } else {
                    //                gChildren[i].SendMessage(pmNew);
                    //            }
                    //            if (pmNew.Suppress) return;
                    //        }
                    //    }

                    //    //base.Debug(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName, "GUIProc", "Rectangle", rect.ToString());
                    //}

                    break;
                default:
                    NormalMessageSend(m);
                    break;
            }
            // }
        }
Ejemplo n.º 7
0
 private void NormalMessageSend(Message m) {
     base.GUIProc(m);
     for (int i = 0; i < gChildren.Count; i++) {
         if (gChildren[i].Visible) {
             gChildren[i].SendMessage(m);
             if (m.Suppress) return;
         }
     }
 }
Ejemplo n.º 8
0
        private void MouseMessageSend(Message m) {
            MouseMessage mData = (MouseMessage)m;
            MouseMessage em = new MouseMessage(m.ID, mData.Button, mData.Wheel, new System.Drawing.Point(mData.Point.X - base.Left, mData.Point.Y - base.Top));
            //data.X = mData.X - base.Left;
            //data.Y = mData.Y - base.Top;
            //data.Button = mData.Button;

            //Message em = new Message(m.Msg, data);
            //if (m.Msg == Message.MessageTypes.MOUSE_DOWN) base.Form.Text = "X:" + data.X + ",Y:" + data.Y;
            //if (m.Msg != Message.MessageTypes.MOUSE_MOVE) Trace.WriteLine("MouseMessageSend\\>ID:" + this.ID + ",Name:" + this.Name + ",Msg:(" + m.Msg + "),Children:" + gChildren.Count);

            for (int i = gChildren.Count - 1; i >= 0; i--) {
                if (gChildren[i].Visible) {
                    gChildren[i].SendMessage(em);

                    if (em.Suppress) {
                        m.Suppress = true;
                        return;
                    }
                }
            }
        }
Ejemplo n.º 9
0
 protected override void GUIProc(Message m) {
     base.GUIProc(m);
     //System.Windows.Forms.MessageBox.Show("All:" + m.Msg + ":" + base.GUIProcSendToChildren);
     switch (m.ID) {
         case Message.MOUSE_MOVE:
             GUIProcMouseMove((MouseMessage)m);
             break;
         case Message.MOUSE_UP:
             gbMouseDown = false;
             break;
     }
 }
Ejemplo n.º 10
0
 protected override void GUIProc(Message m) {
     base.GUIProc(m);
     switch (m.ID) {
         case Message.MOUSE_MOVE:
             GUIProcMouseMove((MouseMessage)m);
             break;
         case Message.MOUSE_UP:
             gbMouseDown = false;
             break;
     }
 }