]> git.lyx.org Git - lyx.git/blobdiff - src/LyXRC.cpp
* gcc does not like missing characters in keywords
[lyx.git] / src / LyXRC.cpp
index 16358855ee7f8764847bf8d8acad4cdc2ddc9b89..79465326a075a39b7817ccb3d038a9237a3dddea 100644 (file)
 #include "LyXRC.h"
 
 #include "debug.h"
+#include "Color.h"
 #include "Converter.h"
 #include "Format.h"
 #include "gettext.h"
 #include "Session.h"
-#include "Color.h"
 #include "Lexer.h"
-#include "Font.h"
+#include "FontEnums.h"
 #include "Mover.h"
 
 #include "graphics/GraphicsTypes.h"
@@ -84,6 +84,7 @@ keyword_item lyxrcTags[] = {
        { "\\custom_export_command", LyXRC::RC_CUSTOM_EXPORT_COMMAND },
        { "\\custom_export_format", LyXRC::RC_CUSTOM_EXPORT_FORMAT },
        { "\\date_insert_format", LyXRC::RC_DATE_INSERT_FORMAT },
+       { "\\def_file", LyXRC::RC_DEFFILE },
        { "\\default_language", LyXRC::RC_DEFAULT_LANGUAGE },
        { "\\default_papersize", LyXRC::RC_DEFAULT_PAPERSIZE },
        { "\\dialogs_iconify_with_main", LyXRC::RC_DIALOGS_ICONIFY_WITH_MAIN },
@@ -189,6 +190,7 @@ LyXRC::LyXRC()
 
 void LyXRC::setDefaults() {
        bind_file = "cua";
+       def_file = "default";
        ui_file = "default";
        // Get printer from the environment. If fail, use default "",
        // assuming that everything is set up correctly.
@@ -222,16 +224,16 @@ void LyXRC::setDefaults() {
        geometry_height = 0;
        geometry_xysaved = true;
        // Default LaTeX font size:
-       font_sizes[Font::SIZE_TINY] = "5.0";
-       font_sizes[Font::SIZE_SCRIPT] = "7.0";
-       font_sizes[Font::SIZE_FOOTNOTE] = "8.0";
-       font_sizes[Font::SIZE_SMALL] = "9.0";
-       font_sizes[Font::SIZE_NORMAL] = "10.0";
-       font_sizes[Font::SIZE_LARGE] = "12.0";
-       font_sizes[Font::SIZE_LARGER] = "14.4";
-       font_sizes[Font::SIZE_LARGEST] = "17.26";
-       font_sizes[Font::SIZE_HUGE] = "20.74";
-       font_sizes[Font::SIZE_HUGER] = "24.88";
+       font_sizes[FONT_SIZE_TINY] = "5.0";
+       font_sizes[FONT_SIZE_SCRIPT] = "7.0";
+       font_sizes[FONT_SIZE_FOOTNOTE] = "8.0";
+       font_sizes[FONT_SIZE_SMALL] = "9.0";
+       font_sizes[FONT_SIZE_NORMAL] = "10.0";
+       font_sizes[FONT_SIZE_LARGE] = "12.0";
+       font_sizes[FONT_SIZE_LARGER] = "14.4";
+       font_sizes[FONT_SIZE_LARGEST] = "17.26";
+       font_sizes[FONT_SIZE_HUGE] = "20.74";
+       font_sizes[FONT_SIZE_HUGER] = "24.88";
        use_scalable_fonts = true;
        roman_font_name = "";
        sans_font_name = "";
@@ -370,6 +372,12 @@ int LyXRC::read(Lexer & lexrc)
                        }
                        break;
 
+               case RC_DEFFILE:
+                       if (lexrc.next()) {
+                               def_file = os::internal_path(lexrc.getString());
+                       }
+                       break;
+
                case RC_UIFILE:
                        if (lexrc.next()) {
                                ui_file = os::internal_path(lexrc.getString());
@@ -649,43 +657,43 @@ int LyXRC::read(Lexer & lexrc)
 
                case RC_SCREEN_FONT_SIZES:
                        if (lexrc.next()) {
-                               font_sizes[Font::SIZE_TINY] =
+                               font_sizes[FONT_SIZE_TINY] =
                                        lexrc.getString();
                        }
                        if (lexrc.next()) {
-                               font_sizes[Font::SIZE_SCRIPT] =
+                               font_sizes[FONT_SIZE_SCRIPT] =
                                        lexrc.getString();
                        }
                        if (lexrc.next()) {
-                               font_sizes[Font::SIZE_FOOTNOTE] =
+                               font_sizes[FONT_SIZE_FOOTNOTE] =
                                        lexrc.getString();
                        }
                        if (lexrc.next()) {
-                               font_sizes[Font::SIZE_SMALL] =
+                               font_sizes[FONT_SIZE_SMALL] =
                                        lexrc.getString();
                        }
                        if (lexrc.next()) {
-                               font_sizes[Font::SIZE_NORMAL] =
+                               font_sizes[FONT_SIZE_NORMAL] =
                                        lexrc.getString();
                        }
                        if (lexrc.next()) {
-                               font_sizes[Font::SIZE_LARGE] =
+                               font_sizes[FONT_SIZE_LARGE] =
                                        lexrc.getString();
                        }
                        if (lexrc.next()) {
-                               font_sizes[Font::SIZE_LARGER] =
+                               font_sizes[FONT_SIZE_LARGER] =
                                        lexrc.getString();
                        }
                        if (lexrc.next()) {
-                               font_sizes[Font::SIZE_LARGEST] =
+                               font_sizes[FONT_SIZE_LARGEST] =
                                        lexrc.getString();
                        }
                        if (lexrc.next()) {
-                               font_sizes[Font::SIZE_HUGE] =
+                               font_sizes[FONT_SIZE_HUGE] =
                                        lexrc.getString();
                        }
                        if (lexrc.next()) {
-                               font_sizes[Font::SIZE_HUGER] =
+                               font_sizes[FONT_SIZE_HUGER] =
                                        lexrc.getString();
                        }
                        break;
@@ -812,11 +820,11 @@ int LyXRC::read(Lexer & lexrc)
                                break;
                        }
 
-                       Color::color const col =
+                       ColorCode const col =
                                lcolor.getFromLyXName(lyx_name);
-                       if (col == Color::none ||
-                           col == Color::inherit ||
-                           col == Color::ignore)
+                       if (col == Color_none ||
+                           col == Color_inherit ||
+                           col == Color_ignore)
                                break;
 
                        if (!lcolor.setColor(col, x11_name)) {
@@ -1226,7 +1234,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                   << "###          LyX, The Document Processor\n"
                   << "###\n"
                   << "###          Copyright 1995 Matthias Ettrich\n"
-                  << "###          Copyright 1995-2001 The LyX Team.\n"
+                  << "###          Copyright 1995-2007 The LyX Team.\n"
                   << "###\n"
                   << "### ========================================================\n"
                   << "\n"
@@ -1252,6 +1260,15 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                if (tag != RC_LAST)
                        break;
 
+       case RC_DEFFILE:
+               if (ignore_system_lyxrc ||
+                   def_file != system_lyxrc.def_file) {
+                       string const path = os::external_path(def_file);
+                       os << "\\def_file \"" << path << "\"\n";
+               }
+               if (tag != RC_LAST)
+                       break;
+
                //
                // Misc Section
                //
@@ -1310,7 +1327,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                        os << "# Display graphics within LyX\n"
                           << "# monochrome|grayscale|color|none\n"
                           << "\\display_graphics "
-                          << graphics::displayTranslator().find(display_graphics)
+                          << graphics::displayTranslator().find(
+                                graphics::DisplayType(display_graphics))
                           << '\n';
                }
                if (tag != RC_LAST)
@@ -1636,39 +1654,39 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                        break;
        case RC_SCREEN_FONT_SIZES:
                if (ignore_system_lyxrc ||
-                   font_sizes[Font::SIZE_TINY]
-                   != system_lyxrc.font_sizes[Font::SIZE_TINY] ||
-                   font_sizes[Font::SIZE_SCRIPT]
-                   != system_lyxrc.font_sizes[Font::SIZE_SCRIPT] ||
-                   font_sizes[Font::SIZE_FOOTNOTE]
-                   != system_lyxrc.font_sizes[Font::SIZE_FOOTNOTE] ||
-                   font_sizes[Font::SIZE_SMALL]
-                   != system_lyxrc.font_sizes[Font::SIZE_SMALL] ||
-                   font_sizes[Font::SIZE_NORMAL]
-                   != system_lyxrc.font_sizes[Font::SIZE_NORMAL] ||
-                   font_sizes[Font::SIZE_LARGE]
-                   != system_lyxrc.font_sizes[Font::SIZE_LARGE] ||
-                   font_sizes[Font::SIZE_LARGER]
-                   != system_lyxrc.font_sizes[Font::SIZE_LARGER] ||
-                   font_sizes[Font::SIZE_LARGEST]
-                   != system_lyxrc.font_sizes[Font::SIZE_LARGEST] ||
-                   font_sizes[Font::SIZE_HUGE]
-                   != system_lyxrc.font_sizes[Font::SIZE_HUGE] ||
-                   font_sizes[Font::SIZE_HUGER]
-                   != system_lyxrc.font_sizes[Font::SIZE_HUGER]) {
+                   font_sizes[FONT_SIZE_TINY]
+                   != system_lyxrc.font_sizes[FONT_SIZE_TINY] ||
+                   font_sizes[FONT_SIZE_SCRIPT]
+                   != system_lyxrc.font_sizes[FONT_SIZE_SCRIPT] ||
+                   font_sizes[FONT_SIZE_FOOTNOTE]
+                   != system_lyxrc.font_sizes[FONT_SIZE_FOOTNOTE] ||
+                   font_sizes[FONT_SIZE_SMALL]
+                   != system_lyxrc.font_sizes[FONT_SIZE_SMALL] ||
+                   font_sizes[FONT_SIZE_NORMAL]
+                   != system_lyxrc.font_sizes[FONT_SIZE_NORMAL] ||
+                   font_sizes[FONT_SIZE_LARGE]
+                   != system_lyxrc.font_sizes[FONT_SIZE_LARGE] ||
+                   font_sizes[FONT_SIZE_LARGER]
+                   != system_lyxrc.font_sizes[FONT_SIZE_LARGER] ||
+                   font_sizes[FONT_SIZE_LARGEST]
+                   != system_lyxrc.font_sizes[FONT_SIZE_LARGEST] ||
+                   font_sizes[FONT_SIZE_HUGE]
+                   != system_lyxrc.font_sizes[FONT_SIZE_HUGE] ||
+                   font_sizes[FONT_SIZE_HUGER]
+                   != system_lyxrc.font_sizes[FONT_SIZE_HUGER]) {
                        os.setf(ios::fixed);
                        os.precision(2);
                        os << "\\screen_font_sizes"
-                          << ' ' << font_sizes[Font::SIZE_TINY]
-                          << ' ' << font_sizes[Font::SIZE_SCRIPT]
-                          << ' ' << font_sizes[Font::SIZE_FOOTNOTE]
-                          << ' ' << font_sizes[Font::SIZE_SMALL]
-                          << ' ' << font_sizes[Font::SIZE_NORMAL]
-                          << ' ' << font_sizes[Font::SIZE_LARGE]
-                          << ' ' << font_sizes[Font::SIZE_LARGER]
-                          << ' ' << font_sizes[Font::SIZE_LARGEST]
-                          << ' ' << font_sizes[Font::SIZE_HUGE]
-                          << ' ' << font_sizes[Font::SIZE_HUGER]
+                          << ' ' << font_sizes[FONT_SIZE_TINY]
+                          << ' ' << font_sizes[FONT_SIZE_SCRIPT]
+                          << ' ' << font_sizes[FONT_SIZE_FOOTNOTE]
+                          << ' ' << font_sizes[FONT_SIZE_SMALL]
+                          << ' ' << font_sizes[FONT_SIZE_NORMAL]
+                          << ' ' << font_sizes[FONT_SIZE_LARGE]
+                          << ' ' << font_sizes[FONT_SIZE_LARGER]
+                          << ' ' << font_sizes[FONT_SIZE_LARGEST]
+                          << ' ' << font_sizes[FONT_SIZE_HUGE]
+                          << ' ' << font_sizes[FONT_SIZE_HUGER]
                           << '\n';
                }
                if (tag != RC_LAST)
@@ -1679,8 +1697,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                   << "#\n\n";
 
        case RC_SET_COLOR:
-               for (int i = 0; i < Color::ignore; ++i) {
-                       Color::color lc = static_cast<Color::color>(i);
+               for (int i = 0; i < Color_ignore; ++i) {
+                       ColorCode lc = static_cast<ColorCode>(i);
 
                        string const col(lcolor.getX11Name(lc));
                        if (ignore_system_lyxrc ||