home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / Linux / Divers / lyx-0.13.2.tar.gz / lyx-0.13.2.tar / lyx-0.13.2 / src / Spacing.h < prev    next >
C/C++ Source or Header  |  1998-04-23  |  1KB  |  81 lines

  1. // -*- C++ -*-
  2. /* This file is part of
  3. * ======================================================
  4. *           LyX, The Document Processor
  5. *        
  6. *           Copyright (C) 1995 1996 Matthias Ettrich
  7. *           and the LyX Team.
  8. *
  9. *======================================================*/
  10.  
  11. #ifndef _SPACING_H
  12. #define _SPACING_H
  13.  
  14. ///
  15. class Spacing {
  16. public:
  17.     ///
  18.     enum Space {
  19.         ///
  20.         Single,
  21.         ///
  22.         Onehalf,
  23.         ///
  24.         Double,
  25.         ///
  26.         Other
  27.     };
  28.     ///
  29.     Spacing()
  30.     {
  31.         space = Single;
  32.         value = getValue();
  33.     }
  34.     ///
  35.     float getValue() const
  36.     {
  37.         switch(space) {
  38.         case Single: return 1.0;
  39.         case Onehalf: return 1.25;
  40.         case Double: return 1.667;
  41.         case Other: return value;
  42.         }
  43.         return 1.0;
  44.     }
  45.     ///
  46.     Spacing::Space getSpace() const
  47.     {
  48.         return space;
  49.     }
  50.     ///
  51.     void set(Spacing::Space sp, float val= 1.0)
  52.     {
  53.         space = sp;
  54.         if (sp == Other) {
  55.             switch(int(val*1000 + 0.5)) {
  56.             case 1000: space = Single; break;
  57.             case 1250: space = Onehalf; break;
  58.             case 1667: space = Double; break;
  59.             default: value = val; break;
  60.             }
  61.         }
  62.     }
  63.     ///
  64.     void writeFile(FILE *file);
  65.     ///
  66.     friend bool operator!=(Spacing const &a, Spacing const &b)
  67.     {
  68.         if (a.space == b.space && a.getValue() == b.getValue())
  69.             return false;
  70.         return true;
  71.     }
  72. private:
  73.     ///
  74.     Space space;
  75.     ///
  76.     float value;
  77. };
  78.  
  79. #endif
  80.