126236Swpaul/* 226236Swpaul * Copyright 2013-2014, Stephan A��mus <superstippi@gmx.de>. 326236Swpaul * All rights reserved. Distributed under the terms of the MIT License. 426236Swpaul */ 526236Swpaul 626236Swpaul 726236Swpaul#include "MarkupTextView.h" 826236Swpaul 926236Swpaul 1026236Swpaulstatic const rgb_color kLightBlack = (rgb_color){ 60, 60, 60, 255 }; 1126236Swpaul 1226236Swpaul 1326236SwpaulMarkupTextView::MarkupTextView(const char* name) 1426236Swpaul : 1526236Swpaul TextDocumentView(name) 1626236Swpaul{ 1726236Swpaul SetEditingEnabled(false); 1826236Swpaul CharacterStyle regularStyle; 1926236Swpaul 2026236Swpaul float fontSize = regularStyle.Font().Size(); 2126236Swpaul 2226236Swpaul ParagraphStyle paragraphStyle; 2326236Swpaul paragraphStyle.SetJustify(true); 2426236Swpaul paragraphStyle.SetSpacingTop(ceilf(fontSize * 0.3f)); 2526236Swpaul paragraphStyle.SetLineSpacing(ceilf(fontSize * 0.2f)); 2626236Swpaul 2726236Swpaul fMarkupParser.SetStyles(regularStyle, paragraphStyle); 2826236Swpaul} 2926236Swpaul 3030378Scharnier 3126236Swpaulvoid 3230378ScharnierMarkupTextView::SetText(const BString& markupText) 3326236Swpaul{ 3426236Swpaul SetTextDocument(fMarkupParser.CreateDocumentFromMarkup(markupText)); 3530378Scharnier} 3650479Speter 3730378Scharnier 3826236Swpaulvoid 3926236SwpaulMarkupTextView::SetText(const BString heading, const BString& markupText) 4026236Swpaul{ 4126236Swpaul TextDocumentRef document(new(std::nothrow) TextDocument(), true); 4226236Swpaul 4326236Swpaul Paragraph paragraph(fMarkupParser.HeadingParagraphStyle()); 4426236Swpaul paragraph.Append(TextSpan(heading, 4526236Swpaul fMarkupParser.HeadingCharacterStyle())); 4626236Swpaul document->Append(paragraph); 4726236Swpaul 4826236Swpaul fMarkupParser.AppendMarkup(document, markupText); 4926236Swpaul 5026236Swpaul SetTextDocument(document); 5126236Swpaul} 5226236Swpaul 5326236Swpaul 5426236Swpaulvoid 5526236SwpaulMarkupTextView::SetDisabledText(const BString& text) 5626236Swpaul{ 5726236Swpaul TextDocumentRef document(new(std::nothrow) TextDocument(), true); 5826236Swpaul 5926236Swpaul ParagraphStyle paragraphStyle; 6026236Swpaul paragraphStyle.SetAlignment(ALIGN_CENTER); 6126236Swpaul 6226236Swpaul CharacterStyle disabledStyle(fMarkupParser.NormalCharacterStyle()); 6326236Swpaul disabledStyle.SetForegroundColor(kLightBlack); 6426236Swpaul 6526236Swpaul Paragraph paragraph(paragraphStyle); 6626236Swpaul paragraph.Append(TextSpan(text, disabledStyle)); 6726236Swpaul document->Append(paragraph); 6826236Swpaul 6926236Swpaul SetTextDocument(document); 7026236Swpaul} 7126236Swpaul