Index: xfa/include/fwl/core/fwl_note.h |
diff --git a/xfa/include/fwl/core/fwl_note.h b/xfa/include/fwl/core/fwl_note.h |
index bd230d28cc827416770f40dab3d4cd37626c49a4..ef869272637fb425cbfe44a75c1656681b48b199 100644 |
--- a/xfa/include/fwl/core/fwl_note.h |
+++ b/xfa/include/fwl/core/fwl_note.h |
@@ -1,376 +1,376 @@ |
-// 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_NOTE_H |
-#define _FWL_NOTE_H |
-class IFWL_Target; |
-class IFWL_Widget; |
-class IFWL_NoteThread; |
-class IFWL_ThemeProvider; |
-class CFWL_Note; |
-class CFWL_Message; |
-class CFWL_MsgActivate; |
-class CFWL_MsgDeactivate; |
-class CFWL_MsgMouse; |
-class CFWL_MsgMouseWheel; |
-class CFWL_MsgKey; |
-class CFWL_MsgSetFocus; |
-class CFWL_MsgKillFocus; |
-class CFWL_MsgCursor; |
-class CFWL_MsgSize; |
-class CFWL_MsgWindowMove; |
-class CFWL_MsgDropFiles; |
-class CFWL_MsgTaskClicked; |
-class CFWL_MsgClose; |
-class CFWL_MsgWindowWillMove; |
-class CFWL_Event; |
-class CFWL_EvtMouse; |
-class CFWL_EvtMouseWheel; |
-class CFWL_EvtKey; |
-class CFWL_EvtSetFocus; |
-class CFWL_EvtKillFocus; |
-class CFWL_EvtDraw; |
-class CFWL_EvtClick; |
-class CFWL_EvtScroll; |
-class CFWL_EvtClose; |
-class CFWL_EvtContextMenu; |
-class CFWL_EvtMenuCommand; |
-class CFWL_EvtSizeChanged; |
-class CFWL_EvtIdle; |
-class IFWL_NoteDriver; |
-class IFWL_NoteLoop; |
-#define FWL_MSG_Activate L"FWL_MESSAGE_Activate" |
-#define FWL_MSG_Deactivate L"FWL_MESSAGE_Deactivate" |
-#define FWL_MSG_SetFocus L"FWL_MESSAGE_SetFocus" |
-#define FWL_MSG_KillFocus L"FWL_MESSAGE_KillFocus" |
-#define FWL_MSG_Mouse L"FWL_MESSAGE_Mouse" |
-#define FWL_MSG_MouseWheel L"FWL_MESSAGE_MouseWheel" |
-#define FWL_MSG_Key L"FWL_MESSAGE_Key" |
-#define FWL_MSG_Cursor L"FWL_MESSAGE_Cursor" |
-#define FWL_MSG_Size L"FWL_MESSAGE_Size" |
-#define FWL_MSG_WindowMove L"FWL_MESSAGE_WindowMove" |
-#define FWL_MSG_DropFiles L"FWL_MESSAGE_DropFiles" |
-#define FWL_MSG_TaskClicked L"FWL_MESSAGE_TaskClicked" |
-#define FWL_MSG_Close L"FWL_MESSAGE_Close" |
-#define FWL_MSG_Post L"FWL_MESSAGE_Post" |
-#define FWL_MSG_WindowWillMove L"FWL_MESSAGE_WindowWillMove" |
-#define FWL_MSGHASH_Activate 2410369469 |
-#define FWL_MSGHASH_Deactivate 1184214790 |
-#define FWL_MSGHASH_SetFocus 4174512504 |
-#define FWL_MSGHASH_KillFocus 1557903832 |
-#define FWL_MSGHASH_Mouse 706128309 |
-#define FWL_MSGHASH_MouseWheel 893703466 |
-#define FWL_MSGHASH_Key 3751372405 |
-#define FWL_MSGHASH_Cursor 3182626218 |
-#define FWL_MSGHASH_Size 160077735 |
-#define FWL_MSGHASH_WindowMove 1032269377 |
-#define FWL_MSGHASH_DropFiles 2004165236 |
-#define FWL_MSGHASH_TaskClicked 3128231086 |
-#define FWL_MSGHASH_Close 2977563906 |
-#define FWL_MSGHASH_Post 1969633074 |
-#define FWL_MSGHASH_WindowWillMove 2229175763 |
-#define FWL_EVT_Mouse L"FWL_EVENT_Mouse" |
-#define FWL_EVT_MouseWheel L"FWL_EVENT_MouseWheel" |
-#define FWL_EVT_Key L"FWL_EVENT_Key" |
-#define FWL_EVT_SetFocus L"FWL_EVENT_SetFocus" |
-#define FWL_EVT_KillFocus L"FWL_EVENT_KillFocus" |
-#define FWL_EVT_Click L"FWL_EVENT_Click" |
-#define FWL_EVT_Draw L"FWL_EVENT_Draw" |
-#define FWL_EVT_Scroll L"FWL_EVENT_Scroll" |
-#define FWL_EVT_Close L"FWL_EVENT_Close" |
-#define FWL_EVT_ContextMenu L"FWL_EVENT_ContextMenu" |
-#define FWL_EVT_MenuCommand L"FWL_EVENT_MenuCommand" |
-#define FWL_EVT_SizeChanged L"FWL_EVENT_SizeChanged" |
-#define FWL_EVTHASH_Mouse 1765258002 |
-#define FWL_EVTHASH_MouseWheel 3907114407 |
-#define FWL_EVTHASH_Key 2408354450 |
-#define FWL_EVTHASH_SetFocus 3909721269 |
-#define FWL_EVTHASH_KillFocus 1779363253 |
-#define FWL_EVTHASH_Draw 2430713303 |
-#define FWL_EVTHASH_Click 4026328783 |
-#define FWL_EVTHASH_Scroll 2965158968 |
-#define FWL_EVTHASH_Close 4036693599 |
-#define FWL_EVTHASH_ContextMenu 2717307715 |
-#define FWL_EVTHASH_MenuCommand 497763741 |
-#define FWL_EVTHASH_SizeChanged 3083958510 |
-#define FWL_EVTHASH_Idle 839546759 |
-#define FWL_MSGMOUSECMD_LButtonDown 1 |
-#define FWL_MSGMOUSECMD_LButtonUp 2 |
-#define FWL_MSGMOUSECMD_LButtonDblClk 3 |
-#define FWL_MSGMOUSECMD_RButtonDown 4 |
-#define FWL_MSGMOUSECMD_RButtonUp 5 |
-#define FWL_MSGMOUSECMD_RButtonDblClk 6 |
-#define FWL_MSGMOUSECMD_MButtonDown 7 |
-#define FWL_MSGMOUSECMD_MButtonUp 8 |
-#define FWL_MSGMOUSECMD_MButtonDblClk 9 |
-#define FWL_MSGMOUSECMD_MouseMove 10 |
-#define FWL_MSGMOUSECMD_MouseEnter 11 |
-#define FWL_MSGMOUSECMD_MouseLeave 12 |
-#define FWL_MSGMOUSECMD_MouseHover 13 |
-#define FWL_MSGKEYCMD_KeyDown 1 |
-#define FWL_MSGKEYCMD_KeyUp 2 |
-#define FWL_MSGKEYCMD_Char 3 |
-#define FWL_KEYFLAG_Ctrl (1 << 0) |
-#define FWL_KEYFLAG_Alt (1 << 1) |
-#define FWL_KEYFLAG_Shift (1 << 2) |
-#define FWL_KEYFLAG_Command (1 << 3) |
-#define FWL_KEYFLAG_LButton (1 << 4) |
-#define FWL_KEYFLAG_RButton (1 << 5) |
-#define FWL_KEYFLAG_MButton (1 << 6) |
- |
-// Separate hierarchy not related to IFWL_* hierarchy. These should not |
-// get cast to IFWL_* types. |
-class CFWL_Note { |
- public: |
- virtual FX_DWORD Release() { |
- m_dwRefCount--; |
- FX_DWORD dwRefCount = m_dwRefCount; |
- if (!m_dwRefCount) { |
- delete this; |
- } |
- return dwRefCount; |
- } |
- virtual CFWL_Note* Retain() { |
- m_dwRefCount++; |
- return this; |
- } |
- virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const { |
- wsClass = L"CFWL_Note"; |
- return FWL_ERR_Succeeded; |
- } |
- virtual FX_DWORD GetClassID() const { return 0; } |
- virtual FX_BOOL IsInstance(const CFX_WideStringC& wsClass) const { |
- return TRUE; |
- } |
- virtual CFWL_Note* Clone() { return NULL; } |
- FX_BOOL IsEvent() const { return m_bIsEvent; } |
- IFWL_Widget* m_pSrcTarget; |
- IFWL_Widget* m_pDstTarget; |
- |
- protected: |
- CFWL_Note(FX_BOOL bIsEvent) |
- : m_pSrcTarget(NULL), |
- m_pDstTarget(NULL), |
- m_dwRefCount(1), |
- m_bIsEvent(bIsEvent), |
- m_dwExtend(0) {} |
- virtual ~CFWL_Note() {} |
- virtual FX_BOOL Initialize() { return TRUE; } |
- virtual int32_t Finalize() { return 0; } |
- FX_DWORD m_dwRefCount; |
- FX_BOOL m_bIsEvent; |
- |
- public: |
- FX_DWORD m_dwExtend; |
-}; |
-class CFWL_Message : public CFWL_Note { |
- public: |
- CFWL_Message() : CFWL_Note(FALSE) {} |
- virtual ~CFWL_Message() {} |
-}; |
-#define BEGIN_FWL_MESSAGE_DEF(classname, msghashcode) \ |
- class classname : public CFWL_Message { \ |
- public: \ |
- classname() : CFWL_Message() {} \ |
- virtual CFWL_Note* Clone() { return new classname(*this); } \ |
- virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const { \ |
- wsClass = L## #classname; \ |
- return FWL_ERR_Succeeded; \ |
- } \ |
- virtual FX_DWORD GetClassID() const { return msghashcode; } |
-#define END_FWL_MESSAGE_DEF \ |
- } \ |
- ; |
-BEGIN_FWL_MESSAGE_DEF(CFWL_MsgActivate, FWL_MSGHASH_Activate) |
-END_FWL_MESSAGE_DEF |
-BEGIN_FWL_MESSAGE_DEF(CFWL_MsgDeactivate, FWL_MSGHASH_Deactivate) |
-END_FWL_MESSAGE_DEF |
-BEGIN_FWL_MESSAGE_DEF(CFWL_MsgMouse, FWL_MSGHASH_Mouse) |
-FX_FLOAT m_fx; |
-FX_FLOAT m_fy; |
-FX_DWORD m_dwFlags; |
-FX_DWORD m_dwCmd; |
-END_FWL_MESSAGE_DEF |
-BEGIN_FWL_MESSAGE_DEF(CFWL_MsgMouseWheel, FWL_MSGHASH_MouseWheel) |
-FX_FLOAT m_fx; |
-FX_FLOAT m_fy; |
-FX_FLOAT m_fDeltaX; |
-FX_FLOAT m_fDeltaY; |
-FX_DWORD m_dwFlags; |
-END_FWL_MESSAGE_DEF |
-BEGIN_FWL_MESSAGE_DEF(CFWL_MsgSetFocus, FWL_MSGHASH_SetFocus) |
-IFWL_Widget* m_pKillFocus; |
-END_FWL_MESSAGE_DEF |
-BEGIN_FWL_MESSAGE_DEF(CFWL_MsgKillFocus, FWL_MSGHASH_KillFocus) |
-IFWL_Widget* m_pSetFocus; |
-END_FWL_MESSAGE_DEF |
-BEGIN_FWL_MESSAGE_DEF(CFWL_MsgKey, FWL_MSGHASH_Key) |
-FX_DWORD m_dwKeyCode; |
-FX_DWORD m_dwFlags; |
-FX_DWORD m_dwCmd; |
-END_FWL_MESSAGE_DEF |
-BEGIN_FWL_MESSAGE_DEF(CFWL_MsgCursor, FWL_MSGHASH_Cursor) |
-END_FWL_MESSAGE_DEF |
-BEGIN_FWL_MESSAGE_DEF(CFWL_MsgSize, FWL_MSGHASH_Size) |
-int32_t m_iWidth; |
-int32_t m_iHeight; |
-END_FWL_MESSAGE_DEF |
-BEGIN_FWL_MESSAGE_DEF(CFWL_MsgWindowMove, FWL_MSGHASH_WindowMove) |
-FX_FLOAT m_fx; |
-FX_FLOAT m_fy; |
-END_FWL_MESSAGE_DEF |
-BEGIN_FWL_MESSAGE_DEF(CFWL_MsgDropFiles, FWL_MSGHASH_DropFiles) |
-CFWL_MsgDropFiles(const CFWL_MsgDropFiles& copy) { |
- m_pDstTarget = copy.m_pDstTarget; |
- m_pSrcTarget = copy.m_pSrcTarget; |
- m_fx = copy.m_fx; |
- m_fy = copy.m_fy; |
- m_files.Append(copy.m_files); |
-} |
-FX_FLOAT m_fx; |
-FX_FLOAT m_fy; |
-CFX_WideStringArray m_files; |
-END_FWL_MESSAGE_DEF |
-BEGIN_FWL_MESSAGE_DEF(CFWL_MsgTaskClicked, FWL_MSGHASH_TaskClicked) |
-FX_FLOAT m_fx; |
-FX_FLOAT m_fy; |
-END_FWL_MESSAGE_DEF |
-BEGIN_FWL_MESSAGE_DEF(CFWL_MsgClose, FWL_MSGHASH_Close) |
-END_FWL_MESSAGE_DEF |
-BEGIN_FWL_MESSAGE_DEF(CFWL_MsgWindowWillMove, FWL_MSGHASH_WindowWillMove) |
-END_FWL_MESSAGE_DEF |
-class CFWL_Event : public CFWL_Note { |
- public: |
- CFWL_Event() : CFWL_Note(TRUE) {} |
- virtual ~CFWL_Event() {} |
-}; |
-#define BEGIN_FWL_EVENT_DEF(classname, eventhashcode) \ |
- class classname : public CFWL_Event { \ |
- public: \ |
- classname() : CFWL_Event() {} \ |
- virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const { \ |
- wsClass = L## #classname; \ |
- return FWL_ERR_Succeeded; \ |
- } \ |
- virtual FX_DWORD GetClassID() const { return eventhashcode; } |
-#define END_FWL_EVENT_DEF \ |
- } \ |
- ; |
-BEGIN_FWL_EVENT_DEF(CFWL_EvtMouse, FWL_EVTHASH_Mouse) |
-FX_FLOAT m_fx; |
-FX_FLOAT m_fy; |
-FX_DWORD m_dwFlags; |
-FX_DWORD m_dwCmd; |
-END_FWL_EVENT_DEF |
-BEGIN_FWL_EVENT_DEF(CFWL_EvtMouseWheel, FWL_EVTHASH_MouseWheel) |
-FX_FLOAT m_fx; |
-FX_FLOAT m_fy; |
-FX_FLOAT m_fDeltaX; |
-FX_FLOAT m_fDeltaY; |
-FX_DWORD m_dwFlags; |
-END_FWL_EVENT_DEF |
-BEGIN_FWL_EVENT_DEF(CFWL_EvtKey, FWL_EVTHASH_Key) |
-FX_DWORD m_dwKeyCode; |
-FX_DWORD m_dwFlags; |
-FX_DWORD m_dwCmd; |
-END_FWL_EVENT_DEF |
-BEGIN_FWL_EVENT_DEF(CFWL_EvtSetFocus, FWL_EVTHASH_SetFocus) |
-IFWL_Widget* m_pSetFocus; |
-END_FWL_EVENT_DEF |
-BEGIN_FWL_EVENT_DEF(CFWL_EvtKillFocus, FWL_EVTHASH_KillFocus) |
-IFWL_Widget* m_pKillFocus; |
-END_FWL_EVENT_DEF |
-BEGIN_FWL_EVENT_DEF(CFWL_EvtDraw, FWL_EVTHASH_Draw) |
-CFX_Graphics* m_pGraphics; |
-IFWL_Widget* m_pWidget; |
-END_FWL_EVENT_DEF |
-BEGIN_FWL_EVENT_DEF(CFWL_EvtClick, FWL_EVTHASH_Click) |
-END_FWL_EVENT_DEF |
-BEGIN_FWL_EVENT_DEF(CFWL_EvtScroll, FWL_EVTHASH_Scroll) |
-FX_DWORD m_iScrollCode; |
-FX_FLOAT m_fPos; |
-FX_BOOL* m_pRet; |
-END_FWL_EVENT_DEF |
-BEGIN_FWL_EVENT_DEF(CFWL_EvtClose, FWL_EVTHASH_Close) |
-END_FWL_EVENT_DEF |
-BEGIN_FWL_EVENT_DEF(CFWL_EvtContextMenu, FWL_EVTHASH_ContextMenu) |
-FX_FLOAT m_fPosX; |
-FX_FLOAT m_fPosY; |
-IFWL_Widget* m_pOwner; |
-END_FWL_EVENT_DEF |
-BEGIN_FWL_EVENT_DEF(CFWL_EvtMenuCommand, FWL_EVTHASH_MenuCommand) |
-int32_t m_iCommand; |
-void* m_pData; |
-END_FWL_EVENT_DEF |
-BEGIN_FWL_EVENT_DEF(CFWL_EvtSizeChanged, FWL_EVTHASH_SizeChanged) |
-IFWL_Widget* m_pWidget; |
-CFX_RectF m_rtOld; |
-CFX_RectF m_rtNew; |
-END_FWL_MESSAGE_DEF |
-BEGIN_FWL_EVENT_DEF(CFWL_EvtIdle, FWL_EVTHASH_Idle) |
-END_FWL_EVENT_DEF |
-typedef enum { |
- FWL_EVENT_MOUSE_MASK = 1 << 0, |
- FWL_EVENT_MOUSEWHEEL_MASK = 1 << 1, |
- FWL_EVENT_KEY_MASK = 1 << 2, |
- FWL_EVENT_FOCUSCHANGED_MASK = 1 << 3, |
- FWL_EVENT_DRAW_MASK = 1 << 4, |
- FWL_EVENT_CLOSE_MASK = 1 << 5, |
- FWL_EVENT_SIZECHANGED_MASK = 1 << 6, |
- FWL_EVENT_IDLE_MASK = 1 << 7, |
- FWL_EVENT_CONTROL_MASK = 1 << 8, |
- FWL_EVENT_ALL_MASK = 0xFF |
-} FWLEventMask; |
-class IFWL_NoteDriver { |
- public: |
- virtual ~IFWL_NoteDriver() {} |
- virtual FX_BOOL SendNote(CFWL_Note* pNote) = 0; |
- virtual FX_BOOL PostMessage(CFWL_Message* pMessage) = 0; |
- virtual FWL_ERR RegisterEventTarget( |
- IFWL_Widget* pListener, |
- IFWL_Widget* pEventSource = NULL, |
- FX_DWORD dwFilter = FWL_EVENT_ALL_MASK) = 0; |
- virtual FWL_ERR UnregisterEventTarget(IFWL_Widget* pListener) = 0; |
- virtual void ClearEventTargets(FX_BOOL bRemoveAll) = 0; |
- virtual int32_t GetQueueMaxSize() const = 0; |
- virtual FWL_ERR SetQueueMaxSize(const int32_t size) = 0; |
- virtual IFWL_NoteThread* GetOwnerThread() const = 0; |
- virtual FWL_ERR PushNoteLoop(IFWL_NoteLoop* pNoteLoop) = 0; |
- virtual IFWL_NoteLoop* PopNoteLoop() = 0; |
- virtual IFWL_Widget* GetFocus() = 0; |
- virtual FX_BOOL SetFocus(IFWL_Widget* pFocus, FX_BOOL bNotify = FALSE) = 0; |
- virtual void SetGrab(IFWL_Widget* pGrab, FX_BOOL bSet) = 0; |
- virtual FWL_ERR Run() = 0; |
-}; |
-IFWL_Widget* FWL_GetCurrentThreadModalWidget(IFWL_NoteThread* pNoteThread); |
-class IFWL_NoteLoop { |
- public: |
- virtual ~IFWL_NoteLoop() {} |
- virtual FX_BOOL PreProcessMessage(CFWL_Message* pMessage) = 0; |
- virtual FWL_ERR Idle(int32_t count) = 0; |
-}; |
-class IFWL_ToolTipTarget { |
- public: |
- virtual ~IFWL_ToolTipTarget() {} |
- virtual IFWL_Widget* GetWidget() = 0; |
- virtual FX_BOOL IsShowed() = 0; |
- virtual FWL_ERR DrawToolTip(CFX_Graphics* pGraphics, |
- const CFX_Matrix* pMatrix, |
- IFWL_Widget* pToolTip) = 0; |
- virtual FX_BOOL UseDefaultTheme() = 0; |
- virtual FWL_ERR GetCaption(CFX_WideString& wsCaption) = 0; |
- virtual FWL_ERR GetToolTipSize(CFX_SizeF& sz) = 0; |
- virtual FWL_ERR GetToolTipPos(CFX_PointF& pt) { return FWL_ERR_Indefinite; } |
-}; |
-FWL_ERR FWL_AddToolTipTarget(IFWL_ToolTipTarget* pTarget); |
-FWL_ERR FWL_RemoveToolTipTarget(IFWL_ToolTipTarget* pTarget); |
-FWL_ERR FWL_SetToolTipInitialDelay(int32_t iDelayTime); |
-FWL_ERR FWL_SetToolTipAutoPopDelay(int32_t iDelayTime); |
-typedef FX_BOOL (*FWLMessageHookCallback)(CFWL_Message* msg, void* info); |
-FWL_ERR FWL_SetHook(IFWL_NoteDriver* driver, |
- FWLMessageHookCallback callback, |
- void* info); |
-#endif |
+// 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_NOTE_H |
+#define _FWL_NOTE_H |
+class IFWL_Target; |
+class IFWL_Widget; |
+class IFWL_NoteThread; |
+class IFWL_ThemeProvider; |
+class CFWL_Note; |
+class CFWL_Message; |
+class CFWL_MsgActivate; |
+class CFWL_MsgDeactivate; |
+class CFWL_MsgMouse; |
+class CFWL_MsgMouseWheel; |
+class CFWL_MsgKey; |
+class CFWL_MsgSetFocus; |
+class CFWL_MsgKillFocus; |
+class CFWL_MsgCursor; |
+class CFWL_MsgSize; |
+class CFWL_MsgWindowMove; |
+class CFWL_MsgDropFiles; |
+class CFWL_MsgTaskClicked; |
+class CFWL_MsgClose; |
+class CFWL_MsgWindowWillMove; |
+class CFWL_Event; |
+class CFWL_EvtMouse; |
+class CFWL_EvtMouseWheel; |
+class CFWL_EvtKey; |
+class CFWL_EvtSetFocus; |
+class CFWL_EvtKillFocus; |
+class CFWL_EvtDraw; |
+class CFWL_EvtClick; |
+class CFWL_EvtScroll; |
+class CFWL_EvtClose; |
+class CFWL_EvtContextMenu; |
+class CFWL_EvtMenuCommand; |
+class CFWL_EvtSizeChanged; |
+class CFWL_EvtIdle; |
+class IFWL_NoteDriver; |
+class IFWL_NoteLoop; |
+#define FWL_MSG_Activate L"FWL_MESSAGE_Activate" |
+#define FWL_MSG_Deactivate L"FWL_MESSAGE_Deactivate" |
+#define FWL_MSG_SetFocus L"FWL_MESSAGE_SetFocus" |
+#define FWL_MSG_KillFocus L"FWL_MESSAGE_KillFocus" |
+#define FWL_MSG_Mouse L"FWL_MESSAGE_Mouse" |
+#define FWL_MSG_MouseWheel L"FWL_MESSAGE_MouseWheel" |
+#define FWL_MSG_Key L"FWL_MESSAGE_Key" |
+#define FWL_MSG_Cursor L"FWL_MESSAGE_Cursor" |
+#define FWL_MSG_Size L"FWL_MESSAGE_Size" |
+#define FWL_MSG_WindowMove L"FWL_MESSAGE_WindowMove" |
+#define FWL_MSG_DropFiles L"FWL_MESSAGE_DropFiles" |
+#define FWL_MSG_TaskClicked L"FWL_MESSAGE_TaskClicked" |
+#define FWL_MSG_Close L"FWL_MESSAGE_Close" |
+#define FWL_MSG_Post L"FWL_MESSAGE_Post" |
+#define FWL_MSG_WindowWillMove L"FWL_MESSAGE_WindowWillMove" |
+#define FWL_MSGHASH_Activate 2410369469 |
+#define FWL_MSGHASH_Deactivate 1184214790 |
+#define FWL_MSGHASH_SetFocus 4174512504 |
+#define FWL_MSGHASH_KillFocus 1557903832 |
+#define FWL_MSGHASH_Mouse 706128309 |
+#define FWL_MSGHASH_MouseWheel 893703466 |
+#define FWL_MSGHASH_Key 3751372405 |
+#define FWL_MSGHASH_Cursor 3182626218 |
+#define FWL_MSGHASH_Size 160077735 |
+#define FWL_MSGHASH_WindowMove 1032269377 |
+#define FWL_MSGHASH_DropFiles 2004165236 |
+#define FWL_MSGHASH_TaskClicked 3128231086 |
+#define FWL_MSGHASH_Close 2977563906 |
+#define FWL_MSGHASH_Post 1969633074 |
+#define FWL_MSGHASH_WindowWillMove 2229175763 |
+#define FWL_EVT_Mouse L"FWL_EVENT_Mouse" |
+#define FWL_EVT_MouseWheel L"FWL_EVENT_MouseWheel" |
+#define FWL_EVT_Key L"FWL_EVENT_Key" |
+#define FWL_EVT_SetFocus L"FWL_EVENT_SetFocus" |
+#define FWL_EVT_KillFocus L"FWL_EVENT_KillFocus" |
+#define FWL_EVT_Click L"FWL_EVENT_Click" |
+#define FWL_EVT_Draw L"FWL_EVENT_Draw" |
+#define FWL_EVT_Scroll L"FWL_EVENT_Scroll" |
+#define FWL_EVT_Close L"FWL_EVENT_Close" |
+#define FWL_EVT_ContextMenu L"FWL_EVENT_ContextMenu" |
+#define FWL_EVT_MenuCommand L"FWL_EVENT_MenuCommand" |
+#define FWL_EVT_SizeChanged L"FWL_EVENT_SizeChanged" |
+#define FWL_EVTHASH_Mouse 1765258002 |
+#define FWL_EVTHASH_MouseWheel 3907114407 |
+#define FWL_EVTHASH_Key 2408354450 |
+#define FWL_EVTHASH_SetFocus 3909721269 |
+#define FWL_EVTHASH_KillFocus 1779363253 |
+#define FWL_EVTHASH_Draw 2430713303 |
+#define FWL_EVTHASH_Click 4026328783 |
+#define FWL_EVTHASH_Scroll 2965158968 |
+#define FWL_EVTHASH_Close 4036693599 |
+#define FWL_EVTHASH_ContextMenu 2717307715 |
+#define FWL_EVTHASH_MenuCommand 497763741 |
+#define FWL_EVTHASH_SizeChanged 3083958510 |
+#define FWL_EVTHASH_Idle 839546759 |
+#define FWL_MSGMOUSECMD_LButtonDown 1 |
+#define FWL_MSGMOUSECMD_LButtonUp 2 |
+#define FWL_MSGMOUSECMD_LButtonDblClk 3 |
+#define FWL_MSGMOUSECMD_RButtonDown 4 |
+#define FWL_MSGMOUSECMD_RButtonUp 5 |
+#define FWL_MSGMOUSECMD_RButtonDblClk 6 |
+#define FWL_MSGMOUSECMD_MButtonDown 7 |
+#define FWL_MSGMOUSECMD_MButtonUp 8 |
+#define FWL_MSGMOUSECMD_MButtonDblClk 9 |
+#define FWL_MSGMOUSECMD_MouseMove 10 |
+#define FWL_MSGMOUSECMD_MouseEnter 11 |
+#define FWL_MSGMOUSECMD_MouseLeave 12 |
+#define FWL_MSGMOUSECMD_MouseHover 13 |
+#define FWL_MSGKEYCMD_KeyDown 1 |
+#define FWL_MSGKEYCMD_KeyUp 2 |
+#define FWL_MSGKEYCMD_Char 3 |
+#define FWL_KEYFLAG_Ctrl (1 << 0) |
+#define FWL_KEYFLAG_Alt (1 << 1) |
+#define FWL_KEYFLAG_Shift (1 << 2) |
+#define FWL_KEYFLAG_Command (1 << 3) |
+#define FWL_KEYFLAG_LButton (1 << 4) |
+#define FWL_KEYFLAG_RButton (1 << 5) |
+#define FWL_KEYFLAG_MButton (1 << 6) |
+ |
+// Separate hierarchy not related to IFWL_* hierarchy. These should not |
+// get cast to IFWL_* types. |
+class CFWL_Note { |
+ public: |
+ virtual FX_DWORD Release() { |
+ m_dwRefCount--; |
+ FX_DWORD dwRefCount = m_dwRefCount; |
+ if (!m_dwRefCount) { |
+ delete this; |
+ } |
+ return dwRefCount; |
+ } |
+ virtual CFWL_Note* Retain() { |
+ m_dwRefCount++; |
+ return this; |
+ } |
+ virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const { |
+ wsClass = L"CFWL_Note"; |
+ return FWL_ERR_Succeeded; |
+ } |
+ virtual FX_DWORD GetClassID() const { return 0; } |
+ virtual FX_BOOL IsInstance(const CFX_WideStringC& wsClass) const { |
+ return TRUE; |
+ } |
+ virtual CFWL_Note* Clone() { return NULL; } |
+ FX_BOOL IsEvent() const { return m_bIsEvent; } |
+ IFWL_Widget* m_pSrcTarget; |
+ IFWL_Widget* m_pDstTarget; |
+ |
+ protected: |
+ CFWL_Note(FX_BOOL bIsEvent) |
+ : m_pSrcTarget(NULL), |
+ m_pDstTarget(NULL), |
+ m_dwRefCount(1), |
+ m_bIsEvent(bIsEvent), |
+ m_dwExtend(0) {} |
+ virtual ~CFWL_Note() {} |
+ virtual FX_BOOL Initialize() { return TRUE; } |
+ virtual int32_t Finalize() { return 0; } |
+ FX_DWORD m_dwRefCount; |
+ FX_BOOL m_bIsEvent; |
+ |
+ public: |
+ FX_DWORD m_dwExtend; |
+}; |
+class CFWL_Message : public CFWL_Note { |
+ public: |
+ CFWL_Message() : CFWL_Note(FALSE) {} |
+ virtual ~CFWL_Message() {} |
+}; |
+#define BEGIN_FWL_MESSAGE_DEF(classname, msghashcode) \ |
+ class classname : public CFWL_Message { \ |
+ public: \ |
+ classname() : CFWL_Message() {} \ |
+ virtual CFWL_Note* Clone() { return new classname(*this); } \ |
+ virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const { \ |
+ wsClass = L## #classname; \ |
+ return FWL_ERR_Succeeded; \ |
+ } \ |
+ virtual FX_DWORD GetClassID() const { return msghashcode; } |
+#define END_FWL_MESSAGE_DEF \ |
+ } \ |
+ ; |
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgActivate, FWL_MSGHASH_Activate) |
+END_FWL_MESSAGE_DEF |
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgDeactivate, FWL_MSGHASH_Deactivate) |
+END_FWL_MESSAGE_DEF |
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgMouse, FWL_MSGHASH_Mouse) |
+FX_FLOAT m_fx; |
+FX_FLOAT m_fy; |
+FX_DWORD m_dwFlags; |
+FX_DWORD m_dwCmd; |
+END_FWL_MESSAGE_DEF |
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgMouseWheel, FWL_MSGHASH_MouseWheel) |
+FX_FLOAT m_fx; |
+FX_FLOAT m_fy; |
+FX_FLOAT m_fDeltaX; |
+FX_FLOAT m_fDeltaY; |
+FX_DWORD m_dwFlags; |
+END_FWL_MESSAGE_DEF |
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgSetFocus, FWL_MSGHASH_SetFocus) |
+IFWL_Widget* m_pKillFocus; |
+END_FWL_MESSAGE_DEF |
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgKillFocus, FWL_MSGHASH_KillFocus) |
+IFWL_Widget* m_pSetFocus; |
+END_FWL_MESSAGE_DEF |
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgKey, FWL_MSGHASH_Key) |
+FX_DWORD m_dwKeyCode; |
+FX_DWORD m_dwFlags; |
+FX_DWORD m_dwCmd; |
+END_FWL_MESSAGE_DEF |
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgCursor, FWL_MSGHASH_Cursor) |
+END_FWL_MESSAGE_DEF |
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgSize, FWL_MSGHASH_Size) |
+int32_t m_iWidth; |
+int32_t m_iHeight; |
+END_FWL_MESSAGE_DEF |
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgWindowMove, FWL_MSGHASH_WindowMove) |
+FX_FLOAT m_fx; |
+FX_FLOAT m_fy; |
+END_FWL_MESSAGE_DEF |
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgDropFiles, FWL_MSGHASH_DropFiles) |
+CFWL_MsgDropFiles(const CFWL_MsgDropFiles& copy) { |
+ m_pDstTarget = copy.m_pDstTarget; |
+ m_pSrcTarget = copy.m_pSrcTarget; |
+ m_fx = copy.m_fx; |
+ m_fy = copy.m_fy; |
+ m_files.Append(copy.m_files); |
+} |
+FX_FLOAT m_fx; |
+FX_FLOAT m_fy; |
+CFX_WideStringArray m_files; |
+END_FWL_MESSAGE_DEF |
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgTaskClicked, FWL_MSGHASH_TaskClicked) |
+FX_FLOAT m_fx; |
+FX_FLOAT m_fy; |
+END_FWL_MESSAGE_DEF |
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgClose, FWL_MSGHASH_Close) |
+END_FWL_MESSAGE_DEF |
+BEGIN_FWL_MESSAGE_DEF(CFWL_MsgWindowWillMove, FWL_MSGHASH_WindowWillMove) |
+END_FWL_MESSAGE_DEF |
+class CFWL_Event : public CFWL_Note { |
+ public: |
+ CFWL_Event() : CFWL_Note(TRUE) {} |
+ virtual ~CFWL_Event() {} |
+}; |
+#define BEGIN_FWL_EVENT_DEF(classname, eventhashcode) \ |
+ class classname : public CFWL_Event { \ |
+ public: \ |
+ classname() : CFWL_Event() {} \ |
+ virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const { \ |
+ wsClass = L## #classname; \ |
+ return FWL_ERR_Succeeded; \ |
+ } \ |
+ virtual FX_DWORD GetClassID() const { return eventhashcode; } |
+#define END_FWL_EVENT_DEF \ |
+ } \ |
+ ; |
+BEGIN_FWL_EVENT_DEF(CFWL_EvtMouse, FWL_EVTHASH_Mouse) |
+FX_FLOAT m_fx; |
+FX_FLOAT m_fy; |
+FX_DWORD m_dwFlags; |
+FX_DWORD m_dwCmd; |
+END_FWL_EVENT_DEF |
+BEGIN_FWL_EVENT_DEF(CFWL_EvtMouseWheel, FWL_EVTHASH_MouseWheel) |
+FX_FLOAT m_fx; |
+FX_FLOAT m_fy; |
+FX_FLOAT m_fDeltaX; |
+FX_FLOAT m_fDeltaY; |
+FX_DWORD m_dwFlags; |
+END_FWL_EVENT_DEF |
+BEGIN_FWL_EVENT_DEF(CFWL_EvtKey, FWL_EVTHASH_Key) |
+FX_DWORD m_dwKeyCode; |
+FX_DWORD m_dwFlags; |
+FX_DWORD m_dwCmd; |
+END_FWL_EVENT_DEF |
+BEGIN_FWL_EVENT_DEF(CFWL_EvtSetFocus, FWL_EVTHASH_SetFocus) |
+IFWL_Widget* m_pSetFocus; |
+END_FWL_EVENT_DEF |
+BEGIN_FWL_EVENT_DEF(CFWL_EvtKillFocus, FWL_EVTHASH_KillFocus) |
+IFWL_Widget* m_pKillFocus; |
+END_FWL_EVENT_DEF |
+BEGIN_FWL_EVENT_DEF(CFWL_EvtDraw, FWL_EVTHASH_Draw) |
+CFX_Graphics* m_pGraphics; |
+IFWL_Widget* m_pWidget; |
+END_FWL_EVENT_DEF |
+BEGIN_FWL_EVENT_DEF(CFWL_EvtClick, FWL_EVTHASH_Click) |
+END_FWL_EVENT_DEF |
+BEGIN_FWL_EVENT_DEF(CFWL_EvtScroll, FWL_EVTHASH_Scroll) |
+FX_DWORD m_iScrollCode; |
+FX_FLOAT m_fPos; |
+FX_BOOL* m_pRet; |
+END_FWL_EVENT_DEF |
+BEGIN_FWL_EVENT_DEF(CFWL_EvtClose, FWL_EVTHASH_Close) |
+END_FWL_EVENT_DEF |
+BEGIN_FWL_EVENT_DEF(CFWL_EvtContextMenu, FWL_EVTHASH_ContextMenu) |
+FX_FLOAT m_fPosX; |
+FX_FLOAT m_fPosY; |
+IFWL_Widget* m_pOwner; |
+END_FWL_EVENT_DEF |
+BEGIN_FWL_EVENT_DEF(CFWL_EvtMenuCommand, FWL_EVTHASH_MenuCommand) |
+int32_t m_iCommand; |
+void* m_pData; |
+END_FWL_EVENT_DEF |
+BEGIN_FWL_EVENT_DEF(CFWL_EvtSizeChanged, FWL_EVTHASH_SizeChanged) |
+IFWL_Widget* m_pWidget; |
+CFX_RectF m_rtOld; |
+CFX_RectF m_rtNew; |
+END_FWL_MESSAGE_DEF |
+BEGIN_FWL_EVENT_DEF(CFWL_EvtIdle, FWL_EVTHASH_Idle) |
+END_FWL_EVENT_DEF |
+typedef enum { |
+ FWL_EVENT_MOUSE_MASK = 1 << 0, |
+ FWL_EVENT_MOUSEWHEEL_MASK = 1 << 1, |
+ FWL_EVENT_KEY_MASK = 1 << 2, |
+ FWL_EVENT_FOCUSCHANGED_MASK = 1 << 3, |
+ FWL_EVENT_DRAW_MASK = 1 << 4, |
+ FWL_EVENT_CLOSE_MASK = 1 << 5, |
+ FWL_EVENT_SIZECHANGED_MASK = 1 << 6, |
+ FWL_EVENT_IDLE_MASK = 1 << 7, |
+ FWL_EVENT_CONTROL_MASK = 1 << 8, |
+ FWL_EVENT_ALL_MASK = 0xFF |
+} FWLEventMask; |
+class IFWL_NoteDriver { |
+ public: |
+ virtual ~IFWL_NoteDriver() {} |
+ virtual FX_BOOL SendNote(CFWL_Note* pNote) = 0; |
+ virtual FX_BOOL PostMessage(CFWL_Message* pMessage) = 0; |
+ virtual FWL_ERR RegisterEventTarget( |
+ IFWL_Widget* pListener, |
+ IFWL_Widget* pEventSource = NULL, |
+ FX_DWORD dwFilter = FWL_EVENT_ALL_MASK) = 0; |
+ virtual FWL_ERR UnregisterEventTarget(IFWL_Widget* pListener) = 0; |
+ virtual void ClearEventTargets(FX_BOOL bRemoveAll) = 0; |
+ virtual int32_t GetQueueMaxSize() const = 0; |
+ virtual FWL_ERR SetQueueMaxSize(const int32_t size) = 0; |
+ virtual IFWL_NoteThread* GetOwnerThread() const = 0; |
+ virtual FWL_ERR PushNoteLoop(IFWL_NoteLoop* pNoteLoop) = 0; |
+ virtual IFWL_NoteLoop* PopNoteLoop() = 0; |
+ virtual IFWL_Widget* GetFocus() = 0; |
+ virtual FX_BOOL SetFocus(IFWL_Widget* pFocus, FX_BOOL bNotify = FALSE) = 0; |
+ virtual void SetGrab(IFWL_Widget* pGrab, FX_BOOL bSet) = 0; |
+ virtual FWL_ERR Run() = 0; |
+}; |
+IFWL_Widget* FWL_GetCurrentThreadModalWidget(IFWL_NoteThread* pNoteThread); |
+class IFWL_NoteLoop { |
+ public: |
+ virtual ~IFWL_NoteLoop() {} |
+ virtual FX_BOOL PreProcessMessage(CFWL_Message* pMessage) = 0; |
+ virtual FWL_ERR Idle(int32_t count) = 0; |
+}; |
+class IFWL_ToolTipTarget { |
+ public: |
+ virtual ~IFWL_ToolTipTarget() {} |
+ virtual IFWL_Widget* GetWidget() = 0; |
+ virtual FX_BOOL IsShowed() = 0; |
+ virtual FWL_ERR DrawToolTip(CFX_Graphics* pGraphics, |
+ const CFX_Matrix* pMatrix, |
+ IFWL_Widget* pToolTip) = 0; |
+ virtual FX_BOOL UseDefaultTheme() = 0; |
+ virtual FWL_ERR GetCaption(CFX_WideString& wsCaption) = 0; |
+ virtual FWL_ERR GetToolTipSize(CFX_SizeF& sz) = 0; |
+ virtual FWL_ERR GetToolTipPos(CFX_PointF& pt) { return FWL_ERR_Indefinite; } |
+}; |
+FWL_ERR FWL_AddToolTipTarget(IFWL_ToolTipTarget* pTarget); |
+FWL_ERR FWL_RemoveToolTipTarget(IFWL_ToolTipTarget* pTarget); |
+FWL_ERR FWL_SetToolTipInitialDelay(int32_t iDelayTime); |
+FWL_ERR FWL_SetToolTipAutoPopDelay(int32_t iDelayTime); |
+typedef FX_BOOL (*FWLMessageHookCallback)(CFWL_Message* msg, void* info); |
+FWL_ERR FWL_SetHook(IFWL_NoteDriver* driver, |
+ FWLMessageHookCallback callback, |
+ void* info); |
+#endif |