aboutsummaryrefslogtreecommitdiffstats
path: root/apps/windoze/CBuilder4/BibleCS
diff options
context:
space:
mode:
authordanglassey <danglassey>2002-08-14 09:57:17 +0000
committerdanglassey <danglassey>2002-08-14 09:57:17 +0000
commitc9458897ebbb739d8db83c80e06512d8a612f743 (patch)
treef8c5381045887e34388cc6b26cfccc254bf766dc /apps/windoze/CBuilder4/BibleCS
downloadsword-sf-cvs-c9458897ebbb739d8db83c80e06512d8a612f743.tar.gz
*** empty log message ***
Diffstat (limited to 'apps/windoze/CBuilder4/BibleCS')
-rw-r--r--apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.cpp92
-rw-r--r--apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.dfmbin0 -> 2921 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.h36
-rw-r--r--apps/windoze/CBuilder4/BibleCS/Makefile13
-rw-r--r--apps/windoze/CBuilder4/BibleCS/ModInstForm.cpp14
-rw-r--r--apps/windoze/CBuilder4/BibleCS/ModInstForm.dfmbin0 -> 1539 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/ModInstForm.h27
-rw-r--r--apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.cpp130
-rw-r--r--apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.dfmbin0 -> 3507 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.h64
-rw-r--r--apps/windoze/CBuilder4/BibleCS/back.bmpbin0 -> 778 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/biblecsmgr.cpp80
-rw-r--r--apps/windoze/CBuilder4/BibleCS/biblecsmgr.h22
-rw-r--r--apps/windoze/CBuilder4/BibleCS/bookmark.bmpbin0 -> 758 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/bookmarkfrm.cpp221
-rw-r--r--apps/windoze/CBuilder4/BibleCS/bookmarkfrm.dfmbin0 -> 1627 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/bookmarkfrm.h48
-rw-r--r--apps/windoze/CBuilder4/BibleCS/bookmarks/personal.conf7
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/InstallBtn.BMPbin0 -> 26456 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/RunBtn.BMPbin0 -> 26456 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/alpha.bmpbin0 -> 921656 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.bpr182
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.cpp21
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.resbin0 -> 1896 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/html/Alpha/index.html246
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/html/alpha.html28
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/html/swordalpha.JPGbin0 -> 52 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.cpp48
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.dfmbin0 -> 488254 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.h37
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/sword.bmpbin0 -> 433216 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/swordalpha.BMPbin0 -> 433216 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/cdstartup/swordalpha.JPGbin0 -> 19708 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/confsafe/getsaved.conf10
-rw-r--r--apps/windoze/CBuilder4/BibleCS/confsafe/mods.conf304
-rw-r--r--apps/windoze/CBuilder4/BibleCS/confsafe/wtbsa.conf18
-rw-r--r--apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.cpp46
-rw-r--r--apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.dfmbin0 -> 1353 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.h41
-rw-r--r--apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.cpp24
-rw-r--r--apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.mak55
-rw-r--r--apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.resbin0 -> 876 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/editentryfrm.cpp330
-rw-r--r--apps/windoze/CBuilder4/BibleCS/editentryfrm.dfmbin0 -> 22859 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/editentryfrm.h108
-rw-r--r--apps/windoze/CBuilder4/BibleCS/getsaved.conf8
-rw-r--r--apps/windoze/CBuilder4/BibleCS/mainfrm.cpp1151
-rw-r--r--apps/windoze/CBuilder4/BibleCS/mainfrm.dfmbin0 -> 11039 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/mainfrm.h252
-rw-r--r--apps/windoze/CBuilder4/BibleCS/mods.conf487
-rw-r--r--apps/windoze/CBuilder4/BibleCS/newbmfilefrm.cpp14
-rw-r--r--apps/windoze/CBuilder4/BibleCS/newbmfilefrm.dfmbin0 -> 1734 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/newbmfilefrm.h27
-rw-r--r--apps/windoze/CBuilder4/BibleCS/optionfrm.cpp22
-rw-r--r--apps/windoze/CBuilder4/BibleCS/optionfrm.dfmbin0 -> 3375 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/optionfrm.h47
-rw-r--r--apps/windoze/CBuilder4/BibleCS/options.conf22
-rw-r--r--apps/windoze/CBuilder4/BibleCS/search.bmpbin0 -> 780 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/searchfrm.cpp192
-rw-r--r--apps/windoze/CBuilder4/BibleCS/searchfrm.dfmbin0 -> 3038 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/searchfrm.h69
-rw-r--r--apps/windoze/CBuilder4/BibleCS/sword.bpr201
-rw-r--r--apps/windoze/CBuilder4/BibleCS/sword.cpp41
-rw-r--r--apps/windoze/CBuilder4/BibleCS/sword.icobin0 -> 766 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/sword.resbin0 -> 1964 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/swordlib.bpr208
-rw-r--r--apps/windoze/CBuilder4/BibleCS/swordlib.cpp45
-rw-r--r--apps/windoze/CBuilder4/BibleCS/swordprj.bpg24
-rw-r--r--apps/windoze/CBuilder4/BibleCS/versesel.cpp22
-rw-r--r--apps/windoze/CBuilder4/BibleCS/versesel.dfmbin0 -> 773 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/versesel.h27
-rw-r--r--apps/windoze/CBuilder4/BibleCS/vrslstfrm.cpp48
-rw-r--r--apps/windoze/CBuilder4/BibleCS/vrslstfrm.dfmbin0 -> 563 bytes
-rw-r--r--apps/windoze/CBuilder4/BibleCS/vrslstfrm.h29
-rw-r--r--apps/windoze/CBuilder4/BibleCS/wtbsa.conf20
75 files changed, 5208 insertions, 0 deletions
diff --git a/apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.cpp b/apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.cpp
new file mode 100644
index 0000000..d511378
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.cpp
@@ -0,0 +1,92 @@
+//---------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "AboutBoxfrm.h"
+#include "mainfrm.h"
+//---------------------------------------------------------------------
+#pragma resource "*.dfm"
+TAboutBox *AboutBox;
+//---------------------------------------------------------------------
+__fastcall TAboutBox::TAboutBox(TComponent* AOwner) : TForm(AOwner) {
+}
+
+
+//---------------------------------------------------------------------
+void __fastcall TAboutBox::FormShow(TObject *Sender) {
+ int i;
+ static char *modtypes[] = {"Biblical Texts", "Commentaries", "Lexicons / Dictionaries"};
+
+ string newtext, tmptext;
+ ModMap::iterator it;
+ SectionMap::iterator it2;
+ ConfigEntMap::iterator it3;
+ TMemoryStream *RTFStream = new TMemoryStream();
+
+ newtext = "{\\rtf1\\ansi{\\fonttbl{\\f4\\froman\\fcharset0\\fprq2 Times New Roman;}}{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;}";
+ newtext += "\\pard\\qc\\cf2\\nowidctlpar{\\fs30\\b Installed Modules } \\par \\pard \\nowidctlpar \\cf0 ";
+
+ for (i = 0; i < 3; i++) {
+ newtext += "\\par {\\fs28\\b ";
+ 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 (it2 != Form1->mainmgr->config->Sections.end()) {
+ newtext = newtext + "{\\fs24\\cf1\\b " + (*it).second->Name() + " }\t";
+ newtext = newtext + "{\\fs24\\i " + (*it).second->Description() + " } \\par ";
+ it3 = (*it2).second.find("About");
+ if (it3 != (*it2).second.end())
+ newtext = newtext + "{\\fs20\\cf0 " + (*it3).second.c_str() + " }\\par \\par";
+ }
+ }
+ }
+ }
+ newtext += "{\\fs24 \\par }}";
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(newtext.c_str(), newtext.length());
+ RTFStream->Position = 0;
+ ModulesAbout->Lines->LoadFromStream(RTFStream);
+
+ newtext = "{\\rtf1\\ansi{\\fonttbl{\\f4\\froman\\fcharset0\\fprq2 Times New Roman;}}{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;}";
+ newtext += "\\fs20 Thanx to God for His GREAT MERCY and LOVE: Never did anyone have so much, give it up so completely, to humble Himself and die such a death, all for such an ENEMY as me. -Philippians 2:6-8; Romans 5:6-10 \\par\\par ";
+ newtext += "For the latest updates and info, visit us on the net at: \\par ";
+ newtext += "http://www.crosswire.org \\par\\par ";
+ newtext += "Send us feedback, bug reports, or patches/additions: \\par ";
+ newtext += "sword-feedback@crosswire.org \\par ";
+ newtext += "sword-bugs@crosswire.org \\par ";
+ newtext += "sword-patches@crosswire.org (please include unified diffs if possible (diff -u)) \\par\\par ";
+ newtext += "To be on our mailing list: \\par ";
+ newtext += "sword-list-info@crosswire.org \\par\\par ";
+ newtext += "This software is provided free for the study of God and His Word. You DO NOT NEED TO license or pay for this software. Please: copy it freely and distribute it to athiests in Russia :), post it on your favorite FTP site, write your own modules and features for it, include it on your lastest freeware CDROM, incorporate all the cool utility classes into a product of your own, write a tract module for the program and sneak it onto all of your co-workers' computers and blame it on a virus, make fun of your pastor for spending $400 dollars on a similar package, give it to your pastor who can't figure out how to use his $400 dollar package :) \\par\\par ";
+ newtext += "OK, if you still feel the need, you can help our organization out at: \\par\\par ";
+ newtext += "CrossWire Software & Bible Society \\par ";
+ newtext += "P. O. Box 2528 \\par ";
+ newtext += "Tempe, AZ 85280-2528 \\par\\par ";
+ newtext += "... but I must warn you, your contributions will probably just go toward paying my way through college, or to give me a little more time to spend on the project :) \\par\\par ";
+ newtext += "\tMay the peace of GOD consume your heart, \\par ";
+ newtext += "\t\tThe SWORD Project Development Team \\par ";
+ newtext += "_________________________________________ \\par ";
+ newtext += "Thanks be to God for all the wonderful people who have contributed in so many ways to make this project possible. These are just a few (I could not possibly name them all) who have directly contributed an abundance of their time and talents: \\par\\par ";
+ newtext += "All the people at The Outpost in Scottsdale for testing and suggestions; ";
+ newtext += "The Bible Foundation: Jerry Kingery, Jerry Hastings; Geoffrey W. Hastings; ";
+ newtext += "William Dicks; Everyone on b-greek@franklin.oit.unc.edu; Michael Paul Johnson; ";
+ newtext += "Roland Nygren; Bayu Gunawan; Bill Kincaid; Mark Fuller; Larry Pierce; Franklin Bratcher; ";
+ newtext += "Gregory Hall; Luis Cortes; Steve Hiner; Kristof Petr; Paul Gear and OpenBible; Chris Bitmead (go Scheme!); ";
+ newtext += "Chris Little; Brook Humphrey; Torsten Uhlmann, Joachim Ansorg, Darwin Gregory and the BibleTime Team; ";
+ newtext += "Darren DeMeulenaere";
+ newtext += "\\par\\par ";
+ newtext += "{\\i And the list goes on...} \\par \\par ";
+ newtext += "{\\fs24 \\par }}";
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(newtext.c_str(), newtext.length());
+ RTFStream->Position = 0;
+ CreditAbout->Lines->LoadFromStream(RTFStream);
+ delete RTFStream;
+}
+//---------------------------------------------------------------------------
+
+
+
+
diff --git a/apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.dfm b/apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.dfm
new file mode 100644
index 0000000..3316b80
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.h b/apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.h
new file mode 100644
index 0000000..77da4f8
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/AboutBoxfrm.h
@@ -0,0 +1,36 @@
+//----------------------------------------------------------------------------
+#ifndef AboutBoxfrmH
+#define AboutBoxfrmH
+//----------------------------------------------------------------------------
+#include <vcl\System.hpp>
+#include <vcl\Windows.hpp>
+#include <vcl\SysUtils.hpp>
+#include <vcl\Classes.hpp>
+#include <vcl\Graphics.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Buttons.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include <vcl\ComCtrls.hpp>
+//----------------------------------------------------------------------------
+class TAboutBox : public TForm
+{
+__published:
+ TPanel *Panel1;
+ TImage *ProgramIcon;
+ TLabel *ProductName;
+ TLabel *Version;
+ TLabel *Copyright;
+ TButton *OKButton;
+ TRichEdit *CreditAbout;
+ TRichEdit *ModulesAbout;
+ void __fastcall FormShow(TObject *Sender);
+private:
+public:
+ virtual __fastcall TAboutBox(TComponent* AOwner);
+};
+//----------------------------------------------------------------------------
+extern TAboutBox *AboutBox;
+//----------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/BibleCS/Makefile b/apps/windoze/CBuilder4/BibleCS/Makefile
new file mode 100644
index 0000000..ed02952
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/Makefile
@@ -0,0 +1,13 @@
+
+root := ../../../..
+pre-targets :=
+include ${root}/Makefile.cfg
+
+
+s = $(c) $(cpp)
+d = $(c:%.c=%.d) $(cpp:%.cpp=%.d)
+o = $(c:%.c=%.o) $(cpp:%.cpp=%.o)
+
+ifneq ($(nodeps),yes)
+-include $(d)
+endif
diff --git a/apps/windoze/CBuilder4/BibleCS/ModInstForm.cpp b/apps/windoze/CBuilder4/BibleCS/ModInstForm.cpp
new file mode 100644
index 0000000..1763817
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/ModInstForm.cpp
@@ -0,0 +1,14 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "ModInstForm.h"
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TModInstFrm *ModInstFrm;
+//---------------------------------------------------------------------------
+__fastcall TModInstFrm::TModInstFrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//--------------------------------------------------------------------------- \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/ModInstForm.dfm b/apps/windoze/CBuilder4/BibleCS/ModInstForm.dfm
new file mode 100644
index 0000000..4e01f3d
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/ModInstForm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/ModInstForm.h b/apps/windoze/CBuilder4/BibleCS/ModInstForm.h
new file mode 100644
index 0000000..f0cb90a
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/ModInstForm.h
@@ -0,0 +1,27 @@
+//---------------------------------------------------------------------------
+#ifndef ModInstFormH
+#define ModInstFormH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ComCtrls.hpp>
+#include <vcl\ExtCtrls.hpp>
+//---------------------------------------------------------------------------
+class TModInstFrm : public TForm
+{
+__published: // IDE-managed Components
+ TRichEdit *AboutText;
+ TPanel *Panel1;
+ TButton *Button1;
+ TLabel *ModText;
+private: // User declarations
+public: // User declarations
+ __fastcall TModInstFrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TModInstFrm *ModInstFrm;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.cpp b/apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.cpp
new file mode 100644
index 0000000..ef84061
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.cpp
@@ -0,0 +1,130 @@
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+
+#include "RangeMaintFrm.h"
+#include <versekey.h>
+#include <listkey.h>
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TRangeMaintForm *RangeMaintForm;
+
+//---------------------------------------------------------------------------
+__fastcall TRangeMaintForm::TRangeMaintForm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::FormShow(TObject *Sender)
+{
+ ConfigEntMap::iterator loop, end;
+ config = new SWConfig("./options.conf");
+ ListBox1->Clear();
+ loop = config->Sections["CustomRanges"].begin();
+ end = config->Sections["CustomRanges"].end();
+ while (loop != end) {
+ TCustomRange *rs = new TCustomRange(loop->first.c_str(), loop->second.c_str());
+ ListBox1->Items->AddObject(rs->name.c_str(), rs);
+ loop++;
+ }
+ ListBox1->ItemIndex = 0;
+ if (ListBox1->ItemIndex) {
+ SpeedButton1Click(0);
+ }
+ else {
+ ListBox1Click(0);
+ Button1Click(0);
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::FormClose(TObject *Sender,
+ TCloseAction &Action)
+{
+ delete config;
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::SpeedButton4Click(TObject *Sender)
+{
+ ModalResult = mrCancel;
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::ListBox1Click(TObject *Sender)
+{
+ if (ListBox1->ItemIndex >= 0) {
+ TCustomRange *rs = (TCustomRange *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+
+ NameEdit->Text = rs->name.c_str();
+ TextEdit->Text = rs->text.c_str();
+ }
+ else {
+ NameEdit->Text = "";
+ TextEdit->Text = "";
+ }
+ Button1Click(0);
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::NameEditChange(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ TCustomRange *rs = (TCustomRange *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+ rs->name = NameEdit->Text.c_str();
+ ListBox1->Items->Strings[ListBox1->ItemIndex] = rs->name.c_str();
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::TextEditChange(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ TCustomRange *rs = (TCustomRange *)ListBox1->Items->Objects[ListBox1->ItemIndex];
+ rs->text = TextEdit->Text.c_str();
+ Button1Click(0);
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::SpeedButton2Click(TObject *Sender)
+{
+ if (ListBox1->ItemIndex < 0)
+ return;
+ int delItem = ListBox1->ItemIndex;
+ ListBox1->Items->Delete(delItem);
+ ListBox1->ItemIndex = (delItem < ListBox1->Items->Count) ? delItem : delItem - 1;
+ ListBox1Click(0);
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::SpeedButton1Click(TObject *Sender)
+{
+ TCustomRange *rs = new TCustomRange("[New Custom Range]", "");
+ ListBox1->ItemIndex = ListBox1->Items->AddObject(rs->name.c_str(), rs);
+
+ ListBox1Click(0);
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::SpeedButton3Click(TObject *Sender)
+{
+ TCustomRange *rs;
+ config->Sections["CustomRanges"].erase(config->Sections["CustomRanges"].begin(), config->Sections["CustomRanges"].end());
+ for (int i = 0; i < ListBox1->Items->Count; i++) {
+ rs = (TCustomRange *)ListBox1->Items->Objects[i];
+ config->Sections["CustomRanges"].insert(ConfigEntMap::value_type(rs->name.c_str(), rs->text.c_str()));
+ }
+ config->Save();
+ ModalResult = mrOk;
+}
+//---------------------------------------------------------------------------
+void __fastcall TRangeMaintForm::Button1Click(TObject *Sender)
+{
+ VerseKey key;
+ ListBox2->Clear();
+ ListKey verses = key.ParseVerseList(TextEdit->Text.c_str(), key, true);
+ for (int i = 0; i < verses.Count(); i++) {
+ VerseKey *element = dynamic_cast<VerseKey *>(verses.GetElement(i));
+ if (element) {
+ ListBox2->Items->Add((string(element->LowerBound()) + " - " + string(element->UpperBound())).c_str());
+ }
+ else ListBox2->Items->Add((const char *)*verses.GetElement(i));
+ }
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.dfm b/apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.dfm
new file mode 100644
index 0000000..91bee28
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.h b/apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.h
new file mode 100644
index 0000000..e279783
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/RangeMaintFrm.h
@@ -0,0 +1,64 @@
+//---------------------------------------------------------------------------
+
+#ifndef RangeMaintFrmH
+#define RangeMaintFrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <Buttons.hpp>
+#include <ExtCtrls.hpp>
+#include <swconfig.h>
+//---------------------------------------------------------------------------
+class TRangeMaintForm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel4;
+ TSpeedButton *SpeedButton3;
+ TSpeedButton *SpeedButton4;
+ TPanel *Panel2;
+ TPanel *Panel1;
+ TPanel *Panel3;
+ TSpeedButton *SpeedButton1;
+ TSpeedButton *SpeedButton2;
+ TListBox *ListBox1;
+ TPanel *Panel5;
+ TLabel *Label1;
+ TLabel *Label2;
+ TEdit *NameEdit;
+ TEdit *TextEdit;
+ TPanel *Panel6;
+ TListBox *ListBox2;
+ TLabel *Label3;
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+ void __fastcall SpeedButton4Click(TObject *Sender);
+ void __fastcall ListBox1Click(TObject *Sender);
+ void __fastcall NameEditChange(TObject *Sender);
+ void __fastcall TextEditChange(TObject *Sender);
+ void __fastcall SpeedButton2Click(TObject *Sender);
+ void __fastcall SpeedButton1Click(TObject *Sender);
+ void __fastcall SpeedButton3Click(TObject *Sender);
+ void __fastcall Button1Click(TObject *Sender);
+private: // User declarations
+ SWConfig *config;
+public: // User declarations
+ __fastcall TRangeMaintForm(TComponent* Owner);
+};
+
+class TCustomRange : public TObject {
+public:
+ string name;
+ string text;
+ TCustomRange(const char *name, const char *text) {
+ this->name = name;
+ this->text = text;
+ }
+};
+
+
+//---------------------------------------------------------------------------
+extern PACKAGE TRangeMaintForm *RangeMaintForm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/BibleCS/back.bmp b/apps/windoze/CBuilder4/BibleCS/back.bmp
new file mode 100644
index 0000000..e1f0f93
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/back.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/biblecsmgr.cpp b/apps/windoze/CBuilder4/BibleCS/biblecsmgr.cpp
new file mode 100644
index 0000000..306340a
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/biblecsmgr.cpp
@@ -0,0 +1,80 @@
+//---------------------------------------------------------------------------
+#include "BibleCSMGR.h"
+#include <swconfig.h>
+#include <gbfrtf.h>
+#include <rwprtf.h>
+#include <rawgbf.h>
+//---------------------------------------------------------------------------
+BibleCSMGR::BibleCSMGR(TModInstFrm *iModInstFrm) : SWMgr(0, 0, false)
+{
+ gbftortf = new GBFRTF();
+ rwptortf = new RWPRTF();
+ ModInstFrm = iModInstFrm;
+ Load();
+}
+
+
+BibleCSMGR::~BibleCSMGR()
+{
+ if (gbftortf)
+ delete gbftortf;
+
+ if (rwptortf)
+ delete rwptortf;
+}
+
+
+void BibleCSMGR::AddRenderFilters(SWModule *module, ConfigEntMap &section)
+{
+ string sourceformat;
+ ConfigEntMap::iterator entry;
+
+ sourceformat = ((entry = section.find("SourceType")) != section.end()) ? (*entry).second : (string)"";
+ // Temporary: To support old module types
+ if (sourceformat.empty()) {
+ try {
+ if (dynamic_cast<RawGBF *>(module))
+ sourceformat = "GBF";
+ }
+ catch ( ... ) {}
+ }
+
+ if (!stricmp(sourceformat.c_str(), "GBF")) {
+ module->AddRenderFilter(gbftortf);
+ }
+
+ if (!stricmp(module->Name(), "RWP"))
+ module->AddRenderFilter(rwptortf);
+}
+
+
+char BibleCSMGR::AddModToConfig(int conffd, const char *fname)
+{
+ SWConfig modconf(fname);
+ SectionMap::iterator section;
+ AnsiString abouttext = "";
+ bool logflag;
+ TMemoryStream *RTFStream = new TMemoryStream();
+ char retval;
+
+ section = modconf.Sections.begin();
+
+ ModInstFrm->ModText->Caption = "";
+ ModInstFrm->ModText->Caption = ModInstFrm->ModText->Caption + "Found new module [ " + (*(*section).second.find("Description")).second.c_str() + " ]. Installing...";
+
+ abouttext = abouttext + "{\\fs20\\cf0 " + (*(*section).second.find("About")).second.c_str() + " }";
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(abouttext.c_str(), abouttext.Length());
+ RTFStream->Position = 0;
+ ModInstFrm->AboutText->Lines->LoadFromStream(RTFStream);
+ delete RTFStream;
+
+ ModInstFrm->ShowModal();
+
+ logflag = SWLog::systemlog->log;
+ SWLog::systemlog->log = false;
+ retval = SWMgr::AddModToConfig(conffd, fname);
+ SWLog::systemlog->log = logflag;
+
+ return retval;
+}
diff --git a/apps/windoze/CBuilder4/BibleCS/biblecsmgr.h b/apps/windoze/CBuilder4/BibleCS/biblecsmgr.h
new file mode 100644
index 0000000..61600ee
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/biblecsmgr.h
@@ -0,0 +1,22 @@
+//---------------------------------------------------------------------------
+#ifndef biblecsmgrH
+#define biblecsmgrH
+#include <swmgr.h>
+#include "ModInstForm.h"
+//---------------------------------------------------------------------------
+class BibleCSMGR : public SWMgr {
+ TModInstFrm *ModInstFrm;
+ SWFilter *gbftortf;
+ SWFilter *rwptortf;
+
+protected:
+ virtual char AddModToConfig(int conffd, const char *fname);
+ virtual void AddRenderFilters(SWModule *module, ConfigEntMap &section);
+
+public:
+ BibleCSMGR(TModInstFrm *iModInstFrm);
+ virtual ~BibleCSMGR();
+};
+
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/bookmark.bmp b/apps/windoze/CBuilder4/BibleCS/bookmark.bmp
new file mode 100644
index 0000000..4b6df0c
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/bookmark.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.cpp b/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.cpp
new file mode 100644
index 0000000..58c5f73
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.cpp
@@ -0,0 +1,221 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "bookmarkfrm.h"
+#include <swconfig.h>
+#include <dirent.h>
+#include "mainfrm.h"
+#include "newbmfilefrm.h"
+#include <io.h>
+#include <dir.h>
+
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TBookmarksfrm *Bookmarksfrm;
+//---------------------------------------------------------------------------
+__fastcall TBookmarksfrm::TBookmarksfrm(TComponent* Owner)
+ : TForm(Owner)
+{
+ SWConfig *bookmarks;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ TTreeNode *node;
+
+ DIR *dir;
+ struct dirent *ent;
+ string conffile;
+ bmdir = "";
+
+ bmtree->Items->Clear();
+
+ if ((sit = Form1->optionsconf->Sections.find("Bookmarks")) != Form1->optionsconf->Sections.end())
+ bmdir = ((eit = (*sit).second.find("Directory")) != (*sit).second.end()) ? (*eit).second : (string)"";
+
+// Add Personal Bookmarks first, or if they don't exist, ADD A BLANK BRANCH first in the tree
+// --------------------------------------------------------------------------
+
+ if (bmdir == "")
+ bmdir = "./bookmarks/";
+
+ if (access(bmdir.c_str(), 0)) { // directory does not exist
+ _mkdir(bmdir.c_str());
+ }
+
+ conffile = bmdir + "personal.conf";
+ bookmarks = new SWConfig(conffile.c_str());
+ if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) {
+ if ((eit = (*sit).second.begin()) != (*sit).second.end()) {
+ node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ AddSection(bookmarks, bmtree, node, (*eit).first.c_str());
+ }
+ }
+ else bmtree->Items->AddObject(bmtree->Selected, "Personal Bookmarks", *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ delete bookmarks;
+// --------------------------------------------------------------------------
+
+// Add all other bookmark files ---------------------------------------------
+ if (dir = opendir(bmdir.c_str())) {
+ rewinddir(dir);
+ while ((ent = readdir(dir))) {
+ if ((strcmp(ent->d_name, "personal.conf")) && (strcmp(ent->d_name, "."))&& (strcmp(ent->d_name, ".."))) {
+ conffile = bmdir;
+ conffile += ent->d_name;
+ bookmarks = new SWConfig(conffile.c_str());
+ if ((sit = bookmarks->Sections.find("ROOT")) != bookmarks->Sections.end()) {
+ if ((eit = (*sit).second.begin()) != (*sit).second.end()) { // Currently supports only ONE topsection per file because on save, each topsection designates which file to rewrite
+ node = bmtree->Items->AddObject(bmtree->Selected, (*eit).second.c_str(), *bmfiles.insert(bmfiles.begin(), new String(conffile.c_str())));
+ AddSection(bookmarks, bmtree, node, (*eit).first.c_str());
+ }
+ }
+ delete bookmarks;
+ }
+ }
+ closedir(dir);
+ }
+}
+
+
+__fastcall TBookmarksfrm::~TBookmarksfrm() {
+ list <String *>::iterator it;
+
+ SaveBookmarks();
+
+ for (it = bmfiles.begin(); it != bmfiles.end(); it++)
+ delete *it;
+}
+
+
+//---------------------------------------------------------------------------
+
+void TBookmarksfrm::AddSection(SWConfig *config, TTreeView *tree, TTreeNode *parent, String section)
+{
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ TTreeNode *node;
+
+ if ((sit = config->Sections.find(section.c_str())) != config->Sections.end()) {
+ for (eit = (*sit).second.begin(); eit != (*sit).second.end(); eit++) {
+ node = tree->Items->AddChild(parent, (*eit).second.c_str());
+ AddSection(config, tree, node, (*eit).first.c_str());
+ }
+ }
+}
+
+
+void __fastcall TBookmarksfrm::bmtreeDragDrop(TObject *Sender, TObject *Source,
+ int X, int Y)
+{
+ bmtree->Selected->MoveTo(bmtree->DropTarget, naAddChildFirst);
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::bmtreeDragOver(TObject *Sender, TObject *Source,
+ int X, int Y, TDragState State, bool &Accept)
+{
+ Accept = false;
+
+ if (String(Source->ClassName()) == "TTreeView") {
+ if (Source == bmtree) {
+ if (bmtree->Selected->Data) {
+ if (strcmp((*(String*)(bmtree->Selected->Data)).c_str(),(bmdir + "personal.conf").c_str())) {
+ Accept = true;
+ }
+ }
+ else Accept = true;
+ }
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::bmtreeDblClick(TObject *Sender)
+{
+ if (!bmtree->Selected->getFirstChild()) {
+ Form1->DefaultVSKey = bmtree->Selected->Text.c_str();
+ Form1->TextKeyChanged();
+ }
+
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::AddChild1Click(TObject *Sender)
+{
+ bmtree->Selected->Expand(false);
+ bmtree->Items->AddChildFirst(bmtree->Selected, "New Topic")->EditText();
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::Delete1Click(TObject *Sender)
+{
+ if (bmtree->Selected->Data) {
+ if (strcmp((*(String*)(bmtree->Selected->Data)).c_str(),(bmdir + "personal.conf").c_str())) {
+ bmtree->Selected->Delete();
+ }
+ }
+ else bmtree->Selected->Delete();
+}
+//---------------------------------------------------------------------------
+void __fastcall TBookmarksfrm::Rename1Click(TObject *Sender)
+{
+ bmtree->Selected->EditText();
+}
+//---------------------------------------------------------------------------
+
+void TBookmarksfrm::SaveBookmarks()
+{
+ TTreeNode *tree = 0;
+ SWConfig *bmconf;
+ ConfigEntMap emap;
+ SectionMap::iterator sit;
+ char buf[15];
+ bool personal, other;
+ list <String *>::iterator it;
+ string persfile;
+
+ if (bmtree->Items->Count)
+ tree = bmtree->Items->Item[0];
+
+ if ((sit = Form1->optionsconf->Sections.find("Bookmarks")) != Form1->optionsconf->Sections.end()) {
+ personal = (atoi((*(*sit).second.find("AutoSavePersonal")).second.c_str())) ? true:false;
+ other = (atoi((*(*sit).second.find("AutoSaveOther")).second.c_str())) ? true:false;
+ }
+
+ persfile = bmdir + "personal.conf";
+ for (it = bmfiles.begin(); it != bmfiles.end(); it++) { // delete all bookmark files before saving in case a top level was deleted
+ if (((!strcmp((*it)->c_str(), persfile.c_str())) && personal) || ((strcmp((*it)->c_str(), persfile.c_str())) && other))
+ unlink((*it)->c_str());
+ }
+
+ for (;tree;tree = tree->getNextSibling()) {
+ if (((*((String *)tree->Data) == persfile.c_str()) && personal) || ((*((String *)tree->Data) != persfile.c_str()) && other)) {
+ bmconf = new SWConfig(((String *)tree->Data)->c_str());
+ emap = bmconf->Sections["ROOT"];
+ sprintf(buf, "branch%d", tree->AbsoluteIndex);
+ emap.erase(buf); emap.insert(ConfigEntMap::value_type(buf, tree->Text.c_str()));
+ AddSectionToConf(bmconf, buf, tree);
+ bmconf->Sections["ROOT"] = emap;
+ bmconf->Save();
+ delete bmconf;
+ }
+ }
+}
+
+
+void TBookmarksfrm::AddSectionToConf(SWConfig *config, String section, TTreeNode *tree) {
+ ConfigEntMap sit;
+ char buf[15];
+
+ if (tree = tree->getFirstChild()) {
+ sit = config->Sections[section.c_str()];
+ for (; tree; tree = tree->getNextSibling()) {
+ sprintf(buf, "branch%d", tree->AbsoluteIndex);
+ sit.erase(buf); sit.insert(ConfigEntMap::value_type(buf, tree->Text.c_str()));
+ AddSectionToConf(config, buf, tree);
+ }
+ config->Sections[section.c_str()] = sit;
+ }
+}
+
+void __fastcall TBookmarksfrm::NewBookmarkFile1Click(TObject *Sender)
+{
+ if (NewBMfrm->ShowModal() == mrOk) {
+ bmtree->Items->AddObject(bmtree->Items->Item[0], NewBMfrm->bmtitle->Text, *bmfiles.insert(bmfiles.begin(), new String(String(bmdir.c_str()) + NewBMfrm->bmfile->Text + String(".conf"))));
+ }
+}
+//--------------------------------------------------------------------------- \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.dfm b/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.dfm
new file mode 100644
index 0000000..deb814d
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.h b/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.h
new file mode 100644
index 0000000..4c37796
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/bookmarkfrm.h
@@ -0,0 +1,48 @@
+//---------------------------------------------------------------------------
+#ifndef bookmarkfrmH
+#define bookmarkfrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ComCtrls.hpp>
+#include <swconfig.h>
+#include <vcl\Menus.hpp>
+#include <list>
+//---------------------------------------------------------------------------
+class TBookmarksfrm : public TForm
+{
+__published: // IDE-managed Components
+ TTreeView *bmtree;
+ TPopupMenu *BMPopup;
+ TMenuItem *Delete1;
+ TMenuItem *AddChild1;
+ TMenuItem *Rename1;
+ TMenuItem *N1;
+ TMenuItem *NewBookmarkFile1;
+ void __fastcall bmtreeDragDrop(TObject *Sender, TObject *Source, int X, int Y);
+ void __fastcall bmtreeDragOver(TObject *Sender, TObject *Source, int X, int Y,
+ TDragState State, bool &Accept);
+ void __fastcall bmtreeDblClick(TObject *Sender);
+ void __fastcall AddChild1Click(TObject *Sender);
+ void __fastcall Delete1Click(TObject *Sender);
+ void __fastcall Rename1Click(TObject *Sender);
+ void __fastcall NewBookmarkFile1Click(TObject *Sender);
+private: // User declarations
+ void AddSection(SWConfig *config, TTreeView *tree, TTreeNode *parent, String section);
+ list <String *> bmfiles; // so we can delete each display we create
+
+
+public: // User declarations
+ string bmdir;
+ __fastcall TBookmarksfrm(TComponent* Owner);
+ __fastcall ~TBookmarksfrm();
+ void SaveBookmarks();
+ void AddSectionToConf(SWConfig *config, String section, TTreeNode *tree);
+};
+//---------------------------------------------------------------------------
+extern TBookmarksfrm *Bookmarksfrm;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/bookmarks/personal.conf b/apps/windoze/CBuilder4/BibleCS/bookmarks/personal.conf
new file mode 100644
index 0000000..b4af089
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/bookmarks/personal.conf
@@ -0,0 +1,7 @@
+
+[ROOT]
+branch0=Personal Bookmarks
+
+[branch0]
+branch1=James 1:19
+
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/InstallBtn.BMP b/apps/windoze/CBuilder4/BibleCS/cdstartup/InstallBtn.BMP
new file mode 100644
index 0000000..1a4cc45
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/InstallBtn.BMP
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/RunBtn.BMP b/apps/windoze/CBuilder4/BibleCS/cdstartup/RunBtn.BMP
new file mode 100644
index 0000000..dc698d5
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/RunBtn.BMP
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/alpha.bmp b/apps/windoze/CBuilder4/BibleCS/cdstartup/alpha.bmp
new file mode 100644
index 0000000..8357474
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/alpha.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.bpr b/apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.bpr
new file mode 100644
index 0000000..8c2df01
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.bpr
@@ -0,0 +1,182 @@
+# ---------------------------------------------------------------------------
+!if !$d(BCB)
+BCB = $(MAKEDIR)\..
+!endif
+
+# ---------------------------------------------------------------------------
+# IDE SECTION
+# ---------------------------------------------------------------------------
+# The following section of the project makefile is managed by the BCB IDE.
+# It is recommended to use the IDE to change any of the values in this
+# section.
+# ---------------------------------------------------------------------------
+
+VERSION = BCB.04.04
+# ---------------------------------------------------------------------------
+PROJECT = cdstartup.exe
+OBJFILES = cdstartup.obj mainfrm.obj
+RESFILES = cdstartup.res
+RESDEPEN = $(RESFILES) mainfrm.dfm
+LIBFILES =
+LIBRARIES = vcl40.lib
+SPARELIBS = vcl40.lib
+DEFFILE =
+PACKAGES = vclx40.bpi vcl40.bpi vcldb40.bpi vcldbx40.bpi ibsmp40.bpi bcbsmp40.bpi \
+ dclocx40.bpi qrpt40.bpi teeui40.bpi vclsmp40.bpi teedb40.bpi tee40.bpi \
+ dss40.bpi nmfast40.bpi inetdb40.bpi inet40.bpi vclmid40.bpi
+# ---------------------------------------------------------------------------
+PATHCPP = .;
+PATHASM = .;
+PATHPAS = .;
+PATHRC = .;
+DEBUGLIBPATH = $(BCB)\lib\debug
+RELEASELIBPATH = $(BCB)\lib\release
+SYSDEFINES = NO_STRICT
+USERDEFINES =
+# ---------------------------------------------------------------------------
+CFLAG1 = -I$(BCB)\include;$(BCB)\include\vcl -O2 -Hc -H=$(BCB)\lib\vcl40.csm -w -Ve -a8 \
+ -k- -vi -D$(SYSDEFINES);$(USERDEFINES) -c -b- -w-par -w-inl -Vx -tW -tWM
+CFLAG2 =
+CFLAG3 =
+PFLAGS = -U$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \
+ -I$(BCB)\include;$(BCB)\include\vcl -$YD -v -M -JPHNE
+RFLAGS = -i$(BCB)\include;$(BCB)\include\vcl
+AFLAGS = /i$(BCB)\include /i$(BCB)\include\vcl /mx /w2 /zn /d_RTLDLL
+LFLAGS = -L$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) -aa -Tpe -x
+IFLAGS =
+# ---------------------------------------------------------------------------
+ALLOBJ = c0w32.obj $(OBJFILES)
+ALLRES = $(RESFILES)
+ALLLIB = $(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib
+# ---------------------------------------------------------------------------
+!ifdef IDEOPTIONS
+
+[Version Info]
+IncludeVerInfo=1
+AutoIncBuild=0
+MajorVer=1
+MinorVer=4
+Release=5
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=CrossWire Software & Bible Society
+FileDescription=The SWORD Project CD Installer
+FileVersion=1.4.5.0
+InternalName=cdstartup
+LegalCopyright=(c) 1998 CrossWire Software under the GNU General Public License
+LegalTrademarks=
+OriginalFilename=
+ProductName=The SWORD Project
+ProductVersion=1.4.5
+Comments=Seek Him and you will find Him
+
+[HistoryLists\hlIncludePath]
+Count=1
+Item0=$(BCB)\include;$(BCB)\include\vcl
+
+[HistoryLists\hlLibraryPath]
+Count=1
+Item0=$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+InMemoryExe=0
+ShowInfoMsgs=0
+
+!endif
+
+# ---------------------------------------------------------------------------
+# MAKE SECTION
+# ---------------------------------------------------------------------------
+# This section of the project file is not used by the BCB IDE. It is for
+# the benefit of building from the command-line using the MAKE utility.
+# ---------------------------------------------------------------------------
+
+.autodepend
+# ---------------------------------------------------------------------------
+!if !$d(BCC32)
+BCC32 = bcc32
+!endif
+
+!if !$d(DCC32)
+DCC32 = dcc32
+!endif
+
+!if !$d(TASM32)
+TASM32 = tasm32
+!endif
+
+!if !$d(LINKER)
+LINKER = ilink32
+!endif
+
+!if !$d(BRCC32)
+BRCC32 = brcc32
+!endif
+# ---------------------------------------------------------------------------
+!if $d(PATHCPP)
+.PATH.CPP = $(PATHCPP)
+.PATH.C = $(PATHCPP)
+!endif
+
+!if $d(PATHPAS)
+.PATH.PAS = $(PATHPAS)
+!endif
+
+!if $d(PATHASM)
+.PATH.ASM = $(PATHASM)
+!endif
+
+!if $d(PATHRC)
+.PATH.RC = $(PATHRC)
+!endif
+# ---------------------------------------------------------------------------
+$(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE)
+ $(BCB)\BIN\$(LINKER) @&&!
+ $(LFLAGS) $(IFLAGS) +
+ $(ALLOBJ), +
+ $(PROJECT),, +
+ $(ALLLIB), +
+ $(DEFFILE), +
+ $(ALLRES)
+!
+# ---------------------------------------------------------------------------
+.pas.hpp:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.pas.obj:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.cpp.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< }
+
+.c.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< }
+
+.asm.obj:
+ $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@
+
+.rc.res:
+ $(BCB)\BIN\$(BRCC32) $(RFLAGS) -fo$@ $<
+# ---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.cpp b/apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.cpp
new file mode 100644
index 0000000..9f2f8c7
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.cpp
@@ -0,0 +1,21 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+USERES("cdstartup.res");
+USEFORM("mainfrm.cpp", Form1);
+//---------------------------------------------------------------------------
+WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
+{
+ try
+ {
+ Application->Initialize();
+ Application->CreateForm(__classid(TForm1), &Form1);
+ Application->Run();
+ }
+ catch (Exception &exception)
+ {
+ Application->ShowException(&exception);
+ }
+ return 0;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.res b/apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.res
new file mode 100644
index 0000000..ad713e3
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/cdstartup.res
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/html/Alpha/index.html b/apps/windoze/CBuilder4/BibleCS/cdstartup/html/Alpha/index.html
new file mode 100644
index 0000000..698fea2
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/html/Alpha/index.html
@@ -0,0 +1,246 @@
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+ <META NAME="Author" CONTENT="Scribe">
+ <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; I) [Netscape]">
+ <TITLE>The SWORD Project: ALPHA Test Program</TITLE>
+</HEAD>
+<BODY>
+Problems/Bugs found on the ALPHA distribution;
+<TABLE BORDER WIDTH="100%" >
+<TR>
+<TD><B>Problem</B></TD>
+
+<TD><B>Distributions Affected</B></TD>
+
+<TD><B>Comments / Workaround</B></TD>
+</TR>
+
+<TR>
+<TD>Why won't my greek text show up GREEK!</TD>
+
+<TD>All</TD>
+
+<TD>I don't know how to install fonts via InstallShield.&nbsp; Any help
+would be appreciated.&nbsp; To workaround this problem:&nbsp;
+<BR>Go to Windows Control Panel; double-click the Fonts icon; from the
+menu choose: File|Install New Font...; browse (on the CD) to sword\modules\texts\rawtext\nu;
+select the font therein. REBOOT</TD>
+</TR>
+</TABLE>
+Click <A HREF="mailto:sword-bugs@crosswire.org">here</A> to report bugs
+<BR>Click <A HREF="mailto:sword-feedback@crosswire.org">here</A> to send
+comments
+<BR>Click here to enter the Java-based bug reporting tool. [Not implemented
+yet]
+<BR>&nbsp;
+<BR>&nbsp;
+
+<P><B><FONT SIZE=+2>Download</FONT></B>
+<UL><A HREF="sword.exe">sword.exe</A> (v0.1.4; 716,800 bytes; 04-Mar-1998)&nbsp;&nbsp;&nbsp;
+GUI frontend (Latest changes below)
+<UL><A HREF="options.conf">options.conf</A>&nbsp;&nbsp;&nbsp; Put this
+file in the same directory as <B>sword.exe</B>
+<BR>Create a subdirectory called <B>bookmarks</B> under the same directory
+as <B>sword.exe</B>.&nbsp; Put these files there.
+<UL><A HREF="wtbsa.conf">wtbsa.conf</A>&nbsp;&nbsp;&nbsp; example custom
+bookmarks
+<BR><A HREF="getsaved.conf">getsaved.conf</A>&nbsp;&nbsp;&nbsp; example
+custom bookmarks</UL>
+</UL>
+</UL>
+&nbsp;
+<TABLE BORDER WIDTH="100%" >
+<TR>
+<TD><B>Date</B></TD>
+
+<TD><B>Description</B></TD>
+
+<TD><B>Ref.</B></TD>
+</TR>
+
+<TR>
+<TD>04-Mar-1998</TD>
+
+<TD>Added Directory= option in the Bookmarks section of options.conf allowing
+a custom location (to accommodate bookmark saves when running from CDROM)</TD>
+
+<TD></TD>
+</TR>
+
+<TR>
+<TD>04-Mar-1998</TD>
+
+<TD>Handled creation of bookmarks directory if it does not exist</TD>
+
+<TD></TD>
+</TR>
+
+<TR>
+<TD>04-Mar-1998</TD>
+
+<TD>Added restrictions to Personal Bookmarks in the Edit Bookmarks tree</TD>
+
+<TD></TD>
+</TR>
+
+<TR>
+<TD>26-Feb-1998b</TD>
+
+<TD>Enabled Statusbar and added some hint texts to a few controls</TD>
+
+<TD></TD>
+</TR>
+
+<TR>
+<TD>26-Feb-1998b</TD>
+
+<TD>Stretched controls to prevent clipping of text</TD>
+
+<TD>Hastings, J</TD>
+</TR>
+
+<TR>
+<TD>26-Feb-1998</TD>
+
+<TD>Changed Book DropDown to DropDownList and reset CH and VS on change</TD>
+
+<TD>Williams,&nbsp;
+<BR>Hastings, J</TD>
+</TR>
+
+<TR>
+<TD>26-Feb-1998</TD>
+
+<TD>Added Greek2Greek patch</TD>
+
+<TD>Dicks</TD>
+</TR>
+
+<TR>
+<TD>25-Feb-1998</TD>
+
+<TD>Added Options Screen (need file: options.conf)</TD>
+
+<TD>Moore</TD>
+</TR>
+
+<TR>
+<TD>25-Feb-1998</TD>
+
+<TD>Added Bookmarks (need directory ./bookmarks)</TD>
+
+<TD></TD>
+</TR>
+
+<TR>
+<TD>25-Feb-1998</TD>
+
+<TD>Added stable Back Button routines</TD>
+
+<TD></TD>
+</TR>
+
+<TR>
+<TD>25-Feb-1998</TD>
+
+<TD>Added Search Button</TD>
+
+<TD></TD>
+</TR>
+
+<TR>
+<TD>25-Feb-1998</TD>
+
+<TD>Added CTRL-&lt;0--9> and CTRL-SHIFT-&lt;0..9> temporary StateMarks</TD>
+
+<TD>Kingery</TD>
+</TR>
+
+<TR>
+<TD>19-Feb-1998</TD>
+
+<TD>Added William Dicks Greek2Greek functions and right-click option from
+NU module to access.</TD>
+
+<TD>Dicks</TD>
+</TR>
+
+<TR>
+<TD>19-Feb-1998</TD>
+
+<TD>Added Back Button and routines</TD>
+
+<TD></TD>
+</TR>
+
+<TR>
+<TD>27-Jan-1998</TD>
+
+<TD>Added support to rawld.cpp to pad all numeric keys to 5 digits to support
+Strongs numbers</TD>
+
+<TD></TD>
+</TR>
+
+<TR>
+<TD>27-Jan-1998</TD>
+
+<TD>Autoselect current word on dictionary lookup if no text is highlighted</TD>
+
+<TD></TD>
+</TR>
+
+<TR>
+<TD>30-Dec-1997</TD>
+
+<TD>Added spin buttons to verse lookup controls</TD>
+
+<TD>Hastings</TD>
+</TR>
+
+<TR>
+<TD>30-Dec-1997</TD>
+
+<TD>Added count to search window</TD>
+
+<TD>Hastings</TD>
+</TR>
+
+<TR>
+<TD>30-Dec-1997</TD>
+
+<TD>Added preview control to search window</TD>
+
+<TD>Hastings</TD>
+</TR>
+
+<TR>
+<TD>30-Dec-1997</TD>
+
+<TD>Always sync. verse lookup controls to current verse</TD>
+
+<TD>Hastings</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P><B>Utility Programs</B>
+<UL><A HREF="olb2sword.exe">olb2sword.exe</A> (96,256 bytes; 22-Jan-1998)&nbsp;&nbsp;&nbsp;
+Used to create a SWORD module from an installed OLB Bible text.</UL>
+&nbsp;
+<BR><B>Modules</B>
+<UL><A HREF="ftp://ftp.crosswire.org/private/n27u4.zip">n27u4.zip</A> (1,081,986
+bytes; 28-Jan-1998) Nestle-Aland 27th ed. / United Bible Society 4th ed.
+Greek New Testament.
+<BR><A HREF="ftp://ftp.crosswire.org/private/OrthJBC.zip">OrthJBC.zip</A>
+(1,387,695 bytes; 07-Feb-1998) The Orthodox Jewish Brit Chadasha New Testament.
+<BR><A HREF="ftp://ftp.crosswire.org/private/vines.zip">vines.zip</A> (2,166,895
+bytes; 07-Feb-1998) Vines Bible Dictionary.</UL>
+
+<HR WIDTH="100%">
+<BR><A HREF="http://www.crosswire.org">CrossWire Software and Communications</A>
+homepage
+<BR><A HREF="http://www.bf.org">The Bible Foundation</A> homepage
+</BODY>
+</HTML>
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/html/alpha.html b/apps/windoze/CBuilder4/BibleCS/cdstartup/html/alpha.html
new file mode 100644
index 0000000..6a8ec1a
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/html/alpha.html
@@ -0,0 +1,28 @@
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+ <META NAME="Author" CONTENT="Scribe">
+ <META NAME="GENERATOR" CONTENT="Mozilla/4.04b9 [en] (WinNT; I) [Netscape]">
+ <TITLE>The SWORD Project ALPHA Test Site</TITLE>
+</HEAD>
+<BODY>
+
+<CENTER><A HREF="http://www.crosswire.org/ALPHAcckswwlkrfre22034820285912"><IMG SRC="swordalpha.JPG" HEIGHT=238 WIDTH=606></A></CENTER>
+Thank you for your contribution to The SWORD Project.&nbsp; Our goal to
+make quality study software freely available to our generation is one that
+we hope you also share.&nbsp; As a contributor or alpha tester, access
+is provided to a website were you will be able to share your thoughts,
+ideas, criticisms, and thanks with others also involved at this early stage.&nbsp;
+The latest versions of software will also be made available at this site.
+
+<P><B>Important: </B>Please remember, as parts of the project are still
+in an alpha stage, public distribution of these sources is not allowed.&nbsp;
+As modules are approved by their owners/authors they will be promoted to
+public BETA status.&nbsp; ALPHA distributions contain <I>tentative</I>
+resources.&nbsp; Permission to distribute these resources may not have
+been secured from their owners/authors in spite of what the module's <I>tentative</I>
+comments may say.
+
+<P>To proceed to the alpha test site, click on the image above.
+</BODY>
+</HTML>
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/html/swordalpha.JPG b/apps/windoze/CBuilder4/BibleCS/cdstartup/html/swordalpha.JPG
new file mode 100644
index 0000000..9dce00f
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/html/swordalpha.JPG
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.cpp b/apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.cpp
new file mode 100644
index 0000000..f40b559
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.cpp
@@ -0,0 +1,48 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "mainfrm.h"
+#include <shellapi.h>
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TForm1 *Form1;
+//---------------------------------------------------------------------------
+__fastcall TForm1::TForm1(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BitBtn1Click(TObject *Sender)
+{
+ WinExec(".\\setup.exe", SW_SHOWNORMAL);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BitBtn2Click(TObject *Sender)
+{
+ WinExec(".\\sword.exe", SW_SHOWNORMAL);
+// ShellExecute(this->Handle, "open", "sword.exe", NULL, ".\\", SW_SHOWNORMAL);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::FormShow(TObject *Sender)
+{
+// AddFontResource("\\sword\\modules\\texts\\rawtext\\nu\\greek.ttf");
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BitBtn3Click(TObject *Sender)
+{
+ ShellExecute(this->Handle, "open", "http://www.crosswire.org", NULL, NULL, SW_SHOWNORMAL);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BitBtn4Click(TObject *Sender)
+{
+ ShellExecute(this->Handle, "open", ".\\", NULL, NULL, SW_SHOWNORMAL);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::BitBtn5Click(TObject *Sender)
+{
+ WinExec(".\\fonts\\setup.exe", SW_SHOWNORMAL);
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.dfm b/apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.dfm
new file mode 100644
index 0000000..d001498
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.h b/apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.h
new file mode 100644
index 0000000..ba10380
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/mainfrm.h
@@ -0,0 +1,37 @@
+//---------------------------------------------------------------------------
+#ifndef mainfrmH
+#define mainfrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include <vcl\Buttons.hpp>
+#include <Graphics.hpp>
+//---------------------------------------------------------------------------
+class TForm1 : public TForm
+{
+__published: // IDE-managed Components
+ TImage *Image1;
+ TBitBtn *BitBtn1;
+ TBitBtn *BitBtn2;
+ TLabel *Label1;
+ TBitBtn *BitBtn3;
+ TBitBtn *BitBtn4;
+ TBitBtn *BitBtn5;
+ void __fastcall BitBtn1Click(TObject *Sender);
+ void __fastcall BitBtn2Click(TObject *Sender);
+ void __fastcall FormShow(TObject *Sender);
+ void __fastcall BitBtn3Click(TObject *Sender);
+ void __fastcall BitBtn4Click(TObject *Sender);
+ void __fastcall BitBtn5Click(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ __fastcall TForm1(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TForm1 *Form1;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/sword.bmp b/apps/windoze/CBuilder4/BibleCS/cdstartup/sword.bmp
new file mode 100644
index 0000000..a0266b1
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/sword.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/swordalpha.BMP b/apps/windoze/CBuilder4/BibleCS/cdstartup/swordalpha.BMP
new file mode 100644
index 0000000..f60b75b
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/swordalpha.BMP
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/cdstartup/swordalpha.JPG b/apps/windoze/CBuilder4/BibleCS/cdstartup/swordalpha.JPG
new file mode 100644
index 0000000..f4424f2
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/cdstartup/swordalpha.JPG
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/confsafe/getsaved.conf b/apps/windoze/CBuilder4/BibleCS/confsafe/getsaved.conf
new file mode 100644
index 0000000..4b7b7b3
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/confsafe/getsaved.conf
@@ -0,0 +1,10 @@
+
+[ROOT]
+branch1=What's God all about anyway?
+
+[branch1]
+branch2=Romans 3:23
+branch3=Romans 6:23
+branch4=John 3:16
+branch5=I John 1:9
+
diff --git a/apps/windoze/CBuilder4/BibleCS/confsafe/mods.conf b/apps/windoze/CBuilder4/BibleCS/confsafe/mods.conf
new file mode 100644
index 0000000..f2e87ed
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/confsafe/mods.conf
@@ -0,0 +1,304 @@
+[Globals]
+AutoInstall=./newmods/
+
+[Websters]
+DataPath=../../../../modules/texts/rawtext/websters/
+ModDrv=RawText
+Description=The Webster Bible
+About= -=+* see the files 'intro.txt' and 'revision.txt' for more details *+=-\par\par \
+\qc THE \par HOLY BIBLE, \par CONTAINING THE \par OLD AND NEW TESTAMENTS, \par IN THE \par \
+COMMON VERSION. \par WITH \par AMENDMENTS OF THE LANGUAGE, \par \
+BY NOAH WEBSTER, LL. D. \par\par ------------- \par NEW HAVEN: \par \
+PUBLISHED BY DURRIE & PECK. \par \
+Sold by HEZEKIAH HOWE & CO., and A. H. MALTBY, New Haven; \par \
+and by N.&J. WHITE, New York. \par\par ------ \par 1833 \par\par \
+Webster Bible Electronic Format.\par \
+PUBLIC DOMAIN\par\par \
+February 1992\par\par\pard \
+Webster Biography:\par \
+Noah Webster: America's first grammarian and founding father of American education.\par\par \
+ In 1828 Noah Webster published the 'American Dictionary of the English Language'. This \
+dictionary demonstrates the Christian values which were found in America's educational \
+and scholarly systems. It is from this early dictionary that we have todays popular \
+'Webster Dictionary'. In 1833 Noah Webster, who had mastered 20 languages including \
+Hebrew and Greek, published the King James Authorized Version 'with amendments to the \
+language'. In stating his reasons for producing this version of the Bible, Webster said:\par\par \
+ 'In the present version, the language is, in general, correct and perspicuous; \
+... in many passages uniting sublimity with beautiful simplicity. In my view, the general \
+style of the version ought not to be altered. But, in the lapse of two or three centuries, \
+changes have taken place, which, in particular passages, impair the beauty; in others, \
+obscure the sense, of the original languages. ... they do not present to the reader \
+the Word of God. ... My principal aim is to remedy this evil.'\par\par \
+It was with cautious reverence that Webster corrected misused grammar, removed offensive \
+terms and expressions, and substituted commonly understood words for words that had fallen \
+into disuse, or no longer carried the same meaning.\par\par\
+ In 1834, the year after completing the Webster Bible, Noah Webster wrote a \
+companion piece titled 'Value of the Bible and Excellence of the Christian Religion - For \
+the Use of Families and Schools'.\par\par\
+ Webster, who was considered 'The schoolmaster to a nation' and produced the \
+earliest spellers and textbooks for America's school children, believed Christian religious \
+values and American public education to be inseparable. He believed the Webster Bible to \
+be 'the most important enterprise' of his life, and referred to the Bible as:\par\par \
+ '... the chief moral cause of all that is good, and the best corrector of all that \
+is evil, in human society; the best book for regulating the temporal concerns of men, and \
+the only book that can serve as an infallible guide to future felicity.'\par\par \
+Introduction to the Electronic Format:\par \
+ Beginning in July of 1991 the task of placing the Webster Bible text in electronic \
+format began. The original purpose was to provide Larry Pierce, who produces the \
+On-Line Bible program, with a more modern *public domain* text, similar in content and \
+style to the AV but with a grammar that would provide better comprehension in todays \
+English.\par\par\
+ I plan on maintaining an accurate copy of the Webster text. Anyone finding an \
+error should contact me; Anyone desiring to obtain the latest, most correct text, can find \
+it on the Bible Foundation BBS, or can contact me in the following methods:\par \
+ Internet acus10@waccvm.corp.mot.com\par \
+ Home phone 602-829-8542\par \
+ Address Mark Fuller\par \
+ 1129 East Loyola Drive\par \
+ Tempe Arizona, 85282\par \
+ Bible Foundation http://www.bf.org\par\par \
+ I would like to thank the Bible Foundation not only for scanning nearly the entire \
+Webster Bible but for encouraging me to undertake this monumental work; particularly around \
+page 20 when I realized what I had gotten myself into. Special thanks to Jerry Kingery of \
+the Bible Foundation for scanning, and Jerry Hastings for doing some preliminary scan \
+cleaning and making the texts available on the BBS.
+
+
+[Sve]
+DataPath=../../../../modules/texts/rawtext/sve/
+ModDrv=RawText
+Description=Swedish Bible 1917 New Testament
+About=\qc BIBELN eller DEN HELIGA SKRIFT \par innehållande \par \
+NYA TESTAMENTETS KANONISKA BÖCKER \par i överensstämmelse med den av \par \
+KONUNGEN ÅR 1917 \par gillade och stadfästa översättningen \par\par \
+THE BIBLE or THE HOLY SCRIPT \par containing \par CANONICAL BOOKS OF NEW TESTAMENT \par \
+in conformity with that of \par THE KING YEAR 1917 \par \
+liked and confirmed translation \par\par\pard \
+ Thank you to Roland Nygren for making this work available. For the latest \
+information, to report corrections, or for other correspondence: \par\par \
+ Roland Nygren \par \
+ qtxrony@aom.ericsson.se
+
+[VNT]
+DataPath=../../../../modules/texts/rawtext/vnt/
+ModDrv=RawText
+Description=Valera 1858 Spanish New Testament Text
+About=\qc-=+* see the file 'intro.rtf' for more details *+=- \par\par \
+El \par NUEVO TESTAMENTO \par DE \par NUESTRO SEÑOR JESU-CRISTO \par \
+QUE CONTIENE \par LOS ESCRITOS EVANGÉLICOS Y APOSTÓLICOS \par \
+ANTIGUA VERSION DE CIPRIANO DE VALERA \par REVISADA \par \
+Con arreglo al original griego. \par MADRID \par \
+SE HALLA EN EL DEPÓSITO CENTRAL DE LA SOCIEDAD BÍBLICA B. Y E. \par \
+Calle de Preciados, número 46. \par 1884 \par EL SANTO EVANGELIO \par DE \par \
+NUESTRO SEÑOR JESU-CRISTO \par SEGUN \par SAN MATEO. \par\par \pard \
+ Thank you to Bill Kincaid for making this work available. \
+This New Testament text (Valera 1858) was downloaded from The Word of God in \
+Spanish: Valera 1909 web site. (http://www.west.ga.net/~ForHim/word.html) This text is not \
+copyrighted, you are free to distribute it as you wish. We only ask out of respect for the \
+work we invested in bringing you this text (Finding, scanning, and proofing.), that you \
+leave this notice and the following introduction ([see the file intro.rtf]) in any copies \
+that you might make publish on the Internet. If you have any questions or comments please \
+contact: mnj@acnet.net \par\par \
+ Este texto del Nuevo Testamento (Valera 1858) fue bajado del la pagina de \
+web: La Palabra de Dios en Español: Valera 1909. (http://www.west.ga.net/~ForHim/word.html) \
+ Este texto no tiene derechos reservados, puedes distribuirlo como quieres. Solamente \
+pedimos que por respeto del trabajo que invertimos en dándote este texto (Encontrando, \
+escaneando, y corrigiendo.), que dejes esta noticia y la siguiente introducción \
+(FILE: intro.rtf) en cualquier copia que publicas sobre el Internet. Si tienes cualquier \
+pregunta o comentario por favor escribe a: mnj@acnet.net.
+
+
+[MHC]
+DataPath=../../../../modules/comments/rawcom/mhc/
+ModDrv=RawCom
+Description=Matthew Henry's Commentary on the Whole Bible
+About=\qc Matthew Henry's \par Concise Commentary on the Whole Bible \par\par \
+Public Domain--Copy Freely. \par\par\pard \
+ This text matches the printed edition as published by Moody Press, 28th printing, \
+no Copyright displayed. ISBN: 0-8024-5190-X. This text was created from an existing \
+electronic copy, with roughly 1200 errors corrected. The current files can be \
+found at: \par\par \
+ The Bible Foundation, \par \
+ http://www.bf.org \par\par \
+ If any errors are located, please notify me at the above BBS, or at: \par\par \
+ Mark Fuller \par \
+ 1129 E. Loyola Dr. \par \
+ Tempe, Az. 85282 \par \
+ (602) 829-8542
+
+
+[RWP]
+DataPath=../../../../modules/comments/rawcom/rwp/
+ModDrv=RawCom
+Description=Robertson's Word Pictures
+About=\qc -=+* see the files 'about.txt', 'title.pg', 'rwp.int', 'read.me', and \
+'correct.txt' for more details *+=- \par\par \
+ Robertson's \par Word Pictures in the \par New Testament \par\par \
+A.T. Robertson, A.M., D.D., LL. D., Litt.D. \par\par\pard \
+Vol 1,2,3,4 Public Domain -- Copy Freely \par\par Volume 5 (c) 1932. \par \
+Renewal 1960 Broadman Press. All rights reserved. \par Used by permission. \par \
+[Copyright expires Dec. 31, 2006.] \par\par Volume 6 (c) 1933. \par \
+Renewal 1960 Broadman Press. All rights reserved. \par Used by permission. \par \
+[Copyright expires Dec. 31, 2007.] \par\par \
++--------------- Copy Freely --------------+ \par\par \
+ The current files can be found at: \par\par \
+ The Bible Foundation, \par \
+ http://www.bf.org \par\par \
+ If any errors are located, please notify me at the above location, or at: \par\par \
+ Mark Fuller \par \
+ 1129 E. Loyola Dr. \par \
+ Tempe, Az. 85282 \par \
+ (602) 829-8542
+
+
+[Eastons]
+DataPath=../../../../modules/lexdict/rawld/eastons/eastons
+ModDrv=RawLD
+Description=Easton's Bible Dictionary
+About=\qc Easton's 1897 Bible Dictionary \par\par \
+Public Domain -- Copy Freely \par\par\pard \
+ These Dictionary topics are from M.G. Easton M.A., D.D., Illustrated Bible \
+Dictionary, Third Edition, published by Thomas Nelson, 1897. Due to the nature of etext, \
+the illustrated portions of the Dictionary have not been included. \par\par \
+ The most current and correct copies of these files can be obtained from the \
+following. If any errors are located, please ensure you have the latest files, and if so, \
+we would appreciate being informed of the error. \par\par \
+ The Bible Foundation \par \
+ http://www.bf.org \par\par \
+ Or by contacting: \par\par \
+ Mark Fuller \par \
+ 1129 East Loyola Drive \par \
+ Tempe, Arizona, 85282 \par \
+ 602-829-8542 (voice)
+
+[Vines]
+DataPath=../../../../modules/lexdict/rawld/vines/vines
+ModDrv=RawLD
+Description=Vines Bible Dictionary
+About=\qc Vine's Expository Dictionary \par of New Testament Words \par\par \
+Public Domain -- Copy Freely \par\par\pard \
+ These Dictionary topics are from W.E. Vine's M.A., Expository Dictionary of New Testament \
+Words published in 1940 and without copyright. \par\par \
+ The most current and correct copies of these files can be obtained from the \
+following. If any errors are located, please ensure you have the latest files, and if so, \
+we would appreciate being informed of the error. \par\par \
+ The Bible Foundation \par \
+ http://www.bf.org \par\par \
+ Or by contacting: \par\par \
+ Mark Fuller \par \
+ 1129 East Loyola Drive \par \
+ Tempe, Arizona, 85282 \par \
+ 602-829-8542 (voice)
+
+
+[Strongs Hebrew (OT)]
+DataPath=../../../../modules/lexdict/rawld/strongs/hebrew
+ModDrv=RawLD
+Description=Strong's / Englishman's Hebrew Bible Dictionary
+About=\qc Strong's / Englishman's Bible Dictionary \par\par \pard \
+This is a lexicon of Hebrew words keyed off of Strong's numbers.
+
+[Strongs Greek (NT)]
+DataPath=../../../../modules/lexdict/rawld/strongs/greek
+ModDrv=RawLD
+Description=Strong's / Englishman's Greek Bible Dictionary
+About=\qc Strong's / Englishman's Bible Dictionary \par\par \pard \
+This is a lexicon of Greek words keyed off of Strong's numbers.
+
+
+
+[WEB]
+DataPath=../../../../modules/texts/rawgbf/web/
+ModDrv=RawGBF
+Description=The World English Bible
+About= -=+* see the file 'info.txt' for more details *+=-\par\par \
+\qc The World English Bible (WEB) \par\par Public Domain \par\par \pard \
+ The World English Bible is a 1997 revision of the American Standard Version of the \
+Holy Bible, first published in 1901. It is in the Public Domain. Please feel free to copy \
+and distribute it freely. \par\par \
+ Thank you to Michael Paul Johnson for making this work available. For the latest \
+information, to report corrections, or for other correspondence: \par\par \
+ Michael Paul Johnson \par \
+ http://www.ebible.org/bible \par \
+ mpj@ebible.org
+
+
+[ORTHJBC]
+DataPath=../../../../modules/texts/rawtext/orthjbc/
+ModDrv=RawText
+Description=The Orthodox Jewish Brit Chadasha
+About= \qc THE ORTHODOX JEWISH BRIT CHADASHA \par\par \pard \
+ A translation from the original language without goyishe and non-frum \
+terminology. \par\par \
+(C)COPYRIGHT, 1996, ARTISTS FOR ISRAEL INTERNATIONAL \par \
+ALL RIGHTS RESERVED \par \
+USED BY PERMISSION \par\par \
+ Thank you to Dr. Phil Goble for making this work available. This work is NOT in \
+the public domain. Please honor all applicable copyright laws. Permission to distribute \
+this text in its present electronic format for personal use has been granted by the \
+copyright holder. \par\par \
+ Please direct all correspondence to: \par\par \
+ Artists for Israel International \par \
+ http://www.afii.org \par \
+ P. O. Box 2056 \par \
+ New York, NY 10163
+
+
+
+[N27U4]
+DataPath=../../../../modules/texts/rawtext/nu/
+ModDrv=RawText
+Font=Greek
+Description=Nestle Aland 27th Ed./ UBS 4th Ed. Greek Text
+About= \qc Thank you to Barbara Aland, Kurt Aland, Johannes Karavidopoulos, Carlo M. \
+Martini, and Bruce M. Metzger for bringing this work to us. \par\par \pard \
+GREEK.TTF Greek Regular Font (C) Peter J. Gentry & Andrew M. Fountain, 1993. All Rights \
+Reserved. Special thanks to the copyright holders for permission to use these fonts with \
+The SWORD Project for personal use. For a complete list of Greek / Hebrew Utilities or \
+inquiries for other use may be directed to: \par\par \
+ Peter J. Gentry \par \
+ 55 Ambercroft Blvd. \par \
+ Scarborough \par \
+ Ontario, Canada \par \
+ M1W 2Z6
+
+
+[KJV]
+DataPath=../../../../modules/texts/rawtext/kjv/
+ModDrv=RawText
+Description=King James Version of 1611
+About= -=+* see the file 'kjvpref.rtf' for more details *+=-\par\par \
+ This is the King James Version of the Holy Bible (also known as the Authorized \
+Version) in Rich Text Format (among others, italics and red included). The preface from \
+the translators is in KJVPREF.RTF. These files are in the Public Domain. \par\par \
+ May God bless you as you study His Word. \par \
+ Michael Paul Johnson \par \
+ Sysop, Colorado Catacombs BBS (303-772-1062) \par \
+ email: mpj@csn.net \par \
+ http://www.csn.net/~mpj
+
+
+
+[KJVSTR]
+DataPath=../../../../modules/texts/rawtext/kjvstr/
+ModDrv=RawText
+Description=King James Version of 1611 w/ Strongs Numbers
+About= This is the King James Version of the Holy Bible (also known as the Authorized \
+Version) with embedded Strong's Numbers. This makes useful for looking up the exact \
+original language word in a lexicon that is keyed off of Strong's numbers.
+
+
+[FrenchLSG]
+DataPath=../../../../modules/texts/rawgbf/frenchlsg/
+ModDrv=RawGBF
+Description=French 1910 Louis Segond Version
+About=The 1910 edition of the Louis Segond Bible is keyed to Strong's numbers. \
+All this material may be freely copied and shared with your friends. \
+If you wish to use this material for other purposes, please contact: \par\par \
+ Stg. Publishare \par \
+ c/o Transvaalstraat 5 \par \
+ 3312 EX DORDRECHT \par \
+ The Netherlands \par\par \
+to obtain the latest accurate copy. The Englishman Strong's numbers are \
+not in the public domain and any commercial use requires a licence.
+
diff --git a/apps/windoze/CBuilder4/BibleCS/confsafe/wtbsa.conf b/apps/windoze/CBuilder4/BibleCS/confsafe/wtbsa.conf
new file mode 100644
index 0000000..55faa41
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/confsafe/wtbsa.conf
@@ -0,0 +1,18 @@
+
+[ROOT]
+branch6=What the Bible Says About...
+
+[branch10]
+branch11=Mark 12:25
+branch12=Matthew 22:30
+
+[branch6]
+branch7=Mormonism
+
+[branch7]
+branch10=Will We Be Married In Heaven?
+branch8=Are There Other Gods Besides YHWH?
+
+[branch8]
+branch9=Isaiah 44:8
+
diff --git a/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.cpp b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.cpp
new file mode 100644
index 0000000..4024da2
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.cpp
@@ -0,0 +1,46 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "DDEClientForm.h"
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TForm1 *Form1;
+//---------------------------------------------------------------------------
+__fastcall TForm1::TForm1(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Button1Click(TObject *Sender)
+{
+ if (DdeClientConv1->SetLink("sword","Bible")) {
+ Application->MessageBox("DDE Link Successful!","DDE Information",MB_OK);
+ DdeClientItem1->DdeItem = "Lookup";
+ DdeClientItem2->DdeItem = "Search";
+ }
+ else {
+ MessageBox(Handle,"DDE Link Unsuccessful","DDE Information", MB_OK | MB_ICONERROR);
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::DdeClientItem1Change(TObject *Sender)
+{
+ Memo1->Text = DdeClientItem1->Text;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::DdeClientItem2Change(TObject *Sender)
+{
+ Memo2->Text = DdeClientItem2->Text;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Button2Click(TObject *Sender)
+{
+ DdeClientConv1->PokeData("Lookup", Edit1->Text.c_str());
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Button3Click(TObject *Sender)
+{
+ DdeClientConv1->PokeData("Search", Edit2->Text.c_str());
+}
+//--------------------------------------------------------------------------- \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.dfm b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.dfm
new file mode 100644
index 0000000..b964701
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.h b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.h
new file mode 100644
index 0000000..6f23c5f
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientForm.h
@@ -0,0 +1,41 @@
+//---------------------------------------------------------------------------
+#ifndef DDEClientFormH
+#define DDEClientFormH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\DdeMan.hpp>
+#include <vcl\ExtCtrls.hpp>
+//---------------------------------------------------------------------------
+class TForm1 : public TForm
+{
+__published: // IDE-managed Components
+ TDdeClientConv *DdeClientConv1;
+ TPanel *Panel1;
+ TMemo *Memo1;
+ TMemo *Memo2;
+ TPanel *Panel2;
+ TEdit *Edit1;
+ TButton *Button1;
+ TButton *Button2;
+ TButton *Button3;
+ TEdit *Edit2;
+ TDdeClientItem *DdeClientItem1;
+ TDdeClientItem *DdeClientItem2;
+ void __fastcall Button1Click(TObject *Sender);
+ void __fastcall DdeClientItem1Change(TObject *Sender);
+
+ void __fastcall DdeClientItem2Change(TObject *Sender);
+ void __fastcall Button2Click(TObject *Sender);
+ void __fastcall Button3Click(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ __fastcall TForm1(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TForm1 *Form1;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.cpp b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.cpp
new file mode 100644
index 0000000..12c3d74
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.cpp
@@ -0,0 +1,24 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+//---------------------------------------------------------------------------
+USEFORM("DDEClientForm.cpp", Form1);
+USERES("DDEClientProj.res");
+//---------------------------------------------------------------------------
+WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
+{
+ try
+ {
+ Application->Initialize();
+ Application->Title = "SWORD DDE Test Program";
+ Application->CreateForm(__classid(TForm1), &Form1);
+ Application->Run();
+ }
+ catch (Exception &exception)
+ {
+ Application->ShowException(&exception);
+ }
+ return 0;
+}
+//---------------------------------------------------------------------------
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.mak b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.mak
new file mode 100644
index 0000000..20a6233
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.mak
@@ -0,0 +1,55 @@
+# ---------------------------------------------------------------------------
+VERSION = BCB.01
+# ---------------------------------------------------------------------------
+!ifndef BCB
+BCB = $(MAKEDIR)\..
+!endif
+# ---------------------------------------------------------------------------
+PROJECT = DDEClientProj.exe
+OBJFILES = DDEClientProj.obj DDEClientForm.obj
+RESFILES = DDEClientProj.res
+RESDEPEN = $(RESFILES) DDEClientForm.dfm
+LIBFILES =
+DEFFILE =
+# ---------------------------------------------------------------------------
+CFLAG1 = -Od -Hc -w -k -r- -y -v -vi- -c -a4 -b- -w-par -w-inl -Vx -Ve -x
+CFLAG2 = -I$(BCB)\include;$(BCB)\include\vcl -H=$(BCB)\lib\vcld.csm
+PFLAGS = -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE \
+ -U$(BCB)\lib\obj;$(BCB)\lib -I$(BCB)\include;$(BCB)\include\vcl -v -$Y -$W \
+ -$O- -JPHNV -M
+RFLAGS = -i$(BCB)\include;$(BCB)\include\vcl
+LFLAGS = -L$(BCB)\lib\obj;$(BCB)\lib -aa -Tpe -x -v -V4.0
+IFLAGS =
+LINKER = ilink32
+# ---------------------------------------------------------------------------
+ALLOBJ = c0w32.obj $(OBJFILES)
+ALLRES = $(RESFILES)
+ALLLIB = $(LIBFILES) vcl.lib import32.lib cp32mt.lib
+# ---------------------------------------------------------------------------
+.autodepend
+
+$(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE)
+ $(BCB)\BIN\$(LINKER) @&&!
+ $(LFLAGS) +
+ $(ALLOBJ), +
+ $(PROJECT),, +
+ $(ALLLIB), +
+ $(DEFFILE), +
+ $(ALLRES)
+!
+
+.pas.hpp:
+ $(BCB)\BIN\dcc32 $(PFLAGS) { $** }
+
+.pas.obj:
+ $(BCB)\BIN\dcc32 $(PFLAGS) { $** }
+
+.cpp.obj:
+ $(BCB)\BIN\bcc32 $(CFLAG1) $(CFLAG2) -o$* $*
+
+.c.obj:
+ $(BCB)\BIN\bcc32 $(CFLAG1) $(CFLAG2) -o$* $**
+
+.rc.res:
+ $(BCB)\BIN\brcc32 $(RFLAGS) $<
+#-----------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.res b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.res
new file mode 100644
index 0000000..be31e84
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/ddetest/DDEClientProj.res
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/editentryfrm.cpp b/apps/windoze/CBuilder4/BibleCS/editentryfrm.cpp
new file mode 100644
index 0000000..595cbfe
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/editentryfrm.cpp
@@ -0,0 +1,330 @@
+#include <vcl.h>
+#pragma hdrstop
+#include <windows.hpp>
+#include <stdlib.h>
+#include <stdio.h>
+#include "editentryfrm.h"
+#include <swdisprtf.h>
+
+const float RulerAdj = 4.0/3.0;
+const int GutterWid = 6;
+//----------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TEditEntry *EditEntry;
+//----------------------------------------------------------------------------
+__fastcall TEditEntry::TEditEntry(TComponent *Owner) : TForm(Owner) {
+ ResultBuf = 0;
+}
+
+
+__fastcall TEditEntry::~TEditEntry() {
+ if (ResultBuf)
+ delete [] ResultBuf;
+}
+
+
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::SelectionChange(TObject */*Sender*/) {
+ char sizebuf[6];
+
+ try {
+ FUpdating = True;
+ FirstInd->Left = int(RichEdit1->Paragraph->FirstIndent*RulerAdj)-
+ 4+GutterWid;
+ LeftInd->Left = int((RichEdit1->Paragraph->LeftIndent+
+ RichEdit1->Paragraph->FirstIndent)*RulerAdj)-
+ 4+GutterWid;
+ RightInd->Left = Ruler->ClientWidth-6-int(
+ (RichEdit1->Paragraph->RightIndent+GutterWid)*RulerAdj);
+
+ BoldButton->Down = RichEdit1->SelAttributes->Style.Contains(fsBold);
+ ItalicButton->Down = RichEdit1->SelAttributes->Style.Contains(fsItalic);
+ UnderlineButton->Down = RichEdit1->SelAttributes->Style.Contains(fsUnderline);
+
+ BulletsButton->Down = bool(RichEdit1->Paragraph->Numbering);
+
+ FontSize->Text = itoa(RichEdit1->SelAttributes->Size, sizebuf, 10);
+
+ switch((int)RichEdit1->Paragraph->Alignment)
+ { case 0: LeftAlign->Down = True; break;
+ case 1: RightAlign->Down = True; break;
+ case 2: CenterAlign->Down = True; break;
+ }
+ }
+ catch (...) {
+ FUpdating = False;
+ }
+ FUpdating = False;
+}
+
+
+//----------------------------------------------------------------------------
+TTextAttributes *__fastcall TEditEntry::CurrText(void)
+{
+ return RichEdit1->SelAttributes;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::CheckFileSave(void)
+{
+ if ( RichEdit1->Modified ) {
+ switch(MessageBox(Handle, "Save Changes?","Modify Comment",MB_YESNOCANCEL | MB_ICONQUESTION)) {
+ case ID_YES : ExtractRTF(); break;
+ case ID_CANCEL : Abort(); break;
+ default:
+ if (ResultBuf)
+ delete [] ResultBuf;
+ ResultBuf = 0;
+ break;
+ };
+ }
+}
+
+
+void __fastcall TEditEntry::SetupRuler(void)
+{ int iCtr = 1;
+ char sTmp[201];
+ while (iCtr < 200) {
+ sTmp[iCtr] = 9;
+ iCtr++;
+ sTmp[iCtr] = '|';
+ iCtr++;
+ }
+ Ruler->Caption = (AnsiString)sTmp;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::SetEditRect(void)
+{ TRect Rct = Rect(GutterWid, 0, RichEdit1->ClientWidth-GutterWid,
+ ClientHeight);
+ SendMessage(RichEdit1->Handle, EM_SETRECT, 0, long(&Rct));
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormCreate(TObject* /*Sender*/)
+{ Application->OnHint = &ShowHint;
+ SetupRuler();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::ShowHint(TObject* /*Sender*/)
+{ StatusBar->SimpleText = Application->Hint;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::EditUndoClick(TObject* /*Sender*/)
+{ if ( RichEdit1->HandleAllocated() )
+ SendMessage(RichEdit1->Handle, EM_UNDO, 0, 0);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::EditCutClick(TObject* /*Sender*/)
+{ RichEdit1->CutToClipboard();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::EditCopyClick(TObject* /*Sender*/)
+{ RichEdit1->CopyToClipboard();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::EditPasteClick(TObject* /*Sender*/)
+{ RichEdit1->PasteFromClipboard();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::RulerResize(TObject* /*Sender*/)
+{ RulerLine->Width = (int)Ruler->ClientWidth - (RulerLine->Left*2);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormResize(TObject* Sender)
+{ SetEditRect();
+ SelectionChange(Sender);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormPaint(TObject* /*Sender*/)
+{ SetEditRect();
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::BoldButtonClick(TObject* /*Sender*/)
+{ if ( !FUpdating )
+ { if ( BoldButton->Down )
+ CurrText()->Style = CurrText()->Style << fsBold;
+ else
+ CurrText()->Style = CurrText()->Style >> fsBold;
+ }
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::ItalicButtonClick(TObject* /*Sender*/)
+{ if ( !FUpdating )
+ {
+ if ( ItalicButton->Down )
+ CurrText()->Style = CurrText()->Style << fsItalic;
+ else
+ CurrText()->Style = CurrText()->Style >> fsItalic;
+ }
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::UnderlineButtonClick(TObject* /*Sender*/)
+{
+ if ( !FUpdating ) {
+ if ( UnderlineButton->Down )
+ CurrText()->Style = CurrText()->Style << fsUnderline;
+ else CurrText()->Style = CurrText()->Style >> fsUnderline;
+ }
+}
+
+
+void __fastcall TEditEntry::FontSizeChange(TObject* /*Sender*/)
+{
+ int fontsize = atoi(FontSize->Text.c_str());
+
+ if ((!FUpdating) && (fontsize)) {
+ if (fontsize < 1) {
+ ShowMessage("Please Enter a Number betweek 1 and 1638");
+ FontSize->Text = 1;
+ }
+ else if (fontsize > 1638) {
+ ShowMessage("Please Enter a Number betweek 1 and 1638");
+ FontSize->Text = 1638;
+ }
+ CurrText()->Size = atoi(FontSize->Text.c_str());
+ }
+}
+
+
+void __fastcall TEditEntry::AlignClick(TObject* Sender)
+{
+ if ( !FUpdating ) {
+ TControl *oAliBtn = (TControl*)(Sender);
+ RichEdit1->Paragraph->Alignment = (TAlignment)oAliBtn->Tag;
+ }
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::BulletsButtonClick(TObject* /*Sender*/)
+{ if ( !FUpdating )
+ RichEdit1->Paragraph->Numbering = (TNumberingStyle)BulletsButton->Down;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormCloseQuery(TObject* /*Sender*/,
+ bool & CanClose)
+{ try {
+ CheckFileSave();
+ }
+ catch (...) {
+ CanClose = False;
+ }
+}
+//----------------------------------------------------------------------------
+
+//***************************
+//***Ruler Indent Dragging***
+//***************************
+
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::RulerItemMouseDown(TObject * Sender,
+ TMouseButton Button, TShiftState Shift, int X, int Y)
+{ TLabel * oTmpLabel = (TLabel *)Sender;
+ FDragOfs = oTmpLabel->Width / 2;
+ oTmpLabel->Left = oTmpLabel->Left+X-FDragOfs;
+ FDragging = True;
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::RulerItemMouseMove(TObject *Sender, TShiftState Shift, int X, int /*Y*/) {
+ if (FDragging) {
+ TLabel *oTmpLabel = (TLabel *)Sender;
+ oTmpLabel->Left = oTmpLabel->Left+X-FDragOfs;
+ oTmpLabel->Left -= oTmpLabel->Left % 10;
+ }
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FirstIndMouseUp(TObject *Sender, TMouseButton
+ Button, TShiftState Shift, int X, int Y)
+{ FDragging = False;
+ RichEdit1->Paragraph->FirstIndent = int((FirstInd->Left+FDragOfs-GutterWid) / RulerAdj);
+ LeftIndMouseUp(Sender, Button, Shift, X, Y);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::LeftIndMouseUp(TObject *Sender, TMouseButton
+ /*Button*/, TShiftState /*Shift*/, int /*X*/, int /*Y*/)
+{ FDragging = False;
+ RichEdit1->Paragraph->LeftIndent = int((LeftInd->Left+FDragOfs-GutterWid)/
+ RulerAdj)-RichEdit1->Paragraph->FirstIndent;
+ SelectionChange(Sender);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::RightIndMouseUp(TObject *Sender, TMouseButton
+ /*Button*/, TShiftState /*Shift*/, int /*X*/, int /*Y*/)
+{ FDragging = False;
+ RichEdit1->Paragraph->RightIndent =
+ int((Ruler->ClientWidth-RightInd->Left+FDragOfs-2) /
+ RulerAdj)-2*GutterWid;
+ SelectionChange(Sender);
+}
+//----------------------------------------------------------------------------
+void __fastcall TEditEntry::FormActivate(TObject *Sender)
+{
+ System::AnsiString newtext, tmptext;
+
+ if (Module) {
+ TMemoryStream *RTFStream = new TMemoryStream();
+ newtext = RTFDisplay->RTFHeader;
+ Module->Error(); // clear error;
+ newtext = newtext + "\\pard \\nowidctlpar \\cf0 ";
+ (char *)*Module; // force key to snap to entry before pulling out the text of the key
+ tmptext = (char *)*Module;
+
+ newtext = newtext + RTFDisplay->RTFVersePre + " " + tmptext + RTFDisplay->RTFVersePost;
+ newtext = newtext + RTFDisplay->RTFTrailer;
+ RTFStream->Clear();
+ RTFStream->WriteBuffer(newtext.c_str(), newtext.Length());
+ RTFStream->Position = 0;
+ RichEdit1->Lines->LoadFromStream(RTFStream);
+ delete RTFStream;
+ }
+ SelectionChange(this);
+ RichEdit1->SetFocus();
+ if (ResultBuf)
+ delete [] ResultBuf;
+ ResultBuf = 0;
+}
+//---------------------------------------------------------------------
+
+void TEditEntry::ExtractRTF()
+{
+ System::AnsiString newtext, tmptext;
+ TMemoryStream *RTFStream = new TMemoryStream();
+ char *tmpbuf, *datastart;
+
+ RTFStream->Clear();
+ RichEdit1->Lines->SaveToStream(RTFStream);
+ RTFStream->Position = 0;
+ if (ResultBuf)
+ delete [] ResultBuf;
+ tmpbuf = new char [ RTFStream->Size + 1];
+ RTFStream->ReadBuffer(tmpbuf, RTFStream->Size);
+ tmpbuf[RTFStream->Size] = 0;
+ strtok(strstr(tmpbuf, "colortbl"), "}");
+ datastart = strtok(NULL, "");
+ ResultBuf = new char [ strlen(datastart) + 2 ];
+ ResultBuf[0] = '{';
+ strcpy(ResultBuf+1, datastart);
+ delete [] tmpbuf;
+ delete RTFStream;
+ //-------- Change all fonts to \f1
+ for (int i = 0; i < strlen(ResultBuf)-4; i++) {
+ if (ResultBuf[i] == '\\') {
+ if (ResultBuf[i+1] == '\\') { // skip a real '\' character
+ i += 1;
+ continue;
+ }
+ if (ResultBuf[i+1] == 'f') {
+ if (isdigit(ResultBuf[i+2])) {
+ ResultBuf[i+2] = '1';
+ if (isdigit(ResultBuf[i+3])) {
+ memmove(&ResultBuf[i+3], &ResultBuf[i+4], strlen(&ResultBuf[i+3]));
+ }
+ }
+ }
+ }
+ }
+}
+
+
+__fastcall TCharsetObject::TCharsetObject(int FCharset)
+ : TObject()
+{
+ Charset = FCharset;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/BibleCS/editentryfrm.dfm b/apps/windoze/CBuilder4/BibleCS/editentryfrm.dfm
new file mode 100644
index 0000000..3b40fc4
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/editentryfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/editentryfrm.h b/apps/windoze/CBuilder4/BibleCS/editentryfrm.h
new file mode 100644
index 0000000..058c385
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/editentryfrm.h
@@ -0,0 +1,108 @@
+//----------------------------------------------------------------------------
+//Borland C++Builder
+//Copyright (c) 1987, 1998 Borland International Inc. All Rights Reserved.
+//----------------------------------------------------------------------------
+//----------------------------------------------------------------------------
+#ifndef editentryfrmH
+#define editentryfrmH
+//----------------------------------------------------------------------------
+#include <Outline.hpp>
+#include <Grids.hpp>
+#include <Buttons.hpp>
+#include <ExtCtrls.hpp>
+#include <StdCtrls.hpp>
+#include <ComCtrls.hpp>
+#include <Menus.hpp>
+#include <Dialogs.hpp>
+#include <Forms.hpp>
+#include <Controls.hpp>
+#include <Graphics.hpp>
+#include <Classes.hpp>
+#include <SysUtils.hpp>
+#include <Messages.hpp>
+#include <Windows.hpp>
+#include <System.hpp>
+#include <swmodule.h>
+#include <swdisprtf.h>
+//----------------------------------------------------------------------------
+class TEditEntry : public TForm
+{
+__published:
+ TPanel *SpeedBar;
+ TSpeedButton *UndoButton;
+ TSpeedButton *CutButton;
+ TSpeedButton *CopyButton;
+ TSpeedButton *PasteButton;
+ TBevel *Bevel1;
+ TSpeedButton *BoldButton;
+ TSpeedButton *ItalicButton;
+ TSpeedButton *LeftAlign;
+ TSpeedButton *CenterAlign;
+ TSpeedButton *RightAlign;
+ TSpeedButton *UnderlineButton;
+ TSpeedButton *BulletsButton;
+ TEdit *FontSize;
+ TUpDown *UpDown1;
+ TPanel *Ruler;
+ TLabel *FirstInd;
+ TLabel *LeftInd;
+ TBevel *RulerLine;
+ TLabel *RightInd;
+ TStatusBar *StatusBar;
+ TRichEdit *RichEdit1;
+ TLabel *Label1;
+ void __fastcall SelectionChange(TObject *Sender);
+ void __fastcall AlignClick(TObject *Sender);
+ void __fastcall EditUndoClick(TObject *Sender);
+ void __fastcall EditCutClick(TObject *Sender);
+ void __fastcall EditCopyClick(TObject *Sender);
+ void __fastcall EditPasteClick(TObject *Sender);
+ void __fastcall RulerResize(TObject *Sender);
+ void __fastcall FormCreate(TObject *Sender);
+ void __fastcall FormResize(TObject *Sender);
+ void __fastcall FormPaint(TObject *Sender);
+ void __fastcall BoldButtonClick(TObject *Sender);
+ void __fastcall FontSizeChange(TObject *Sender);
+ void __fastcall UnderlineButtonClick(TObject *Sender);
+ void __fastcall ItalicButtonClick(TObject *Sender);
+ void __fastcall BulletsButtonClick(TObject *Sender);
+ void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
+ void __fastcall RulerItemMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall RulerItemMouseMove(TObject *Sender, TShiftState Shift, int X, int Y);
+ void __fastcall FirstIndMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall LeftIndMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall RightIndMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
+ void __fastcall FormActivate(TObject *Sender);
+
+private:
+ AnsiString FFileName;
+ bool FUpdating;
+ int FDragOfs;
+ bool FDragging;
+ TTextAttributes *__fastcall CurrText(void);
+ void __fastcall CheckFileSave(void);
+ void __fastcall SetupRuler(void);
+ void __fastcall SetEditRect(void);
+ void __fastcall ShowHint(TObject *Sender);
+
+public:
+ SWModule *Module;
+ SWDispRTF *RTFDisplay;
+
+ virtual __fastcall TEditEntry(TComponent *Owner);
+ __fastcall ~TEditEntry();
+ char *ResultBuf;
+ void ExtractRTF();
+};
+//----------------------------------------------------------------------------
+class TCharsetObject : public TObject
+{
+public:
+ int Charset;
+ __fastcall TCharsetObject(int FCharset);
+};
+//----------------------------------------------------------------------------
+extern TEditEntry *EditEntry;
+//----------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/getsaved.conf b/apps/windoze/CBuilder4/BibleCS/getsaved.conf
new file mode 100644
index 0000000..6a77364
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/getsaved.conf
@@ -0,0 +1,8 @@
+[ROOT]
+getsaved=What's God all about anyway?
+
+[getsaved]
+verse1=Romans 3:23
+verse2=Romans 6:23
+verse3=John 3:16
+verse4=I John 1:9 \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/mainfrm.cpp b/apps/windoze/CBuilder4/BibleCS/mainfrm.cpp
new file mode 100644
index 0000000..025bd06
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/mainfrm.cpp
@@ -0,0 +1,1151 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#include <vcl/clipbrd.hpp>
+#pragma hdrstop
+
+#include "mainfrm.h"
+#include "swdisprtfchap.h"
+#include "searchfrm.h"
+#include "swwinlog.h"
+#include "AboutBoxfrm.h"
+#include "ModInstForm.h"
+#include "biblecsmgr.h"
+#include "Greek2Greek.h"
+#include "bookmarkfrm.h"
+#include "optionfrm.h"
+#include "vrslstfrm.h"
+#include <utilstr.h>
+#include <filemgr.h>
+#include "editentryfrm.h"
+#include "versesel.h"
+
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TForm1 *Form1;
+//---------------------------------------------------------------------------
+
+
+__fastcall TForm1::TForm1(TComponent* Owner)
+ : TForm(Owner)
+{
+ optionsconf = new SWConfig("./options.conf");
+
+ Lookup->Text = "[ SWORD DDE Lookup ]";
+ Search->Text = "[ SWORD DDE Search ]";
+}
+
+void __fastcall TForm1::DisplayHint(TObject* Sender)
+{
+ StatusBar1->SimpleText = GetLongHint(Application->Hint);
+}
+
+//---------------------------------------------------------------------------
+__fastcall TForm1::~TForm1()
+{
+ list <SWDisplay *>::iterator it;
+ int loop;
+
+
+ if (mainmgr)
+ delete mainmgr;
+ for (it = displays.begin(); it != displays.end(); it++)
+ delete *it;
+ if (layoutconf)
+ delete layoutconf;
+
+ if (optionsconf)
+ delete optionsconf;
+
+ for (loop = 0; loop < 10; loop++) {
+ if (ctrlstates[loop]);
+ delete ctrlstates[loop];
+ }
+ list <ModState *>::iterator mit;
+ for (mit = modstates.begin(); mit != modstates.end(); mit++) {
+ delete (*mit);
+ }
+}
+//---------------------------------------------------------------------------
+void TForm1::BuildRTFHeader(char *buf, char *font, int max)
+{
+ char buf1[1024], buf2[1024];
+ SectionMap::iterator sit;
+ string value;
+ ConfigEntMap::iterator entry;
+
+ sprintf(buf1, "{\\rtf1\\ansi");
+ if (font)
+ sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 %s;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f2\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f3\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f4\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}", font);
+ else sprintf(buf2, "{\\fonttbl{\\f0\\fdecor\\fprq2 Times New Roman;}{\\f1\\froman\\fcharset0\\fprq2 Times New Roman;}{\\f7\\froman\\fcharset2\\fprq2 Symbol;}{\\f8\\froman\\fcharset2\\fprq2 Symbol;}}");
+ strcat(buf1, buf2);
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ ConfigEntMap &section = (*sit).second;
+ sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red%d\\green%d\\blue%d;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;}",
+ ((entry = section.find("CurrentVSColorRed")) != section.end()) ? atoi((*entry).second.c_str()) : 0,
+ ((entry = section.find("CurrentVSColorGreen")) != section.end()) ? atoi((*entry).second.c_str()) : 0,
+ ((entry = section.find("CurrentVSColorBlue")) != section.end()) ? atoi((*entry).second.c_str()) : 0);
+ }
+ else sprintf(buf2, "{\\colortbl;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red0\\green200\\blue50;\\red0\\green0\\blue255;\\red255\\green0\\blue0;}");
+ strcat(buf1, buf2);
+ memset(buf, 0, max);
+ strncpy(buf, buf1, max);
+}
+
+char TForm1::CreateTextPane(SWModule *mod, char *font) {
+ TTabSheet *newtab = new TTabSheet(this);
+ SWDispRTFChap *newrtf = new SWDispRTFChap(this);
+ char buf[512];
+ SectionMap::iterator sit;
+
+ newtab->Caption = mod->Name();
+ newtab->Hint = mod->Description();
+ newtab->ParentShowHint = true;
+ newtab->PageControl = PageControl1;
+ newrtf->Parent = newtab;
+ newrtf->Align = alClient;
+ newrtf->ScrollBars = ssVertical;
+ newrtf->ReadOnly = true;
+ newrtf->PopupMenu = (strcmp(mod->Name(), "N27U4")) ? PopupMenu2 : PopupMenu1;
+ newrtf->OnMouseDown = RTFMouseDown;
+
+ BuildRTFHeader(buf, font, 512);
+ newrtf->RTFHeader = buf;
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ newrtf->MarkCurrentVerse = (atoi((*(*sit).second.find("AutoVSColor")).second.c_str())) ? true:false;
+ }
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ if ((*sit).second.find("FontSize") != (*sit).second.end())
+ newrtf->FontSize = atoi((*(*sit).second.find("FontSize")).second.c_str());
+ }
+ SWDisplay *disp = new RTFDisp(newrtf);
+ mod->Disp(disp);
+ displays.insert(displays.begin(), disp);
+ mod->SetKey(DefaultVSKey);
+
+ return 0;
+}
+//---------------------------------------------------------------------------
+char TForm1::CreateCommentPane(SWModule *mod) {
+ TTabSheet *newtab = new TTabSheet(this);
+ TWinControl *newrtf;
+ SectionMap::iterator sit;
+
+ if ((*mainmgr->config->Sections[mod->Name()].find("ModDrv")).second == "HREFCom") {
+// if (mainmgr->config->Sections[mod->Name()]["External"] == "1") {
+ newrtf = new TPanel(this);
+ ((TPanel *)newrtf)->Caption = "Syncronizing to External Viewer";
+ SWDisplay *disp = new DispExternal();
+ mod->Disp(*displays.insert(displays.begin(), disp));
+/*
+ }
+ else {
+ // newrtf = new THTML(this->Handle);
+ // newrtf = new SWDispRTF(this);
+ newrtf = HTML1;
+ newrtf->Visible = true;
+ mod->Disp(*displays.insert(displays.begin(), new HREFDisp((THTML *)newrtf)));
+ // mod->Disp(*displays.insert(displays.begin(), new RTFDisp((SWDispRTF *)newrtf)));
+ }
+*/
+ }
+ else {
+ newrtf = new SWDispRTF(this);
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ if ((*sit).second.find("FontSize") != (*sit).second.end())
+ ((SWDispRTF *)newrtf)->FontSize = atoi((*(*sit).second.find("FontSize")).second.c_str());
+ }
+ SWDisplay *disp = new RTFDisp((SWDispRTF *)newrtf);
+ mod->Disp(*displays.insert(displays.begin(), disp));
+ ((SWDispRTF *)newrtf)->ScrollBars = ssVertical;
+ ((SWDispRTF *)newrtf)->ReadOnly = true;
+
+ if ((*mainmgr->config->Sections[mod->Name()].find("ModDrv")).second == "RawFiles") {
+ ((SWDispRTF *)newrtf)->PopupMenu = PopupMenu3;
+ ((SWDispRTF *)newrtf)->ExpandNewLine = false;
+ }
+ else ((SWDispRTF *)newrtf)->PopupMenu = PopupMenu2;
+ ((SWDispRTF *)newrtf)->OnMouseDown = RTFMouseDown;
+ }
+
+ newtab->Caption = mod->Name();
+ newtab->Hint = mod->Description();
+ newtab->ParentShowHint = true;
+ newtab->PageControl = PageControl2;
+ newrtf->Parent = newtab;
+ newrtf->Align = alClient;
+
+ mod->SetKey(DefaultVSKey);
+ return 0;
+}
+//---------------------------------------------------------------------------
+char TForm1::CreateLDPane(SWModule *mod) {
+ TTabSheet *newtab = new TTabSheet(this);
+ SWDispRTF *newrtf = new SWDispRTF(this);
+ SectionMap::iterator sit;
+
+ newtab->Caption = mod->Name();
+ newtab->Hint = mod->Description();
+ newtab->ParentShowHint = true;
+ newtab->PageControl = PageControl3;
+ newrtf->Parent = newtab;
+ newrtf->Align = alClient;
+ newrtf->ScrollBars = ssVertical;
+ newrtf->ReadOnly = true;
+ newrtf->PopupMenu = PopupMenu2;
+ newrtf->OnMouseDown = RTFMouseDown;
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ if ((*sit).second.find("FontSize") != (*sit).second.end())
+ newrtf->FontSize = atoi((*(*sit).second.find("FontSize")).second.c_str());
+ }
+ SWDisplay *disp = new RTFDisp(newrtf);
+ mod->Disp(*displays.insert(displays.begin(), disp));
+ mod->SetKey(DefaultStrKey);
+ return 0;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::PageControl1Change(TObject *Sender)
+{
+ RefreshActiveSheet(PageControl1);
+ Form1->ActiveControl = PageControl1;
+}
+//---------------------------------------------------------------------------
+void TForm1::RefreshActiveSheet(TPageControl *pc)
+{
+ ModMap::iterator it;
+
+ it = mainmgr->Modules.find(pc->ActivePage->Caption.c_str());
+ if (it != mainmgr->Modules.end()) {
+ (*it).second->Display();
+ if (logmodstate)
+ modstates.insert(modstates.begin(), new ModState(pc, pc->ActivePage, (*it).second->KeyText()));
+ }
+}
+
+
+void TForm1::TextKeyChanged()
+{
+ cbBook->ItemIndex = cbBook->Items->IndexOf(DefaultVSKey.books[DefaultVSKey.Testament()-1][DefaultVSKey.Book()-1].name);
+ CHBox->Text = DefaultVSKey.Chapter();
+ VSBox->Text = DefaultVSKey.Verse();
+ freeHandLookup->Text = (const char *)DefaultVSKey;
+ RefreshActiveSheet(PageControl1);
+ logmodstate = false; // only log state once
+ RefreshActiveSheet(PageControl2);
+ logmodstate = true;
+}
+
+
+void __fastcall TForm1::btnLookupClick(TObject *Sender)
+{
+ if (!(StrToInt(CHBox->Text)) || (!StrToInt(VSBox->Text)))
+ DefaultVSKey.AutoNormalize(0);
+
+ if (StrToInt(CHBox->Text) < 0)
+ CHBox->Text = StrToInt(CHBox->Text) + 1;
+ if (StrToInt(VSBox->Text) < 0)
+ VSBox->Text = StrToInt(VSBox->Text) + 1;
+
+ DefaultVSKey = (cbBook->Text + " " + CHBox->Text + ":" + VSBox->Text).c_str();
+ TextKeyChanged();
+ DefaultVSKey.AutoNormalize(1);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::PageControl2Change(TObject *Sender)
+{
+ RefreshActiveSheet(PageControl2);
+ Form1->ActiveControl = PageControl2;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::DictKeyEditChange(TObject *Sender)
+{
+ if (DictKeyEdit->Modified) {
+ DefaultStrKey = DictKeyEdit->Text.c_str();
+ RefreshActiveSheet(PageControl3);
+ DictKeyEdit->Modified = false;
+ FillDictKeys();
+ }
+}
+
+void TForm1::FillDictKeys() {
+ ModMap::iterator it;
+ int index = 0;
+ SWKey saveKey;
+
+ it = mainmgr->Modules.find(PageControl3->ActivePage->Caption.c_str());
+ if (it != mainmgr->Modules.end()) {
+ SWModule *mod = (*it).second;
+ mod->KeyText(); // snap to entry
+ saveKey = mod->KeyText();
+ int count = lbDictKeys->Height / lbDictKeys->ItemHeight;
+ lbDictKeys->Items->Clear();
+ for (int i = 0; i < (count / 2); i++)
+ (*mod)++;
+ for (int i = 0; i < count-1; i++)
+ (*mod)--;
+ mod->Error();
+ for (;!mod->Error() && count;count--,(*mod)++) {
+ lbDictKeys->Items->Add(mod->KeyText());
+ if (saveKey == mod->Key())
+ index = lbDictKeys->Items->Count-1;
+ }
+ lbDictKeys->ItemIndex = index;
+ }
+}
+
+
+//---------------------------------------------------------------------------
+void __fastcall TForm1::PageControl3Change(TObject *Sender)
+{
+ DefaultStrKey = DictKeyEdit->Text.c_str();
+ RefreshActiveSheet(PageControl3);
+ Form1->ActiveControl = PageControl3;
+ FillDictKeys();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::NewSearchWindow1Click(TObject *Sender)
+{
+ Form2->Show();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Exit1Click(TObject *Sender)
+{
+ Close();
+}
+
+void __fastcall TForm1::About1Click(TObject *Sender)
+{
+ AboutBox->ShowModal();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::DictionaryLookup1Click(TObject *Sender)
+{
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ int wordstart;
+ int saveSelStart = rtf->SelStart;
+
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length()) - rtf->SelStart - 1;
+ DictKeyEdit->Text = Trim(rtf->SelText);
+ rtf->SelStart = saveSelStart;
+ rtf->SelLength = 0;
+ }
+ else DictKeyEdit->Text = Trim(rtf->SelText);
+}
+
+
+void __fastcall TForm1::verseLookupClick(TObject *Sender)
+{
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ int wordstart;
+ int saveSelStart = rtf->SelStart;
+
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length()) - rtf->SelStart - 1;
+ freeHandLookup->Text = Trim(rtf->SelText);
+ rtf->SelStart = saveSelStart;
+ rtf->SelLength = 0;
+ }
+ else freeHandLookup->Text = Trim(rtf->SelText);
+ char ret = '\r';
+ freeHandLookupoldKeyPress(Sender, ret);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::SaveLayout1Click(TObject *Sender)
+{
+ ConfigEntMap sit;
+
+ sit = layoutconf->Sections["Screen"];
+ sit.erase("MainTop"); sit.insert(ConfigEntMap::value_type("MainTop", IntToStr(Form1->Top).c_str()));
+ sit.erase("MainLeft"); sit.insert(ConfigEntMap::value_type("MainLeft", IntToStr(Form1->Left).c_str()));
+ sit.erase("MainHeight"); sit.insert(ConfigEntMap::value_type("MainHeight", IntToStr(Form1->Height).c_str()));
+ sit.erase("MainWidth"); sit.insert(ConfigEntMap::value_type("MainWidth", IntToStr(Form1->Width).c_str()));
+ sit.erase("TextComHeight"); sit.insert(ConfigEntMap::value_type("TextComHeight", IntToStr(pnlTextCom->Height).c_str()));
+ sit.erase("TextWidth"); sit.insert(ConfigEntMap::value_type("TextWidth", IntToStr(pnlText->Width).c_str()));
+ layoutconf->Sections["Screen"] = sit;
+ layoutconf->Save();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::FormShow(TObject *Sender)
+{
+ ModMap::iterator it;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit, eitend;
+ AnsiString s1;
+ char *font;
+ int loop;
+ int maxFiles;
+ string tmpval;
+
+ logmodstate = true;
+ freshdict = true;
+ if (SWLog::systemlog)
+ delete SWLog::systemlog;
+ SWLog::systemlog = new SWWinLog(this->Handle); // set the system logger to our MSWindows specific SWLog class
+ tmpval = ((eit = optionsconf->Sections["System"].find("MaxFiles")) != optionsconf->Sections["System"].end())? (*eit).second : (string)"";
+ if ((maxFiles = atoi(tmpval.c_str()))) {
+ FileMgr::systemFileMgr.maxFiles = maxFiles;
+ }
+
+ tmpval = ((eit = optionsconf->Sections["Hints"].find("On")) != optionsconf->Sections["Hints"].end())? (*eit).second : (string)"1";
+
+ if (atoi(tmpval.c_str()))
+ Form1->ShowHint = true;
+ else Form1->ShowHint = false;
+
+ DefaultVSKey = TOP;
+ cbBook->Clear();
+ while (!DefaultVSKey.Error()) {
+ s1 = (const char *)DefaultVSKey;
+ s1.SetLength(s1.Length() - 4);
+ cbBook->Items->Add(s1);
+ DefaultVSKey.Book(DefaultVSKey.Book() + 1);
+ }
+ cbBook->ItemIndex = cbBook->Items->IndexOf("James");
+
+ DefaultVSKey.Persist(1); // when set to a module, make the module hold on to this actual key and not a copy
+ DefaultVSKey = "James 1:19"; // set to our standard starting verse
+ DefaultStrKey.Persist(1);
+ DefaultStrKey = "";
+
+ mainmgr = new BibleCSMGR(ModInstFrm);
+ for (it = mainmgr->Modules.begin(); it != mainmgr->Modules.end(); it++) {
+ if (!strcmp((*it).second->Type(), "Biblical Texts")) {
+ font = 0;
+ if ((sit = mainmgr->config->Sections.find((*it).second->Name())) != mainmgr->config->Sections.end()) {
+ if ((eit = (*sit).second.find("Font")) != (*sit).second.end()) {
+ font = (char *)(*eit).second.c_str();
+ }
+ }
+ CreateTextPane((*it).second, font);
+ }
+ if (!strcmp((*it).second->Type(), "Commentaries"))
+ CreateCommentPane((*it).second);
+ if (!strcmp((*it).second->Type(), "Lexicons / Dictionaries"))
+ CreateLDPane((*it).second);
+ }
+
+ layoutconf = new SWConfig("./layout.conf");
+
+ if ((sit = layoutconf->Sections.find("Screen")) != layoutconf->Sections.end()) {
+ if ((eit = (*sit).second.find("MainTop")) != (*sit).second.end())
+ Form1->Top = atoi((*eit).second.c_str());
+ if ((eit = (*sit).second.find("MainLeft")) != (*sit).second.end())
+ Form1->Left = atoi((*eit).second.c_str());
+ if ((eit = (*sit).second.find("MainHeight")) != (*sit).second.end())
+ Form1->Height = atoi((*eit).second.c_str());
+ if ((eit = (*sit).second.find("MainWidth")) != (*sit).second.end())
+ Form1->Width = atoi((*eit).second.c_str());
+ if ((eit = (*sit).second.find("TextComHeight")) != (*sit).second.end())
+ pnlTextCom->Height = atoi((*eit).second.c_str());
+ if ((eit = (*sit).second.find("TextWidth")) != (*sit).second.end())
+ pnlText->Width = atoi((*eit).second.c_str());
+ }
+
+
+ for (loop = 0; loop < 10; loop++)
+ ctrlstates.insert(ctrlstates.begin(), 0);
+ Graphics::TBitmap *bitmap = BackBtnImage->Picture->Bitmap;
+ TColor transColor = bitmap->Canvas->Pixels[0][0];
+ ImageList1->AddMasked(bitmap, transColor);
+
+ bitmap = SearchBtnImage->Picture->Bitmap;
+ transColor = bitmap->Canvas->Pixels[0][0];
+ ImageList1->AddMasked(bitmap, transColor);
+
+ bitmap = BookmarkBtnImage->Picture->Bitmap;
+ transColor = bitmap->Canvas->Pixels[0][0];
+ ImageList2->AddMasked(bitmap, transColor);
+
+ // Add options to Options Main Menu choice
+ OptionsList options = mainmgr->getGlobalOptions();
+ for (OptionsList::iterator it = options.begin(); it != options.end(); it++) {
+ TMenuItem *newitem = new TMenuItem(MainMenu1);
+ newitem->Caption = (*it).c_str();
+ newitem->Default = false;
+ newitem->OnClick = OptionShowVals;
+ newitem->Hint = mainmgr->getGlobalOptionTip((*it).c_str());
+ OptionsList values = mainmgr->getGlobalOptionValues((*it).c_str());
+ for (OptionsList::iterator it2 = values.begin(); it2 != values.end(); it2++) {
+ TMenuItem *newitem2 = new TMenuItem(MainMenu1);
+ newitem2->Caption = (*it2).c_str();
+ newitem2->Default = false;
+ newitem2->OnClick = GlobalOptionChange;
+ newitem->Add(newitem2);
+ }
+// Mainmenu->Items->Add(newitem);
+ Options2->Add(newitem);
+ }
+
+
+ if ((sit = layoutconf->Sections.find("History")) != layoutconf->Sections.end()) {
+
+ eitend = (*sit).second.upper_bound("SearchText");
+ for (eit = (*sit).second.lower_bound("SearchText"); eit != eitend; eit++)
+ Form2->SearchText->Items->Add(eit->second.c_str());
+
+ eitend = (*sit).second.upper_bound("LookupText");
+ for (eit = (*sit).second.lower_bound("LookupText"); eit != eitend; eit++)
+ freeHandLookup->Items->Add(eit->second.c_str());
+
+ if ((eit = (*sit).second.find("LastVerse")) != (*sit).second.end()) {
+ freeHandLookup->Text = (*eit).second.c_str();
+ char ret = '\r';
+ freeHandLookupoldKeyPress(0, ret);
+ }
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::LookupPokeData(TObject *Sender)
+{
+ char buf[255];
+ char *token;
+ ModMap::iterator it;
+
+ strncpy(buf, Lookup->Text.c_str(), 254);
+ buf[254] = 0;
+ token = strtok(buf, " ");
+ if ((it = mainmgr->Modules.find(token)) != mainmgr->Modules.end()) {
+ token = strtok(NULL, "");
+ (*it).second->SetKey(token);
+ Lookup->Text = (const char *)(*(*it).second);
+ }
+ else Lookup->Text = "";
+
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::SearchPokeData(TObject *Sender)
+{
+ char buf[255];
+ char *token;
+ ModMap::iterator it;
+ AnsiString retval = "";
+
+ strncpy(buf, Search->Text.c_str(), 254);
+ buf[254] = 0;
+ token = strtok(buf, " ");
+ if ((it = mainmgr->Modules.find(token)) != mainmgr->Modules.end()) {
+ token = strtok(NULL, "");
+ ListKey &results = (*it).second->Search(token, REG_ICASE);
+ while (!results.Error()) {
+ retval = retval + (const char *)results + "; ";
+ results++;
+ }
+ Search->Text = retval;
+ }
+ else Search->Text = "";
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::UpDown3Click(TObject *Sender, TUDBtnType Button)
+{
+ ModMap::iterator it;
+
+ it = mainmgr->Modules.find(PageControl3->ActivePage->Caption.c_str());
+ if (it != mainmgr->Modules.end()) {
+ if (Button == btNext)
+ (*((*it).second))++;
+ else (*((*it).second))--;
+ DictKeyEdit->Text = ((*it).second)->KeyText();
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::UpDown1Click(TObject *Sender, TUDBtnType Button)
+{
+ btnLookupClick(Sender);
+}
+//---------------------------------------------------------------------------
+
+void TForm1::RestoreState(ModState *state)
+{
+ if (state) {
+ state->pc->ActivePage = state->ap;
+ if ((state->pc == PageControl1) || (state->pc == PageControl2)) {
+ DefaultVSKey = state->key;
+ TextKeyChanged();
+ }
+ if (state->pc == PageControl3) {
+ DictKeyEdit->Text = (const char *)state->key;
+ }
+ if (state->pc->ActivePage->ControlCount)
+ Form1->ActiveControl = (TWinControl *)state->pc->ActivePage->Controls[0];
+ }
+}
+
+
+void __fastcall TForm1::BackbtnClick(TObject *Sender)
+{
+ list <ModState *>::iterator it;
+
+ logmodstate = false;
+ it = modstates.begin();
+ if (it != modstates.end()) {
+ it++;
+
+ if (it != modstates.end()) {
+ RestoreState(*it);
+ delete *modstates.begin();
+ modstates.erase(modstates.begin(), it);
+ }
+ }
+ logmodstate = true;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Button1Click(TObject *Sender)
+{
+/*
+ list <ModState *>::iterator it;
+ ListBox1->Clear();
+ for (it = modstates.begin(); it != modstates.end(); it++) {
+ ListBox1->Items->Add((*it)->ap->Caption.c_str());
+ }
+*/
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::CopyasBGreekTransliteration1Click(TObject *Sender)
+{
+ char *retbuf;
+ int len;
+ TClipboard *clip = new TClipboard();
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ len = rtf->SelText.Length() * 2;
+ retbuf = new char [ len ];
+ if (!Greek2bGreek(retbuf, rtf->SelText.c_str(), len)) {
+ clip->SetTextBuf(retbuf);
+ }
+ delete clip;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Copy1Click(TObject *Sender)
+{
+ int wordstart;
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ for (wordstart = rtf->SelStart; (wordstart > -1)&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart--);
+ rtf->SelStart = (wordstart > -1) ? wordstart: 0;
+ for (wordstart = rtf->SelStart + 1; (wordstart < rtf->Text.Length())&&(isdigit(rtf->Text[wordstart])||isalpha(rtf->Text[wordstart])); wordstart++);
+ rtf->SelLength = ((wordstart < rtf->Text.Length()) ? wordstart : rtf->Text.Length()) - rtf->SelStart - 1;
+ }
+ rtf->CopyToClipboard();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BookmarkItemClick(TObject *Sender)
+{
+ TMenuItem *menuchoice = (TMenuItem *)Sender;
+ const char *source = menuchoice->Caption.c_str();
+ char *value = new char [strlen(source) + 1];
+ int k = 0;
+ for (unsigned int j = 0; j < strlen(source); j++) {
+ if (source[j] != '&')
+ value[k++] = source[j];
+ }
+ value[k] = 0;
+ DefaultVSKey = value;
+ delete [] value;
+ TextKeyChanged();
+}
+
+void __fastcall TForm1::AddBookmark1Click(TObject *Sender)
+{
+// TMenuItem *newitem;
+
+ Bookmarksfrm->bmtree->Items->AddChild(Bookmarksfrm->bmtree->Items->Item[0], (const char *)DefaultVSKey);
+}
+
+void TForm1::AddSectionToMenu(TMenu *menu, TMenuItem *item, TTreeNode *tree)
+{
+ TMenuItem *newitem;
+
+ for (tree = tree->getFirstChild(); tree; tree = tree->getNextSibling()) {
+ newitem = new TMenuItem(menu);
+ newitem->Caption = tree->Text;
+ if (!tree->getFirstChild())
+ newitem->OnClick = BookmarkItemClick;
+ item->Add(newitem);
+ AddSectionToMenu(menu, newitem, tree);
+ }
+}
+
+void TForm1::RefreshBookmarksMenu(TMenu *menu, TTreeView *treeview)
+{
+ TMenuItem *newitem;
+ TTreeNode *tree = 0;
+
+ if (treeview->Items->Count)
+ tree = treeview->Items->Item[0];
+
+ while (menu->Items->Count > 3)
+ menu->Items->Delete(3);
+
+ for (;tree;tree = tree->getNextSibling()) {
+ newitem = new TMenuItem(menu);
+ newitem->Caption = tree->Text;
+ menu->Items->Add(newitem);
+ AddSectionToMenu(menu, newitem, tree);
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::BookmarkbtnClick(TObject *Sender)
+{
+ TPoint menup, point;
+ point.x = 0;
+ point.y = Bookmarkbtn->Height;
+ menup = Bookmarkbtn->ClientToScreen(point);
+ RefreshBookmarksMenu(BookmarkPopup, Bookmarksfrm->bmtree);
+ BookmarkPopup->Popup(menup.x, menup.y);
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TForm1::EditBookmarks1Click(TObject *Sender)
+{
+ Bookmarksfrm->Show();
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
+ TShiftState Shift)
+{
+ char buf[5];
+ int val;
+ ModMap::iterator it;
+ TPageControl *pc = PageControl1;
+
+ if ((Shift.Contains(ssCtrl)) && (!Shift.Contains(ssAlt))) {
+ if ((Key >= '0') && (Key <= '9')) {
+ sprintf(buf, "%c", Key);
+ val = atoi(buf);
+
+ if (!Shift.Contains(ssShift)) {
+ if ((Screen->ActiveControl == PageControl2) || (IsChild(PageControl2->Handle, Screen->ActiveControl->Handle)))
+ pc = PageControl2;
+ if ((Screen->ActiveControl == PageControl3) || (IsChild(PageControl3->Handle, Screen->ActiveControl->Handle)))
+ pc = PageControl3;
+
+ it = mainmgr->Modules.find(pc->ActivePage->Caption.c_str());
+ if (it != mainmgr->Modules.end()) {
+ if (ctrlstates[val])
+ delete ctrlstates[val];
+
+ ctrlstates[val] = new ModState(pc, pc->ActivePage, (*it).second->KeyText());
+ }
+ }
+ else RestoreState(ctrlstates[val]);
+ }
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::Options1Click(TObject *Sender)
+{
+ ModMap::iterator it;
+ SectionMap::iterator sit;
+ ConfigEntMap::iterator eit;
+ ConfigEntMap emap;
+ int color;
+ string tmpval;
+
+ if ((sit = optionsconf->Sections.find("Appearance")) != optionsconf->Sections.end()) {
+ Optionsfrm->CurrentVSColor->Brush->Color =
+ atoi((*(*sit).second.find("CurrentVSColorRed")).second.c_str())
+ | (atoi((*(*sit).second.find("CurrentVSColorGreen")).second.c_str()) << 8)
+ | (atoi((*(*sit).second.find("CurrentVSColorBlue")).second.c_str()) << 16);
+ Optionsfrm->AutoVSColor->Checked = ((atoi((*(*sit).second.find("AutoVSColor")).second.c_str()))?true:false);
+ if ((*sit).second.find("FontSize") != (*sit).second.end())
+ Optionsfrm->UpDown1->Position = atoi((*(*sit).second.find("FontSize")).second.c_str());
+ }
+
+ if ((sit = optionsconf->Sections.find("Bookmarks")) != optionsconf->Sections.end()) {
+ Optionsfrm->AutoBMPersonal->Checked = ((atoi((*(*sit).second.find("AutoSavePersonal")).second.c_str()))?true:false);
+ Optionsfrm->AutoBMOther->Checked = ((atoi((*(*sit).second.find("AutoSaveOther")).second.c_str()))?true:false);
+ }
+
+
+ Optionsfrm->HintPopups->Checked = true;
+ tmpval = ((eit = optionsconf->Sections["Hints"].find("On")) != optionsconf->Sections["Hints"].end())? (*eit).second : (string)"1";
+ if (!atoi(tmpval.c_str()))
+ Optionsfrm->HintPopups->Checked = false;
+
+ if (Optionsfrm->ShowModal() == mrOk) {
+ emap = optionsconf->Sections["Appearance"];
+ color = Optionsfrm->CurrentVSColor->Brush->Color;
+ emap.erase("CurrentVSColorRed"); emap.insert(ConfigEntMap::value_type("CurrentVSColorRed", IntToStr(color & 0xFF).c_str()));
+ emap.erase("CurrentVSColorGreen"); emap.insert(ConfigEntMap::value_type("CurrentVSColorGreen", IntToStr((color >> 8) & 0xFF).c_str()));
+ emap.erase("CurrentVSColorBlue"); emap.insert(ConfigEntMap::value_type("CurrentVSColorBlue", IntToStr((color >> 16) & 0xFF).c_str()));
+ emap.erase("AutoVSColor"); emap.insert(ConfigEntMap::value_type("AutoVSColor", IntToStr((Optionsfrm->AutoVSColor->Checked)?1:0).c_str()));
+ emap.erase("FontSize"); emap.insert(ConfigEntMap::value_type("FontSize", IntToStr(atoi(Optionsfrm->fontSize->Text.c_str())).c_str()));
+ optionsconf->Sections["Appearance"] = emap;
+
+ emap = optionsconf->Sections["Bookmarks"];
+ emap.erase("AutoSavePersonal"); emap.insert(ConfigEntMap::value_type("AutoSavePersonal", IntToStr((Optionsfrm->AutoBMPersonal->Checked)?1:0).c_str()));
+ emap.erase("AutoSaveOther"); emap.insert(ConfigEntMap::value_type("AutoSaveOther", IntToStr((Optionsfrm->AutoBMOther->Checked)?1:0).c_str()));
+ optionsconf->Sections["Bookmarks"] = emap;
+
+ emap = optionsconf->Sections["Hints"];
+ emap.erase("On"); emap.insert(ConfigEntMap::value_type("On", IntToStr((Optionsfrm->HintPopups->Checked)?1:0).c_str()));
+ optionsconf->Sections["Hints"] = emap;
+
+ optionsconf->Save();
+ }
+
+ tmpval = ((eit = optionsconf->Sections["Hints"].find("On")) != optionsconf->Sections["Hints"].end())? (*eit).second : (string)"1";
+
+ if (atoi(tmpval.c_str()))
+ Form1->ShowHint = true;
+ else Form1->ShowHint = false;
+
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::cbBookChange(TObject *Sender)
+{
+ CHBox->Text = "1";
+ VSBox->Text = "1";
+ if (Screen->ActiveControl == cbBook)
+ btnLookupClick(Sender);
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm1::FormCreate(TObject *Sender)
+{
+ Hint = "";
+ Application->OnHint = DisplayHint;
+ Application->ShowHint = true;
+ this->ShowHint = true;
+}
+
+
+void TForm1::AddVerseChoices(TPopupMenu *menu, const char *buf, TRichEdit *rtf) {
+ TMenuItem *newitem;
+
+ tmpVerseList = VerseKey::ParseVerseList((char *)buf, DefaultVSKey);
+
+ ModMap::iterator target;
+ target = mainmgr->Modules.find(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ char *keytext = 0; // check for and remove return at end of keytext
+ stdstr(&keytext, (*(*target).second).KeyText());
+ if (keytext[strlen(keytext)-1] == '\r')
+ keytext[strlen(keytext)-1] = 0;
+
+ tmpVerseListCaption = String("VerseList from- ") + (*target).first.c_str() + ": " + keytext;
+ delete [] keytext; // ---------------------------------
+ }
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "-";
+ menu->Items->Add(newitem);
+ newitem = new TMenuItem(menu);
+ newitem->Caption = "Create Verse List";
+ newitem->Hint = "Create a New Verse List Window";
+ newitem->Default = true;
+ newitem->OnClick = createVerseList;
+ menu->Items->Add(newitem);
+ int breakcnt = 3;
+ while (!tmpVerseList.Error()) {
+ breakcnt++;
+ newitem = new TMenuItem(menu);
+ newitem->Caption = (const char *)tmpVerseList;
+ newitem->OnClick = BookmarkItemClick;
+ if (!(breakcnt%15))
+ newitem->Break = mbBreak;
+ menu->Items->Add(newitem);
+ tmpVerseList++;
+ }
+
+
+
+}
+
+
+void __fastcall TForm1::PopupMenuPopup(TObject *Sender) {
+
+ int versestart, verseend;
+ TPopupMenu *menu = (TPopupMenu *)Sender;
+ int staticMenuItemsCount = 0;
+ TMenuItem *newitem;
+
+ if (menu == PopupMenu1)
+ staticMenuItemsCount = 3;
+ else if (menu == PopupMenu2)
+ staticMenuItemsCount = 2;
+ else if (menu == PopupMenu3)
+ staticMenuItemsCount = 6;
+
+ while (menu->Items->Count > staticMenuItemsCount)
+ menu->Items->Delete(staticMenuItemsCount);
+
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ if (!rtf->SelLength) {
+ int entrylen = strlen(rtf->Text.c_str());
+ char *entrytext = new char [ entrylen + 1 ];
+ int selstart = rtf->SelStart;
+ strcpy(entrytext, rtf->Text.c_str());
+// for (versestart = rtf->SelStart; ((versestart)&&(rtf->Text[versestart] != '#')); versestart--);
+ for (versestart = selstart; ((versestart)&&(entrytext[versestart] != '#')); versestart--);
+ if (versestart) {
+ for (verseend = versestart; ((verseend < entrylen) && (entrytext[verseend] != '|')); verseend++);
+ if ((verseend < entrylen) && (verseend > selstart)) {
+ int len = (verseend - versestart) + 1;
+ char *buf = new char [ len + 1 ];
+ memset(buf, 0 , len + 1);
+ strncpy(buf, &entrytext[versestart+1], len - 2); // strip the # and | from the string
+ int buflen = strlen(buf);
+ for (int i = 0; i < buflen; i++) {
+ if ((buf[i] == 10) || (buf[i] == 13))
+ buf[i] = ' ';
+ }
+ AddVerseChoices(menu, buf, rtf);
+ delete [] buf;
+ }
+ }
+ delete [] entrytext;
+ }
+ else {
+ string highlight = Trim(rtf->SelText).c_str();
+ tmpVerseList = VerseKey::ParseVerseList((char *)highlight.c_str(), DefaultVSKey);
+ if (tmpVerseList.Count())
+ AddVerseChoices(menu, highlight.c_str(), rtf);
+
+// newitem = new TMenuItem(menu);
+// newitem->Caption = "Verse Lookup";
+// newitem->Hint = "Attempt to lookup highlighted text as a verse";
+// newitem->OnClick = verseLookupClick;
+// menu->Items->Add(newitem);
+ }
+
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TForm1::createVerseList(TObject *Sender)
+{
+ TVerseListFrm *tmpForm = new TVerseListFrm(this, tmpVerseList);
+ tmpForm->Caption = tmpVerseListCaption;
+ tmpForm->Show();
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::freeHandLookupoldKeyPress(TObject *Sender, char &Key)
+{
+ if (Key == '\r') {
+ ListKey tmpVerseList = VerseKey::ParseVerseList(freeHandLookup->Text.c_str(), DefaultVSKey);
+
+ if (tmpVerseList.Count()) {
+ int index = freeHandLookup->Items->IndexOf(freeHandLookup->Text);
+ freeHandLookup->Items->Insert(0, freeHandLookup->Text);
+
+ if (index >= 0)
+ freeHandLookup->Items->Delete(index+1);
+
+ freeHandLookup->ItemIndex = 0;
+
+ if (tmpVerseList.Count() > 1) {
+ TVerseListFrm *tmpForm = new TVerseListFrm(this, tmpVerseList);
+ tmpForm->Caption = "User Verse List";
+ tmpForm->Show();
+ }
+
+ tmpVerseList = TOP;
+ DefaultVSKey = tmpVerseList;
+ TextKeyChanged();
+ }
+ }
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TForm1::RTFMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) {
+ ((TWinControl *)Sender)->SetFocus();
+ TRichEdit *rtf = (TRichEdit *)Sender;
+ if (Button == mbRight) {
+ if (!rtf->SelLength)
+ SendMessage(rtf->Handle, WM_LBUTTONDOWN, MK_LBUTTON, MAKELONG(X, Y));
+ }
+}
+
+
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::EditEntry1Click(TObject *Sender)
+{
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ SWModule *module;
+// EditEntry->RichEdit1->Text = rtf->Text;
+ ModMap::iterator target;
+ target = mainmgr->Modules.find(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ EditEntry->Module = module = (*target).second;
+ EditEntry->RTFDisplay = rtf;
+ }
+ else EditEntry->Module = module = 0;
+ EditEntry->ShowModal();
+ if (EditEntry->ResultBuf) {
+ if (module)
+// DictKeyEdit->Text = EditEntry->ResultBuf; // for testing purposes
+ *module << EditEntry->ResultBuf;
+ }
+ RefreshActiveSheet(PageControl2);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::DeleteEntry1Click(TObject *Sender)
+{
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ SWModule *module;
+ ModMap::iterator target;
+
+ target = mainmgr->Modules.find(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ module = (*target).second;
+ module->Delete();
+ }
+ RefreshActiveSheet(PageControl2);
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::LinktoVerse1Click(TObject *Sender)
+{
+ if (VerseSelFrm->ShowModal() == mrOk) {
+ SWDispRTF *rtf = (SWDispRTF *)Screen->ActiveControl;
+ SWModule *module;
+ ModMap::iterator target;
+ SWKey *linkkey = new VerseKey(VerseSelFrm->Panel2->Caption.c_str());
+
+ target = mainmgr->Modules.find(((TPageControl*)rtf->Parent->Parent)->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ module = (*target).second;
+ *module << linkkey;
+ }
+ RefreshActiveSheet(PageControl2);
+ }
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TForm1::GlobalOptionChange(TObject *Sender)
+{
+ TMenuItem *menuchoice = (TMenuItem *)Sender;
+ const char *source = menuchoice->Caption.c_str();
+ char *value = new char [strlen(source) + 1];
+ int k = 0;
+ for (unsigned int j = 0; j < strlen(source); j++) {
+ if (source[j] != '&')
+ value[k++] = source[j];
+ }
+ value[k] = 0;
+ source = menuchoice->Parent->Caption.c_str();
+ char *option = new char [strlen(source) + 1];
+ k = 0;
+ for (unsigned int j = 0; j < strlen(source); j++) {
+ if (source[j] != '&')
+ option[k++] = source[j];
+ }
+ option[k] = 0;
+ mainmgr->setGlobalOption(option, value);
+ delete [] option;
+ delete [] value;
+ TextKeyChanged();
+}
+//---------------------------------------------------------------------------
+
+
+
+void __fastcall TForm1::OptionShowVals(TObject *Sender)
+{
+ TMenuItem *menuChoice = (TMenuItem *)Sender;
+
+ string option = menuChoice->Caption.c_str();
+ int k = 0;
+ const char *source = option.c_str();
+ char *caption = new char [strlen(source) + 1];
+ for (unsigned int j = 0; j < strlen(source); j++) {
+ if (source[j] != '&')
+ caption[k++] = source[j];
+ }
+ caption[k] = 0;
+
+ string value = mainmgr->getGlobalOption(caption);
+ delete [] caption;
+ for (int i = 0; i < menuChoice->Count; i++) {
+ int k = 0;
+ char *source = menuChoice->Items[i]->Caption.c_str();
+ char *caption = new char [strlen(source) + 1];
+ for (unsigned int j = 0; j < strlen(source); j++) {
+ if (source[j] != '&')
+ caption[k++] = source[j];
+ }
+ caption[k] = 0;
+ if (!stricmp(caption, value.c_str()))
+ menuChoice->Items[i]->Checked = true;
+ else menuChoice->Items[i]->Checked = false;
+ delete [] caption;
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::Contents1Click(TObject *Sender)
+{
+ string helpDir;
+ ConfigEntMap::iterator it = optionsconf->Sections["Help"].find("Directory");
+ if (it != optionsconf->Sections["Help"].end())
+ helpDir = (*it).second;
+ else helpDir = ".\\help";
+
+ string helpExe = helpDir + "\\sword.chm";
+
+ if ((int)ShellExecute(this->Handle, "open", helpExe.c_str(), NULL, NULL, SW_SHOWNORMAL) < 33) {
+ helpExe = helpDir + "\\index.html";
+ ShellExecute(this->Handle, "open", helpExe.c_str(), NULL, NULL, SW_SHOWNORMAL);
+ }
+}
+//---------------------------------------------------------------------------
+
+
+void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
+{
+ int saveCount = 5;
+
+
+ ConfigEntMap section;
+ ConfigEntMap::iterator entryIt;
+
+ section = layoutconf->Sections["History"];
+ entryIt = section.find("SearchSaveCount");
+ if (entryIt != section.end())
+ saveCount = atoi(entryIt->second.c_str());
+ else section.insert(ConfigEntMap::value_type("SearchSaveCount", "5"));
+
+ section.erase("SearchText");
+ for (int loop = 0; ((loop < saveCount) && (loop < Form2->SearchText->Items->Count)); loop++)
+ section.insert(ConfigEntMap::value_type("SearchText", Form2->SearchText->Items->Strings[loop].c_str()));
+
+ entryIt = section.find("LookupSaveCount");
+ if (entryIt != section.end())
+ saveCount = atoi(entryIt->second.c_str());
+ else section.insert(ConfigEntMap::value_type("LookupSaveCount", "5"));
+
+ section.erase("LookupText");
+ for (int loop = 0; ((loop < saveCount) && (loop < freeHandLookup->Items->Count)); loop++)
+ section.insert(ConfigEntMap::value_type("LookupText", freeHandLookup->Items->Strings[loop].c_str()));
+
+ section.erase("LastVerse");
+ section.insert(ConfigEntMap::value_type("LastVerse", (const char *)DefaultVSKey));
+
+ layoutconf->Sections["History"] = section;
+ layoutconf->Save();
+
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm1::lbDictKeysClick(TObject *Sender)
+{
+ DictKeyEdit->Text = lbDictKeys->Items->Strings[lbDictKeys->ItemIndex];
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder4/BibleCS/mainfrm.dfm b/apps/windoze/CBuilder4/BibleCS/mainfrm.dfm
new file mode 100644
index 0000000..76b27a2
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/mainfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/mainfrm.h b/apps/windoze/CBuilder4/BibleCS/mainfrm.h
new file mode 100644
index 0000000..60cdc25
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/mainfrm.h
@@ -0,0 +1,252 @@
+//---------------------------------------------------------------------------
+#ifndef mainfrmH
+#define mainfrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include <vcl\ComCtrls.hpp>
+#include <swmgr.h>
+#include <swtext.h>
+#include <strkey.h>
+#include <regex.h>
+#include <listkey.h>
+#include "swdisprtfchap.h"
+#include <vcl\Buttons.hpp>
+#include <vcl\Menus.hpp>
+#include <vcl\DdeMan.hpp>
+//#include <NMHTML.hpp>
+#include <OleCtrls.hpp>
+#include <ToolWin.hpp>
+//#include <vcl\isp.hpp>
+#include <shellapi.h>
+#include <Graphics.hpp>
+#include <ImgList.hpp>
+#include <jpeg.hpp>
+#include <list>
+#include <vector>
+
+class RTFDisp : public SWDisplay {
+ SWDispRTF *edit;
+public:
+ RTFDisp(SWDispRTF *iedit) { edit = iedit; }
+ RTFDisp() {}
+ char Display(SWModule &imodule) {
+ return edit->Display(imodule);
+ }
+};
+
+/*
+class HREFDisp : public SWDisplay {
+ THTML *edit;
+public:
+ HREFDisp(THTML *iedit) { edit = iedit; }
+ HREFDisp() {}
+ char Display(SWModule &imodule) {
+ edit->RequestDoc((char *)imodule);
+ }
+};
+*/
+
+class DispExternal : public SWDisplay {
+public:
+ DispExternal() {}
+ char Display(SWModule &imodule) {
+ SHELLEXECUTEINFO info;
+ info.cbSize = sizeof(SHELLEXECUTEINFO);
+ info.fMask = SEE_MASK_NOCLOSEPROCESS; //SEE_MASK_CLASSNAME;
+ info.hwnd = GetFocus();
+ info.lpVerb = "open";
+ info.lpFile = (char *)imodule;
+ info.lpParameters = NULL;
+ info.lpDirectory = NULL;
+ info.nShow = 0;
+// info.lpClass = ".html";
+ ShellExecuteEx(&info);
+// ShellExecute(edit->Handle, "open", (char *)imodule, NULL, NULL, SW_SHOWNORMAL);
+ return 0;
+ }
+};
+
+
+class ModState {
+public:
+ ModState(TPageControl *ipc, TTabSheet *iap, SWKey ikey) { pc = ipc; ap = iap; key = ikey; }
+ ModState();
+ TPageControl *pc;
+ TTabSheet* ap;
+ SWKey key;
+};
+
+//---------------------------------------------------------------------------
+class TForm1 : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *pnlTextCom;
+ TSplitter *Splitter2;
+ TPanel *pnlText;
+ TPanel *pnlComment;
+ TSplitter *Splitter1;
+ TPanel *pnlDict;
+ TPageControl *PageControl1;
+ TPageControl *PageControl2;
+ TStatusBar *StatusBar1;
+ TPageControl *PageControl3;
+ TMainMenu *MainMenu1;
+ TMenuItem *Search1;
+ TMenuItem *NewSearchWindow1;
+ TMenuItem *Help1;
+ TMenuItem *About1;
+ TPopupMenu *PopupMenu2;
+ TMenuItem *DictionaryLookup1;
+ TMenuItem *File1;
+ TMenuItem *SaveLayout1;
+ TMenuItem *Exit1;
+ TMenuItem *N1;
+ TDdeServerItem *Search;
+ TDdeServerItem *Lookup;
+ TDdeServerConv *Bible;
+ TPopupMenu *PopupMenu1;
+ TMenuItem *MenuItem1;
+ TMenuItem *Copy1;
+ TMenuItem *CopyasBGreekTransliteration1;
+ TMenuItem *Copy2;
+ TMenuItem *Edit1;
+ TMenuItem *Copy3;
+ TPopupMenu *BookmarkPopup;
+ TMenuItem *AddBookmark1;
+ TMenuItem *N2;
+ TMenuItem *EditBookmarks1;
+ TMenuItem *Options1;
+ TCoolBar *CoolBar1;
+ TImageList *ImageList1;
+ TImage *BackBtnImage;
+ TImage *SearchBtnImage;
+ TToolBar *ToolBar2;
+ TToolButton *ToolButton3;
+ TToolButton *ToolButton4;
+ TPanel *pnlSpeed;
+ TPanel *Panel1;
+ TComboBox *cbBook;
+ TEdit *CHBox;
+ TUpDown *UpDown1;
+ TEdit *VSBox;
+ TUpDown *UpDown2;
+ TSpeedButton *btnLookup;
+ TToolBar *ToolBar1;
+ TImageList *ImageList2;
+ TImage *BookmarkBtnImage;
+ TSpeedButton *Bookmarkbtn;
+ TPopupMenu *PopupMenu3;
+ TMenuItem *MenuItem2;
+ TMenuItem *MenuItem3;
+ TMenuItem *N3;
+ TMenuItem *EditEntry1;
+ TMenuItem *DeleteEntry1;
+ TMenuItem *LinktoVerse1;
+ TMenuItem *Options2;
+ TMenuItem *Contents1;
+ TComboBox *freeHandLookup;
+ TPanel *Panel2;
+ TSplitter *Splitter3;
+ TRichEdit *DictKeyEdit;
+ TListBox *lbDictKeys;
+ void __fastcall PageControl1Change(TObject *Sender);
+ void __fastcall btnLookupClick(TObject *Sender);
+ void __fastcall PageControl2Change(TObject *Sender);
+
+
+
+ void __fastcall DictKeyEditChange(TObject *Sender);
+ void __fastcall PageControl3Change(TObject *Sender);
+ void __fastcall NewSearchWindow1Click(TObject *Sender);
+
+ void __fastcall Exit1Click(TObject *Sender);
+ void __fastcall About1Click(TObject *Sender);
+ void __fastcall DictionaryLookup1Click(TObject *Sender);
+ void __fastcall SaveLayout1Click(TObject *Sender);
+
+
+ void __fastcall FormShow(TObject *Sender);
+
+ void __fastcall LookupPokeData(TObject *Sender);
+
+ void __fastcall SearchPokeData(TObject *Sender);
+ void __fastcall UpDown3Click(TObject *Sender, TUDBtnType Button);
+ void __fastcall UpDown1Click(TObject *Sender, TUDBtnType Button);
+
+
+ void __fastcall BackbtnClick(TObject *Sender);
+ void __fastcall Button1Click(TObject *Sender);
+ void __fastcall CopyasBGreekTransliteration1Click(TObject *Sender);
+ void __fastcall Copy1Click(TObject *Sender);
+
+
+
+ void __fastcall AddBookmark1Click(TObject *Sender);
+ void __fastcall BookmarkItemClick(TObject *Sender);
+ void __fastcall BookmarkbtnClick(TObject *Sender);
+ void __fastcall EditBookmarks1Click(TObject *Sender);
+
+ void __fastcall FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
+ void __fastcall Options1Click(TObject *Sender);
+ void __fastcall cbBookChange(TObject *Sender);
+
+ void __fastcall FormCreate(TObject *Sender);
+ void __fastcall DisplayHint(TObject* Sender) ;
+ void __fastcall PopupMenuPopup(TObject *Sender);
+ void __fastcall createVerseList(TObject *Sender);
+ void __fastcall freeHandLookupoldKeyPress(TObject *Sender, char &Key);
+ void __fastcall RTFMouseDown(TObject *Sender, TMouseButton Button,
+ TShiftState Shift, int X, int Y);
+ void __fastcall EditEntry1Click(TObject *Sender);
+ void __fastcall DeleteEntry1Click(TObject *Sender);
+ void __fastcall LinktoVerse1Click(TObject *Sender);
+
+ void __fastcall GlobalOptionChange(TObject *Sender);
+
+
+ void __fastcall OptionShowVals(TObject *Sender);
+ void __fastcall Contents1Click(TObject *Sender);
+ void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
+ void __fastcall lbDictKeysClick(TObject *Sender);
+ void __fastcall verseLookupClick(TObject *Sender);
+private: // User declarations
+ list <SWDisplay *> displays; // so we can delete each display we create
+ list <ModState *> modstates;
+ vector <ModState *> ctrlstates;
+ bool logmodstate;
+ bool freshdict;
+
+ char CreateTextPane(SWModule *mod, char *font = 0);
+ char CreateCommentPane(SWModule *mod);
+ char CreateLDPane(SWModule *mod);
+ void PushState();
+ void BackState();
+ void ForwardState();
+ void BuildRTFHeader(char *buf, char *font, int max);
+ void AddSectionToMenu(TMenu *menu, TMenuItem *item, TTreeNode *tree);
+ void FillDictKeys();
+ void AddVerseChoices(TPopupMenu *menu, const char *buf, TRichEdit *rtf);
+
+public: // User declarations
+ VerseKey DefaultVSKey;
+ SWKey DefaultStrKey;
+ SWMgr *mainmgr;
+ SWConfig *layoutconf;
+ SWConfig *optionsconf;
+ __fastcall TForm1(TComponent* Owner);
+ __fastcall ~TForm1();
+ void RefreshActiveSheet(TPageControl *ts);
+ void TextKeyChanged(); // updates dependents on TextKeyChanged
+ void RefreshBookmarksMenu(TMenu *menu, TTreeView *tree);
+ void RestoreState(ModState *state);
+ ListKey tmpVerseList;
+ String tmpVerseListCaption;
+};
+//---------------------------------------------------------------------------
+extern TForm1 *Form1;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/BibleCS/mods.conf b/apps/windoze/CBuilder4/BibleCS/mods.conf
new file mode 100644
index 0000000..dbfa84a
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/mods.conf
@@ -0,0 +1,487 @@
+[Globals]
+;AutoInstall=./newmods/
+
+
+[OLB]
+DataPath=../../../../modules/texts/rawgbf/olb/
+ModDrv=RawGBF
+GlobalOptionFilter=GBFStrongs
+GlobalOptionFilter=GBFFootnotes
+Description=OLB Converted Module
+About= OLB Converted Module
+
+[-+*Personal*+-]
+DataPath=../../../../modules/comments/rawfiles/personal/
+ModDrv=RawFiles
+Description=Personal Commentary
+About=This module allows you to store your own commentary.
+
+[SpanishRVA]
+DataPath=../../../../modules/texts/rawgbf/spanishrva/
+ModDrv=RawGBF
+Description=The New International Version
+About=\qc El texto b¡blico designado RVA es de LA SANTA BIBLIA, \par \
+VERSION REINA-VALERA ACTUALIZADA. Copyright 1982, 1986, \par \
+1987, 1989 de la Casa Bautista de Publicaciones. \par\par \
+Todos los derechos reservados. \par\par \
+El texto computarizado de la RVA para LA BIBLIA COM- \par \
+PUTARIZADA no puede ser modificado ni copiado sin per- \par \
+miso por escrito por la Casa Bautista de Publicaciones. \par\pard \
+
+
+[NASB]
+DataPath=../../../../modules/texts/rawgbf/nasb/
+ModDrv=RawGBF
+Description=The New American Standard Bible
+About=\qc -=+* see the file errata.doc for important verse descrepencies *+=- \par\par \
+The New American Standard Bible \par \
+Copyright THE LOCKMAN FOUNDATION, 1960, 1962, 1963 \par \
+La Habra, Calif. \par \
+All rights in this book are reserved. \par \
+No part may be reproduced in any manner without \par \
+permission in writing from The Lockman Foundation, \par \
+except brief quotations used in connection with \par \
+a review in a magazine or newspaper. \par\pard
+
+
+
+
+[NIV]
+DataPath=../../../../modules/texts/rawgbf/niv/
+ModDrv=RawGBF
+Description=The New International Version
+About=\qc -=+* see the file errata.doc for important verse descrepencies *+=- \par\par\pard \
+Quotations designated (NIV) are from \par\par \
+THE HOLY BIBLE: NEW INTERNATIONAL VERSION®. \par \
+Copyright © 1973, 1978, 1984 by International Bible Society; \
+Zondervan Publishing House. All rights reserved. \par\par \
+The "NIV" and "New International Version" trademarks are registered in \
+the United States Patent and Trademark Office by International Bible \
+Society. \par\par \
+The NIV text may be quoted in any form (written, visual, electronic, or \
+audio), up to and inclusive of five hundred (500) verses or less without \
+written permission, providing the verses quoted do not amount to a \
+complete book of the Bible, do not comprise 25% or more of the total \
+text of the work in which they are quoted, and the verses are not being \
+quoted in a commentary or other Biblical reference work. This \
+permission is contingent upon an appropriate copyright acknowledgment. \par\par \
+The NIV database is not a shareware program and may not be \
+duplicated. \par\par\pard
+
+
+[JFB]
+DataPath=../../../../modules/comments/hrefcom/jfb/
+ModDrv=HREFCom
+Prefix=http://ccel.wheaton.edu/j/jfb/jfb/
+;External=0
+;Prefix=file:///../../../../modules/comments/hrefcom/jfb/
+External=1
+Description=Jamison Faucett Brown Bible Commentary
+About=\qc Jamison Faucett Brown Commentary
+
+
+[Naves]
+DataPath=../../../../modules/lexdict/rawld/naves/naves
+ModDrv=RawLD
+Description=Nave's Topical Bible
+About= -=+* see the file 'naves.doc' for more details *+=-\par\par \
+\qc Nave's Topical Bible \par\par \
+Public Domain -- Copy Freely \par\par\pard \
+ Nave's Topics were originaly produced by Orville J. Nave, A.M., D.D., \
+LL.D. while serving as a Chaplin in the United States Army. He referred \
+to this work as "the result of fourteen years of delightful and untiring \
+study of the Word of God." Nave's topics were originally published in \
+the early 1900's, and a photo-offset reproduction is currently published \
+by Hendrickson, ISBN 0-917006-02-X. The title page states that this \
+work consists of 20,000+ topics and subtopics, and 100,000 references to \
+the Scriptures. \par\par \
+ The most current and correct copies of these files can be obtained from the \
+following. If any errors are located, please ensure you have the latest files, and if so, \
+we would appreciate being informed of the error. \par\par \
+ The Bible Foundation \par \
+ http://www.bf.org \par\par \
+ Or by contacting: \par\par \
+ Mark Fuller \par \
+ 1129 East Loyola Drive \par \
+ Tempe, Arizona, 85282 \par \
+ 602-829-8542 (voice)
+
+[BBE]
+DataPath=../../../../modules/texts/rawtext/bbe/
+ModDrv=RawText
+Description=The Bible in Basic English
+About= \qc -=+* see the file 'bbe.doc' for more details *+=-\par\par \
+1949/1964 Bible In Basic English \par \
+Public Domain -- Copy Freely \par\par\pard \
+The Bible In Basic English was printed in 1965 by Cambridge Press in \
+England. Published without any copyright notice and distributed in \
+America, this work fell immediatly and irretrievably into the Public \
+Domain in the United States according to the UCC convention of that \
+time. A call to Cambridge prior to placing this work in etext resulted \
+in an admission of this fact. \par\par \
+For more information about the text, see the file INTRO.BBE which \
+contains the printed introduction page. \par\par \
+The most current and correct copies of these files can be obtained from \
+the following. If any errors are located, please ensure you have the \
+latest files, and if so, we would appreciate being informed of the \
+error. \par\par \
+ The Bible Foundation \par \
+ http://www.bf.org \par\par \
+Or by contacting: \par \
+ Mark Fuller\par \
+ 1129 East Loyola Drive \par \
+ Tempe, Arizona, 85282 \par \
+ 602-829-8542 (voice)
+
+[IndTB]
+DataPath=../../../../modules/texts/rawtext/indtb/
+ModDrv=RawText
+Description=Indonesian Terjemahan Baru
+About=\qc Terjemahan Baru (TB) \par\par \
+Copyright Lembaga Alkitab Indonesia \par \
+(Indonesian Bible Society), 1994. \par \
+Released for non-profit scholarly and personal use. \par \
+Not to be sold for profit. \par \
+When making formal public reference to the materials, \par \
+please acknowlege The Indonesian Bible Society \par \
+(Lembaga Alkitab Indonesia) as the copyright holder. \par \pard
+
+
+
+[IndBIS]
+DataPath=../../../../modules/texts/rawtext/indbis/
+ModDrv=RawText
+Description=Indonesian Bahasa Indonesia Sehari-hari (BIS)
+About=\qc Bahasa Indonesia Sehari-hari (BIS) \par\par \
+Copyright Lembaga Alkitab Indonesia \par \
+(Indonesian Bible Society), 1994. \par \
+Released for non-profit scholarly and personal use. \par \
+Not to be sold for profit. \par \
+When making formal public reference to the materials, \par \
+please acknowlege The Indonesian Bible Society \par \
+(Lembaga Alkitab Indonesia) as the copyright holder. \par \pard
+
+
+
+[Websters]
+DataPath=../../../../modules/texts/rawtext/websters/
+ModDrv=RawText
+Description=The Webster Bible
+About= -=+* see the files 'intro.txt' and 'revision.txt' for more details *+=-\par\par \
+\qc THE \par HOLY BIBLE, \par CONTAINING THE \par OLD AND NEW TESTAMENTS, \par IN THE \par \
+COMMON VERSION. \par WITH \par AMENDMENTS OF THE LANGUAGE, \par \
+BY NOAH WEBSTER, LL. D. \par\par ------------- \par NEW HAVEN: \par \
+PUBLISHED BY DURRIE & PECK. \par \
+Sold by HEZEKIAH HOWE & CO., and A. H. MALTBY, New Haven; \par \
+and by N.&J. WHITE, New York. \par\par ------ \par 1833 \par\par \
+Webster Bible Electronic Format.\par \
+PUBLIC DOMAIN\par\par \
+February 1992\par\par\pard \
+Webster Biography:\par \
+Noah Webster: America's first grammarian and founding father of American education.\par\par \
+ In 1828 Noah Webster published the 'American Dictionary of the English Language'. This \
+dictionary demonstrates the Christian values which were found in America's educational \
+and scholarly systems. It is from this early dictionary that we have todays popular \
+'Webster Dictionary'. In 1833 Noah Webster, who had mastered 20 languages including \
+Hebrew and Greek, published the King James Authorized Version 'with amendments to the \
+language'. In stating his reasons for producing this version of the Bible, Webster said:\par\par \
+ 'In the present version, the language is, in general, correct and perspicuous; \
+... in many passages uniting sublimity with beautiful simplicity. In my view, the general \
+style of the version ought not to be altered. But, in the lapse of two or three centuries, \
+changes have taken place, which, in particular passages, impair the beauty; in others, \
+obscure the sense, of the original languages. ... they do not present to the reader \
+the Word of God. ... My principal aim is to remedy this evil.'\par\par \
+It was with cautious reverence that Webster corrected misused grammar, removed offensive \
+terms and expressions, and substituted commonly understood words for words that had fallen \
+into disuse, or no longer carried the same meaning.\par\par\
+ In 1834, the year after completing the Webster Bible, Noah Webster wrote a \
+companion piece titled 'Value of the Bible and Excellence of the Christian Religion - For \
+the Use of Families and Schools'.\par\par\
+ Webster, who was considered 'The schoolmaster to a nation' and produced the \
+earliest spellers and textbooks for America's school children, believed Christian religious \
+values and American public education to be inseparable. He believed the Webster Bible to \
+be 'the most important enterprise' of his life, and referred to the Bible as:\par\par \
+ '... the chief moral cause of all that is good, and the best corrector of all that \
+is evil, in human society; the best book for regulating the temporal concerns of men, and \
+the only book that can serve as an infallible guide to future felicity.'\par\par \
+Introduction to the Electronic Format:\par \
+ Beginning in July of 1991 the task of placing the Webster Bible text in electronic \
+format began. The original purpose was to provide Larry Pierce, who produces the \
+On-Line Bible program, with a more modern *public domain* text, similar in content and \
+style to the AV but with a grammar that would provide better comprehension in todays \
+English.\par\par\
+ I plan on maintaining an accurate copy of the Webster text. Anyone finding an \
+error should contact me; Anyone desiring to obtain the latest, most correct text, can find \
+it on the Bible Foundation BBS, or can contact me in the following methods:\par \
+ Internet acus10@waccvm.corp.mot.com\par \
+ Home phone 602-829-8542\par \
+ Address Mark Fuller\par \
+ 1129 East Loyola Drive\par \
+ Tempe Arizona, 85282\par \
+ Bible Foundation http://www.bf.org\par\par \
+ I would like to thank the Bible Foundation not only for scanning nearly the entire \
+Webster Bible but for encouraging me to undertake this monumental work; particularly around \
+page 20 when I realized what I had gotten myself into. Special thanks to Jerry Kingery of \
+the Bible Foundation for scanning, and Jerry Hastings for doing some preliminary scan \
+cleaning and making the texts available on the BBS.
+
+
+[Sve]
+DataPath=../../../../modules/texts/rawtext/sve/
+ModDrv=RawText
+Description=Swedish Bible 1917 New Testament
+About=\qc BIBELN eller DEN HELIGA SKRIFT \par innehållande \par \
+NYA TESTAMENTETS KANONISKA BÖCKER \par i överensstämmelse med den av \par \
+KONUNGEN ÅR 1917 \par gillade och stadfästa översättningen \par\par \
+THE BIBLE or THE HOLY SCRIPT \par containing \par CANONICAL BOOKS OF NEW TESTAMENT \par \
+in conformity with that of \par THE KING YEAR 1917 \par \
+liked and confirmed translation \par\par\pard \
+ Thank you to Roland Nygren for making this work available. For the latest \
+information, to report corrections, or for other correspondence: \par\par \
+ Roland Nygren \par \
+ qtxrony@aom.ericsson.se
+
+[VNT]
+DataPath=../../../../modules/texts/rawtext/vnt/
+ModDrv=RawText
+Description=Valera 1858 Spanish New Testament Text
+About=\qc-=+* see the file 'intro.rtf' for more details *+=- \par\par \
+El \par NUEVO TESTAMENTO \par DE \par NUESTRO SEÑOR JESU-CRISTO \par \
+QUE CONTIENE \par LOS ESCRITOS EVANGÉLICOS Y APOSTÓLICOS \par \
+ANTIGUA VERSION DE CIPRIANO DE VALERA \par REVISADA \par \
+Con arreglo al original griego. \par MADRID \par \
+SE HALLA EN EL DEPÓSITO CENTRAL DE LA SOCIEDAD BÍBLICA B. Y E. \par \
+Calle de Preciados, número 46. \par 1884 \par EL SANTO EVANGELIO \par DE \par \
+NUESTRO SEÑOR JESU-CRISTO \par SEGUN \par SAN MATEO. \par\par \pard \
+ Thank you to Bill Kincaid for making this work available. \
+This New Testament text (Valera 1858) was downloaded from The Word of God in \
+Spanish: Valera 1909 web site. (http://www.west.ga.net/~ForHim/word.html) This text is not \
+copyrighted, you are free to distribute it as you wish. We only ask out of respect for the \
+work we invested in bringing you this text (Finding, scanning, and proofing.), that you \
+leave this notice and the following introduction ([see the file intro.rtf]) in any copies \
+that you might make publish on the Internet. If you have any questions or comments please \
+contact: mnj@acnet.net \par\par \
+ Este texto del Nuevo Testamento (Valera 1858) fue bajado del la pagina de \
+web: La Palabra de Dios en Español: Valera 1909. (http://www.west.ga.net/~ForHim/word.html) \
+ Este texto no tiene derechos reservados, puedes distribuirlo como quieres. Solamente \
+pedimos que por respeto del trabajo que invertimos en dándote este texto (Encontrando, \
+escaneando, y corrigiendo.), que dejes esta noticia y la siguiente introducción \
+(FILE: intro.rtf) en cualquier copia que publicas sobre el Internet. Si tienes cualquier \
+pregunta o comentario por favor escribe a: mnj@acnet.net.
+
+
+[MHC]
+DataPath=../../../../modules/comments/rawcom/mhc/
+ModDrv=RawCom
+Description=Matthew Henry's Commentary on the Whole Bible
+About=\qc Matthew Henry's \par Concise Commentary on the Whole Bible \par\par \
+Public Domain--Copy Freely. \par\par\pard \
+ This text matches the printed edition as published by Moody Press, 28th printing, \
+no Copyright displayed. ISBN: 0-8024-5190-X. This text was created from an existing \
+electronic copy, with roughly 1200 errors corrected. The current files can be \
+found at: \par\par \
+ The Bible Foundation, \par \
+ http://www.bf.org \par\par \
+ If any errors are located, please notify me at the above BBS, or at: \par\par \
+ Mark Fuller \par \
+ 1129 E. Loyola Dr. \par \
+ Tempe, Az. 85282 \par \
+ (602) 829-8542
+
+
+
+[RWP]
+DataPath=../../../../modules/comments/rawcom/rwp/
+ModDrv=RawCom
+Description=Robertson's Word Pictures
+About=\qc -=+* see the files 'about.txt', 'title.pg', 'rwp.int', 'read.me', and \
+'correct.txt' for more details *+=- \par\par \
+ Robertson's \par Word Pictures in the \par New Testament \par\par \
+A.T. Robertson, A.M., D.D., LL. D., Litt.D. \par\par\pard \
+Vol 1,2,3,4 Public Domain -- Copy Freely \par\par Volume 5 (c) 1932. \par \
+Renewal 1960 Broadman Press. All rights reserved. \par Used by permission. \par \
+[Copyright expires Dec. 31, 2006.] \par\par Volume 6 (c) 1933. \par \
+Renewal 1960 Broadman Press. All rights reserved. \par Used by permission. \par \
+[Copyright expires Dec. 31, 2007.] \par\par \
++--------------- Copy Freely --------------+ \par\par \
+ The current files can be found at: \par\par \
+ The Bible Foundation, \par \
+ http://www.bf.org \par\par \
+ If any errors are located, please notify me at the above location, or at: \par\par \
+ Mark Fuller \par \
+ 1129 E. Loyola Dr. \par \
+ Tempe, Az. 85282 \par \
+ (602) 829-8542
+
+
+[Eastons]
+DataPath=../../../../modules/lexdict/rawld/eastons/eastons
+ModDrv=RawLD
+Description=Easton's Bible Dictionary
+About=\qc Easton's 1897 Bible Dictionary \par\par \
+Public Domain -- Copy Freely \par\par\pard \
+ These Dictionary topics are from M.G. Easton M.A., D.D., Illustrated Bible \
+Dictionary, Third Edition, published by Thomas Nelson, 1897. Due to the nature of etext, \
+the illustrated portions of the Dictionary have not been included. \par\par \
+ The most current and correct copies of these files can be obtained from the \
+following. If any errors are located, please ensure you have the latest files, and if so, \
+we would appreciate being informed of the error. \par\par \
+ The Bible Foundation \par \
+ http://www.bf.org \par\par \
+ Or by contacting: \par\par \
+ Mark Fuller \par \
+ 1129 East Loyola Drive \par \
+ Tempe, Arizona, 85282 \par \
+ 602-829-8542 (voice)
+
+[Vines]
+DataPath=../../../../modules/lexdict/rawld/vines/vines
+ModDrv=RawLD
+Description=Vines Bible Dictionary
+About=\qc Vine's Expository Dictionary \par of New Testament Words \par\par \
+Public Domain -- Copy Freely \par\par\pard \
+ These Dictionary topics are from W.E. Vine's M.A., Expository Dictionary of New Testament \
+Words published in 1940 and without copyright. \par\par \
+ The most current and correct copies of these files can be obtained from the \
+following. If any errors are located, please ensure you have the latest files, and if so, \
+we would appreciate being informed of the error. \par\par \
+ The Bible Foundation \par \
+ http://www.bf.org \par\par \
+ Or by contacting: \par\par \
+ Mark Fuller \par \
+ 1129 East Loyola Drive \par \
+ Tempe, Arizona, 85282 \par \
+ 602-829-8542 (voice)
+
+
+[Strongs Hebrew (OT)]
+DataPath=../../../../modules/lexdict/rawld/strongs/hebrew
+ModDrv=RawLD
+Description=Strong's / Englishman's Hebrew Bible Dictionary
+About=\qc Strong's / Englishman's Bible Dictionary \par\par \pard \
+This is a lexicon of Hebrew words keyed off of Strong's numbers.
+
+[Strongs Greek (NT)]
+DataPath=../../../../modules/lexdict/rawld/strongs/greek
+ModDrv=RawLD
+Description=Strong's / Englishman's Greek Bible Dictionary
+About=\qc Strong's / Englishman's Bible Dictionary \par\par \pard \
+This is a lexicon of Greek words keyed off of Strong's numbers.
+
+
+
+[WEB]
+DataPath=../../../../modules/texts/rawgbf/web/
+ModDrv=RawGBF
+Description=The World English Bible
+About= -=+* see the file 'info.txt' for more details *+=-\par\par \
+\qc The World English Bible (WEB) \par\par Public Domain \par\par \pard \
+ The World English Bible is a 1997 revision of the American Standard Version of the \
+Holy Bible, first published in 1901. It is in the Public Domain. Please feel free to copy \
+and distribute it freely. \par\par \
+ Thank you to Michael Paul Johnson for making this work available. For the latest \
+information, to report corrections, or for other correspondence: \par\par \
+ Michael Paul Johnson \par \
+ http://www.ebible.org/bible \par \
+ mpj@ebible.org
+
+
+[ORTHJBC]
+DataPath=../../../../modules/texts/rawtext/orthjbc/
+ModDrv=RawText
+Description=The Orthodox Jewish Brit Chadasha
+About= \qc THE ORTHODOX JEWISH BRIT CHADASHA \par\par \pard \
+ A translation from the original language without goyishe and non-frum \
+terminology. \par\par \
+(C)COPYRIGHT, 1996, ARTISTS FOR ISRAEL INTERNATIONAL \par \
+ALL RIGHTS RESERVED \par \
+USED BY PERMISSION \par\par \
+ Thank you to Dr. Phil Goble for making this work available. This work is NOT in \
+the public domain. Please honor all applicable copyright laws. Permission to distribute \
+this text in its present electronic format for personal use has been granted by the \
+copyright holder. \par\par \
+ Please direct all correspondence to: \par\par \
+ Artists for Israel International \par \
+ http://www.afii.org \par \
+ P. O. Box 2056 \par \
+ New York, NY 10163
+
+
+
+[N27U4]
+DataPath=../../../../modules/texts/rawtext/nu/
+ModDrv=RawText
+Font=Greek
+Description=Nestle Aland 27th Ed./ UBS 4th Ed. Greek Text
+About= \qc Thank you to Barbara Aland, Kurt Aland, Johannes Karavidopoulos, Carlo M. \
+Martini, and Bruce M. Metzger for bringing this work to us. \par\par \pard \
+GREEK.TTF Greek Regular Font (C) Peter J. Gentry & Andrew M. Fountain, 1993. All Rights \
+Reserved. Special thanks to the copyright holders for permission to use these fonts with \
+The SWORD Project for personal use. For a complete list of Greek / Hebrew Utilities or \
+inquiries for other use may be directed to: \par\par \
+ Peter J. Gentry \par \
+ 55 Ambercroft Blvd. \par \
+ Scarborough \par \
+ Ontario, Canada \par \
+ M1W 2Z6
+
+
+[KJV]
+DataPath=../../../../modules/texts/rawtext/kjv/
+ModDrv=RawText
+Description=King James Version of 1611
+About= -=+* see the file 'kjvpref.rtf' for more details *+=-\par\par \
+ This is the King James Version of the Holy Bible (also known as the Authorized \
+Version) in Rich Text Format (among others, italics and red included). The preface from \
+the translators is in KJVPREF.RTF. These files are in the Public Domain. \par\par \
+ May God bless you as you study His Word. \par \
+ Michael Paul Johnson \par \
+ Sysop, Colorado Catacombs BBS (303-772-1062) \par \
+ email: mpj@csn.net \par \
+ http://www.csn.net/~mpj
+
+
+
+
+[KJVSTR]
+DataPath=../../../../modules/texts/rawtext/kjvstr/
+ModDrv=RawText
+Description=King James Version of 1611 w/ Strongs Numbers
+About= This is the King James Version of the Holy Bible (also known as the Authorized \
+Version) with embedded Strong's Numbers. This makes useful for looking up the exact \
+original language word in a lexicon that is keyed off of Strong's numbers. \par\par \
+Special thanks to Larry Pierce for extensive work encorporating the embedded \
+Strong's numbers in this module. This feature is not in the public domain. \
+Permission to use this feature for personal use has been granted by the author. \par \
+Inquiries and comments may be directed to: \par\par \
+ Larry Pierce \par \
+ 103526.2724@compuserve.com \par \
+ http://www.online-bible.com
+
+[FrenchLSG]
+DataPath=../../../../modules/texts/rawgbf/frenchlsg/
+ModDrv=RawGBF
+GlobalOptionFilter=GBFStrongs
+Description=French 1910 Louis Segond Version
+About=The 1910 edition of the Louis Segond Bible is keyed to Strong's numbers. \
+All this material may be freely copied and shared with your friends. \
+If you wish to use this material for other purposes, please contact: \par\par \
+ Stg. Publishare \par \
+ c/o Transvaalstraat 5 \par \
+ 3312 EX DORDRECHT \par \
+ The Netherlands \par\par \
+to obtain the latest accurate copy. The Englishman Strong's numbers are \
+not in the public domain and any commercial use requires a licence.
+
+[NKJV]
+DataPath=../../../../modules/texts/rawtext/nkjv/
+ModDrv=RawText
+Version=1.2
+CipherKey=yomama
+History_1.1=changed text source to more reliable version
+Description=The New King James Version
+About=The New King James Version NKJV, copyright 1982 \par \
+Thomas Nelson, Inc. All rights reserved. Bible text from \par \
+the New King James Version is not to be reproduced in \par \
+copies or otherwise by any means except as permitted in \par \
+writing by Thomas Nelson, Inc.
diff --git a/apps/windoze/CBuilder4/BibleCS/newbmfilefrm.cpp b/apps/windoze/CBuilder4/BibleCS/newbmfilefrm.cpp
new file mode 100644
index 0000000..c611804
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/newbmfilefrm.cpp
@@ -0,0 +1,14 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "newbmfilefrm.h"
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TNewBMfrm *NewBMfrm;
+//---------------------------------------------------------------------------
+__fastcall TNewBMfrm::TNewBMfrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//--------------------------------------------------------------------------- \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/newbmfilefrm.dfm b/apps/windoze/CBuilder4/BibleCS/newbmfilefrm.dfm
new file mode 100644
index 0000000..33d61d4
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/newbmfilefrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/newbmfilefrm.h b/apps/windoze/CBuilder4/BibleCS/newbmfilefrm.h
new file mode 100644
index 0000000..9b4c017
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/newbmfilefrm.h
@@ -0,0 +1,27 @@
+//---------------------------------------------------------------------------
+#ifndef newbmfilefrmH
+#define newbmfilefrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+//---------------------------------------------------------------------------
+class TNewBMfrm : public TForm
+{
+__published: // IDE-managed Components
+ TLabel *Label1;
+ TEdit *bmfile;
+ TEdit *bmtitle;
+ TLabel *Label2;
+ TButton *Button1;
+ TButton *Button2;
+private: // User declarations
+public: // User declarations
+ __fastcall TNewBMfrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TNewBMfrm *NewBMfrm;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/optionfrm.cpp b/apps/windoze/CBuilder4/BibleCS/optionfrm.cpp
new file mode 100644
index 0000000..621c45f
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/optionfrm.cpp
@@ -0,0 +1,22 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "optionfrm.h"
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TOptionsfrm *Optionsfrm;
+//---------------------------------------------------------------------------
+__fastcall TOptionsfrm::TOptionsfrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TOptionsfrm::ChooseColorbtnClick(TObject *Sender)
+{
+ ColorDialog1->Execute();
+ CurrentVSColor->Brush->Color = ColorDialog1->Color;
+}
+//---------------------------------------------------------------------------
+
+
diff --git a/apps/windoze/CBuilder4/BibleCS/optionfrm.dfm b/apps/windoze/CBuilder4/BibleCS/optionfrm.dfm
new file mode 100644
index 0000000..13859c6
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/optionfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/optionfrm.h b/apps/windoze/CBuilder4/BibleCS/optionfrm.h
new file mode 100644
index 0000000..f3e1d41
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/optionfrm.h
@@ -0,0 +1,47 @@
+//---------------------------------------------------------------------------
+#ifndef optionfrmH
+#define optionfrmH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include <vcl\Dialogs.hpp>
+#include <ComCtrls.hpp>
+//---------------------------------------------------------------------------
+class TOptionsfrm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TGroupBox *GroupBox1;
+ TCheckBox *AutoBMPersonal;
+ TCheckBox *AutoBMOther;
+ TGroupBox *GroupBox2;
+ TCheckBox *AutoVSColor;
+ TShape *CurrentVSColor;
+ TColorDialog *ColorDialog1;
+ TButton *ChooseColorbtn;
+ TPanel *Panel2;
+ TButton *Button1;
+ TPanel *Panel3;
+ TButton *Button2;
+ TLabel *Label1;
+ TLabel *Label2;
+ TLabel *Label3;
+ TUpDown *UpDown1;
+ TEdit *fontSize;
+ TPanel *Panel4;
+ TGroupBox *GroupBox3;
+ TCheckBox *HintPopups;
+ void __fastcall ChooseColorbtnClick(TObject *Sender);
+
+private: // User declarations
+public: // User declarations
+ __fastcall TOptionsfrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TOptionsfrm *Optionsfrm;
+//---------------------------------------------------------------------------
+#endif
+ \ No newline at end of file
diff --git a/apps/windoze/CBuilder4/BibleCS/options.conf b/apps/windoze/CBuilder4/BibleCS/options.conf
new file mode 100644
index 0000000..5b50f30
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/options.conf
@@ -0,0 +1,22 @@
+
+[Appearance]
+AutoVSColor=1
+CurrentVSColorBlue=255
+CurrentVSColorGreen=128
+CurrentVSColorRed=0
+FontSize=0
+
+[Bookmarks]
+AutoSaveOther=1
+AutoSavePersonal=1
+Directory=
+
+[CustomRanges]
+New Testament=mat - rev
+
+[Hints]
+On=1
+
+[System]
+MaxFiles=40
+
diff --git a/apps/windoze/CBuilder4/BibleCS/search.bmp b/apps/windoze/CBuilder4/BibleCS/search.bmp
new file mode 100644
index 0000000..ee693be
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/search.bmp
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/searchfrm.cpp b/apps/windoze/CBuilder4/BibleCS/searchfrm.cpp
new file mode 100644
index 0000000..afc45c0
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/searchfrm.cpp
@@ -0,0 +1,192 @@
+//---------------------------------------------------------------------------
+#include <vcl\vcl.h>
+#pragma hdrstop
+
+#include "searchfrm.h"
+#include <listkey.h>
+#include "mainfrm.h"
+#include <regex.h>
+#include "RangeMaintFrm.h"
+
+
+//---------------------------------------------------------------------------
+#pragma resource "*.dfm"
+TForm2 *Form2;
+//---------------------------------------------------------------------------
+__fastcall TForm2::TForm2(TComponent* Owner)
+ : TForm(Owner) {
+ pvrtf = new SWDispRTF(this);
+
+ pvrtf->Parent = plPreview;
+ pvrtf->Align = alClient;
+ pvrtf->ScrollBars = ssVertical;
+ pvrtf->ReadOnly = true;
+ SearchText->Align = alClient;
+// pvrtf->PopupMenu = PopupMenu2;
+
+// mod->Disp(*displays.insert(displays.begin(), new RTFDisp(newrtf)));
+// mod->SetKey(DefaultVSKey);
+// return 0;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm2::Button1Click(TObject *Sender)
+{
+// ModMap::iterator target;
+ class TWaitCursor {
+ public:
+ TWaitCursor() : oldc(Screen->Cursor) { Screen->Cursor = crHourGlass; }
+ ~TWaitCursor() { Screen->Cursor = oldc; }
+ private:
+ TCursor oldc;
+ } wait; // show hourglass
+
+ if (!SearchText->Text.Length())
+ return;
+
+
+ int index = SearchText->Items->IndexOf(SearchText->Text);
+ SearchText->Items->Insert(0, SearchText->Text);
+
+ if (index >= 0)
+ SearchText->Items->Delete(index+1);
+
+ SearchText->ItemIndex = 0;
+
+ Caption = "";
+
+ targetpc = Form1->PageControl1;
+
+ if ((Form1->ActiveControl == Form1->PageControl2) || (IsChild(Form1->PageControl2->Handle, Form1->ActiveControl->Handle)))
+ targetpc = Form1->PageControl2;
+ if ((Form1->ActiveControl == Form1->PageControl3) || (IsChild(Form1->PageControl3->Handle, Form1->ActiveControl->Handle)))
+ targetpc = Form1->PageControl3;
+
+
+ target = Form1->mainmgr->Modules.find(targetpc->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ Caption = Caption + "Searching [" + (*target).first.c_str() + "]...";
+ ListBox1->Clear();
+ int searchType;
+ switch (searchTypeGroup->ItemIndex) {
+ case 0: searchType = -2; break;
+ case 1: searchType = -1; break;
+ case 2: searchType = 0; break;
+ }
+ int searchOptions = (CheckBox2->Checked) ? 0 : REG_ICASE;
+ Button1->Caption = "Halt";
+ Button1->OnClick = TerminateSearch;
+ SWKey *scope = 0;
+ switch (scopeGroup->ItemIndex) {
+ case 2:
+ if (ComboBox1->ItemIndex < 0)
+ 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);
+ }
+ case 1: scope = &results; break;
+ }
+ searchThread = new TSearchThread(this, SearchText->Text.c_str(), searchType, searchOptions, scope);
+ }
+ else Caption = "Error finding target module";
+}
+
+
+void __fastcall TForm2::TerminateSearch(TObject *Sender)
+{
+ (*target).second->terminateSearch = true;
+}
+
+//---------------------------------------------------------------------------
+void __fastcall TForm2::ListBox1DblClick(TObject *Sender)
+{
+ if (targetpc == Form1->PageControl3) {
+ Form1->DictKeyEdit->Text = ListBox1->Items->Strings[ListBox1->ItemIndex].c_str();
+ }
+ else {
+ Form1->DefaultVSKey = ListBox1->Items->Strings[ListBox1->ItemIndex].c_str();
+ Form1->TextKeyChanged();
+ }
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm2::ListBox1Click(TObject *Sender)
+{
+ if (target != Form1->mainmgr->Modules.end()) {
+ SWKey *savekey = *(*target).second;
+ (*target).second->SetKey(ListBox1->Items->Strings[ListBox1->ItemIndex].c_str());
+ pvrtf->Display(*(*target).second);
+ (*target).second->SetKey(*savekey);
+ }
+}
+//---------------------------------------------------------------------------
+
+__fastcall TForm2::TSearchThread::TSearchThread(TForm2 *parent, string searchText, int searchType, int searchOptions, SWKey *scope, bool CreateSuspended)
+ : TThread(CreateSuspended)
+{
+ this->parent = parent;
+ this->searchText = searchText;
+ this->searchType = searchType;
+ this->searchOptions = searchOptions;
+ this->scope = scope;
+ Priority = tpNormal;
+ FreeOnTerminate = true;
+}
+//---------------------------------------------------------------------------
+void __fastcall TForm2::TSearchThread::FillListBox(void)
+{
+ for (results = TOP; !results.Error(); results++) {
+ parent->ListBox1->Items->Add((const char *)results);
+ }
+// ListBox1->Items->Pack(); // so Count is set correctly (per helpfile)
+ parent->Caption = "";
+ parent->Caption = parent->Caption + "Results from [" + (*(parent->target)).first.c_str() + "] (" + parent->ListBox1->Items->Count + ((parent->ListBox1->Items->Count == 1) ? " match)" : " matches)");
+ parent->Button1->Caption = "Search";
+ parent->Button1->OnClick = parent->Button1Click;
+}
+
+void __fastcall TForm2::TSearchThread::Execute()
+{
+ results = (*(parent->target)).second->Search(searchText.c_str(), searchType, searchOptions, scope);
+
+ Synchronize((TThreadMethod)&FillListBox);
+ parent->results = results;
+}
+
+
+
+
+void __fastcall TForm2::scopeGroupClick(TObject *Sender) {
+ bool enabled = (scopeGroup->ItemIndex == 2);
+
+ Button2->Enabled = enabled;
+ ComboBox1->Enabled = enabled;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TForm2::Button2Click(TObject *Sender)
+{
+ RangeMaintForm->ShowModal();
+ populateRanges();
+}
+//---------------------------------------------------------------------------
+
+void TForm2::populateRanges() {
+ ConfigEntMap::iterator loop, end;
+ SWConfig config("./options.conf");
+ ComboBox1->Clear();
+ loop = config.Sections["CustomRanges"].begin();
+ end = config.Sections["CustomRanges"].end();
+ while (loop != end) {
+ TCustomRange *rs = new TCustomRange(loop->first.c_str(), loop->second.c_str());
+ ComboBox1->Items->AddObject(rs->name.c_str(), rs);
+ loop++;
+ }
+}
+
+
+void __fastcall TForm2::FormShow(TObject *Sender)
+{
+ populateRanges();
+}
+//---------------------------------------------------------------------------
+
diff --git a/apps/windoze/CBuilder4/BibleCS/searchfrm.dfm b/apps/windoze/CBuilder4/BibleCS/searchfrm.dfm
new file mode 100644
index 0000000..de8802a
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/searchfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/searchfrm.h b/apps/windoze/CBuilder4/BibleCS/searchfrm.h
new file mode 100644
index 0000000..1d47379
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/searchfrm.h
@@ -0,0 +1,69 @@
+//---------------------------------------------------------------------------
+#ifndef searchH
+#define searchH
+//---------------------------------------------------------------------------
+#include <vcl\Classes.hpp>
+#include <vcl\Controls.hpp>
+#include <vcl\StdCtrls.hpp>
+#include <vcl\Forms.hpp>
+#include <vcl\ExtCtrls.hpp>
+#include "mainfrm.h"
+#include <swmgr.h>
+//---------------------------------------------------------------------------
+class TForm2 : public TForm {
+ class TSearchThread;
+ friend class TSearchThread;
+__published: // IDE-managed Components
+ TPanel *Panel1;
+ TPanel *pnlResult;
+ TListBox *ListBox1;
+ TPanel *Panel3;
+ TPanel *plPreview;
+ TRadioGroup *searchTypeGroup;
+ TGroupBox *GroupBox1;
+ TCheckBox *CheckBox2;
+ TPanel *Panel4;
+ TButton *Button1;
+ TSplitter *Splitter1;
+ TPanel *pnlScope;
+ TComboBox *SearchText;
+ TComboBox *ComboBox1;
+ TButton *Button2;
+ TPanel *Panel2;
+ TRadioGroup *scopeGroup;
+ void __fastcall Button1Click(TObject *Sender);
+ void __fastcall TerminateSearch(TObject *Sender);
+ void __fastcall ListBox1DblClick(TObject *Sender);
+ void __fastcall ListBox1Click(TObject *Sender);
+ void __fastcall scopeGroupClick(TObject *Sender);
+ void __fastcall Button2Click(TObject *Sender);
+ void __fastcall FormShow(TObject *Sender);
+private: // User declarations
+ class TSearchThread : public TThread {
+ ListKey results;
+ string searchText;
+ int searchType;
+ int searchOptions;
+ SWKey *scope;
+ TForm2 *parent;
+ protected:
+ void __fastcall Execute();
+ public:
+ __fastcall TSearchThread(TForm2 *parent, string searchText, int searchType, int searchOptions, SWKey *scope = 0, bool CreateSuspended = false);
+ void __fastcall FillListBox(void);
+ } *searchThread;
+ SWDispRTF *pvrtf;
+ ListKey results;
+ void populateRanges();
+public: // User declarations
+ ModMap::iterator target;
+ TPageControl *targetpc;
+// AnsiString CapText;
+
+ __fastcall TForm2(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern TForm2 *Form2;
+//---------------------------------------------------------------------------
+#endif
+
diff --git a/apps/windoze/CBuilder4/BibleCS/sword.bpr b/apps/windoze/CBuilder4/BibleCS/sword.bpr
new file mode 100644
index 0000000..f8049e7
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/sword.bpr
@@ -0,0 +1,201 @@
+# ---------------------------------------------------------------------------
+!if !$d(BCB)
+BCB = $(MAKEDIR)\..
+!endif
+
+# ---------------------------------------------------------------------------
+# IDE SECTION
+# ---------------------------------------------------------------------------
+# The following section of the project makefile is managed by the BCB IDE.
+# It is recommended to use the IDE to change any of the values in this
+# section.
+# ---------------------------------------------------------------------------
+
+VERSION = BCB.04.04
+# ---------------------------------------------------------------------------
+PROJECT = sword.exe
+OBJFILES = sword.obj mainfrm.obj AboutBoxfrm.obj bookmarkfrm.obj newbmfilefrm.obj \
+ optionfrm.obj searchfrm.obj biblecsmgr.obj ModInstForm.obj vrslstfrm.obj \
+ editentryfrm.obj versesel.obj RangeMaintFrm.obj
+RESFILES = sword.res
+RESDEPEN = $(RESFILES) mainfrm.dfm AboutBoxfrm.dfm bookmarkfrm.dfm newbmfilefrm.dfm \
+ optionfrm.dfm searchfrm.dfm ModInstForm.dfm vrslstfrm.dfm editentryfrm.dfm \
+ versesel.dfm RangeMaintFrm.dfm
+LIBFILES = swordlib.lib
+LIBRARIES = vcljpg40.lib nmfast40.lib vcldb40.lib vclx40.lib vcl40.lib
+SPARELIBS = vcl40.lib vclx40.lib vcldb40.lib nmfast40.lib vcljpg40.lib
+DEFFILE =
+PACKAGES = vclx40.bpi vcl40.bpi vcldb40.bpi vcldbx40.bpi ibsmp40.bpi bcbsmp40.bpi \
+ dclocx40.bpi qrpt40.bpi teeui40.bpi vclsmp40.bpi teedb40.bpi tee40.bpi \
+ dss40.bpi nmfast40.bpi vclmid40.bpi
+# ---------------------------------------------------------------------------
+PATHCPP = .;
+PATHASM = .;
+PATHPAS = .;
+PATHRC = .;
+DEBUGLIBPATH = $(BCB)\lib\debug
+RELEASELIBPATH = $(BCB)\lib\release
+SYSDEFINES = NO_STRICT
+USERDEFINES =
+# ---------------------------------------------------------------------------
+CFLAG1 = -I"..\..\..\..\..\..\..\Program Files\Borland\CBuilder4\Projects";"..\..\..\..\..\..\..\program files\borland\cbuilder3\projects";..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl \
+ -O2 -w -Ve -a8 -4 -k- -vi -D$(SYSDEFINES);$(USERDEFINES) -c -b- -w-par -w-inl \
+ -Vx -tW -tWM
+CFLAG2 =
+CFLAG3 =
+PFLAGS = -U"..\..\..\..\..\..\..\Program Files\Borland\CBuilder4\Projects";"..\..\..\..\..\..\..\program files\borland\cbuilder3\projects";..\..\..\..\..\..\..\borland\cbuilder3\lib\release;$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \
+ -I"..\..\..\..\..\..\..\Program Files\Borland\CBuilder4\Projects";"..\..\..\..\..\..\..\program files\borland\cbuilder3\projects";..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl \
+ -$Y- -$L- -$D- -v -M -JPHNE
+RFLAGS = -i"..\..\..\..\..\..\..\Program Files\Borland\CBuilder4\Projects";"..\..\..\..\..\..\..\program files\borland\cbuilder3\projects";..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl
+AFLAGS = /i"..\..\..\..\..\..\..\program files\borland\cbuilder3\projects" \
+ /i..\..\..\..\include /i$(BCB)\include /i$(BCB)\include\vcl /mx /w2 /zn \
+ /dUSEPACKAGES
+LFLAGS = -L"..\..\..\..\..\..\..\Program Files\Borland\CBuilder4\Projects";"..\..\..\..\..\..\..\program files\borland\cbuilder3\projects";..\..\..\..\..\..\..\borland\cbuilder3\lib\release;$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \
+ -aa -Tpe -x -Gn
+IFLAGS =
+# ---------------------------------------------------------------------------
+ALLOBJ = c0w32.obj $(OBJFILES)
+ALLRES = $(RESFILES)
+ALLLIB = $(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib
+# ---------------------------------------------------------------------------
+!ifdef IDEOPTIONS
+
+[Version Info]
+IncludeVerInfo=1
+AutoIncBuild=1
+MajorVer=1
+MinorVer=4
+Release=7
+Build=0
+Debug=0
+PreRelease=1
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=CrossWire Software & Bible Society
+FileDescription=Windows 32bit User Interface to The SWORD Project
+FileVersion=1.4.7.0
+InternalName=biblecs
+LegalCopyright=(c) 1999 CrossWire Bible Society under the terms of the GNU General Public License
+LegalTrademarks=
+OriginalFilename=
+ProductName=The SWORD Project
+ProductVersion=1.4.7
+Comments=Seek Him and you will find Him
+
+[HistoryLists\hlIncludePath]
+Count=3
+Item0=..\..\..\..\..\..\..\program files\borland\cbuilder3\projects;..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl
+Item1=..\..\..\..\include;$(BCB)\include;$(BCB)\include\vcl
+Item2=c:\usr\troy\src\sword\include;$(BCB)\include;$(BCB)\include\vcl
+
+[HistoryLists\hlLibraryPath]
+Count=4
+Item0=..\..\..\..\..\..\..\program files\borland\cbuilder3\projects;..\..\..\..\..\..\..\borland\cbuilder3\lib\release;$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib
+Item1=..\..\..\..\..\..\..\program files\borland\cbuilder3\projects;d:\borland\cbuilder3\lib\release;$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib
+Item2=d:\borland\cbuilder3\lib\release;$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib
+Item3=$(BCB)\lib\release;$(BCB)\lib\obj;$(BCB)\lib
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=2
+Item0=USEPACKAGES
+Item1=_RTLDLL;USEPACKAGES
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+InMemoryExe=0
+ShowInfoMsgs=0
+
+!endif
+
+# ---------------------------------------------------------------------------
+# MAKE SECTION
+# ---------------------------------------------------------------------------
+# This section of the project file is not used by the BCB IDE. It is for
+# the benefit of building from the command-line using the MAKE utility.
+# ---------------------------------------------------------------------------
+
+.autodepend
+# ---------------------------------------------------------------------------
+!if !$d(BCC32)
+BCC32 = bcc32
+!endif
+
+!if !$d(DCC32)
+DCC32 = dcc32
+!endif
+
+!if !$d(TASM32)
+TASM32 = tasm32
+!endif
+
+!if !$d(LINKER)
+LINKER = ilink32
+!endif
+
+!if !$d(BRCC32)
+BRCC32 = brcc32
+!endif
+# ---------------------------------------------------------------------------
+!if $d(PATHCPP)
+.PATH.CPP = $(PATHCPP)
+.PATH.C = $(PATHCPP)
+!endif
+
+!if $d(PATHPAS)
+.PATH.PAS = $(PATHPAS)
+!endif
+
+!if $d(PATHASM)
+.PATH.ASM = $(PATHASM)
+!endif
+
+!if $d(PATHRC)
+.PATH.RC = $(PATHRC)
+!endif
+# ---------------------------------------------------------------------------
+$(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE)
+ $(BCB)\BIN\$(LINKER) @&&!
+ $(LFLAGS) $(IFLAGS) +
+ $(ALLOBJ), +
+ $(PROJECT),, +
+ $(ALLLIB), +
+ $(DEFFILE), +
+ $(ALLRES)
+!
+# ---------------------------------------------------------------------------
+.pas.hpp:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.pas.obj:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.cpp.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< }
+
+.c.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< }
+
+.asm.obj:
+ $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@
+
+.rc.res:
+ $(BCB)\BIN\$(BRCC32) $(RFLAGS) -fo$@ $<
+# ---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/BibleCS/sword.cpp b/apps/windoze/CBuilder4/BibleCS/sword.cpp
new file mode 100644
index 0000000..b4743d0
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/sword.cpp
@@ -0,0 +1,41 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+USERES("sword.res");
+USEFORM("mainfrm.cpp", Form1);
+USEFORM("AboutBoxfrm.cpp", AboutBox);
+USEFORM("bookmarkfrm.cpp", Bookmarksfrm);
+USEFORM("newbmfilefrm.cpp", NewBMfrm);
+USEFORM("optionfrm.cpp", Optionsfrm);
+USEFORM("searchfrm.cpp", Form2);
+USEUNIT("biblecsmgr.cpp");
+USEFORM("ModInstForm.cpp", ModInstFrm);
+USEFORM("vrslstfrm.cpp", VerseListFrm);
+USEFORM("editentryfrm.cpp", EditEntry);
+USEFORM("versesel.cpp", VerseSelFrm);
+USELIB("swordlib.lib");
+USEFORM("RangeMaintFrm.cpp", RangeMaintForm);
+//---------------------------------------------------------------------------
+WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
+ try {
+ Application->Initialize();
+ Application->Title = "The SWORD Project";
+ Application->CreateForm(__classid(TForm1), &Form1);
+ Application->CreateForm(__classid(TAboutBox), &AboutBox);
+ Application->CreateForm(__classid(TBookmarksfrm), &Bookmarksfrm);
+ Application->CreateForm(__classid(TNewBMfrm), &NewBMfrm);
+ Application->CreateForm(__classid(TOptionsfrm), &Optionsfrm);
+ Application->CreateForm(__classid(TForm2), &Form2);
+ Application->CreateForm(__classid(TModInstFrm), &ModInstFrm);
+ Application->CreateForm(__classid(TVerseListFrm), &VerseListFrm);
+ Application->CreateForm(__classid(TEditEntry), &EditEntry);
+ Application->CreateForm(__classid(TVerseSelFrm), &VerseSelFrm);
+ Application->CreateForm(__classid(TRangeMaintForm), &RangeMaintForm);
+ Application->Run();
+ }
+ catch (Exception &exception) {
+ Application->ShowException(&exception);
+ }
+ return 0;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/BibleCS/sword.ico b/apps/windoze/CBuilder4/BibleCS/sword.ico
new file mode 100644
index 0000000..694fbb1
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/sword.ico
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/sword.res b/apps/windoze/CBuilder4/BibleCS/sword.res
new file mode 100644
index 0000000..2aafbdf
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/sword.res
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/swordlib.bpr b/apps/windoze/CBuilder4/BibleCS/swordlib.bpr
new file mode 100644
index 0000000..cd9d1d3
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/swordlib.bpr
@@ -0,0 +1,208 @@
+# ---------------------------------------------------------------------------
+!if !$d(BCB)
+BCB = $(MAKEDIR)\..
+!endif
+
+# ---------------------------------------------------------------------------
+# IDE SECTION
+# ---------------------------------------------------------------------------
+# The following section of the project makefile is managed by the BCB IDE.
+# It is recommended to use the IDE to change any of the values in this
+# section.
+# ---------------------------------------------------------------------------
+
+VERSION = BCB.04.04
+# ---------------------------------------------------------------------------
+PROJECT = swordlib.lib
+OBJFILES = swordlib.obj ..\..\..\..\src\keys\versekey.obj ..\..\..\..\src\keys\swkey.obj \
+ ..\..\..\..\src\keys\listkey.obj ..\..\..\..\src\keys\strkey.obj \
+ ..\..\..\..\src\mgr\swmgr.obj ..\..\..\..\src\mgr\swconfig.obj \
+ ..\..\..\..\src\modules\comments\rawcom\rawcom.obj \
+ ..\..\..\..\src\modules\comments\swcom.obj \
+ ..\..\..\..\src\modules\common\rawverse.obj \
+ ..\..\..\..\src\modules\common\rawstr.obj \
+ ..\..\..\..\src\modules\filters\rwprtf.obj \
+ ..\..\..\..\src\modules\filters\gbfrtf.obj \
+ ..\..\..\..\src\modules\filters\gbfplain.obj \
+ ..\..\..\..\src\modules\lexdict\rawld\rawld.obj \
+ ..\..\..\..\src\modules\lexdict\swld.obj \
+ ..\..\..\..\src\modules\texts\rawgbf\rawgbf.obj \
+ ..\..\..\..\src\modules\texts\rawtext\rawtext.obj \
+ ..\..\..\..\src\modules\texts\swtext.obj ..\..\..\..\src\modules\swmodule.obj \
+ ..\..\tbdisp.obj ..\..\swdisprtfchap.obj ..\..\swwinlog.obj ..\..\swdisprtf.obj \
+ ..\..\..\..\src\modules\comments\hrefcom\hrefcom.obj \
+ ..\..\..\..\src\mgr\filemgr.obj \
+ ..\..\..\..\src\modules\comments\rawfiles\rawfiles.obj \
+ ..\..\..\..\src\utilfuns\utilstr.obj ..\..\..\..\src\utilfuns\utilconf.obj \
+ ..\..\..\..\src\utilfuns\Greek2Greek.obj ..\..\..\..\src\utilfuns\regex.obj \
+ ..\..\..\..\src\frontend\swlog.obj ..\..\..\..\src\frontend\swdisp.obj \
+ ..\..\..\..\src\modules\filters\gbfstrongs.obj \
+ ..\..\..\..\src\modules\filters\gbffootnotes.obj \
+ ..\..\..\..\src\modules\filters\cipherfil.obj \
+ ..\..\..\..\src\modules\common\sapphire.obj \
+ ..\..\..\..\src\modules\common\swcipher.obj
+LIBFILES =
+RESDEPEN = $(RESFILES)
+RESFILES =
+LIBRARIES = nmfast40.lib vclx40.lib vcl40.lib
+SPARELIBS = vcl40.lib vclx40.lib nmfast40.lib
+DEFFILE =
+PACKAGES =
+# ---------------------------------------------------------------------------
+PATHCPP = .;..\..\..\..\src\keys;..\..\..\..\src\mgr;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\common;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts;..\..\..\..\src\modules;..\..;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\utilfuns;..\..\..\..\src\frontend
+PATHASM = .;
+PATHPAS = .;
+PATHRC = .;
+SYSDEFINES = NO_STRICT;_NO_VCL
+USERDEFINES =
+# ---------------------------------------------------------------------------
+CFLAG1 = -I..\..;..\..\..\..\src\frontend;..\..\..;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl \
+ -O2 -Hc -H=$(BCB)\lib\vcl40.csm -w -Ve -a8 -4 -k- -vi \
+ -D$(SYSDEFINES);$(USERDEFINES) -c -b- -w-par -w-inl -Vx -g0 -tWM
+CFLAG2 =
+CFLAG3 =
+PFLAGS = -U..\..\..\..\src\modules\common;$(DEBUGLIBPATH) \
+ -I..\..;..\..\..\..\src\frontend;..\..\..;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl \
+ -$Y- -$L- -$D- -v -M -JPHNE
+AFLAGS = /i..\.. /i..\..\..\..\src\frontend /i..\..\.. /i..\..\..\..\utilfuns \
+ /i..\..\..\framework /i..\..\..\..\src\modules\comments\rawfiles \
+ /i..\..\..\..\src\modules\comments\hrefcom /i..\..\..\..\include \
+ /i..\..\..\..\frontend /i..\..\..\..\src\utilfuns /i..\..\..\..\src\modules \
+ /i..\..\..\..\src\modules\texts /i..\..\..\..\src\modules\texts\rawtext \
+ /i..\..\..\..\src\modules\texts\rawgbf /i..\..\..\..\src\modules\lexdict \
+ /i..\..\..\..\src\modules\lexdict\rawld /i..\..\..\..\src\modules\filters \
+ /i..\..\..\..\src\modules\common /i..\..\..\..\src\modules\comments \
+ /i..\..\..\..\src\modules\comments\rawcom /i..\..\..\..\src\mgr \
+ /i..\..\..\..\src\keys /i$(BCB)\include /i$(BCB)\include\vcl /mx /w2 /zn \
+ /d_NO_VCL
+RFLAGS = -i..\..;..\..\..\..\src\frontend;..\..\..;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+LFLAGS = /P64
+IFLAGS =
+# ---------------------------------------------------------------------------
+ALLOBJ = $(OBJFILES)
+ALLLIB =
+# ---------------------------------------------------------------------------
+!ifdef IDEOPTIONS
+
+[Version Info]
+IncludeVerInfo=0
+AutoIncBuild=0
+MajorVer=1
+MinorVer=0
+Release=0
+Build=0
+Debug=0
+PreRelease=0
+Special=0
+Private=0
+DLL=0
+Locale=1033
+CodePage=1252
+
+[Version Info Keys]
+CompanyName=
+FileDescription=
+FileVersion=1.0.0.0
+InternalName=
+LegalCopyright=
+LegalTrademarks=
+OriginalFilename=
+ProductName=
+ProductVersion=1.0.0.0
+Comments=
+
+[HistoryLists\hlIncludePath]
+Count=10
+Item0=..\..;..\..\..\..\src\frontend;..\..\..;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item1=..\..;..\..\..\..\src\frontend;..\..\..\..\apps;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item2=..\..\..\..\src\frontend;..\..\..\..\apps;..\..\..\..\utilfuns;..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item3=..\..\..\framework;..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item4=..\..\..\..\src\modules\comments\rawfiles;..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item5=..\..\..\..\src\modules\comments\hrefcom;..\..\..\..\include;..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item6=..\..\..\..\include;..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item7=..\..\..\..\frontend;..\..\..\windoze;..\..\..\..\src\utilfuns;..\..\..\..\src\modules;..\..\..\..\src\modules\texts;..\..\..\..\src\modules\texts\rawtext;..\..\..\..\src\modules\texts\rawgbf;..\..\..\..\src\modules\lexdict;..\..\..\..\src\modules\lexdict\rawld;..\..\..\..\src\modules\filters;..\..\..\..\src\modules\common;..\..\..\..\src\modules\comments;..\..\..\..\src\modules\comments\rawcom;..\..\..\..\src\mgr;..\..\..\..\src\keys;$(BCB)\include;$(BCB)\include\vcl
+Item8=c:\usr\troy\src\sword\include;c:\usr\troy\src\sword\frontend;c:\usr\troy\src\sword\frontend\windoze;c:\usr\troy\src\sword\utilfuns;c:\usr\troy\src\sword\modules;c:\usr\troy\src\sword\modules\texts;c:\usr\troy\src\sword\modules\texts\rawtext;c:\usr\troy\src\sword\modules\texts\rawgbf;c:\usr\troy\src\sword\modules\lexdict;c:\usr\troy\src\sword\modules\lexdict\rawld;c:\usr\troy\src\sword\modules\filters;c:\usr\troy\src\sword\modules\common;c:\usr\troy\src\sword\modules\comments;c:\usr\troy\src\sword\modules\comments\rawcom;c:\usr\troy\src\sword\mgr;c:\usr\troy\src\sword\keys;$(BCB)\include;$(BCB)\include\vcl
+Item9=c:\usr\src\sword\include;c:\usr\troy\src\sword\frontend;c:\usr\troy\src\sword\frontend\windoze;c:\usr\troy\src\sword\utilfuns;c:\usr\troy\src\sword\modules;c:\usr\troy\src\sword\modules\texts;c:\usr\troy\src\sword\modules\texts\rawtext;c:\usr\troy\src\sword\modules\texts\rawgbf;c:\usr\troy\src\sword\modules\lexdict;c:\usr\troy\src\sword\modules\lexdict\rawld;c:\usr\troy\src\sword\modules\filters;c:\usr\troy\src\sword\modules\common;c:\usr\troy\src\sword\modules\comments;c:\usr\troy\src\sword\modules\comments\rawcom;c:\usr\troy\src\sword\mgr;c:\usr\troy\src\sword\keys;$(BCB)\include;$(BCB)\include\vcl
+
+[HistoryLists\hlDebugSourcePath]
+Count=1
+Item0=$(BCB)\source\vcl
+
+[HistoryLists\hlConditionals]
+Count=1
+Item0=_NO_VCL
+
+[Debugging]
+DebugSourceDirs=$(BCB)\source\vcl
+
+[Parameters]
+RunParams=
+HostApplication=
+RemoteHost=
+RemotePath=
+RemoteDebug=0
+
+[Compiler]
+InMemoryExe=0
+ShowInfoMsgs=0
+
+!endif
+
+# ---------------------------------------------------------------------------
+# MAKE SECTION
+# ---------------------------------------------------------------------------
+# This section of the project makefile is not used by the BCB IDE. It is for
+# the benefit of building from the command-line using the MAKE utility.
+# ---------------------------------------------------------------------------
+
+.autodepend
+# ---------------------------------------------------------------------------
+!if !$d(BCC32)
+BCC32 = bcc32
+!endif
+
+!if !$d(DCC32)
+DCC32 = dcc32
+!endif
+
+!if !$d(TASM32)
+TASM32 = tasm32
+!endif
+
+!if !$d(LINKER)
+LINKER = TLib
+!endif
+# ---------------------------------------------------------------------------
+!if $d(PATHCPP)
+.PATH.CPP = $(PATHCPP)
+.PATH.C = $(PATHCPP)
+!endif
+
+!if $d(PATHPAS)
+.PATH.PAS = $(PATHPAS)
+!endif
+
+!if $d(PATHASM)
+.PATH.ASM = $(PATHASM)
+!endif
+# ---------------------------------------------------------------------------
+$(PROJECT): $(OBJFILES)
+ $(BCB)\BIN\$(LINKER) /u $@ @&&!
+ $(LFLAGS) $?
+!
+# ---------------------------------------------------------------------------
+.pas.hpp:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.pas.obj:
+ $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< }
+
+.cpp.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< }
+
+.c.obj:
+ $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< }
+
+.asm.obj:
+ $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@
+# ---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/BibleCS/swordlib.cpp b/apps/windoze/CBuilder4/BibleCS/swordlib.cpp
new file mode 100644
index 0000000..8aad358
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/swordlib.cpp
@@ -0,0 +1,45 @@
+//---------------------------------------------------------------------------
+#include <condefs.h>
+#pragma hdrstop
+USEUNIT("..\..\..\..\src\keys\versekey.cpp");
+USEUNIT("..\..\..\..\src\keys\swkey.cpp");
+USEUNIT("..\..\..\..\src\keys\listkey.cpp");
+USEUNIT("..\..\..\..\src\keys\strkey.cpp");
+USEUNIT("..\..\..\..\src\mgr\swmgr.cpp");
+USEUNIT("..\..\..\..\src\mgr\swconfig.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\rawcom\rawcom.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\swcom.cpp");
+USEUNIT("..\..\..\..\src\modules\common\rawverse.cpp");
+USEUNIT("..\..\..\..\src\modules\common\rawstr.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\rwprtf.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbfrtf.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbfplain.cpp");
+USEUNIT("..\..\..\..\src\modules\lexdict\rawld\rawld.cpp");
+USEUNIT("..\..\..\..\src\modules\lexdict\swld.cpp");
+USEUNIT("..\..\..\..\src\modules\texts\rawgbf\rawgbf.cpp");
+USEUNIT("..\..\..\..\src\modules\texts\rawtext\rawtext.cpp");
+USEUNIT("..\..\..\..\src\modules\texts\swtext.cpp");
+USEUNIT("..\..\..\..\src\modules\swmodule.cpp");
+USEUNIT("..\..\tbdisp.cpp");
+USEUNIT("..\..\swdisprtfchap.cpp");
+USEUNIT("..\..\swwinlog.cpp");
+USEUNIT("..\..\swdisprtf.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\hrefcom\hrefcom.cpp");
+USEUNIT("..\..\..\..\src\mgr\filemgr.cpp");
+USEUNIT("..\..\..\..\src\modules\comments\rawfiles\rawfiles.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\utilstr.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\utilconf.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\Greek2Greek.cpp");
+USEUNIT("..\..\..\..\src\utilfuns\regex.c");
+USEUNIT("..\..\..\..\src\frontend\swlog.cpp");
+USEUNIT("..\..\..\..\src\frontend\swdisp.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbfstrongs.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\gbffootnotes.cpp");
+USEUNIT("..\..\..\..\src\modules\filters\cipherfil.cpp");
+USEUNIT("..\..\..\..\src\modules\common\sapphire.cpp");
+USEUNIT("..\..\..\..\src\modules\common\swcipher.cpp");
+//---------------------------------------------------------------------------
+#define Library
+
+// To add a file to the library use the Project menu 'Add to Project'.
+
diff --git a/apps/windoze/CBuilder4/BibleCS/swordprj.bpg b/apps/windoze/CBuilder4/BibleCS/swordprj.bpg
new file mode 100644
index 0000000..44add94
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/swordprj.bpg
@@ -0,0 +1,24 @@
+#------------------------------------------------------------------------------
+VERSION = BWS.01
+#------------------------------------------------------------------------------
+!ifndef ROOT
+ROOT = $(MAKEDIR)\..
+!endif
+#------------------------------------------------------------------------------
+MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$**
+DCC = $(ROOT)\bin\dcc32.exe $**
+BRCC = $(ROOT)\bin\brcc32.exe $**
+#------------------------------------------------------------------------------
+PROJECTS = swordlib sword
+#------------------------------------------------------------------------------
+default: sword
+#------------------------------------------------------------------------------
+
+
+swordlib: swordlib.bpr
+ $(MAKE)
+
+sword: sword.bpr
+ $(MAKE)
+
+
diff --git a/apps/windoze/CBuilder4/BibleCS/versesel.cpp b/apps/windoze/CBuilder4/BibleCS/versesel.cpp
new file mode 100644
index 0000000..8788580
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/versesel.cpp
@@ -0,0 +1,22 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "versesel.h"
+#include <versekey.h>
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TVerseSelFrm *VerseSelFrm;
+//---------------------------------------------------------------------------
+__fastcall TVerseSelFrm::TVerseSelFrm(TComponent* Owner)
+ : TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------
+void __fastcall TVerseSelFrm::Edit1Change(TObject *Sender)
+{
+ VerseKey trykey = Edit1->Text.c_str();
+ Panel2->Caption = (const char *)trykey;
+}
+//---------------------------------------------------------------------------
diff --git a/apps/windoze/CBuilder4/BibleCS/versesel.dfm b/apps/windoze/CBuilder4/BibleCS/versesel.dfm
new file mode 100644
index 0000000..ddc4857
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/versesel.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/versesel.h b/apps/windoze/CBuilder4/BibleCS/versesel.h
new file mode 100644
index 0000000..b4c1981
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/versesel.h
@@ -0,0 +1,27 @@
+//---------------------------------------------------------------------------
+#ifndef verseselH
+#define verseselH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+//---------------------------------------------------------------------------
+class TVerseSelFrm : public TForm
+{
+__published: // IDE-managed Components
+ TEdit *Edit1;
+ TPanel *Panel2;
+ TPanel *Panel1;
+ TButton *Button1;
+ TButton *Button2;
+ void __fastcall Edit1Change(TObject *Sender);
+private: // User declarations
+public: // User declarations
+ __fastcall TVerseSelFrm(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TVerseSelFrm *VerseSelFrm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/BibleCS/vrslstfrm.cpp b/apps/windoze/CBuilder4/BibleCS/vrslstfrm.cpp
new file mode 100644
index 0000000..0528c7f
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/vrslstfrm.cpp
@@ -0,0 +1,48 @@
+//---------------------------------------------------------------------------
+#include <vcl.h>
+#pragma hdrstop
+
+#include "vrslstfrm.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TVerseListFrm *VerseListFrm;
+//---------------------------------------------------------------------------
+__fastcall TVerseListFrm::TVerseListFrm(TComponent* Owner, ListKey &iVerseList)
+ : TForm(Owner), verseList(iVerseList) {
+ pvrtf = new SWDispRTF(this);
+
+ pvrtf->Parent = plPreview;
+ pvrtf->Align = alClient;
+ pvrtf->ScrollBars = ssVertical;
+ pvrtf->ReadOnly = true;
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TVerseListFrm::ListBox1Click(TObject *Sender) {
+ ModMap::iterator target;
+ target = Form1->mainmgr->Modules.find(Form1->PageControl1->ActivePage->Caption.c_str());
+ if (target != Form1->mainmgr->Modules.end()) {
+ SWKey *savekey = *(*target).second;
+ (*target).second->SetKey(ListBox1->Items->Strings[ListBox1->ItemIndex].c_str());
+ pvrtf->Display(*(*target).second);
+ (*target).second->SetKey(*savekey);
+ }
+}
+//---------------------------------------------------------------------------
+
+void __fastcall TVerseListFrm::ListBox1DblClick(TObject *Sender)
+{
+ Form1->DefaultVSKey = ListBox1->Items->Strings[ListBox1->ItemIndex].c_str();
+ Form1->TextKeyChanged();
+}
+//---------------------------------------------------------------------------
+void __fastcall TVerseListFrm::FormShow(TObject *Sender)
+{
+ for (verseList = TOP; (!verseList.Error()); verseList++)
+ ListBox1->Items->Add((const char *)verseList);
+}
+//---------------------------------------------------------------------------
+
+
+
diff --git a/apps/windoze/CBuilder4/BibleCS/vrslstfrm.dfm b/apps/windoze/CBuilder4/BibleCS/vrslstfrm.dfm
new file mode 100644
index 0000000..0e923ed
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/vrslstfrm.dfm
Binary files differ
diff --git a/apps/windoze/CBuilder4/BibleCS/vrslstfrm.h b/apps/windoze/CBuilder4/BibleCS/vrslstfrm.h
new file mode 100644
index 0000000..7af64b9
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/vrslstfrm.h
@@ -0,0 +1,29 @@
+//---------------------------------------------------------------------------
+#ifndef vrslstfrmH
+#define vrslstfrmH
+//---------------------------------------------------------------------------
+#include <Classes.hpp>
+#include <Controls.hpp>
+#include <StdCtrls.hpp>
+#include <Forms.hpp>
+#include <ExtCtrls.hpp>
+#include "mainfrm.h"
+//---------------------------------------------------------------------------
+class TVerseListFrm : public TForm
+{
+__published: // IDE-managed Components
+ TPanel *plPreview;
+ TListBox *ListBox1;
+ void __fastcall ListBox1Click(TObject *Sender);
+ void __fastcall ListBox1DblClick(TObject *Sender);
+ void __fastcall FormShow(TObject *Sender);
+private: // User declarations
+ SWDispRTF *pvrtf;
+ ListKey &verseList;
+public: // User declarations
+ __fastcall TVerseListFrm(TComponent* Owner, ListKey &iVerseList);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TVerseListFrm *VerseListFrm;
+//---------------------------------------------------------------------------
+#endif
diff --git a/apps/windoze/CBuilder4/BibleCS/wtbsa.conf b/apps/windoze/CBuilder4/BibleCS/wtbsa.conf
new file mode 100644
index 0000000..ff69dc7
--- /dev/null
+++ b/apps/windoze/CBuilder4/BibleCS/wtbsa.conf
@@ -0,0 +1,20 @@
+[ROOT]
+WTBSA=What the Bible Says About...
+
+[WTBSA]
+Mormons=Mormonism
+Calvan=Calvanism
+
+[Mormons]
+Verse=I Peter 2:8
+
+[Calvan]
+Verse=James 1:19
+TotalDep=Total Depravity of Man
+UncondEl=Unconditional Election
+LimAt=Limited Atonement
+IrrGrace=Irresistable Grace
+PersSt=Perseverence of the Saints
+
+[TotalDep]
+Verse=Romans 1:1