#include <listkey.h>
Inheritance diagram for ListKey:


Public Methods | |
| ListKey (const char *ikey=0) | |
| initializes instance of ListKey. More... | |
| ListKey (ListKey const &k) | |
| virtual | ~ListKey () |
| cleans up instance of ListKey. | |
| virtual SWKey * | clone () const |
| Returns a copy of this SWKey object. More... | |
| virtual void | ClearList () |
| Clears out elements of list. | |
| virtual int | Count () |
| Returns number of elements in list. More... | |
| virtual void | Remove () |
| Removes current element from list. | |
| virtual char | SetToElement (int ielement, SW_POSITION=TOP) |
| Sets key to element number. More... | |
| virtual SWKey * | GetElement (int pos=-1) |
| Gets a key element number. More... | |
| ListKey & | operator<< (const SWKey &ikey) |
| Adds an element to the list. More... | |
| virtual void | add (const SWKey &ikey) |
| virtual void | copyFrom (const ListKey &ikey) |
| Equates this ListKey to another ListKey object. More... | |
| virtual void | copyFrom (const SWKey &ikey) |
| Equates this SWKey to another SWKey object. More... | |
| virtual void | setPosition (SW_POSITION) |
| Positions this key. More... | |
| virtual void | decrement (int step) |
| Decrements a number of elements. | |
| virtual void | increment (int step) |
| Increments a number of elements. | |
| virtual char | Traversable () |
| virtual long | Index () const |
| Use this function to get te current position withing a module. More... | |
| virtual long | Index (long index) |
| Returns the index for the new one given as as parameter. More... | |
| SWKEY_OPERATORS ListKey & | operator= (const ListKey &key) |
Protected Attributes | |
| int | arraypos |
| int | arraymax |
| int | arraycnt |
| SWKey ** | array |
Private Methods | |
| void | init () |
Static Private Attributes | |
| SWClass | classdef |
a list of verses, place, etc.)
Definition at line 36 of file listkey.h.
|
|
initializes instance of ListKey.
Definition at line 22 of file listkey.cpp. References ClearList(). Referenced by clone().
|
|
|
Returns a copy of this SWKey object. This is useful to get a 1:1 copy of an SWKey based object.
Reimplemented from SWKey. Definition at line 45 of file listkey.cpp. References ListKey().
00046 {
00047 return new ListKey(*this);
00048 }
|
|
|
Equates this SWKey to another SWKey object.
Reimplemented from SWKey. Definition at line 90 of file listkey.h. References SWKey::copyFrom().
00090 { SWKey::copyFrom(ikey); }
|
|
|
Equates this ListKey to another ListKey object.
Definition at line 87 of file listkey.cpp. References array, arraycnt, arraymax, arraypos, ClearList(), SWKey::clone(), and SetToElement().
00087 {
00088 ClearList();
00089
00090 arraymax = ikey.arraymax;
00091 arraypos = ikey.arraypos;
00092 arraycnt = ikey.arraycnt;
00093 array = (arraymax)?(SWKey **)malloc(ikey.arraymax * sizeof(SWKey *)):0;
00094 for (int i = 0; i < arraycnt; i++)
00095 array[i] = ikey.array[i]->clone();
00096
00097 SetToElement(0);
00098 }
|
|
|
Returns number of elements in list.
Definition at line 186 of file listkey.cpp. Referenced by VerseKey::parse().
00186 {
00187 return arraycnt;
00188 }
|
|
|
Gets a key element number.
Definition at line 233 of file listkey.cpp.
00233 {
00234 if (pos >=0) {
00235 if (pos >=arraycnt)
00236 error = KEYERR_OUTOFBOUNDS;
00237 }
00238 else pos = arraypos;
00239 return (error) ? 0:array[pos];
00240 }
|
|
|
Returns the index for the new one given as as parameter. The first parameter is the new index. Reimplemented from SWKey. Definition at line 112 of file listkey.h. References SWKey::Index().
00112 { SetToElement (index); return Index (); }
|
|
|
Use this function to get te current position withing a module. Here's a small example how to use this function and Index(long). This function uses the GerLut module and chooses a random verse from the Bible and returns it. const char* randomVerse() {
VerseKey vk;
SWMgr mgr;
LocaleMgr::systemLocaleMgr.setDefaultLocaleName("de");
SWModule* module = mgr->Modules("GerLut");
srand( time(0) );
const double newIndex = (double(rand())/RAND_MAX)*(24108+8224);
vk.Index(newIndex);
module->SetKey(vk);
char* text;
sprintf(text, "%s: %s",(const char*)vk ,module->StripText(&vk));
return text;
Reimplemented from SWKey. Definition at line 106 of file listkey.h.
00106 { return arraypos; }
|
|
|
Adds an element to the list.
Definition at line 82 of file listkey.h.
00082 { add(ikey); return *this; }
|
|
|
Positions this key.
Reimplemented from SWKey. Definition at line 124 of file listkey.cpp. References SetToElement().
00124 {
00125 switch (p) {
00126 case 1: // GCC won't compile P_TOP
00127 SetToElement(0);
00128 break;
00129 case 2: // GCC won't compile P_BOTTOM
00130 SetToElement(arraycnt-1);
00131 break;
00132 }
00133 }
|
|
||||||||||||
|
Sets key to element number.
Definition at line 199 of file listkey.cpp. Referenced by copyFrom(), decrement(), increment(), Remove(), and setPosition().
00199 {
00200 arraypos = ielement;
00201 if (arraypos >= arraycnt) {
00202 arraypos = (arraycnt>0)?arraycnt - 1:0;
00203 error = KEYERR_OUTOFBOUNDS;
00204 }
00205 else {
00206 if (arraypos < 0) {
00207 arraypos = 0;
00208 error = KEYERR_OUTOFBOUNDS;
00209 }
00210 else {
00211 error = 0;
00212 }
00213 }
00214
00215 if (arraycnt) {
00216 (*array[arraypos]) = pos;
00217 *this = (const char *)(*array[arraypos]);
00218 }
00219 else *this = "";
00220
00221 return error;
00222 }
|
1.2.15