3 * \file ControlDocument.h
4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
9 * Full author contact details are available in file CREDITS.
12 #ifndef CONTROLDOCUMENT_H
13 #define CONTROLDOCUMENT_H
16 #include "support/types.h"
17 #include <boost/scoped_ptr.hpp>
26 /** A controller for Document dialogs.
28 class ControlDocument : public Dialog::Controller {
30 /// font family names for BufferParams::fontsDefaultFamily
31 static char const * const fontfamilies[5];
32 /// GUI names corresponding fontfamilies
33 static char const * fontfamilies_gui[5];
35 ControlDocument(Dialog &);
39 virtual bool initialiseParams(std::string const & data);
41 virtual void clearParams();
43 virtual void dispatchParams();
45 virtual bool isBufferDependent() const { return true; }
46 /// always true since we don't manipulate document contents
47 virtual bool canApply() const { return true; }
49 LyXTextClass const & textClass() const;
51 BufferParams & params() const;
53 void setLanguage() const;
55 void saveAsDefault() const;
57 bool loadTextclass(textclass_type tc) const;
59 bool const isFontAvailable(std::string const & font) const;
60 /// does this font provide Old Style figures?
61 bool const providesOSF(std::string const & font) const;
62 /// does this font provide true Small Caps?
63 bool const providesSC(std::string const & font) const;
64 /// does this font provide size adjustment?
65 bool const providesScale(std::string const & font) const;
68 boost::scoped_ptr<BufferParams> bp_;
71 } // namespace frontend
74 #endif // CONTROLDOCUMENT_H