[sword-svn] r515 - branches/BCB5
scribe at crosswire.org
scribe at crosswire.org
Sun Jul 19 15:42:58 EDT 2020
Author: scribe
Date: 2020-07-19 15:42:58 -0400 (Sun, 19 Jul 2020)
New Revision: 515
Modified:
branches/BCB5/PrintFrm.cpp
branches/BCB5/swdisprtfchap.cpp
Log:
Modified: branches/BCB5/PrintFrm.cpp
===================================================================
--- branches/BCB5/PrintFrm.cpp 2020-07-19 18:41:42 UTC (rev 514)
+++ branches/BCB5/PrintFrm.cpp 2020-07-19 19:42:58 UTC (rev 515)
@@ -92,6 +92,7 @@
SetDefaultOps();
ShowModal();
+ (void)manager;
}
//---------------------------------------------------------------------------
Modified: branches/BCB5/swdisprtfchap.cpp
===================================================================
--- branches/BCB5/swdisprtfchap.cpp 2020-07-19 18:41:42 UTC (rev 514)
+++ branches/BCB5/swdisprtfchap.cpp 2020-07-19 19:42:58 UTC (rev 515)
@@ -1,228 +1 @@
-
-//---------------------------------------------------------------------------
-#include <vcl\vcl.h>
-#pragma hdrstop
-
-#include "biblecsmgr.h"
-#include "swdisprtfchap.h"
-#include <winbase.h>
-#include <unicodertf.h>
-#include <versekey.h>
-#include <stdio.h>
-
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <io.h>
-#include <utilstr.h>
-
-//using namespace std;
-
-//---------------------------------------------------------------------------
-static inline SWDispRTFChap *ValidCtrCheck()
-{
- return new SWDispRTFChap(NULL);
-}
-
-char SWDispRTFChap::platformID = 0;
-
-class SWDispRTFChap_init {
-public:
- SWDispRTFChap_init() {
- OSVERSIONINFO osvi;
- memset(&osvi, 0, sizeof(OSVERSIONINFO));
- osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
- GetVersionEx(&osvi);
- SWDispRTFChap::platformID = osvi.dwPlatformId;
- }
-} SWDispRTFChap::_init;
-
-
-//---------------------------------------------------------------------------
-__fastcall SWDispRTFChap::SWDispRTFChap(TWinControl *Owner)
- : SWDispRTF(Owner)
-{
-}
-
-__fastcall SWDispRTFChap::~SWDispRTFChap()
-{
-}
-
-
-void __fastcall SWDispRTFChap::Loaded(void)
-{
- SWDispRTF::Loaded();
-}
-
-// Display for biblical text
-char SWDispRTFChap::Display(SWModule &Module) {
- int testmt, book, chap, verse, versepos;
- char buf[254];
- System::AnsiString newtext, tmptext, tmptext2;
-
- static bool hebarLang;
- static char* hebarLanguages[] = {"he", "ar", "fa", "ug", "ur", 0};
-
- VerseKey *key = (VerseKey *)Module.getKey();
- key->setIntros(true);
- testmt = key->getTestament();
- book = key->getBook();
- chap = key->getChapter();
- verse = key->getVerse();
- key->setAutoNormalize(false);
- key->setVerse(0);
- if (chap == 1) {
- key->setChapter(0);
- if (book == 1) {
- key->setBook(0);
- if (testmt == 1) key->setTestament(0);
- }
- }
- key->setAutoNormalize(false);
-
- module = &Module;
- type = "Default";
-
- //Windows of various flavors has odd behavior with Hebrew & Arabic, which are only partially supported as RTL scripts.
- //This snippet determines whether the module is set up to use one of these languages and is tagged as RTL.
- hebarLang = false;
- if (Module.getDirection() == DIRECTION_RTL && Module.getLanguage()) {
- for (unsigned char l = 0; hebarLanguages[l]; l++) {
- if (!strnicmp(Module.getLanguage(), hebarLanguages[l], 2)) { //change the length variable if we ever get any 3-char language codes
- hebarLang = true;
- }
- }
- }
- recalcAppearance();
-
- newtext = RTFHeader;
- newtext = newtext + RTFChapterMarkPre + IntToStr(chap) + RTFChapterMarkPost;
- newtext = newtext + "\\pard\\f0\\nowidctlpar\\cf7 ";
- if (Module.getDirection() == DIRECTION_RTL) {
- newtext = newtext + "\\qr ";
- }
- if (platformID == VER_PLATFORM_WIN32_NT && hebarLang) {
- newtext = newtext + "\\rtlpar ";
- }
-
- Module.popError(); // clear error;
- SWBuf lastEntry = "something the first entry will never be";
- while (((!key->getBook())||(key->getBook() == book)) && ((!key->getChapter())||(key->getChapter() == chap)) && (Module.popError() == 0)) {
- SWBuf rawText = Module.getRawEntry();
-
- // strip off any leading and ending whitespace
- rawText.trim();
-
- if (lastEntry == rawText) {
- Module++;
- continue;
- }
- newtext = newtext + "{";
-
- tmptext = "";
- lastEntry = rawText;
- for (const char *loop = (const char *)Module.renderText(); *loop; loop++) {
- if (*loop == '\n') {
- tmptext += "\\par ";
- }
- else tmptext += *loop;
- }
- if (tmptext.Length() > 3) { // make sure we have an entry
- int pvHeading = 0;
- do {
- sprintf(buf, "%i", pvHeading++);
- SWBuf preverseHeading = module->getEntryAttributes()["Heading"]["Preverse"][buf].c_str();
- preverseHeading = Module.renderText(preverseHeading);
- if (preverseHeading.length()) {
- newtext += ((AnsiString)"\\par\\par {\\i1\\b1 ") + preverseHeading.c_str() + "\\par}";
- }
- else break;
- } while (true);
- if (Module.getDirection() == DIRECTION_RTL && (platformID == VER_PLATFORM_WIN32_WINDOWS || !hebarLang)) {
- newtext = newtext + RTFVersePre;
- if ((key->getVerse() == verse) && (dispAttribs.markCurrentVerse)) {
- newtext = newtext + "\\cf2 "; // \cf2 = second color in color table
- }
- newtext += tmptext + RTFVersePost;
- if (key->getVerse())
- newtext = newtext + RTFVerseMarkPre + /*"<a href=\"\">" +*/ IntToStr(key->getVerse()) /*+ "</a>"*/ + RTFVerseMarkPost;
-
- if (!dispAttribs.verseNewLine)
- newtext = newtext + "\\par ";
- }
- else {
- if (key->getVerse())
- newtext = newtext + RTFVerseMarkPre + /*"<a href=\"\">" +*/ IntToStr(key->getVerse()) /*+ "</a>"*/ + RTFVerseMarkPost;
- newtext = newtext + RTFVersePre;
- if ((key->getVerse() == verse) && (dispAttribs.markCurrentVerse)) {
- newtext = newtext + "\\cf2 "; // \cf2 = second color in color table
- }
- newtext += tmptext + RTFVersePost;
- }
- // check for headings and add a couple new lines, if so.
- if ((!key->getVerse()) || (!key->getChapter()) || (!key->getBook()) || (!key->getTestament())) {
- if (rawText.size())
- newtext = newtext + "\\par\\par";
- }
- // we don't want to add too many newlines if this display option is turned on, so this is in an else.
- else {
- if (dispAttribs.verseNewLine) {
- newtext += "\\par ";
- }
- }
- }
- if (key->getVerse() == verse) {
- tmptext = newtext + RTFTrailer + "}";
- RTFStream->Clear();
- RTFStream->WriteBuffer(tmptext.c_str(), tmptext.Length());
- RTFStream->Position = 0;
- Lines->LoadFromStream(RTFStream);
- makeLinks();
- makeImages();
- versepos = GetTextLen() - 3;
- }
- newtext = newtext + "}";
- Module++;
- }
- newtext = newtext + RTFTrailer;
-
- makeBracketsEven(newtext);
-
- key->setVerse(1); //{ When setting chapter: if (verse !in new chapter range) don't autonormalize. (we could've just turned the autonormalize option off then back on, but this is cooler) }
- key->setChapter(1);
- key->setBook(1);
- key->setTestament(testmt);
- key->setBook(book);
- key->setChapter(chap);
- key->setVerse(verse);
-
- RTFStream->Clear();
- RTFStream->WriteBuffer(newtext.c_str(), newtext.Length());
-// int fd = open("rtfout.txt", O_CREAT|O_RDWR|O_TRUNC, S_IREAD|S_IWRITE);
-// write(fd, newtext.c_str(), newtext.Length());
-// close(fd);
- RTFStream->Position = 0;
- Lines->LoadFromStream(RTFStream);
-
- makeLinks();
- makeImages();
-
- //{ Position control text at current verse }
- this->SetFocus();
- SelStart = 1;
- SendMessage(Handle, EM_SCROLLCARET, 0, 0);
- SelStart = versepos;
- SendMessage(Handle, EM_SCROLLCARET, 0, 0);
- return 0;
-}
-
-
-//---------------------------------------------------------------------------
-namespace Swdisprtfchap
-{
- void __fastcall Register()
- {
- TComponentClass classes[1] = {__classid(SWDispRTFChap)};
- RegisterComponents("SWORD", classes, 0);
- }
-}
-//---------------------------------------------------------------------------
+
\ No newline at end of file
More information about the sword-cvs
mailing list