swtext.h

00001 /******************************************************************************
00002  *  swtext.h   - code for base class 'SWText'.  SWText is the basis for all
00003  *               types of text modules
00004  *
00005  * $Id: swtext.h 1864 2005-11-20 06:06:40Z scribe $
00006  *
00007  * Copyright 1998 CrossWire Bible Society (http://www.crosswire.org)
00008  *      CrossWire Bible Society
00009  *      P. O. Box 2528
00010  *      Tempe, AZ  85280-2528
00011  *
00012  * This program is free software; you can redistribute it and/or modify it
00013  * under the terms of the GNU General Public License as published by the
00014  * Free Software Foundation version 2.
00015  *
00016  * This program is distributed in the hope that it will be useful, but
00017  * WITHOUT ANY WARRANTY; without even the implied warranty of
00018  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00019  * General Public License for more details.
00020  *
00021  */
00022 
00023 #ifndef SWTEXT_H
00024 #define SWTEXT_H
00025 
00026 #include <swmodule.h>
00027 
00028 #include <defs.h>
00029 
00030 SWORD_NAMESPACE_START
00031 
00032 class VerseKey;
00033 
00036 class SWDLLEXPORT SWText : public SWModule {
00037 
00038         // for conversion if we have been set with a different internal key type
00039         mutable VerseKey *tmpVK;
00040 
00041 protected:
00042         VerseKey &getVerseKey() const;
00043         
00044 public:
00047         SWText(const char *imodname = 0, const char *imoddesc = 0,
00048                         SWDisplay * idisp = 0,
00049                         SWTextEncoding encoding = ENC_UNKNOWN,
00050                         SWTextDirection dir = DIRECTION_LTR,
00051                         SWTextMarkup markup = FMT_UNKNOWN, const char* ilang = 0);
00052 
00053         virtual ~SWText();
00056         virtual SWKey *CreateKey();
00057 
00058         virtual long Index() const;
00059         virtual long Index(long iindex);
00060 
00061         // OPERATORS -----------------------------------------------------------------
00062         
00063         SWMODULE_OPERATORS
00064 
00065 };
00066 
00067 SWORD_NAMESPACE_END
00068 
00069 #endif