MyTextButton.cs 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. using System;
  2. using System.Runtime.CompilerServices;
  3. using System.Threading;
  4. using System.Windows;
  5. using System.Windows.Controls;
  6. using System.Windows.Input;
  7. using Microsoft.VisualBasic.CompilerServices;
  8. namespace PCL
  9. {
  10. // Token: 0x020000AB RID: 171
  11. public class MyTextButton : Label
  12. {
  13. // Token: 0x1400000B RID: 11
  14. // (add) Token: 0x06000536 RID: 1334 RVA: 0x0002AB3C File Offset: 0x00028D3C
  15. // (remove) Token: 0x06000537 RID: 1335 RVA: 0x0002AB74 File Offset: 0x00028D74
  16. public event MyTextButton.ClickEventHandler Click
  17. {
  18. [CompilerGenerated]
  19. add
  20. {
  21. MyTextButton.ClickEventHandler clickEventHandler = this._DescriptorBroadcaster;
  22. MyTextButton.ClickEventHandler clickEventHandler2;
  23. do
  24. {
  25. clickEventHandler2 = clickEventHandler;
  26. MyTextButton.ClickEventHandler value2 = (MyTextButton.ClickEventHandler)Delegate.Combine(clickEventHandler2, value);
  27. clickEventHandler = Interlocked.CompareExchange<MyTextButton.ClickEventHandler>(ref this._DescriptorBroadcaster, value2, clickEventHandler2);
  28. }
  29. while (clickEventHandler != clickEventHandler2);
  30. }
  31. [CompilerGenerated]
  32. remove
  33. {
  34. MyTextButton.ClickEventHandler clickEventHandler = this._DescriptorBroadcaster;
  35. MyTextButton.ClickEventHandler clickEventHandler2;
  36. do
  37. {
  38. clickEventHandler2 = clickEventHandler;
  39. MyTextButton.ClickEventHandler value2 = (MyTextButton.ClickEventHandler)Delegate.Remove(clickEventHandler2, value);
  40. clickEventHandler = Interlocked.CompareExchange<MyTextButton.ClickEventHandler>(ref this._DescriptorBroadcaster, value2, clickEventHandler2);
  41. }
  42. while (clickEventHandler != clickEventHandler2);
  43. }
  44. }
  45. // Token: 0x06000538 RID: 1336 RVA: 0x0002ABAC File Offset: 0x00028DAC
  46. public MyTextButton()
  47. {
  48. base.PreviewMouseLeftButtonDown += this.MyTextButton_MouseLeftButtonDown;
  49. base.MouseLeave += delegate(object sender, MouseEventArgs e)
  50. {
  51. this.MyTextButton_MouseLeave();
  52. };
  53. base.PreviewMouseLeftButtonUp += this.MyTextButton_MouseLeftButtonUp;
  54. base.MouseEnter += delegate(object sender, MouseEventArgs e)
  55. {
  56. this.RefreshColor();
  57. };
  58. base.MouseLeave += delegate(object sender, MouseEventArgs e)
  59. {
  60. this.RefreshColor();
  61. };
  62. base.IsEnabledChanged += delegate(object sender, DependencyPropertyChangedEventArgs e)
  63. {
  64. this.RefreshColor();
  65. };
  66. base.MouseLeftButtonDown += delegate(object sender, MouseButtonEventArgs e)
  67. {
  68. this.RefreshColor();
  69. };
  70. base.MouseLeftButtonUp += delegate(object sender, MouseButtonEventArgs e)
  71. {
  72. this.RefreshColor();
  73. };
  74. this.m_PublisherBroadcaster = ModBase.GetUuid();
  75. this.m_StrategyBroadcaster = false;
  76. base.SetResourceReference(Control.ForegroundProperty, "ColorBrush1");
  77. base.Background = ModSecret._ConsumerField;
  78. }
  79. // Token: 0x1700008D RID: 141
  80. // (get) Token: 0x06000539 RID: 1337 RVA: 0x00004CF5 File Offset: 0x00002EF5
  81. // (set) Token: 0x0600053A RID: 1338 RVA: 0x00004D07 File Offset: 0x00002F07
  82. public string Text
  83. {
  84. get
  85. {
  86. return Conversions.ToString(base.GetValue(MyTextButton._DefinitionBroadcaster));
  87. }
  88. set
  89. {
  90. base.SetValue(MyTextButton._DefinitionBroadcaster, value);
  91. }
  92. }
  93. // Token: 0x0600053B RID: 1339 RVA: 0x00004D15 File Offset: 0x00002F15
  94. private void MyTextButton_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
  95. {
  96. this.m_StrategyBroadcaster = true;
  97. e.Handled = true;
  98. }
  99. // Token: 0x0600053C RID: 1340 RVA: 0x00004D25 File Offset: 0x00002F25
  100. private void MyTextButton_MouseLeave()
  101. {
  102. this.m_StrategyBroadcaster = false;
  103. }
  104. // Token: 0x0600053D RID: 1341 RVA: 0x0002AC84 File Offset: 0x00028E84
  105. private void MyTextButton_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
  106. {
  107. if (this.m_StrategyBroadcaster)
  108. {
  109. this.m_StrategyBroadcaster = false;
  110. ModBase.Log("[Control] 按下文本按钮:" + this.Text, ModBase.LogLevel.Normal, "出现错误");
  111. MyTextButton.ClickEventHandler descriptorBroadcaster = this._DescriptorBroadcaster;
  112. if (descriptorBroadcaster != null)
  113. {
  114. descriptorBroadcaster(this, null);
  115. }
  116. ModEvent.TryStartEvent(this.EventType, this.EventData);
  117. e.Handled = true;
  118. }
  119. }
  120. // Token: 0x0600053E RID: 1342 RVA: 0x0002ACE8 File Offset: 0x00028EE8
  121. private void RefreshColor()
  122. {
  123. string text;
  124. int time;
  125. if (this.m_StrategyBroadcaster)
  126. {
  127. text = "ColorBrush4";
  128. time = 30;
  129. }
  130. else if (base.IsMouseOver)
  131. {
  132. text = "ColorBrush3";
  133. time = 100;
  134. }
  135. else
  136. {
  137. text = "ColorBrush1";
  138. time = 200;
  139. }
  140. if (Operators.CompareString(this.procBroadcaster, text, false) != 0)
  141. {
  142. this.procBroadcaster = text;
  143. if (base.IsLoaded && ModAnimation.CalcParser() == 0)
  144. {
  145. ModAnimation.AniStart(ModAnimation.AaColor(this, Control.ForegroundProperty, text, time, 0, null, false), "MyTextButton Color " + Conversions.ToString(this.m_PublisherBroadcaster), false);
  146. return;
  147. }
  148. ModAnimation.AniStop("MyTextButton Color " + Conversions.ToString(this.m_PublisherBroadcaster));
  149. base.SetResourceReference(Control.ForegroundProperty, text);
  150. }
  151. }
  152. // Token: 0x1700008E RID: 142
  153. // (get) Token: 0x0600053F RID: 1343 RVA: 0x00004D2E File Offset: 0x00002F2E
  154. // (set) Token: 0x06000540 RID: 1344 RVA: 0x00004D40 File Offset: 0x00002F40
  155. public string EventType
  156. {
  157. get
  158. {
  159. return Conversions.ToString(base.GetValue(MyTextButton._ParserField));
  160. }
  161. set
  162. {
  163. base.SetValue(MyTextButton._ParserField, value);
  164. }
  165. }
  166. // Token: 0x1700008F RID: 143
  167. // (get) Token: 0x06000541 RID: 1345 RVA: 0x00004D4E File Offset: 0x00002F4E
  168. // (set) Token: 0x06000542 RID: 1346 RVA: 0x00004D60 File Offset: 0x00002F60
  169. public string EventData
  170. {
  171. get
  172. {
  173. return Conversions.ToString(base.GetValue(MyTextButton.broadcasterField));
  174. }
  175. set
  176. {
  177. base.SetValue(MyTextButton.broadcasterField, value);
  178. }
  179. }
  180. // Token: 0x040002AC RID: 684
  181. [CompilerGenerated]
  182. private MyTextButton.ClickEventHandler _DescriptorBroadcaster;
  183. // Token: 0x040002AD RID: 685
  184. public int m_PublisherBroadcaster;
  185. // Token: 0x040002AE RID: 686
  186. public static readonly DependencyProperty _DefinitionBroadcaster = DependencyProperty.Register("Text", typeof(string), typeof(MyTextButton), new PropertyMetadata("", delegate(DependencyObject a0, DependencyPropertyChangedEventArgs a1)
  187. {
  188. ((MyTextButton._Closure$__.$I0-0 == null) ? (MyTextButton._Closure$__.$I0-0 = delegate(MyTextButton sender, DependencyPropertyChangedEventArgs e)
  189. {
  190. if (Conversions.ToBoolean(Operators.NotObject(Operators.CompareObjectEqual(e.OldValue, e.NewValue, false))))
  191. {
  192. ModAnimation.AniStart(new ModAnimation.AniData[]
  193. {
  194. ModAnimation.AaOpacity(sender, -sender.Opacity, 50, 0, null, false),
  195. ModAnimation.AaCode(delegate
  196. {
  197. sender.Content = RuntimeHelpers.GetObjectValue(e.NewValue);
  198. }, 0, true),
  199. ModAnimation.AaOpacity(sender, 1.0, 170, 0, null, false)
  200. }, "MyTextButton Text " + Conversions.ToString(sender.m_PublisherBroadcaster), false);
  201. }
  202. }) : MyTextButton._Closure$__.$I0-0)((MyTextButton)a0, a1);
  203. }));
  204. // Token: 0x040002AF RID: 687
  205. public bool m_StrategyBroadcaster;
  206. // Token: 0x040002B0 RID: 688
  207. private string procBroadcaster;
  208. // Token: 0x040002B1 RID: 689
  209. public static readonly DependencyProperty _ParserField = DependencyProperty.Register("EventType", typeof(string), typeof(MyTextButton), new PropertyMetadata(null));
  210. // Token: 0x040002B2 RID: 690
  211. public static readonly DependencyProperty broadcasterField = DependencyProperty.Register("EventData", typeof(string), typeof(MyTextButton), new PropertyMetadata(null));
  212. // Token: 0x020000AC RID: 172
  213. // (Invoke) Token: 0x0600054C RID: 1356
  214. public delegate void ClickEventHandler(object sender, EventArgs e);
  215. }
  216. }