| 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
|
|
|