diff options
Diffstat (limited to 'fpdfsdk/include/javascript/JS_Value.h')
-rw-r--r-- | fpdfsdk/include/javascript/JS_Value.h | 372 |
1 files changed, 186 insertions, 186 deletions
diff --git a/fpdfsdk/include/javascript/JS_Value.h b/fpdfsdk/include/javascript/JS_Value.h index f87f9e1d43..030cdd5cf9 100644 --- a/fpdfsdk/include/javascript/JS_Value.h +++ b/fpdfsdk/include/javascript/JS_Value.h @@ -1,186 +1,186 @@ -// Copyright 2014 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef _JS_VALUE_H_
-#define _JS_VALUE_H_
-
-class CJS_Array;
-class CJS_Date;
-
-class CJS_Value
-{
-public:
- CJS_Value(v8::Isolate* isolate);
- CJS_Value(v8::Isolate* isolate, v8::Handle<v8::Value> pValue,FXJSVALUETYPE t);
- CJS_Value(v8::Isolate* isolate, const int &iValue);
- CJS_Value(v8::Isolate* isolate, const double &dValue);
- CJS_Value(v8::Isolate* isolate, const float &fValue);
- CJS_Value(v8::Isolate* isolate, const bool &bValue);
- CJS_Value(v8::Isolate* isolate, JSFXObject);
- CJS_Value(v8::Isolate* isolate, CJS_Object *);
- CJS_Value(v8::Isolate* isolate, FX_LPCSTR pStr);
- CJS_Value(v8::Isolate* isolate, FX_LPCWSTR pWstr);
- CJS_Value(v8::Isolate* isolate, CJS_Array& array);
-
- ~CJS_Value();
-
- void SetNull();
- void Attach(v8::Handle<v8::Value> pValue,FXJSVALUETYPE t);
- void Attach(CJS_Value *pValue);
- void Detach();
-
-
- operator int() const;
- operator bool() const;
- operator double() const;
- operator float() const;
- operator CJS_Object *() const;
- //operator JSFXObject *() const;
- operator v8::Handle<v8::Object>() const;
- operator v8::Handle<v8::Array>() const;
- operator CFX_WideString() const;
- //operator FX_WCHAR *() const;
- operator CFX_ByteString() const;
- v8::Handle<v8::Value> ToJSValue();
-
- void operator = (int iValue);
- void operator = (bool bValue);
- void operator = (double);
- void operator = (float);
- void operator = (CJS_Object *);
- void operator = (v8::Handle<v8::Object>);
-// void operator = (JSObject *);
- void operator = (CJS_Array &);
- void operator = (CJS_Date &);
- void operator = (FX_LPCWSTR pWstr);
- void operator = (FX_LPCSTR pStr);
- void operator = (CJS_Value value);
-
- FX_BOOL IsArrayObject() const;
- FX_BOOL IsDateObject() const;
- FXJSVALUETYPE GetType() const;
-
- FX_BOOL ConvertToArray(CJS_Array &) const;
- FX_BOOL ConvertToDate(CJS_Date &) const;
-
- v8::Isolate* GetIsolate() {return m_isolate;}
-protected:
- v8::Handle<v8::Value> m_pValue;
- FXJSVALUETYPE m_eType;
- v8::Isolate* m_isolate;
-};
-
-template<class TYPE> class CJS_ParametersTmpl : public CFX_ArrayTemplate<TYPE>
-{
-public:
- void push_back(TYPE newElement){CFX_ArrayTemplate<TYPE>::Add(newElement);}
- int size() const{return CFX_ArrayTemplate<TYPE>::GetSize();}
-};
-typedef CJS_ParametersTmpl<CJS_Value> CJS_Parameters;
-
-class CJS_PropValue: public CJS_Value
-{
-public:
- CJS_PropValue(const CJS_Value &);
- CJS_PropValue(v8::Isolate* isolate);
- ~CJS_PropValue();
-public:
- FX_BOOL IsSetting();
- FX_BOOL IsGetting();
- void operator<<(int );
- void operator>>(int &) const;
- void operator<<(bool);
- void operator>>(bool &) const;
- void operator<<(double );
- void operator>>(double &) const;
- void operator<<(CJS_Object *pObj);
- void operator>>(CJS_Object *&ppObj) const;
- void operator<<(CFX_ByteString);
- void operator>>(CFX_ByteString &) const;
- void operator<<(CFX_WideString);
- void operator>>(CFX_WideString &) const;
- void operator<<(FX_LPCWSTR c_string);
-
- void operator<<(JSFXObject);
- void operator>>(JSFXObject &) const;
-
- void operator>>(CJS_Array &array) const;
- void operator<<(CJS_Array &array);
-
- void operator<<(CJS_Date &date);
- void operator>>(CJS_Date &date) const;
-
- operator v8::Handle<v8::Value>() const;
-
- void StartSetting();
- void StartGetting();
-private:
- FX_BOOL m_bIsSetting;
-};
-
-class CJS_Array
-{
-public:
- CJS_Array(v8::Isolate* isolate);
- virtual ~CJS_Array();
-
- void Attach(v8::Handle<v8::Array> pArray);
- void GetElement(unsigned index,CJS_Value &value);
- void SetElement(unsigned index,CJS_Value value);
- int GetLength();
- FX_BOOL IsAttached();
- operator v8::Handle<v8::Array>();
-
- v8::Isolate* GetIsolate() {return m_isolate;}
-private:
- v8::Handle<v8::Array> m_pArray;
- v8::Isolate* m_isolate;
-};
-
-class CJS_Date
-{
-friend class CJS_Value;
-public:
- CJS_Date(v8::Isolate* isolate);
- CJS_Date(v8::Isolate* isolate,double dMsec_time);
- CJS_Date(v8::Isolate* isolate,int year, int mon, int day,int hour, int min, int sec);
- virtual ~CJS_Date();
- void Attach(v8::Handle<v8::Value> pDate);
-
- int GetYear();
- void SetYear(int iYear);
-
- int GetMonth();
- void SetMonth(int iMonth);
-
- int GetDay();
- void SetDay(int iDay);
-
- int GetHours();
- void SetHours(int iHours);
-
- int GetMinutes();
- void SetMinutes(int minutes);
-
- int GetSeconds();
- void SetSeconds(int seconds);
-
- operator v8::Handle<v8::Value>();
- operator double() const;
-
- CFX_WideString ToString() const;
-
- static double MakeDate(int year, int mon, int mday,int hour, int min, int sec,int ms);
-
- FX_BOOL IsValidDate();
-
-protected:
- v8::Handle<v8::Value> m_pDate;
- v8::Isolate* m_isolate;
-};
-
-#endif //_JS_VALUE_H_
-
+// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef _JS_VALUE_H_ +#define _JS_VALUE_H_ + +class CJS_Array; +class CJS_Date; + +class CJS_Value +{ +public: + CJS_Value(v8::Isolate* isolate); + CJS_Value(v8::Isolate* isolate, v8::Handle<v8::Value> pValue,FXJSVALUETYPE t); + CJS_Value(v8::Isolate* isolate, const int &iValue); + CJS_Value(v8::Isolate* isolate, const double &dValue); + CJS_Value(v8::Isolate* isolate, const float &fValue); + CJS_Value(v8::Isolate* isolate, const bool &bValue); + CJS_Value(v8::Isolate* isolate, JSFXObject); + CJS_Value(v8::Isolate* isolate, CJS_Object *); + CJS_Value(v8::Isolate* isolate, FX_LPCSTR pStr); + CJS_Value(v8::Isolate* isolate, FX_LPCWSTR pWstr); + CJS_Value(v8::Isolate* isolate, CJS_Array& array); + + ~CJS_Value(); + + void SetNull(); + void Attach(v8::Handle<v8::Value> pValue,FXJSVALUETYPE t); + void Attach(CJS_Value *pValue); + void Detach(); + + + operator int() const; + operator bool() const; + operator double() const; + operator float() const; + operator CJS_Object *() const; + //operator JSFXObject *() const; + operator v8::Handle<v8::Object>() const; + operator v8::Handle<v8::Array>() const; + operator CFX_WideString() const; + //operator FX_WCHAR *() const; + operator CFX_ByteString() const; + v8::Handle<v8::Value> ToJSValue(); + + void operator = (int iValue); + void operator = (bool bValue); + void operator = (double); + void operator = (float); + void operator = (CJS_Object *); + void operator = (v8::Handle<v8::Object>); +// void operator = (JSObject *); + void operator = (CJS_Array &); + void operator = (CJS_Date &); + void operator = (FX_LPCWSTR pWstr); + void operator = (FX_LPCSTR pStr); + void operator = (CJS_Value value); + + FX_BOOL IsArrayObject() const; + FX_BOOL IsDateObject() const; + FXJSVALUETYPE GetType() const; + + FX_BOOL ConvertToArray(CJS_Array &) const; + FX_BOOL ConvertToDate(CJS_Date &) const; + + v8::Isolate* GetIsolate() {return m_isolate;} +protected: + v8::Handle<v8::Value> m_pValue; + FXJSVALUETYPE m_eType; + v8::Isolate* m_isolate; +}; + +template<class TYPE> class CJS_ParametersTmpl : public CFX_ArrayTemplate<TYPE> +{ +public: + void push_back(TYPE newElement){CFX_ArrayTemplate<TYPE>::Add(newElement);} + int size() const{return CFX_ArrayTemplate<TYPE>::GetSize();} +}; +typedef CJS_ParametersTmpl<CJS_Value> CJS_Parameters; + +class CJS_PropValue: public CJS_Value +{ +public: + CJS_PropValue(const CJS_Value &); + CJS_PropValue(v8::Isolate* isolate); + ~CJS_PropValue(); +public: + FX_BOOL IsSetting(); + FX_BOOL IsGetting(); + void operator<<(int ); + void operator>>(int &) const; + void operator<<(bool); + void operator>>(bool &) const; + void operator<<(double ); + void operator>>(double &) const; + void operator<<(CJS_Object *pObj); + void operator>>(CJS_Object *&ppObj) const; + void operator<<(CFX_ByteString); + void operator>>(CFX_ByteString &) const; + void operator<<(CFX_WideString); + void operator>>(CFX_WideString &) const; + void operator<<(FX_LPCWSTR c_string); + + void operator<<(JSFXObject); + void operator>>(JSFXObject &) const; + + void operator>>(CJS_Array &array) const; + void operator<<(CJS_Array &array); + + void operator<<(CJS_Date &date); + void operator>>(CJS_Date &date) const; + + operator v8::Handle<v8::Value>() const; + + void StartSetting(); + void StartGetting(); +private: + FX_BOOL m_bIsSetting; +}; + +class CJS_Array +{ +public: + CJS_Array(v8::Isolate* isolate); + virtual ~CJS_Array(); + + void Attach(v8::Handle<v8::Array> pArray); + void GetElement(unsigned index,CJS_Value &value); + void SetElement(unsigned index,CJS_Value value); + int GetLength(); + FX_BOOL IsAttached(); + operator v8::Handle<v8::Array>(); + + v8::Isolate* GetIsolate() {return m_isolate;} +private: + v8::Handle<v8::Array> m_pArray; + v8::Isolate* m_isolate; +}; + +class CJS_Date +{ +friend class CJS_Value; +public: + CJS_Date(v8::Isolate* isolate); + CJS_Date(v8::Isolate* isolate,double dMsec_time); + CJS_Date(v8::Isolate* isolate,int year, int mon, int day,int hour, int min, int sec); + virtual ~CJS_Date(); + void Attach(v8::Handle<v8::Value> pDate); + + int GetYear(); + void SetYear(int iYear); + + int GetMonth(); + void SetMonth(int iMonth); + + int GetDay(); + void SetDay(int iDay); + + int GetHours(); + void SetHours(int iHours); + + int GetMinutes(); + void SetMinutes(int minutes); + + int GetSeconds(); + void SetSeconds(int seconds); + + operator v8::Handle<v8::Value>(); + operator double() const; + + CFX_WideString ToString() const; + + static double MakeDate(int year, int mon, int mday,int hour, int min, int sec,int ms); + + FX_BOOL IsValidDate(); + +protected: + v8::Handle<v8::Value> m_pDate; + v8::Isolate* m_isolate; +}; + +#endif //_JS_VALUE_H_ + |