swcom.h

00001 /******************************************************************************
00002  *  swcom.h   - code for base class 'SWCom'.  SWCom is the basis for all
00003  *               types of commentary modules
00004  *
00005  * $Id: swcom.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 SWCOM_H
00024 #define SWCOM_H
00025 
00026 #include <swmodule.h>
00027 
00028 #include <defs.h>
00029 
00030 SWORD_NAMESPACE_START
00031 
00032 class VerseKey;
00033 class SWKey;
00034 
00037 class SWDLLEXPORT SWCom : public SWModule {
00038 
00039         mutable VerseKey *tmpVK;
00040 
00041 protected:
00042         VerseKey &getVerseKey() const;
00043 
00044 
00045 public:
00046 
00049         SWCom(const char *imodname = 0, const char *imoddesc = 0,
00050                         SWDisplay * idisp = 0, SWTextEncoding enc = ENC_UNKNOWN,
00051                         SWTextDirection dir = DIRECTION_LTR,
00052                         SWTextMarkup mark = FMT_UNKNOWN, const char* ilang = 0);
00053 
00054         virtual ~SWCom();
00055         virtual SWKey *CreateKey();
00056 
00057         virtual long Index() const;
00058         virtual long Index(long iindex);
00059 
00060 
00061 
00062         // OPERATORS -----------------------------------------------------------------
00063         
00064         SWMODULE_OPERATORS
00065 
00066 };
00067 
00068 SWORD_NAMESPACE_END
00069 #endif