protected override void OnGuestTalk(UIGuestTalkEventArgs e) { if (this.DragOver != null) { this.DragOver(this, e); } base.OnGuestTalk(e); }
//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); }
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); } } } }; }
public void ListenGuestTalk(UIGuestTalkEventArgs e) { }