コード例 #1
0
        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    _initialTimeoutTimer?.Dispose();
                    _blockTouchDelayTimer?.Dispose();
                    _pointerInputTargetWindow?.Dispose();
                    _inputProvider?.Dispose();
                    _surfaceForm?.Dispose();
                }
                _surfaceForm = null;

                SystemEvents.SessionSwitch -= SystemEvents_SessionSwitch;
                if (_hWinEventHook != IntPtr.Zero)
                {
                    UnhookWinEvent(_hWinEventHook);
                }
                if (_winEventGch.IsAllocated)
                {
                    _winEventGch.Free();
                }

                disposedValue = true;
            }
        }
コード例 #2
0
        protected PointCapture()
        {
            _surfaceForm = new SurfaceForm();

            CaptureStarted += (o, e) => { if (Mode != CaptureMode.UserDisabled)
                                          {
                                              _surfaceForm.StartDrawing(e.FirstCapturedPoints);
                                          }
            };
            CaptureEnded    += (o, e) => { _surfaceForm.EndDrawing(); };
            CaptureCanceled += (o, e) => { _surfaceForm.EndDrawing(); };
            PointCaptured   += (o, e) =>
            {
                if (Mode != CaptureMode.UserDisabled && State == CaptureState.Capturing)
                {
                    _surfaceForm.DrawPoints(e.Points);
                }
            };

            _inputProvider                   = new InputProvider();
            _pointEventTranslator            = new PointEventTranslator(_inputProvider);
            _pointEventTranslator.PointDown += (PointEventTranslator_PointDown);
            _pointEventTranslator.PointUp   += (PointEventTranslator_PointUp);
            _pointEventTranslator.PointMove += (PointEventTranslator_PointMove);

            _currentContext = SynchronizationContext.Current;

            _winEventDele  = WinEventProc;
            _winEventGch   = GCHandle.Alloc(_winEventDele);
            _hWinEventHook = SetWinEventHook(EVENT_SYSTEM_FOREGROUND, EVENT_SYSTEM_MINIMIZEEND, IntPtr.Zero, _winEventDele, 0, 0, WINEVENT_OUTOFCONTEXT | WINEVENT_SKIPOWNPROCESS);

            if (AppConfig.UiAccess)
            {
                _pointerInputTargetWindow = new PointerInputTargetWindow();
                ModeChanged += (o, e) =>
                {
                    if (e.Mode == CaptureMode.UserDisabled)
                    {
                        _pointerInputTargetWindow.BlockTouchInputThreshold = 0;
                    }
                };
                _blockTouchDelayTimer          = new System.Threading.Timer(UpdateBlockTouchInputThresholdCallback, null, Timeout.Infinite, Timeout.Infinite);
                ForegroundApplicationsChanged += PointCapture_ForegroundApplicationsChanged;
            }

            SystemEvents.SessionSwitch += SystemEvents_SessionSwitch;
        }
コード例 #3
0
        public override string GetStepParameters()
        {
            var parameters = new List <string>();

            parameters.Add(UDegree != null ? UDegree.ToStepValue() : "$");
            parameters.Add(VDegree != null ? VDegree.ToStepValue() : "$");
            parameters.Add(ControlPointsList != null ? ControlPointsList.ToStepValue() : "$");
            parameters.Add(SurfaceForm != null ? SurfaceForm.ToStepValue() : "$");
            parameters.Add(UClosed != null ? UClosed.ToStepValue() : "$");
            parameters.Add(VClosed != null ? VClosed.ToStepValue() : "$");
            parameters.Add(SelfIntersect != null ? SelfIntersect.ToStepValue() : "$");
            parameters.Add(UMultiplicities != null ? UMultiplicities.ToStepValue() : "$");
            parameters.Add(VMultiplicities != null ? VMultiplicities.ToStepValue() : "$");
            parameters.Add(UKnots != null ? UKnots.ToStepValue() : "$");
            parameters.Add(VKnots != null ? VKnots.ToStepValue() : "$");
            parameters.Add(KnotSpec != null ? KnotSpec.ToStepValue() : "$");

            return(string.Join(", ", parameters.ToArray()));
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: forzalife/GestureSign
        static void Main()
        {
            bool createdNew;

            using (new Mutex(true, "GestureSignDaemon", out createdNew))
            {
                if (createdNew)
                {
                    Application.EnableVisualStyles();
                    //Application.SetCompatibleTextRenderingDefault(false);
                    try
                    {
                        Application.ThreadException += Application_ThreadException;
                        Logging.OpenLogFile();

                        if ("Built-in".Equals(AppConfig.CultureName) ||
                            !LocalizationProvider.Instance.LoadFromFile("Daemon", Properties.Resources.en))
                        {
                            LocalizationProvider.Instance.LoadFromResource(Properties.Resources.en);
                        }

                        TouchCapture.Instance.Load();
                        _surfaceForm = new SurfaceForm();

                        if (!StartTouchInputProvider())
                        {
                            return;
                        }

                        GestureManager.Instance.Load(TouchCapture.Instance);
                        ApplicationManager.Instance.Load(TouchCapture.Instance);
                        // Create host control class and pass to plugins
                        HostControl hostControl = new HostControl()
                        {
                            _ApplicationManager = ApplicationManager.Instance,
                            _GestureManager     = GestureManager.Instance,
                            _TouchCapture       = TouchCapture.Instance,
                            _PluginManager      = PluginManager.Instance,
                            _TrayManager        = TrayManager.Instance
                        };
                        PluginManager.Instance.Load(hostControl);
                        TrayManager.Instance.Load();

                        SynchronizationContext uiContext = SynchronizationContext.Current;
                        NamedPipe.Instance.RunNamedPipeServer("GestureSignDaemon", new MessageProcessor(uiContext));

                        //if (TouchCapture.Instance.MessageWindow.NumberOfTouchscreens == 0)
                        //{
                        //    MessageBox.Show(LocalizationProvider.Instance.GetTextValue("Messages.TouchscreenNotFound"),
                        //        LocalizationProvider.Instance.GetTextValue("Messages.TouchscreenNotFoundTitle"),
                        //        MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        //    //return;
                        //}
                        Application.Run();
                    }
                    catch (Exception e)
                    {
                        Logging.LogException(e);
                        MessageBox.Show(e.ToString(), LocalizationProvider.Instance.GetTextValue("Messages.Error"),
                                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        Application.Exit();
                    }
                }
                else
                {
                    Application.Exit();
                }
            }
        }