Пример #1
0
    public void UpdateLyrics()
    {
        string text = (lyricsAreaMode == LyricsAreaMode.ViewMode)
            ? GetViewModeText()
            : GetEditModeText();
        string newInputFieldText = ShowWhiteSpaceText.ReplaceWhiteSpaceWithVisibleCharacters(text);

        SetInputFieldText(newInputFieldText);
    }
Пример #2
0
    private void ApplyEditModeText(string editModeText, bool undoable)
    {
        // Map edit-mode text to lyrics of notes
        string text = ShowWhiteSpaceText.ReplaceVisibleCharactersWithWhiteSpace(editModeText);

        MapEditModeTextToNotes(text);
        songMetaChangeEventStream.OnNext(new LyricsChangedEvent {
            Undoable = undoable
        });
    }
Пример #3
0
    private void OnEndEdit(string newText)
    {
        ApplyEditModeText(newText, true);

        string newInputFieldText = ShowWhiteSpaceText.ReplaceWhiteSpaceWithVisibleCharacters(GetViewModeText());

        SetInputFieldText(newInputFieldText);

        lyricsAreaMode = LyricsAreaMode.ViewMode;
    }
Пример #4
0
    private void OnBeginEdit()
    {
        // Map lyrics of notes to edit-mode text.
        lastEditModeText = null;
        string editModeText      = GetEditModeText();
        string newInputFieldText = ShowWhiteSpaceText.ReplaceWhiteSpaceWithVisibleCharacters(editModeText);

        SetInputFieldText(newInputFieldText);

        lyricsAreaMode = LyricsAreaMode.EditMode;
    }
Пример #5
0
    private void OnEndEdit(string inputFieldText)
    {
        string newText = ShowWhiteSpaceText.ReplaceVisibleCharactersWithWhiteSpace(inputFieldText);

        if (!IsOnlyWhitespace(inputFieldText))
        {
            uiEditorNote.Note.SetText(newText);
            uiEditorNote.SetLyrics(newText);

            songMetaChangeEventStream.OnNext(new LyricsChangedEvent());
        }

        inputField.onValidateInput -= OnValidateInput;

        Destroy(gameObject);
    }
Пример #6
0
    public void OnInjectionFinished()
    {
        BackslashReplacingTextFieldControl backslashReplacingTextFieldControl = null;

        voice = songMeta.GetVoices()[0];
        UpdateLyrics();
        textField.RegisterCallback <FocusEvent>(evt =>
        {
            OnBeginEdit();
        });
        textField.RegisterCallback <BlurEvent>(evt =>
        {
            if (lyricsAreaMode == LyricsAreaMode.EditMode)
            {
                OnEndEdit(backslashReplacingTextFieldControl.UnescapeBackslashes(textField.text));
            }
        });

        songMetaChangeEventStream.Subscribe(OnSongMetaChanged);

        textField.doubleClickSelectsWord = true;
        textField.tripleClickSelectsLine = true;

        backslashReplacingTextFieldControl = new BackslashReplacingTextFieldControl(textField);
        // Replace white space with visible characters when in edit mode
        backslashReplacingTextFieldControl.ValueChangedEventStream
        .Subscribe(newValue =>
        {
            if (lyricsAreaMode == LyricsAreaMode.EditMode)
            {
                string normalText            = ShowWhiteSpaceText.ReplaceVisibleCharactersWithWhiteSpace(newValue);
                string visibleWhiteSpaceText = ShowWhiteSpaceText.ReplaceWhiteSpaceWithVisibleCharacters(normalText);
                textField.SetValueWithoutNotify(visibleWhiteSpaceText);
            }
        });

        lyricsAreaVoice1Button.RegisterCallbackButtonTriggered(() => Voice = songMeta.GetVoice(Voice.firstVoiceName));
        lyricsAreaVoice2Button.RegisterCallbackButtonTriggered(() => Voice = songMeta.GetVoice(Voice.secondVoiceName));

        UpdateVoiceButtons();
    }
Пример #7
0
 private void OnEndEdit(string newText)
 {
     // TODO: Change the lyrics if only the lyrics for a single note changed
     // Ignore new lyrics for now.
     inputField.text = ShowWhiteSpaceText.ReplaceWhiteSpaceWithVisibleCharacters(lyrics);
 }
Пример #8
0
 public void UpdateLyrics()
 {
     lyrics          = GetLyrics();
     inputField.text = ShowWhiteSpaceText.ReplaceWhiteSpaceWithVisibleCharacters(lyrics);
 }