[sword-svn] r512 - in branches/BCB5: . apps/InstallMgr clucene installer

scribe at crosswire.org scribe at crosswire.org
Sun Jul 21 14:05:24 MST 2013


Author: scribe
Date: 2013-07-21 14:05:23 -0700 (Sun, 21 Jul 2013)
New Revision: 512

Modified:
   branches/BCB5/AboutBoxfrm.cpp
   branches/BCB5/AboutBoxfrm.dfm
   branches/BCB5/ModVisFrm.cpp
   branches/BCB5/PrintFrm.cpp
   branches/BCB5/RangeMaintFrm.cpp
   branches/BCB5/RxRichEditX.cpp
   branches/BCB5/TModuleFonts.cpp
   branches/BCB5/apps/InstallMgr/InfoFrm.cpp
   branches/BCB5/apps/InstallMgr/InfoFrm.dfm
   branches/BCB5/apps/InstallMgr/InfoFrm.h
   branches/BCB5/apps/InstallMgr/InstallManager.bpr
   branches/BCB5/apps/InstallMgr/InstallManager.cpp
   branches/BCB5/apps/InstallMgr/InstallManager.res
   branches/BCB5/apps/InstallMgr/MainFrm.cpp
   branches/BCB5/apps/InstallMgr/MainFrm.dfm
   branches/BCB5/apps/InstallMgr/MainFrm.h
   branches/BCB5/apps/InstallMgr/cipherfrm.cpp
   branches/BCB5/apps/InstallMgr/libcurl.bpr
   branches/BCB5/biblecsmgr.cpp
   branches/BCB5/biblecsmgr.h
   branches/BCB5/clucene/clucene.bpr
   branches/BCB5/editentryfrm.cpp
   branches/BCB5/editentryfrm.dfm
   branches/BCB5/installer/setup.nsi
   branches/BCB5/mainfrm.cpp
   branches/BCB5/mainfrm.h
   branches/BCB5/optionfrm.cpp
   branches/BCB5/paraldisp.cpp
   branches/BCB5/searchfrm.cpp
   branches/BCB5/swdisprtf.cpp
   branches/BCB5/swdisprtfchap.cpp
   branches/BCB5/sword.bpr
   branches/BCB5/sword.res
   branches/BCB5/vrslstfrm.cpp
Log:
Latest updates and build against 1.7.0RC

