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 / bufferparams.h < prev    next >
C/C++ Source or Header  |  1998-04-23  |  3KB  |  150 lines

  1. // -*- C++ -*-
  2. /* This file is part of
  3.  * ======================================================
  4.  * 
  5.  *           LyX, The Document Processor
  6.  *      
  7.  *        Copyright (C) 1995 1996 Matthias Ettrich
  8.  *           and the LyX Team.
  9.  *
  10.  *======================================================*/
  11.  
  12. #ifndef _BUFFERPARAMS_H
  13. #define _BUFFERPARAMS_H
  14.  
  15. #ifdef __GNUG__
  16. #pragma interface
  17. #endif
  18.  
  19. #include "LString.h"
  20. #include "lyxlex.h"
  21. #include "vspace.h"
  22. #include "Spacing.h"
  23. #include "Bullet.h"
  24. #include "insetquotes.h"
  25.  
  26. /**
  27.   This class contains all the parameters for this a buffer uses. Some
  28.   work needs to be done on this class to make it nice. Now everything
  29.   is in public.
  30.   */
  31. class BufferParams {
  32. public:
  33.     //@Man: Constructors and Deconstructors
  34.     //@{
  35.     ///
  36.     BufferParams();
  37.     // ///
  38.     //BufferParams(const BufferParams&);
  39.     //@}
  40.  
  41.     ///
  42.     void writeFile(FILE *);
  43.  
  44.  
  45.     ///
  46.     void useClassDefaults();
  47.  
  48.     ///
  49.     VSpace getDefSkip() const { return defskip; }
  50.  
  51.     ///
  52.     void setDefSkip(VSpace vs) { defskip = vs; }
  53.     
  54.     /** Wether paragraphs are separated by using a indent like in
  55.       articles or by using a little skip like in letters.
  56.       */
  57.       char paragraph_separation; // add approp. signedness
  58.     ///
  59.       InsetQuotes::quote_language quotes_language;
  60.     ///
  61.       InsetQuotes::quote_times quotes_times;
  62.     ///
  63.       LString fontsize; 
  64.     ///
  65.      signed char textclass;
  66.  
  67.     /* this are for the PaperLayout */
  68.    ///
  69.       char papersize; /* the general papersize (papersize2 or paperpackage */ // add approp. signedness
  70.         ///
  71.         char papersize2; /* the selected Geometry papersize */ // add approp. signedness
  72.         ///
  73.         char paperpackage; /* a special paperpackage .sty-file */ // add approp. signedness
  74.         ///
  75.     char orientation; // add approp. signedness
  76.     ///
  77.         bool use_geometry;
  78.         ///
  79.         LString paperwidth;
  80.         ///
  81.         LString paperheight;
  82.         ///
  83.         LString leftmargin;
  84.         ///
  85.         LString topmargin;
  86.         ///
  87.         LString rightmargin;
  88.         ///
  89.         LString bottommargin;
  90.         ///
  91.         LString headheight;
  92.         ///
  93.         LString headsep;
  94.         ///
  95.         LString footskip;
  96.         
  97.         /* some LaTeX options */
  98.     /// The graphics driver
  99.     LString graphicsDriver;
  100.     ///
  101.     LString fonts;
  102.     ///
  103.     Spacing spacing;
  104.     ///
  105.     signed char secnumdepth;
  106.     ///
  107.     signed char tocdepth;
  108.     ///
  109.     LString language;
  110.     ///
  111.     LString inputenc;
  112.     ///
  113.     LString preamble;
  114.     ///
  115.     LString options;
  116.     ///
  117.     LString float_placement;
  118.     ///
  119.     char columns; // add approp. signedness
  120.     ///
  121.     char sides; // add approp. signedness
  122.     ///
  123.     LString pagestyle;
  124.     ///
  125.     Bullet temp_bullets[4];
  126.     ///
  127.     Bullet user_defined_bullets[4];
  128.     ///
  129.     void Copy(BufferParams const &p);
  130.     ///
  131.     virtual void readPreamble(LyXLex &);
  132.     ///
  133.     virtual void readLanguage(LyXLex &);
  134.     ///
  135.     virtual void readGraphicsDriver(LyXLex &);
  136.     /// do we allow accents on all chars in this buffer
  137.     bool allowAccents;
  138.     ///
  139.         bool use_amsmath;
  140. protected:
  141. private:
  142.     ///
  143.     friend class Buffer;
  144.     /** This is the amount of space used for paragraph_separation "skip",
  145.       and for detached paragraphs in "indented" documents. */
  146.     VSpace defskip;
  147. };
  148.  
  149. #endif
  150.