/Main/Mag-Tools/Views/MainView.cs

# · C# · 501 lines · 325 code · 122 blank · 54 comment · 73 complexity · 9b98d21da21c81d4c2a12eee8647f00e MD5 · raw file

  1. using System;
  2. using System.Globalization;
  3. using Mag.Shared;
  4. using Mag.Shared.Settings;
  5. using VirindiViewService.Controls;
  6. namespace MagTools.Views
  7. {
  8. class MainView : IDisposable
  9. {
  10. readonly VirindiViewService.ViewProperties properties;
  11. readonly VirindiViewService.ControlGroup controls;
  12. readonly VirindiViewService.HudView view;
  13. // Mana Tracker
  14. public HudList ManaList { get; private set; }
  15. public HudStaticText ManaTotal { get; private set; }
  16. HudCheckBox ManaRecharge { get; set; }
  17. public HudStaticText UnretainedTotal { get; private set; }
  18. // Combat Tracker
  19. public HudList CombatTrackerMonsterListCurrent { get; private set; }
  20. public HudList CombatTrackerDamageListCurrent { get; private set; }
  21. public HudList CombatTrackerMonsterListPersistent { get; private set; }
  22. public HudList CombatTrackerDamageListPersistent { get; private set; }
  23. // Combat Tracker - Options
  24. public HudButton CombatTrackerClearCurrentStats { get; private set; }
  25. public HudButton CombatTrackerExportCurrentStats { get; private set; }
  26. public HudButton CombatTrackerClearPersistentStats { get; private set; }
  27. HudCheckBox CombatTrackerExportOnLogOff { get; set; }
  28. HudCheckBox CombatTrackerPersistent { get; set; }
  29. HudCheckBox CombatTrackerSortAlphabetically { get; set; }
  30. // Corpse Tracker
  31. public HudList CorpseTrackerList { get; private set; }
  32. // Corpse Tracker - Options
  33. public HudButton CorpseTrackerClearHistory { get; private set; }
  34. HudCheckBox CorpseTrackerEnabled { get; set; }
  35. HudCheckBox CorpseTrackerPersistent { get; set; }
  36. HudCheckBox CorpseTrackerTrackAllCorpses { get; set; }
  37. HudCheckBox CorpseTrackerTrackFellowCorpses { get; set; }
  38. HudCheckBox CorpseTrackerTrackPermittedCorpses { get; set; }
  39. // Player Tracker
  40. public HudList PlayerTrackerList { get; private set; }
  41. // Player Tracker - Options
  42. public HudButton PlayerTrackerClearHistory { get; private set; }
  43. HudCheckBox PlayerTrackerEnabled { get; set; }
  44. HudCheckBox PlayerTrackerPersistent { get; set; }
  45. // Item Count Tracker
  46. public HudList InventoryTrackerList { get; private set; }
  47. // Chat Logger
  48. public HudList ChatLogger1List { get; private set; }
  49. public HudList ChatLogger2List { get; private set; }
  50. // Chat - Options
  51. public HudButton ChatLoggerClearHistory { get; private set; }
  52. HudCheckBox ChatLoggerPersistent { get; set; }
  53. public HudList ChatGroup1OptionsList { get; private set; }
  54. public HudList ChatGroup2OptionsList { get; private set; }
  55. // Tools - Inventory
  56. public HudButton ClipboardWornEquipment { get; private set; }
  57. public HudButton ClipboardInventoryInfo { get; private set; }
  58. public HudTextBox InventorySearch { get; private set; }
  59. public HudList InventoryList { get; private set; }
  60. public HudStaticText InventoryItemText { get; private set; }
  61. // Tools - Tinkering
  62. public HudButton TinkeringAddSelectedItem { get; private set; }
  63. public HudCombo TinkeringMaterial { get; private set; }
  64. public HudTextBox TinkeringMinimumPercent { get; private set; }
  65. public HudTextBox TinkeringTargetTotalTinks { get; private set; }
  66. public HudButton TinkeringStart { get; private set; }
  67. public HudButton TinkeringStop { get; private set; }
  68. public HudList TinkeringList { get; private set; }
  69. // Tools - Character
  70. public HudTextBox LoginText { get; private set; }
  71. public HudButton LoginAdd { get; private set; }
  72. public HudList LoginList { get; private set; }
  73. public HudTextBox LoginCompleteText { get; private set; }
  74. public HudButton LoginCompleteAdd { get; private set; }
  75. public HudList LoginCompleteList { get; private set; }
  76. public HudTextBox PeriodicCommandText { get; private set; }
  77. public HudTextBox PeriodicCommandInterval { get; private set; }
  78. public HudTextBox PeriodicCommandOffset { get; private set; }
  79. public HudButton PeriodicCommandAdd { get; private set; }
  80. public HudList PeriodicCommandList { get; private set; }
  81. // Misc - Options
  82. HudList OptionList { get; set; }
  83. public HudTextBox OutputWindow { get; private set; }
  84. // Misc - Filters
  85. HudList FiltersList { get; set; }
  86. // Misc - Client
  87. HudCheckBox ClientRemoveFrame { get; set; }
  88. HudButton ClientSetWindowPosition { get; set; }
  89. HudButton ClientDelWindowPosition { get; set; }
  90. HudStaticText ClientSetPosition { get; set; }
  91. HudTextBox NoFocusFPS { get; set; }
  92. // Misc - About
  93. public HudStaticText VersionLabel { get; private set; }
  94. public MainView()
  95. {
  96. try
  97. {
  98. // Create the view
  99. VirindiViewService.XMLParsers.Decal3XMLParser parser = new VirindiViewService.XMLParsers.Decal3XMLParser();
  100. parser.ParseFromResource("MagTools.Views.mainView.xml", out properties, out controls);
  101. // Display the view
  102. view = new VirindiViewService.HudView(properties, controls);
  103. // Assign the views objects to our local variables
  104. // Mana Tracker
  105. ManaList = view != null ? (HudList)view["ManaList"] : new HudList();
  106. ManaTotal = view != null ? (HudStaticText)view["ManaTotal"] : new HudStaticText();
  107. ManaRecharge = view != null ? (HudCheckBox)view["ManaRecharge"] : new HudCheckBox();
  108. UnretainedTotal = view != null ? (HudStaticText)view["UnretainedTotal"] : new HudStaticText();
  109. // Combat Tracker
  110. CombatTrackerMonsterListCurrent = view != null ? (HudList)view["CombatTrackerMonsterListCurrent"] : new HudList();
  111. CombatTrackerDamageListCurrent = view != null ? (HudList)view["CombatTrackerDamageListCurrent"] : new HudList();
  112. CombatTrackerMonsterListPersistent = view != null ? (HudList)view["CombatTrackerMonsterListPersistent"] : new HudList();
  113. CombatTrackerDamageListPersistent = view != null ? (HudList)view["CombatTrackerDamageListPersistent"] : new HudList();
  114. // Combat Tracker - Options
  115. CombatTrackerClearCurrentStats = view != null ? (HudButton)view["CombatTrackerClearCurrentStats"] : new HudButton();
  116. CombatTrackerExportCurrentStats = view != null ? (HudButton)view["CombatTrackerExportCurrentStats"] : new HudButton();
  117. CombatTrackerClearPersistentStats = view != null ? (HudButton)view["CombatTrackerClearPersistentStats"] : new HudButton();
  118. CombatTrackerExportOnLogOff = view != null ? (HudCheckBox)view["CombatTrackerExportOnLogOff"] : new HudCheckBox();
  119. CombatTrackerPersistent = view != null ? (HudCheckBox)view["CombatTrackerPersistent"] : new HudCheckBox();
  120. CombatTrackerSortAlphabetically = view != null ? (HudCheckBox)view["CombatTrackerSortAlphabetically"] : new HudCheckBox();
  121. // Corpse Tracker
  122. CorpseTrackerList = view != null ? (HudList)view["CorpseTrackerList"] : new HudList();
  123. // Corpse Tracker - Options
  124. CorpseTrackerClearHistory = view != null ? (HudButton)view["CorpseTrackerClearHistory"] : new HudButton();
  125. CorpseTrackerEnabled = view != null ? (HudCheckBox)view["CorpseTrackerEnabled"] : new HudCheckBox();
  126. CorpseTrackerPersistent = view != null ? (HudCheckBox)view["CorpseTrackerPersistent"] : new HudCheckBox();
  127. CorpseTrackerTrackAllCorpses = view != null ? (HudCheckBox)view["CorpseTrackerTrackAllCorpses"] : new HudCheckBox();
  128. CorpseTrackerTrackFellowCorpses = view != null ? (HudCheckBox)view["CorpseTrackerTrackFellowCorpses"] : new HudCheckBox();
  129. CorpseTrackerTrackPermittedCorpses = view != null ? (HudCheckBox)view["CorpseTrackerTrackPermittedCorpses"] : new HudCheckBox();
  130. // Player Tracker
  131. PlayerTrackerList = view != null ? (HudList)view["PlayerTrackerList"] : new HudList();
  132. // Player Tracker - Options
  133. PlayerTrackerClearHistory = view != null ? (HudButton)view["PlayerTrackerClearHistory"] : new HudButton();
  134. PlayerTrackerEnabled = view != null ? (HudCheckBox)view["PlayerTrackerEnabled"] : new HudCheckBox();
  135. PlayerTrackerPersistent = view != null ? (HudCheckBox)view["PlayerTrackerPersistent"] : new HudCheckBox();
  136. // Item Count Tracker
  137. InventoryTrackerList = view != null ? (HudList)view["InventoryTrackerList"] : new HudList();
  138. // Chat Logger
  139. ChatLogger1List = view != null ? (HudList)view["ChatLogger1List"] : new HudList();
  140. ChatLogger2List = view != null ? (HudList)view["ChatLogger2List"] : new HudList();
  141. // Chat Logger - Options
  142. ChatLoggerClearHistory = view != null ? (HudButton)view["ChatLoggerClearHistory"] : new HudButton();
  143. ChatLoggerPersistent = view != null ? (HudCheckBox)view["ChatLoggerPersistent"] : new HudCheckBox();
  144. ChatGroup1OptionsList = view != null ? (HudList)view["ChatGroup1OptionsList"] : new HudList();
  145. ChatGroup2OptionsList = view != null ? (HudList)view["ChatGroup2OptionsList"] : new HudList();
  146. // Tools - Inventory
  147. ClipboardWornEquipment = view != null ? (HudButton)view["ClipboardWornEquipment"] : new HudButton();
  148. ClipboardInventoryInfo = view != null ? (HudButton)view["ClipboardInventoryInfo"] : new HudButton();
  149. InventorySearch = view != null ? (HudTextBox)view["InventorySearch"] : new HudTextBox();
  150. InventorySearch.Hit += (s, e) => { if (InventorySearch.Text == "regex search string") InventorySearch.Text = String.Empty; };
  151. InventoryList = view != null ? (HudList)view["InventoryList"] : new HudList();
  152. InventoryItemText = view != null ? (HudStaticText)view["InventoryItemText"] : new HudStaticText();
  153. // Tools - Tinkering
  154. TinkeringAddSelectedItem = view != null ? (HudButton)view["TinkeringAddSelectedItem"] : new HudButton();
  155. TinkeringMaterial = view != null ? (HudCombo)view["TinkeringMaterial"] : new HudCombo(view.Controls);
  156. TinkeringMinimumPercent = view != null ? (HudTextBox)view["TinkeringMinimumPercent"] : new HudTextBox();
  157. TinkeringTargetTotalTinks = view != null ? (HudTextBox)view["TinkeringTargetTotalTinks"] : new HudTextBox();
  158. TinkeringStart = view != null ? (HudButton)view["TinkeringStart"] : new HudButton();
  159. TinkeringStop = view != null ? (HudButton)view["TinkeringStop"] : new HudButton();
  160. TinkeringList = view != null ? (HudList)view["TinkeringList"] : new HudList();
  161. // Tools - Character
  162. LoginText = view != null ? (HudTextBox)view["LoginText"] : new HudTextBox();
  163. LoginAdd = view != null ? (HudButton)view["LoginAdd"] : new HudButton();
  164. LoginList = view != null ? (HudList)view["LoginList"] : new HudList();
  165. LoginCompleteText = view != null ? (HudTextBox)view["LoginCompleteText"] : new HudTextBox();
  166. LoginCompleteAdd = view != null ? (HudButton)view["LoginCompleteAdd"] : new HudButton();
  167. LoginCompleteList = view != null ? (HudList)view["LoginCompleteList"] : new HudList();
  168. PeriodicCommandText = view != null ? (HudTextBox)view["PeriodicCommandText"] : new HudTextBox();
  169. PeriodicCommandInterval = view != null ? (HudTextBox)view["PeriodicCommandInterval"] : new HudTextBox();
  170. PeriodicCommandOffset = view != null ? (HudTextBox)view["PeriodicCommandOffset"] : new HudTextBox();
  171. PeriodicCommandAdd = view != null ? (HudButton)view["PeriodicCommandAdd"] : new HudButton();
  172. PeriodicCommandList = view != null ? (HudList)view["PeriodicCommandList"] : new HudList();
  173. // Misc - Options
  174. OptionList = view != null ? (HudList)view["OptionList"] : new HudList();
  175. OutputWindow = view != null ? (HudTextBox)view["OutputWindow"] : new HudTextBox();
  176. // Misc - Filters
  177. FiltersList = view != null ? (HudList)view["FiltersList"] : new HudList();
  178. // Misc - Client
  179. ClientRemoveFrame = view != null ? (HudCheckBox)view["ClientRemoveFrame"] : new HudCheckBox();
  180. ClientSetWindowPosition = view != null ? (HudButton)view["ClientSetWindowPosition"] : new HudButton();
  181. ClientDelWindowPosition = view != null ? (HudButton)view["ClientDelWindowPosition"] : new HudButton();
  182. ClientSetPosition = view != null ? (HudStaticText)view["ClientSetPosition"] : new HudStaticText();
  183. NoFocusFPS = view != null ? (HudTextBox)view["NoFocusFPS"] : new HudTextBox();
  184. // Misc - About
  185. VersionLabel = view != null ? (HudStaticText)view["VersionLabel"] : new HudStaticText();
  186. // ******************************************************
  187. // Link some of our controls to our configuration manager
  188. // ******************************************************
  189. // Mana Tracker
  190. ManaRecharge.Checked = Settings.SettingsManager.ManaManagement.AutoRecharge.Value;
  191. Settings.SettingsManager.ManaManagement.AutoRecharge.Changed += obj => { ManaRecharge.Checked = obj.Value; };
  192. ManaRecharge.Change += (s, e) => { try { Settings.SettingsManager.ManaManagement.AutoRecharge.Value = ((HudCheckBox)s).Checked; } catch (Exception ex) { Debug.LogException(ex); } };
  193. // Combat Tracker
  194. CombatTrackerExportOnLogOff.Checked = Settings.SettingsManager.CombatTracker.ExportOnLogOff.Value;
  195. Settings.SettingsManager.CombatTracker.ExportOnLogOff.Changed += obj => { CombatTrackerExportOnLogOff.Checked = obj.Value; };
  196. CombatTrackerExportOnLogOff.Change += (s, e) => { try { Settings.SettingsManager.CombatTracker.ExportOnLogOff.Value = ((HudCheckBox)s).Checked; } catch (Exception ex) { Debug.LogException(ex); } };
  197. CombatTrackerPersistent.Checked = Settings.SettingsManager.CombatTracker.Persistent.Value;
  198. Settings.SettingsManager.CombatTracker.Persistent.Changed += obj => { CombatTrackerPersistent.Checked = obj.Value; };
  199. CombatTrackerPersistent.Change += (s, e) => { try { Settings.SettingsManager.CombatTracker.Persistent.Value = ((HudCheckBox)s).Checked; } catch (Exception ex) { Debug.LogException(ex); } };
  200. CombatTrackerSortAlphabetically.Checked = Settings.SettingsManager.CombatTracker.SortAlphabetically.Value;
  201. Settings.SettingsManager.CombatTracker.SortAlphabetically.Changed += obj => { CombatTrackerSortAlphabetically.Checked = obj.Value; };
  202. CombatTrackerSortAlphabetically.Change += (s, e) => { try { Settings.SettingsManager.CombatTracker.SortAlphabetically.Value = ((HudCheckBox)s).Checked; } catch (Exception ex) { Debug.LogException(ex); } };
  203. // Corpse Tracker
  204. CorpseTrackerEnabled.Checked = Settings.SettingsManager.CorpseTracker.Enabled.Value;
  205. Settings.SettingsManager.CorpseTracker.Enabled.Changed += obj => { CorpseTrackerEnabled.Checked = obj.Value; };
  206. CorpseTrackerEnabled.Change += (s, e) => { try { Settings.SettingsManager.CorpseTracker.Enabled.Value = ((HudCheckBox)s).Checked; } catch (Exception ex) { Debug.LogException(ex); } };
  207. CorpseTrackerPersistent.Checked = Settings.SettingsManager.CorpseTracker.Persistent.Value;
  208. Settings.SettingsManager.CorpseTracker.Persistent.Changed += obj => { CorpseTrackerPersistent.Checked = obj.Value; };
  209. CorpseTrackerPersistent.Change += (s, e) => { try { Settings.SettingsManager.CorpseTracker.Persistent.Value = ((HudCheckBox)s).Checked; } catch (Exception ex) { Debug.LogException(ex); } };
  210. CorpseTrackerTrackAllCorpses.Checked = Settings.SettingsManager.CorpseTracker.TrackAllCorpses.Value;
  211. Settings.SettingsManager.CorpseTracker.TrackAllCorpses.Changed += obj => { CorpseTrackerTrackAllCorpses.Checked = obj.Value; };
  212. CorpseTrackerTrackAllCorpses.Change += (s, e) => { try { Settings.SettingsManager.CorpseTracker.TrackAllCorpses.Value = ((HudCheckBox)s).Checked; } catch (Exception ex) { Debug.LogException(ex); } };
  213. CorpseTrackerTrackFellowCorpses.Checked = Settings.SettingsManager.CorpseTracker.TrackFellowCorpses.Value;
  214. Settings.SettingsManager.CorpseTracker.TrackFellowCorpses.Changed += obj => { CorpseTrackerTrackFellowCorpses.Checked = obj.Value; };
  215. CorpseTrackerTrackFellowCorpses.Change += (s, e) => { try { Settings.SettingsManager.CorpseTracker.TrackFellowCorpses.Value = ((HudCheckBox)s).Checked; } catch (Exception ex) { Debug.LogException(ex); } };
  216. CorpseTrackerTrackPermittedCorpses.Checked = Settings.SettingsManager.CorpseTracker.TrackPermittedCorpses.Value;
  217. Settings.SettingsManager.CorpseTracker.TrackPermittedCorpses.Changed += obj => { CorpseTrackerTrackPermittedCorpses.Checked = obj.Value; };
  218. CorpseTrackerTrackPermittedCorpses.Change += (s, e) => { try { Settings.SettingsManager.CorpseTracker.TrackPermittedCorpses.Value = ((HudCheckBox)s).Checked; } catch (Exception ex) { Debug.LogException(ex); } };
  219. // Player Tracker
  220. PlayerTrackerEnabled.Checked = Settings.SettingsManager.PlayerTracker.Enabled.Value;
  221. Settings.SettingsManager.PlayerTracker.Enabled.Changed += obj => { PlayerTrackerEnabled.Checked = obj.Value; };
  222. PlayerTrackerEnabled.Change += (s, e) => { try { Settings.SettingsManager.PlayerTracker.Enabled.Value = ((HudCheckBox)s).Checked; } catch (Exception ex) { Debug.LogException(ex); } };
  223. PlayerTrackerPersistent.Checked = Settings.SettingsManager.PlayerTracker.Persistent.Value;
  224. Settings.SettingsManager.PlayerTracker.Persistent.Changed += obj => { PlayerTrackerPersistent.Checked = obj.Value; };
  225. PlayerTrackerPersistent.Change += (s, e) => { try { Settings.SettingsManager.PlayerTracker.Persistent.Value = ((HudCheckBox)s).Checked; } catch (Exception ex) { Debug.LogException(ex); } };
  226. // Chat Logger
  227. ChatLoggerPersistent.Checked = Settings.SettingsManager.ChatLogger.Persistent.Value;
  228. Settings.SettingsManager.ChatLogger.Persistent.Changed += obj => { ChatLoggerPersistent.Checked = obj.Value; };
  229. ChatLoggerPersistent.Change += (s, e) => { try { Settings.SettingsManager.ChatLogger.Persistent.Value = ((HudCheckBox)s).Checked; } catch (Exception ex) { Debug.LogException(ex); } };
  230. AddOption(ChatGroup1OptionsList, Settings.SettingsManager.ChatLogger.Groups[0].Area);
  231. AddOption(ChatGroup1OptionsList, Settings.SettingsManager.ChatLogger.Groups[0].Tells);
  232. AddOption(ChatGroup1OptionsList, Settings.SettingsManager.ChatLogger.Groups[0].Fellowship);
  233. AddOption(ChatGroup1OptionsList, Settings.SettingsManager.ChatLogger.Groups[0].General);
  234. AddOption(ChatGroup1OptionsList, Settings.SettingsManager.ChatLogger.Groups[0].Trade);
  235. AddOption(ChatGroup1OptionsList, Settings.SettingsManager.ChatLogger.Groups[0].Allegiance);
  236. AddOption(ChatGroup2OptionsList, Settings.SettingsManager.ChatLogger.Groups[1].Area);
  237. AddOption(ChatGroup2OptionsList, Settings.SettingsManager.ChatLogger.Groups[1].Tells);
  238. AddOption(ChatGroup2OptionsList, Settings.SettingsManager.ChatLogger.Groups[1].Fellowship);
  239. AddOption(ChatGroup2OptionsList, Settings.SettingsManager.ChatLogger.Groups[1].General);
  240. AddOption(ChatGroup2OptionsList, Settings.SettingsManager.ChatLogger.Groups[1].Trade);
  241. AddOption(ChatGroup2OptionsList, Settings.SettingsManager.ChatLogger.Groups[1].Allegiance);
  242. // Misc.Options
  243. AddOption(OptionList, Settings.SettingsManager.ItemInfoOnIdent.Enabled);
  244. AddOption(OptionList, Settings.SettingsManager.ItemInfoOnIdent.ShowBuffedValues);
  245. AddOption(OptionList, Settings.SettingsManager.ItemInfoOnIdent.ShowValueAndBurden);
  246. AddOption(OptionList, Settings.SettingsManager.ItemInfoOnIdent.LeftClickIdent);
  247. AddOption(OptionList, Settings.SettingsManager.ItemInfoOnIdent.AutoClipboard);
  248. AddOption(OptionList, Settings.SettingsManager.AutoBuySell.Enabled);
  249. AddOption(OptionList, Settings.SettingsManager.AutoBuySell.TestMode);
  250. AddOption(OptionList, Settings.SettingsManager.AutoTradeAdd.Enabled);
  251. AddOption(OptionList, Settings.SettingsManager.AutoTradeAccept.Enabled);
  252. AddOption(OptionList, Settings.SettingsManager.Looting.AutoLootChests);
  253. AddOption(OptionList, Settings.SettingsManager.Looting.AutoLootCorpses);
  254. AddOption(OptionList, Settings.SettingsManager.Looting.AutoLootMyCorpses);
  255. AddOption(OptionList, Settings.SettingsManager.Looting.LootSalvage);
  256. AddOption(OptionList, Settings.SettingsManager.Tinkering.AutoClickYes);
  257. AddOption(OptionList, Settings.SettingsManager.InventoryManagement.InventoryLogger);
  258. AddOption(OptionList, Settings.SettingsManager.InventoryManagement.AetheriaRevealer);
  259. AddOption(OptionList, Settings.SettingsManager.InventoryManagement.HeartCarver);
  260. AddOption(OptionList, Settings.SettingsManager.InventoryManagement.ShatteredKeyFixer);
  261. AddOption(OptionList, Settings.SettingsManager.InventoryManagement.KeyRinger);
  262. AddOption(OptionList, Settings.SettingsManager.Misc.OpenMainPackOnLogin);
  263. AddOption(OptionList, Settings.SettingsManager.Misc.MaximizeChatOnLogin);
  264. AddOption(OptionList, Settings.SettingsManager.Misc.LogOutOnDeath);
  265. AddOption(OptionList, Settings.SettingsManager.Misc.DebuggingEnabled);
  266. AddOption(OptionList, Settings.SettingsManager.Misc.VerboseDebuggingEnabled);
  267. OutputWindow.Text = Settings.SettingsManager.Misc.OutputTargetWindow.Value.ToString(CultureInfo.InvariantCulture);
  268. OutputWindow.Change += (s, e) =>
  269. {
  270. try
  271. {
  272. int value;
  273. if (!int.TryParse(OutputWindow.Text, out value))
  274. value = Settings.SettingsManager.Misc.OutputTargetWindow.DefaultValue;
  275. Settings.SettingsManager.Misc.OutputTargetWindow.Value = value;
  276. }
  277. catch (Exception ex) { Debug.LogException(ex); }
  278. };
  279. // Misc.Filters
  280. AddOption(FiltersList, Settings.SettingsManager.Filters.AttackEvades);
  281. AddOption(FiltersList, Settings.SettingsManager.Filters.DefenseEvades);
  282. AddOption(FiltersList, Settings.SettingsManager.Filters.AttackResists);
  283. AddOption(FiltersList, Settings.SettingsManager.Filters.DefenseResists);
  284. AddOption(FiltersList, Settings.SettingsManager.Filters.NPKFails);
  285. AddOption(FiltersList, Settings.SettingsManager.Filters.DirtyFighting);
  286. AddOption(FiltersList, Settings.SettingsManager.Filters.MonsterDeaths);
  287. AddOption(FiltersList, Settings.SettingsManager.Filters.SpellCastingMine);
  288. AddOption(FiltersList, Settings.SettingsManager.Filters.SpellCastingOthers);
  289. AddOption(FiltersList, Settings.SettingsManager.Filters.SpellCastFizzles);
  290. AddOption(FiltersList, Settings.SettingsManager.Filters.CompUsage);
  291. AddOption(FiltersList, Settings.SettingsManager.Filters.SpellExpires);
  292. AddOption(FiltersList, Settings.SettingsManager.Filters.HealingKitSuccess);
  293. AddOption(FiltersList, Settings.SettingsManager.Filters.HealingKitFail);
  294. AddOption(FiltersList, Settings.SettingsManager.Filters.Salvaging);
  295. AddOption(FiltersList, Settings.SettingsManager.Filters.SalvagingFails);
  296. AddOption(FiltersList, Settings.SettingsManager.Filters.AuraOfCraftman);
  297. AddOption(FiltersList, Settings.SettingsManager.Filters.ManaStoneUsage);
  298. AddOption(FiltersList, Settings.SettingsManager.Filters.TradeBuffBotSpam);
  299. AddOption(FiltersList, Settings.SettingsManager.Filters.FailedAssess);
  300. AddOption(FiltersList, Settings.SettingsManager.Filters.KillTaskComplete);
  301. AddOption(FiltersList, Settings.SettingsManager.Filters.VendorTells);
  302. AddOption(FiltersList, Settings.SettingsManager.Filters.MonsterTell);
  303. AddOption(FiltersList, Settings.SettingsManager.Filters.NpcChatter);
  304. AddOption(FiltersList, Settings.SettingsManager.Filters.MasterArbitratorSpam);
  305. AddOption(FiltersList, Settings.SettingsManager.Filters.AllMasterArbitratorChat);
  306. AddOption(FiltersList, Settings.SettingsManager.Filters.StatusTextYoureTooBusy);
  307. AddOption(FiltersList, Settings.SettingsManager.Filters.StatusTextCasting);
  308. AddOption(FiltersList, Settings.SettingsManager.Filters.StatusTextAll);
  309. // Misc.Client
  310. ClientRemoveFrame.Checked = Settings.SettingsManager.Misc.RemoveWindowFrame.Value;
  311. Settings.SettingsManager.Misc.RemoveWindowFrame.Changed += obj => { ClientRemoveFrame.Checked = obj.Value; };
  312. ClientRemoveFrame.Change += (s, e) => { try { Settings.SettingsManager.Misc.RemoveWindowFrame.Value = ((HudCheckBox)s).Checked; } catch (Exception ex) { Debug.LogException(ex); } };
  313. ClientSetWindowPosition.Hit += (s, e) => { try { Client.WindowMover.SetWindowPosition(); UpdateClientWindowPositionLabel(); } catch (Exception ex) { Debug.LogException(ex); } };
  314. ClientDelWindowPosition.Hit += (s, e) => { try { Client.WindowMover.DeleteWindowPosition(); UpdateClientWindowPositionLabel(); } catch (Exception ex) { Debug.LogException(ex); } };
  315. UpdateClientWindowPositionLabel();
  316. NoFocusFPS.Text = Settings.SettingsManager.Misc.NoFocusFPS.Value.ToString(CultureInfo.InvariantCulture);
  317. NoFocusFPS.Change += (s, e) =>
  318. {
  319. try
  320. {
  321. int value;
  322. if (!int.TryParse(NoFocusFPS.Text, out value))
  323. value = Settings.SettingsManager.Misc.NoFocusFPS.DefaultValue;
  324. Settings.SettingsManager.Misc.NoFocusFPS.Value = value;
  325. }
  326. catch (Exception ex) { Debug.LogException(ex); }
  327. };
  328. }
  329. catch (Exception ex) { Debug.LogException(ex); }
  330. }
  331. private bool disposed;
  332. public void Dispose()
  333. {
  334. Dispose(true);
  335. // Use SupressFinalize in case a subclass
  336. // of this type implements a finalizer.
  337. GC.SuppressFinalize(this);
  338. }
  339. protected virtual void Dispose(bool disposing)
  340. {
  341. // If you need thread safety, use a lock around these
  342. // operations, as well as in your methods that use the resource.
  343. if (!disposed)
  344. {
  345. if (disposing)
  346. {
  347. //Remove the view
  348. if (view != null)
  349. view.Dispose();
  350. }
  351. // Indicate that the instance has been disposed.
  352. disposed = true;
  353. }
  354. }
  355. void UpdateClientWindowPositionLabel()
  356. {
  357. Client.WindowPosition windowPosition;
  358. if (Client.WindowMover.GetWindowPositionForThisClient(out windowPosition))
  359. ClientSetPosition.Text = "Current Set Position: X: " + windowPosition.X + ", Y: " + windowPosition.Y;
  360. else
  361. ClientSetPosition.Text = "Current Set Position: not set.";
  362. }
  363. void AddOption(HudList hudList, Setting<bool> setting)
  364. {
  365. HudList.HudListRowAccessor newRow = hudList.AddRow();
  366. ((HudCheckBox)newRow[0]).Checked = setting.Value;
  367. setting.Changed += obj => { ((HudCheckBox)newRow[0]).Checked = obj.Value; };
  368. ((HudCheckBox)newRow[0]).Change += (s, e) =>
  369. {
  370. try
  371. {
  372. setting.Value = ((HudCheckBox)s).Checked;
  373. }
  374. catch (Exception ex) { Debug.LogException(ex); }
  375. };
  376. ((HudStaticText)newRow[1]).Text = setting.Description;
  377. }
  378. }
  379. }