| // 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 _PWL_COMBOBOX_H_ | |
| #define _PWL_COMBOBOX_H_ | |
| class CPWL_CBEdit : public CPWL_Edit | |
| { | |
| public: | |
| CPWL_CBEdit(){}; | |
| virtual ~CPWL_CBEdit(){}; | |
| }; | |
| class PWL_CLASS CPWL_CBListBox : public CPWL_ListBox | |
| { | |
| public: | |
| CPWL_CBListBox(){}; | |
| virtual ~CPWL_CBListBox(){}; | |
| public: | |
| virtual FX_BOOL OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag); | |
| virtual FX_BOOL OnKeyDown(FX_WORD nChar, FX_BOOL & bExit, FX_DWORD nFlag); | |
| virtual FX_BOOL OnChar(FX_WORD nChar, FX_BOOL & bExit, FX_DWORD nFlag); | |
| }; | |
| #define PWL_COMBOBOX_BUTTON_WIDTH 13 | |
| class CPWL_CBButton : public CPWL_Wnd | |
| { | |
| public: | |
| CPWL_CBButton(){}; | |
| virtual ~CPWL_CBButton(){}; | |
| public: | |
| virtual void GetThisAppearanceStream(CFX_ByteTextBuf & sAppStream); | |
| virtual void DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device); | |
| virtual FX_BOOL OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag); | |
| virtual FX_BOOL OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag); | |
| }; | |
| class PWL_CLASS CPWL_ComboBox : public CPWL_Wnd | |
| { | |
| public: | |
| CPWL_ComboBox(); | |
| operator CPWL_Edit* () {return m_pEdit;} | |
| public: | |
| virtual CFX_ByteString GetClassName() const; | |
| virtual void OnCreate(PWL_CREATEPARAM & cp); | |
| virtual FX_BOOL OnKeyDown(FX_WORD nChar, FX_DWORD nFlag); | |
| virtual FX_BOOL OnChar(FX_WORD nChar, FX_DWORD nFlag); | |
| virtual void OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, FX_INTPTR wParam = 0, FX_INTPTR lParam = 0); | |
| virtual void CreateChildWnd(const PWL_CREATEPARAM & cp); | |
| virtual void RePosChildWnd(); | |
| virtual CPDF_Rect GetFocusRect() const; | |
| virtual void SetFocus(); | |
| virtual void KillFocus(); | |
| FX_BOOL IsModified() const; | |
| public: | |
| void SetFillerNotify(IPWL_Filler_Notify* pNotify); | |
| CFX_WideString GetText() const; | |
| void SetText(FX_LPCWSTR text); | |
| void AddString(FX_LPCWSTR string); | |
| FX_INT32 GetSelect() const; | |
| void SetSelect(FX_INT32 nItemIndex); | |
| void SetEditSel(FX_INT32 nStartChar,FX_INT32 nEndChar); | |
| void GetEditSel(FX_INT32 & nStartChar, FX_INT32 & nEndChar ) const; | |
| void Clear(); | |
| void SelectAll(); | |
| FX_BOOL IsPopup() const; | |
| void SetSelectText(); | |
| private: | |
| void CreateEdit(const PWL_CREATEPARAM & cp); | |
| void CreateButton(const PWL_CREATEPARAM & cp); | |
| void CreateListBox(const PWL_CREATEPARAM & cp); | |
| void SetPopup(FX_BOOL bPopup); | |
| private: | |
| CPWL_CBEdit* m_pEdit; | |
| CPWL_CBButton* m_pButton; | |
| CPWL_CBListBox* m_pList; | |
| FX_BOOL m_bPopup; | |
| CPDF_Rect m_rcOldWindow; | |
| FX_INT32 m_nPopupWhere; | |
| FX_INT32 m_nSelectItem; | |
| IPWL_Filler_Notify* m_pFillerNotify; | |
| public: | |
| void AttachFFLData(void* pData) {m_pFormFiller = pData;} | |
| private: | |
| void* m_pFormFiller; | |
| }; | |
| #endif // !defined(AFX_PWL_COMBOBOX_H__9D6645F8_64AA_4806_94E8_95FDEDD39C17__INCLUDED_) | |