public void SavePreview(bool fullConversation)
        {
            SaveFileDialog.Filter = Resources.PngFileFilter;

            if (fullConversation)
            {
                SaveFileDialog.FileName = MainConversation.File.FileName + "_Conversation";

                if (SaveFileDialog.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                var imageFile = MainConversation.RenderConversation();
                MainConversation.GetCommandsUpUntilIndex();
                SetCurrentLine();

                imageFile.Save(SaveFileDialog.FileName, ImageFormat.Png);
            }
            else
            {
                SaveFileDialog.FileName = MainConversation.File.FileName + "_Page" + MainView.CurrentPage;

                if (SaveFileDialog.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                var imageFile = MainView.PreviewImage;
                imageFile.Save(SaveFileDialog.FileName, ImageFormat.Png);
            }
        }
 private void ResyncMainViewPreview()
 {
     if (MainConversation.File.MessageList.Count > 0)
     {
         MainView.PreviewImage = MainConversation.RenderPreviewBox(MainView.CurrentLine);
     }
 }
        public void SetCurrentMessage()
        {
            MainConversation.MessageIndex = MainView.MsgListIndex;
            Debug.WriteLine(MainConversation.MessageIndex);
            SetCurrentLine();

            MainView.PlayerGender = MainConversation.GetPlayerGenderFromMessageList();
        }
        public void PreviousPage()
        {
            if (MainConversation.File.MessageList.Count <= 0)
            {
                return;
            }

            MainConversation.LineIndex--;
            MainConversation.GetCommandsUpUntilIndex();
            SetCurrentLine();
        }
        public void OnMsgLineChanged()
        {
            try
            {
                MainConversation.File.MessageList[MainConversation.MessageIndex].MessageLines[MainConversation.LineIndex
                ].SpokenText = MainView.CurrentLine;

                //TODO(Robin): Test for null here but count elsewhere, why?
                if (MainConversation.File.MessageList[MainConversation.MessageIndex] != null)
                {
                    MainView.PreviewImage = MainConversation.RenderPreviewBox(MainView.CurrentLine);
                }
            }
            catch
            {
                //TODO(Robin): ???
            }
        }
        public void GoToPage(int page)
        {
            var messageList = MainConversation.File.MessageList;

            if (messageList.Count <= 0)
            {
                return;
            }

            if (page >= messageList[MainConversation.MessageIndex].MessageLines.Count)
            {
                page = messageList[MainConversation.MessageIndex].MessageLines.Count - 1;
            }

            if (page < 0)
            {
                page = 0;
            }

            MainConversation.LineIndex = page;
            MainConversation.GetCommandsUpUntilIndex();
            SetCurrentLine();
        }