Modified: branches/BCB5/AboutBoxfrm.cpp
===================================================================
--- branches/BCB5/AboutBoxfrm.cpp	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/AboutBoxfrm.cpp	2013-07-21 21:05:23 UTC (rev 512)
@@ -31,11 +31,11 @@
 		newtext += modtypes[i];
 		newtext += " }\\par \\par ";
 		for (it = Form1->mainmgr->Modules.begin(); it != Form1->mainmgr->Modules.end(); it++) {
-			if (!strcmp((*it).second->Type(), modtypes[i])) {
-				it2 = Form1->mainmgr->config->Sections.find((*it).second->Name());
+			if (!strcmp((*it).second->getType(), modtypes[i])) {
+				it2 = Form1->mainmgr->config->Sections.find((*it).second->getName());
 				if (it2 != Form1->mainmgr->config->Sections.end()) {
-					newtext = newtext + "{\\fs24\\cf1\\b " + (*it).second->Name() + " }\t";
-					newtext = newtext + "{\\fs24\\i " + (*it).second->Description() + " } \\par ";
+					newtext = newtext + "{\\fs24\\cf1\\b " + (*it).second->getName() + " }\t";
+					newtext = newtext + "{\\fs24\\i " + (*it).second->getDescription() + " } \\par ";
 					it3 = (*it2).second.find("About");
 					if (it3 != (*it2).second.end()) {
 						SWBuf about = (*it3).second.c_str();

Modified: branches/BCB5/AboutBoxfrm.dfm
===================================================================
(Binary files differ)

Modified: branches/BCB5/ModVisFrm.cpp
===================================================================
--- branches/BCB5/ModVisFrm.cpp	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/ModVisFrm.cpp	2013-07-21 21:05:23 UTC (rev 512)
@@ -32,7 +32,7 @@
           if (module) {
 	     	item = modList->Items->Add();
 	          item->Caption = it->first.c_str();
-	          item->SubItems->Add(module->Description());
+	          item->SubItems->Add(module->getDescription());
 	          item->Checked = (it->second == "true");
           }
      }

Modified: branches/BCB5/PrintFrm.cpp
===================================================================
--- branches/BCB5/PrintFrm.cpp	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/PrintFrm.cpp	2013-07-21 21:05:23 UTC (rev 512)
@@ -111,12 +111,12 @@
 	AnsiString modName;
 
 	for (mods = manager->Modules.begin(); mods != manager->Modules.end(); mods++) {
-		modName = "[" + (AnsiString)mods->second->Name() + "] " + (AnsiString)mods->second->Description();
-		if(!strncmp(mods->second->Type(), "Bibl", 4) && radText->Checked){
+		modName = "[" + (AnsiString)mods->second->getName() + "] " + (AnsiString)mods->second->getDescription();
+		if(!strncmp(mods->second->getType(), "Bibl", 4) && radText->Checked){
 		moduleNames->Add(modName);
-		}else if(!strncmp(mods->second->Type(), "Comm", 4) && radComm->Checked){
+		}else if(!strncmp(mods->second->getType(), "Comm", 4) && radComm->Checked){
 		moduleNames->Add(modName);
-		}else if(!strncmp(mods->second->Type(), "Lexi", 4) && radLD->Checked){
+		}else if(!strncmp(mods->second->getType(), "Lexi", 4) && radLD->Checked){
 		moduleNames->Add(modName);
 		}
 	}
@@ -363,7 +363,7 @@
     if(!radLD->Checked){
 	VerseKey *vk = Form1->getActiveVerseKey();
 	   if (vk) {
-		lstKey = vk->ParseVerseList(editStart->Text.c_str(),*vk, true);
+		lstKey = vk->parseVerseList(editStart->Text.c_str(),*vk, true);
 		rtfPrint->type = "PrintedPage";
 		rtfPrint->RenderModule(module, lstKey);
 		module->setKey(vk);

Modified: branches/BCB5/RangeMaintFrm.cpp
===================================================================
--- branches/BCB5/RangeMaintFrm.cpp	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/RangeMaintFrm.cpp	2013-07-21 21:05:23 UTC (rev 512)
@@ -118,13 +118,13 @@
 {
 	VerseKey key;
 	ListBox2->Clear();
-	ListKey verses = key.ParseVerseList(TextEdit->Text.c_str(), key, true);
-	for (int i = 0; i < verses.Count(); i++) {
-		VerseKey *element = SWDYNAMIC_CAST(VerseKey, verses.GetElement(i));
+	ListKey verses = key.parseVerseList(TextEdit->Text.c_str(), key, true);
+	for (int i = 0; i < verses.getCount(); i++) {
+		VerseKey *element = SWDYNAMIC_CAST(VerseKey, verses.getElement(i));
 		if (element) {
-			ListBox2->Items->Add((SWBuf(element->LowerBound()) + " - " + SWBuf(element->UpperBound())).c_str());
+			ListBox2->Items->Add((SWBuf(element->getLowerBound()) + " - " + SWBuf(element->getUpperBound())).c_str());
 		}
-		else	ListBox2->Items->Add((const char *)*verses.GetElement(i));
+		else	ListBox2->Items->Add((const char *)*verses.getElement(i));
 	}
 }
 //---------------------------------------------------------------------------

Modified: branches/BCB5/RxRichEditX.cpp
===================================================================
--- branches/BCB5/RxRichEditX.cpp	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/RxRichEditX.cpp	2013-07-21 21:05:23 UTC (rev 512)
@@ -69,7 +69,7 @@
 	if(dispAttribs.prChHeadings)
 	    rtfText += ChapterHeading(module, lastChap);
 
-	for (key = TOP; !key.Error() && !module->Error(); key++) {
+	for (key = TOP; !key.popError() && !module->popError(); key++) {
 		module->setKey(key);
 		vkey = dynamic_cast<VerseKey *>(module->getKey());
 		if (vkey && vkey->getBook() != lastBook) {
@@ -96,11 +96,11 @@
 AnsiString TRxRichEditX::PrintEntry(SWModule* module, int nVerse)
 {
 	AnsiString rtfText = "";
-	if (module->Direction() == DIRECTION_RTL) {
+	if (module->getDirection() == DIRECTION_RTL) {
 		rtfText += "\\qr ";
 	}else
 		rtfText += "\\ql ";
-	if (module->Direction() == DIRECTION_RTL && (platformID == WINNT && (!strnicmp(module->Lang(), "he", 2) || !strnicmp(module->Lang(), "ar", 2) || !strnicmp(module->Lang(), "fa", 2)))) {
+	if (module->getDirection() == DIRECTION_RTL && (platformID == WINNT && (!strnicmp(module->getLanguage(), "he", 2) || !strnicmp(module->getLanguage(), "ar", 2) || !strnicmp(module->getLanguage(), "fa", 2)))) {
 		rtfText = rtfText + "\\rtlpar ";
 	}
 
@@ -118,7 +118,7 @@
 		rtfText += " }";
 	}
 	rtfText += (AnsiString)"{\\fs" + (dispAttribs.fontSize * 2) + (AnsiString)" ";
-	rtfText += module->RenderText();
+	rtfText += module->renderText();
 	rtfText += " }";
 	if(dispAttribs.prPostFix)
 	rtfText += (AnsiString)" " + PrintFix(module);
@@ -151,7 +151,7 @@
 {
 	AnsiString rtfText = "";
 	rtfText += (AnsiString)"{\\fs" + (dispAttribs.vsNumFontSize * 2);
-	rtfText += (AnsiString)"(" + (AnsiString)module->KeyText() + (AnsiString)" " + (AnsiString)module->Name() + (AnsiString)")}";
+	rtfText += (AnsiString)"(" + (AnsiString)module->getKeyText() + (AnsiString)" " + (AnsiString)module->getName() + (AnsiString)")}";
 	return rtfText;
 }
 
@@ -307,10 +307,10 @@
 	newtext += RTFHeadMargin;
 //	newtext += "\\pard\\nowidctlpar\\cf7\\f0 ";
 
-	if (module->Direction() == DIRECTION_RTL) {
+	if (module->getDirection() == DIRECTION_RTL) {
 		newtext += "\\qr ";
 	}
-	if (module->Direction() == DIRECTION_RTL && (platformID == WINNT && (!strnicmp(module->Lang(), "he", 2) || !strnicmp(module->Lang(), "ar", 2) || !strnicmp(module->Lang(), "fa", 2)))) {
+	if (module->getDirection() == DIRECTION_RTL && (platformID == WINNT && (!strnicmp(module->getLanguage(), "he", 2) || !strnicmp(module->getLanguage(), "ar", 2) || !strnicmp(module->getLanguage(), "fa", 2)))) {
 		newtext += "\\rtlpar ";
 	}
 
@@ -325,18 +325,18 @@
 	}
 	SWKey *lastKey = 0;
 	bool first = true;
-	SWKey *testKey = module->CreateKey();
+	SWKey *testKey = module->createKey();
 	bool isVerseKeyModule = (SWDYNAMIC_CAST(VerseKey, testKey));
-	while (verses->Count() && !module->Error() && !verses->Error() && newtext.Length() < 40000 ) {
-		module->setKey(*verses);
+	while (verses->getCount() && !module->popError() && !verses->popError() && newtext.Length() < 40000 ) {
+		*module->getKey() = *verses;
 		if (heading) {
 			if (isVerseKeyModule) {
-				if (lastKey != verses->GetElement()) {
+				if (lastKey != verses->getElement()) {
 					if (!first)
 						newtext += "{\\par\\par}";
 					newtext += RTFHeadingPre;
 
-					buf = verses->GetElement()->getRangeText();
+					buf = verses->getElement()->getRangeText();
 					filter.processText(buf, *module, module);
 					newtext += buf.c_str();
 
@@ -351,7 +351,7 @@
 				toupperstr_utf8(buf2, strlen(buf2)*2);
 				module->getRawEntry();
 				char *buf3 = 0;
-				stdstr(&buf3, (const char *)module->KeyText(), 2);
+				stdstr(&buf3, (const char *)module->getKeyText(), 2);
 				toupperstr_utf8(buf3, strlen(buf3)*2);
 				int i;
 				char *start1 = buf3;
@@ -376,7 +376,7 @@
 				if (!i || i < (strlen(start1)/2)) {
 					delete [] buf2;
 					delete [] buf3;
-					verses->Remove();
+					verses->remove();
 					continue;
 				}
 				delete [] buf2;
@@ -385,7 +385,7 @@
 					newtext += "{\\par\\par}";
 				newtext += RTFHeadingPre;
 
-				buf = module->KeyText();
+				buf = module->getKeyText();
 				// VerseKey locales are not yet UTF8, so don't try to convert them.
 //				if (!SWDYNAMIC_CAST(VerseKey, testKey))
 					filter.processText(buf, *module, module);
@@ -400,7 +400,7 @@
 		else {	// hack to make searchlist entries fit in box better
 			newtext += "";
 		}
-		lastKey = verses->GetElement();
+		lastKey = verses->getElement();
 		first = false;
 
 		newtext = newtext + "{";
@@ -408,7 +408,7 @@
 		tmptext = "";
 		// When stripNewlines == true, replace multiple sequences of "newlines" with a single space
 		boolean handleNL = true;
-		for (const char *loop = module->RenderText(); *loop; loop++) {
+		for (const char *loop = module->renderText(); *loop; loop++) {
 			if (stripNewlines) {
 				if (!strnicmp(loop, "\\par", 4)) {
 					loop += (loop[4] == 'd') ? 4 : 3;
@@ -433,17 +433,17 @@
 		}
 
 		if (tmptext.Length() > 3) {	// make sure we have an entry
-			if (module->Direction() == DIRECTION_RTL && (SWDispRTFChap::platformID == WIN9X || (module->Lang() && strnicmp(module->Lang(), "he", 2) && strnicmp(module->Lang(), "ar", 2) && strnicmp(module->Lang(), "fa", 2)))) {
+			if (module->getDirection() == DIRECTION_RTL && (SWDispRTFChap::platformID == WIN9X || (module->getLanguage() && strnicmp(module->getLanguage(), "he", 2) && strnicmp(module->getLanguage(), "ar", 2) && strnicmp(module->getLanguage(), "fa", 2)))) {
 				newtext = newtext + RTFVersePre + tmptext + RTFVersePost;
 				if (verseNum) {
-					int vnum = (isVerseKeyModule) ? ((VerseKey *)module->getKey())->getVerse() : VerseKey(module->KeyText()).getVerse();
+					int vnum = (isVerseKeyModule) ? ((VerseKey *)module->getKey())->getVerse() : VerseKey(module->getKeyText()).getVerse();
 					newtext = newtext + RTFVerseMarkPre + IntToStr(vnum) + RTFVerseMarkPost;
 				}
 				newtext = newtext + "{\\par}";
 			}
 			else {
 				if (verseNum) {
-					int vnum = (isVerseKeyModule) ? ((VerseKey *)module->getKey())->getVerse() : VerseKey(module->KeyText()).getVerse();
+					int vnum = (isVerseKeyModule) ? ((VerseKey *)module->getKey())->getVerse() : VerseKey(module->getKeyText()).getVerse();
 					newtext = newtext + RTFVerseMarkPre + IntToStr(vnum) + RTFVerseMarkPost;
 				}
 				newtext = newtext + RTFVersePre + tmptext + RTFVersePost;
@@ -453,7 +453,7 @@
 		(*verses)++;
 	}
 	delete testKey;
-	module->setKey(origKeyValue);	//remove our persist key
+	*module->getKey() = origKeyValue;
 
 	newtext += RTFTrailer;
 
@@ -831,12 +831,12 @@
 	AnsiString retVal = "Default";
 	if (!strcmp(type.c_str(), "Default")) {
 		if (module) {
-			if (!strcmp(module->Type(), "Biblical Texts"))
+			if (!strcmp(module->getType(), "Biblical Texts"))
 				retVal = "Text";
-			else if ((!strcmp(module->Type(), "Commentaries")) ||
-					(!strcmp(module->Type(), "Generic Books")))
+			else if ((!strcmp(module->getType(), "Commentaries")) ||
+					(!strcmp(module->getType(), "Generic Books")))
 				retVal = "Comment";
-			else if (!strcmp(module->Type(), "Lexicons / Dictionaries"))
+			else if (!strcmp(module->getType(), "Lexicons / Dictionaries"))
 				retVal = "LD";
 		}
 	}

Modified: branches/BCB5/TModuleFonts.cpp
===================================================================
--- branches/BCB5/TModuleFonts.cpp	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/TModuleFonts.cpp	2013-07-21 21:05:23 UTC (rev 512)
@@ -64,21 +64,21 @@
 
 	for (mods = manager->Modules.begin(); mods != manager->Modules.end(); mods++) {
 		for (node = installTree->Items->GetFirstNode(); node; node = node->getNextSibling()) {
-			if (node->Text == _tr(mods->second->Type())) {
+			if (node->Text == _tr(mods->second->getType())) {
 				break;
 			}
 		}
 //	   if (mods->second->isUnicode() || viewAll->Checked){
 			if (!node) {	// Add Section
-				if (!strncmp(mods->second->Type(), "Bibl", 4))	// If Bibles, put first in list
-					node = installTree->Items->AddChildFirst(0, _tr(mods->second->Type()));
-				else	node = installTree->Items->AddChild(0, _tr(mods->second->Type()));
+				if (!strncmp(mods->second->getType(), "Bibl", 4))	// If Bibles, put first in list
+					node = installTree->Items->AddChildFirst(0, _tr(mods->second->getType()));
+				else	node = installTree->Items->AddChild(0, _tr(mods->second->getType()));
 			}
 			nodeName = "[";
-			nodeName += mods->second->Name();
+			nodeName += mods->second->getName();
 			nodeName += "] ";
-			nodeName += mods->second->Description();
-			node = installTree->Items->AddChildObject(node, nodeName.c_str(), mods->second->Name());
+			nodeName += mods->second->getDescription();
+			node = installTree->Items->AddChildObject(node, nodeName.c_str(), (void *)mods->second->getName());
 	   }
 //    }
 	//for (node = installTree->Items->GetFirstNode(); node; node = node->getNextSibling())

Modified: branches/BCB5/apps/InstallMgr/InfoFrm.cpp
===================================================================
--- branches/BCB5/apps/InstallMgr/InfoFrm.cpp	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/apps/InstallMgr/InfoFrm.cpp	2013-07-21 21:05:23 UTC (rev 512)
@@ -32,3 +32,9 @@
 }
 //---------------------------------------------------------------------------
 
+void __fastcall TInfoForm::yesEditKeyPress(TObject *Sender, char &Key)
+{
+	if (Key == 13) SpeedButton1Click(0);	
+}
+//---------------------------------------------------------------------------
+

Modified: branches/BCB5/apps/InstallMgr/InfoFrm.dfm
===================================================================
(Binary files differ)

Modified: branches/BCB5/apps/InstallMgr/InfoFrm.h
===================================================================
--- branches/BCB5/apps/InstallMgr/InfoFrm.h	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/apps/InstallMgr/InfoFrm.h	2013-07-21 21:05:23 UTC (rev 512)
@@ -22,6 +22,7 @@
 	TEdit *yesEdit;
 	void __fastcall FormShow(TObject *Sender);
 	void __fastcall SpeedButton1Click(TObject *Sender);
+	void __fastcall yesEditKeyPress(TObject *Sender, char &Key);
 private:	// User declarations
 public:		// User declarations
 	sword::SWBuf info;

Modified: branches/BCB5/apps/InstallMgr/InstallManager.bpr
===================================================================
--- branches/BCB5/apps/InstallMgr/InstallManager.bpr	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/apps/InstallMgr/InstallManager.bpr	2013-07-21 21:05:23 UTC (rev 512)
@@ -7,7 +7,14 @@
     <OBJFILES value="InstallManager.obj MainFrm.obj StatusFrm.obj RemoteMntFrm.obj InfoFrm.obj 
       cipherfrm.obj UninstallFrm.obj ..\..\swwinlog.obj 
       ..\..\..\sword\src\mgr\installmgr.obj UnsuFrm.obj 
-      ..\..\..\sword\src\mgr\ftplibftpt.obj ..\..\..\sword\src\utilfuns\ftplib.obj"/>
+      ..\..\..\sword\src\mgr\ftplibftpt.obj 
+      ..\..\..\sword\src\utilfuns\ftplib.obj 
+      ..\..\TntUnicodeControls.attic\TntControls.obj 
+      ..\..\TntUnicodeControls.attic\TntStdCtrls.obj 
+      ..\..\TntUnicodeControls.attic\TntSystem.obj 
+      ..\..\TntUnicodeControls.attic\Unicode.obj 
+      ..\..\TntUnicodeControls.attic\TntClasses.obj 
+      ..\..\TntUnicodeControls.attic\TntComCtrls.obj"/>
     <RESFILES value="InstallManager.res"/>
     <IDLFILES value=""/>
     <IDLGENFILES value=""/>
@@ -22,18 +29,18 @@
     <PACKAGES value="vcl50.bpi vclx50.bpi vcljpg50.bpi bcbsmp50.bpi qrpt50.bpi vcldb50.bpi 
       vclbde50.bpi ibsmp50.bpi vcldbx50.bpi teeui50.bpi teedb50.bpi tee50.bpi 
       nmfast50.bpi dclocx50.bpi"/>
-    <PATHCPP value=".;..\..;..\..\..\sword\src\mgr;..\..\..\sword\src\utilfuns"/>
+    <PATHCPP value=".;..\..;..\..\..\sword\src\mgr;..\..\..\sword\src\utilfuns;..\..\TntUnicodeControls.attic"/>
     <PATHPAS value=".;"/>
     <PATHRC value=".;"/>
     <PATHASM value=".;"/>
     <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
     <RELEASELIBPATH value="$(BCB)\lib\release"/>
     <LINKER value="ilink32"/>
-    <USERDEFINES value="VCL;_ICU_;_ICUSWORD_;USBINARY;_DEBUG"/>
+    <USERDEFINES value="VCL;_ICU_;_ICUSWORD_;USBINARY"/>
     <SYSDEFINES value="NO_STRICT"/>
     <MAINSOURCE value="InstallManager.cpp"/>
-    <INCLUDEPATH value="..\..\..\sword\src\utilfuns;curl\lib;..\..\..\sword\src\mgr;..\..;..\..\..\sword\include;curl\include;$(BCB)\include;$(BCB)\include\vcl"/>
-    <LIBPATH value="..\..\..\sword\src\utilfuns;curl\lib;..\..\..\sword\src\mgr;..\..;$(BCB)\lib\obj;$(BCB)\lib"/>
+    <INCLUDEPATH value="..\..\..\sword\src\utilfuns;curl\lib;..\..\..\sword\src\mgr;..\..;..\..\..\sword\include;curl\include;$(BCB)\include;$(BCB)\include\vcl;..\..\TntUnicodeControls.attic"/>
+    <LIBPATH value="..\..\..\sword\src\utilfuns;curl\lib;..\..\..\sword\src\mgr;..\..;$(BCB)\lib\obj;$(BCB)\lib;..\..\TntUnicodeControls.attic"/>
     <WARNINGS value="-w-par -w-8027 -w-8026"/>
     <WARNOPTSTR value=""/>
   </MACROS>
@@ -41,17 +48,17 @@
     <IDLCFLAGS value="-Icurl\lib -I..\..\..\sword\src\mgr -I..\.. -I..\..\..\sword\include 
       -Icurl\include -I$(BCB)\include -I$(BCB)\include\vcl -src_suffix cpp -DVCL 
       -D_ICU_ -D_ICUSWORD_ -DCURLAVAILABLE -DUSBINARY -boa"/>
-    <CFLAG1 value="-vGc -vGt -vGd -Od -H=c:\PROGRA~1\borland\CBUILD~2\lib\vcl50.csm -Hc -Vx 
-      -Ve -RT- -X- -r- -a8 -4 -b- -k -y -v -vi- -c -tW -tWM"/>
-    <PFLAGS value="-$Y+ -$W -$O- -v -JPHNE -M"/>
+    <CFLAG1 value="-O2 -H=c:\PROGRA~1\borland\CBUILD~2\lib\vcl50.csm -Hc -Vx -Ve -RT- -X- -a8 
+      -4 -b- -k- -vi -c -tW -tWM"/>
+    <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
     <RFLAGS value=""/>
-    <AFLAGS value="/mx /w2 /zi"/>
-    <LFLAGS value="-D&quot;&quot; -aa -Tpe -x -Gn -v"/>
+    <AFLAGS value="/mx /w2 /zn"/>
+    <LFLAGS value="-D&quot;&quot; -aa -Tpe -x -Gn"/>
   </OPTIONS>
   <LINKER>
     <ALLOBJ value="c0w32.obj sysinit.obj $(OBJFILES)"/>
     <ALLRES value="$(RESFILES)"/>
-    <ALLLIB value="cg32.lib $(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib"/>
+    <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib"/>
   </LINKER>
   <IDEOPTIONS>
 [Version Info]
@@ -59,8 +66,8 @@
 AutoIncBuild=1
 MajorVer=1
 MinorVer=6
-Release=2
-Build=0
+Release=999
+Build=2
 Debug=0
 PreRelease=0
 Special=0
@@ -72,47 +79,51 @@
 [Version Info Keys]
 CompanyName=CrossWire Bible Society
 FileDescription=SWORD Installation Manager
-FileVersion=1.6.2.0
+FileVersion=1.6.999.2
 InternalName=InstallMgr
-LegalCopyright=Copyright 1990-2010 by CrossWire Bible Society
+LegalCopyright=Copyright 1990-2013 by CrossWire Bible Society
 LegalTrademarks=
 OriginalFilename=
 ProductName=The SWORD Project
-ProductVersion=1.6.2RC1
+ProductVersion=1.7.0RC1
 Comments=Seek Jesus who exchanges temporary for eternal
 
 [HistoryLists\hlIncludePath]
-Count=15
-Item0=..\..\..\sword\src\utilfuns;curl\lib;..\..\..\sword\src\mgr;..\..;..\..\..\sword\include;curl\include;$(BCB)\include;$(BCB)\include\vcl
-Item1=curl\lib;..\..\..\sword\src\mgr;..\..;..\..\..\sword\include;curl\include;$(BCB)\include;$(BCB)\include\vcl
-Item2=curl\lib;..\..\..\sword\src\mgr;..\..;..\..\..\sword\include;$(BCB)\include;$(BCB)\include\vcl
-Item3=curl\lib;..\..\..\sword\src\mgr;..\..\..sword\src\mgr;..\..\.sword\src\mgr;..\..\sword\src\mgr;..\..\swordsrc\mgr;..\..\sworsrc\mgr;..\..\swosrc\mgr;..\..\swsrc\mgr;..\..\ssrc\mgr;..\..\src\mgr;..\src\mgr;..\..\..\src\mgr;..\..\..\mgr;..\..;curl\include;$(BCB)\include;$(BCB)\include\vcl;..\..\..\sword\include
-Item4=..\..\..\sword\src\mgr;..\..\..sword\src\mgr;..\..\.sword\src\mgr;..\..\sword\src\mgr;..\..\swordsrc\mgr;..\..\sworsrc\mgr;..\..\swosrc\mgr;..\..\swsrc\mgr;..\..\ssrc\mgr;..\..\src\mgr;..\src\mgr;..\..\..\src\mgr;..\..\..\mgr;..\..;curl\include;$(BCB)\include;$(BCB)\include\vcl;..\..\..\sword\include
-Item5=curl\include;$(BCB)\include;$(BCB)\include\vcl;..\..\..\sword\include
-Item6=..\..\..\mgr;..\..\..\..\src\mgr;..\..;curl\include;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
-Item7=..\..\..\..\src\mgr;..\..;curl\include;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
-Item8=..\..;curl\include;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
-Item9=curl\include;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
-Item10=..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
-Item11=..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
-Item12=..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+Count=18
+Item0=..\..\..\sword\src\utilfuns;curl\lib;..\..\..\sword\src\mgr;..\..;..\..\..\sword\include;curl\include;$(BCB)\include;$(BCB)\include\vcl;..\..\TntUnicodeControls.attic
+Item1=..\..\..\sword\src\utilfuns;curl\lib;..\..\..\sword\src\mgr;..\..;..\..\..\sword\include;curl\include;$(BCB)\include;$(BCB)\include\vcl;..\..\TntUnicodeControls\Source
+Item2=..\..\..\sword\src\utilfuns;curl\lib;..\..\..\sword\src\mgr;..\..;..\..\..\sword\include;curl\include;$(BCB)\include;$(BCB)\include\vcl;..\..\TntUnicodeControls
+Item3=..\..\..\sword\src\utilfuns;curl\lib;..\..\..\sword\src\mgr;..\..;..\..\..\sword\include;curl\include;$(BCB)\include;$(BCB)\include\vcl
+Item4=curl\lib;..\..\..\sword\src\mgr;..\..;..\..\..\sword\include;curl\include;$(BCB)\include;$(BCB)\include\vcl
+Item5=curl\lib;..\..\..\sword\src\mgr;..\..;..\..\..\sword\include;$(BCB)\include;$(BCB)\include\vcl
+Item6=curl\lib;..\..\..\sword\src\mgr;..\..\..sword\src\mgr;..\..\.sword\src\mgr;..\..\sword\src\mgr;..\..\swordsrc\mgr;..\..\sworsrc\mgr;..\..\swosrc\mgr;..\..\swsrc\mgr;..\..\ssrc\mgr;..\..\src\mgr;..\src\mgr;..\..\..\src\mgr;..\..\..\mgr;..\..;curl\include;$(BCB)\include;$(BCB)\include\vcl;..\..\..\sword\include
+Item7=..\..\..\sword\src\mgr;..\..\..sword\src\mgr;..\..\.sword\src\mgr;..\..\sword\src\mgr;..\..\swordsrc\mgr;..\..\sworsrc\mgr;..\..\swosrc\mgr;..\..\swsrc\mgr;..\..\ssrc\mgr;..\..\src\mgr;..\src\mgr;..\..\..\src\mgr;..\..\..\mgr;..\..;curl\include;$(BCB)\include;$(BCB)\include\vcl;..\..\..\sword\include
+Item8=curl\include;$(BCB)\include;$(BCB)\include\vcl;..\..\..\sword\include
+Item9=..\..\..\mgr;..\..\..\..\src\mgr;..\..;curl\include;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+Item10=..\..\..\..\src\mgr;..\..;curl\include;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+Item11=..\..;curl\include;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+Item12=curl\include;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
 Item13=..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
-Item14=..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+Item14=..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+Item15=..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+Item16=..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
+Item17=..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\include;$(BCB)\include\vcl;..\..\..\..\include
 
 [HistoryLists\hlLibraryPath]
-Count=12
-Item0=..\..\..\sword\src\utilfuns;curl\lib;..\..\..\sword\src\mgr;..\..;$(BCB)\lib\obj;$(BCB)\lib
-Item1=curl\lib;..\..\..\sword\src\mgr;..\..;$(BCB)\lib\obj;$(BCB)\lib
-Item2=curl\lib;..\..\..\sword\src\mgr;..\..\..sword\src\mgr;..\..\.sword\src\mgr;..\..\sword\src\mgr;..\..\swordsrc\mgr;..\..\sworsrc\mgr;..\..\swosrc\mgr;..\..\swsrc\mgr;..\..\ssrc\mgr;..\..\src\mgr;..\src\mgr;..\..\..\src\mgr;..\..\..\mgr;..\..;..\BibleCS;D:\usr\src\sword\apps\windoze\CBuilder4\InstallMgr\;$(BCB)\lib\obj;$(BCB)\lib
-Item3=..\..\..\sword\src\mgr;..\..\..sword\src\mgr;..\..\.sword\src\mgr;..\..\sword\src\mgr;..\..\swordsrc\mgr;..\..\sworsrc\mgr;..\..\swosrc\mgr;..\..\swsrc\mgr;..\..\ssrc\mgr;..\..\src\mgr;..\src\mgr;..\..\..\src\mgr;..\..\..\mgr;..\..;..\BibleCS;D:\usr\src\sword\apps\windoze\CBuilder4\InstallMgr\;$(BCB)\lib\obj;$(BCB)\lib
-Item4=..\..\..\mgr;..\..\..\..\src\mgr;..\..;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib
-Item5=..\..\..\..\src\mgr;..\..;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib
-Item6=..\..;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib
-Item7=..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib
+Count=13
+Item0=..\..\..\sword\src\utilfuns;curl\lib;..\..\..\sword\src\mgr;..\..;$(BCB)\lib\obj;$(BCB)\lib;..\..\TntUnicodeControls.attic
+Item1=..\..\..\sword\src\utilfuns;curl\lib;..\..\..\sword\src\mgr;..\..;$(BCB)\lib\obj;$(BCB)\lib
+Item2=curl\lib;..\..\..\sword\src\mgr;..\..;$(BCB)\lib\obj;$(BCB)\lib
+Item3=curl\lib;..\..\..\sword\src\mgr;..\..\..sword\src\mgr;..\..\.sword\src\mgr;..\..\sword\src\mgr;..\..\swordsrc\mgr;..\..\sworsrc\mgr;..\..\swosrc\mgr;..\..\swsrc\mgr;..\..\ssrc\mgr;..\..\src\mgr;..\src\mgr;..\..\..\src\mgr;..\..\..\mgr;..\..;..\BibleCS;D:\usr\src\sword\apps\windoze\CBuilder4\InstallMgr\;$(BCB)\lib\obj;$(BCB)\lib
+Item4=..\..\..\sword\src\mgr;..\..\..sword\src\mgr;..\..\.sword\src\mgr;..\..\sword\src\mgr;..\..\swordsrc\mgr;..\..\sworsrc\mgr;..\..\swosrc\mgr;..\..\swsrc\mgr;..\..\ssrc\mgr;..\..\src\mgr;..\src\mgr;..\..\..\src\mgr;..\..\..\mgr;..\..;..\BibleCS;D:\usr\src\sword\apps\windoze\CBuilder4\InstallMgr\;$(BCB)\lib\obj;$(BCB)\lib
+Item5=..\..\..\mgr;..\..\..\..\src\mgr;..\..;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib
+Item6=..\..\..\..\src\mgr;..\..;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib
+Item7=..\..;..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib
 Item8=..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib
 Item9=..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib
 Item10=..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib
-Item11=..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib
+Item11=..\BibleCS;..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib
+Item12=..\..\..\..\usr\src\sword\apps\windoze\CBuilder4\InstallMgr;$(BCB)\lib\obj;$(BCB)\lib
 
 [HistoryLists\hlDebugSourcePath]
 Count=1
@@ -120,8 +131,8 @@
 
 [HistoryLists\hlConditionals]
 Count=12
-Item0=VCL;_ICU_;_ICUSWORD_;USBINARY;_DEBUG
-Item1=VCL;_ICU_;_ICUSWORD_;USBINARY
+Item0=VCL;_ICU_;_ICUSWORD_;USBINARY
+Item1=VCL;_ICU_;_ICUSWORD_;USBINARY;_DEBUG
 Item2=VCL;_ICU_;_ICUSWORD_;CURLAVAILABLE;USBINARY;_DEBUG
 Item3=VCL;_ICU_;_ICUSWORD_;CURLAVAILABLE;USBINARY
 Item4=VCL
@@ -154,7 +165,7 @@
 [Compiler]
 ShowInfoMsgs=0
 LinkDebugVcl=0
-LinkCGLIB=1
+LinkCGLIB=0
 
 [Language]
 ActiveLang=

Modified: branches/BCB5/apps/InstallMgr/InstallManager.cpp
===================================================================
--- branches/BCB5/apps/InstallMgr/InstallManager.cpp	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/apps/InstallMgr/InstallManager.cpp	2013-07-21 21:05:23 UTC (rev 512)
@@ -18,6 +18,12 @@
 USEFORM("UnsuFrm.cpp", UnsuForm);
 USEUNIT("..\..\..\sword\src\mgr\ftplibftpt.cpp");
 USEUNIT("..\..\..\sword\src\utilfuns\ftplib.c");
+USEOBJ("..\..\TntUnicodeControls.attic\TntControls.obj");
+USEOBJ("..\..\TntUnicodeControls.attic\TntStdCtrls.obj");
+USEOBJ("..\..\TntUnicodeControls.attic\TntSystem.obj");
+USEOBJ("..\..\TntUnicodeControls.attic\Unicode.obj");
+USEOBJ("..\..\TntUnicodeControls.attic\TntClasses.obj");
+USEOBJ("..\..\TntUnicodeControls.attic\TntComCtrls.obj");
 //---------------------------------------------------------------------------
 WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
 {

Modified: branches/BCB5/apps/InstallMgr/InstallManager.res
===================================================================
(Binary files differ)

Modified: branches/BCB5/apps/InstallMgr/MainFrm.cpp
===================================================================
--- branches/BCB5/apps/InstallMgr/MainFrm.cpp	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/apps/InstallMgr/MainFrm.cpp	2013-07-21 21:05:23 UTC (rev 512)
@@ -25,6 +25,7 @@
 #include <installmgr.h>
 #include <filemgr.h>
 #include <swmodule.h>
+#include <TntSystem.hpp>
 
 TMainForm *MainForm;
 
@@ -123,7 +124,18 @@
      installCnt = 0;
      defSelected = false;
 
+     installTree = new TTntTreeView(this);
+	installTree->Parent = Panel6;
+     installTree->Align = alClient;
+	installTree->Font->Name = "Arial";
 
+     localTree = new TTntTreeView(this);
+     localTree->Parent = TabSheet1;
+     localTree->Align = alClient;
+     localTree->OnDblClick = localTreeDblClick;
+	localTree->Font->Name = "Arial";
+     
+     
      // migrate really old data
 	if (FileMgr::existsFile("./InstallMgr.conf")) {
 		FileMgr::copyFile("./InstallMgr.conf", "installMgr/InstallMgr.conf");
@@ -193,7 +205,7 @@
 
 void TMainForm::addSource(InstallSourceTab *ist) {
 	TTabSheet *newtab = new TTabSheet(this);
-	TTreeView *newtree = new TTreeView(this);
+	TTntTreeView *newtree = new TTntTreeView(this);
 	TSpeedButton *newbutton = new TSpeedButton(this);
 	TPanel *newpanel = new TPanel(this);
 	char buf[512];
@@ -222,6 +234,7 @@
 	newtree->OnDblClick = localTreeDblClick;
 	newtree->Images = ImageList1;
 	newtree->StateImages = ImageList2;
+	newtree->Font->Name = "Arial";
 	fillSourceTree(newtree, ist->is);
 }
 
@@ -258,7 +271,7 @@
 
 void TMainForm::fillInstallTree() {
 	ModMap::iterator mods;
-	TTreeNode *node;
+	TTntTreeNode *node;
 	SWBuf nodeName;
 	
 	installTree->Items->Clear();
@@ -269,20 +282,20 @@
 	installCnt = 0;
 	for (mods = manager->Modules.begin(); mods != manager->Modules.end(); mods++) {
 		for (node = installTree->Items->GetFirstNode(); node; node = node->getNextSibling()) {
-			if (!strcmp(node->Text.c_str(), mods->second->Type())) {
+			if (!strcmp(WideStringToUTF8(node->Text).c_str(), mods->second->getType())) {
 				break;
 			}
 		}
 		if (!node) {	// Add Section
-			if (!strncmp(mods->second->Type(), "Bibl", 4))	// If Bibles, put first in list
-				node = installTree->Items->AddChildFirst(0, mods->second->Type());
-			else	node = installTree->Items->AddChild(0, mods->second->Type());
+			if (!strncmp(mods->second->getType(), "Bibl", 4))	// If Bibles, put first in list
+				node = installTree->Items->AddChildFirst(0, mods->second->getType());
+			else	node = installTree->Items->AddChild(0, mods->second->getType());
 		}
 		nodeName = "[";
-		nodeName += mods->second->Name();
+		nodeName += mods->second->getName();
 		nodeName += "] ";
-		nodeName += mods->second->Description();
-		node = installTree->Items->AddChildObject(node, nodeName.c_str(), mods->second->Name());
+		nodeName += mods->second->getDescription();
+		node = installTree->Items->AddChildObject(node, UTF8ToWideString(nodeName.c_str()), (void *)mods->second->getName());
 		installCnt++;
 	}
 	for (node = installTree->Items->GetFirstNode(); node; node = node->getNextSibling())
@@ -293,13 +306,13 @@
 }
 
 
-void TMainForm::fillSourceTree(TTreeView *tree, InstallSource *is) {
+void TMainForm::fillSourceTree(TTntTreeView *tree, InstallSource *is) {
 	ModMap::iterator mods;
-	TTreeNode *node;
+	TTntTreeNode *node;
 	SectionMap::iterator sections, targetSection;
 	ConfigEntMap::iterator entry;
 	SWBuf secName;
-	const char * modDesc;
+	const char *modDesc;
 	SWBuf nodeName;
 	SWBuf targetVersion;
 	SWBuf sourceVersion;
@@ -340,7 +353,7 @@
 		
 		mods = mgr->Modules.find(sections->first.c_str());
 		if (mods != mgr->Modules.end())
-			secName = mods->second->Type();
+			secName = mods->second->getType();
 		else {
 			secName = "Other";
 		}
@@ -377,19 +390,19 @@
 
 		if (SWVersion(sourceVersion.c_str()) > SWVersion(targetVersion.c_str())) {
 			for (node = tree->Items->GetFirstNode(); node; node = node->getNextSibling()) {
-				if (!strcmp(node->Text.c_str(), secName.c_str())) {
+				if (!strcmp(WideStringToUTF8(node->Text).c_str(), secName.c_str())) {
 					break;
 				}
 			}
 
 			if (!node) {	// Add Section
 				if (!strncmp(secName.c_str(), "Bibl", 4))	// If Bibles, put first in list
-					node = tree->Items->AddChildFirst(0, secName.c_str());
-				else	node = tree->Items->AddChild(0, secName.c_str());
+					node = tree->Items->AddChildFirst(0, UTF8ToWideString(secName.c_str()));
+				else	node = tree->Items->AddChild(0, UTF8ToWideString(secName.c_str()));
 				node->ImageIndex = 0;
 			}
 			nodeName = (SWBuf)"[" + sections->first + "] " + modDesc;
-			node = tree->Items->AddChildObject(node, nodeName.c_str(), (void *) sections->first.c_str());
+			node = tree->Items->AddChildObject(node, UTF8ToWideString(nodeName.c_str()), (void *) sections->first.c_str());
 			if (SWVersion(targetVersion.c_str()) < SWVersion("1.0")) {
 				node->ImageIndex = 1;
 				node->SelectedIndex = 1;
@@ -422,14 +435,14 @@
 
 
 void __fastcall TMainForm::Button5Click(TObject *Sender) {
-	TTreeView *tree;
+	TTntTreeView *tree;
 	for (int i = 0; i < PageControl1->ActivePage->ControlCount; i++) {
-		if (PageControl1->ActivePage->Controls[i]->ClassNameIs("TTreeView")) {
-			tree = (TTreeView*)(PageControl1->ActivePage->Controls[i]);
+		if (PageControl1->ActivePage->Controls[i]->ClassNameIs("TTntTreeView")) {
+			tree = (TTntTreeView *)(PageControl1->ActivePage->Controls[i]);
 			break;
 		}
 	}
-	TTreeNode *node = tree->Selected;
+	TTntTreeNode *node = tree->Selected;
 	if (node) {
 		if (node->Parent) {
 			if (node->ImageIndex == 5) {
@@ -463,9 +476,9 @@
 }
 //---------------------------------------------------------------------------
 
-int TMainForm::selectAll(TTreeView *tree, bool sel) {
-	TTreeNode *node;
-	TTreeNode *node2;
+int TMainForm::selectAll(TTntTreeView *tree, bool sel) {
+	TTntTreeNode *node;
+	TTntTreeNode *node2;
 	int retCount = 0;
 
 	for (node = tree->Items->GetFirstNode(); node; node = node->getNextSibling()) {
@@ -492,10 +505,10 @@
 
 // SELECT ALL
 void __fastcall TMainForm::Button6Click(TObject *Sender) {
-	TTreeView *tree;
+	TTntTreeView *tree;
 	for (int i = 0; i < PageControl1->ActivePage->ControlCount; i++) {
-		if (PageControl1->ActivePage->Controls[i]->ClassNameIs("TTreeView")) {
-			tree = (TTreeView*)(PageControl1->ActivePage->Controls[i]);
+		if (PageControl1->ActivePage->Controls[i]->ClassNameIs("TTntTreeView")) {
+			tree = (TTntTreeView*)(PageControl1->ActivePage->Controls[i]);
 			break;
 		}
 	}
@@ -522,7 +535,7 @@
 
 // REMOVE MODULE
 void __fastcall TMainForm::Button4Click(TObject *Sender) {
-	TTreeNode *node = installTree->Selected;
+	TTntTreeNode *node = installTree->Selected;
 	if (node) {
 		if (node->Parent) {
 			installMgr->removeModule(manager, (const char *)node->Data);
@@ -537,7 +550,7 @@
 
 // INSTALL
 void __fastcall TMainForm::Button2Click(TObject *Sender) {
-	TTreeNode *node;
+	TTntTreeNode *node;
 	int count = 0;
 	int abort = 0;
 
@@ -549,10 +562,10 @@
 	    TCursor oldc;
 	} wait; // show hourglass
 
-	TTreeView *tree;
+	TTntTreeView *tree;
 	for (int i = 0; i < PageControl1->ActivePage->ControlCount; i++) {
-		if (PageControl1->ActivePage->Controls[i]->ClassNameIs("TTreeView")) {
-			tree = (TTreeView*)(PageControl1->ActivePage->Controls[i]);
+		if (PageControl1->ActivePage->Controls[i]->ClassNameIs("TTntTreeView")) {
+			tree = (TTntTreeView *)(PageControl1->ActivePage->Controls[i]);
 			break;
 		}
 	}
@@ -616,7 +629,7 @@
 
 
 void __fastcall TMainForm::SpeedButton5Click(TObject *Sender) {
-	TTreeView *tree;
+	TTntTreeView *tree;
 	InstallSourceTab *ist = 0;
 	SectionMap::iterator module;
 	ConfigEntMap::iterator entry, entryEnd;
@@ -627,7 +640,7 @@
 	}
 	else	tree = localTree;
 		
-	TTreeNode *node = tree->Selected;
+	TTntTreeNode *node = tree->Selected;
 	if (node) {
 		if (node->Parent) {
 			SWMgr *mgr = (ist) ? ist->is->getMgr() : new SWMgr(getLocalDir());
@@ -716,12 +729,12 @@
 	ModMap::iterator it;
 	for (it = mgr->Modules.begin(); it != mgr->Modules.end(); it = mgr->Modules.begin()) {
 		SWBuf label = "Uninstalling: [";
-		label += it->second->Name();
+		label += it->second->getName();
 		label += "] ";
-		label += it->second->Description();
-		UninstallForm->Label1->Caption = label.c_str();
+		label += it->second->getDescription();
+		UninstallForm->Label1->Caption = UTF8ToWideString(label.c_str());
 		UninstallForm->Label1->Repaint();
-		installMgr->removeModule(mgr, it->second->Name());
+		installMgr->removeModule(mgr, it->second->getName());
 		UninstallForm->ProgressBar1->Position = UninstallForm->ProgressBar1->Position + 1;
 		UninstallForm->ProgressBar1->Repaint();
 	}

Modified: branches/BCB5/apps/InstallMgr/MainFrm.dfm
===================================================================
(Binary files differ)

Modified: branches/BCB5/apps/InstallMgr/MainFrm.h
===================================================================
--- branches/BCB5/apps/InstallMgr/MainFrm.h	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/apps/InstallMgr/MainFrm.h	2013-07-21 21:05:23 UTC (rev 512)
@@ -22,6 +22,7 @@
 #include <swversion.h>
 #include <installmgr.h>
 #include <ftptrans.h>
+#include <TntComCtrls.hpp>
 
 using namespace std;
 using namespace sword;
@@ -32,7 +33,7 @@
 	__fastcall InstallSourceTab(TComponent *Owner, InstallSource *is);
 	__fastcall ~InstallSourceTab();
 	InstallSource *is;
-	TTreeView *tree;
+	TTntTreeView *tree;
 };
 
 
@@ -72,11 +73,9 @@
 	TPanel *Panel5;
 	TPageControl *PageControl1;
 	TTabSheet *TabSheet1;
-	TTreeView *localTree;
 	TPanel *Panel8;
 	TPanel *Panel7;
 	TPanel *Panel6;
-	TTreeView *installTree;
 	TTimer *Timer1;
 	TLabel *Label1;
 	TImageList *ImageList1;
@@ -137,15 +136,17 @@
 	__fastcall TMainForm(TComponent* Owner);
 	__fastcall ~TMainForm();
 	void __fastcall RefreshRemoteSource(TObject *Sender);
-	int selectAll(TTreeView *tree, bool sel);
+	int selectAll(TTntTreeView *tree, bool sel);
 	SWBuf dataRootPath;
 	SWMgr *localMgr;
 	WinStatusReporter *statusReporter;
 	InstallMgrWin *installMgr;
 
 protected:
+	TTntTreeView *installTree;
+	TTntTreeView *localTree;
 	virtual void fillInstallTree();
-	virtual void fillSourceTree(TTreeView *tree, InstallSource *is = 0);
+	virtual void fillSourceTree(TTntTreeView *tree, InstallSource *is = 0);
 };
 
 //---------------------------------------------------------------------------

Modified: branches/BCB5/apps/InstallMgr/cipherfrm.cpp
===================================================================
--- branches/BCB5/apps/InstallMgr/cipherfrm.cpp	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/apps/InstallMgr/cipherfrm.cpp	2013-07-21 21:05:23 UTC (rev 512)
@@ -35,10 +35,10 @@
 			SWMgr *mgr = new SWMgr();
 			SWModule *mod = mgr->Modules[modName];
 			mod->setKey("Ipet 2:12");
-			tmpBuf = mod->StripText();
+			tmpBuf = mod->stripText();
 			mod->setKey("gen 1:10");
 			tmpBuf += "\r\n\r\n";
-			tmpBuf += mod->StripText();
+			tmpBuf += mod->stripText();
 			Memo1->Text = tmpBuf.c_str();
 			delete mgr;
 		}

Modified: branches/BCB5/apps/InstallMgr/libcurl.bpr
===================================================================
--- branches/BCB5/apps/InstallMgr/libcurl.bpr	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/apps/InstallMgr/libcurl.bpr	2013-07-21 21:05:23 UTC (rev 512)
@@ -31,7 +31,7 @@
     <PATHRC value=".;"/>
     <PATHASM value=".;"/>
     <LINKER value="TLib"/>
-    <USERDEFINES value="_DEBUG"/>
+    <USERDEFINES value=""/>
     <SYSDEFINES value="_RTLDLL;NO_STRICT"/>
     <MAINSOURCE value="libcurl.bpf"/>
     <INCLUDEPATH value="curl\curlcpp;curl\lib;curl\include;$(BCB)\include;$(BCB)\include\vcl"/>
@@ -42,10 +42,9 @@
   <OPTIONS>
     <IDLCFLAGS value="-Icurl\curlcpp -Icurl\lib -Icurl\include -I$(BCB)\include 
       -I$(BCB)\include\vcl -src_suffix cpp -boa"/>
-    <CFLAG1 value="-vGc -vGt -vGd -Od -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -r- -a8 -4 -b- 
-      -k -y -v -vi- -c -tW -tWM"/>
-    <PFLAGS value="-$Y+ -$W -$O- -v -JPHNE -M"/>
-    <AFLAGS value="/mx /w2 /zi"/>
+    <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -a8 -4 -b- -k- -vi -c -tW -tWM"/>
+    <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
+    <AFLAGS value="/mx /w2 /zn"/>
     <LFLAGS value="/P32"/>
   </OPTIONS>
   <LINKER>
@@ -120,7 +119,7 @@
 [Compiler]
 ShowInfoMsgs=0
 LinkDebugVcl=0
-LinkCGLIB=1
+LinkCGLIB=0
 
 [Language]
 ActiveLang=

Modified: branches/BCB5/biblecsmgr.cpp
===================================================================
--- branches/BCB5/biblecsmgr.cpp	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/biblecsmgr.cpp	2013-07-21 21:05:23 UTC (rev 512)
@@ -54,13 +54,13 @@
 
 	lang = ((entry = section.find("Lang")) != section.end()) ? (*entry).second : (SWBuf)"en";
 
-	   if (module->Direction() == DIRECTION_RTL) {
+	   if (module->getDirection() == DIRECTION_RTL) {
 #ifdef _ICU_
 //                if (!strnicmp(lang.c_str(), "ar", 2)) {
 //                        module->AddRenderFilter(arshaping);
 //                }
 			 if (platformID == WIN9X || (strnicmp(lang.c_str(), "he", 2) && strnicmp(lang.c_str(), "ar", 2) && strnicmp(lang.c_str(), "fa", 2))) {
-				    module->AddRenderFilter(bidireorder);
+				    module->addRenderFilter(bidireorder);
 
 			 }
 #endif

Modified: branches/BCB5/biblecsmgr.h
===================================================================
--- branches/BCB5/biblecsmgr.h	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/biblecsmgr.h	2013-07-21 21:05:23 UTC (rev 512)
@@ -21,8 +21,8 @@
 protected:
 	virtual char AddModToConfig(FileDesc *conffd, const char *fname);
 	virtual void AddRenderFilters(SWModule *module, ConfigEntMap &section);
-	   virtual signed char Load ();
-	   virtual void AddGlobalOptions (SWModule * module, ConfigEntMap & section,
+	   virtual signed char Load();
+	   virtual void AddGlobalOptions(SWModule * module, ConfigEntMap & section,
 								ConfigEntMap::iterator start,
 								ConfigEntMap::iterator end);
 

Modified: branches/BCB5/clucene/clucene.bpr
===================================================================
--- branches/BCB5/clucene/clucene.bpr	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/clucene/clucene.bpr	2013-07-21 21:05:23 UTC (rev 512)
@@ -18,7 +18,7 @@
     <PATHRC value=".;"/>
     <PATHASM value=".;"/>
     <LINKER value="TLib"/>
-    <USERDEFINES value="MAX_PATH=256;UNICODE;_WIN32;_CL_DISABLE_MULTITHREADING;LUCENE_ENABLE_REFCOUNT;_DEBUG"/>
+    <USERDEFINES value="MAX_PATH=256;UNICODE;_WIN32;_CL_DISABLE_MULTITHREADING;LUCENE_ENABLE_REFCOUNT"/>
     <SYSDEFINES value="_RTLDLL;NO_STRICT"/>
     <MAINSOURCE value="clucene.bpf"/>
     <INCLUDEPATH value="src\CLucene;src;$(BCB)\include;$(BCB)\include\vcl"/>
@@ -30,9 +30,9 @@
     <IDLCFLAGS value="-Isrc\CLucene -Isrc -I$(BCB)\include -I$(BCB)\include\vcl -src_suffix cpp 
       -DMAX_PATH=256 -DUNICODE -D_WIN32 -D_CL_DISABLE_MULTITHREADING 
       -DLUCENE_ENABLE_REFCOUNT -boa"/>
-    <CFLAG1 value="-Od -Q -w- -Vx -VF -X- -r- -a8 -4 -b- -k -y -v -vi- -c -tW -tWM"/>
-    <PFLAGS value="-$Y+ -$W -$O- -v -JPHNE -M"/>
-    <AFLAGS value="/mx /w2 /zi"/>
+    <CFLAG1 value="-O2 -Q -w- -Vx -VF -X- -a8 -4 -b- -k- -vi -c -tW -tWM"/>
+    <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
+    <AFLAGS value="/mx /w2 /zn"/>
     <LFLAGS value="/P256"/>
   </OPTIONS>
   <LINKER>
@@ -96,8 +96,8 @@
 
 [HistoryLists\hlConditionals]
 Count=17
-Item0=MAX_PATH=256;UNICODE;_WIN32;_CL_DISABLE_MULTITHREADING;LUCENE_ENABLE_REFCOUNT;_DEBUG
-Item1=MAX_PATH=256;UNICODE;_WIN32;_CL_DISABLE_MULTITHREADING;LUCENE_ENABLE_REFCOUNT
+Item0=MAX_PATH=256;UNICODE;_WIN32;_CL_DISABLE_MULTITHREADING;LUCENE_ENABLE_REFCOUNT
+Item1=MAX_PATH=256;UNICODE;_WIN32;_CL_DISABLE_MULTITHREADING;LUCENE_ENABLE_REFCOUNT;_DEBUG
 Item2=MAX_PATH=256;UNICODE;_WIN32;_CL_DISABLE_MULTITHREADING
 Item3=MAX_PATH=256;UNICODE;_WIN32;_CL_DISABLE_MULTITHREADING;_DEBUG
 Item4=UNICODE;_WIN32;_CL_DISABLE_MULTITHREADING

Modified: branches/BCB5/editentryfrm.cpp
===================================================================
--- branches/BCB5/editentryfrm.cpp	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/editentryfrm.cpp	2013-07-21 21:05:23 UTC (rev 512)
@@ -269,7 +269,7 @@
 	if (Module) {
 		TMemoryStream *RTFStream = new TMemoryStream();
 		newtext = RTFDisplay->RTFHeader;
-		Module->Error(); // clear error;
+		Module->popError(); // clear error;
 		newtext = newtext + "\\pard \\nowidctlpar \\cf0 ";
 		(const char *)*Module;	// force key to snap to entry before pulling out the text of the key
 		tmptext = Module->getRawEntry();

Modified: branches/BCB5/editentryfrm.dfm
===================================================================
(Binary files differ)

Modified: branches/BCB5/installer/setup.nsi
===================================================================
--- branches/BCB5/installer/setup.nsi	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/installer/setup.nsi	2013-07-21 21:05:23 UTC (rev 512)
@@ -4,7 +4,7 @@
 Name "The SWORD Project for Windows"
 # Defines
 !define REGKEY "SOFTWARE\$(^Name)"
-!define VERSION 1.5.8
+!define VERSION 1.7.0
 !define COMPANY "CrossWire Bible Society"
 !define URL http://crosswire.org
 
@@ -66,12 +66,13 @@
 Section -Main SEC0000
     SetOutPath $INSTDIR
     SetOverwrite on
-    File ..\stage\icudt28l.dll
+    File ..\stage\icudt42.dll
+    File ..\stage\libmng.dll
     File ..\stage\layout.conf
     File ..\stage\options.conf
     File ..\stage\readme.txt
     File ..\stage\sword.exe
-    File ..\apps\InstallMgr\InstallManager.exe
+    File ..\stage\InstallManager.exe
     SetOutPath $INSTDIR\installMgr
     File /r ..\apps\InstallMgr\installMgr\*
     SetOutPath $INSTDIR\bookmarks
@@ -80,11 +81,8 @@
     File ..\stage\help\*
     SetOutPath $INSTDIR\colors
     File ..\stage\colors\*
-    SetOutPath $INSTDIR\mods.d
-    File /r ..\stage\mods.d\*
     SetOutPath $INSTDIR\uilocales.d
     File /r ..\stage\uilocales.d\*
-    File /r ..\stage\uilocales.d\*
     WriteRegStr HKLM "${REGKEY}\Components" Main 1
 SectionEnd
 

Modified: branches/BCB5/mainfrm.cpp
===================================================================
--- branches/BCB5/mainfrm.cpp	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/mainfrm.cpp	2013-07-21 21:05:23 UTC (rev 512)
@@ -50,15 +50,15 @@
 TForm1 *Form1;
 //---------------------------------------------------------------------------
 
-char RTFVerseKeyDisp::Display(SWModule &imodule) {
-	SWKey *k = imodule.getKey();
-	VerseKey *vk = SWDYNAMIC_CAST(VerseKey, k);
-        VerseKey *last = Form1->getActiveVerseKey(false);
-        if (vk != last) {
-        	if (last) vk->positionFrom(*last);
-               	Form1->fillVKeySelector(vk);
-	}
-	return RTFDisp::Display(imodule);
+char RTFVerseKeyDisp::display(SWModule &imodule) {
+     SWKey *k = imodule.getKey();
+     VerseKey *vk = SWDYNAMIC_CAST(VerseKey, k);
+     VerseKey *last = Form1->getActiveVerseKey(false);
+     if (vk != last) {
+          if (last) vk->positionFrom(*last);
+          Form1->fillVKeySelector(vk);
+     }
+	return RTFDisp::display(imodule);
 }
 
 /*
@@ -210,8 +210,8 @@
 	char buf[1024];
 	SectionMap::iterator sit;
 
-	newtab->Caption = mod->Name();
-	newtab->Hint = mod->Description();
+	newtab->Caption = mod->getName();
+	newtab->Hint = mod->getDescription();
 	newtab->ParentShowHint = true;
 	newtab->PageControl = TextPageControl;
 	newrtf->Parent = newtab;
@@ -221,13 +221,13 @@
 	newrtf->PopupMenu = PopupMenu2;
 	newrtf->OnMouseDown = RTFMouseDown;
 	newrtf->OnURLClick = RTFURLClick;
-	newrtf->Name = String("TextRTF")+mod->Name();
+	newrtf->Name = String("TextRTF")+mod->getName();
 
 	newrtf->module = mod;
 	newrtf->recalcAppearance();
 
 	SWDisplay *disp = new RTFVerseKeyDisp(newrtf);
-	mod->Disp(disp);
+	mod->setDisplay(disp);
 	displays.insert(displays.begin(), disp);
 
 	return 0;
@@ -271,17 +271,17 @@
 	char buf[1024];
 	SectionMap::iterator sit;
 
-	newtab->Caption = mod->Name();
-	newtab->Hint = mod->Description();
+	newtab->Caption = mod->getName();
+	newtab->Hint = mod->getDescription();
 	newtab->ParentShowHint = true;
 	newtab->PageControl = CommentaryPageControl;
 
-	if ((*mainmgr->config->Sections[mod->Name()].find("ModDrv")).second == "HREFCom") {
-//		if (mainmgr->config->Sections[mod->Name()]["External"] == "1") {
+	if ((*mainmgr->config->Sections[mod->getName()].find("ModDrv")).second == "HREFCom") {
+//		if (mainmgr->config->Sections[mod->getName()]["External"] == "1") {
 			newrtf = new TPanel(this);
 			((TPanel *)newrtf)->Caption = "Syncronizing to External Viewer";
 			SWDisplay *disp = new DispExternal();
-			mod->Disp(*displays.insert(displays.begin(), disp));
+			mod->setDisplay(*displays.insert(displays.begin(), disp));
 			newrtf->Parent = newtab;
 /*
 		}
@@ -306,10 +306,10 @@
 		newrtf = new SWDispRTF(this);
 
 		SWDisplay *disp = new RTFVerseKeyDisp((SWDispRTF *)newrtf);
-		mod->Disp(*displays.insert(displays.begin(), disp));
+		mod->setDisplay(*displays.insert(displays.begin(), disp));
 		((SWDispRTF *)newrtf)->ScrollBars = Stdctrls::ssBoth;
 		((SWDispRTF *)newrtf)->ReadOnly = true;
-		((SWDispRTF *)newrtf)->Name = String("CommentRTF")+mod->Name();
+		((SWDispRTF *)newrtf)->Name = String("CommentRTF")+mod->getName();
 
 		if (!strcmp(mod->getConfigEntry("ModDrv"), "RawFiles") ||
 			((mod->getConfigEntry("Writable")) && (!strcmp(mod->getConfigEntry("Writable"), "true")))) {
@@ -334,8 +334,8 @@
 	SectionMap::iterator sit;
 	char buf[1024];
 
-	newtab->Caption = mod->Name();
-	newtab->Hint = mod->Description();
+	newtab->Caption = mod->getName();
+	newtab->Hint = mod->getDescription();
 	newtab->ParentShowHint = true;
 	newtab->PageControl = LexDictPageControl;
 
@@ -343,7 +343,7 @@
 	newrtf->Align = alClient;
 	newrtf->ScrollBars = Stdctrls::ssBoth;
 	newrtf->ReadOnly = true;
-	newrtf->Name = String("LexDictRTF")+mod->Name();
+	newrtf->Name = String("LexDictRTF")+mod->getName();
 	newrtf->PopupMenu = PopupMenu2;
 	newrtf->OnMouseDown = RTFMouseDown;
 	newrtf->OnURLClick = RTFURLClick;		
@@ -351,8 +351,8 @@
 	newrtf->recalcAppearance();
 
 	SWDisplay *disp = new RTFDisp(newrtf);
-	mod->Disp(*displays.insert(displays.begin(), disp));
-	mod->setKey(*DefaultStrKey);
+	mod->setDisplay(*displays.insert(displays.begin(), disp));
+	mod->setKey(DefaultStrKey);
 	return 0;
 }
 //---------------------------------------------------------------------------
@@ -363,9 +363,9 @@
 		SWModule *module = mainmgr->getModule(CommentaryPageControl->ActivePage->Caption.c_str());
 		if (module) {
 			((TreeKeyIdx *)module->getKey())->setOffset((long)Node->Data);
-			module->Display();
+			module->display();
 			if (logmodstate)
-				modstates.insert(modstates.begin(), new ModState(CommentaryPageControl, CommentaryPageControl->ActivePage, module->KeyText()));
+				modstates.insert(modstates.begin(), new ModState(CommentaryPageControl, CommentaryPageControl->ActivePage, module->getKeyText()));
 		}
 	}
 }
@@ -378,8 +378,8 @@
 	SectionMap::iterator sit;
 	TTreeView *toc = new TTreeView(this);
 
-	newtab->Caption = mod->Name();
-	newtab->Hint = mod->Description();
+	newtab->Caption = mod->getName();
+	newtab->Hint = mod->getDescription();
 	newtab->ParentShowHint = true;
 	newtab->PageControl = CommentaryPageControl;
 
@@ -394,13 +394,13 @@
 
 	newrtf = new SWDispRTF(this);
 	SWDisplay *disp = new RTFBookDisp((SWDispRTF *)newrtf, toc);
-	mod->Disp(*displays.insert(displays.begin(), disp));
+	mod->setDisplay(*displays.insert(displays.begin(), disp));
 	((SWDispRTF *)newrtf)->ScrollBars = Stdctrls::ssBoth;
 	((SWDispRTF *)newrtf)->ReadOnly = true;
 
 	((SWDispRTF *)newrtf)->PopupMenu = PopupMenu2;
 	((SWDispRTF *)newrtf)->OnMouseDown = RTFMouseDown;
-	newrtf->Name = String("BookRTF")+mod->Name();
+	newrtf->Name = String("BookRTF")+mod->getName();
 	newrtf->Parent = newtab;
 	newrtf->Align = alClient;
 	((SWDispRTF *)newrtf)->OnURLClick = RTFURLClick;
@@ -422,16 +422,23 @@
 	if (mainmgr) {
 		SWModule *module = mainmgr->getModule(pc->ActivePage->Caption.c_str());
 		if (pc->ActivePage->Caption == "PARALLEL") {
+               VerseKey *last = Form1->getActiveVerseKey(false);
+			module = parallelDisp->getModules()[0];
+               
+               if (last && module) {
+               	module->getKey()->positionFrom(*last);
+	               Form1->fillVKeySelector((VerseKey *)module->getKey());
+               }
 			parallelDisp->Display();
 			pc->Hint = "PARALLEL";
 			if (logmodstate)
 				modstates.insert(modstates.begin(), new ModState(pc, pc->ActivePage, (module)?module->getKeyText():"John.3.16"));
 		}
 		else if (module) {
-			module->Display();
-			pc->Hint = module->Description();
+			module->display();
+			pc->Hint = module->getDescription();
 			if (logmodstate)
-				modstates.insert(modstates.begin(), new ModState(pc, pc->ActivePage, module->KeyText()));
+				modstates.insert(modstates.begin(), new ModState(pc, pc->ActivePage, module->getKeyText()));
 			if (pc == LexDictPageControl)
 				FillDictKeys();
 		}
@@ -461,20 +468,21 @@
 }
 
 
-VerseKey *TForm1::getActiveVerseKey(bool checkFocusChange) {
+VerseKey *TForm1::getActiveVerseKey(bool checkFocusChange, SWModule *focusedModule) {
 
 	static VerseKey stupidKJVDefault;
 	static SWModule *lastVKMod = 0;
+	SWModule *module = focusedModule;
 	if (checkFocusChange) {
-		SWModule *module = getFocusedModule();
-		if (module) {
-			SWKey *key = module->getKey();
-			VerseKey *vk = SWDYNAMIC_CAST(VerseKey, key);
-			if (vk) {
-				lastVKMod = module;
-			}
-		}
-	}
+		module = getFocusedModule();
+     }
+     if (module) {
+          SWKey *key = module->getKey();
+          VerseKey *vk = SWDYNAMIC_CAST(VerseKey, key);
+          if (vk) {
+               lastVKMod = module;
+          }
+     }
 	return (lastVKMod) ? (VerseKey *)lastVKMod->getKey() : &stupidKJVDefault;
 }
 
@@ -484,8 +492,8 @@
 	if (!vk) vk = getActiveVerseKey();
 	   if (vk) {
 		cbBook->ItemIndex = cbBook->Items->IndexOf(UTF8ToWideString(vk->getBookName()));
-		CHBox->Text  = vk->Chapter();
-		VSBox->Text  = vk->Verse();
+		CHBox->Text  = vk->getChapter();
+		VSBox->Text  = vk->getVerse();
 		freeHandLookup->Text = UTF8ToWideString(vk->getText());
 		RefreshActiveSheet(TextPageControl);
 		logmodstate = false;		// only log state once
@@ -500,7 +508,7 @@
 	VerseKey *vk = getActiveVerseKey();
 	   if (vk) {
 		if (!(StrToInt(CHBox->Text)) || (!StrToInt(VSBox->Text)))
-			vk->AutoNormalize(0);
+			vk->setAutoNormalize(false);
 
 		if (StrToInt(CHBox->Text) < 0)
 			CHBox->Text = StrToInt(CHBox->Text) + 1;
@@ -520,7 +528,7 @@
 				 *vk = MAXVERSE;
 		   }
 		TextKeyChanged();
-		vk->AutoNormalize(1);
+		vk->setAutoNormalize(true);
 	}
 }
 //---------------------------------------------------------------------------
@@ -550,7 +558,7 @@
 	if (mainmgr) {
 		SWModule *module = mainmgr->getModule(LexDictPageControl->ActivePage->Caption.c_str());
 		if (module) {
-			RTFDisp *disp = SWDYNAMIC_CAST(RTFDisp, module->Disp());
+			RTFDisp *disp = SWDYNAMIC_CAST(RTFDisp, module->getDisplay());
 			if (disp) {
 				SWDispRTF *rtfDisp = (SWDispRTF*) disp->editControl();
 				rtfDisp->recalcAppearance();
@@ -563,19 +571,19 @@
 				DictKeyEdit->Font->Size = rtfDisp->dispAttribs.fontSize;
 			}
 
-			module->KeyText(); // snap to entry
-			saveKey = module->KeyText();
+			module->getKeyText(); // snap to entry
+			saveKey = module->getKeyText();
 			int count = lbDictKeys->Height / lbDictKeys->ItemHeight;
 			lbDictKeys->Items->Clear();
 			for (int i = 0; i < (count / 2); i++)
 				(*module)++;
 			for (int i = 0; i < count-1; i++)
 				(*module)--;
-			module->Error();
-			for (;!module->Error() && count;count--,(*module)++) {
-				lbDictKeys->Items->Add(UTF8ToWideString(module->KeyText()));
+			module->popError();
+			for (;!module->popError() && count;count--,(*module)++) {
+				lbDictKeys->Items->Add(UTF8ToWideString(module->getKeyText()));
 				//lbDictKeys->Items->Add(module->KeyText());
-				if (saveKey == module->Key())
+				if (saveKey == *module->getKey())
 					index = lbDictKeys->Items->Count-1;
 			}
 			lbDictKeys->ItemIndex = index;
@@ -702,7 +710,7 @@
 		lookupKey = TrimJunk(lookupKey);
 		String curLex = LexDictPageControl->ActivePage->Caption;
                 VerseKey *vk = getActiveVerseKey();
-		String feature = (vk && (vk->Testament() == 1))?"Hebrew":"Greek";
+		String feature = (vk && (vk->getTestament() == 1))?"Hebrew":"Greek";
 		feature += (preChar == '(')?"Parse":"Def";
 		if (!strncmp(rtf->Name.c_str(), "TextRTFLXX", 10))
 			feature = "GreekDef";
@@ -782,20 +790,20 @@
 
 void TForm1::fillVKeySelector(VerseKey *vk) {
 	VerseKey *myVk = (VerseKey *)vk->clone();
-	myVk->AutoNormalize(1);
-	myVk->Headings(0);
-	myVk->Error();	//clear error
+	myVk->setAutoNormalize(true);
+	myVk->setIntros(false);
+	myVk->popError();	//clear error
 	(*myVk) = TOP;
 	cbBook->Clear();
-	while (!myVk->Error()) {
+	while (!myVk->popError()) {
 		AnsiString s1 = myVk->getBookName();
 		cbBook->Items->Add(UTF8ToWideString(s1));
-		myVk->Book(myVk->Book() + 1);
+		myVk->setBook(myVk->getBook() + 1);
 	}
 	delete myVk;
 	cbBook->ItemIndex = cbBook->Items->IndexOf(UTF8ToWideString(vk->getBookName()));
-	CHBox->Text  = vk->Chapter();
-	VSBox->Text  = vk->Verse();
+	CHBox->Text  = vk->getChapter();
+	VSBox->Text  = vk->getVerse();
 }
 
 
@@ -1073,7 +1081,7 @@
 	PreviewForm->btnPrint->Caption = _tr("Print");
 	PreviewForm->btnClose->Caption = _tr("&Close");
 
-	updateModuleOptions(Options2);
+	updateModuleOptions(Options2, 1, false);
 	
 	delete UIFont;
 	
@@ -1136,7 +1144,7 @@
 
        	DefaultStrKey = new StrKey();
 
-	DefaultStrKey->Persist(1);
+	DefaultStrKey->setPersist(true);
 	*DefaultStrKey = "";
 
 
@@ -1165,7 +1173,7 @@
 		}
 
 		// leave out enciphered texts with no key
-		if ((sit = mainmgr->config->Sections.find((*it).second->Name())) != mainmgr->config->Sections.end()) {
+		if ((sit = mainmgr->config->Sections.find((*it).second->getName())) != mainmgr->config->Sections.end()) {
 			if ((eit = (*sit).second.find("CipherKey")) != (*sit).second.end()) {
 				const char *cipherKey = (char *)(*eit).second.c_str();
 				if (strlen(cipherKey) < 1)
@@ -1175,35 +1183,35 @@
 			for (eit = (*sit).second.lower_bound("Feature"), eitend = (*sit).second.upper_bound("Feature"); eit != eitend; eit++) {
 				const char *feature = eit->second.c_str();
 				if (!::stricmp(feature, "StrongsNumbers")) {
-					Optionsfrm->strongsNumsCB->Items->AddObject(it->second->Description(), (TObject *)it->second->Name());
+					Optionsfrm->strongsNumsCB->Items->AddObject(it->second->getDescription(), (TObject *)it->second->getName());
 					if (optionsconf->Sections["ModDefaults"].find("StrongsNumbers") == optionsconf->Sections["ModDefaults"].end())
-						(*optionsconf)["ModDefaults"]["StrongsNumbers"] = it->second->Name();
+						(*optionsconf)["ModDefaults"]["StrongsNumbers"] = it->second->getName();
 				}
 				if (!::stricmp(feature, "GreekDef")) {
-					Optionsfrm->greekDefCB->Items->AddObject(it->second->Description(), (TObject *)it->second->Name());
+					Optionsfrm->greekDefCB->Items->AddObject(it->second->getDescription(), (TObject *)it->second->getName());
 					if (optionsconf->Sections["ModDefaults"].find("GreekDef") == optionsconf->Sections["ModDefaults"].end())
-						(*optionsconf)["ModDefaults"]["GreekDef"] = it->second->Name();
+						(*optionsconf)["ModDefaults"]["GreekDef"] = it->second->getName();
 				}
 				if (!::stricmp(feature, "GreekParse")) {
-					Optionsfrm->greekParseCB->Items->AddObject(it->second->Description(), (TObject *)it->second->Name());
+					Optionsfrm->greekParseCB->Items->AddObject(it->second->getDescription(), (TObject *)it->second->getName());
 					if (optionsconf->Sections["ModDefaults"].find("GreekParse") == optionsconf->Sections["ModDefaults"].end())
-						(*optionsconf)["ModDefaults"]["GreekParse"] = it->second->Name();
+						(*optionsconf)["ModDefaults"]["GreekParse"] = it->second->getName();
 				}
 				if (!::stricmp(feature, "HebrewDef")) {
-					Optionsfrm->hebrewDefCB->Items->AddObject(it->second->Description(), (TObject *)it->second->Name());
+					Optionsfrm->hebrewDefCB->Items->AddObject(it->second->getDescription(), (TObject *)it->second->getName());
 					if (optionsconf->Sections["ModDefaults"].find("HebrewDef") == optionsconf->Sections["ModDefaults"].end())
-						(*optionsconf)["ModDefaults"]["HebrewDef"] = it->second->Name();
+						(*optionsconf)["ModDefaults"]["HebrewDef"] = it->second->getName();
 				}
 				if (!::stricmp(feature, "HebrewParse")) {
-					Optionsfrm->hebrewParseCB->Items->AddObject(it->second->Description(), (TObject *)it->second->Name());
+					Optionsfrm->hebrewParseCB->Items->AddObject(it->second->getDescription(), (TObject *)it->second->getName());
 					if (optionsconf->Sections["ModDefaults"].find("HebrewParse") == optionsconf->Sections["ModDefaults"].end())
-						(*optionsconf)["ModDefaults"]["HebrewParse"] = it->second->Name();
+						(*optionsconf)["ModDefaults"]["HebrewParse"] = it->second->getName();
 				}
 				if (!::stricmp(feature, "DailyDevotion")) {
-					Optionsfrm->dailyDefaultCB->Items->AddObject(it->second->Description(), (TObject *)it->second->Name());
+					Optionsfrm->dailyDefaultCB->Items->AddObject(it->second->getDescription(), (TObject *)it->second->getName());
 					devotional = true;
 					if (optionsconf->Sections["ModDefaults"].find("DailyDevotion") == optionsconf->Sections["ModDefaults"].end())
-						(*optionsconf)["ModDefaults"]["DailyDevotion"] = it->second->Name();
+						(*optionsconf)["ModDefaults"]["DailyDevotion"] = it->second->getName();
 				}
 				if (!::stricmp(feature, "Glossary")) {
 					glossary = true;
@@ -1211,23 +1219,23 @@
 			}
 		}
 
-		if (!strcmp((*it).second->Type(), "Biblical Texts")) {
+		if (!strcmp((*it).second->getType(), "Biblical Texts")) {
 			CreateTextPane((*it).second);
 		}
-		if (!strcmp((*it).second->Type(), "Commentaries")) {
+		if (!strcmp((*it).second->getType(), "Commentaries")) {
 			CreateCommentPane((*it).second);
 		}
-		if (!strcmp((*it).second->Type(), "Generic Books")) {
+		if (!strcmp((*it).second->getType(), "Generic Books")) {
 			CreateBookPane((*it).second);
 		}
-		if (!strcmp((*it).second->Type(), "Lexicons / Dictionaries")) {
+		if (!strcmp((*it).second->getType(), "Lexicons / Dictionaries")) {
 			if ((!devotional && !glossary) ||
 					(showDevos && devotional) ||
 					(showGlos && glossary))
 				CreateLDPane((*it).second);
-			Optionsfrm->genDictCB->Items->AddObject(it->second->Description(), (TObject *)it->second->Name());
+			Optionsfrm->genDictCB->Items->AddObject(it->second->getDescription(), (TObject *)it->second->getName());
 			if (optionsconf->Sections["ModDefaults"].find("GenDict") == optionsconf->Sections["ModDefaults"].end())
-				(*optionsconf)["ModDefaults"]["GenDict"] = it->second->Name();
+				(*optionsconf)["ModDefaults"]["GenDict"] = it->second->getName();
 		}
 		optionsconf->Save();
 
@@ -1291,7 +1299,6 @@
 		eitend = (*sit).second.upper_bound("SearchText");
 		for (eit = (*sit).second.lower_bound("SearchText"); eit != eitend; eit++)
 			searchForm->SearchText->Items->Add(UTF8ToWideString(eit->second.c_str()));
-//			searchForm->SearchText->Items->Add(eit->second.c_str());
 
 		eitend = (*sit).second.upper_bound("LookupText");
 		for (eit = (*sit).second.lower_bound("LookupText"); eit != eitend; eit++)
@@ -1326,8 +1333,7 @@
 			}
 		}
 		if ((eit = (*sit).second.find("LastLDKey")) != (*sit).second.end()) {
-			//DictKeyEdit->Text = UTF8ToWideString((*eit).second.c_str());
-				    DictKeyEdit->Text = UTF8ToWideString((*eit).second.c_str());
+               DictKeyEdit->Text = UTF8ToWideString((*eit).second.c_str());
 		}
 
 	}
@@ -1376,21 +1382,25 @@
 		}
 	}
 
-	SWModule *module = mainmgr->getModule(TextPageControl->ActivePage->Caption.c_str());
-        if (module) {
-        	SWKey *k = module->getKey();
-                VerseKey *vk = SWDYNAMIC_CAST(VerseKey, k);
-                if (vk) {
-			refreshAppearance(vk);
-                }
-        }
-        else {
-		SWBuf locale = optionsconf->Sections["Appearance"].getWithDefault("locale", "en_us");
-        	i12ize(locale.c_str());
-        }
+     SWBuf modName = TextPageControl->ActivePage->Caption.c_str();
+     if (modName == "PARALLEL") modName = parallelDisp->mod[0];
+     SWModule *module = mainmgr->getModule(modName);
+     if (module) {
+          SWKey *k = module->getKey();
+          VerseKey *vk = SWDYNAMIC_CAST(VerseKey, k);
+          if (vk) {
+          	vk = getActiveVerseKey(false, module);
+          	vk->setText(WideStringToUTF8(freeHandLookup->Text).c_str());
+               refreshAppearance(vk);
+          }
+     }
+     else {
+          SWBuf locale = optionsconf->Sections["Appearance"].getWithDefault("locale", "en_us");
+          i12ize(locale.c_str());
+	}
 }
 
-void TForm1::updateModuleOptions(TMenuItem *parentItem, int staticMenuItemsCount) {
+void TForm1::updateModuleOptions(TMenuItem *parentItem, int staticMenuItemsCount, bool setFromLayout) {
 
 	SectionMap::iterator sit;
 	ConfigEntMap::iterator eit, eitend;
@@ -1411,7 +1421,7 @@
 		newitem->Default = false;
 		newitem->OnClick = OptionShowVals;
 		newitem->Hint = _tr(mainmgr->getGlobalOptionTip(it->c_str()));
-		if (sit != layoutconf->Sections.end()) {
+		if (setFromLayout && sit != layoutconf->Sections.end()) {
 			if ((eit = sit->second.find(it->c_str())) != sit->second.end())
 				mainmgr->setGlobalOption(it->c_str(), eit->second.c_str());
 		}
@@ -1477,7 +1487,7 @@
 	if (module) {
 		token = strtok(NULL, "");
 		ListKey &results = module->search(token, REG_ICASE);
-		while (!results.Error()) {
+		while (!results.popError()) {
 			retval = retval + (const char *)results + "; ";
 			results++;
 		}
@@ -1663,9 +1673,9 @@
 					if (ctrlstates[val])
 						delete ctrlstates[val];
 					VerseKey *vk = getActiveVerseKey();
-                                        if (vk) {
+                         if (vk) {
 						ctrlstates[val] = new ModState(pc, pc->ActivePage, *vk);
-                                        }
+                         }
 				}
 				else {
 					SWModule *module = mainmgr->getModule(pc->ActivePage->Caption.c_str());
@@ -1741,18 +1751,18 @@
                 SWKey *key = module->getKey();
                 VerseKey *vk = SWDYNAMIC_CAST(VerseKey, key);
                 if (vk) {
-			int oldVerse = vk->Verse();
-			vk->Verse(atoi(verseNum));
+			int oldVerse = vk->getVerse();
+			vk->setVerse(atoi(verseNum));
 			tmpVerseList.clear();
 			tmpVerseList << *vk;
-			module->RenderText();	// force entry attributes to get set
+			module->renderText();	// force entry attributes to get set
 			SWBuf type = module->getEntryAttributes()["Footnote"][fnNum.c_str()]["type"].c_str();
 			SWBuf body = module->getEntryAttributes()["Footnote"][fnNum.c_str()]["body"].c_str();
-			vk->Verse(oldVerse);
+			vk->setVerse(oldVerse);
 			if ((type == "crossReference") || (clickText.c_str()[1] == 'x')) {
 				retVal = module->getEntryAttributes()["Footnote"][fnNum.c_str()]["refList"].c_str();
 			}
-			else retVal = module->RenderText(body);
+			else retVal = module->renderText(body);
                 }
 	}   
 	return retVal;
@@ -1791,19 +1801,19 @@
 	tmpVerseList.clear();
         VerseKey *vk = getActiveVerseKey();
         if (vk) {
-        	tmpVerseList = vk->ParseVerseList(clickText.c_str(), *vk);
+        	tmpVerseList = vk->parseVerseList(clickText.c_str(), *vk);
         }
 	
 	// assert we have something to add
-	if (!tmpVerseList.Count())
+	if (!tmpVerseList.getCount())
 		return;
 
 	if (target) {
-		SWBuf keytext = target->KeyText();		// check for and remove return at end of keytext
+		SWBuf keytext = target->getKeyText();		// check for and remove return at end of keytext
 		if (keytext.endsWith("\r"))
 			keytext.setSize(keytext.size()-1);
 					
-		String cap = String(WideStringToUTF8(_tr("VerseList from- "))) + target->Name() + ": " + keytext.c_str();
+		String cap = String(WideStringToUTF8(_tr("VerseList from- "))) + target->getName() + ": " + keytext.c_str();
 		tmpCaption = cap;
 	}
 	newitem = new TMenuItem(menu);
@@ -1816,7 +1826,7 @@
 	newitem->OnClick = createVerseList;
 	menu->Items->Add(newitem);
 	int breakcnt = 3;
-	while (!tmpVerseList.Error()) {
+	while (!tmpVerseList.popError()) {
 		breakcnt++;
 		newitem = new TMenuItem(menu);
 		newitem->Caption = UTF8ToWideString((const char *)tmpVerseList);
@@ -1938,11 +1948,11 @@
 		SWModule *target = getActiveModule(rtf);
 		tmpPreviewText = getNoteText(clickText.c_str(), target).c_str();
 		if (target) {
-			SWBuf keytext = target->KeyText();		// check for and remove return at end of keytext
+			SWBuf keytext = target->getKeyText();		// check for and remove return at end of keytext
 			if (keytext.endsWith("\r"))
 				keytext.setSize(keytext.size()-1);
 					
-			String cap = String(WideStringToUTF8(_tr("Note from"))) + " " + target->Name() + ": " + tmpVerseList.getText() + ": " + clickText;
+			String cap = String(WideStringToUTF8(_tr("Note from"))) + " " + target->getName() + ": " + tmpVerseList.getText() + ": " + clickText;
 			tmpCaption = cap;
 			tmpModState = ModState((TPageControl*)rtf->Parent->Parent, ((TPageControl*)rtf->Parent->Parent)->ActivePage, tmpVerseList);
 			tmpModule = target;
@@ -1965,13 +1975,13 @@
 }
 //---------------------------------------------------------------------------
 
-void __fastcall TForm1::freeHandLookupKeyPress(TObject *Sender, char &Key)
+void __fastcall TForm1::freeHandLookupKeyPress(TObject *Sender, const char &Key)
 {
 	VerseKey *vk = getActiveVerseKey();
 	if (Key == '\r' && vk) {
-		ListKey tmpVerseList = vk->ParseVerseList(WideStringToUTF8(freeHandLookup->Text).c_str(), *vk);
+		ListKey tmpVerseList = vk->parseVerseList(WideStringToUTF8(freeHandLookup->Text).c_str(), *vk);
 
-		if (tmpVerseList.Count()) {
+		if (tmpVerseList.getCount()) {
 			// see if we already have an entry
 			int index = freeHandLookup->Items->IndexOf(freeHandLookup->Text);
 
@@ -1984,7 +1994,7 @@
 
 			freeHandLookup->ItemIndex = 0;
 
-			if (tmpVerseList.Count() > 1) {
+			if (tmpVerseList.getCount() > 1) {
 				TVerseListForm *tmpForm = new TVerseListForm(this, tmpVerseList);
 				tmpForm->Caption = _tr("User Verse List");
 				tmpForm->Show();
@@ -2065,7 +2075,7 @@
 		SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
 		SWModule *module = mainmgr->getModule(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
                 if (module) {
-			SWKey *linkkey = module->CreateKey();
+			SWKey *linkkey = module->createKey();
                         *linkkey = VerseSelFrm->Panel2->Caption.c_str();
 			*module << linkkey;
                         delete linkkey;
@@ -2365,12 +2375,13 @@
 	// Change the panels attributes here
 	for (it = mainmgr->Modules.begin(); it != mainmgr->Modules.end(); it++) {
 		SWModule *module = it->second;
-		RTFDisp *disp = SWDYNAMIC_CAST(RTFDisp, module->Disp());
+		RTFDisp *disp = SWDYNAMIC_CAST(RTFDisp, module->getDisplay());
 		if (disp) {
 			SWDispRTF* rtfDisp = (SWDispRTF*) disp->editControl();
 			rtfDisp->recalcAppearance();
 		}
 	}
+     parallelDisp->recalcAppearance();
 	// Change the text entry field color
 	tmpval = optionsconf->Sections["Appearance"]["FieldColor"];
 	TColor fieldColor = tmpval.length() ? TColor(atoi(tmpval.c_str())) : clAqua;
@@ -2443,7 +2454,7 @@
 				}
 
 				if (module) {
-					HintStr = module->Description();
+					HintStr = module->getDescription();
 					HintInfo.CursorRect = pc->TabRect(tab);
 //				HintInfo.CursorRect = >TRect(TPoint(mousePoint.x-7, mousePoint.y-7), TPoint(mousePoint.x+7, mousePoint.y+7));
 				}
@@ -2593,21 +2604,21 @@
                                         SWKey *key = module->getKey();
                                         VerseKey *vk = SWDYNAMIC_CAST(VerseKey, key);
                                         if (vk) {
-						int oldVerse = vk->Verse();
-						vk->Verse(atoi(verseNum));
-						module->RenderText();	// force entry attributes to get set
+						int oldVerse = vk->getVerse();
+						vk->setVerse(atoi(verseNum));
+						module->renderText();	// force entry attributes to get set
 						SWBuf type = module->getEntryAttributes()["Footnote"][fnNum.c_str()]["type"].c_str();
 						SWBuf body = module->getEntryAttributes()["Footnote"][fnNum.c_str()]["body"].c_str();
 						SWBuf refList = module->getEntryAttributes()["Footnote"][fnNum.c_str()]["refList"].c_str();
-						body = module->RenderText(body.c_str());
-						vk->Verse(oldVerse);
+						body = module->renderText(body.c_str());
+						vk->setVerse(oldVerse);
 
 						if ((type == "crossReference") || (verseList.c_str()[1] == 'x')
 						// this doesn't work cuz we never cat into the hint code if a meta key is pressed.  curious.
 						// && (!GetAsyncKeyState(VK_LCONTROL))
 						) {
-							ListKey verses = vk->ParseVerseList(refList.c_str(), *vk, true);
-							if (verses.Count()) {
+							ListKey verses = vk->parseVerseList(refList.c_str(), *vk, true);
+							if (verses.getCount()) {
 								RTFHintForm->rtfDrawer->fillWithVerses(module, &verses, body.c_str(), true, true, "Popup");
 								HintStr = "show rtf";
 							}
@@ -2634,8 +2645,8 @@
                                 	SWKey *key = module->getKey();
                                         VerseKey *vk = SWDYNAMIC_CAST(VerseKey, key);
                                         if (vk) {
-						ListKey verses = vk->ParseVerseList(verseList.c_str(), *vk, true);
-						if (verses.Count()) {
+						ListKey verses = vk->parseVerseList(verseList.c_str(), *vk, true);
+						if (verses.getCount()) {
 							RTFHintForm->rtfDrawer->fillWithVerses(module, &verses, 0, true, true, "Popup");
 							HintStr = "show rtf";
 						}
@@ -2662,7 +2673,7 @@
 
 			if (!link && (i >= strongsWord.Length()) && (i-1)) {
 					VerseKey *vk = getActiveVerseKey();
-				String feature = (vk && (vk->Testament() == 1))?"Hebrew":"Greek";
+				String feature = (vk && (vk->getTestament() == 1))?"Hebrew":"Greek";
 				feature += (preChar == '(')?"Parse":"Def";
 				if (!strncmp(HintInfo.HintControl->Name.c_str(), "TextRTFLXX", 10))
 					feature = "GreekDef";
@@ -2949,10 +2960,10 @@
         VerseKey *vk = getActiveVerseKey();
 	if ((lookupKey.Length() > 1) && (lookupKey[1] == '<') && (lookupKey[lookupKey.Length()] == '>')) {
 		if (searchForm->usingSearchFramework) {
-			lookupKey = (String)"lemma:"+((vk && (vk->Testament()>1))?"G":"H")+lookupKey.SubString(2,lookupKey.Length()-2);
+			lookupKey = (String)"lemma:"+((vk && (vk->getTestament()>1))?"G":"H")+lookupKey.SubString(2,lookupKey.Length()-2);
 		}
 		else {
-			lookupKey = (String)"<"+((vk && (vk->Testament()>1))?"G":"H")+lookupKey.SubString(2,lookupKey.Length()-2)+">";
+			lookupKey = (String)"<"+((vk && (vk->getTestament()>1))?"G":"H")+lookupKey.SubString(2,lookupKey.Length()-2)+">";
 		}
 	}
 	searchForm->SearchText->Text = lookupKey;
@@ -3064,13 +3075,13 @@
 	}
 
 	for (ModMap::iterator it = mainmgr->Modules.begin(); it != mainmgr->Modules.end(); it++) {
-		if (!strcmp(it->second->Type(), "Biblical Texts")) {
+		if (!strcmp(it->second->getType(), "Biblical Texts")) {
 			for (int i = 0; i < menuCount; i++) {
 				newitem = new TMenuItem(menu);
-				newitem->Caption = it->second->Name();
+				newitem->Caption = it->second->getName();
 				if(!strcmp(parallelDisp->mod[i].c_str(), newitem->Caption.c_str()))
 					newitem->Checked = true;
-				newitem->Hint = it->second->Description();
+				newitem->Hint = it->second->getDescription();
 				newitem->OnClick = ParallelMenuItemClick;
 				menus[i]->Add(newitem);
 			}

Modified: branches/BCB5/mainfrm.h
===================================================================
--- branches/BCB5/mainfrm.h	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/mainfrm.h	2013-07-21 21:05:23 UTC (rev 512)
@@ -70,7 +70,7 @@
 	RTFDisp(SWDispRTF *iedit) { myclass = &classdef; edit = iedit; }
 	virtual SWDispRTF *editControl() { return edit; }
 	RTFDisp() {}
-	virtual char Display(SWModule &imodule) {
+	virtual char display(SWModule &imodule) {
 		return edit->Display(imodule);
 	}
 };
@@ -92,14 +92,14 @@
 			fillTreeTOC(treeKey, tree, parent);
 	}
 
-	virtual char Display(SWModule &imodule) {
+	virtual char display(SWModule &imodule) {
 		if (!toc->Items->GetFirstNode()) {
 			//edit->Text = "Loading TOC...";
 			imodule = TOP;
 			((TreeKeyIdx *)((SWKey *)imodule))->firstChild();
 			fillTreeTOC(*(TreeKeyIdx *)((SWKey *)imodule), toc, toc->Selected);
 		}
-		return RTFDisp::Display(imodule);
+		return RTFDisp::display(imodule);
 	}
 };
 
@@ -110,7 +110,7 @@
 	RTFVerseKeyDisp(SWDispRTF *iedit) : RTFDisp(iedit) {}
 	RTFVerseKeyDisp() {}
 
-	virtual char Display(SWModule &imodule);
+	virtual char display(SWModule &imodule);
 };
 
 
@@ -119,7 +119,7 @@
 public:
 	HREFDisp(TCppWebBrowser *iedit) { edit = iedit; }
 	HREFDisp() {}
-	char Display(SWModule &imodule) {
+	char display(SWModule &imodule) {
 
 		TMemoryStream *stm = new TMemoryStream();
 
@@ -127,7 +127,7 @@
 			return 1;
 
 		stm->Clear();
-		SWBuf modText = (SWBuf)"<HTML><BODY>" + (SWBuf)imodule.RenderText() + (SWBuf)"</BODY></HTML>";
+		SWBuf modText = (SWBuf)"<HTML><BODY>" + (SWBuf)imodule.renderText() + (SWBuf)"</BODY></HTML>";
 		stm->WriteBuffer(modText.c_str(), modText.length());
 
 		IPersistStreamInit *psi = NULL;
@@ -173,7 +173,7 @@
 class DispExternal : public SWDisplay {
 public:
 	DispExternal() {}
-	char Display(SWModule &imodule) {
+	char display(SWModule &imodule) {
 		SHELLEXECUTEINFO info;
 		info.cbSize = sizeof(SHELLEXECUTEINFO);
 		info.fMask = SEE_MASK_NOCLOSEPROCESS; //SEE_MASK_CLASSNAME;
@@ -337,7 +337,7 @@
 	void __fastcall FormCreate(TObject *Sender);
 	void __fastcall PopupMenuPopup(TObject *Sender);
 	void __fastcall createVerseList(TObject *Sender);
-	void __fastcall freeHandLookupKeyPress(TObject *Sender, char &Key);
+	void __fastcall freeHandLookupKeyPress(TObject *Sender, const char &Key);
 	void __fastcall RTFMouseDown(TObject *Sender, TMouseButton Button,
 		TShiftState Shift, int X, int Y);
 	void __fastcall RTFURLClick(TObject *Sender, const AnsiString URLText, TMouseButton Button);
@@ -429,9 +429,9 @@
 	ParallelDisp *parallelDisp;
 	SWBuf getNoteText(const char *noteText, SWModule *module = 0);
 	SWModule *getActiveModule(TRxRichEdit *rtf = 0);
-	void updateModuleOptions(TMenuItem *parentItem, int staticMenuItemsCount = 1);
+	void updateModuleOptions(TMenuItem *parentItem, int staticMenuItemsCount = 1, bool setFromLayout = true);
 	SWModule *getFocusedModule();
-	VerseKey *getActiveVerseKey(bool checkFocusChange = true);
+	VerseKey *getActiveVerseKey(bool checkFocusChange = true, SWModule *focusedModule = 0);
 	void fillVKeySelector(VerseKey *vk);
 };
 

Modified: branches/BCB5/optionfrm.cpp
===================================================================
--- branches/BCB5/optionfrm.cpp	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/optionfrm.cpp	2013-07-21 21:05:23 UTC (rev 512)
@@ -744,37 +744,37 @@
 
 	tmpval = ((eit = config->Sections["ModDefaults"].find("GreekDef")) != config->Sections["ModDefaults"].end())? (*eit).second : (SWBuf)"";
 	if ((it = Form1->mainmgr->Modules.find(tmpval)) != Form1->mainmgr->Modules.end()) {
-		Optionsfrm->greekDefCB->ItemIndex = Optionsfrm->greekDefCB->Items->IndexOf(it->second->Description());
+		Optionsfrm->greekDefCB->ItemIndex = Optionsfrm->greekDefCB->Items->IndexOf(it->second->getDescription());
 	}
 
 	tmpval = ((eit = config->Sections["ModDefaults"].find("GreekParse")) != config->Sections["ModDefaults"].end())? (*eit).second : (SWBuf)"";
 	if ((it = Form1->mainmgr->Modules.find(tmpval)) != Form1->mainmgr->Modules.end()) {
-		Optionsfrm->greekParseCB->ItemIndex = Optionsfrm->greekParseCB->Items->IndexOf(it->second->Description());
+		Optionsfrm->greekParseCB->ItemIndex = Optionsfrm->greekParseCB->Items->IndexOf(it->second->getDescription());
 	}
 
 	tmpval = ((eit = config->Sections["ModDefaults"].find("HebrewDef")) != config->Sections["ModDefaults"].end())? (*eit).second : (SWBuf)"";
 	if ((it = Form1->mainmgr->Modules.find(tmpval)) != Form1->mainmgr->Modules.end()) {
-		Optionsfrm->hebrewDefCB->ItemIndex = Optionsfrm->hebrewDefCB->Items->IndexOf(it->second->Description());
+		Optionsfrm->hebrewDefCB->ItemIndex = Optionsfrm->hebrewDefCB->Items->IndexOf(it->second->getDescription());
 	}
 
 	tmpval = ((eit = config->Sections["ModDefaults"].find("HebrewParse")) != config->Sections["ModDefaults"].end())? (*eit).second : (SWBuf)"";
 	if ((it = Form1->mainmgr->Modules.find(tmpval)) != Form1->mainmgr->Modules.end()) {
-		Optionsfrm->hebrewParseCB->ItemIndex = Optionsfrm->hebrewParseCB->Items->IndexOf(it->second->Description());
+		Optionsfrm->hebrewParseCB->ItemIndex = Optionsfrm->hebrewParseCB->Items->IndexOf(it->second->getDescription());
 	}
 
 	tmpval = ((eit = config->Sections["ModDefaults"].find("DailyDevotion")) != config->Sections["ModDefaults"].end())? (*eit).second : (SWBuf)"";
 	if ((it = Form1->mainmgr->Modules.find(tmpval)) != Form1->mainmgr->Modules.end()) {
-		Optionsfrm->dailyDefaultCB->ItemIndex = Optionsfrm->dailyDefaultCB->Items->IndexOf(it->second->Description());
+		Optionsfrm->dailyDefaultCB->ItemIndex = Optionsfrm->dailyDefaultCB->Items->IndexOf(it->second->getDescription());
 	}
 
 	tmpval = ((eit = config->Sections["ModDefaults"].find("GenDict")) != config->Sections["ModDefaults"].end())? (*eit).second : (SWBuf)"";
 	if ((it = Form1->mainmgr->Modules.find(tmpval)) != Form1->mainmgr->Modules.end()) {
-		Optionsfrm->genDictCB->ItemIndex = Optionsfrm->genDictCB->Items->IndexOf(it->second->Description());
+		Optionsfrm->genDictCB->ItemIndex = Optionsfrm->genDictCB->Items->IndexOf(it->second->getDescription());
 	}
 
 	tmpval = ((eit = config->Sections["ModDefaults"].find("StrongsNumbers")) != config->Sections["ModDefaults"].end())? (*eit).second : (SWBuf)"";
 	if ((it = Form1->mainmgr->Modules.find(tmpval)) != Form1->mainmgr->Modules.end()) {
-		Optionsfrm->strongsNumsCB->ItemIndex = Optionsfrm->strongsNumsCB->Items->IndexOf(it->second->Description());
+		Optionsfrm->strongsNumsCB->ItemIndex = Optionsfrm->strongsNumsCB->Items->IndexOf(it->second->getDescription());
 	}
 }
 

Modified: branches/BCB5/paraldisp.cpp
===================================================================
--- branches/BCB5/paraldisp.cpp	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/paraldisp.cpp	2013-07-21 21:05:23 UTC (rev 512)
@@ -88,13 +88,13 @@
 		return 0;
 	}
 
-	VerseKey *key = (VerseKey *)(SWKey *)(*mods[0]);
+	VerseKey *key = (VerseKey *)mods[0]->getKey();
 	UnicodeRTF uToRTF;
-	testmt = key->Testament();
-	chap   = key->Chapter();
-	book   = key->Book();
-	verse  = key->Verse();
-	key->Verse(1);
+	testmt = key->getTestament();
+	chap   = key->getChapter();
+	book   = key->getBook();
+	verse  = key->getVerse();
+	key->setVerse(1);
 
 	module = mods[0];
 	type = "Default";
@@ -105,7 +105,7 @@
 	newtext = newtext + RTFChapterMarkPre + IntToStr(chap) + RTFChapterMarkPost;
 	newtext = newtext + "\\pard\\f0\\nowidctlpar\\cf7 ";
 
-	mods[0]->Error(); // clear error;
+	mods[0]->popError(); // clear error;
 
 
 /*
@@ -138,7 +138,7 @@
 */
 	SWBuf lastEntry = "something the first entry will never be";
 //	bool firstRow = true;
-	while ((key->Book() == book) && (key->Chapter() == chap) && (mods[0]->Error() == 0)) {
+	while ((key->getBook() == book) && (key->getChapter() == chap) && (mods[0]->popError() == 0)) {
 		if (lastEntry == (SWBuf)mods[0]->getRawEntry()) {
 			(*mods[0])++;
 			continue;
@@ -165,6 +165,9 @@
 */
 		bool firstRow = true;
 		for (int z = 0; z < realModCount; z++) {
+               if (z) {
+                    mods[z]->setKey(mods[0]->getKeyText());
+               }
 
 //		if (!firstRow)
 //			newtext += "\\par__________________\\par";
@@ -188,7 +191,7 @@
 
 */
 			tmptext = "{\\b ";
-			tmptext += mods[z]->Name();
+			tmptext += mods[z]->getName();
 			tmptext += ": }	";
 
 		        makeBracketsEven(tmptext);
@@ -213,25 +216,25 @@
 					}
 					else break;
 				} while (true);
-				if (mods[z]->Direction() == DIRECTION_RTL && (platformID == VER_PLATFORM_WIN32_WINDOWS	 || (mods[z]->Lang() && strnicmp(mods[z]->Lang(), "he", 2) && strnicmp(mods[z]->Lang(), "ar", 2) && strnicmp(mods[z]->Lang(), "fa", 2)))) {
+				if (mods[z]->getDirection() == DIRECTION_RTL && (platformID == VER_PLATFORM_WIN32_WINDOWS	 || (mods[z]->getLanguage() && strnicmp(mods[z]->getLanguage(), "he", 2) && strnicmp(mods[z]->getLanguage(), "ar", 2) && strnicmp(mods[z]->getLanguage(), "fa", 2)))) {
 					newtext = newtext + RTFVersePre;
-					if ((key->Verse() == verse) && (dispAttribs.markCurrentVerse)) {
+					if ((key->getVerse() == verse) && (dispAttribs.markCurrentVerse)) {
 						newtext = newtext + "\\cf2 "; // \cf2 = second color in color table
 					}
 					newtext += tmptext + RTFVersePost;
-					newtext = newtext + RTFVerseMarkPre + IntToStr(key->Verse()) + RTFVerseMarkPost;
+					newtext = newtext + RTFVerseMarkPre + IntToStr(key->getVerse()) + RTFVerseMarkPost;
 					newtext = newtext + "\\par ";
 				}
 				else {
-					newtext = newtext + RTFVerseMarkPre + IntToStr(key->Verse()) + RTFVerseMarkPost;
+					newtext = newtext + RTFVerseMarkPre + IntToStr(key->getVerse()) + RTFVerseMarkPost;
 					newtext = newtext + RTFVersePre;
-					if ((key->Verse() == verse) && (dispAttribs.markCurrentVerse)) {
+					if ((key->getVerse() == verse) && (dispAttribs.markCurrentVerse)) {
 						newtext = newtext + "\\cf2 "; // \cf2 = second color in color table
 					}
 					newtext += tmptext + RTFVersePost;
 				}
 			}
-			if (key->Verse() == verse) {
+			if (key->getVerse() == verse) {
 				tmptext = newtext + RTFTrailer + "}";
 				RTFStream->Clear();
 				RTFStream->WriteBuffer(tmptext.c_str(), tmptext.Length());
@@ -267,13 +270,13 @@
 
 	makeBracketsEven(newtext);  // just for good measure.  We could probably remove this
 
-	key->Verse(1); //{ When setting chapter: if (verse <> new chapter range) don't autonormalize. (we could've just turned the autonormalize option off then back on, but this is cooler) }
-	key->Chapter(1);
-	key->Book(1);
-	key->Testament(testmt);
-	key->Book(book);
-	key->Chapter(chap);
-	key->Verse(verse);
+	key->setVerse(1); //{ When setting chapter: if (verse <> 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());
 	RTFStream->Position = 0;

Modified: branches/BCB5/searchfrm.cpp
===================================================================
--- branches/BCB5/searchfrm.cpp	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/searchfrm.cpp	2013-07-21 21:05:23 UTC (rev 512)
@@ -70,7 +70,7 @@
 
 	if (target) {
 		AnsiString cap = _tr("Searching");
-		cap += (AnsiString)" [ " + (AnsiString)target->Description() + (AnsiString)" (" + (AnsiString)target->Name() + (AnsiString)") ]...";
+		cap += (AnsiString)" [ " + (AnsiString)target->getDescription() + (AnsiString)" (" + (AnsiString)target->getName() + (AnsiString)") ]...";
 		Caption = UTF8Decode(cap);
 		resultsLV->Items->Clear();
 		int searchType;
@@ -85,13 +85,13 @@
 		switch (scopeGroup->ItemIndex) {
 		case 2:
 			if (ComboBox1->ItemIndex < 0)
-				results = VerseKey().ParseVerseList(ComboBox1->Text.c_str(), "", true);
+				results = VerseKey().parseVerseList(ComboBox1->Text.c_str(), "", true);
 			else {
 				TCustomRange *rs = (TCustomRange *)ComboBox1->Items->Objects[ComboBox1->ItemIndex];
-				results = VerseKey().ParseVerseList(rs->text.c_str(), "", true);
+				results = VerseKey().parseVerseList(rs->text.c_str(), "", true);
 			}
 		case 1: 
-			if (!results.Count())
+			if (!results.getCount())
 				return;
 			scope = &results; break;
 		}
@@ -138,7 +138,7 @@
 		if (focused) {
 			int row = focused->Index;
 			ListKey verse;
-			SWKey *key = target->CreateKey();
+			SWKey *key = target->createKey();
 			*key = UTF8Encode(resultsLV->Items->Item[row]->Caption).c_str();
 			verse << *key;
 			delete key;
@@ -186,7 +186,7 @@
 
 	SWKey origKeyVal = parent->target->getKeyText();
 
-	for (results = TOP; !results.Error(); results++) {
+	for (results = TOP; !results.popError(); results++) {
 		parent->target->setKey(results);
 		pItem = parent->resultsLV->Items->Add();
 		pItem->Caption = UTF8Decode((const char *)results);
@@ -195,7 +195,7 @@
 	parent->target->setKey(origKeyVal);
 	Form1->getActiveVerseKey(true);	// this is important; this clears the hold on our target's versekey which we just replaced in the lines above
 // 	ListBox1->Items->Pack();	// so Count is set correctly (per helpfile)
-	AnsiString cap = ((AnsiString)parent->resultsLV->Items->Count + (AnsiString)" " + (AnsiString)((parent->resultsLV->Items->Count == 1) ? _tr("match") : _tr("matches"))) + (AnsiString)" from [ " + (AnsiString)parent->target->Description() + (AnsiString)" (" + (AnsiString)parent->target->Name() + (AnsiString)") ]";
+	AnsiString cap = ((AnsiString)parent->resultsLV->Items->Count + (AnsiString)" " + (AnsiString)((parent->resultsLV->Items->Count == 1) ? _tr("match") : _tr("matches"))) + (AnsiString)" from [ " + (AnsiString)parent->target->getDescription() + (AnsiString)" (" + (AnsiString)parent->target->getName() + (AnsiString)") ]";
 	parent->Caption = UTF8Decode(cap);
 	parent->searchBtn->Caption = _tr("Search");
 	parent->searchBtn->OnClick = parent->searchBtnClick;
@@ -209,7 +209,7 @@
 	// let's make some intuitive decisions on when to sort by score for clucene searches
 	bool sortByScore
 			= ((searchType == -4)		// lucene
-			&& (results.Count() > 100)
+			&& (results.getCount() > 100)
 			&& (strchr(searchText.c_str(), ' '))
 			&& (!strchr(searchText.c_str(), '+'))
 			&& (!strchr(searchText.c_str(), '\"'))
@@ -367,7 +367,7 @@
 void TsearchForm::setTarget(SWModule *itarget) {
 	bool diffTarget = target != itarget;
 	target = itarget;
-	AnsiString cap = target->Description() + (AnsiString) " (" + target->Name() + ")";
+	AnsiString cap = target->getDescription() + (AnsiString) " (" + target->getName() + ")";
 	moduleName->Caption = UTF8Decode(cap);
 	RTFHintForm->searchListDrawer->fillWithRTFString(target, "yoyo");
 	SearchText->Font->Name = RTFHintForm->searchListDrawer->dispAttribs.fontName;
@@ -422,28 +422,28 @@
 		// assert our module is not hidden
 		ConfigEntMap *section;
 		section = &(*Form1->layoutconf)["TextView"];
-		if (!strncmp(mods->second->Type(), "Comm", 4))
+		if (!strncmp(mods->second->getType(), "Comm", 4))
 			section = &(*Form1->layoutconf)["CommentView"];
-		else if (!strncmp(mods->second->Type(), "Lexi", 4))
+		else if (!strncmp(mods->second->getType(), "Lexi", 4))
 			section = &(*Form1->layoutconf)["LDView"];
-		if ((*section)[mods->second->Name()] == "false")
+		if ((*section)[mods->second->getName()] == "false")
 			continue;
 
 		for (node = modTreeView->Items->GetFirstNode(); node; node = node->getNextSibling()) {
-			if (!strcmp(node->Text.c_str(), mods->second->Type())) {
+			if (!strcmp(node->Text.c_str(), mods->second->getType())) {
 				break;
 			}
 		}
 		if (!node) {	// Add Section
-			if (!strncmp(mods->second->Type(), "Bibl", 4))	// If Bibles, put first in list
-				node = modTreeView->Items->AddChildFirst(0, mods->second->Type());
-			else	node = modTreeView->Items->AddChild(0, mods->second->Type());
+			if (!strncmp(mods->second->getType(), "Bibl", 4))	// If Bibles, put first in list
+				node = modTreeView->Items->AddChildFirst(0, mods->second->getType());
+			else	node = modTreeView->Items->AddChild(0, mods->second->getType());
 		}
 		nodeName = "[";
-		nodeName += mods->second->Name();
+		nodeName += mods->second->getName();
 		nodeName += "] ";
-		nodeName += mods->second->Description();
-		node = modTreeView->Items->AddChildObject(node, nodeName.c_str(), mods->second->Name());
+		nodeName += mods->second->getDescription();
+		node = modTreeView->Items->AddChildObject(node, nodeName.c_str(), (void *)mods->second->getName());
 
 	}
 	//for (node = modTreeView->Items->GetFirstNode(); node; node = node->getNextSibling())
@@ -464,7 +464,7 @@
 	AnsiString modName;
 
 	for (mods = manager->Modules.begin(); mods != manager->Modules.end(); mods++) {
-		if (currNode->Text.SubString(2, currNode->Text.Pos("]") - 2) == mods->second->Name()) {	// Add Section
+		if (currNode->Text.SubString(2, currNode->Text.Pos("]") - 2) == mods->second->getName()) {	// Add Section
 			setTarget(mods->second);
 		}
 	}

Modified: branches/BCB5/swdisprtf.cpp
===================================================================
--- branches/BCB5/swdisprtf.cpp	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/swdisprtf.cpp	2013-07-21 21:05:23 UTC (rev 512)
@@ -58,10 +58,10 @@
 
 	newtext = RTFHeader;
 	newtext = newtext + RTFHeadMargin;
-	Module.Error(); // clear error;
+	Module.popError(); // clear error;
 	newtext = newtext + "\\pard \\nowidctlpar \\cf7\\f0 ";
 	(const char *)Module;	// force key to snap to entry before pulling out the text of the key
-	buf = Module.KeyText();
+	buf = Module.getKeyText();
 	SWKey *key = Module;
 
 	// VerseKey locales are not yet UTF8, so don't try to convert them.

Modified: branches/BCB5/swdisprtfchap.cpp
===================================================================
--- branches/BCB5/swdisprtfchap.cpp	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/swdisprtfchap.cpp	2013-07-21 21:05:23 UTC (rev 512)
@@ -1,3 +1,4 @@
+
 //---------------------------------------------------------------------------
 #include <vcl\vcl.h>
 #pragma hdrstop
@@ -61,22 +62,22 @@
 	static bool hebarLang;
 	static char* hebarLanguages[] = {"he", "ar", "fa", "ug", "ur", 0};
 
-	VerseKey *key = (VerseKey *)(SWKey *)Module;
-	key->Headings(1);
-	testmt = key->Testament();
-	book   = key->Book();
-	chap   = key->Chapter();
-	verse  = key->Verse();
-	key->AutoNormalize(0);
-	key->Verse(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->Chapter(0);
+		key->setChapter(0);
 		if (book == 1) {
-			key->Book(0);
-			if (testmt == 1) key->Testament(0);
+			key->setBook(0);
+			if (testmt == 1) key->setTestament(0);
 		}
 	}
-	key->AutoNormalize(0);
+	key->setAutoNormalize(false);
 
 	module = &Module;
 	type = "Default";
@@ -84,9 +85,9 @@
 	//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.Direction() == DIRECTION_RTL && Module.Lang()) {
+	if (Module.getDirection() == DIRECTION_RTL && Module.getLanguage()) {
 	  for (unsigned char l = 0; hebarLanguages[l]; l++) {
-	    if (!strnicmp(Module.Lang(), hebarLanguages[l], 2)) {	//change the length variable if we ever get any 3-char language codes
+	    if (!strnicmp(Module.getLanguage(), hebarLanguages[l], 2)) {	//change the length variable if we ever get any 3-char language codes
 	      hebarLang = true;
 	    }
 	  }
@@ -96,16 +97,16 @@
 	newtext = RTFHeader;
 	newtext = newtext + RTFChapterMarkPre + IntToStr(chap) + RTFChapterMarkPost;
 	newtext = newtext + "\\pard\\f0\\nowidctlpar\\cf7 ";
-	if (Module.Direction() == DIRECTION_RTL) {
+	if (Module.getDirection() == DIRECTION_RTL) {
 		newtext = newtext + "\\qr ";
 	}
 	if (platformID == VER_PLATFORM_WIN32_NT	 && hebarLang) {
 	   newtext = newtext + "\\rtlpar ";
 	}
 
-	Module.Error(); // clear error;
+	Module.popError(); // clear error;
 	SWBuf lastEntry = "something the first entry will never be";
-	while (((!key->Book())||(key->Book() == book)) && ((!key->Chapter())||(key->Chapter() == chap)) && (Module.Error() == 0)) {
+	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
@@ -130,35 +131,35 @@
 			do {
 				sprintf(buf, "%i", pvHeading++);
 				SWBuf preverseHeading = module->getEntryAttributes()["Heading"]["Preverse"][buf].c_str();
-				preverseHeading = Module.RenderText(preverseHeading);
+				preverseHeading = Module.renderText(preverseHeading);
 				if (preverseHeading.length()) {
 					newtext += ((AnsiString)"\\par\\par {\\i1\\b1 ") + preverseHeading.c_str() + "\\par}";
 				}
 				else break;
 			} while (true);
-			if (Module.Direction() == DIRECTION_RTL && (platformID == VER_PLATFORM_WIN32_WINDOWS || !hebarLang)) {
+			if (Module.getDirection() == DIRECTION_RTL && (platformID == VER_PLATFORM_WIN32_WINDOWS || !hebarLang)) {
 				newtext = newtext + RTFVersePre;
-				if ((key->Verse() == verse) && (dispAttribs.markCurrentVerse)) {
+				if ((key->getVerse() == verse) && (dispAttribs.markCurrentVerse)) {
 					newtext = newtext + "\\cf2 "; // \cf2 = second color in color table
 				}
 				newtext += tmptext + RTFVersePost;
-				if (key->Verse())
-					newtext = newtext + RTFVerseMarkPre + /*"<a href=\"\">" +*/ IntToStr(key->Verse()) /*+ "</a>"*/ + RTFVerseMarkPost;
+				if (key->getVerse())
+					newtext = newtext + RTFVerseMarkPre + /*"<a href=\"\">" +*/ IntToStr(key->getVerse()) /*+ "</a>"*/ + RTFVerseMarkPost;
 
 				if (!dispAttribs.verseNewLine)
 					newtext = newtext + "\\par ";
 			}
 			else {
-				if (key->Verse())
-					newtext = newtext + RTFVerseMarkPre + /*"<a href=\"\">" +*/ IntToStr(key->Verse()) /*+ "</a>"*/ + RTFVerseMarkPost;
+				if (key->getVerse())
+					newtext = newtext + RTFVerseMarkPre + /*"<a href=\"\">" +*/ IntToStr(key->getVerse()) /*+ "</a>"*/ + RTFVerseMarkPost;
 				newtext = newtext + RTFVersePre;
-				if ((key->Verse() == verse) && (dispAttribs.markCurrentVerse)) {
+				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->Verse()) || (!key->Chapter()) || (!key->Book()) || (!key->Testament())) {
+			if ((!key->getVerse()) || (!key->getChapter()) || (!key->getBook()) || (!key->getTestament())) {
 				if (rawText.size())
 					newtext = newtext + "\\par\\par";
 			}
@@ -169,7 +170,7 @@
 				}
 			}
 		}
-		if (key->Verse() == verse) {
+		if (key->getVerse() == verse) {
 			tmptext = newtext + RTFTrailer + "}";
 			RTFStream->Clear();
 			RTFStream->WriteBuffer(tmptext.c_str(), tmptext.Length());
@@ -186,19 +187,19 @@
 
 	makeBracketsEven(newtext);
 
-	key->Verse(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->Chapter(1);
-	key->Book(1);
-	key->Testament(testmt);
-	key->Book(book);
-	key->Chapter(chap);
-	key->Verse(verse);
+	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);
+//	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);
 

Modified: branches/BCB5/sword.bpr
===================================================================
--- branches/BCB5/sword.bpr	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/sword.bpr	2013-07-21 21:05:23 UTC (rev 512)
@@ -46,7 +46,7 @@
     <DEBUGLIBPATH value="$(BCB)\lib\debug"/>
     <RELEASELIBPATH value="$(BCB)\lib\release"/>
     <LINKER value="ilink32"/>
-    <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY;U_HAVE_PLACEMENT_NEW=0;USELUCENE;_CL_DISABLE_MULTITHREADING;CURLAVAILABLE;_DEBUG"/>
+    <USERDEFINES value="_ICU_;_ICUSWORD_;USBINARY;U_HAVE_PLACEMENT_NEW=0;USELUCENE;_CL_DISABLE_MULTITHREADING;CURLAVAILABLE"/>
     <SYSDEFINES value="NO_STRICT"/>
     <MAINSOURCE value="sword.cpp"/>
     <INCLUDEPATH value="..\sword\src\modules\filters;TntUnicodeControls.attic;..\icu-sword\source\common;..\icu-sword\source\i18n;..\sword\include;..\sword\include\internal\regex;rxlib;TNGImage\Package;curl\include;$(BCB)\include;$(BCB)\include\vcl"/>
@@ -61,12 +61,11 @@
       -Icurl\include -I$(BCB)\include -I$(BCB)\include\vcl -src_suffix cpp 
       -D_ICU_ -D_ICUSWORD_ -DUSBINARY -DU_HAVE_PLACEMENT_NEW=0 -DUSELUCENE 
       -D_CL_DISABLE_MULTITHREADING -D_DEBUG -DCURLAVAILABLE"/>
-    <CFLAG1 value="-Od -H=$(BCB)\lib\vcl50.csm -Hc -Vx -X- -r- -a8 -4 -b- -k -y -v -vi- -c 
-      -tW -tWM"/>
-    <PFLAGS value="-N2obj -N0obj -$Y+ -$W -$O- -v -M -JPHNE"/>
+    <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm -Hc -Vx -X- -a8 -4 -b- -k- -vi -c -tW -tWM"/>
+    <PFLAGS value="-N2obj -N0obj -$Y- -$L- -$D- -v -M -JPHNE"/>
     <RFLAGS value=""/>
-    <AFLAGS value="/mx /w2 /zi"/>
-    <LFLAGS value="-Iobj -D&quot;&quot; -aa -Tpe -GD -s -Gn -v"/>
+    <AFLAGS value="/mx /w2 /zn"/>
+    <LFLAGS value="-Iobj -D&quot;&quot; -aa -Tpe -GD -s -Gn"/>
   </OPTIONS>
   <LINKER>
     <ALLOBJ value="c0w32.obj $(OBJFILES)"/>
@@ -78,9 +77,9 @@
 IncludeVerInfo=1
 AutoIncBuild=1
 MajorVer=1
-MinorVer=5
-Release=11
-Build=19
+MinorVer=6
+Release=999
+Build=2
 Debug=0
 PreRelease=0
 Special=0
@@ -92,13 +91,13 @@
 [Version Info Keys]
 CompanyName=CrossWire Bible Society
 FileDescription=Windows User Interface to The SWORD Project
-FileVersion=1.5.11.19
+FileVersion=1.6.999.2
 InternalName=biblecs
-LegalCopyright=(c) 1990-2008 CrossWire Bible Society under the terms of the GNU General Public License
+LegalCopyright=(c) 1990-2013 CrossWire Bible Society under the terms of the GNU General Public License
 LegalTrademarks=
 OriginalFilename=
 ProductName=The SWORD Project
-ProductVersion=1.5.11
+ProductVersion=1.7.0RC1
 Comments=Seek Him and you will find Him
 
 [HistoryLists\hlIncludePath]
@@ -156,8 +155,8 @@
 
 [HistoryLists\hlConditionals]
 Count=19
-Item0=_ICU_;_ICUSWORD_;USBINARY;U_HAVE_PLACEMENT_NEW=0;USELUCENE;_CL_DISABLE_MULTITHREADING;CURLAVAILABLE;_DEBUG
-Item1=_ICU_;_ICUSWORD_;USBINARY;U_HAVE_PLACEMENT_NEW=0;USELUCENE;_CL_DISABLE_MULTITHREADING;CURLAVAILABLE
+Item0=_ICU_;_ICUSWORD_;USBINARY;U_HAVE_PLACEMENT_NEW=0;USELUCENE;_CL_DISABLE_MULTITHREADING;CURLAVAILABLE
+Item1=_ICU_;_ICUSWORD_;USBINARY;U_HAVE_PLACEMENT_NEW=0;USELUCENE;_CL_DISABLE_MULTITHREADING;CURLAVAILABLE;_DEBUG
 Item2=_ICU_;_ICUSWORD_;USBINARY;U_HAVE_PLACEMENT_NEW=0;USELUCENE;_CL_DISABLE_MULTITHREADING;_DEBUG;CURLAVAILABLE
 Item3=_ICU_;_ICUSWORD_;USBINARY;U_HAVE_PLACEMENT_NEW=0;USELUCENE;_CL_DISABLE_MULTITHREADING;_DEBUG
 Item4=_ICU_;_ICUSWORD_;USBINARY;U_HAVE_PLACEMENT_NEW=0;USELUCENE;_CL_DISABLE_MULTITHREADING

Modified: branches/BCB5/sword.res
===================================================================
(Binary files differ)

Modified: branches/BCB5/vrslstfrm.cpp
===================================================================
--- branches/BCB5/vrslstfrm.cpp	2011-07-19 19:58:53 UTC (rev 511)
+++ branches/BCB5/vrslstfrm.cpp	2013-07-21 21:05:23 UTC (rev 512)
@@ -50,7 +50,7 @@
 	}
 	if (target) {
 		ListKey key;
-		SWKey *tkey = target->CreateKey();
+		SWKey *tkey = target->createKey();
 		*tkey = WideStringToUTF8(ListBox1->Items->Strings[ListBox1->ItemIndex]).c_str();
 		key << *tkey;
 		delete tkey;
@@ -87,7 +87,7 @@
 
 
 	ListBox1->Items->Clear();
-	for (verseList = TOP; (!verseList.Error()); verseList++)
+	for (verseList = TOP; (!verseList.popError()); verseList++)
 		ListBox1->Items->Add(UTF8ToWideString((const char *)verseList));
 }
 
@@ -201,7 +201,7 @@
 		memset(buf, 0, size+5);
 		read(fd->getFd(), buf, size);
 		FileMgr::getSystemFileMgr()->close(fd);
-		verses = parser.ParseVerseList(buf, parser, false);
+		verses = parser.parseVerseList(buf, parser, false);
 		fillWithVerseList(verses);
 		delete [] buf;
 	}




More information about the sword-cvs mailing list