00001 // This file is part of dvi2bitmap. 00002 // Copyright 1999--2002, Council for the Central Laboratory of the Research Councils 00003 // 00004 // This program is part of the Starlink Software Distribution: see 00005 // http://www.starlink.ac.uk 00006 // 00007 // dvi2bitmap is free software; you can redistribute it and/or modify 00008 // it under the terms of the GNU General Public License as published by 00009 // the Free Software Foundation; either version 2 of the License, or 00010 // (at your option) any later version. 00011 // 00012 // dvi2bitmap is distributed in the hope that it will be useful, 00013 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 // GNU General Public License for more details. 00016 // 00017 // You should have received a copy of the GNU General Public License 00018 // along with dvi2bitmap; if not, write to the Free Software 00019 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00020 // 00021 // The General Public License is distributed along with this 00022 // program in the file LICENCE. 00023 // 00024 // Author: Norman Gray <norman@astro.gla.ac.uk> 00025 // $Id: PageRange.h,v 1.5 2003/02/16 21:48:06 norman Exp $ 00026 00027 00028 #ifndef PAGERANGE_HEADER_READ 00029 #define PAGERANGE_HEADER_READ 1 00030 00031 // gcc iostream may somehow omit NULL 00032 #ifndef NULL 00033 #define NULL 0 00034 #endif 00035 00036 //#include <iostream> 00037 #include <map> 00038 #include "verbosity.h" 00039 00040 class PageRange 00041 { 00042 public: 00043 PageRange(); 00044 00045 bool addSpec(const char, const char *); 00046 bool isSelected (const int, const int*); 00047 static void verbosity (const verbosities level) { verbosity_ = level; }; 00048 00049 private: 00050 bool useCounts_; 00051 int useCountNo_; 00052 int first_, last_; 00053 enum { oneRange, ranges, unset } rangeType_; 00054 static verbosities verbosity_; 00055 std::map<int,bool> setPages_; 00056 }; 00057 00058 #endif