gecko-dev/widget/windows/nsToolkit.h
Chris H-C 53663750f7 Bug 506815 - Replace MouseTrailer with TrackMouseEvent. r=jimm
MouseTrailer, using a 200ms timer, was used to track whether a pointer was
still present over a window.

Windows has, since Windows 2000, offered to do this for us via an API called
TrackMouseEvent. (It'll also give us hover timings and non-client area versions
if we want)

I'm all for having Windows do the work for us, and it'll save us from waking up
the main thread five times a second.

--HG--
extra : rebase_source : 9e56fd40929257d847c5cddb8a998c3ca2381655
2015-11-20 07:42:00 +01:00

50 lines
1.1 KiB
C++

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef nsToolkit_h__
#define nsToolkit_h__
#include "nsdefs.h"
#include "nsITimer.h"
#include "nsCOMPtr.h"
#include <windows.h>
// Avoid including windowsx.h to prevent macro pollution
#ifndef GET_X_LPARAM
#define GET_X_LPARAM(pt) (short(LOWORD(pt)))
#endif
#ifndef GET_Y_LPARAM
#define GET_Y_LPARAM(pt) (short(HIWORD(pt)))
#endif
/**
* Wrapper around the thread running the message pump.
* The toolkit abstraction is necessary because the message pump must
* execute within the same thread that created the widget under Win32.
*/
class nsToolkit
{
public:
nsToolkit();
private:
~nsToolkit();
public:
static nsToolkit* GetToolkit();
static HINSTANCE mDllInstance;
static void Startup(HMODULE hModule);
static void Shutdown();
protected:
static nsToolkit* gToolkit;
};
#endif // TOOLKIT_H