blob: ca8d787ec0f6b4d8ed095b4db8dab46119f64d2a [file] [log] [blame]
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -07001// Copyright 2014 PDFium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
Lei Zhanga6d9f0e2015-06-13 00:48:38 -07004
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -07005// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7#include "../../include/javascript/JavaScript.h"
8#include "../../include/javascript/IJavaScript.h"
9#include "../../include/javascript/JS_Define.h"
10#include "../../include/javascript/JS_Object.h"
11#include "../../include/javascript/JS_Value.h"
12#include "../../include/javascript/Consts.h"
13
14/* ------------------------------ border ------------------------------ */
15
16BEGIN_JS_STATIC_CONST(CJS_Border)
Nico Weber9d8ec5a2015-08-04 13:00:21 -070017JS_STATIC_CONST_ENTRY_STRING(s, solid)
18JS_STATIC_CONST_ENTRY_STRING(b, beveled)
19JS_STATIC_CONST_ENTRY_STRING(d, dashed)
20JS_STATIC_CONST_ENTRY_STRING(i, inset)
21JS_STATIC_CONST_ENTRY_STRING(u, underline)
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070022END_JS_STATIC_CONST()
23
Nico Weber9d8ec5a2015-08-04 13:00:21 -070024IMPLEMENT_JS_CLASS_CONST(CJS_Border, border)
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070025
26/* ------------------------------ display ------------------------------ */
27
28BEGIN_JS_STATIC_CONST(CJS_Display)
Nico Weber9d8ec5a2015-08-04 13:00:21 -070029JS_STATIC_CONST_ENTRY_NUMBER(visible, 0)
30JS_STATIC_CONST_ENTRY_NUMBER(hidden, 1)
31JS_STATIC_CONST_ENTRY_NUMBER(noPrint, 2)
32JS_STATIC_CONST_ENTRY_NUMBER(noView, 3)
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070033END_JS_STATIC_CONST()
34
Nico Weber9d8ec5a2015-08-04 13:00:21 -070035IMPLEMENT_JS_CLASS_CONST(CJS_Display, display)
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070036
37/* ------------------------------ font ------------------------------ */
38
39BEGIN_JS_STATIC_CONST(CJS_Font)
Nico Weber9d8ec5a2015-08-04 13:00:21 -070040JS_STATIC_CONST_ENTRY_STRING(Times, Times-Roman)
41JS_STATIC_CONST_ENTRY_STRING(TimesB, Times-Bold)
42JS_STATIC_CONST_ENTRY_STRING(TimesI, Times-Italic)
43JS_STATIC_CONST_ENTRY_STRING(TimesBI, Times-BoldItalic)
44JS_STATIC_CONST_ENTRY_STRING(Helv, Helvetica)
45JS_STATIC_CONST_ENTRY_STRING(HelvB, Helvetica-Bold)
46JS_STATIC_CONST_ENTRY_STRING(HelvI, Helvetica-Oblique)
47JS_STATIC_CONST_ENTRY_STRING(HelvBI, Helvetica-BoldOblique)
48JS_STATIC_CONST_ENTRY_STRING(Cour, Courier)
49JS_STATIC_CONST_ENTRY_STRING(CourB, Courier-Bold)
50JS_STATIC_CONST_ENTRY_STRING(CourI, Courier-Oblique)
51JS_STATIC_CONST_ENTRY_STRING(CourBI, Courier-BoldOblique)
52JS_STATIC_CONST_ENTRY_STRING(Symbol, Symbol)
53JS_STATIC_CONST_ENTRY_STRING(ZapfD, ZapfDingbats)
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070054END_JS_STATIC_CONST()
55
Nico Weber9d8ec5a2015-08-04 13:00:21 -070056IMPLEMENT_JS_CLASS_CONST(CJS_Font, font)
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070057
58/* ------------------------------ highlight ------------------------------ */
59
60BEGIN_JS_STATIC_CONST(CJS_Highlight)
Nico Weber9d8ec5a2015-08-04 13:00:21 -070061JS_STATIC_CONST_ENTRY_STRING(n, none)
62JS_STATIC_CONST_ENTRY_STRING(i, invert)
63JS_STATIC_CONST_ENTRY_STRING(p, push)
64JS_STATIC_CONST_ENTRY_STRING(o, outline)
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070065END_JS_STATIC_CONST()
66
Nico Weber9d8ec5a2015-08-04 13:00:21 -070067IMPLEMENT_JS_CLASS_CONST(CJS_Highlight, highlight)
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070068
69/* ------------------------------ position ------------------------------ */
70
71BEGIN_JS_STATIC_CONST(CJS_Position)
Nico Weber9d8ec5a2015-08-04 13:00:21 -070072JS_STATIC_CONST_ENTRY_NUMBER(textOnly, 0)
73JS_STATIC_CONST_ENTRY_NUMBER(iconOnly, 1)
74JS_STATIC_CONST_ENTRY_NUMBER(iconTextV, 2)
75JS_STATIC_CONST_ENTRY_NUMBER(textIconV, 3)
76JS_STATIC_CONST_ENTRY_NUMBER(iconTextH, 4)
77JS_STATIC_CONST_ENTRY_NUMBER(textIconH, 5)
78JS_STATIC_CONST_ENTRY_NUMBER(overlay, 6)
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070079END_JS_STATIC_CONST()
80
Nico Weber9d8ec5a2015-08-04 13:00:21 -070081IMPLEMENT_JS_CLASS_CONST(CJS_Position, position)
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070082
83/* ------------------------------ scaleHow ------------------------------ */
84
85BEGIN_JS_STATIC_CONST(CJS_ScaleHow)
Nico Weber9d8ec5a2015-08-04 13:00:21 -070086JS_STATIC_CONST_ENTRY_NUMBER(proportional, 0)
87JS_STATIC_CONST_ENTRY_NUMBER(anamorphic, 1)
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070088END_JS_STATIC_CONST()
89
Nico Weber9d8ec5a2015-08-04 13:00:21 -070090IMPLEMENT_JS_CLASS_CONST(CJS_ScaleHow, scaleHow)
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070091
92/* ------------------------------ scaleWhen ------------------------------ */
93
94BEGIN_JS_STATIC_CONST(CJS_ScaleWhen)
Nico Weber9d8ec5a2015-08-04 13:00:21 -070095JS_STATIC_CONST_ENTRY_NUMBER(always, 0)
96JS_STATIC_CONST_ENTRY_NUMBER(never, 1)
97JS_STATIC_CONST_ENTRY_NUMBER(tooBig, 2)
98JS_STATIC_CONST_ENTRY_NUMBER(tooSmall, 3)
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -070099END_JS_STATIC_CONST()
100
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700101IMPLEMENT_JS_CLASS_CONST(CJS_ScaleWhen, scaleWhen)
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700102
103/* ------------------------------ style ------------------------------ */
104
105BEGIN_JS_STATIC_CONST(CJS_Style)
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700106JS_STATIC_CONST_ENTRY_STRING(ch, check)
107JS_STATIC_CONST_ENTRY_STRING(cr, cross)
108JS_STATIC_CONST_ENTRY_STRING(di, diamond)
109JS_STATIC_CONST_ENTRY_STRING(ci, circle)
110JS_STATIC_CONST_ENTRY_STRING(st, star)
111JS_STATIC_CONST_ENTRY_STRING(sq, square)
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700112END_JS_STATIC_CONST()
113
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700114IMPLEMENT_JS_CLASS_CONST(CJS_Style, style)
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700115
116/* ------------------------------ zoomtype ------------------------------ */
117
118BEGIN_JS_STATIC_CONST(CJS_Zoomtype)
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700119JS_STATIC_CONST_ENTRY_STRING(none, NoVary)
120JS_STATIC_CONST_ENTRY_STRING(fitP, FitPage)
121JS_STATIC_CONST_ENTRY_STRING(fitW, FitWidth)
122JS_STATIC_CONST_ENTRY_STRING(fitH, FitHeight)
123JS_STATIC_CONST_ENTRY_STRING(fitV, FitVisibleWidth)
124JS_STATIC_CONST_ENTRY_STRING(pref, Preferred)
125JS_STATIC_CONST_ENTRY_STRING(refW, ReflowWidth)
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700126END_JS_STATIC_CONST()
127
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700128IMPLEMENT_JS_CLASS_CONST(CJS_Zoomtype, zoomtype)
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700129
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700130/* ------------------------------ CJS_GlobalConsts
131 * ------------------------------ */
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700132
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700133int CJS_GlobalConsts::Init(IJS_Runtime* pRuntime) {
134 DEFINE_GLOBAL_CONST(pRuntime, IDS_GREATER_THAN, Invalid value
135 : must be greater than or equal to % s.);
136 DEFINE_GLOBAL_CONST(
137 pRuntime, IDS_GT_AND_LT, Invalid value
138 : must be greater than or equal to % s and less than or equal to % s.);
139 DEFINE_GLOBAL_CONST(pRuntime, IDS_LESS_THAN, Invalid value
140 : must be less than or equal to % s.);
141 DEFINE_GLOBAL_CONST(pRuntime, IDS_INVALID_MONTH, **Invalid**);
142 DEFINE_GLOBAL_CONST(pRuntime, IDS_INVALID_DATE, Invalid date / time
143 : please ensure that the date / time exists.Field);
144 DEFINE_GLOBAL_CONST(pRuntime, IDS_INVALID_VALUE,
145 The value entered does not match the format of the field);
146 DEFINE_GLOBAL_CONST(pRuntime, IDS_AM, am);
147 DEFINE_GLOBAL_CONST(pRuntime, IDS_PM, pm);
148 DEFINE_GLOBAL_CONST(
149 pRuntime, IDS_MONTH_INFO,
150 January[1] February[2] March[3] April[4] May[5] June[6] July[7] August
151 [8] September[9] October[10] November[11] December[12] Sept[9] Jan
152 [1] Feb[2] Mar[3] Apr[4] Jun[6] Jul[7] Aug[8] Sep[9] Oct[10] Nov
153 [11] Dec[12]);
154 DEFINE_GLOBAL_CONST(pRuntime, IDS_STARTUP_CONSOLE_MSG, ** ^ _ ^ **);
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700155
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700156 return 0;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700157}
158
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700159/* ------------------------------ CJS_GlobalArrays
160 * ------------------------------ */
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700161
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700162int CJS_GlobalArrays::Init(IJS_Runtime* pRuntime) {
163 {
164 const FX_WCHAR* ArrayName = L"RE_NUMBER_ENTRY_DOT_SEP";
165 const FX_WCHAR* ArrayContent[] = {L"[+-]?\\d*\\.?\\d*"};
166 DEFINE_GLOBAL_ARRAY(pRuntime);
167 }
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700168
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700169 {
170 const FX_WCHAR* ArrayName = L"RE_NUMBER_COMMIT_DOT_SEP";
171 const FX_WCHAR* ArrayContent[] = {
172 L"[+-]?\\d+(\\.\\d+)?", /* -1.0 or -1 */
173 L"[+-]?\\.\\d+", /* -.1 */
174 L"[+-]?\\d+\\." /* -1. */
175 };
176 DEFINE_GLOBAL_ARRAY(pRuntime);
177 }
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700178
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700179 {
180 const FX_WCHAR* ArrayName = L"RE_NUMBER_ENTRY_COMMA_SEP";
181 const FX_WCHAR* ArrayContent[] = {L"[+-]?\\d*,?\\d*"};
Lei Zhanga6d9f0e2015-06-13 00:48:38 -0700182
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700183 DEFINE_GLOBAL_ARRAY(pRuntime);
184 }
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700185
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700186 {
187 const FX_WCHAR* ArrayName = L"RE_NUMBER_COMMIT_COMMA_SEP";
188 const FX_WCHAR* ArrayContent[] = {
189 L"[+-]?\\d+([.,]\\d+)?", /* -1,0 or -1 */
190 L"[+-]?[.,]\\d+", /* -,1 */
191 L"[+-]?\\d+[.,]" /* -1, */
192 };
193 DEFINE_GLOBAL_ARRAY(pRuntime);
194 }
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700195
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700196 {
197 const FX_WCHAR* ArrayName = L"RE_ZIP_ENTRY";
198 const FX_WCHAR* ArrayContent[] = {L"\\d{0,5}"};
199 DEFINE_GLOBAL_ARRAY(pRuntime);
200 }
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700201
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700202 {
203 const FX_WCHAR* ArrayName = L"RE_ZIP_COMMIT";
204 const FX_WCHAR* ArrayContent[] = {L"\\d{5}"};
205 DEFINE_GLOBAL_ARRAY(pRuntime);
206 }
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700207
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700208 {
209 const FX_WCHAR* ArrayName = L"RE_ZIP4_ENTRY";
210 const FX_WCHAR* ArrayContent[] = {L"\\d{0,5}(\\.|[- ])?\\d{0,4}"};
211 DEFINE_GLOBAL_ARRAY(pRuntime);
212 }
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700213
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700214 {
215 const FX_WCHAR* ArrayName = L"RE_ZIP4_COMMIT";
216 const FX_WCHAR* ArrayContent[] = {L"\\d{5}(\\.|[- ])?\\d{4}"};
217 DEFINE_GLOBAL_ARRAY(pRuntime);
218 }
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700219
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700220 {
221 const FX_WCHAR* ArrayName = L"RE_PHONE_ENTRY";
222 const FX_WCHAR* ArrayContent[] = {
223 L"\\d{0,3}(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}", /* 555-1234 or 408
224 555-1234 */
225 L"\\(\\d{0,3}", /* (408 */
226 L"\\(\\d{0,3}\\)(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}", /* (408)
227 555-1234 */
228 /* (allow the addition of parens as an afterthought) */
229 L"\\(\\d{0,3}(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}", /* (408 555-1234
230 */
231 L"\\d{0,3}\\)(\\.|[- ])?\\d{0,3}(\\.|[- ])?\\d{0,4}", /* 408) 555-1234
232 */
233 L"011(\\.|[- \\d])*" /* international */
234 };
235 DEFINE_GLOBAL_ARRAY(pRuntime);
236 }
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700237
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700238 {
239 const FX_WCHAR* ArrayName = L"RE_PHONE_COMMIT";
240 const FX_WCHAR* ArrayContent[] = {
241 L"\\d{3}(\\.|[- ])?\\d{4}", /* 555-1234 */
242 L"\\d{3}(\\.|[- ])?\\d{3}(\\.|[- ])?\\d{4}", /* 408 555-1234 */
243 L"\\(\\d{3}\\)(\\.|[- ])?\\d{3}(\\.|[- ])?\\d{4}", /* (408) 555-1234 */
244 L"011(\\.|[- \\d])*" /* international */
245 };
246 DEFINE_GLOBAL_ARRAY(pRuntime);
247 }
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700248
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700249 {
250 const FX_WCHAR* ArrayName = L"RE_SSN_ENTRY";
251 const FX_WCHAR* ArrayContent[] = {
252 L"\\d{0,3}(\\.|[- ])?\\d{0,2}(\\.|[- ])?\\d{0,4}"};
253 DEFINE_GLOBAL_ARRAY(pRuntime);
254 }
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700255
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700256 {
257 const FX_WCHAR* ArrayName = L"RE_SSN_COMMIT";
258 const FX_WCHAR* ArrayContent[] = {
259 L"\\d{3}(\\.|[- ])?\\d{2}(\\.|[- ])?\\d{4}"};
260 DEFINE_GLOBAL_ARRAY(pRuntime);
261 }
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700262
Nico Weber9d8ec5a2015-08-04 13:00:21 -0700263 return 0;
John Abd-El-Malek3f3b45c2014-05-23 17:28:10 -0700264}