1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Copyright 2014 PDFium Authors. All rights reserved. 2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Use of this source code is governed by a BSD-style license that can be 3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// found in the LICENSE file. 4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef _PWL_COMBOBOX_H_ 8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define _PWL_COMBOBOX_H_ 9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovclass CPWL_CBEdit : public CPWL_Edit 11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic: 13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CPWL_CBEdit(){}; 14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual ~CPWL_CBEdit(){}; 15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}; 16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovclass PWL_CLASS CPWL_CBListBox : public CPWL_ListBox 18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic: 20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CPWL_CBListBox(){}; 21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual ~CPWL_CBListBox(){}; 22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic: 24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual FX_BOOL OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag); 25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual FX_BOOL OnKeyDown(FX_WORD nChar, FX_BOOL & bExit, FX_DWORD nFlag); 27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual FX_BOOL OnChar(FX_WORD nChar, FX_BOOL & bExit, FX_DWORD nFlag); 28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}; 29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define PWL_COMBOBOX_BUTTON_WIDTH 13 31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovclass CPWL_CBButton : public CPWL_Wnd 33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic: 35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CPWL_CBButton(){}; 36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual ~CPWL_CBButton(){}; 37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic: 39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual void GetThisAppearanceStream(CFX_ByteTextBuf & sAppStream); 40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual void DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device); 41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual FX_BOOL OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag); 43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual FX_BOOL OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag); 44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}; 46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovclass PWL_CLASS CPWL_ComboBox : public CPWL_Wnd 48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic: 50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CPWL_ComboBox(); 51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov operator CPWL_Edit* () {return m_pEdit;} 52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic: 54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual CFX_ByteString GetClassName() const; 55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual void OnCreate(PWL_CREATEPARAM & cp); 56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual FX_BOOL OnKeyDown(FX_WORD nChar, FX_DWORD nFlag); 58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual FX_BOOL OnChar(FX_WORD nChar, FX_DWORD nFlag); 59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual void OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, FX_INTPTR wParam = 0, FX_INTPTR lParam = 0); 61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual void CreateChildWnd(const PWL_CREATEPARAM & cp); 63ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual void RePosChildWnd(); 64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual CPDF_Rect GetFocusRect() const; 66ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual void SetFocus(); 68ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual void KillFocus(); 69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_BOOL IsModified() const; 71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic: 73ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov void SetFillerNotify(IPWL_Filler_Notify* pNotify); 74ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 75ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFX_WideString GetText() const; 76ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov void SetText(FX_LPCWSTR text); 77ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 78ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov void AddString(FX_LPCWSTR string); 79ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_INT32 GetSelect() const; 80ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov void SetSelect(FX_INT32 nItemIndex); 81ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 82ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov void SetEditSel(FX_INT32 nStartChar,FX_INT32 nEndChar); 83ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov void GetEditSel(FX_INT32 & nStartChar, FX_INT32 & nEndChar ) const; 84ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov void Clear(); 85ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov void SelectAll(); 86ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_BOOL IsPopup() const; 87ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 88ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov void SetSelectText(); 89ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 90ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovprivate: 91ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov void CreateEdit(const PWL_CREATEPARAM & cp); 92ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov void CreateButton(const PWL_CREATEPARAM & cp); 93ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov void CreateListBox(const PWL_CREATEPARAM & cp); 94ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 95ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov void SetPopup(FX_BOOL bPopup); 96ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 97ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovprivate: 98ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CPWL_CBEdit* m_pEdit; 99ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CPWL_CBButton* m_pButton; 100ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CPWL_CBListBox* m_pList; 101ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 102ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_BOOL m_bPopup; 103ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CPDF_Rect m_rcOldWindow; 104ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_INT32 m_nPopupWhere; 105ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_INT32 m_nSelectItem; 106ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov IPWL_Filler_Notify* m_pFillerNotify; 107ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 108ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic: 109ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov void AttachFFLData(void* pData) {m_pFormFiller = pData;} 110ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovprivate: 111ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov void* m_pFormFiller; 112ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}; 113ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 114ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif // !defined(AFX_PWL_COMBOBOX_H__9D6645F8_64AA_4806_94E8_95FDEDD39C17__INCLUDED_) 115ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 116