X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fbufferparams.h;h=811eeede6e656984454b69177a297d2d76a30ddb;hb=50a869e0e9f1d963421c726dcd1631c0f7eb65d6;hp=f7176b1eac73f54957485550dda4becbf47d56e2;hpb=0eccdd1c3613e5170deb77b22174dd0afde833e9;p=lyx.git diff --git a/src/bufferparams.h b/src/bufferparams.h index f7176b1eac..811eeede6e 100644 --- a/src/bufferparams.h +++ b/src/bufferparams.h @@ -1,16 +1,16 @@ // -*- C++ -*- /* This file is part of * ====================================================== - * + * * LyX, The Document Processor - * - * Copyright (C) 1995 1996 Matthias Ettrich - * and the LyX Team. * - *======================================================*/ + * Copyright 1995 Matthias Ettrich + * Copyright 1995-2001 The LyX Team. + * + * ====================================================== */ -#ifndef _BUFFERPARAMS_H -#define _BUFFERPARAMS_H +#ifndef BUFFERPARAMS_H +#define BUFFERPARAMS_H #ifdef __GNUG__ #pragma interface @@ -21,83 +21,156 @@ #include "vspace.h" #include "Spacing.h" #include "Bullet.h" +#include "lyxtextclass.h" + #include "insets/insetquotes.h" -/** - This class contains all the parameters for this a buffer uses. Some - work needs to be done on this class to make it nice. Now everything - is in public. - */ +#include + + +struct Language; + +/** Buffer parameters. + This class contains all the parameters for this a buffer uses. Some + work needs to be done on this class to make it nice. Now everything + is in public. +*/ class BufferParams { public: - //@Man: Constructors and Deconstructors - //@{ + /// + enum PAPER_SIZE { + /// + PAPER_DEFAULT, + /// + PAPER_USLETTER, + /// + PAPER_LEGALPAPER, + /// + PAPER_EXECUTIVEPAPER, + /// + PAPER_A3PAPER, + /// + PAPER_A4PAPER, + /// + PAPER_A5PAPER, + /// + PAPER_B5PAPER + }; + /// + enum PAPER_PACKAGES { + /// + PACKAGE_NONE, + /// + PACKAGE_A4, + /// + PACKAGE_A4WIDE, + /// + PACKAGE_WIDEMARGINSA4 + }; + /// + enum VMARGIN_PAPER_TYPE { + /// + VM_PAPER_DEFAULT, + /// + VM_PAPER_CUSTOM, + /// + VM_PAPER_USLETTER, + /// + VM_PAPER_USLEGAL, + /// + VM_PAPER_USEXECUTIVE, + /// + VM_PAPER_A3, + /// + VM_PAPER_A4, + /// + VM_PAPER_A5, + /// + VM_PAPER_B3, + /// + VM_PAPER_B4, + /// + VM_PAPER_B5 + }; + /// + enum PARSEP { + /// + PARSEP_INDENT, + /// + PARSEP_SKIP + }; + /// + enum PAPER_ORIENTATION { + /// + ORIENTATION_PORTRAIT, + /// + ORIENTATION_LANDSCAPE + }; /// BufferParams(); - // /// - //BufferParams(const BufferParams&); - //@} - /// Dummy destructor to shut up gcc - virtual ~BufferParams() {} - /// - void writeFile(FILE *); + void writeFile(std::ostream &) const; + /// + void setPaperStuff(); /// void useClassDefaults(); /// - VSpace getDefSkip() const { return defskip; } + bool hasClassDefaults() const; + + /// + VSpace const & getDefSkip() const { return defskip; } /// - void setDefSkip(VSpace vs) { defskip = vs; } - + void setDefSkip(VSpace const & vs) { defskip = vs; } + /** Wether paragraphs are separated by using a indent like in articles or by using a little skip like in letters. */ - char paragraph_separation; // add approp. signedness + PARSEP paragraph_separation; /// - InsetQuotes::quote_language quotes_language; + InsetQuotes::quote_language quotes_language; /// - InsetQuotes::quote_times quotes_times; + InsetQuotes::quote_times quotes_times; /// - string fontsize; + string fontsize; /// - signed char textclass; + lyx::textclass_type textclass; /* this are for the PaperLayout */ - /// - char papersize; /* the general papersize (papersize2 or paperpackage */ // add approp. signedness - /// - char papersize2; /* the selected Geometry papersize */ // add approp. signedness - /// - char paperpackage; /* a special paperpackage .sty-file */ // add approp. signedness - /// - char orientation; // add approp. signedness - /// - bool use_geometry; - /// - string paperwidth; - /// - string paperheight; - /// - string leftmargin; - /// - string topmargin; - /// - string rightmargin; - /// - string bottommargin; - /// - string headheight; - /// - string headsep; - /// - string footskip; - - /* some LaTeX options */ + /// the general papersize (papersize2 or paperpackage + char papersize; // add apprip. signedness + /// the selected Geometry papersize + char papersize2; // add approp. signedness + /// a special paperpackage .sty-file + char paperpackage; // add approp. signedness + /// + PAPER_ORIENTATION orientation; // add approp. signedness + /// + bool use_geometry; + /// + string paperwidth; + /// + string paperheight; + /// + string leftmargin; + /// + string topmargin; + /// + string rightmargin; + /// + string bottommargin; + /// + string headheight; + /// + string headsep; + /// + string footskip; + + /* some LaTeX options */ /// The graphics driver string graphicsDriver; /// @@ -105,11 +178,11 @@ public: /// Spacing spacing; /// - signed char secnumdepth; + int secnumdepth; /// - signed char tocdepth; + int tocdepth; /// - string language; + Language const * language; /// string inputenc; /// @@ -119,35 +192,35 @@ public: /// string float_placement; /// - char columns; // add approp. signedness + unsigned int columns; /// - char sides; // add approp. signedness + LyXTextClass::PageSides sides; /// string pagestyle; /// - Bullet temp_bullets[4]; + boost::array temp_bullets; + /// + boost::array user_defined_bullets; /// - Bullet user_defined_bullets[4]; + void readPreamble(LyXLex &); /// - void Copy(BufferParams const &p); + void readLanguage(LyXLex &); /// - virtual void readPreamble(LyXLex &); + void readGraphicsDriver(LyXLex &); /// - virtual void readLanguage(LyXLex &); + bool use_amsmath; /// - virtual void readGraphicsDriver(LyXLex &); - /// do we allow accents on all chars in this buffer - bool allowAccents; + bool use_natbib; /// - bool use_amsmath; + bool use_numerical_citations; /// Time ago we agreed that this was a buffer property [ale990407] - string parentname; -protected: + string parentname; private: /// friend class Buffer; /** This is the amount of space used for paragraph_separation "skip", - and for detached paragraphs in "indented" documents. */ + and for detached paragraphs in "indented" documents. + */ VSpace defskip; };