Will this be a part of Sword? Troy, what do you say?
mg Am Montag, 17. Dezember 2007 schrieb Jonathan Morgan: > On Dec 3, 2007 12:36 AM, Jonathan Morgan <[EMAIL PROTECTED]> wrote: > > I have a suggestion for a feature that I would consider very useful in > > Bible software. This idea I originally characterised in terms of > > "tagging", but my brother said it sounded very much like verse lists. > > My personal view is that verse lists may be useful in implementing > > something like tagging, but the two are semantically different (for > > example, a verse list tends to imply an order, while tagging doesn't. > > Similarly, tagging would tend to be considered to apply to a verse > > that was tagged, while a verse list is just a list of verses.) > > After discussion with Ben, I have developed a proposed interface for > this feature, given below. God willing, I plan to implement the > feature in the next two weeks, as well as adding support for it at the > UI level to BPBible as a sample of how I think it should work. Any > comments on the proposed interface are welcome. > > Jon > > PassageList API: > typedef PassageListMap std::map<std::string, sword::PassageList>; > > /** > Returns the passage list map, which maps unique names to passage lists. > */ > PassageListMap SWMgr::getPassageLists(); > > /** > Creates a new passage list with the given name, and adds it to the > passage list map. > There must not already be a passage list with the given name. > */ > PassageList SWMgr::addPassageList(std::string name); > > /** > Creates a new passage list with the given name, and initialises it with the > given list of passages. > */ > PassageList SWMgr::addPassageList(std::string name, ListKey passages); > > /** > Removes the given passage list. > Returns true on success, and false on failure. > */ > bool SWMgr::removePassageList(PassageList); > > /** > Removes the passage list with the given name. > Returns true on success, and false on failure. > */ > bool SWMgr::removePassageList(std::string name); > > /** > A passage list must have a unique name to identify itself. > It may also have a description of the list, which can be used by the user. > */ > PassageList > =========== > PassageList::get/setName() > PassageList::get/setDescription() > > /** > Adds the given passage to the end of the passage list. > */ > PassageList::addPassage(PassageEntry passage); > PassageList::addPassage(VerseKey passage); > PassageList::moveUp(int index); > PassageList::moveDown(int index); > > /** > Removes the given passage entry from the list. > */ > PassageList::removePassage(PassageEntry passage) > PassageList::removePassage(int index) > > /** > Sorts the passage list. At present, this will only support sorting it in > canonical order, but in the future, other sort orders may be supported. > */ > void PassageList::sort(PassageListSortOrder order) > > /** > Gets a list key with all the passages in the passage list. > */ > ListKey PassageList::getListKey(); > > /** > Creates a new passage list with the same passages as this passage list, but > with the given new name. > */ > PassageList PassageList::clone(std::string newName) > > /** > Returns true if the given verse is contained in the passage list. > */ > boolean PassageList::containsVerse(VerseKey verse) > > /** > This class wraps around a VerseKey to allow additional attributes to be > attached to an entry in a passage list. At present, the main addition that > is planned is attaching comments to passage entries. > */ > PassageEntry > ============ > /** > Creates a passage entry from the given verse. > */ > PassageEntry(VerseKey verse) > > /** > VerseKey PassageEntry::get/setPassage() > > /** > For later extension. > */ > std::string PassageEntry::get/setComment() > > _______________________________________________ > sword-devel mailing list: sword-devel@crosswire.org > http://www.crosswire.org/mailman/listinfo/sword-devel > Instructions to unsubscribe/change your settings at above page _______________________________________________ sword-devel mailing list: sword-devel@crosswire.org http://www.crosswire.org/mailman/listinfo/sword-devel Instructions to unsubscribe/change your settings at above page