From fdc00a7042d912aafaabddae4d9c84199921ef23 Mon Sep 17 00:00:00 2001 From: Bo Xu Date: Tue, 28 Oct 2014 23:03:33 -0700 Subject: Merge XFA to PDFium master at 4dc95e7 on 10/28/2014 --- xfa/include/fwl/lightwidget/app.h | 25 ++++ xfa/include/fwl/lightwidget/barcode.h | 177 +++++++++++++++++++++++++++ xfa/include/fwl/lightwidget/caret.h | 25 ++++ xfa/include/fwl/lightwidget/checkbox.h | 39 ++++++ xfa/include/fwl/lightwidget/combobox.h | 115 +++++++++++++++++ xfa/include/fwl/lightwidget/datetimepicker.h | 58 +++++++++ xfa/include/fwl/lightwidget/edit.h | 57 +++++++++ xfa/include/fwl/lightwidget/listbox.h | 98 +++++++++++++++ xfa/include/fwl/lightwidget/picturebox.h | 65 ++++++++++ xfa/include/fwl/lightwidget/pushbutton.h | 37 ++++++ xfa/include/fwl/lightwidget/scrollbar.h | 32 +++++ xfa/include/fwl/lightwidget/theme.h | 39 ++++++ xfa/include/fwl/lightwidget/tooltipctrl.h | 54 ++++++++ xfa/include/fwl/lightwidget/widget.h | 101 +++++++++++++++ 14 files changed, 922 insertions(+) create mode 100644 xfa/include/fwl/lightwidget/app.h create mode 100644 xfa/include/fwl/lightwidget/barcode.h create mode 100644 xfa/include/fwl/lightwidget/caret.h create mode 100644 xfa/include/fwl/lightwidget/checkbox.h create mode 100644 xfa/include/fwl/lightwidget/combobox.h create mode 100644 xfa/include/fwl/lightwidget/datetimepicker.h create mode 100644 xfa/include/fwl/lightwidget/edit.h create mode 100644 xfa/include/fwl/lightwidget/listbox.h create mode 100644 xfa/include/fwl/lightwidget/picturebox.h create mode 100644 xfa/include/fwl/lightwidget/pushbutton.h create mode 100644 xfa/include/fwl/lightwidget/scrollbar.h create mode 100644 xfa/include/fwl/lightwidget/theme.h create mode 100644 xfa/include/fwl/lightwidget/tooltipctrl.h create mode 100644 xfa/include/fwl/lightwidget/widget.h (limited to 'xfa/include/fwl/lightwidget') diff --git a/xfa/include/fwl/lightwidget/app.h b/xfa/include/fwl/lightwidget/app.h new file mode 100644 index 0000000000..11919508aa --- /dev/null +++ b/xfa/include/fwl/lightwidget/app.h @@ -0,0 +1,25 @@ +// 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 _FWL_APP_LIGHT_H +#define _FWL_APP_LIGHT_H +class CFWL_Theme; +class IFWL_App; +class CFWL_App; +class CFWL_App : public CFX_Object +{ +public: + CFWL_App(); + virtual ~CFWL_App(); + FWL_ERR Initialize(); + CFWL_Theme* GetTheme(); + FWL_ERR Exit(FX_INT32 iExitCode = 0); + IFWL_App* GetApp(); +protected: + IFWL_App *m_pAppImp; + CFWL_Theme *m_pThemeProvider; +}; +#endif diff --git a/xfa/include/fwl/lightwidget/barcode.h b/xfa/include/fwl/lightwidget/barcode.h new file mode 100644 index 0000000000..e8fcfea476 --- /dev/null +++ b/xfa/include/fwl/lightwidget/barcode.h @@ -0,0 +1,177 @@ +// 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 _FWL_BARCODE_LIGHT_H +#define _FWL_BARCODE_LIGHT_H +class CFWL_Widget; +class CFWL_WidgetProperties; +class IFWL_BarcodeDP; +class CFWL_Edit; +class CFWL_Barcode; +class CFWL_BarcodeDP; +class CFWL_Barcode : public CFWL_Edit +{ +public: + static CFWL_Barcode* Create(); + FWL_ERR Initialize(const CFWL_WidgetProperties *pProperties = NULL); + void SetType(BC_TYPE type); + FX_BOOL IsProtectedType(); +public: + void SetCharEncoding(BC_CHAR_ENCODING encoding) + { + m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_CHARENCODING; + m_barcodeData.m_eCharEncoding = encoding; + } + void SetModuleHeight(FX_INT32 height) + { + m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_MODULEHEIGHT; + m_barcodeData.m_nModuleHeight = height; + } + void SetModuleWidth(FX_INT32 width) + { + m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_MODULEWIDTH; + m_barcodeData.m_nModuleWidth = width; + } + void SetDataLength(FX_INT32 dataLength) + { + m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_DATALENGTH; + m_barcodeData.m_nDataLength = dataLength; + ((IFWL_Barcode*)m_pImp)->SetLimit(dataLength); + } + void SetCalChecksum(FX_INT32 calChecksum) + { + m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_CALCHECKSUM; + m_barcodeData.m_nCalChecksum = calChecksum; + } + void SetPrintChecksum(FX_BOOL printChecksum) + { + m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_PRINTCHECKSUM; + m_barcodeData.m_bPrintChecksum = printChecksum; + } + void SetTextLocation(BC_TEXT_LOC location) + { + m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_TEXTLOCATION; + m_barcodeData.m_eTextLocation = location; + } + void SetWideNarrowRatio(FX_INT32 ratio) + { + m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_WIDENARROWRATIO; + m_barcodeData.m_nWideNarrowRatio = ratio; + } + void SetStartChar(FX_CHAR startChar) + { + m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_STARTCHAR; + m_barcodeData.m_cStartChar = startChar; + } + void SetEndChar(FX_CHAR endChar) + { + m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_ENDCHAR; + m_barcodeData.m_cEndChar = endChar; + } + void SetVersion(FX_INT32 version) + { + m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_VERSION; + m_barcodeData.m_nVersion = version; + } + void SetErrorCorrectionLevel(FX_INT32 ecLevel) + { + m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_ECLEVEL; + m_barcodeData.m_nECLevel = ecLevel; + } + void SetTruncated(FX_BOOL truncated) + { + m_barcodeData.m_dwAttributeMask |= FWL_BCDATTRIBUTE_TRUNCATED; + m_barcodeData.m_bTruncated = truncated; + } + void ResetBarcodeAttributes() + { + m_barcodeData.m_dwAttributeMask = 0; + } +protected: + CFWL_Barcode(); + virtual ~CFWL_Barcode(); + class CFWL_BarcodeDP : public IFWL_BarcodeDP + { + public: + virtual FWL_ERR GetCaption(IFWL_Widget *pWidget, CFX_WideString &wsCaption); + BC_CHAR_ENCODING m_eCharEncoding; + virtual BC_CHAR_ENCODING GetCharEncoding() + { + return m_eCharEncoding; + } + FX_INT32 m_nModuleHeight, m_nModuleWidth; + virtual FX_INT32 GetModuleHeight() + { + return m_nModuleHeight; + } + virtual FX_INT32 GetModuleWidth() + { + return m_nModuleWidth; + } + FX_INT32 m_nDataLength; + virtual FX_INT32 GetDataLength() + { + return m_nDataLength; + } + FX_INT32 m_nCalChecksum; + virtual FX_INT32 GetCalChecksum() + { + return m_nCalChecksum; + } + FX_BOOL m_bPrintChecksum; + virtual FX_BOOL GetPrintChecksum() + { + return m_bPrintChecksum; + } + + BC_TEXT_LOC m_eTextLocation; + virtual BC_TEXT_LOC GetTextLocation() + { + return m_eTextLocation; + } + FX_INT32 m_nWideNarrowRatio; + virtual FX_INT32 GetWideNarrowRatio() + { + return m_nWideNarrowRatio; + } + FX_CHAR m_cStartChar, m_cEndChar; + virtual FX_CHAR GetStartChar() + { + return m_cStartChar; + } + virtual FX_CHAR GetEndChar() + { + return m_cEndChar; + } + FX_INT32 m_nVersion; + virtual FX_INT32 GetVersion() + { + return m_nVersion; + } + FX_INT32 m_nECLevel; + virtual FX_INT32 GetErrorCorrectionLevel() + { + return m_nECLevel; + } + FX_BOOL m_bTruncated; + virtual FX_BOOL GetTruncated() + { + return m_bTruncated; + } + FX_DWORD m_dwAttributeMask; + virtual FX_DWORD GetBarcodeAttributeMask() + { + return m_dwAttributeMask; + } + public: + CFWL_BarcodeDP() + : m_dwAttributeMask(0) + { + } + }; + CFWL_BarcodeDP m_barcodeData; +}; +#endif diff --git a/xfa/include/fwl/lightwidget/caret.h b/xfa/include/fwl/lightwidget/caret.h new file mode 100644 index 0000000000..d4c2e7702f --- /dev/null +++ b/xfa/include/fwl/lightwidget/caret.h @@ -0,0 +1,25 @@ +// 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 _FWL_CARET_LIGHT_H +#define _FWL_CARET_LIGHT_H +class CFWL_Widget; +class CFWL_WidgetProperties; +class CFWL_Caret; +class CFWL_Caret : public CFWL_Widget +{ +public: + static CFWL_Caret* Create(); + FWL_ERR Initialize(const CFWL_WidgetProperties *pProperties = NULL); + FWL_ERR ShowCaret(FX_BOOL bFlag = TRUE); + FWL_ERR GetFrequency(FX_DWORD &elapse); + FWL_ERR SetFrequency(FX_DWORD elapse); + FWL_ERR SetColor(CFX_Color crFill); +protected: + CFWL_Caret(); + virtual ~CFWL_Caret(); +}; +#endif diff --git a/xfa/include/fwl/lightwidget/checkbox.h b/xfa/include/fwl/lightwidget/checkbox.h new file mode 100644 index 0000000000..2f7b2bac97 --- /dev/null +++ b/xfa/include/fwl/lightwidget/checkbox.h @@ -0,0 +1,39 @@ +// 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 _FWL_CHECKBOX_LIGHT_H +#define _FWL_CHECKBOX_LIGHT_H +class CFWL_Widget; +class CFWL_WidgetProperties; +class IFWL_CheckBoxDP; +class CFWL_CheckBox; +class CFWL_CheckBoxDP; +class CFWL_CheckBox : public CFWL_Widget +{ +public: + static CFWL_CheckBox* Create(); + + FWL_ERR Initialize(const CFWL_WidgetProperties *pProperties = NULL); + FWL_ERR GetCaption(CFX_WideString &wsCaption); + FWL_ERR SetCaption(FX_WSTR wsCaption); + FWL_ERR SetBoxSize(FX_FLOAT fHeight); + FX_INT32 GetCheckState(); + FWL_ERR SetCheckState(FX_INT32 iCheck); + CFWL_CheckBox(); + virtual ~CFWL_CheckBox(); +protected: + class CFWL_CheckBoxDP : public IFWL_CheckBoxDP + { + public: + CFWL_CheckBoxDP(); + virtual FWL_ERR GetCaption(IFWL_Widget *pWidget, CFX_WideString &wsCaption); + virtual FX_FLOAT GetBoxSize(IFWL_Widget *pWidget); + FX_FLOAT m_fBoxHeight; + CFX_WideString m_wsCaption; + }; + CFWL_CheckBoxDP m_checkboxData; +}; +#endif diff --git a/xfa/include/fwl/lightwidget/combobox.h b/xfa/include/fwl/lightwidget/combobox.h new file mode 100644 index 0000000000..eac58569aa --- /dev/null +++ b/xfa/include/fwl/lightwidget/combobox.h @@ -0,0 +1,115 @@ +// 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 _FWL_COMBOBOX_LIGHT_H +#define _FWL_COMBOBOX_LIGHT_H +class CFWL_Widget; +class CFWL_WidgetProperties; +class IFWL_ComboBoxDP; +class CFWL_ComboBox; +class CFWL_ComboBoxDP; +class CFWL_ComboBoxItem; +class CFWL_ComboBox : public CFWL_Widget +{ +public: + static CFWL_ComboBox* Create(); + FWL_ERR Initialize(const CFWL_WidgetProperties *pProperties = NULL); + FX_INT32 AddString(FX_WSTR wsText); + FX_INT32 AddString(FX_WSTR wsText, CFX_DIBitmap *pIcon); + FX_INT32 RemoveAt(FX_INT32 iIndex); + FX_INT32 RemoveAll(); + FX_INT32 CountItems(); + FWL_ERR GetTextByIndex(FX_INT32 iIndex, CFX_WideString &wsText); + FX_INT32 GetCurSel(); + FWL_ERR SetCurSel(FX_INT32 iSel); + FWL_ERR SetEditText(FX_WSTR wsText); + FX_INT32 GetEditTextLength() const; + FWL_ERR GetEditText(CFX_WideString &wsText, FX_INT32 nStart = 0, FX_INT32 nCount = -1) const ; + FWL_ERR SetEditSelRange(FX_INT32 nStart, FX_INT32 nCount = -1); + FX_INT32 GetEditSelRange(FX_INT32 nIndex, FX_INT32 &nStart); + FX_INT32 GetEditLimit(); + FWL_ERR SetEditLimit(FX_INT32 nLimit); + FWL_ERR EditDoClipboard(FX_INT32 iCmd); + FX_BOOL EditRedo(FX_BSTR bsRecord); + FX_BOOL EditUndo(FX_BSTR bsRecord); + FWL_ERR SetMaxListHeight(FX_FLOAT fMaxHeight); + FWL_ERR SetItemData(FX_INT32 iIndex, FX_LPVOID pData); + FX_LPVOID GetItemData(FX_INT32 iIndex); + FWL_ERR SetListTheme(IFWL_ThemeProvider *pTheme); + FX_BOOL AfterFocusShowDropList(); + FWL_ERR OpenDropDownList(FX_BOOL bActivate); +public: + FX_BOOL EditCanUndo(); + FX_BOOL EditCanRedo(); + FX_BOOL EditUndo(); + FX_BOOL EditRedo(); + FX_BOOL EditCanCopy(); + FX_BOOL EditCanCut(); + FX_BOOL EditCanSelectAll(); + FX_BOOL EditCopy(CFX_WideString &wsCopy); + FX_BOOL EditCut(CFX_WideString &wsCut); + FX_BOOL EditPaste(const CFX_WideString &wsPaste); + FX_BOOL EditSelectAll(); + FX_BOOL EditDelete(); + FX_BOOL EditDeSelect(); + FWL_ERR GetBBox(CFX_RectF &rect); + FWL_ERR EditModifyStylesEx(FX_DWORD dwStylesExAdded, FX_DWORD dwStylesExRemoved); + CFWL_ComboBox(); + virtual ~CFWL_ComboBox(); +protected: + class CFWL_ComboBoxDP : public IFWL_ComboBoxDP + { + public: + CFWL_ComboBoxDP(); + ~CFWL_ComboBoxDP(); + virtual FWL_ERR GetCaption(IFWL_Widget *pWidget, CFX_WideString &wsCaption) + { + return FWL_ERR_Succeeded; + } + + virtual FX_INT32 CountItems(IFWL_Widget *pWidget); + virtual FWL_HLISTITEM GetItem(IFWL_Widget *pWidget, FX_INT32 nIndex); + virtual FX_INT32 GetItemIndex(IFWL_Widget *pWidget, FWL_HLISTITEM hItem); + virtual FX_BOOL SetItemIndex(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, FX_INT32 nIndex); + + virtual FX_DWORD GetItemStyles(IFWL_Widget *pWidget, FWL_HLISTITEM hItem); + virtual FWL_ERR GetItemText(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, CFX_WideString &wsText); + virtual FWL_ERR GetItemRect(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, CFX_RectF& rtItem); + virtual FX_LPVOID GetItemData(IFWL_Widget *pWidget, FWL_HLISTITEM hItem); + virtual FWL_ERR SetItemStyles(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, FX_DWORD dwStyle); + virtual FWL_ERR SetItemText(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, FX_LPCWSTR pszText); + virtual FWL_ERR SetItemRect(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, const CFX_RectF& rtItem); + virtual FX_FLOAT GetItemHeight(IFWL_Widget *pWidget); + virtual CFX_DIBitmap* GetItemIcon(IFWL_Widget *pWidget, FWL_HLISTITEM hItem); + virtual FWL_ERR GetItemCheckRect(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, CFX_RectF& rtCheck); + virtual FWL_ERR SetItemCheckRect(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, const CFX_RectF& rtCheck); + virtual FX_DWORD GetItemCheckState(IFWL_Widget *pWidget, FWL_HLISTITEM hItem); + virtual FWL_ERR SetItemCheckState(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, FX_DWORD dwCheckState); + virtual FX_FLOAT GetListHeight(IFWL_Widget *pWidget); + + CFX_PtrArray m_arrItem; + FX_FLOAT m_fMaxListHeight; + FX_FLOAT m_fItemHeight; + }; + CFWL_ComboBoxDP m_comboBoxData; +}; +class CFWL_ComboBoxItem : public CFX_Object +{ +public: + CFWL_ComboBoxItem() + { + m_pDIB = NULL; + m_pData = NULL; + } + CFX_RectF m_rtItem; + FX_DWORD m_dwStyles; + CFX_WideString m_wsText; + CFX_DIBitmap *m_pDIB; + FX_DWORD m_dwCheckState; + CFX_RectF m_rtCheckBox; + FX_LPVOID m_pData; +}; +#endif diff --git a/xfa/include/fwl/lightwidget/datetimepicker.h b/xfa/include/fwl/lightwidget/datetimepicker.h new file mode 100644 index 0000000000..73a382c08c --- /dev/null +++ b/xfa/include/fwl/lightwidget/datetimepicker.h @@ -0,0 +1,58 @@ +// 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 _FWL_DATETIMEPICKER_LIGHT_H +#define _FWL_DATETIMEPICKER_LIGHT_H +class CFWL_Widget; +class CFWL_WidgetProperties; +class IFWL_DateTimePickerDP; +class CFWL_DateTimePicker; +class CFWL_DateTimePickerDP; +class CFWL_DateTimePicker : public CFWL_Widget +{ +public: + static CFWL_DateTimePicker* Create(); + FWL_ERR Initialize(const CFWL_WidgetProperties *pProperties = NULL); + FWL_ERR SetToday(FX_INT32 iYear, FX_INT32 iMonth, FX_INT32 iDay); + FWL_ERR GetEditText(CFX_WideString &wsText); + FWL_ERR SetEditText(FX_WSTR wsText); + FX_INT32 CountSelRanges(); + FX_INT32 GetSelRange(FX_INT32 nIndex, FX_INT32 &nStart); + FWL_ERR GetCurSel(FX_INT32 &iYear, FX_INT32 &iMonth, FX_INT32 &iDay); + FWL_ERR SetCurSel(FX_INT32 iYear, FX_INT32 iMonth, FX_INT32 iDay); + FX_BOOL CanUndo(); + FX_BOOL CanRedo(); + FX_BOOL Undo(); + FX_BOOL Redo(); + FX_BOOL CanCopy(); + FX_BOOL CanCut(); + FX_BOOL CanSelectAll(); + FX_BOOL Copy(CFX_WideString &wsCopy); + FX_BOOL Cut(CFX_WideString &wsCut); + FX_BOOL Paste(const CFX_WideString &wsPaste); + FX_BOOL SelectAll(); + FX_BOOL Delete(); + FX_BOOL DeSelect(); + FWL_ERR GetBBox(CFX_RectF &rect); + FWL_ERR SetEditLimit(FX_INT32 nLimit); + FWL_ERR ModifyEditStylesEx(FX_DWORD dwStylesExAdded, FX_DWORD dwStylesExRemoved); +protected: + CFWL_DateTimePicker(); + virtual ~CFWL_DateTimePicker(); + class CFWL_DateTimePickerDP : public IFWL_DateTimePickerDP + { + public: + CFWL_DateTimePickerDP(); + virtual FWL_ERR GetCaption(IFWL_Widget *pWidget, CFX_WideString &wsCaption); + virtual FWL_ERR GetToday(IFWL_Widget *pWidget, FX_INT32 &iYear, FX_INT32 &iMonth, FX_INT32 &iDay); + FX_INT32 m_iYear; + FX_INT32 m_iMonth; + FX_INT32 m_iDay; + CFX_WideString m_wsData; + }; + CFWL_DateTimePickerDP m_DateTimePickerDP; +}; +#endif diff --git a/xfa/include/fwl/lightwidget/edit.h b/xfa/include/fwl/lightwidget/edit.h new file mode 100644 index 0000000000..8299a20322 --- /dev/null +++ b/xfa/include/fwl/lightwidget/edit.h @@ -0,0 +1,57 @@ +// 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 _FWL_EDIT_LIGHT_H +#define _FWL_EDIT_LIGHT_H +class CFWL_Widget; +class CFWL_WidgetProperties; +class CFWL_Edit; +class CFWL_Edit : public CFWL_Widget +{ +public: + static CFWL_Edit* Create(); + FWL_ERR Initialize(const CFWL_WidgetProperties *pProperties = NULL); + FWL_ERR SetText(const CFX_WideString &wsText); + FX_INT32 GetTextLength() const; + FWL_ERR GetText(CFX_WideString &wsText, FX_INT32 nStart = 0, FX_INT32 nCount = -1) const; + FWL_ERR ClearText(); + FX_INT32 GetCaretPos() const; + FX_INT32 SetCaretPos(FX_INT32 nIndex, FX_BOOL bBefore = TRUE); + FWL_ERR AddSelRange(FX_INT32 nStart, FX_INT32 nCount = -1); + FX_INT32 CountSelRanges(); + FX_INT32 GetSelRange(FX_INT32 nIndex, FX_INT32 &nStart); + FWL_ERR ClearSelections(); + FX_INT32 GetLimit(); + FWL_ERR SetLimit(FX_INT32 nLimit); + FWL_ERR SetAliasChar(FX_WCHAR wAlias); + FWL_ERR SetFormatString(const CFX_WideString &wsFormat); + FWL_ERR Insert(FX_INT32 nStart, FX_LPCWSTR lpText, FX_INT32 nLen); + FWL_ERR DeleteSelections(); + FWL_ERR DeleteRange(FX_INT32 nStart, FX_INT32 nCount = -1); + FWL_ERR ReplaceSelections(const CFX_WideStringC &wsReplace); + FWL_ERR Replace(FX_INT32 nStart, FX_INT32 nLen, const CFX_WideStringC &wsReplace); + FWL_ERR DoClipboard(FX_INT32 iCmd); + FX_BOOL Redo(FX_BSTR bsRecord); + FX_BOOL Undo(FX_BSTR bsRecord); + FWL_ERR SetTabWidth(FX_FLOAT fTabWidth, FX_BOOL bEquidistant); + FWL_ERR SetNumberRange(FX_INT32 iMin, FX_INT32 iMax); + FWL_ERR SetBackColor(FX_DWORD dwColor); + FWL_ERR SetFont(const CFX_WideString &wsFont, FX_FLOAT fSize); + FX_BOOL CanUndo(); + FX_BOOL CanRedo(); + FX_BOOL Undo(); + FX_BOOL Redo(); + FX_BOOL Copy(CFX_WideString &wsCopy); + FX_BOOL Cut(CFX_WideString &wsCut); + FX_BOOL Paste(const CFX_WideString &wsPaste); + FX_BOOL Delete(); + void SetScrollOffset(FX_FLOAT fScrollOffset); + FX_BOOL GetSuggestWords(CFX_PointF pointf, CFX_ByteStringArray &sSuggest); + FX_BOOL ReplaceSpellCheckWord(CFX_PointF pointf, FX_BSTR bsReplace); + CFWL_Edit(); + virtual ~CFWL_Edit(); +}; +#endif diff --git a/xfa/include/fwl/lightwidget/listbox.h b/xfa/include/fwl/lightwidget/listbox.h new file mode 100644 index 0000000000..3cb1131e8b --- /dev/null +++ b/xfa/include/fwl/lightwidget/listbox.h @@ -0,0 +1,98 @@ +// 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 _FWL_LISTBOX_LIGHT_H +#define _FWL_LISTBOX_LIGHT_H +class CFWL_Widget; +class CFWL_WidgetProperties; +class IFWL_ListBoxDP; +class CFWL_ListBox; +class CFWL_ListItem; +class CFWL_ListBox : public CFWL_Widget +{ +public: + static CFWL_ListBox* Create(); + FWL_ERR Initialize(const CFWL_WidgetProperties *pProperties = NULL); + FWL_ERR AddDIBitmap(CFX_DIBitmap * pDIB, FWL_HLISTITEM hItem); + FWL_HLISTITEM AddString(FX_WSTR wsAdd, FX_BOOL bSelect = FALSE); + FX_BOOL DeleteString(FWL_HLISTITEM hItem); + FX_BOOL DeleteAll(); + FX_INT32 CountSelItems(); + FWL_HLISTITEM GetSelItem(FX_INT32 nIndexSel); + FX_INT32 GetSelIndex(FX_INT32 nIndex); + FWL_ERR SetSelItem(FWL_HLISTITEM hItem, FX_BOOL bSelect = TRUE); + FWL_ERR GetItemText(FWL_HLISTITEM hItem, CFX_WideString &wsText); + FWL_ERR GetScrollPos(FX_FLOAT &fPos, FX_BOOL bVert = TRUE); + FWL_ERR SetItemHeight(FX_FLOAT fItemHeight); + FWL_HLISTITEM GetFocusItem(); + FWL_ERR SetFocusItem(FWL_HLISTITEM hItem); + FWL_ERR* Sort(IFWL_ListBoxCompare *pCom); + FX_INT32 CountItems(); + FWL_HLISTITEM GetItem(FX_INT32 nIndex); + FWL_ERR SetItemString(FWL_HLISTITEM hItem, FX_WSTR wsText); + FWL_ERR GetItemString(FWL_HLISTITEM hItem, CFX_WideString &wsText); + FWL_ERR SetItemData(FWL_HLISTITEM hItem, FX_LPVOID pData); + FX_LPVOID GetItemData(FWL_HLISTITEM hItem); + FWL_HLISTITEM GetItemAtPoint(FX_FLOAT fx, FX_FLOAT fy); + FX_DWORD GetItemStates(FWL_HLISTITEM hItem); + CFWL_ListBox(); + virtual ~CFWL_ListBox(); +protected: + class CFWL_ListBoxDP : public IFWL_ListBoxDP, public CFX_Object + { + public: + CFWL_ListBoxDP(); + ~CFWL_ListBoxDP(); + virtual FWL_ERR GetCaption(IFWL_Widget *pWidget, CFX_WideString &wsCaption); + + virtual FX_INT32 CountItems(IFWL_Widget *pWidget); + virtual FWL_HLISTITEM GetItem(IFWL_Widget *pWidget, FX_INT32 nIndex); + virtual FX_INT32 GetItemIndex(IFWL_Widget *pWidget, FWL_HLISTITEM hItem); + virtual FX_BOOL SetItemIndex(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, FX_INT32 nIndex); + + virtual FX_DWORD GetItemStyles(IFWL_Widget *pWidget, FWL_HLISTITEM hItem); + virtual FWL_ERR GetItemText(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, CFX_WideString &wsText); + virtual FWL_ERR GetItemRect(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, CFX_RectF &rtItem); + virtual FX_LPVOID GetItemData(IFWL_Widget *pWidget, FWL_HLISTITEM hItem); + + virtual FWL_ERR SetItemStyles(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, FX_DWORD dwStyle); + virtual FWL_ERR SetItemText(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, FX_LPCWSTR pszText); + virtual FWL_ERR SetItemRect(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, const CFX_RectF &rtItem); + virtual FX_FLOAT GetItemHeight(IFWL_Widget *pWidget); + virtual CFX_DIBitmap* GetItemIcon(IFWL_Widget *pWidget, FWL_HLISTITEM hItem); + virtual FWL_ERR GetItemCheckRect(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, CFX_RectF& rtCheck); + virtual FWL_ERR SetItemCheckRect(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, const CFX_RectF& rtCheck); + virtual FX_DWORD GetItemCheckState(IFWL_Widget *pWidget, FWL_HLISTITEM hItem); + virtual FWL_ERR SetItemCheckState(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, FX_DWORD dwCheckState); + + CFX_PtrArray m_arrItem; + CFX_WideString m_wsData; + FX_FLOAT m_fItemHeight; + }; + CFWL_ListBoxDP m_ListBoxDP; +}; +class CFWL_ListItem : public CFX_Object +{ +public: + CFWL_ListItem() + { + m_rtItem.Reset(); + m_dwStates = 0; + m_wsText = L""; + m_pDIB = NULL; + m_pData = NULL; + m_dwCheckState = 0; + m_rtCheckBox.Reset(); + } + CFX_RectF m_rtItem; + FX_DWORD m_dwStates; + CFX_WideString m_wsText; + CFX_DIBitmap *m_pDIB; + FX_LPVOID m_pData; + FX_DWORD m_dwCheckState; + CFX_RectF m_rtCheckBox; +}; +#endif diff --git a/xfa/include/fwl/lightwidget/picturebox.h b/xfa/include/fwl/lightwidget/picturebox.h new file mode 100644 index 0000000000..dd87d6806b --- /dev/null +++ b/xfa/include/fwl/lightwidget/picturebox.h @@ -0,0 +1,65 @@ +// 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 _FWL_PICTUREBOX_LIGHT_H +#define _FWL_PICTUREBOX_LIGHT_H +class CFWL_Widget; +class CFWL_WidgetProperties; +class IFWL_PictureBoxDP; +class CFWL_PictureBox; +class CFWL_PictureBoxDP; +class CFWL_PictureBox : public CFWL_Widget +{ +public: + static CFWL_PictureBox* Create(); + FWL_ERR Initialize(const CFWL_WidgetProperties *pProperties = NULL); + CFX_DIBitmap* GetPicture(); + FWL_ERR SetPicture(CFX_DIBitmap *pBitmap); + FX_FLOAT GetRotation(); + FWL_ERR SetRotation(FX_FLOAT fRotation); + FX_INT32 GetFlipMode(); + FWL_ERR SetFlipMode(FX_INT32 iFlipMode); + FX_INT32 GetOpacity(); + FWL_ERR SetOpacity(FX_INT32 iOpacity); + FWL_ERR GetScale(FX_FLOAT &fScaleX, FX_FLOAT &fScaleY); + FWL_ERR SetScale(FX_FLOAT fScaleX, FX_FLOAT fScaleY); + FWL_ERR GetOffset(FX_FLOAT &fx, FX_FLOAT &fy); + FWL_ERR SetOffset(FX_FLOAT fx, FX_FLOAT fy); + CFWL_PictureBox(); + virtual ~CFWL_PictureBox(); +protected: + class CFWL_PictureBoxDP : public IFWL_PictureBoxDP + { + public: + CFWL_PictureBoxDP() + { + m_fRotation = 0.0f; + m_fScaleX = 1.0f; + m_fScaleY = 1.0f; + m_fOffSetX = 0.0f; + m_fOffSetY = 0.0f; + m_pBitmap = NULL; + }; + virtual FWL_ERR GetCaption(IFWL_Widget *pWidget, CFX_WideString &wsCaption); + virtual CFX_DIBitmap* GetPicture(IFWL_Widget *pWidget); + virtual CFX_DIBitmap* GetErrorPicture(IFWL_Widget *pWidget); + virtual CFX_DIBitmap* GetInitialPicture(IFWL_Widget *pWidget); + virtual FX_INT32 GetOpacity(IFWL_Widget *pWidget); + virtual FX_INT32 GetFlipMode(IFWL_Widget *pWidget); + virtual FWL_ERR GetMatrix(IFWL_Widget *pWidget, CFX_Matrix &matrix); + CFX_DIBitmap *m_pBitmap; + FX_INT32 m_iOpacity; + FX_INT32 m_iFlipMode; + FX_FLOAT m_fRotation; + FX_FLOAT m_fScaleX; + FX_FLOAT m_fScaleY; + FX_FLOAT m_fOffSetX; + FX_FLOAT m_fOffSetY; + CFX_WideString m_wsData; + }; + CFWL_PictureBoxDP m_PictureBoxDP; +}; +#endif diff --git a/xfa/include/fwl/lightwidget/pushbutton.h b/xfa/include/fwl/lightwidget/pushbutton.h new file mode 100644 index 0000000000..a7c2a13cfa --- /dev/null +++ b/xfa/include/fwl/lightwidget/pushbutton.h @@ -0,0 +1,37 @@ +// 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 _FWL_PUSHBUTTON_LIGHT_H +#define _FWL_PUSHBUTTON_LIGHT_H +class CFWL_Widget; +class CFWL_WidgetProperties; +class IFWL_PushButtonDP; +class CFWL_PushButton; +class CFWL_PushButtonDP; +class CFWL_PushButton : public CFWL_Widget +{ +public: + static CFWL_PushButton* Create(); + FWL_ERR Initialize(const CFWL_WidgetProperties *pProperties = NULL); + FWL_ERR GetCaption(CFX_WideString &wsCaption); + FWL_ERR SetCaption(FX_WSTR wsCaption); + CFX_DIBitmap* GetPicture(); + FWL_ERR SetPicture(CFX_DIBitmap *pBitmap); + CFWL_PushButton(); + virtual ~CFWL_PushButton(); +protected: + class CFWL_PushButtonDP : public IFWL_PushButtonDP + { + public: + CFWL_PushButtonDP(): m_pBitmap(NULL) {} + FWL_ERR GetCaption(IFWL_Widget *pWidget, CFX_WideString &wsCaption); + virtual CFX_DIBitmap* GetPicture(IFWL_Widget *pWidget); + CFX_WideString m_wsCaption; + CFX_DIBitmap *m_pBitmap; + }; + CFWL_PushButtonDP m_buttonData; +}; +#endif diff --git a/xfa/include/fwl/lightwidget/scrollbar.h b/xfa/include/fwl/lightwidget/scrollbar.h new file mode 100644 index 0000000000..5aabd56685 --- /dev/null +++ b/xfa/include/fwl/lightwidget/scrollbar.h @@ -0,0 +1,32 @@ +// 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 _FWL_SCROLLBAR_LIGHT_H +#define _FWL_SCROLLBAR_LIGHT_H +class CFWL_Widget; +class CFWL_WidgetProperties; +class CFWL_ScrollBar; +class CFWL_ScrollBar : public CFWL_Widget +{ +public: + static CFWL_ScrollBar* Create(); + FWL_ERR Initialize(const CFWL_WidgetProperties *pProperties = NULL); + FX_BOOL IsVertical(); + FWL_ERR GetRange(FX_FLOAT &fMin, FX_FLOAT &fMax); + FWL_ERR SetRange(FX_FLOAT fMin, FX_FLOAT fMax); + FX_FLOAT GetPageSize(); + FWL_ERR SetPageSize(FX_FLOAT fPageSize); + FX_FLOAT GetStepSize(); + FWL_ERR SetStepSize(FX_FLOAT fStepSize); + FX_FLOAT GetPos(); + FWL_ERR SetPos(FX_FLOAT fPos); + FX_FLOAT GetTrackPos(); + FWL_ERR SetTrackPos(FX_FLOAT fTrackPos); + FX_BOOL DoScroll(FX_DWORD dwCode, FX_FLOAT fPos = 0.0f); + CFWL_ScrollBar(); + virtual ~CFWL_ScrollBar(); +}; +#endif diff --git a/xfa/include/fwl/lightwidget/theme.h b/xfa/include/fwl/lightwidget/theme.h new file mode 100644 index 0000000000..95e4ed16e3 --- /dev/null +++ b/xfa/include/fwl/lightwidget/theme.h @@ -0,0 +1,39 @@ +// 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 _FWL_THEME_LIGHT_H +#define _FWL_THEME_LIGHT_H +class CFWL_ThemeBackground; +class CFWL_ThemeText; +class CFWL_ThemePart; +class CFWL_WidgetTP; +class IFWL_Widget; +class CFWL_Theme; +class CFWL_Theme : public CFX_Object +{ +public: + virtual FX_BOOL IsValidWidget(IFWL_Widget *pWidget); + virtual FX_DWORD GetThemeID(IFWL_Widget *pWidget); + virtual FX_DWORD SetThemeID(IFWL_Widget *pWidget, FX_DWORD dwThemeID, FX_BOOL bChildren = TRUE); + virtual FWL_ERR GetThemeMatrix(IFWL_Widget *pWidget, CFX_Matrix &matrix); + virtual FWL_ERR SetThemeMatrix(IFWL_Widget *pWidget, const CFX_Matrix &matrix); + virtual FX_BOOL DrawBackground(CFWL_ThemeBackground *pParams); + virtual FX_BOOL DrawText(CFWL_ThemeText *pParams); + virtual FX_LPVOID GetCapacity(CFWL_ThemePart *pThemePart, FX_DWORD dwCapacity); + virtual FX_BOOL IsCustomizedLayout(IFWL_Widget *pWidget); + virtual FWL_ERR GetPartRect(CFWL_ThemePart* pThemePart, CFX_RectF &rtPart); + virtual FX_BOOL IsInPart(CFWL_ThemePart* pThemePart, FX_FLOAT fx, FX_FLOAT fy); + virtual FX_BOOL CalcTextRect(CFWL_ThemeText *pParams, CFX_RectF &rect); + virtual FWL_ERR Initialize(); + virtual FWL_ERR Finalize(); + CFWL_Theme(); + virtual ~CFWL_Theme(); + FWL_ERR SetFont(IFWL_Widget *pWidget, FX_LPCWSTR strFont, FX_FLOAT fFontSize, FX_ARGB rgbFont); + CFWL_WidgetTP* GetTheme(IFWL_Widget* pWidget); +protected: + CFX_PtrArray m_arrThemes; +}; +#endif diff --git a/xfa/include/fwl/lightwidget/tooltipctrl.h b/xfa/include/fwl/lightwidget/tooltipctrl.h new file mode 100644 index 0000000000..114696ff13 --- /dev/null +++ b/xfa/include/fwl/lightwidget/tooltipctrl.h @@ -0,0 +1,54 @@ +// 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 _FWL_ToolTip_LIGHT_H +#define _FWL_ToolTip_LIGHT_H +class CFWL_Widget; +class CFWL_WidgetProperties; +class IFWL_ToolTipDP; +class CFWL_ToolTip; +class CFWL_ToolTipDP; +class CFWL_ToolTip : public CFWL_Widget +{ +public: + static CFWL_ToolTip* Create(); + FWL_ERR Initialize(const CFWL_WidgetProperties *pProperties = NULL); + FWL_ERR GetCaption(CFX_WideString &wsCaption); + FWL_ERR SetCaption(FX_WSTR wsCaption); + FX_INT32 GetInitialDelay(); + FX_INT32 SetInitialDelay(FX_INT32 nDelayTime); + FX_INT32 GetAutoPopDelay(); + FX_INT32 SetAutoPopDelay(FX_INT32 nDelayTime); + CFX_DIBitmap* GetToolTipIcon(); + FWL_ERR SetToolTipIcon(CFX_DIBitmap* pBitmap); + CFX_SizeF GetToolTipIconSize(); + FWL_ERR SetToolTipIconSize( CFX_SizeF fSize); + FWL_ERR SetAnchor(const CFX_RectF &rtAnchor); + FWL_ERR Show(); + FWL_ERR Hide(); + CFWL_ToolTip(); + virtual ~CFWL_ToolTip(); +protected: + class CFWL_ToolTipDP : public IFWL_ToolTipDP + { + public: + CFWL_ToolTipDP(); + FWL_ERR GetCaption(IFWL_Widget *pWidget, CFX_WideString &wsCaption); + FX_INT32 GetInitialDelay(IFWL_Widget *pWidget); + FX_INT32 GetAutoPopDelay(IFWL_Widget *pWidget); + CFX_DIBitmap* GetToolTipIcon(IFWL_Widget *pWidget); + CFX_SizeF GetToolTipIconSize(IFWL_Widget *pWidget); + CFX_RectF GetAnchor(); + CFX_WideString m_wsCaption; + FX_INT32 m_nInitDelayTime; + FX_INT32 m_nAutoPopDelayTime; + CFX_DIBitmap* m_pBitmap; + CFX_SizeF m_fIconSize; + CFX_RectF m_fAnchor; + }; + CFWL_ToolTipDP m_tooltipData; +}; +#endif diff --git a/xfa/include/fwl/lightwidget/widget.h b/xfa/include/fwl/lightwidget/widget.h new file mode 100644 index 0000000000..af5bddb5e7 --- /dev/null +++ b/xfa/include/fwl/lightwidget/widget.h @@ -0,0 +1,101 @@ +// 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 _FWL_WIDGET_LIGHT_H +#define _FWL_WIDGET_LIGHT_H +class CFWL_WidgetMgr; +class CFWL_Message; +class CFWL_Event; +class IFWL_WidgetDelegate; +class IFWL_Widget; +class CFWL_Widget; +class CFWL_WidgetDelegate; +class CFWL_WidgetProperties : public CFX_Object +{ +public: + CFWL_WidgetProperties() + { + m_ctmOnParent.Reset(); + m_rtWidget.Set(0, 0, 0, 0); + m_dwStyles = FWL_WGTSTYLE_Child; + m_dwStyleExes = 0; + m_dwStates = 0; + m_pParent = NULL; + m_pOwner = NULL; + } + CFX_WideString m_wsWindowclass; + CFX_Matrix m_ctmOnParent; + CFX_RectF m_rtWidget; + FX_DWORD m_dwStyles; + FX_DWORD m_dwStyleExes; + FX_DWORD m_dwStates; + CFWL_Widget *m_pParent; + CFWL_Widget *m_pOwner; +}; +class CFWL_Widget : public CFX_Object +{ +public: + IFWL_Widget* GetWidget(); + FX_DWORD Release(); + CFWL_Widget* Retain(); + FX_DWORD GetRefCount() const; + FWL_ERR GetClassName(CFX_WideString &wsClass) const; + FX_DWORD GetClassID() const; + virtual FX_BOOL IsInstance(FX_WSTR wsClass) const; +protected: + FWL_ERR Initialize(const CFWL_WidgetProperties *pProperties = NULL); +public: + FWL_ERR GetWidgetRect(CFX_RectF &rect, FX_BOOL bAutoSize = FALSE); + FWL_ERR GetGlobalRect(CFX_RectF &rect); + FWL_ERR SetWidgetRect(const CFX_RectF &rect); + FWL_ERR GetClientRect(CFX_RectF &rtClient); + CFWL_Widget* GetParent(); + FWL_ERR SetParent(CFWL_Widget *pParent); + CFWL_Widget* GetOwner(); + FWL_ERR SetOwner(CFWL_Widget *pOwner); + FX_DWORD GetStyles(); + FWL_ERR ModifyStyles(FX_DWORD dwStylesAdded, FX_DWORD dwStylesRemoved); + FX_DWORD GetStylesEx(); + FWL_ERR ModifyStylesEx(FX_DWORD dwStylesExAdded, FX_DWORD dwStylesExRemoved); + FX_DWORD GetStates(); + FWL_ERR SetStates(FX_DWORD dwStates, FX_BOOL bSet = TRUE); + FWL_ERR SetPrivateData(FX_LPVOID module_id, FX_LPVOID pData, PD_CALLBACK_FREEDATA callback); + FX_LPVOID GetPrivateData(FX_LPVOID module_id); + FWL_ERR Update(); + FWL_ERR LockUpdate(); + FWL_ERR UnlockUpdate(); + FX_DWORD HitTest(FX_FLOAT fx, FX_FLOAT fy); + FWL_ERR TransformTo(CFWL_Widget *pWidget, FX_FLOAT &fx, FX_FLOAT &fy); + FWL_ERR TransformTo(CFWL_Widget *pWidget, CFX_RectF &rt); + FWL_ERR GetMatrix(CFX_Matrix &matrix, FX_BOOL bGlobal = FALSE); + FWL_ERR SetMatrix(const CFX_Matrix &matrix); + FWL_ERR DrawWidget(CFX_Graphics *pGraphics, const CFX_Matrix *pMatrix = NULL); + FWL_ERR GetProperties(CFWL_WidgetProperties &properties); + FWL_ERR SetProperties(const CFWL_WidgetProperties &properties); + IFWL_WidgetDelegate* SetDelegate(IFWL_WidgetDelegate* pDelegate); + FWL_ERR Repaint(const CFX_RectF *pRect = NULL); + FWL_ERR SetFocus(FX_BOOL bFocus); + FWL_ERR SetGrab(FX_BOOL bSet); + CFWL_Widget(); + virtual ~CFWL_Widget(); + void RegisterEventTarget(CFWL_Widget *pEventSource = NULL, FX_DWORD dwFilter = FWL_EVENT_ALL_MASK); + void DispatchEvent(CFWL_Event *pEvent); + CFX_SizeF CalcTextSize(const CFX_WideString &wsText, FX_BOOL bMultiLine = FALSE, FX_INT32 iLineWidth = -1); + IFWL_Widget *m_pImp; + IFWL_WidgetDelegate *m_pDelegate; + CFWL_WidgetMgr *m_pWidgetMgr; + CFWL_WidgetProperties *m_pProperties; +}; +class CFWL_WidgetDelegate : public CFX_Object, public IFWL_WidgetDelegate +{ +public: + CFWL_WidgetDelegate(); + virtual ~CFWL_WidgetDelegate(); + virtual FX_INT32 OnProcessMessage(CFWL_Message *pMessage); + virtual FWL_ERR OnProcessEvent(CFWL_Event *pEvent); + virtual FWL_ERR OnDrawWidget(CFX_Graphics *pGraphics, const CFX_Matrix *pMatrix = NULL); +}; +#endif -- cgit v1.2.3