FX Bool considered harmful, part 3
[pdfium.git] / fpdfsdk / include / javascript / PublicMethods.h
1 // 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.
4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7 #ifndef FPDFSDK_INCLUDE_JAVASCRIPT_PUBLICMETHODS_H_
8 #define FPDFSDK_INCLUDE_JAVASCRIPT_PUBLICMETHODS_H_
9
10 #include "JS_Define.h"
11
12 class CJS_PublicMethods : public CJS_Object
13 {
14 public:
15         CJS_PublicMethods(JSFXObject  pObject) : CJS_Object(pObject) {};
16         virtual ~CJS_PublicMethods(void){};
17
18 public:
19         static bool AFNumber_Format(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
20         static bool AFNumber_Keystroke(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
21         static bool AFPercent_Format(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
22         static bool AFPercent_Keystroke(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
23         static bool AFDate_FormatEx(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
24         static bool AFDate_KeystrokeEx(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
25         static bool AFDate_Format(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
26         static bool AFDate_Keystroke(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
27         static bool AFTime_FormatEx(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError); //
28         static bool AFTime_KeystrokeEx(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
29         static bool AFTime_Format(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
30         static bool AFTime_Keystroke(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
31         static bool AFSpecial_Format(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
32         static bool AFSpecial_Keystroke(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
33         static bool AFSpecial_KeystrokeEx(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);//
34         static bool AFSimple(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
35         static bool AFMakeNumber(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
36         static bool AFSimple_Calculate(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
37         static bool AFRange_Validate(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
38         static bool AFMergeChange(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
39         static bool AFParseDateEx(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
40         static bool AFExtractNums(IFXJS_Context* cc, const CJS_Parameters& params, CJS_Value& vRet, CFX_WideString& sError);
41
42 public:
43         JS_STATIC_GLOBAL_FUN(AFNumber_Format);
44         JS_STATIC_GLOBAL_FUN(AFNumber_Keystroke);
45         JS_STATIC_GLOBAL_FUN(AFPercent_Format);
46         JS_STATIC_GLOBAL_FUN(AFPercent_Keystroke);
47         JS_STATIC_GLOBAL_FUN(AFDate_FormatEx);
48         JS_STATIC_GLOBAL_FUN(AFDate_KeystrokeEx);
49         JS_STATIC_GLOBAL_FUN(AFDate_Format);
50         JS_STATIC_GLOBAL_FUN(AFDate_Keystroke);
51         JS_STATIC_GLOBAL_FUN(AFTime_FormatEx);
52         JS_STATIC_GLOBAL_FUN(AFTime_KeystrokeEx);
53         JS_STATIC_GLOBAL_FUN(AFTime_Format);
54         JS_STATIC_GLOBAL_FUN(AFTime_Keystroke);
55         JS_STATIC_GLOBAL_FUN(AFSpecial_Format);
56         JS_STATIC_GLOBAL_FUN(AFSpecial_Keystroke);
57         JS_STATIC_GLOBAL_FUN(AFSpecial_KeystrokeEx);
58         JS_STATIC_GLOBAL_FUN(AFSimple);
59         JS_STATIC_GLOBAL_FUN(AFMakeNumber);
60         JS_STATIC_GLOBAL_FUN(AFSimple_Calculate);
61         JS_STATIC_GLOBAL_FUN(AFRange_Validate);
62         JS_STATIC_GLOBAL_FUN(AFMergeChange);
63         JS_STATIC_GLOBAL_FUN(AFParseDateEx);
64         JS_STATIC_GLOBAL_FUN(AFExtractNums);
65
66         JS_STATIC_DECLARE_GLOBAL_FUN();
67
68 public:
69         static int                              ParseStringInteger(const CFX_WideString & string,int nStart,int & nSkip, int nMaxStep);
70         static CFX_WideString   ParseStringString(const CFX_WideString& string, int nStart, int& nSkip);
71         static double                   MakeRegularDate(const CFX_WideString & value,const CFX_WideString & format, bool& bWrongFormat);
72         static CFX_WideString   MakeFormatDate(double dDate,const CFX_WideString & format);
73         static bool                     ConvertStringToNumber(const FX_WCHAR* swSource, double & dRet, bool & bDot);
74         static double                   ParseStringToNumber(const FX_WCHAR* swSource);
75         static double                   ParseNormalDate(const CFX_WideString & value, bool& bWrongFormat);
76         static double           MakeInterDate(CFX_WideString strValue);
77         static double                   ParseNumber(const FX_WCHAR* swSource, bool& bAllDigits, bool& bDot, bool& bSign, bool& bKXJS);
78
79 public:
80         static CFX_WideString   StrLTrim(const FX_WCHAR* pStr);
81         static CFX_WideString   StrRTrim(const FX_WCHAR* pStr);
82         static CFX_WideString   StrTrim(const FX_WCHAR* pStr);
83
84         static CFX_ByteString   StrLTrim(const FX_CHAR* pStr);
85         static CFX_ByteString   StrRTrim(const FX_CHAR* pStr);
86         static CFX_ByteString   StrTrim(const FX_CHAR* pStr);
87
88         static bool                     IsNumber(const FX_CHAR* string);
89         static bool                     IsNumber(const FX_WCHAR* string);
90
91         static bool                     IsDigit(char ch);
92         static bool                     IsDigit(wchar_t ch);
93         static bool                     IsAlphabetic(wchar_t ch);
94         static bool                     IsAlphaNumeric(wchar_t ch);
95
96         static bool                     maskSatisfied(wchar_t c_Change,wchar_t c_Mask);
97         static bool                     isReservedMaskChar(wchar_t ch);
98
99         static double                   AF_Simple(const FX_WCHAR* sFuction, double dValue1, double dValue2);
100         static CJS_Array                AF_MakeArrayFromList(v8::Isolate* isolate, CJS_Value val);
101 };
102
103 #endif  // FPDFSDK_INCLUDE_JAVASCRIPT_PUBLICMETHODS_H_