public void fillRichScriptBox() { richScriptBoxContainer.Text = ""; if (metroTopicComboBox.Items.Count > 0) { if (metroTopicComboBox.SelectedIndex != -1) { Script.ScriptTopic currentScriptTopic = Script.scriptTopics[metroTopicComboBox.SelectedIndex]; if (currentScriptTopic != null) { addLineToRichScriptBox($"\n{currentScriptTopic.topicTitle}"); foreach (Script.ScriptTopic.ScriptLine scriptLine in currentScriptTopic.getTopicLines()) { addLineToRichScriptBox($"\n{(ScriptAttributes.STOP_PATTERN.IsMatch(scriptLine.getLine()) ? "[Pausa agendada]" : scriptLine.getLine())}"); } } updateProgress(0); } } }
private void sendMessage() { Script.ScriptTopic currentScriptTopic = Script.scriptTopics[metroTopicComboBox.SelectedIndex]; string _currentLine = string.Empty; if (Script.CURRENT_LINE <= currentScriptTopic.getTopicLines().Count - 1) { _currentLine = currentScriptTopic.getTopicLines()[Script.CURRENT_LINE].getLine(); if (Script.SHOULD_SEND_TITLE_PHRASE) { _currentLine = currentScriptTopic.topicTitle; Script.SHOULD_SEND_TITLE_PHRASE = false; } else { // Increment script current line Script.CURRENT_LINE++; } if (ScriptAttributes.STOP_PATTERN.IsMatch(_currentLine)) { btnPause.PerformClick(); WindowState = FormWindowState.Normal; return; } else { SendKeys.Send(Utils.formatSpecialLineCharacters(_currentLine)); SendKeys.Send("+{Enter}"); } // Update script topic progress updateProgress(); } else { btnPause.PerformClick(); WindowState = FormWindowState.Normal; MetroMessageBox.Show(this, $"Parabéns {Settings.Default.nickname}, este tópico foi finalizado com sucesso! Selecione o próximo para começar.", "Tópico finalizado", MessageBoxButtons.OK, MessageBoxIcon.Information); try { metroTopicComboBox.SelectedIndex = metroTopicComboBox.SelectedIndex + 1; } catch { int numberOfTopicItems = metroTopicComboBox.Items.Count; if (metroTopicComboBox.SelectedIndex + 1 == numberOfTopicItems) { metroTopicComboBox.SelectedIndex = 0; } } finally { // Reset current script line ResetTopic(); } } }
public void updateProgress(int initialValue = 1) { Script.ScriptTopic currentScriptTopic = Script.scriptTopics[metroTopicComboBox.SelectedIndex]; labelProgress.Text = $"{initialValue * Math.Floor((double)(Script.CURRENT_LINE) / currentScriptTopic.getTopicLines().Count * 100) } %"; }