예제 #1
0
        //private readonly SystemTray _systemTray;

        public MainWindow()
        {
            InitializeComponent();
            // Handler for exceptions in threads behind forms.
            Application.ThreadException += GlobalThreadExceptionHandler;
            if (BasicTeraData.Instance.WindowData.InvisibleUi)
            {
                Visibility = Visibility.Hidden;
            }
            System.Windows.Application.Current.Resources["Scale"] = BasicTeraData.Instance.WindowData.Scale;
            if (BasicTeraData.Instance.WindowData.LowPriority)
            {
                Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.Idle;
            }


            TeraSniffer.Instance.Enabled                      = true;
            TeraSniffer.Instance.Warning                     += PcapWarning;
            NetworkController.Instance.Connected             += HandleConnected;
            NetworkController.Instance.TickUpdated           += Update;
            NetworkController.Instance.SetClickThrouAction   += SetClickThrou;
            NetworkController.Instance.UnsetClickThrouAction += UnsetClickThrou;
            NetworkController.Instance.GuildIconAction       += InstanceOnGuildIconAction;
            _dispatcherTimer          = new DispatcherTimer();
            _dispatcherTimer.Tick    += UpdateKeyboard;
            _dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
            _dispatcherTimer.Start();
            EntityStatsImage.Source       = BasicTeraData.Instance.ImageDatabase.EntityStats.Source;
            Chrono.Source                 = BasicTeraData.Instance.ImageDatabase.Chronobar.Source;
            Chrono.ToolTip                = LP.MainWindow_Only_boss;
            CloseWindow.Source            = BasicTeraData.Instance.ImageDatabase.Close.Source;
            History.Source                = BasicTeraData.Instance.ImageDatabase.History.Source;
            Config.Source                 = BasicTeraData.Instance.ImageDatabase.Config.Source;
            Chatbox.Source                = BasicTeraData.Instance.ImageDatabase.Chat.Source;
            BossGageImg.Source            = BasicTeraData.Instance.ImageDatabase.BossGage.Source;
            ListEncounter.PreviewKeyDown += ListEncounterOnPreviewKeyDown;
            UpdateComboboxEncounter(new List <NpcEntity>(), null);
            Title = "Shinra Meter V" + UpdateManager.Version;
            BackgroundColor.Opacity = BasicTeraData.Instance.WindowData.MainWindowOpacity;
            Topmost            = BasicTeraData.Instance.WindowData.Topmost;
            ShowInTaskbar      = !BasicTeraData.Instance.WindowData.Topmost;
            Scroller.MaxHeight = BasicTeraData.Instance.WindowData.NumberOfPlayersDisplayed * 30;
            _entityStats       = new EntityStatsMain();
            _bossGageBar       = new BossGageWindow();
            _windowHistory     = new TeradpsHistory(new ConcurrentDictionary <string, NpcEntity>());

            Console.WriteLine("SuperUniqueStringEasilyDetectableToBeAbleToRandomizeTheProgramAndBypassSignatureBasedBlock");
            NotifyIcon.Initialize(this);
            KeyboardHook.Instance.SwitchTopMost += delegate { NotifyIcon.SwitchStayTop(); };
        }
