internal void DrawWithTextSelection(Rect position, GUIContent content, bool isActive, bool hasKeyboardFocus, int firstSelectedCharacter, int lastSelectedCharacter, bool drawSelectionAsComposition)
{
Event current = Event.current;
Color cursorColor = new Color(0f, 0f, 0f, 0f);
float cursorFlashSpeed = GUI.skin.settings.cursorFlashSpeed;
float num = (Time.realtimeSinceStartup - GUIStyle.Internal_GetCursorFlashOffset()) % cursorFlashSpeed / cursorFlashSpeed;
if (cursorFlashSpeed == 0f || num < 0.5f)
{
cursorColor = GUI.skin.settings.cursorColor;
}
Internal_DrawWithTextSelectionArguments internal_DrawWithTextSelectionArguments = default(Internal_DrawWithTextSelectionArguments);
internal_DrawWithTextSelectionArguments.target = this.m_Ptr;
internal_DrawWithTextSelectionArguments.position = position;
internal_DrawWithTextSelectionArguments.firstPos = firstSelectedCharacter;
internal_DrawWithTextSelectionArguments.lastPos = lastSelectedCharacter;
internal_DrawWithTextSelectionArguments.cursorColor = cursorColor;
internal_DrawWithTextSelectionArguments.selectionColor = GUI.skin.settings.selectionColor;
internal_DrawWithTextSelectionArguments.isHover = ((!position.Contains(current.mousePosition)) ? 0 : 1);
internal_DrawWithTextSelectionArguments.isActive = ((!isActive) ? 0 : 1);
internal_DrawWithTextSelectionArguments.on = 0;
internal_DrawWithTextSelectionArguments.hasKeyboardFocus = ((!hasKeyboardFocus) ? 0 : 1);
internal_DrawWithTextSelectionArguments.drawSelectionAsComposition = ((!drawSelectionAsComposition) ? 0 : 1);
GUIStyle.Internal_DrawWithTextSelection(content, ref internal_DrawWithTextSelectionArguments);
}