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