X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxrc.h;h=e948e6489fcf8ec6ae1b56988da30fe1b677f23b;hb=1fa0fb5c67656cacbe3cfe6e8b08dd98cada1f73;hp=cc00c3fadb5afe48fee1b2eecfd5c1f6ca716149;hpb=5349afd7b40fd67b071a31c0b91877484ee6c6f6;p=lyx.git diff --git a/src/lyxrc.h b/src/lyxrc.h index cc00c3fadb..e948e6489f 100644 --- a/src/lyxrc.h +++ b/src/lyxrc.h @@ -1,23 +1,30 @@ // -*- C++ -*- -/* This file is part of - * ====================================================== - * - * LyX, The Document Processor - * - * Copyright 1995 Matthias Ettrich - * Copyright 1995-2000 The LyX Team. +/** + * \file lyxrc.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * ====================================================== */ + * \author Lars Gullik Bjønnes + * \author Jean-Marc Lasgouttes + * \author Angus Leeming + * \author John Levon + * \author André Pönitz + * \author Allan Rae + * \author Dekel Tsur + * + * Full author contact details are available in file CREDITS. + */ #ifndef LYXRC_H #define LYXRC_H -#ifdef __GNUG__ -#pragma interface -#endif +#include "paper.h" +#include "graphics/GraphicsTypes.h" + +#include +#include -#include "bufferparams.h" -#include +class LyXLex; /// This contains the runtime configuration of LyX class LyXRC //: public noncopyable { @@ -43,7 +50,7 @@ enum LyXRCTags { RC_PRINTEXSTRAOPTIONS, RC_PRINTSPOOL_COMMAND, RC_PRINTSPOOL_PRINTERPREFIX, - RC_PRINTPAPERFLAG, + RC_PRINTPAPERFLAG, RC_PRINTPAPERDIMENSIONFLAG, RC_CUSTOM_EXPORT_COMMAND, RC_CUSTOM_EXPORT_FORMAT, @@ -53,10 +60,13 @@ enum LyXRCTags { RC_SCREEN_FONT_ROMAN, RC_SCREEN_FONT_SANS, RC_SCREEN_FONT_TYPEWRITER, - RC_SCREEN_FONT_MENU, - RC_SCREEN_FONT_POPUP, + RC_SCREEN_FONT_ROMAN_FOUNDRY, + RC_SCREEN_FONT_SANS_FOUNDRY, + RC_SCREEN_FONT_TYPEWRITER_FOUNDRY, RC_SCREEN_FONT_ENCODING, - RC_SCREEN_FONT_ENCODING_MENU, + RC_POPUP_BOLD_FONT, + RC_POPUP_NORMAL_FONT, + RC_POPUP_FONT_ENCODING, RC_SET_COLOR, RC_AUTOSAVE, RC_DOCUMENTPATH, @@ -65,8 +75,7 @@ enum LyXRCTags { RC_USETEMPDIR, RC_LASTFILES, RC_AUTOREGIONDELETE, - RC_BIND, - RC_OVERRIDE_X_DEADKEYS, + RC_AUTORESET_OPTIONS, RC_SERVERPIPE, RC_INPUT, RC_BINDFILE, @@ -74,18 +83,12 @@ enum LyXRCTags { RC_KBMAP, RC_KBMAP_PRIMARY, RC_KBMAP_SECONDARY, -#if 0 - RC_FAX_COMMAND, - RC_PHONEBOOK, - RC_FAXPROGRAM, -#endif RC_ASCIIROFF_COMMAND, RC_ASCII_LINELEN, RC_NUMLASTFILES, RC_CHECKLASTFILES, RC_VIEWDVI_PAPEROPTION, RC_DEFAULT_PAPERSIZE, - RC_PS_COMMAND, RC_ACCEPT_COMPOUND, RC_SPELL_COMMAND, RC_USE_INP_ENC, @@ -97,9 +100,9 @@ enum LyXRCTags { RC_PERS_DICT, RC_ESC_CHARS, RC_CHKTEX_COMMAND, + RC_BIBTEX_COMMAND, RC_CURSOR_FOLLOWS_SCROLLBAR, - RC_EXIT_CONFIRMATION, - RC_DISPLAY_SHORTCUTS, + RC_DIALOGS_ICONIFY_WITH_MAIN, RC_MAKE_BACKUP, RC_BACKUPDIR_PATH, RC_RTL_SUPPORT, @@ -110,14 +113,24 @@ enum LyXRCTags { RC_LANGUAGE_AUTO_END, RC_LANGUAGE_COMMAND_BEGIN, RC_LANGUAGE_COMMAND_END, + RC_LANGUAGE_COMMAND_LOCAL, + RC_LANGUAGE_GLOBAL_OPTIONS, + RC_LANGUAGE_USE_BABEL, RC_DATE_INSERT_FORMAT, RC_SHOW_BANNER, RC_WHEEL_JUMP, RC_CONVERTER, RC_VIEWER, RC_FORMAT, - RC_NEW_ASK_FILENAME, RC_DEFAULT_LANGUAGE, + RC_LABEL_INIT_LENGTH, + RC_DISPLAY_GRAPHICS, + RC_PREVIEW, + RC_PREVIEW_HASHED_LABELS, + RC_PREVIEW_SCALE_FACTOR, + RC_USE_SPELL_LIB, + RC_USER_NAME, + RC_USER_EMAIL, RC_LAST }; @@ -127,93 +140,95 @@ enum LyXRCTags { /// void setDefaults(); /// - int read (string const & filename); + int read(std::string const & filename); /// - void write(string const & filename) const; + int read(std::istream &); +private: /// - void print() const; + int read(LyXLex &); +public: /// - void output(std::ostream & os) const; - /// Is a bind file already (or currently) read? - bool hasBindFile; + void write(std::string const & filename, + bool ignore_system_lyxrc) const; /// - int ReadBindFile(string const & name = "cua"); + void write(std::ostream & os, + bool ignore_system_lyxrc) const; /// - static string const getDescription(LyXRCTags); + void print() const; /// - string bind_file; + static std::string const getDescription(LyXRCTags); /// - string ui_file; + std::string bind_file; /// - string printer; + std::string ui_file; /// - string print_command; + std::string printer; /// - string print_evenpage_flag; + std::string print_command; /// - string print_oddpage_flag; + std::string print_evenpage_flag; /// - string print_pagerange_flag; + std::string print_oddpage_flag; /// - string print_copies_flag; + std::string print_pagerange_flag; /// - string print_collcopies_flag; + std::string print_copies_flag; /// - string print_reverse_flag; + std::string print_collcopies_flag; /// - string print_landscape_flag; + std::string print_reverse_flag; /// - string print_to_printer; + std::string print_landscape_flag; + /// + std::string print_to_printer; /// bool print_adapt_output; /// - string print_to_file; + std::string print_to_file; /// - string print_file_extension; + std::string print_file_extension; /// - string print_extra_options; + std::string print_extra_options; /// - string print_spool_command; - /// - string print_spool_printerprefix; + std::string print_spool_command; /// - string print_paper_flag; + std::string print_spool_printerprefix; /// - string print_paper_dimension_flag; + std::string print_paper_flag; /// - string custom_export_command; + std::string print_paper_dimension_flag; /// - string custom_export_format; + std::string custom_export_command; /// - bool pdf_mode; - /// postscript interpreter (in general "gs", if it is installed) - string ps_command; + std::string custom_export_format; /// option for telling the dvi viewer about the paper size - string view_dvi_paper_option; - /// default paper size for local xdvi/dvips/ghostview/whatever - BufferParams::PAPER_SIZE default_papersize; + std::string view_dvi_paper_option; + /// default paper size for local xdvi/dvips/ghostview/whatever + PAPER_SIZE default_papersize; /// command to run chktex incl. options - string chktex_command; - /// - string document_path; + std::string chktex_command; + /// command to run bibtex incl. options + std::string bibtex_command; /// - string template_path; + std::string document_path; /// - string tempdir_path; + std::string template_path; /// - bool use_tempdir; + std::string tempdir_path; /// bool auto_region_delete; /// flag telling whether lastfiles should be checked for existance + bool auto_reset_options; + /// bool check_lastfiles; /// filename for lastfiles file - string lastfiles; + std::string lastfiles; /// maximal number of lastfiles unsigned int num_lastfiles; /// shall a backup file be created bool make_backup; /// A directory for storing backup files - string backupdir_path; + std::string backupdir_path; /// Zoom factor for screen fonts unsigned int zoom; /// parameter for button_4 and button_5 (scrollwheel) @@ -224,22 +239,26 @@ enum LyXRCTags { bool use_scalable_fonts; /// DPI of monitor float dpi; - /// Whether lyx should handle deadkeys by itself - bool override_x_deadkeys; /// - string fontenc; + std::string fontenc; + /// + std::string roman_font_name; /// - string roman_font_name; + std::string sans_font_name; /// - string sans_font_name; + std::string typewriter_font_name; /// - string typewriter_font_name; + std::string roman_font_foundry; /// - string menu_font_name; + std::string sans_font_foundry; /// - string popup_font_name; + std::string typewriter_font_foundry; /// - string font_norm; + std::string popup_bold_font; + /// + std::string popup_normal_font; + /// + std::string font_norm; /// enum FontEncoding { /// @@ -247,10 +266,16 @@ enum LyXRCTags { /// ISO_8859_1, /// + ISO_8859_3, + /// + ISO_8859_4, + /// ISO_8859_6_8, /// ISO_8859_9, /// + ISO_8859_15, + /// OTHER_ENCODING }; /// @@ -258,23 +283,17 @@ enum LyXRCTags { /// void set_font_norm_type(); /// - string font_norm_menu; + std::string popup_font_encoding; /// unsigned int autosave; -#if 0 - /// - string fax_command; - /// - string phone_book; - /// - string fax_program; -#endif /// - string ascii_roff_command; + std::string ascii_roff_command; /// unsigned int ascii_linelen; + /// use library instead of process + bool use_spell_lib; /// Ispell command - string isp_command; + std::string isp_command; /// Accept compound words in spellchecker? bool isp_accept_compound; /// Pass input encoding switch to ispell? @@ -286,35 +305,37 @@ enum LyXRCTags { /// Use escape chars? bool isp_use_esc_chars; /// Alternate language for ispell - string isp_alt_lang; + std::string isp_alt_lang; /// Alternate personal dictionary file for ispell - string isp_pers_dict; + std::string isp_pers_dict; /// Escape characters - string isp_esc_chars; + std::string isp_esc_chars; /// bool use_kbmap; - /// Ask for confirmation of exit when there are unsaved documents? - bool exit_confirmation; - /// Should we display short-cut information in the minibuffer? - bool display_shortcuts; /// - string primary_kbmap; + std::string primary_kbmap; /// - string secondary_kbmap; + std::string secondary_kbmap; /// - string lyxpipes; + std::string lyxpipes; /// - string date_insert_format; + std::string date_insert_format; /// - string language_package; + std::string language_package; /// bool language_auto_begin; /// bool language_auto_end; /// - string language_command_begin; + std::string language_command_begin; /// - string language_command_end; + std::string language_command_end; + /// + std::string language_command_local; + /// + bool language_global_options; + /// + bool language_use_babel; /// bool rtl_support; /// @@ -322,17 +343,48 @@ enum LyXRCTags { /// bool mark_foreign_language; /// + std::string default_language; + /// + bool cursor_follows_scrollbar; + /// + bool dialogs_iconify_with_main; + /// + int label_init_length; + /// + lyx::graphics::DisplayType display_graphics; + /// bool show_banner; - /// Do we have to use a GUI? - bool use_gui; /// - bool new_ask_filename; + enum PreviewStatus { + PREVIEW_OFF, + PREVIEW_NO_MATH, + PREVIEW_ON + }; /// - string default_language; + PreviewStatus preview; /// - bool cursor_follows_scrollbar; + bool preview_hashed_labels; + /// + float preview_scale_factor; + /// user name + std::string user_name; + /// user email + std::string user_email; +}; + + +/** \c LyXRC_PreviewStatus is a wrapper for LyXRC::PreviewStatus. + * It can be forward-declared and passed as a function argument without + * having to expose lyxrc.h. + */ +class LyXRC_PreviewStatus { + LyXRC::PreviewStatus val_; +public: + LyXRC_PreviewStatus(LyXRC::PreviewStatus val) : val_(val) {} + operator LyXRC::PreviewStatus() const{ return val_; } }; + /// extern LyXRC lyxrc; ///