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;
}