コード例 #1
0
        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;
        }
コード例 #2
0
        protected TccWindowViewModel(WindowSettingsBase settings)
        {
            Dispatcher = Dispatcher.CurrentDispatcher;

            Settings = settings;
            if (settings != null)
            {
                settings.EnabledChanged += OnEnabledChanged;
                if (!settings.Enabled)
                {
                    return;
                }
            }
            PacketAnalyzer.ProcessorReady += InstallHooks;
        }
コード例 #3
0
        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;
                }
            }
        }
コード例 #4
0
 public NotificationAreaViewModel(WindowSettingsBase settings) : base(settings)
 {
     _queue               = new ConcurrentQueue <NotificationInfoBase>();
     Notifications        = new TSObservableCollection <NotificationInfoBase>(Dispatcher);
     Log.NewNotification += Enqueue;
 }