FX Bool considered harmful, part 3
[pdfium.git] / fpdfsdk / include / pdfwindow / PWL_ComboBox.h
index f64b636..21d4e4a 100644 (file)
-// Copyright 2014 PDFium Authors. All rights reserved.\r
-// Use of this source code is governed by a BSD-style license that can be\r
-// found in the LICENSE file.\r
\r
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com\r
-\r
-#ifndef _PWL_COMBOBOX_H_\r
-#define _PWL_COMBOBOX_H_\r
-\r
-class CPWL_CBEdit : public CPWL_Edit\r
-{\r
-public:\r
-       CPWL_CBEdit(){};\r
-       virtual ~CPWL_CBEdit(){};\r
-};\r
-\r
-class PWL_CLASS CPWL_CBListBox : public CPWL_ListBox\r
-{\r
-public:\r
-       CPWL_CBListBox(){};\r
-       virtual ~CPWL_CBListBox(){};\r
-\r
-public:\r
-       virtual FX_BOOL                         OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag);\r
-\r
-       virtual FX_BOOL                         OnKeyDown(FX_WORD nChar, FX_BOOL & bExit, FX_DWORD nFlag);\r
-       virtual FX_BOOL                         OnChar(FX_WORD nChar, FX_BOOL & bExit, FX_DWORD nFlag);\r
-};\r
-\r
-#define PWL_COMBOBOX_BUTTON_WIDTH              13\r
-\r
-class CPWL_CBButton : public CPWL_Wnd\r
-{\r
-public:\r
-       CPWL_CBButton(){};\r
-       virtual ~CPWL_CBButton(){};\r
-\r
-public:\r
-       virtual void                            GetThisAppearanceStream(CFX_ByteTextBuf & sAppStream);\r
-       virtual void                            DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device);\r
-\r
-       virtual FX_BOOL                         OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag);\r
-       virtual FX_BOOL                         OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag);\r
-\r
-};\r
-\r
-class PWL_CLASS CPWL_ComboBox : public CPWL_Wnd  \r
-{\r
-public:\r
-       CPWL_ComboBox();\r
-       operator CPWL_Edit* ()          {return m_pEdit;}\r
-\r
-public:\r
-       virtual CFX_ByteString          GetClassName() const;\r
-       virtual void                            OnCreate(PWL_CREATEPARAM & cp);\r
-\r
-       virtual FX_BOOL                         OnKeyDown(FX_WORD nChar, FX_DWORD nFlag);       \r
-       virtual FX_BOOL                         OnChar(FX_WORD nChar, FX_DWORD nFlag);\r
-\r
-       virtual void                            OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, FX_INTPTR wParam = 0, FX_INTPTR lParam = 0);\r
-\r
-       virtual void                            CreateChildWnd(const PWL_CREATEPARAM & cp);\r
-       virtual void                            RePosChildWnd();\r
-\r
-       virtual CPDF_Rect                       GetFocusRect() const;\r
-       \r
-       virtual void                            SetFocus();\r
-       virtual void                            KillFocus();\r
-\r
-       FX_BOOL                                         IsModified() const;\r
-\r
-public:        \r
-       void                                            SetFillerNotify(IPWL_Filler_Notify* pNotify);\r
-\r
-       CFX_WideString                          GetText() const;\r
-       void                                            SetText(FX_LPCWSTR text);\r
-\r
-       void                                            AddString(FX_LPCWSTR string);\r
-       FX_INT32                                        GetSelect() const;\r
-       void                                            SetSelect(FX_INT32 nItemIndex);\r
-\r
-       void                                            SetEditSel(FX_INT32 nStartChar,FX_INT32 nEndChar);\r
-       void                                            GetEditSel(FX_INT32 & nStartChar, FX_INT32 & nEndChar ) const;\r
-       void                                            Clear();\r
-       void                                            SelectAll();\r
-       FX_BOOL                                         IsPopup() const;\r
-\r
-       void                                            SetSelectText();\r
-\r
-private:       \r
-       void                                            CreateEdit(const PWL_CREATEPARAM & cp);\r
-       void                                            CreateButton(const PWL_CREATEPARAM & cp);\r
-       void                                            CreateListBox(const PWL_CREATEPARAM & cp);\r
-\r
-       void                                            SetPopup(FX_BOOL bPopup);\r
-       \r
-private:\r
-       CPWL_CBEdit*                            m_pEdit;\r
-       CPWL_CBButton*                          m_pButton;\r
-       CPWL_CBListBox*                         m_pList;\r
-\r
-       FX_BOOL                                         m_bPopup;\r
-       CPDF_Rect                                       m_rcOldWindow;\r
-       FX_INT32                                        m_nPopupWhere;\r
-       FX_INT32                                        m_nSelectItem;\r
-       IPWL_Filler_Notify*                     m_pFillerNotify;\r
-\r
-public:\r
-       void                                                    AttachFFLData(void* pData) {m_pFormFiller = pData;}\r
-private:\r
-       void*                                                   m_pFormFiller;\r
-};\r
-\r
-#endif // !defined(AFX_PWL_COMBOBOX_H__9D6645F8_64AA_4806_94E8_95FDEDD39C17__INCLUDED_)\r
-\r
+// 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 FPDFSDK_INCLUDE_PDFWINDOW_PWL_COMBOBOX_H_
+#define FPDFSDK_INCLUDE_PDFWINDOW_PWL_COMBOBOX_H_
+
+#include "PWL_Edit.h"
+#include "PWL_ListBox.h"
+#include "PWL_Wnd.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 bool                            OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag);
+
+       bool                            OnKeyDownWithExit(FX_WORD nChar, bool & bExit, FX_DWORD nFlag);
+       bool                            OnCharWithExit(FX_WORD nChar, 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 bool                            OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag);
+       virtual 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 bool                            OnKeyDown(FX_WORD nChar, FX_DWORD nFlag);
+       virtual bool                            OnChar(FX_WORD nChar, FX_DWORD nFlag);
+
+       virtual void                            OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, intptr_t wParam = 0, intptr_t lParam = 0);
+
+       virtual void                            CreateChildWnd(const PWL_CREATEPARAM & cp);
+       virtual void                            RePosChildWnd();
+
+       virtual CPDF_Rect                       GetFocusRect() const;
+
+       virtual void                            SetFocus();
+       virtual void                            KillFocus();
+
+       bool                                            IsModified() const;
+
+public:
+       void                                            SetFillerNotify(IPWL_Filler_Notify* pNotify);
+
+       CFX_WideString                          GetText() const;
+       void                                            SetText(const FX_WCHAR* text);
+
+       void                                            AddString(const FX_WCHAR* string);
+       int32_t                                 GetSelect() const;
+       void                                            SetSelect(int32_t nItemIndex);
+
+       void                                            SetEditSel(int32_t nStartChar,int32_t nEndChar);
+       void                                            GetEditSel(int32_t & nStartChar, int32_t & nEndChar ) const;
+       void                                            Clear();
+       void                                            SelectAll();
+       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(bool bPopup);
+
+private:
+       CPWL_CBEdit*                            m_pEdit;
+       CPWL_CBButton*                          m_pButton;
+       CPWL_CBListBox*                         m_pList;
+
+       bool                                            m_bPopup;
+       CPDF_Rect                                       m_rcOldWindow;
+       int32_t                                 m_nPopupWhere;
+       int32_t                                 m_nSelectItem;
+       IPWL_Filler_Notify*                     m_pFillerNotify;
+
+public:
+       void                                                    AttachFFLData(void* pData) {m_pFormFiller = pData;}
+private:
+       void*                                                   m_pFormFiller;
+};
+
+#endif  // FPDFSDK_INCLUDE_PDFWINDOW_PWL_COMBOBOX_H_