private static DoRepeatButton ( |
||
position | ||
content | ||
style | ||
focusType | FocusType | |
return | bool |
private static bool DoRepeatButton(Rect position, GUIContent content, GUIStyle style, FocusType focusType)
{
int controlID = GUIUtility.GetControlID(repeatButtonHash, focusType, position);
EventType typeForControl = Event.current.GetTypeForControl(controlID);
if (typeForControl != EventType.MouseDown)
{
if (typeForControl != EventType.MouseUp)
{
if (typeForControl != EventType.Repaint)
{
return false;
}
style.Draw(position, content, controlID);
return ((controlID == GUIUtility.hotControl) && position.Contains(Event.current.mousePosition));
}
}
else
{
if (position.Contains(Event.current.mousePosition))
{
GUIUtility.hotControl = controlID;
Event.current.Use();
}
return false;
}
if (GUIUtility.hotControl == controlID)
{
GUIUtility.hotControl = 0;
Event.current.Use();
return position.Contains(Event.current.mousePosition);
}
return false;
}
private static bool ScrollerRepeatButton(int scrollerID, Rect rect, GUIStyle style) { bool result = false; if (EditorGUIExt.DoRepeatButton(rect, GUIContent.none, style, FocusType.Passive)) { bool flag = EditorGUIExt.scrollControlID != scrollerID; EditorGUIExt.scrollControlID = scrollerID; if (flag) { result = true; EditorGUIExt.nextScrollStepTime = Time.realtimeSinceStartup + 0.001f * (float)EditorGUIExt.firstScrollWait; } else if (Time.realtimeSinceStartup >= EditorGUIExt.nextScrollStepTime) { result = true; EditorGUIExt.nextScrollStepTime = Time.realtimeSinceStartup + 0.001f * (float)EditorGUIExt.scrollWait; } if (Event.current.type == EventType.Repaint) { HandleUtility.Repaint(); } } return(result); }