/// <summary> /// Обновить состояние элемента управления: добавить очередную букву из очереди ожидающих букв, /// сдвинуть уже отображаемые буквы влево, отрисовать новое состояние. Подцепляется на исполнение /// по таймеру /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void UpdateState(object sender, EventArgs e) { if (TextToTypeQueue.Count == 0) { DrawNewState(); QueueIsEmptyEvent(); UpdatingStateTimer.Stop(); UpdatingStateTimer.Dispose(); } else if ((int)(TextToTypeQueue.Peek().position.X + g_fontSize * 4) <= Width / 2) { UpdatingStateTimer.Stop(); } else { PushQueueForward(); DrawNewState(); } }
/// <summary> /// Получить символ, который нужно ввести /// </summary> /// <returns>Первый символ из очереди</returns> public char GetLetterInTheMiddleOfControl() { return(TextToTypeQueue.Peek().letter); }