Exemple #1
0
 /*! \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);
     }
 }
Exemple #2
0
        /*! \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);
            }
        }
Exemple #3
0
            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;
                }
            }
Exemple #4
0
        /*! \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;
            }
        }
Exemple #5
0
            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;
                }
            }
Exemple #6
0
 public virtual void Dispatch(Wimp.EventArgs e)
 {
 }
Exemple #7
0
        //! \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;
                }
            }
        }