private ChatManager(WindowSettingsBase settings) : base(settings) { _pauseQueue = new ConcurrentQueue <ChatMessage>(); _privateMessagesCache = new List <TempPrivateMessage>(); ChatWindows = new TSObservableCollection <ChatWindow>(Dispatcher); #if BATCH _mainQueue = new ConcurrentQueue <ChatMessage>(); _flushTimer = new DispatcherTimer(TimeSpan.FromMilliseconds(500), DispatcherPriority.Background, OnFlushTick, Dispatcher); ChatMessages = new TSObservableCollectionBatch <ChatMessage>(Dispatcher); _flushTimer.Start(); #else ChatMessages = new TSObservableCollection <ChatMessage>(Dispatcher); #endif LFGs = new TSObservableCollection <LFG>(Dispatcher); ChatMessages.CollectionChanged += OnChatMessagesCollectionChanged; BindingOperations.EnableCollectionSynchronization(ChatMessages, _lock); ChatWindows.CollectionChanged += OnChatWindowsCollectionChanged; PrivateChannelJoined += OnPrivateChannelJoined; KeyboardHook.Instance.RegisterCallback(App.Settings.ForceClickableChatHotkey, ToggleForcedClickThru); Factory = new ChatMessageFactory(Dispatcher); Log.NewChatMessage += OnLogChatMessage; }
protected TccWindowViewModel(WindowSettingsBase settings) { Dispatcher = Dispatcher.CurrentDispatcher; Settings = settings; if (settings != null) { settings.EnabledChanged += OnEnabledChanged; if (!settings.Enabled) { return; } } PacketAnalyzer.ProcessorReady += InstallHooks; }
protected void Init(WindowSettingsBase settings) { WindowSettings = settings; if (MainContent != null) { MainContent.Opacity = 0; } if (BoundaryRef != null) { BoundaryRef.Opacity = 0; } Topmost = true; Left = WindowSettings.X * WindowManager.ScreenSize.Width; Top = WindowSettings.Y * WindowManager.ScreenSize.Height; if (!WindowSettings.IgnoreSize) { if (WindowSettings.H != 0) { Height = WindowSettings.H; } if (WindowSettings.W != 0) { Width = WindowSettings.W; } } CheckBounds(); WindowSettings.EnabledChanged += OnEnabledChanged; WindowSettings.ClickThruModeChanged += OnClickThruModeChanged; WindowSettings.VisibilityChanged += OnWindowVisibilityChanged; WindowSettings.ResetToCenter += ResetToCenter; Loaded += OnLoaded; SizeChanged += OnSizeChanged; HiddenToggled += OnHiddenToggled; WindowManager.VisibilityManager.VisibilityChanged += OnVisibilityChanged; WindowManager.VisibilityManager.DimChanged += OnDimChanged; WindowManager.VisibilityManager.ClickThruChanged += OnClickThruModeChanged; WindowManager.RepositionRequestedEvent += ReloadPosition; WindowManager.ResetToCenterEvent += ResetToCenter; WindowManager.DisposeEvent += CloseWindowSafe; WindowManager.MakeGlobalEvent += WindowSettings.MakePositionsGlobal; FocusManager.TeraScreenChanged += OnTeraScreenChanged; FocusManager.FocusTick += OnFocusTick; OnClickThruModeChanged(); OnVisibilityChanged(); OnWindowVisibilityChanged(WindowSettings.Visible); FocusManager.MakeUnfocusable(Handle); if (BoundaryRef != null) { ShowBoundariesToggled += ShowHideBoundaries; if (_canMove) { BoundaryRef.MouseLeftButtonDown += Drag; } } if (ButtonsRef == null) { if (_canMove) { MouseLeftButtonDown += Drag; } } else { ButtonsRef.Opacity = 0; _buttonsTimer.Tick += OnButtonsTimerTick; MouseEnter += (_, __) => { if (!App.Settings.HideHandles) { ButtonsRef.BeginAnimation(OpacityProperty, _showButtonsAnimation); } }; MouseLeave += (_, __) => _buttonsTimer.Start(); if (_canMove) { ButtonsRef.MouseLeftButtonDown += Drag; } } }
public NotificationAreaViewModel(WindowSettingsBase settings) : base(settings) { _queue = new ConcurrentQueue <NotificationInfoBase>(); Notifications = new TSObservableCollection <NotificationInfoBase>(Dispatcher); Log.NewNotification += Enqueue; }