/*! \brief Raising an event invokes the event handler through a delegate. * * The \b OnNullEvent method also allows derived classes to handle the * event without attaching a delegate. This is the preferred technique for * handling the event in a derived class. * \note When overriding \b OnNullEvent in a derived class, be sure to * call the base class's \b OnNullEvent method so that registered delegates * receive the event. */ public virtual void OnNullEvent(Wimp.EventArgs e) { if (NullEvent != null) { NullEvent(this, e); } }
/*! \brief Dispatch events that are specific to a plain Wimp task and are of no * use to a Toolbox task. */ public override void Dispatch(Wimp.EventArgs e) { uint window_handle = e.GetWindowHandle(); if ((int)window_handle <= 0) { switch (e.Type) { case Wimp.PollCode.MenuSelection: OnMenuSelection((Wimp.MenuSelectionEventArgs)e); break; default: // A Wimp event that is not specific to a window, so let Task.Dispatch // deal with it. base.Dispatch(e); break; } } else { Wimp.Window window = Wimp.Window.GetInstance(window_handle); window.Dispatch(e); } }
public virtual void Dispatch(Wimp.EventArgs e) { switch (e.Type) { case PollCode.RedrawWindow: OnRedraw((RedrawEventArgs)e); break; case PollCode.OpenWindow: OnOpen((OpenEventArgs)e); break; case PollCode.CloseWindow: OnClose((CloseEventArgs)e); break; case PollCode.PointerLeaveWindow: OnPointerLeave((PointerEventArgs)e); break; case PollCode.PointerEnterWindow: OnPointerEnter((PointerEventArgs)e); break; case PollCode.MouseClick: OnClick((MouseClickEventArgs)e); break; case PollCode.KeyPressed: OnKeyPress((KeyPressEventArgs)e); break; case PollCode.ScrollRequest: OnScrollRequest((ScrollRequestEventArgs)e); break; case PollCode.LoseCaret: OnLoseCaret((Wimp.CaretEventArgs)e); break; case PollCode.GainCaret: OnGainCaret((Wimp.CaretEventArgs)e); break; case PollCode.UserMessage: case PollCode.UserMessageRecorded: OnMessage((Wimp.MessageEventArgs)e); break; } }
/*! \brief Dispatch any Wimp events that may be of interest to both Wimp and Toolbox tasks. */ public virtual void Dispatch(Wimp.EventArgs e) { switch (e.Type) { case Wimp.PollCode.Null: OnNullEvent(e); break; case Wimp.PollCode.UserDragBox: OnUserDragEnd((Wimp.UserDragEventArgs)e); break; case Wimp.PollCode.UserMessage: case Wimp.PollCode.UserMessageRecorded: OnMessage((Wimp.MessageEventArgs)e); break; } }
public override void Dispatch(Wimp.EventArgs e) { switch (e.Type) { case Wimp.PollCode.RedrawWindow: OnRedraw((Wimp.RedrawEventArgs)e); break; case Wimp.PollCode.LoseCaret: OnLoseCaret((Wimp.CaretEventArgs)e); break; case Wimp.PollCode.GainCaret: OnGainCaret((Wimp.CaretEventArgs)e); break; case Wimp.PollCode.UserMessage: case Wimp.PollCode.UserMessageRecorded: OnMessage((Wimp.MessageEventArgs)e); break; } }
public virtual void Dispatch(Wimp.EventArgs e) { }
//! \brief Dispatch Toolbox/Wimp events appropriately. public override void Dispatch(Wimp.EventArgs e) { Toolbox.Object tb_obj; IDBlock = GetIDBlock(); if (Toolbox.Object.TryGetValue(IDBlock.SelfID, out tb_obj)) { if (e.Type == Wimp.PollCode.ToolboxEvent) { // A Toolbox event for a specific object, so dispatch it to that object. tb_obj.Dispatch((Toolbox.ToolboxEventArgs)e); } else { // A Wimp event for a specific object, so dispatch it to that object. tb_obj.Dispatch(e); } } else if (e.Type != Wimp.PollCode.ToolboxEvent) { if (e.Type == Wimp.PollCode.UserMessage || e.Type == Wimp.PollCode.UserMessageRecorded) { // Some messages are window specific, but the Toolbox ID Block // isn't updated. In this case, we use the Wimp handle to find the // Toolbox object. uint cmp_id; tb_obj = Toolbox.Window.WimpToToolbox(e.GetWindowHandle(), -1, out cmp_id); if (tb_obj != null) { tb_obj.Dispatch(e); } else { // The destination of the DataLoad could be the Iconbar, in // which case WimpToToolbox will return null, so let // Task.Dispatch deal with it. base.Dispatch(e); } } else { // A Wimp event that is not specific to an object, so let // Task.Dispatch deal with it. base.Dispatch(e); } } else { var toolbox_event = (Toolbox.ToolboxEventArgs)e; switch (toolbox_event.Header.EventCode) { case Toolbox.EventCode.ObjectAutoCreated: OnObjectAutoCreated(new Toolbox.ObjectAutoCreatedEventArgs(e.RawEventData)); break; case Toolbox.EventCode.Error: OnError(new Toolbox.ErrorEventArgs(e.RawEventData)); break; } } }