예제 #2
0
        //private readonly SystemTray _systemTray;

        public MainWindow()
        {
            InitializeComponent();
            // Handler for exceptions in threads behind forms.
            App.SplashScreen?.SetText("Initializing main window...");
            Application.ThreadException += GlobalThreadExceptionHandler;
            if (BasicTeraData.Instance.WindowData.InvisibleUi)
            {
                Visibility = Visibility.Hidden;
            }
            System.Windows.Application.Current.Resources["Scale"] = BasicTeraData.Instance.WindowData.Scale;
            if (BasicTeraData.Instance.WindowData.LowPriority)
            {
                Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.Idle;
            }
            Console.WriteLine("SuperUniqueStringEasilyDetectableToBeAbleToRandomizeTheProgramAndBypassSignatureBasedBlock");

            TeraSniffer.Instance.Enabled                        = true;
            TeraSniffer.Instance.Warning                       += PcapWarning;
            PacketProcessor.Instance.Connected                 += HandleConnected;
            PacketProcessor.Instance.TickUpdated               += Update;
            PacketProcessor.Instance.SetClickThrouAction       += SetClickThrou;
            PacketProcessor.Instance.UnsetClickThrouAction     += UnsetClickThrou;
            PacketProcessor.Instance.GuildIconAction           += InstanceOnGuildIconAction;
            PacketProcessor.Instance.PauseAction               += PauseState;
            PacketProcessor.Instance.MapChangedAction          += MapChanged;
            PacketProcessor.Instance.DisplayGeneralDataChanged += OnDisplayGeneralDataChanged;
            _dispatcherTimer          = new DispatcherTimer();
            _dispatcherTimer.Tick    += UpdateKeyboard;
            _dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
            _dispatcherTimer.Start();
            if (BasicTeraData.Instance.WindowData.EnableOverlay)
            {
                DXrender = new D3D9Render.Renderer();
            }
            EntityStatsImage.Source       = BasicTeraData.Instance.ImageDatabase.EntityStats.Source;
            Chrono.Source                 = BasicTeraData.Instance.ImageDatabase.Chronobar.Source;
            Chrono.ToolTip                = LP.MainWindow_Only_boss;
            CloseWindow.Source            = BasicTeraData.Instance.ImageDatabase.Close.Source;
            History.Source                = BasicTeraData.Instance.ImageDatabase.History.Source;
            Config.Source                 = BasicTeraData.Instance.ImageDatabase.Config.Source;
            Chatbox.Source                = BasicTeraData.Instance.ImageDatabase.Chat.Source;
            BossGageImg.Source            = BasicTeraData.Instance.ImageDatabase.BossGage.Source;
            HideNamesImage.Source         = BasicTeraData.Instance.ImageDatabase.HideNicknames.Source;
            UserPauseBtn.Source           = BasicTeraData.Instance.ImageDatabase.Pause.Source;
            HideNames.ToolTip             = LP.Blur_player_names;
            ListEncounter.PreviewKeyDown += ListEncounterOnPreviewKeyDown;
            UpdateComboboxEncounter(new List <NpcEntity>(), null);
            Title = "Shinra Meter V" + UpdateManager.Version;
            BackgroundColor.Opacity = BasicTeraData.Instance.WindowData.MainWindowOpacity;
            Topmost            = BasicTeraData.Instance.WindowData.Topmost;
            ShowInTaskbar      = !BasicTeraData.Instance.WindowData.Topmost;
            Scroller.MaxHeight = BasicTeraData.Instance.WindowData.NumberOfPlayersDisplayed * 30;
            _entityStats       = new EntityStatsMain()
            {
                Scale = BasicTeraData.Instance.WindowData.DebuffsStatus.Scale, DontClose = true
            };
            _bossGageBar = new BossGageWindow()
            {
                Scale = BasicTeraData.Instance.WindowData.BossGageStatus.Scale, DontClose = true
            };
            _popupNotification = new PopupNotification()
            {
                DontClose = true
            };
            _windowHistory = new TeradpsHistory(new ConcurrentDictionary <UploadData, NpcEntity>())
            {
                Scale = BasicTeraData.Instance.WindowData.HistoryStatus.Scale, DontClose = true
            };
            KeyboardHook.Instance.SwitchTopMost += delegate { NotifyIcon.SwitchStayTop(); };
            SystemEvents.SessionEnding          += new SessionEndingEventHandler(SystemEvents_SessionEnding);
            NotifyIcon.Initialize(this);
            NotifyIcon.InitializeServerList(PacketProcessor.Instance.Initialize());
            if (BasicTeraData.Instance.WindowData.ClickThrou)
            {
                SetClickThrou();
            }
            GraphViewModel = new GraphViewModel();
        }
        public static void Init()
        {
            CooldownWindow  = new CooldownWindow();
            CharacterWindow = new CharacterWindow();
            BossGauge       = new BossGageWindow();
            BuffBar         = new AbnormalitiesWindow();

            ContextMenu = new ContextMenu();

            TrayIcon = new System.Windows.Forms.NotifyIcon()
            {
                Icon    = Icon.ExtractAssociatedIcon(Process.GetCurrentProcess().MainModule.FileName),
                Visible = true
            };
            TrayIcon.MouseDown += NI_MouseDown;
            var v = Assembly.GetExecutingAssembly().GetName().Version;

            TrayIcon.Text = String.Format("TCC v{0}.{1}.{2}", v.Major, v.Minor, v.Build);
            var ForceShowButton = new MenuItem()
            {
                Header = "Force visibility on"
            };

            ClickThruButton = new MenuItem()
            {
                Header = "Click through"
            };
            var CloseButton = new MenuItem()
            {
                Header = "Close"
            };

            CharacterWindowVisibilityButton = new MenuItem()
            {
                Header = "Unhide character window"
            };
            CharacterWindowVisibilityButton.Click += (s, ev) =>
            {
                CharacterWindow.Visibility = Visibility.Visible;
            };
            CooldownWindowVisibilityButton = new MenuItem()
            {
                Header = "Unhide cooldowns bar"
            };
            CooldownWindowVisibilityButton.Click += (s, ev) =>
            {
                CooldownWindow.Visibility = Visibility.Visible;
            };

            BossGaugeWindowVisibilityButton = new MenuItem()
            {
                Header = "Unhide boss bar"
            };
            BossGaugeWindowVisibilityButton.Click += (s, ev) =>
            {
                BossGauge.Visibility = Visibility.Visible;
            };
            BuffBarWindowVisibilityButton = new MenuItem()
            {
                Header = "Unhide buffs bar"
            };
            BuffBarWindowVisibilityButton.Click += (s, ev) =>
            {
                BuffBar.Visibility = Visibility.Visible;
            };


            CloseButton.Click     += (s, ev) => App.CloseApp();
            ClickThruButton.Click += (s, ev) => ToggleClickThru();
            ForceShowButton.Click += (s, ev) => ForceShow();

            ContextMenu.Items.Add(CooldownWindowVisibilityButton);
            ContextMenu.Items.Add(BuffBarWindowVisibilityButton);
            ContextMenu.Items.Add(BossGaugeWindowVisibilityButton);
            ContextMenu.Items.Add(CharacterWindowVisibilityButton);
            ContextMenu.Items.Add(new Separator());
            ContextMenu.Items.Add(ClickThruButton);
            ContextMenu.Items.Add(CloseButton);


            FocusManager.FocusTimer = new DispatcherTimer()
            {
                Interval = TimeSpan.FromSeconds(1)
            };
            FocusManager.FocusTimer.Tick += FocusManager.CheckForegroundWindow;

            FocusManager.ForegroundWindowChanged += FocusManager_ForegroundWindowChanged;
        }