void TextDocumentTest::ReadyToRun() { Init(); BRect frame(50.0, 50.0, 749.0, 549.0); BWindow* window = new BWindow(frame, "Text document test", B_TITLED_WINDOW, B_QUIT_ON_WINDOW_CLOSE | B_AUTO_UPDATE_SIZE_LIMITS); TextDocumentView* documentView = new TextDocumentView("text document view"); BScrollView* scrollView = new BScrollView("text scroll view", documentView, false, true, B_NO_BORDER); BuildFontMenu(); BToolBar* toolBar= new BToolBar(); toolBar->AddAction(MENU_FILE_NEW,this,LoadIcon("document_new")); toolBar->AddAction(MENU_FILE_OPEN,this,LoadIcon("document_open")); toolBar->AddAction(MENU_FILE_SAVE,this,LoadIcon("document_save")); toolBar->AddSeparator(); toolBar->AddView(new BButton("StyleList")); toolBar->AddView(fFontMenuField); toolBar->AddView(new BButton("Size")); toolBar->AddSeparator(); toolBar->AddAction(FONTBOLD_MSG,this,LoadIcon("text_bold"),"Bold",NULL,false); toolBar->AddAction(FONTITALIC_MSG,this,LoadIcon("text_italic"),"Bold",NULL,true);; toolBar->AddAction(FONTUNDERLINE_MSG,this,LoadIcon("text_underline"),"Bold",NULL,true);; toolBar->AddSeparator(); /*toolBar->AddView(new BButton("Left")); toolBar->AddView(new BButton("Center")); toolBar->AddView(new BButton("Right")); toolBar->AddView(new BButton("Block")); toolBar->AddSeparator(); toolBar->AddView(new BButton("Inset Right")); toolBar->AddView(new BButton("Inset Left")); toolBar->AddSeparator(); toolBar->AddView(new BButton("Bullet List")); toolBar->AddSeparator();*/ toolBar->AddGlue(); BToolBar* statusBar= new BToolBar(); BFont* tmpFont = new BFont(); BStringView* stringView = new BStringView("firstStatus","Here will be the Status View"); stringView->GetFont(tmpFont); tmpFont->SetSize(tmpFont->Size()-2); stringView->SetFont(tmpFont); statusBar->AddView(stringView); statusBar->AddSeparator(); BLayoutBuilder::Group<>(window, B_VERTICAL,0) .Add(toolBar) .Add(scrollView) .SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNLIMITED)) .Add(statusBar) ; CharacterStyle regularStyle; float fontSize = regularStyle.Font().Size(); ParagraphStyle paragraphStyle; paragraphStyle.SetJustify(true); paragraphStyle.SetSpacingTop(ceilf(fontSize * 0.6f)); paragraphStyle.SetLineSpacing(ceilf(fontSize * 0.2f)); CharacterStyle boldStyle(regularStyle); boldStyle.SetBold(true); CharacterStyle italicStyle(regularStyle); italicStyle.SetItalic(true); CharacterStyle italicAndBoldStyle(boldStyle); italicAndBoldStyle.SetItalic(true); CharacterStyle bigStyle(regularStyle); bigStyle.SetFontSize(24); bigStyle.SetBold(true); bigStyle.SetForegroundColor(255, 50, 50); TextDocumentRef document(new TextDocument(), true); Paragraph paragraph(paragraphStyle); paragraph.Append(TextSpan("This is a", regularStyle)); paragraph.Append(TextSpan(" test ", bigStyle)); paragraph.Append(TextSpan("to see if ", regularStyle)); paragraph.Append(TextSpan("different", boldStyle)); paragraph.Append(TextSpan(" character styles already work.", regularStyle)); document->Append(paragraph); paragraphStyle.SetSpacingTop(8.0f); paragraphStyle.SetAlignment(ALIGN_CENTER); paragraphStyle.SetJustify(false); paragraph = Paragraph(paragraphStyle); paragraph.Append(TextSpan("Different alignment styles ", regularStyle)); paragraph.Append(TextSpan("are", boldStyle)); paragraph.Append(TextSpan(" supported as of now!", regularStyle)); document->Append(paragraph); paragraphStyle.SetAlignment(ALIGN_RIGHT); paragraphStyle.SetJustify(true); paragraph = Paragraph(paragraphStyle); paragraph.Append(TextSpan("I am on the ", regularStyle)); paragraph.Append(TextSpan("Right", boldStyle)); paragraph.Append(TextSpan("Side", italicStyle)); document->Append(paragraph); // Test a bullet list paragraphStyle.SetSpacingTop(8.0f); paragraphStyle.SetAlignment(ALIGN_LEFT); paragraphStyle.SetJustify(true); paragraphStyle.SetBullet(Bullet("->", 12.0f)); paragraphStyle.SetLineInset(10.0f); paragraph = Paragraph(paragraphStyle); paragraph.Append(TextSpan("Even bullet lists are supported.", regularStyle)); document->Append(paragraph); paragraph = Paragraph(paragraphStyle); paragraph.Append(TextSpan("The wrapping in ", regularStyle)); paragraph.Append(TextSpan("this", italicStyle)); paragraph.Append(TextSpan(" bullet item should look visually " "pleasing. And ", regularStyle)); paragraph.Append(TextSpan("why", italicAndBoldStyle)); paragraph.Append(TextSpan(" should it not?", regularStyle)); document->Append(paragraph); /* MarkupParser parser(regularStyle, paragraphStyle); TextDocumentRef document = parser.CreateDocumentFromMarkup( "== Text document test ==\n" "This is a test to see if '''different''' " "character styles already work.\n" "Different alignment styles '''are''' supported as of now!\n" " * Even bullet lists are supported.\n" " * The wrapping in ''this'' bullet item should look visually " "pleasing. And ''why'' should it not?\n" );*/ documentView->SetTextDocument(document); documentView->SetTextEditor(TextEditorRef(new TextEditor(), true)); documentView->MakeFocus(); window->Show(); FontPanel *fPanel = new FontPanel(); fPanel->Show(); }
void TextDocumentTest::ReadyToRun() { BRect frame(50.0, 50.0, 749.0, 549.0); BWindow* window = new BWindow(frame, "Text document test", B_TITLED_WINDOW, B_QUIT_ON_WINDOW_CLOSE | B_AUTO_UPDATE_SIZE_LIMITS); TextDocumentView* documentView = new TextDocumentView("text document view"); BScrollView* scrollView = new BScrollView("text scroll view", documentView, false, true, B_NO_BORDER); BLayoutBuilder::Group<>(window, B_VERTICAL) .Add(scrollView) ; CharacterStyle regularStyle; float fontSize = regularStyle.Font().Size(); ParagraphStyle paragraphStyle; paragraphStyle.SetJustify(true); paragraphStyle.SetSpacingTop(ceilf(fontSize * 0.6f)); paragraphStyle.SetLineSpacing(ceilf(fontSize * 0.2f)); // CharacterStyle boldStyle(regularStyle); // boldStyle.SetBold(true); // // CharacterStyle italicStyle(regularStyle); // italicStyle.SetItalic(true); // // CharacterStyle italicAndBoldStyle(boldStyle); // italicAndBoldStyle.SetItalic(true); // // CharacterStyle bigStyle(regularStyle); // bigStyle.SetFontSize(24); // bigStyle.SetForegroundColor(255, 50, 50); // // TextDocumentRef document(new TextDocument(), true); // // Paragraph paragraph(paragraphStyle); // paragraph.Append(TextSpan("This is a", regularStyle)); // paragraph.Append(TextSpan(" test ", bigStyle)); // paragraph.Append(TextSpan("to see if ", regularStyle)); // paragraph.Append(TextSpan("different", boldStyle)); // paragraph.Append(TextSpan(" character styles already work.", regularStyle)); // document->Append(paragraph); // // paragraphStyle.SetSpacingTop(8.0f); // paragraphStyle.SetAlignment(ALIGN_CENTER); // paragraphStyle.SetJustify(false); // // paragraph = Paragraph(paragraphStyle); // paragraph.Append(TextSpan("Different alignment styles ", regularStyle)); // paragraph.Append(TextSpan("are", boldStyle)); // paragraph.Append(TextSpan(" supported as of now!", regularStyle)); // document->Append(paragraph); // // // Test a bullet list // paragraphStyle.SetSpacingTop(8.0f); // paragraphStyle.SetAlignment(ALIGN_LEFT); // paragraphStyle.SetJustify(true); // paragraphStyle.SetBullet(Bullet("•", 12.0f)); // paragraphStyle.SetLineInset(10.0f); // // paragraph = Paragraph(paragraphStyle); // paragraph.Append(TextSpan("Even bullet lists are supported.", regularStyle)); // document->Append(paragraph); // // paragraph = Paragraph(paragraphStyle); // paragraph.Append(TextSpan("The wrapping in ", regularStyle)); // paragraph.Append(TextSpan("this", italicStyle)); // // paragraph.Append(TextSpan(" bullet item should look visually " // "pleasing. And ", regularStyle)); // paragraph.Append(TextSpan("why", italicAndBoldStyle)); // paragraph.Append(TextSpan(" should it not?", regularStyle)); // document->Append(paragraph); MarkupParser parser(regularStyle, paragraphStyle); TextDocumentRef document = parser.CreateDocumentFromMarkup( "== Text document test ==\n" "This is a test to see if '''different''' " "character styles already work.\n" "Different alignment styles '''are''' supported as of now!\n" " * Even bullet lists are supported.\n" " * The wrapping in ''this'' bullet item should look visually " "pleasing. And ''why'' should it not?\n" ); documentView->SetTextDocument(document); documentView->SetTextEditor(TextEditorRef(new TextEditor(), true)); documentView->MakeFocus(); window->Show(); }