1 /************************************************************************
2 **
3 **  Copyright (C) 2015-2020 Kevin B. Hendricks, Stratford Ontario Canada
4 **  Copyright (C) 2015-2021 Doug Massay
5 **  Copyright (C) 2009-2011 Strahinja Markovic  <strahinja.markovic@gmail.com>
6 **
7 **  This file is part of Sigil.
8 **
9 **  Sigil is free software: you can redistribute it and/or modify
10 **  it under the terms of the GNU General Public License as published by
11 **  the Free Software Foundation, either version 3 of the License, or
12 **  (at your option) any later version.
13 **
14 **  Sigil is distributed in the hope that it will be useful,
15 **  but WITHOUT ANY WARRANTY; without even the implied warranty of
16 **  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 **  GNU General Public License for more details.
18 **
19 **  You should have received a copy of the GNU General Public License
20 **  along with Sigil.  If not, see <http://www.gnu.org/licenses/>.
21 **
22 *************************************************************************/
23 
24 #pragma once
25 #ifndef SG_CONSTANTS_H
26 #define SG_CONSTANTS_H
27 
28 class QString;
29 class QStringList;
30 
31 // These enable us to use constants defined
32 // in one CPP file to be used in another
33 extern const QString BODY_START;
34 extern const QString BODY_END;
35 extern const QString BREAK_TAG_INSERT;
36 extern const QString HEADING;
37 extern const QString STYLE_TAG;
38 extern const QStringList BLOCK_LEVEL_TAGS;
39 extern const QStringList ID_TAGS;
40 extern const QStringList IMAGE_TAGS;
41 extern const QStringList AUDIO_TAGS;
42 extern const QStringList VIDEO_TAGS;
43 extern const QStringList ANCHOR_TAGS;
44 extern const QStringList SRC_TAGS;
45 extern const QString VERSION_NUMBERS;
46 extern const QString SIGIL_VERSION;
47 extern const int PROGRESS_BAR_MINIMUM_DURATION;
48 extern const QString IMAGE_FOLDER_NAME;
49 extern const QString FONT_FOLDER_NAME;
50 extern const QString TEXT_FOLDER_NAME;
51 extern const QString STYLE_FOLDER_NAME;
52 extern const QString MISC_FOLDER_NAME;
53 extern const QStringList IMAGE_MIMEYPES;
54 extern const QStringList TEXT_MIMETYPES;
55 extern const QStringList STYLE_MIMETYPES;
56 extern const QString SIGIL_TOC_ID_PREFIX;
57 extern const QStringList HEADING_TAGS;
58 extern const QString SIGIL_NOT_IN_TOC_CLASS;
59 extern const QString OLD_SIGIL_NOT_IN_TOC_CLASS;
60 extern const QString FIRST_SECTION_PREFIX;
61 extern const QString FIRST_SECTION_NAME;
62 extern const QString OPF_FILE_NAME;
63 extern const QString NCX_FILE_NAME;
64 extern const QString CONTAINER_XML_FILE_NAME;
65 extern const QStringList TEXT_EXTENSIONS;
66 extern const QStringList FONT_EXTENSIONS;
67 extern const QStringList IMAGE_EXTENSIONS;
68 extern const QStringList SVG_EXTENSIONS;
69 extern const QStringList JPG_EXTENSIONS;
70 extern const QStringList TIFF_EXTENSIONS;
71 extern const QStringList VIDEO_EXTENSIONS;
72 extern const QStringList AUDIO_EXTENSIONS;
73 extern const QStringList MISC_XML_MIMETYPES;
74 extern const QString ENCODING_ATTRIBUTE;
75 extern const QString STANDALONE_ATTRIBUTE;
76 extern const QString VERSION_ATTRIBUTE;
77 extern const QString ADOBE_FONT_ALGO_ID;
78 extern const QString IDPF_FONT_ALGO_ID;
79 extern const QString DUBLIN_CORE_NS;
80 extern const int XML_DECLARATION_SEARCH_PREFIX_SIZE;
81 
82 extern const QString NCX_MIMETYPE;
83 
84 extern const char         *XHTML_ENTITIES_DTD_ID;
85 extern const unsigned int  XHTML_ENTITIES_DTD_LEN;
86 extern const unsigned char XHTML_ENTITIES_DTD[];
87 
88 extern const char         *NCX_2005_1_DTD_ID;
89 extern const unsigned int  NCX_2005_1_DTD_LEN;
90 extern const unsigned char NCX_2005_1_DTD[];
91 
92 extern const int PCRE_MAX_CAPTURE_GROUPS;
93 
94 extern const float ZOOM_STEP;
95 extern const float ZOOM_MIN;
96 extern const float ZOOM_MAX;
97 extern const float ZOOM_NORMAL;
98 
99 extern const QString SET_CURSOR_JS;
100 
101 extern const QString SIGIL_INDEX_CLASS;
102 extern const QString SIGIL_INDEX_ID_PREFIX;
103 
104 extern const QString IMAGE_HTML_BASE_PREVIEW;
105 extern const QString VIDEO_HTML_BASE;
106 extern const QString AUDIO_HTML_BASE;
107 
108 extern const QString SGC_TOC_CSS_FILENAME;
109 extern const QString SGC_INDEX_CSS_FILENAME;
110 extern const QString CUSTOM_ICON_THEME_FILENAME;
111 
112 extern const QString HTML_NAV_FILENAME;
113 extern const QString EMPTY_NAV_FILE_START;
114 extern const QString EMPTY_NAV_FILE_TOC;
115 extern const QString EMPTY_NAV_FILE_LANDMARKS;
116 extern const QString EMPTY_NAV_FILE_END;
117 extern const QString SGC_NAV_CSS_FILENAME;
118 
119 extern const QString HTML_COVER_FILENAME;
120 extern const QString HTML_COVER_SOURCE;
121 extern const QString HTML5_COVER_SOURCE;
122 
123 extern const int CLIPBOARD_HISTORY_MAX;
124 
125 extern const QString SIGIL_PREFS_DIR;
126 extern const QString PATH_LIST_DELIM;
127 extern const QString PYTHON_MAIN_PATH;
128 extern const QString PYTHON_MAIN_BIN_PATH;
129 extern const bool DONT_CHECK_FOR_UPDATES;
130 
131 #if defined(__APPLE__)
132 extern const QString PYTHON_SITE_PACKAGES;
133 extern const QString PYTHON_MAIN_PREFIX;
134 extern const QString PYTHON_MAIN_BIN_PATH;
135 extern const QString PYTHON_LIB_PATH;
136 #endif
137 extern const QStringList PYTHON_SYS_PATHS;
138 
139 #if !defined(_WIN32) && !defined(__APPLE__)
140 extern const QString sigil_extra_root;
141 extern const QString hunspell_dicts_override;
142 extern const QString force_sigil_darkmode_palette;
143 extern const QString sigil_share_root;
144 extern const bool dicts_are_bundled;
145 extern const QString extra_dict_dirs;
146 extern const QString mathjax_dir;
147 #endif
148 
149 #endif // SG_CONSTANTS_H
150