Hue Preserving Color Blending
TMPro_EventManager.cs
1 using UnityEngine;
2 using System.Collections.Generic;
3 
4 
5 namespace TMPro
6 {
7  public enum Compute_DistanceTransform_EventTypes { Processing, Completed };
8 
9 
10  public static class TMPro_EventManager
11  {
12  public static readonly FastAction<object, Compute_DT_EventArgs> COMPUTE_DT_EVENT = new FastAction<object, Compute_DT_EventArgs>();
13 
14  // Event & Delegate used to notify TextMesh Pro objects that Material properties have been changed.
15  public static readonly FastAction<bool, Material> MATERIAL_PROPERTY_EVENT = new FastAction<bool, Material>();
16 
17  public static readonly FastAction<bool, TMP_FontAsset> FONT_PROPERTY_EVENT = new FastAction<bool, TMP_FontAsset>();
18 
19  public static readonly FastAction<bool, Object> SPRITE_ASSET_PROPERTY_EVENT = new FastAction<bool, Object>();
20 
21  public static readonly FastAction<bool, TextMeshPro> TEXTMESHPRO_PROPERTY_EVENT = new FastAction<bool, TextMeshPro>();
22 
23  public static readonly FastAction<GameObject, Material, Material> DRAG_AND_DROP_MATERIAL_EVENT = new FastAction<GameObject, Material, Material>();
24 
25  public static readonly FastAction<bool> TEXT_STYLE_PROPERTY_EVENT = new FastAction<bool>();
26 
27  public static readonly FastAction<TMP_ColorGradient> COLOR_GRADIENT_PROPERTY_EVENT = new FastAction<TMP_ColorGradient>();
28 
29  public static readonly FastAction TMP_SETTINGS_PROPERTY_EVENT = new FastAction();
30 
31  public static readonly FastAction RESOURCE_LOAD_EVENT = new FastAction();
32 
33  public static readonly FastAction<bool, TextMeshProUGUI> TEXTMESHPRO_UGUI_PROPERTY_EVENT = new FastAction<bool, TextMeshProUGUI>();
34 
35  public static readonly FastAction OnPreRenderObject_Event = new FastAction();
36 
37  public static readonly FastAction<Object> TEXT_CHANGED_EVENT = new FastAction<Object>();
38 
39  //public static readonly FastAction WILL_RENDER_CANVASES = new FastAction();
40 
41 
42 
43  //static TMPro_EventManager()
44  //{
45  // // Register to the willRenderCanvases callback once
46  // // then the WILL_RENDER_CANVASES FastAction will handle the rest
47  // Canvas.willRenderCanvases += WILL_RENDER_CANVASES.Call;
48  //}
49 
50  public static void ON_PRE_RENDER_OBJECT_CHANGED()
51  {
52  OnPreRenderObject_Event.Call();
53  }
54 
55  public static void ON_MATERIAL_PROPERTY_CHANGED(bool isChanged, Material mat)
56  {
57  MATERIAL_PROPERTY_EVENT.Call(isChanged, mat);
58  }
59 
60  public static void ON_FONT_PROPERTY_CHANGED(bool isChanged, TMP_FontAsset font)
61  {
62  FONT_PROPERTY_EVENT.Call(isChanged, font);
63  }
64 
65  public static void ON_SPRITE_ASSET_PROPERTY_CHANGED(bool isChanged, Object obj)
66  {
67  SPRITE_ASSET_PROPERTY_EVENT.Call(isChanged, obj);
68  }
69 
70  public static void ON_TEXTMESHPRO_PROPERTY_CHANGED(bool isChanged, TextMeshPro obj)
71  {
72  TEXTMESHPRO_PROPERTY_EVENT.Call(isChanged, obj);
73  }
74 
75  public static void ON_DRAG_AND_DROP_MATERIAL_CHANGED(GameObject sender, Material currentMaterial, Material newMaterial)
76  {
77  DRAG_AND_DROP_MATERIAL_EVENT.Call(sender, currentMaterial, newMaterial);
78  }
79 
80  public static void ON_TEXT_STYLE_PROPERTY_CHANGED(bool isChanged)
81  {
82  TEXT_STYLE_PROPERTY_EVENT.Call(isChanged);
83  }
84 
85  public static void ON_COLOR_GRAIDENT_PROPERTY_CHANGED(TMP_ColorGradient gradient)
86  {
87  COLOR_GRADIENT_PROPERTY_EVENT.Call(gradient);
88  }
89 
90 
91  public static void ON_TEXT_CHANGED(Object obj)
92  {
93  TEXT_CHANGED_EVENT.Call(obj);
94  }
95 
96  public static void ON_TMP_SETTINGS_CHANGED()
97  {
98  TMP_SETTINGS_PROPERTY_EVENT.Call();
99  }
100 
101  public static void ON_RESOURCES_LOADED()
102  {
103  RESOURCE_LOAD_EVENT.Call();
104  }
105 
106  public static void ON_TEXTMESHPRO_UGUI_PROPERTY_CHANGED(bool isChanged, TextMeshProUGUI obj)
107  {
108  TEXTMESHPRO_UGUI_PROPERTY_EVENT.Call(isChanged, obj);
109  }
110 
111  //public static void ON_BASE_MATERIAL_CHANGED(Material mat)
112  //{
113  // BASE_MATERIAL_EVENT.Call(mat);
114  //}
115 
116  //public static void ON_PROGRESSBAR_UPDATE(Progress_Bar_EventTypes event_type, Progress_Bar_EventArgs eventArgs)
117  //{
118  // if (PROGRESS_BAR_EVENT != null)
119  // PROGRESS_BAR_EVENT(event_type, eventArgs);
120  //}
121 
122  public static void ON_COMPUTE_DT_EVENT(object Sender, Compute_DT_EventArgs e)
123  {
124  COMPUTE_DT_EVENT.Call(Sender, e);
125  }
126  }
127 
128 
129  public class Compute_DT_EventArgs
130  {
131  public Compute_DistanceTransform_EventTypes EventType;
132  public float ProgressPercentage;
133  public Color[] Colors;
134 
135 
136  public Compute_DT_EventArgs(Compute_DistanceTransform_EventTypes type, float progress)
137  {
138  EventType = type;
139  ProgressPercentage = progress;
140  }
141 
142  public Compute_DT_EventArgs(Compute_DistanceTransform_EventTypes type, Color[] colors)
143  {
144  EventType = type;
145  Colors = colors;
146  }
147 
148  }
149 
150 }