summaryrefslogtreecommitdiff
path: root/src/modules/lexdict/swld.cpp
diff options
context:
space:
mode:
authorRoberto C. Sanchez <roberto@connexer.com>2014-03-29 10:53:59 -0400
committerRoberto C. Sanchez <roberto@connexer.com>2014-03-29 10:53:59 -0400
commit03134fa5f6f25d92724ce4c183f9bbe12a9e37dc (patch)
tree847326a4de82f0241ac87cbbc427a1b92a696a02 /src/modules/lexdict/swld.cpp
parentd7469385b05b9510338407fa123e9ad090f80af6 (diff)
Imported Upstream version 1.5.11
Diffstat (limited to 'src/modules/lexdict/swld.cpp')
-rw-r--r--src/modules/lexdict/swld.cpp82
1 files changed, 82 insertions, 0 deletions
diff --git a/src/modules/lexdict/swld.cpp b/src/modules/lexdict/swld.cpp
new file mode 100644
index 0000000..518e5c0
--- /dev/null
+++ b/src/modules/lexdict/swld.cpp
@@ -0,0 +1,82 @@
+/******************************************************************************
+ * swld.cpp - code for base class 'SWLD'. SWLD is the basis for all
+ * types of Lexicon and Dictionary modules (hence the 'LD').
+ */
+
+#include <swld.h>
+#include <strkey.h>
+
+SWORD_NAMESPACE_START
+
+/******************************************************************************
+ * SWLD Constructor - Initializes data for instance of SWLD
+ *
+ * ENT: imodname - Internal name for module
+ * imoddesc - Name to display to user for module
+ * idisp - Display object to use for displaying
+ */
+
+SWLD::SWLD(const char *imodname, const char *imoddesc, SWDisplay *idisp, SWTextEncoding enc, SWTextDirection dir, SWTextMarkup mark, const char* ilang) : SWModule(imodname, imoddesc, idisp, (char *)"Lexicons / Dictionaries", enc, dir, mark, ilang)
+{
+ delete key;
+ key = CreateKey();
+ entkeytxt = new char [1];
+ *entkeytxt = 0;
+}
+
+
+/******************************************************************************
+ * SWLD Destructor - Cleans up instance of SWLD
+ */
+
+SWLD::~SWLD()
+{
+ if (entkeytxt)
+ delete [] entkeytxt;
+}
+
+
+SWKey *SWLD::CreateKey() { return new StrKey(); }
+
+
+/******************************************************************************
+ * SWLD::KeyText - Sets/gets module KeyText, getting from saved text if key is
+ * persistent
+ *
+ * ENT: ikeytext - value which to set keytext
+ * [0] - only get
+ *
+ * RET: pointer to keytext
+ */
+
+const char *SWLD::KeyText(const char *ikeytext)
+{
+ if (key->Persist() && !ikeytext) {
+ getRawEntryBuf(); // force module key to snap to entry
+ return entkeytxt;
+ }
+ else return SWModule::KeyText(ikeytext);
+}
+
+
+/******************************************************************************
+ * SWLD::setPosition(SW_POSITION) - Positions this key if applicable
+ */
+
+void SWLD::setPosition(SW_POSITION p) {
+ if (!key->isTraversable()) {
+ switch (p) {
+ case POS_TOP:
+ *key = "";
+ break;
+ case POS_BOTTOM:
+ *key = "zzzzzzzzz";
+ break;
+ }
+ }
+ else *key = p;
+ getRawEntryBuf();
+}
+
+
+SWORD_NAMESPACE_END