예제 #1
0
        /// <summary>
        /// Occurs when a control got focus
        /// </summary>
        /// <param name="hWnd">hwnd</param>
        /// <returns>hwnd of the control that got focus</returns>
        private void OnControlGotFocus(IntPtr hWnd)
        {
            EventHandler <TemplateEventArgs <IntPtr> > handle = ControlGotFocus;

            if (handle != null)
            {
                TemplateEventArgs <IntPtr> arg = new TemplateEventArgs <IntPtr>(hWnd);
                handle(this, arg);
            }
        }
예제 #2
0
 void leOutput_ItemAdded(object sender, TemplateEventArgs <object> e)
 {
     if (fsm != null)
     {
         if (fsm.AddOutput(new StructAtom <string>(e.Value as string)))
         {
             SetFSMToView();
         }
         else
         {
             e.Cancel = true;
         }
     }
 }
예제 #3
0
 void leOutput_ItemRemoved(object sender, TemplateEventArgs <object> e)
 {
     if (fsm != null)
     {
         if (fsm.RemoveOutput(e.Value as string))
         {
             SetFSMToView();
         }
         else
         {
             e.Cancel = true;
         }
     }
 }
예제 #4
0
 void leStates_ItemAdded(object sender, TemplateEventArgs <object> e)
 {
     if (fsm != null)
     {
         if (fsm.AddState(e.Value))
         {
             SetFSMToView();
         }
         else
         {
             e.Cancel = true;
         }
     }
 }
예제 #5
0
        void le_SelectedValueChanged(object sender, TemplateEventArgs <object> e)
        {
            var fsm = e.Value as FiniteStateMachine <StructAtom <string>, StructAtom <string> >;

            fsmEditControl.fsm = fsm;
            fsmEditControl.SetFSMToView();
            if (fsm != null)
            {
                label1.Text     = "Выбранный автомат";
                tbxFSMName.Text = fsm.KeyName;
                gcFSMEdit.Text  = "    Автомат :  " + fsm.KeyName;
            }
            else
            {
                label1.Text     = "Создайте или загрузите автомат.";
                tbxFSMName.Text = string.Empty;
                gcFSMEdit.Text  = string.Empty;
            }
            SetEnabledStatus(fsmEditControl.fsm != null);
        }
예제 #6
0
        /// <summary>
        /// Filter message
        /// </summary>
        /// <param name="m">message to filter</param>
        /// <returns>true if message was filtered</returns>
        public bool PreFilterMessage(ref Message m)
        {
            switch (m.Msg)
            {
            case WM_SETFOCUS:
            case WM_LBUTTONDOWN:
            case WM_LBUTTONUP:
            case WM_LBUTTONDBLCLK:
            case WM_RBUTTONDOWN:
            case WM_RBUTTONUP:
            case WM_RBUTTONDBLCLK:
            case WM_MBUTTONDOWN:
            case WM_MBUTTONUP:
            case WM_MBUTTONDBLCLK:
            case WM_NCLBUTTONDOWN:
            case WM_NCLBUTTONUP:
            case WM_NCLBUTTONDBLCLK:
            case WM_NCRBUTTONDOWN:
            case WM_NCRBUTTONUP:
            case WM_NCRBUTTONDBLCLK:
            case WM_NCMBUTTONDOWN:
            case WM_NCMBUTTONUP:
            case WM_NCMBUTTONDBLCLK:
            case WM_KEYDOWN:

                EventHandler <TemplateEventArgs <Message> > handler = MessageFiltered;
                if (handler != null)
                {
                    TemplateEventArgs <Message> args = new TemplateEventArgs <Message>(m);
                    handler(this, args);
                }

                LastFocusedControl = m.HWnd;
                break;

            default:
                break;
            }

            return(false);
        }
예제 #7
0
        void le_ItemAdded(object sender, TemplateEventArgs <object> e)
        {
            var fsm = e.Value as FiniteStateMachine <StructAtom <string>, StructAtom <string> >;

            if (fsm != null)
            {
                var f = FSMs.FirstOrDefault(s => s.KeyName == fsm.KeyName);
                if (f == null)
                {
                    FSMs.Add(fsm);
                    UpdateFSMList();
                }
                else
                {
                    e.Cancel = true;
                }
            }
            else
            {
                e.Cancel = true;
            }
        }
