public OSLevelHotkeyRegister(IUISynchronizer synchronizer) { _synchronizer = synchronizer; _synchronizer.RunSync(() => // all operations on hotkeys need to run on the same thread _hiddenWindow = new KeyboardHookWindow(OnHotkey) ); }
public BrowserAPIManager( CefOverlayForm overlay, IUISynchronizer uiSynchronizer ) { _overlay = overlay ?? throw new ArgumentNullException(nameof(overlay)); _synchronizer = uiSynchronizer ?? throw new ArgumentNullException(nameof(uiSynchronizer)); RegisterAPI(new GobchatBrowserAPI(this)); }
public AbstractGobchatApplicationContext() { AbstractGobchatApplicationContext.OnGobchatExit += (s, e) => Context_OnGobchatExit(); Application.ApplicationExit += (s, e) => OnApplicationExit(); _hiddenMainForm = new Form(); UISynchronizer = new ContextSpecificUISynchronizer(WindowsFormsSynchronizationContext.Current); _appWorker = new IndependendBackgroundWorker(); _appWorker.Start((token) => ApplicationStartupProcess(token)); }
public void Initialize(ApplicationStartupHandler handler, IDIContext container) { #if DEBUG var cefFolder = GobchatContext.ApplicationLocation; #else var cefFolder = System.IO.Path.Combine(GobchatContext.ApplicationLocation, "libs", "cef"); #endif System.IO.Directory.CreateDirectory(cefFolder); CEFManager.CefAssemblyLocation = cefFolder; _synchronizer = container.Resolve <IUISynchronizer>(); _synchronizer.RunSync(() => global::Gobchat.UI.Web.CEFManager.Initialize()); }
public UIManager(IUISynchronizer synchronizer) { UISynchronizer = synchronizer ?? throw new ArgumentNullException(nameof(synchronizer)); }
public void Dispose() { _synchronizer?.RunSync(() => global::Gobchat.UI.Web.CEFManager.Dispose()); _synchronizer = null; }