summaryrefslogtreecommitdiff
path: root/examples/windoze/bcowl25/multimod/swrtdlgc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/windoze/bcowl25/multimod/swrtdlgc.cpp')
-rw-r--r--examples/windoze/bcowl25/multimod/swrtdlgc.cpp213
1 files changed, 213 insertions, 0 deletions
diff --git a/examples/windoze/bcowl25/multimod/swrtdlgc.cpp b/examples/windoze/bcowl25/multimod/swrtdlgc.cpp
new file mode 100644
index 0000000..44e93ca
--- /dev/null
+++ b/examples/windoze/bcowl25/multimod/swrtdlgc.cpp
@@ -0,0 +1,213 @@
+/* Project sword
+
+ GNU Copyleft GPL © 1996. Almost No Rights Reserved.
+
+ SUBSYSTEM: sword.exe Application
+ FILE: swrtdlgc.cpp
+ AUTHOR: The Sword Project Team
+
+
+ OVERVIEW
+ ========
+ Source file for implementation of swordTDLGClient (TDialog).
+*/
+
+
+#include <owl\owlpch.h>
+#pragma hdrstop
+
+#include "tversedt.h"
+#include "swordapp.h"
+#include "swrtdlgc.h"
+#include "serchdlg.h"
+
+#include <versekey.h>
+#include <rawtext.h>
+#include <rawcom.h>
+#include <rawld.h>
+#include <tbdisp.h>
+
+
+class TBLDDisp: public TBDisp {
+ int nameid, keyid;
+public:
+ TBLDDisp(HWND iwnd, int ictrlid, int inameid = 0, int ikeyid = 0):TBDisp(iwnd, ictrlid) {
+ nameid = inameid;
+ keyid = ikeyid;
+ }
+ virtual char Display(SWModule &imodule) {
+ TBDisp::Display(imodule);
+ if (nameid)
+ SetDlgItemText(wnd, nameid, imodule.Description());
+ if (keyid)
+ SetDlgItemText(wnd, keyid, (char *)(SWKey)imodule);
+ }
+};
+
+
+SWDisplay *edit1disp = 0;
+SWDisplay *edit2disp = 0;
+SWDisplay *edit3disp = 0;
+VerseKey *masterkey = 0;
+SWModule *webster = 0;
+SWModule *mhc = 0;
+SWModule *eastons = 0;
+SWModule *vines = 0;
+
+//
+// Build a response table for all messages/commands handled
+// by the application.
+//
+DEFINE_RESPONSE_TABLE1(swordTDLGClient, TDialog)
+//{{swordTDLGClientRSP_TBL_BEGIN}}
+ EV_BN_CLICKED(IDC_LOOKUP, BNClicked),
+ EV_WM_RBUTTONDOWN,
+ EV_BN_CLICKED(IDC_UPBUTTON, UpVerse),
+ EV_BN_CLICKED(IDC_DOWNBUTTON, DownVerse),
+ EV_COMMAND(CM_EDITFIND, SearchTxt),
+//{{swordTDLGClientRSP_TBL_END}}
+END_RESPONSE_TABLE;
+
+
+// SWLookup This is a kludgy way to lookup, but a Module manager will do
+// this work in the future
+void SWLookup(char *modname, SWKey &key)
+{
+ if (!stricmp(modname, eastons->Name())) {
+ eastons->SetKey(key);
+ eastons->Display();
+ }
+ if (!stricmp(modname, vines->Name())) {
+ vines->SetKey(key);
+ vines->Display();
+ }
+}
+
+
+
+
+//{{swordTDLGClient Implementation}}
+
+
+//////////////////////////////////////////////////////////
+// swordTDLGClient
+// ==========
+// Construction/Destruction handling.
+static swordTDLGClientXfer swordTDLGClientData;
+
+swordTDLGClient::swordTDLGClient (TWindow *parent, TResId resId, TModule *module)
+ : TDialog(parent, resId, module)
+{
+//{{swordTDLGClientXFER_USE}}
+ BookCB = new TComboBox(this, IDC_BOOK, 1);
+ WebEdit = new TVerseEdit(this, IDC_VTEXT, 255);
+ MHCEdit = new TVerseEdit(this, IDC_CTEXT, 255);
+ LDText = new TVerseEdit(this, IDC_DTEXT, 255);
+
+ SetTransferBuffer(&swordTDLGClientData);
+//{{swordTDLGClientXFER_USE_END}}
+
+}
+
+
+swordTDLGClient::~swordTDLGClient ()
+{
+ Destroy();
+
+ delete edit1disp;
+ delete edit2disp;
+ delete edit3disp;
+ delete webster;
+ delete mhc;
+ delete eastons;
+ delete vines;
+ delete masterkey;
+}
+
+
+void swordTDLGClient::SetupWindow ()
+{
+ char loop1, loop2;
+
+ TDialog::SetupWindow();
+
+ edit1disp = new TBLDDisp(HWindow, IDC_VTEXT, 0, IDC_KTEXT);
+ edit2disp = new TBLDDisp(HWindow, IDC_CTEXT);
+ edit3disp = new TBLDDisp(HWindow, IDC_DTEXT, IDC_LDNAME, IDC_LDKEY);
+ masterkey = new VerseKey();
+ webster = new RawText("../../../../modules/texts/rawtext/webster/", "Webster", "Webster Text", edit1disp);
+ mhc = new RawCom ("../../../../modules/comments/rawcom/mhc/", "MHC", "Matthew Henry's Commentary", edit2disp);
+ eastons = new RawLD ("../../../../modules/lexdict/rawld/eastons/eastons", "Eastons", "Easton's Bible Dictionary", edit3disp);
+ vines = new RawLD ("../../../../modules/lexdict/rawld/vines/vines", "Vines", "Vine's Bible Dictionary", edit3disp);
+
+ masterkey->Persist(1);
+ webster->SetKey(*masterkey);
+ mhc->SetKey(*masterkey);
+
+ for (loop1 = 0; loop1 < 2; loop1++) {
+ for (loop2 = 0; loop2 < VerseKey::BMAX[loop1]; loop2++) {
+ BookCB->AddString(VerseKey::books[loop1][loop2].name);
+ }
+ }
+ BookCB->SetSelIndex(58);
+ SetDlgItemText(IDC_CHAPTER, "1");
+ SetDlgItemText(IDC_VERSE, "19");
+}
+
+
+void swordTDLGClient::BNClicked ()
+{
+ char buf[80], tmpbuf[70];
+ int ch, vs;
+
+ BookCB->GetText(tmpbuf, 79);
+ ch = GetDlgItemInt(IDC_CHAPTER);
+ vs = GetDlgItemInt(IDC_VERSE);
+
+ masterkey->AutoNormalize(ch && vs); // if either chapter or verse are 0 then don't auto normalize so that we can lookup intros
+
+ wsprintf(buf, "%s %d:%d", tmpbuf, ch, vs);
+ *masterkey = buf;
+
+ webster->Display();
+ mhc->Display();
+
+}
+
+
+void swordTDLGClient::EvRButtonDown (uint modKeys, TPoint& point)
+{
+ TDialog::EvRButtonDown(modKeys, point);
+}
+
+
+void swordTDLGClient::UpVerse ()
+{
+ (*masterkey)--;
+ webster->Display();
+ mhc->Display();
+}
+
+
+void swordTDLGClient::DownVerse ()
+{
+ (*masterkey)++;
+ webster->Display();
+ mhc->Display();
+}
+
+
+void swordTDLGClient::EvPaint ()
+{
+ TDialog::EvPaint();
+
+ // INSERT>> Your code here.
+
+}
+
+
+void swordTDLGClient::SearchTxt ()
+{
+ new SearchDlg(this)->Create();
+}
+