[RSHELL]
[reactos.git] / base / shell / rshell / CMenuFocusManager.h
index 6654898..79eea36 100644 (file)
@@ -36,16 +36,21 @@ public:
     static void ReleaseManager(CMenuFocusManager * obj);
 
 private:
+    static LRESULT CALLBACK s_MsgFilterHook(INT nCode, WPARAM wParam, LPARAM lParam);
     static LRESULT CALLBACK s_GetMsgHook(INT nCode, WPARAM wParam, LPARAM lParam);
 
 private:
     CMenuBand * m_currentBand;
     HWND m_currentFocus;
-    HHOOK m_hHook;
+    HMENU m_currentMenu;
+    HWND m_parentToolbar;
+    HHOOK m_hGetMsgHook;
+    HHOOK m_hMsgFilterHook;
     DWORD m_threadId;
     BOOL m_mouseTrackDisabled;
     WPARAM m_lastMoveFlags;
     LPARAM m_lastMovePos;
+    POINT m_ptPrev;
 
     // TODO: make dynamic
 #define MAX_RECURSE 20
@@ -69,14 +74,17 @@ public:
 
 private:
     LRESULT GetMsgHook(INT nCode, WPARAM wParam, LPARAM lParam);
-    HRESULT PlaceHooks(HWND window);
-    HRESULT RemoveHooks(HWND window);
-    HRESULT UpdateFocus(CMenuBand * newBand);
-    HRESULT ActivationChange(HWND newHwnd);
-    void DisableMouseTrack(HWND enableTo, BOOL disableThis);
+    LRESULT MsgFilterHook(INT nCode, WPARAM wParam, LPARAM lParam);
+    HRESULT PlaceHooks();
+    HRESULT RemoveHooks();
+    HRESULT UpdateFocus(CMenuBand * newBand, HMENU popupToTrack = NULL);
     HRESULT IsTrackedWindow(HWND hWnd);
 
+    void DisableMouseTrack(HWND enableTo, BOOL disableThis);
+
 public:
     HRESULT PushMenu(CMenuBand * mb);
     HRESULT PopMenu(CMenuBand * mb);
+    HRESULT PushTrackedPopup(CMenuBand * mb, HMENU popup);
+    HRESULT PopTrackedPopup(CMenuBand * mb, HMENU popup);
 };