MyButton.cs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495
  1. using System;
  2. using System.CodeDom.Compiler;
  3. using System.ComponentModel;
  4. using System.Runtime.CompilerServices;
  5. using System.Threading;
  6. using System.Windows;
  7. using System.Windows.Controls;
  8. using System.Windows.Input;
  9. using System.Windows.Markup;
  10. using System.Windows.Media;
  11. using Microsoft.VisualBasic;
  12. using Microsoft.VisualBasic.CompilerServices;
  13. namespace PCL
  14. {
  15. // Token: 0x020001C5 RID: 453
  16. [DesignerGenerated]
  17. public class MyButton : Border, IComponentConnector
  18. {
  19. // Token: 0x0600151B RID: 5403 RVA: 0x0008DB40 File Offset: 0x0008BD40
  20. public MyButton()
  21. {
  22. base.MouseEnter += new MouseEventHandler(this.RefreshColor);
  23. base.MouseLeave += new MouseEventHandler(this.RefreshColor);
  24. base.Loaded += new RoutedEventHandler(this.RefreshColor);
  25. base.IsEnabledChanged += delegate(object sender, DependencyPropertyChangedEventArgs e)
  26. {
  27. this.RefreshColor(RuntimeHelpers.GetObjectValue(sender), e);
  28. };
  29. base.MouseLeftButtonUp += this.Button_MouseUp;
  30. base.MouseLeftButtonDown += this.Button_MouseDown;
  31. base.MouseEnter += delegate(object sender, MouseEventArgs e)
  32. {
  33. this.Button_MouseEnter();
  34. };
  35. base.MouseLeftButtonUp += delegate(object sender, MouseButtonEventArgs e)
  36. {
  37. this.Button_MouseUp();
  38. };
  39. base.MouseLeave += delegate(object sender, MouseEventArgs e)
  40. {
  41. this.Button_MouseLeave();
  42. };
  43. this.m_StatusComposer = ModBase.GetUuid();
  44. this._StructComposer = MyButton.ColorState.Normal;
  45. this.m_CandidateComposer = false;
  46. this.InitializeComponent();
  47. }
  48. // Token: 0x14000016 RID: 22
  49. // (add) Token: 0x0600151C RID: 5404 RVA: 0x0008DC18 File Offset: 0x0008BE18
  50. // (remove) Token: 0x0600151D RID: 5405 RVA: 0x0008DC50 File Offset: 0x0008BE50
  51. public event MyButton.ClickEventHandler Click
  52. {
  53. [CompilerGenerated]
  54. add
  55. {
  56. MyButton.ClickEventHandler clickEventHandler = this.resolverComposer;
  57. MyButton.ClickEventHandler clickEventHandler2;
  58. do
  59. {
  60. clickEventHandler2 = clickEventHandler;
  61. MyButton.ClickEventHandler value2 = (MyButton.ClickEventHandler)Delegate.Combine(clickEventHandler2, value);
  62. clickEventHandler = Interlocked.CompareExchange<MyButton.ClickEventHandler>(ref this.resolverComposer, value2, clickEventHandler2);
  63. }
  64. while (clickEventHandler != clickEventHandler2);
  65. }
  66. [CompilerGenerated]
  67. remove
  68. {
  69. MyButton.ClickEventHandler clickEventHandler = this.resolverComposer;
  70. MyButton.ClickEventHandler clickEventHandler2;
  71. do
  72. {
  73. clickEventHandler2 = clickEventHandler;
  74. MyButton.ClickEventHandler value2 = (MyButton.ClickEventHandler)Delegate.Remove(clickEventHandler2, value);
  75. clickEventHandler = Interlocked.CompareExchange<MyButton.ClickEventHandler>(ref this.resolverComposer, value2, clickEventHandler2);
  76. }
  77. while (clickEventHandler != clickEventHandler2);
  78. }
  79. }
  80. // Token: 0x17000399 RID: 921
  81. // (get) Token: 0x0600151E RID: 5406 RVA: 0x0000BEF3 File Offset: 0x0000A0F3
  82. // (set) Token: 0x0600151F RID: 5407 RVA: 0x0000BF00 File Offset: 0x0000A100
  83. public string Text
  84. {
  85. get
  86. {
  87. return this.LabText.Text;
  88. }
  89. set
  90. {
  91. this.LabText.Text = value;
  92. }
  93. }
  94. // Token: 0x1700039A RID: 922
  95. // (get) Token: 0x06001520 RID: 5408 RVA: 0x0000BF0E File Offset: 0x0000A10E
  96. // (set) Token: 0x06001521 RID: 5409 RVA: 0x0000BF1B File Offset: 0x0000A11B
  97. public Thickness TextPadding
  98. {
  99. get
  100. {
  101. return this.LabText.Padding;
  102. }
  103. set
  104. {
  105. this.LabText.Padding = value;
  106. }
  107. }
  108. // Token: 0x1700039B RID: 923
  109. // (get) Token: 0x06001522 RID: 5410 RVA: 0x0000BF29 File Offset: 0x0000A129
  110. // (set) Token: 0x06001523 RID: 5411 RVA: 0x0000BF31 File Offset: 0x0000A131
  111. public MyButton.ColorState ColorType
  112. {
  113. get
  114. {
  115. return this._StructComposer;
  116. }
  117. set
  118. {
  119. this._StructComposer = value;
  120. this.RefreshColor(null, null);
  121. }
  122. }
  123. // Token: 0x1700039C RID: 924
  124. // (get) Token: 0x06001524 RID: 5412 RVA: 0x0000BF42 File Offset: 0x0000A142
  125. // (set) Token: 0x06001525 RID: 5413 RVA: 0x0000BF4F File Offset: 0x0000A14F
  126. public new Thickness Padding
  127. {
  128. get
  129. {
  130. return this.PanFore.Padding;
  131. }
  132. set
  133. {
  134. this.PanFore.Padding = value;
  135. }
  136. }
  137. // Token: 0x1700039D RID: 925
  138. // (get) Token: 0x06001526 RID: 5414 RVA: 0x0000BF5D File Offset: 0x0000A15D
  139. // (set) Token: 0x06001527 RID: 5415 RVA: 0x0000BF6A File Offset: 0x0000A16A
  140. public Transform RealRenderTransform
  141. {
  142. get
  143. {
  144. return this.PanFore.RenderTransform;
  145. }
  146. set
  147. {
  148. this.PanFore.RenderTransform = value;
  149. }
  150. }
  151. // Token: 0x06001528 RID: 5416 RVA: 0x0008DC88 File Offset: 0x0008BE88
  152. private void RefreshColor(object obj = null, object e = null)
  153. {
  154. try
  155. {
  156. if (base.IsLoaded && ModAnimation.CalcParser() == 0)
  157. {
  158. if (base.IsEnabled)
  159. {
  160. switch (this.ColorType)
  161. {
  162. case MyButton.ColorState.Normal:
  163. if (base.IsMouseOver)
  164. {
  165. ModAnimation.AniStart(new ModAnimation.AniData[]
  166. {
  167. ModAnimation.AaColor(this.PanFore, Border.BorderBrushProperty, "ColorBrush3", 100, 0, null, false)
  168. }, "MyButton Color " + Conversions.ToString(this.m_StatusComposer), false);
  169. }
  170. else
  171. {
  172. ModAnimation.AniStart(new ModAnimation.AniData[]
  173. {
  174. ModAnimation.AaColor(this.PanFore, Border.BorderBrushProperty, "ColorBrush1", 200, 0, null, false)
  175. }, "MyButton Color " + Conversions.ToString(this.m_StatusComposer), false);
  176. }
  177. break;
  178. case MyButton.ColorState.Highlight:
  179. if (base.IsMouseOver)
  180. {
  181. ModAnimation.AniStart(new ModAnimation.AniData[]
  182. {
  183. ModAnimation.AaColor(this.PanFore, Border.BorderBrushProperty, "ColorBrush3", 100, 0, null, false)
  184. }, "MyButton Color " + Conversions.ToString(this.m_StatusComposer), false);
  185. }
  186. else
  187. {
  188. ModAnimation.AniStart(new ModAnimation.AniData[]
  189. {
  190. ModAnimation.AaColor(this.PanFore, Border.BorderBrushProperty, "ColorBrush2", 200, 0, null, false)
  191. }, "MyButton Color " + Conversions.ToString(this.m_StatusComposer), false);
  192. }
  193. break;
  194. case MyButton.ColorState.Red:
  195. if (base.IsMouseOver)
  196. {
  197. ModAnimation.AniStart(new ModAnimation.AniData[]
  198. {
  199. ModAnimation.AaColor(this.PanFore, Border.BorderBrushProperty, "ColorBrushRedLight", 100, 0, null, false)
  200. }, "MyButton Color " + Conversions.ToString(this.m_StatusComposer), false);
  201. }
  202. else
  203. {
  204. ModAnimation.AniStart(new ModAnimation.AniData[]
  205. {
  206. ModAnimation.AaColor(this.PanFore, Border.BorderBrushProperty, "ColorBrushRedDark", 200, 0, null, false)
  207. }, "MyButton Color " + Conversions.ToString(this.m_StatusComposer), false);
  208. }
  209. break;
  210. }
  211. }
  212. else
  213. {
  214. ModAnimation.AniStart(new ModAnimation.AniData[]
  215. {
  216. ModAnimation.AaColor(this.PanFore, Border.BorderBrushProperty, ModSecret.m_StateField - this.PanFore.BorderBrush, 200, 0, null, false)
  217. }, "MyButton Color " + Conversions.ToString(this.m_StatusComposer), false);
  218. }
  219. }
  220. else
  221. {
  222. ModAnimation.AniStop("MyButton Color " + Conversions.ToString(this.m_StatusComposer));
  223. if (base.IsEnabled)
  224. {
  225. switch (this.ColorType)
  226. {
  227. case MyButton.ColorState.Normal:
  228. if (base.IsMouseOver)
  229. {
  230. this.PanFore.SetResourceReference(Border.BorderBrushProperty, "ColorBrush3");
  231. }
  232. else
  233. {
  234. this.PanFore.SetResourceReference(Border.BorderBrushProperty, "ColorBrush1");
  235. }
  236. break;
  237. case MyButton.ColorState.Highlight:
  238. if (base.IsMouseOver)
  239. {
  240. this.PanFore.SetResourceReference(Border.BorderBrushProperty, "ColorBrush3");
  241. }
  242. else
  243. {
  244. this.PanFore.SetResourceReference(Border.BorderBrushProperty, "ColorBrush2");
  245. }
  246. break;
  247. case MyButton.ColorState.Red:
  248. if (base.IsMouseOver)
  249. {
  250. this.PanFore.SetResourceReference(Border.BorderBrushProperty, "ColorBrushRedLight");
  251. }
  252. else
  253. {
  254. this.PanFore.SetResourceReference(Border.BorderBrushProperty, "ColorBrushRedDark");
  255. }
  256. break;
  257. }
  258. }
  259. else
  260. {
  261. this.PanFore.BorderBrush = ModSecret.m_StateField;
  262. }
  263. }
  264. }
  265. catch (Exception ex)
  266. {
  267. ModBase.Log(ex, "刷新按钮颜色出错", ModBase.LogLevel.Debug, "出现错误");
  268. }
  269. }
  270. // Token: 0x06001529 RID: 5417 RVA: 0x0008E03C File Offset: 0x0008C23C
  271. private void Button_MouseUp(object sender, MouseButtonEventArgs e)
  272. {
  273. if (this.m_CandidateComposer)
  274. {
  275. ModBase.Log("[Control] 按下按钮:" + this.Text, ModBase.LogLevel.Normal, "出现错误");
  276. MyButton.ClickEventHandler clickEventHandler = this.resolverComposer;
  277. if (clickEventHandler != null)
  278. {
  279. clickEventHandler(RuntimeHelpers.GetObjectValue(sender), e);
  280. }
  281. if (!string.IsNullOrEmpty(Conversions.ToString(base.Tag)) && (base.Tag.ToString().StartsWithF("链接-", false) || base.Tag.ToString().StartsWithF("启动-", false)))
  282. {
  283. ModMain.Hint("主页自定义按钮语法已更新,且不再兼容老版本语法,请查看新的自定义示例!", ModMain.HintType.Info, true);
  284. }
  285. ModEvent.TryStartEvent(this.EventType, this.EventData);
  286. }
  287. }
  288. // Token: 0x1700039E RID: 926
  289. // (get) Token: 0x0600152A RID: 5418 RVA: 0x0000BF78 File Offset: 0x0000A178
  290. // (set) Token: 0x0600152B RID: 5419 RVA: 0x0000BF8A File Offset: 0x0000A18A
  291. public string EventType
  292. {
  293. get
  294. {
  295. return Conversions.ToString(base.GetValue(MyButton.valComposer));
  296. }
  297. set
  298. {
  299. base.SetValue(MyButton.valComposer, value);
  300. }
  301. }
  302. // Token: 0x1700039F RID: 927
  303. // (get) Token: 0x0600152C RID: 5420 RVA: 0x0000BF98 File Offset: 0x0000A198
  304. // (set) Token: 0x0600152D RID: 5421 RVA: 0x0000BFAA File Offset: 0x0000A1AA
  305. public string EventData
  306. {
  307. get
  308. {
  309. return Conversions.ToString(base.GetValue(MyButton.m_AttrComposer));
  310. }
  311. set
  312. {
  313. base.SetValue(MyButton.m_AttrComposer, value);
  314. }
  315. }
  316. // Token: 0x0600152E RID: 5422 RVA: 0x0008E0E8 File Offset: 0x0008C2E8
  317. private void Button_MouseDown(object sender, MouseButtonEventArgs e)
  318. {
  319. this.m_CandidateComposer = true;
  320. base.Focus();
  321. ModAnimation.AniStart(new ModAnimation.AniData[]
  322. {
  323. ModAnimation.AaScaleTransform(this.PanFore, 0.955 - ((ScaleTransform)this.PanFore.RenderTransform).ScaleX, 80, 0, new ModAnimation.AniEaseOutFluent(ModAnimation.AniEasePower.ExtraStrong), false),
  324. ModAnimation.AaScaleTransform(this.PanFore, -0.01, 700, 0, new ModAnimation.AniEaseOutFluent(ModAnimation.AniEasePower.Middle), false)
  325. }, "MyButton Scale " + Conversions.ToString(this.m_StatusComposer), false);
  326. }
  327. // Token: 0x0600152F RID: 5423 RVA: 0x0008E188 File Offset: 0x0008C388
  328. private void Button_MouseEnter()
  329. {
  330. ModAnimation.AniStart(ModAnimation.AaColor(this.PanFore, Border.BackgroundProperty, (this._StructComposer == MyButton.ColorState.Red) ? "ColorBrushRedBack" : "ColorBrush7", 100, 0, null, false), "MyButton Background " + Conversions.ToString(this.m_StatusComposer), false);
  331. }
  332. // Token: 0x06001530 RID: 5424 RVA: 0x0008E1DC File Offset: 0x0008C3DC
  333. private void Button_MouseUp()
  334. {
  335. if (this.m_CandidateComposer)
  336. {
  337. this.m_CandidateComposer = false;
  338. ModAnimation.AniStart(new ModAnimation.AniData[]
  339. {
  340. ModAnimation.AaScaleTransform(this.PanFore, 1.0 - ((ScaleTransform)this.PanFore.RenderTransform).ScaleX, 300, 10, new ModAnimation.AniEaseOutFluent(ModAnimation.AniEasePower.Middle), false)
  341. }, "MyButton Scale " + Conversions.ToString(this.m_StatusComposer), false);
  342. }
  343. }
  344. // Token: 0x06001531 RID: 5425 RVA: 0x0008E258 File Offset: 0x0008C458
  345. private void Button_MouseLeave()
  346. {
  347. ModAnimation.AniStart(ModAnimation.AaColor(this.PanFore, Border.BackgroundProperty, "ColorBrushHalfWhite", 200, 0, null, false), "MyButton Background " + Conversions.ToString(this.m_StatusComposer), false);
  348. if (this.m_CandidateComposer)
  349. {
  350. this.m_CandidateComposer = false;
  351. ModAnimation.AniStart(ModAnimation.AaScaleTransform(this.PanFore, 1.0 - ((ScaleTransform)this.PanFore.RenderTransform).ScaleX, 800, 0, new ModAnimation.AniEaseOutFluent(ModAnimation.AniEasePower.Strong), false), "MyButton Scale " + Conversions.ToString(this.m_StatusComposer), false);
  352. }
  353. }
  354. // Token: 0x170003A0 RID: 928
  355. // (get) Token: 0x06001532 RID: 5426 RVA: 0x0000BFB8 File Offset: 0x0000A1B8
  356. // (set) Token: 0x06001533 RID: 5427 RVA: 0x0000BFC0 File Offset: 0x0000A1C0
  357. internal virtual MyButton PanBack { get; set; }
  358. // Token: 0x170003A1 RID: 929
  359. // (get) Token: 0x06001534 RID: 5428 RVA: 0x0000BFC9 File Offset: 0x0000A1C9
  360. // (set) Token: 0x06001535 RID: 5429 RVA: 0x0000BFD1 File Offset: 0x0000A1D1
  361. internal virtual Border PanFore { get; set; }
  362. // Token: 0x170003A2 RID: 930
  363. // (get) Token: 0x06001536 RID: 5430 RVA: 0x0000BFDA File Offset: 0x0000A1DA
  364. // (set) Token: 0x06001537 RID: 5431 RVA: 0x0000BFE2 File Offset: 0x0000A1E2
  365. internal virtual TextBlock LabText { get; set; }
  366. // Token: 0x06001538 RID: 5432 RVA: 0x0008E300 File Offset: 0x0008C500
  367. [GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
  368. public void InitializeComponent()
  369. {
  370. if (!this.m_EventComposer)
  371. {
  372. this.m_EventComposer = true;
  373. Uri resourceLocator = new Uri("/Plain Craft Launcher 2;component/controls/mybutton.xaml", UriKind.Relative);
  374. Application.LoadComponent(this, resourceLocator);
  375. }
  376. }
  377. // Token: 0x06001539 RID: 5433 RVA: 0x0000BFEB File Offset: 0x0000A1EB
  378. [EditorBrowsable(EditorBrowsableState.Never)]
  379. [GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
  380. public void System_Windows_Markup_IComponentConnector_Connect(int connectionId, object target)
  381. {
  382. if (connectionId == 1)
  383. {
  384. this.PanBack = (MyButton)target;
  385. return;
  386. }
  387. if (connectionId == 2)
  388. {
  389. this.PanFore = (Border)target;
  390. return;
  391. }
  392. if (connectionId == 3)
  393. {
  394. this.LabText = (TextBlock)target;
  395. return;
  396. }
  397. this.m_EventComposer = true;
  398. }
  399. // Token: 0x04000AD4 RID: 2772
  400. [CompilerGenerated]
  401. private MyButton.ClickEventHandler resolverComposer;
  402. // Token: 0x04000AD5 RID: 2773
  403. public int m_StatusComposer;
  404. // Token: 0x04000AD6 RID: 2774
  405. public static readonly DependencyProperty m_RoleComposer = DependencyProperty.Register("Text", typeof(string), typeof(MyButton), new PropertyMetadata(delegate(DependencyObject sender, DependencyPropertyChangedEventArgs e)
  406. {
  407. if (!Information.IsNothing(sender))
  408. {
  409. ((MyButton)sender).LabText.Text = Conversions.ToString(e.NewValue);
  410. }
  411. }));
  412. // Token: 0x04000AD7 RID: 2775
  413. private MyButton.ColorState _StructComposer;
  414. // Token: 0x04000AD8 RID: 2776
  415. public static readonly DependencyProperty printerComposer = DependencyProperty.Register("Padding", typeof(Thickness), typeof(MyButton), new PropertyMetadata(delegate(DependencyObject a0, DependencyPropertyChangedEventArgs a1)
  416. {
  417. ((MyButton._Closure$__.$I0-1 == null) ? (MyButton._Closure$__.$I0-1 = delegate(MyButton sender, DependencyPropertyChangedEventArgs e)
  418. {
  419. if (sender != null)
  420. {
  421. Border panFore = sender.PanFore;
  422. object newValue = e.NewValue;
  423. panFore.Padding = ((newValue != null) ? ((Thickness)newValue) : default(Thickness));
  424. }
  425. }) : MyButton._Closure$__.$I0-1)((MyButton)a0, a1);
  426. }));
  427. // Token: 0x04000AD9 RID: 2777
  428. public static readonly DependencyProperty valComposer = DependencyProperty.Register("EventType", typeof(string), typeof(MyButton), new PropertyMetadata(null));
  429. // Token: 0x04000ADA RID: 2778
  430. public static readonly DependencyProperty m_AttrComposer = DependencyProperty.Register("EventData", typeof(string), typeof(MyButton), new PropertyMetadata(null));
  431. // Token: 0x04000ADB RID: 2779
  432. private bool m_CandidateComposer;
  433. // Token: 0x04000ADC RID: 2780
  434. [AccessedThroughProperty("PanBack")]
  435. [CompilerGenerated]
  436. private MyButton m_AdvisorComposer;
  437. // Token: 0x04000ADD RID: 2781
  438. [CompilerGenerated]
  439. [AccessedThroughProperty("PanFore")]
  440. private Border accountComposer;
  441. // Token: 0x04000ADE RID: 2782
  442. [AccessedThroughProperty("LabText")]
  443. [CompilerGenerated]
  444. private TextBlock queueComposer;
  445. // Token: 0x04000ADF RID: 2783
  446. private bool m_EventComposer;
  447. // Token: 0x020001C6 RID: 454
  448. // (Invoke) Token: 0x06001541 RID: 5441
  449. public delegate void ClickEventHandler(object sender, MouseButtonEventArgs e);
  450. // Token: 0x020001C7 RID: 455
  451. public enum ColorState
  452. {
  453. // Token: 0x04000AE1 RID: 2785
  454. Normal,
  455. // Token: 0x04000AE2 RID: 2786
  456. Highlight,
  457. // Token: 0x04000AE3 RID: 2787
  458. Red
  459. }
  460. }
  461. }