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; } }
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; }
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())); }
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(); } } }