1e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov// Copyright 2014 PDFium Authors. All rights reserved. 2e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov// Use of this source code is governed by a BSD-style license that can be 3e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov// found in the LICENSE file. 4ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 5e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 74d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#ifndef FPDFSDK_PDFWINDOW_PWL_WND_H_ 84d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#define FPDFSDK_PDFWINDOW_PWL_WND_H_ 9e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 104d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include <memory> 114d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include <vector> 124d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 134d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "core/fpdfdoc/cpdf_formcontrol.h" 144d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "core/fxcrt/cfx_observable.h" 154d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "core/fxcrt/fx_basic.h" 164d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "fpdfsdk/cfx_systemhandler.h" 174d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "fpdfsdk/cpdfsdk_widget.h" 184d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "fpdfsdk/pdfwindow/cpwl_color.h" 19e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 20e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovclass CPWL_MsgControl; 21e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovclass CPWL_ScrollBar; 22e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovclass CPWL_Timer; 23e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovclass CPWL_TimerHandler; 24e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovclass CPWL_Wnd; 254d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CFX_SystemHandler; 264d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass IPVT_FontMap; 27e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovclass IPWL_Provider; 28e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 29ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// window styles 30ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWS_CHILD 0x80000000L 31ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWS_BORDER 0x40000000L 32ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWS_BACKGROUND 0x20000000L 33ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWS_HSCROLL 0x10000000L 34ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWS_VSCROLL 0x08000000L 35ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWS_VISIBLE 0x04000000L 36ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWS_DISABLE 0x02000000L 37ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWS_READONLY 0x01000000L 38ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWS_AUTOFONTSIZE 0x00800000L 39ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWS_AUTOTRANSPARENT 0x00400000L 40ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWS_NOREFRESHCLIP 0x00200000L 41ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 42ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// edit and label styles 43ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PES_MULTILINE 0x0001L 44ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PES_PASSWORD 0x0002L 45ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PES_LEFT 0x0004L 46ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PES_RIGHT 0x0008L 47ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PES_MIDDLE 0x0010L 48ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PES_TOP 0x0020L 49ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PES_BOTTOM 0x0040L 50ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PES_CENTER 0x0080L 51ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PES_CHARARRAY 0x0100L 52ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PES_AUTOSCROLL 0x0200L 53ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PES_AUTORETURN 0x0400L 54ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PES_UNDO 0x0800L 55ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PES_RICH 0x1000L 56ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PES_SPELLCHECK 0x2000L 57ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PES_TEXTOVERFLOW 0x4000L 58ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PES_NOREAD 0x8000L 59ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 60ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// listbox styles 61ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PLBS_MULTIPLESEL 0x0001L 62ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PLBS_HOVERSEL 0x0008L 63ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 64ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// combobox styles 65ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PCBS_ALLOWCUSTOMTEXT 0x0001L 66ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 67ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// richedit styles 68ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PRES_MULTILINE 0x0001L 69ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PRES_AUTORETURN 0x0002L 70ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PRES_AUTOSCROLL 0x0004L 71ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PRES_UNDO 0x0100L 72ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PRES_MULTIPAGES 0x0200L 73ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PRES_TEXTOVERFLOW 0x0400L 74ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 75ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann// notification messages 76ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PNM_ADDCHILD 0x00000000L 77ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PNM_REMOVECHILD 0x00000001L 78ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PNM_SETSCROLLINFO 0x00000002L 79ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PNM_SETSCROLLPOS 0x00000003L 80ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PNM_SCROLLWINDOW 0x00000004L 81ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PNM_LBUTTONDOWN 0x00000005L 82ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PNM_LBUTTONUP 0x00000006L 83ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PNM_MOUSEMOVE 0x00000007L 84ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PNM_NOTERESET 0x00000008L 85ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PNM_SETCARETINFO 0x00000009L 86ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PNM_SELCHANGED 0x0000000AL 87ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PNM_NOTEEDITCHANGED 0x0000000BL 88ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 89ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWL_CLASSNAME_EDIT "CPWL_Edit" 90ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 91ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannstruct CPWL_Dash { 924d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPWL_Dash() : nDash(0), nGap(0), nPhase(0) {} 93ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPWL_Dash(int32_t dash, int32_t gap, int32_t phase) 94ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann : nDash(dash), nGap(gap), nPhase(phase) {} 95ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 964d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void Reset() { 974d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann nDash = 0; 984d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann nGap = 0; 994d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann nPhase = 0; 1004d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann } 1014d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 102ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t nDash; 103ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t nGap; 104ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t nPhase; 105e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 106e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1074d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmanninline bool operator==(const CPWL_Color& c1, const CPWL_Color& c2) { 108ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return c1.nColorType == c2.nColorType && c1.fColor1 - c2.fColor1 < 0.0001 && 109ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann c1.fColor1 - c2.fColor1 > -0.0001 && 110ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann c1.fColor2 - c2.fColor2 < 0.0001 && 111ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann c1.fColor2 - c2.fColor2 > -0.0001 && 112ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann c1.fColor3 - c2.fColor3 < 0.0001 && 113ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann c1.fColor3 - c2.fColor3 > -0.0001 && 114ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann c1.fColor4 - c2.fColor4 < 0.0001 && c1.fColor4 - c2.fColor4 > -0.0001; 115e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov} 116e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1174d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmanninline bool operator!=(const CPWL_Color& c1, const CPWL_Color& c2) { 1184d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann return !(c1 == c2); 119e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov} 120e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 121ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWL_SCROLLBAR_WIDTH 12.0f 122ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWL_SCROLLBAR_BUTTON_WIDTH 9.0f 123ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWL_SCROLLBAR_POSBUTTON_MINWIDTH 2.0f 1245ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann#define PWL_SCROLLBAR_TRANSPARENCY 150 125ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWL_SCROLLBAR_BKCOLOR \ 126ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPWL_Color(COLORTYPE_RGB, 220.0f / 255.0f, 220.0f / 255.0f, 220.0f / 255.0f) 127ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWL_DEFAULT_SELTEXTCOLOR CPWL_Color(COLORTYPE_RGB, 1, 1, 1) 128ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWL_DEFAULT_SELBACKCOLOR \ 129ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPWL_Color(COLORTYPE_RGB, 0, 51.0f / 255.0f, 113.0f / 255.0f) 130ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWL_DEFAULT_BACKCOLOR PWL_DEFAULT_SELTEXTCOLOR 131ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWL_DEFAULT_TEXTCOLOR CPWL_Color(COLORTYPE_RGB, 0, 0, 0) 132ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWL_DEFAULT_FONTSIZE 9.0f 133ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWL_DEFAULT_BLACKCOLOR CPWL_Color(COLORTYPE_GRAY, 0) 134ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWL_DEFAULT_WHITECOLOR CPWL_Color(COLORTYPE_GRAY, 1) 135ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWL_DEFAULT_HEAVYGRAYCOLOR CPWL_Color(COLORTYPE_GRAY, 0.50) 136ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWL_DEFAULT_LIGHTGRAYCOLOR CPWL_Color(COLORTYPE_GRAY, 0.75) 137ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWL_TRIANGLE_HALFLEN 2.0f 138ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWL_CBBUTTON_TRIANGLE_HALFLEN 3.0f 139ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PWL_INVALIDATE_INFLATE 2 140ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1414d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass IPWL_Provider : public CFX_Observable<IPWL_Provider> { 142ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 143ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual ~IPWL_Provider() {} 144ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 145ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann // get a matrix which map user space to CWnd client space 146ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual CFX_Matrix GetWindowMatrix(void* pAttachedData) = 0; 147ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 148ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann /* 149ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 0 L"&Undo\tCtrl+Z" 150ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1 L"&Redo\tCtrl+Shift+Z" 151ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 2 L"Cu&t\tCtrl+X" 152ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 3 L"&Copy\tCtrl+C" 153ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 4 L"&Paste\tCtrl+V" 154ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 5 L"&Delete" 155ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 6 L"&Select All\tCtrl+A" 156ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann */ 157ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual CFX_WideString LoadPopupMenuString(int32_t nIndex) = 0; 158e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 159e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 160ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass IPWL_FocusHandler { 161ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 162ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual ~IPWL_FocusHandler() {} 163ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual void OnSetFocus(CPWL_Wnd* pWnd) = 0; 164e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 165e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 166ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannstruct PWL_CREATEPARAM { 167ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 1684d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann PWL_CREATEPARAM(); 1694d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann PWL_CREATEPARAM(const PWL_CREATEPARAM& other); 1704d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1714d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void Reset() { 1724d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann rcRectWnd.Reset(); 1734d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann pSystemHandler = nullptr; 1744d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann pFontMap = nullptr; 1754d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann pProvider.Reset(); 1764d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann pFocusHandler = nullptr; 1774d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann dwFlags = 0; 1784d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann sBackgroundColor.Reset(); 1794d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann pAttachedWidget.Reset(); 1804d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann nBorderStyle = BorderStyle::SOLID; 1814d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann dwBorderWidth = 0; 1824d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann sBorderColor.Reset(); 1834d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann sTextColor.Reset(); 1844d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann nTransparency = 0; 1854d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann fFontSize = 0.0f; 1864d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann sDash.Reset(); 1874d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann pAttachedData = nullptr; 1884d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann pParentWnd = nullptr; 1894d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann pMsgControl = nullptr; 1904d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann eCursorType = 0; 1914d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann mtChild.SetIdentity(); 1924d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann } 1934d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 1944d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_FloatRect rcRectWnd; // required 1954d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_SystemHandler* pSystemHandler; // required 1964d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann IPVT_FontMap* pFontMap; // required 1974d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann IPWL_Provider::ObservedPtr pProvider; // required 198ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IPWL_FocusHandler* pFocusHandler; // optional 1994d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann uint32_t dwFlags; // optional 200ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPWL_Color sBackgroundColor; // optional 2014d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPDFSDK_Widget::ObservedPtr pAttachedWidget; // required 2024d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann BorderStyle nBorderStyle; // optional 203ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t dwBorderWidth; // optional 204ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPWL_Color sBorderColor; // optional 205ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPWL_Color sTextColor; // optional 206ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t nTransparency; // optional 207ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT fFontSize; // optional 208ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPWL_Dash sDash; // optional 209ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void* pAttachedData; // optional 210ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPWL_Wnd* pParentWnd; // ignore 211ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPWL_MsgControl* pMsgControl; // ignore 212ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t eCursorType; // ignore 213ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_Matrix mtChild; // ignore 214e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 215e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 216ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPWL_Timer { 217ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 2184d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CPWL_Timer(CPWL_TimerHandler* pAttached, CFX_SystemHandler* pSystemHandler); 219ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual ~CPWL_Timer(); 220e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 221ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t SetPWLTimer(int32_t nElapse); 222ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void KillPWLTimer(); 223ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann static void TimerProc(int32_t idEvent); 224e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 225ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann private: 226ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t m_nTimerID; 227ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPWL_TimerHandler* m_pAttached; 2284d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_SystemHandler* m_pSystemHandler; 229e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 230e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 231ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPWL_TimerHandler { 232ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 233ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPWL_TimerHandler(); 234ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual ~CPWL_TimerHandler(); 235e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 236ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void BeginTimer(int32_t nElapse); 237ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void EndTimer(); 238ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual void TimerProc(); 2394d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann virtual CFX_SystemHandler* GetSystemHandler() const = 0; 240e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 241ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann private: 2424d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann std::unique_ptr<CPWL_Timer> m_pTimer; 243e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 244e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 245ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPWL_Wnd : public CPWL_TimerHandler { 246ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 247ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPWL_Wnd(); 248ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ~CPWL_Wnd() override; 249ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 250ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual CFX_ByteString GetClassName() const; 2514d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann virtual void InvalidateRect(CFX_FloatRect* pRect = nullptr); 252ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 2534d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann virtual bool OnKeyDown(uint16_t nChar, uint32_t nFlag); 2544d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann virtual bool OnChar(uint16_t nChar, uint32_t nFlag); 2555ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann virtual bool OnLButtonDblClk(const CFX_PointF& point, uint32_t nFlag); 2565ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann virtual bool OnLButtonDown(const CFX_PointF& point, uint32_t nFlag); 2575ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann virtual bool OnLButtonUp(const CFX_PointF& point, uint32_t nFlag); 2585ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann virtual bool OnRButtonDown(const CFX_PointF& point, uint32_t nFlag); 2595ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann virtual bool OnRButtonUp(const CFX_PointF& point, uint32_t nFlag); 2605ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann virtual bool OnMouseMove(const CFX_PointF& point, uint32_t nFlag); 2614d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann virtual bool OnMouseWheel(short zDelta, 2625ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann const CFX_PointF& point, 2634d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann uint32_t nFlag); 264ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual void OnNotify(CPWL_Wnd* pWnd, 2654d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann uint32_t msg, 266ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann intptr_t wParam = 0, 267ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann intptr_t lParam = 0); 2685ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann virtual void SetFocus(); 2695ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann virtual void KillFocus(); 2705ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann virtual void SetCursor(); 2714d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann virtual void SetVisible(bool bVisible); 2725ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann virtual void SetFontSize(FX_FLOAT fFontSize); 2735ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann virtual FX_FLOAT GetFontSize() const; 274ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 2754d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann virtual CFX_FloatRect GetFocusRect() const; 2765ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann virtual CFX_FloatRect GetClientRect() const; 277ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 2785ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann void InvalidateFocusHandler(IPWL_FocusHandler* handler); 2795ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann void InvalidateProvider(IPWL_Provider* provider); 2805ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann void Create(const PWL_CREATEPARAM& cp); 2815ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann void Destroy(); 2825ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann void Move(const CFX_FloatRect& rcNew, bool bReset, bool bRefresh); 2835ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann 2845ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann void SetCapture(); 2855ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann void ReleaseCapture(); 2865ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann 2875ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann void DrawAppearance(CFX_RenderDevice* pDevice, CFX_Matrix* pUser2Device); 288ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 2895ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann CPWL_Color GetBackgroundColor() const; 290ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void SetBackgroundColor(const CPWL_Color& color); 2915ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann CPWL_Color GetBorderColor() const; 2925ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann CPWL_Color GetTextColor() const; 2935ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann void SetTextColor(const CPWL_Color& color); 2945ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann CPWL_Color GetBorderLeftTopColor(BorderStyle nBorderStyle) const; 2955ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann CPWL_Color GetBorderRightBottomColor(BorderStyle nBorderStyle) const; 2965ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann 2974d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void SetBorderStyle(BorderStyle eBorderStyle); 2985ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann BorderStyle GetBorderStyle() const; 2995ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann const CPWL_Dash& GetBorderDash() const; 300ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 301ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t GetBorderWidth() const; 3025ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann int32_t GetInnerBorderWidth() const; 3035ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann CFX_FloatRect GetWindowRect() const; 3045ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann CFX_PointF GetCenterPoint() const; 3055ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann 3064d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsVisible() const { return m_bVisible; } 3074d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool HasFlag(uint32_t dwFlags) const; 3084d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void AddFlag(uint32_t dwFlags); 3094d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void RemoveFlag(uint32_t dwFlags); 3105ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann 3115ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann void SetClipRect(const CFX_FloatRect& rect); 3124d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const CFX_FloatRect& GetClipRect() const; 3135ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann 314ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPWL_Wnd* GetParentWindow() const; 315ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void* GetAttachedData() const; 316ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 3175ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann bool WndHitTest(const CFX_PointF& point) const; 3185ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann bool ClientHitTest(const CFX_PointF& point) const; 3194d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsCaptureMouse() const; 320ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 3215ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann void EnableWindow(bool bEnable); 3225ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann bool IsEnabled() const { return m_bEnabled; } 323ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CPWL_Wnd* GetFocused() const; 3244d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsFocused() const; 3254d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsReadOnly() const; 326ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPWL_ScrollBar* GetVScrollBar() const; 327ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 3284d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann IPVT_FontMap* GetFontMap() const; 329ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IPWL_Provider* GetProvider() const; 330ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann IPWL_FocusHandler* GetFocusHandler() const; 331ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 332ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t GetTransparency(); 333ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void SetTransparency(int32_t nTransparency); 334ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 335ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_Matrix GetChildToRoot() const; 336ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_Matrix GetChildMatrix() const; 337ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void SetChildMatrix(const CFX_Matrix& mt); 338ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_Matrix GetWindowMatrix() const; 339ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 340ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann protected: 3415ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann friend class CPWL_MsgControl; 3425ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann 343ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann // CPWL_TimerHandler 3444d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_SystemHandler* GetSystemHandler() const override; 345ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 346ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual void CreateChildWnd(const PWL_CREATEPARAM& cp); 347ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual void RePosChildWnd(); 348ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual void GetThisAppearanceStream(CFX_ByteTextBuf& sAppStream); 349ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 350ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual void DrawThisAppearance(CFX_RenderDevice* pDevice, 351ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_Matrix* pUser2Device); 352ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 353ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual void OnCreate(PWL_CREATEPARAM& cp); 354ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual void OnCreated(); 355ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual void OnDestroy(); 356ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 357ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual void OnSetFocus(); 358ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual void OnKillFocus(); 359ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 3605ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann void GetAppearanceStream(CFX_ByteTextBuf& sAppStream); 3614d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void SetNotifyFlag(bool bNotifying = true) { m_bNotifying = bNotifying; } 362ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 3634d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsValid() const; 364ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const PWL_CREATEPARAM& GetCreationParam() const; 3654d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsNotifying() const { return m_bNotifying; } 366ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 3674d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void InvalidateRectMove(const CFX_FloatRect& rcOld, 3684d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann const CFX_FloatRect& rcNew); 369ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 3704d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsWndCaptureMouse(const CPWL_Wnd* pWnd) const; 3714d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsWndCaptureKeyboard(const CPWL_Wnd* pWnd) const; 372ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CPWL_Wnd* GetRootWnd() const; 373ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 3744d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsCTRLpressed(uint32_t nFlag) const; 3754d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsSHIFTpressed(uint32_t nFlag) const; 3764d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool IsALTpressed(uint32_t nFlag) const; 377ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 378ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann private: 3795ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann CFX_PointF ParentToChild(const CFX_PointF& point) const; 3805ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann CFX_FloatRect ParentToChild(const CFX_FloatRect& rect) const; 3815ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann 3825ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann void GetChildAppearanceStream(CFX_ByteTextBuf& sAppStream); 3835ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann void DrawChildAppearance(CFX_RenderDevice* pDevice, CFX_Matrix* pUser2Device); 3845ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann 3855ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann FX_RECT PWLtoWnd(const CFX_FloatRect& rect) const; 3865ae9d0c6fd838a2967cca72aa5751b51dadc2769Philip P. Moltmann 387ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void AddChild(CPWL_Wnd* pWnd); 388ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void RemoveChild(CPWL_Wnd* pWnd); 389ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 390ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void CreateScrollBar(const PWL_CREATEPARAM& cp); 391ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void CreateVScrollBar(const PWL_CREATEPARAM& cp); 392ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 393ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void AdjustStyle(); 394ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void CreateMsgControl(); 395ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void DestroyMsgControl(); 396ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 397ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPWL_MsgControl* GetMsgControl() const; 398ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 3994d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann std::vector<CPWL_Wnd*> m_Children; 400ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann PWL_CREATEPARAM m_sPrivateParam; 401ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPWL_ScrollBar* m_pVScrollBar; 4024d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_FloatRect m_rcWindow; 4034d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CFX_FloatRect m_rcClip; 4044d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool m_bCreated; 4054d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool m_bVisible; 4064d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool m_bNotifying; 4074d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool m_bEnabled; 408e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 409e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 4104d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#endif // FPDFSDK_PDFWINDOW_PWL_WND_H_ 411