示例#1
0
 protected override void OnGuestTalk(UIGuestTalkEventArgs e)
 {
     if (this.DragOver != null)
     {
         this.DragOver(this, e);
     }
     base.OnGuestTalk(e);
 }
示例#2
0
        //protected override void Describe(UIVisitor visitor)
        //{
        //    //describe base properties
        //    base.Describe(visitor);

        //    //describe child content
        //    if (uiList != null)
        //    {
        //        int j = this.uiList.Count;
        //        for (int i = 0; i < j; ++i)
        //        {
        //            uiList.GetElement(i).Walk(visitor);
        //        }
        //    }
        //}

        protected override void OnGuestTalk(UIGuestTalkEventArgs e)
        {
            if (this.GuestRequest != null)
            {
                this.GuestRequest(this, e);
            }
            base.OnGuestTalk(e);
        }
示例#3
0
 protected virtual void OnGuestTalk(UIGuestTalkEventArgs e)
 {
 }
 void IEventListener.ListenGuestTalk(UIGuestTalkEventArgs e)
 {
 }
 void IEventListener.ListenGuestTalk(UIGuestTalkEventArgs e)
 {
     this.OnGuestTalk(e);
 }
 protected override void OnGuestTalk(UIGuestTalkEventArgs e)
 {
     //test ***
     this.BackColor = Color.Green;
     base.OnGuestTalk(e);
 }
        void SetupControllerBoxProperties(UIControllerBox controllerBox)
        {
            //for controller box
            controllerBox.MouseUp += (s, e) =>
            {
                if (e.IsDragging)
                {
                    //this is dropping
                    //find underlying element to drop into

                    var dragOverElements = FindUnderlyingElements(controllerBox);
                    if (dragOverElements.Count > 0)
                    {
                        //TODO: review here
                        //this version we select the first one

                        var listener = dragOverElements[0] as IEventListener;
                        if (listener != null)
                        {
                            var talkMsg = new UIGuestTalkEventArgs();
                            talkMsg.Sender       = controllerBox;
                            talkMsg.UserMsgFlags = 3;//send drop notify
                            listener.ListenGuestTalk(talkMsg);
                        }
                    }
                }
            };
            controllerBox.MouseDrag += (s, e) =>
            {
                MoveWithSnapToGrid(controllerBox, e.DiffCapturedX, e.DiffCapturedY);
                e.MouseCursorStyle = MouseCursorStyle.Pointer;
                e.CancelBubbling   = true;
                //test here -----------------------------------------------------
                //find dragover element ***

                var dragOverElements = FindUnderlyingElements(controllerBox);
                if (dragOverElements.Count == 0)
                {
                    Dictionary <UIElement, int> prevDragOverElements = controllerBox.LastestDragOverElements;
                    if (prevDragOverElements != null)
                    {
                        foreach (var leavingElement in prevDragOverElements.Keys)
                        {
                            var listener = leavingElement as IEventListener;
                            if (listener != null)
                            {
                                var talkMsg = new UIGuestTalkEventArgs();
                                talkMsg.Sender       = controllerBox;
                                talkMsg.UserMsgFlags = 2;//leaving //sample only
                                listener.ListenGuestTalk(talkMsg);
                            }
                        }
                    }

                    controllerBox.LastestDragOverElements = null;
                }
                else
                {
                    //send notification to another box
                    //use guest talk msg***
                    //check state of guest
                    Dictionary <UIElement, int> prevDragOverElements   = controllerBox.LastestDragOverElements;
                    Dictionary <UIElement, int> latestDragOverElements = new Dictionary <UIElement, int>();
                    if (prevDragOverElements != null)
                    {
                        int j = dragOverElements.Count;
                        for (int i = 0; i < j; ++i)
                        {
                            var dragOverE = dragOverElements[i];

                            int state;
                            if (prevDragOverElements.TryGetValue(dragOverE, out state))
                            {
                                //found in latest drag overelement
                                //remove
                                prevDragOverElements.Remove(dragOverE);
                            }

                            latestDragOverElements.Add(dragOverE, ++state);
                        }
                        //remaining elements
                        foreach (var leavingElement in prevDragOverElements.Keys)
                        {
                            var listener = leavingElement as IEventListener;
                            if (listener != null)
                            {
                                var talkMsg = new UIGuestTalkEventArgs();
                                talkMsg.Sender       = controllerBox;
                                talkMsg.UserMsgFlags = 2;//leaving //sample only
                                listener.ListenGuestTalk(talkMsg);
                            }
                        }
                    }
                    else
                    {
                        foreach (var drgElement in dragOverElements)
                        {
                            latestDragOverElements.Add(drgElement, 0);
                        }
                    }

                    controllerBox.LastestDragOverElements = latestDragOverElements;
                    foreach (var drgElement in latestDragOverElements.Keys)
                    {
                        var listener = drgElement as IEventListener;
                        if (listener != null)
                        {
                            var talkMsg = new UIGuestTalkEventArgs();
                            talkMsg.Sender       = controllerBox;
                            talkMsg.UserMsgFlags = 1;//sample only
                            listener.ListenGuestTalk(talkMsg);
                        }
                    }
                }
            };
        }
 void IEventListener.ListenGuestTalk(UIGuestTalkEventArgs e)
 {
     this.OnGuestTalk(e);
 }
示例#9
0
 public void ListenGuestTalk(UIGuestTalkEventArgs e)
 {
 }
示例#10
0
 protected virtual void OnGuestTalk(UIGuestTalkEventArgs e)
 {
 }