예제 #8
0
        /// <summary>
        /// Occurs when control got focus
        /// </summary>
        /// <param name="sender">sender of the event</param>
        /// <param name="e">event argument</param>
        private void OnControlGotFocus(object sender, TemplateEventArgs <IntPtr> e)
        {
            Control control = Control.FromHandle(e.Data);

            while (control != null)
            {
                if (control as Form != null)
                {
                    break;
                }

                if (control as FormsTabbedView != null)
                {
                    control = ((FormsTabbedView)control).SelectedForm;
                    break;
                }

                control = control.Parent;
            }

            Form focusedForm = control as Form;

            if (focusedForm != null)
            {
                foreach (DockableFormInfo info in _dockableForms)
                {
                    if (info.DockableForm == focusedForm)
                    {
                        SelectedFormInfo = info;
                        break;
                    }
                }
            }

            return;
        }
예제 #9
0
 private void Template_Click(object sender, TemplateEventArgs e)
 {
     this.controller.HandleLoadTemplate(e.TypeOfTemplate);
 }
예제 #10
0
파일: FormsDocker.cs 프로젝트: Remurr/nDbg
 /// <summary>
 /// Occurs when focus message was filtered
 /// </summary>
 /// <param name="sender">sender of the event</param>
 /// <param name="e">event argument</param>
 private void OnMessageFiltered(object sender, TemplateEventArgs<Message> e)
 {
     CheckSwitcherFocus();
 }
예제 #11
0
파일: FormsDocker.cs 프로젝트: Remurr/nDbg
        /// <summary>
        /// Occurs when control got focus
        /// </summary>
        /// <param name="sender">sender of the event</param>
        /// <param name="e">event argument</param>
        private void OnControlGotFocus(object sender, TemplateEventArgs<IntPtr> e)
        {
            Control control = Control.FromHandle(e.Data);
             while (control != null)
             {
            if (control as Form != null)
            {
               break;
            }

            if (control as FormsTabbedView != null)
            {
               control = ((FormsTabbedView)control).SelectedForm;
               break;
            }

            control = control.Parent;
             }

             Form focusedForm = control as Form;

             if (focusedForm != null)
             {
            foreach (DockableFormInfo info in _dockableForms)
            {
               if (info.DockableForm == focusedForm)
               {
                  SelectedFormInfo = info;
                  break;
               }
            }
             }

             return;
        }
예제 #12
0
파일: FocusFilter.cs 프로젝트: Remurr/nDbg
 /// <summary>
 /// Occurs when a control got focus
 /// </summary>
 /// <param name="hWnd">hwnd</param>
 /// <returns>hwnd of the control that got focus</returns>
 private void OnControlGotFocus(IntPtr hWnd)
 {
     EventHandler<TemplateEventArgs<IntPtr>> handle = ControlGotFocus;
      if (handle != null)
      {
     TemplateEventArgs<IntPtr> arg = new TemplateEventArgs<IntPtr>(hWnd);
     handle(this, arg);
      }
 }
예제 #13
0
파일: FocusFilter.cs 프로젝트: Remurr/nDbg
        /// <summary>
        /// Filter message
        /// </summary>
        /// <param name="m">message to filter</param>
        /// <returns>true if message was filtered</returns>
        public bool PreFilterMessage(ref Message m)
        {
            switch (m.Msg)
             {
            case WM_SETFOCUS:
            case WM_LBUTTONDOWN:
            case WM_LBUTTONUP:
            case WM_LBUTTONDBLCLK:
            case WM_RBUTTONDOWN:
            case WM_RBUTTONUP:
            case WM_RBUTTONDBLCLK:
            case WM_MBUTTONDOWN:
            case WM_MBUTTONUP:
            case WM_MBUTTONDBLCLK:
            case WM_NCLBUTTONDOWN:
            case WM_NCLBUTTONUP:
            case WM_NCLBUTTONDBLCLK:
            case WM_NCRBUTTONDOWN:
            case WM_NCRBUTTONUP:
            case WM_NCRBUTTONDBLCLK:
            case WM_NCMBUTTONDOWN:
            case WM_NCMBUTTONUP:
            case WM_NCMBUTTONDBLCLK:
            case WM_KEYDOWN:

               EventHandler<TemplateEventArgs<Message>> handler = MessageFiltered;
               if (handler != null)
               {
                  TemplateEventArgs<Message> args = new TemplateEventArgs<Message>(m);
                  handler(this, args);
               }

               LastFocusedControl = m.HWnd;
               break;

            default:
               break;
             }

             return false;
        }
예제 #14
0
 /// <summary>
 /// Occurs when focus message was filtered
 /// </summary>
 /// <param name="sender">sender of the event</param>
 /// <param name="e">event argument</param>
 private void OnMessageFiltered(object sender, TemplateEventArgs <Message> e)
 {
     CheckSwitcherFocus();
 }