From 64214d4cce843b0a96e07243f5101933ac5c30f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Mon, 3 Jan 2005 02:04:44 +0000 Subject: [PATCH] Mostly adapted to the refactored RTF classes hierarchy. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10564 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../rtftranslator/RTFTranslator.cpp | 10 +++-- .../translators/rtftranslator/RTFTranslator.h | 1 - .../translators/rtftranslator/convert.cpp | 42 +++++++++---------- .../translators/rtftranslator/convert.h | 4 +- 4 files changed, 30 insertions(+), 27 deletions(-) diff --git a/src/add-ons/translators/rtftranslator/RTFTranslator.cpp b/src/add-ons/translators/rtftranslator/RTFTranslator.cpp index 2b6098bc4b..42bf598387 100644 --- a/src/add-ons/translators/rtftranslator/RTFTranslator.cpp +++ b/src/add-ons/translators/rtftranslator/RTFTranslator.cpp @@ -120,7 +120,9 @@ RTFTranslator::Identify(BPositionIO *stream, if (outType != B_TRANSLATOR_TEXT && outType != B_STYLED_TEXT_FORMAT) return B_NO_TRANSLATOR; - status_t status = RTFHeader::Identify(*stream); + RTF::Parser parser(*stream); + + status_t status = parser.Identify(); if (status != B_OK) return B_NO_TRANSLATOR; @@ -149,8 +151,10 @@ RTFTranslator::Translate(BPositionIO *source, if (outType != B_TRANSLATOR_TEXT && outType != B_STYLED_TEXT_FORMAT) return B_NO_TRANSLATOR; - RTFHeader header; - status_t status = RTFHeader::Parse(*source, header); + RTF::Parser parser(*source); + + RTF::Header header; + status_t status = parser.Parse(header); if (status != B_OK) return status; diff --git a/src/add-ons/translators/rtftranslator/RTFTranslator.h b/src/add-ons/translators/rtftranslator/RTFTranslator.h index 10ba1c63cc..6b88e2619b 100644 --- a/src/add-ons/translators/rtftranslator/RTFTranslator.h +++ b/src/add-ons/translators/rtftranslator/RTFTranslator.h @@ -15,7 +15,6 @@ #include #include #include -#include "BaseTranslator.h" #define RTF_TRANSLATOR_VERSION B_TRANSLATION_MAKE_VER(1, 0, 0) diff --git a/src/add-ons/translators/rtftranslator/convert.cpp b/src/add-ons/translators/rtftranslator/convert.cpp index 17a4f49941..a996e08515 100644 --- a/src/add-ons/translators/rtftranslator/convert.cpp +++ b/src/add-ons/translators/rtftranslator/convert.cpp @@ -52,7 +52,7 @@ AppServerConnection::~AppServerConnection() static size_t -get_text_for_command(RTFCommand *command, char *text, size_t size) +get_text_for_command(RTF::Command *command, char *text, size_t size) { const char *name = command->Name(); @@ -89,23 +89,23 @@ get_style(BList &runs, text_run *run, int32 offset) static text_run_array * -get_text_run_array(RTFHeader &header) +get_text_run_array(RTF::Header &header) { // collect styles - RTFIterator iterator(header, RTF_TEXT); + RTF::Iterator iterator(header, RTF::TEXT_DESTINATION); text_run *current = NULL; int32 offset = 0; BList runs; while (iterator.HasNext()) { - RTFElement *element = iterator.Next(); - if (RTFText *text = dynamic_cast(element)) { - offset += text->TextLength(); + RTF::Element *element = iterator.Next(); + if (RTF::Text *text = dynamic_cast(element)) { + offset += text->Length(); continue; } - RTFCommand *command = dynamic_cast(element); + RTF::Command *command = dynamic_cast(element); if (command == NULL) continue; @@ -149,20 +149,20 @@ get_text_run_array(RTFHeader &header) status_t -write_plain_text(RTFHeader &header, BDataIO &target) +write_plain_text(RTF::Header &header, BDataIO &target) { - RTFIterator iterator(header, RTF_TEXT); + RTF::Iterator iterator(header, RTF::TEXT_DESTINATION); while (iterator.HasNext()) { - RTFElement *element = iterator.Next(); + RTF::Element *element = iterator.Next(); char buffer[1024]; const char *string = NULL; size_t size = 0; - if (RTFText *text = dynamic_cast(element)) { - string = text->Text(); - size = text->TextLength(); - } else if (RTFCommand *command = dynamic_cast(element)) { + if (RTF::Text *text = dynamic_cast(element)) { + string = text->String(); + size = text->Length(); + } else if (RTF::Command *command = dynamic_cast(element)) { size = get_text_for_command(command, buffer, sizeof(buffer)); if (size != 0) string = buffer; @@ -186,18 +186,18 @@ write_plain_text(RTFHeader &header, BDataIO &target) status_t -convert_to_stxt(RTFHeader &header, BDataIO &target) +convert_to_stxt(RTF::Header &header, BDataIO &target) { // count text bytes size_t textSize = 0; - RTFIterator iterator(header, RTF_TEXT); + RTF::Iterator iterator(header, RTF::TEXT_DESTINATION); while (iterator.HasNext()) { - RTFElement *element = iterator.Next(); - if (RTFText *text = dynamic_cast(element)) { - textSize += text->TextLength(); - } else if (RTFCommand *command = dynamic_cast(element)) { + RTF::Element *element = iterator.Next(); + if (RTF::Text *text = dynamic_cast(element)) { + textSize += text->Length(); + } else if (RTF::Command *command = dynamic_cast(element)) { textSize += get_text_for_command(command, NULL, 0); } } @@ -294,7 +294,7 @@ convert_to_stxt(RTFHeader &header, BDataIO &target) status_t -convert_to_plain_text(RTFHeader &header, BPositionIO &target) +convert_to_plain_text(RTF::Header &header, BPositionIO &target) { // put out main text diff --git a/src/add-ons/translators/rtftranslator/convert.h b/src/add-ons/translators/rtftranslator/convert.h index 03e412daa9..de3329ed87 100644 --- a/src/add-ons/translators/rtftranslator/convert.h +++ b/src/add-ons/translators/rtftranslator/convert.h @@ -10,7 +10,7 @@ #include -extern status_t convert_to_stxt(RTFHeader &header, BDataIO &target); -extern status_t convert_to_plain_text(RTFHeader &header, BPositionIO &target); +extern status_t convert_to_stxt(RTF::Header &header, BDataIO &target); +extern status_t convert_to_plain_text(RTF::Header &header, BPositionIO &target); #endif /* CONVERT_H */