forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			129 lines
		
	
	
	
		
			3.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
	
		
			3.8 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 WindowDefs_h__
 | |
| #define WindowDefs_h__
 | |
| 
 | |
| /*
 | |
|  * nsWindowDefs - nsWindow related definitions, consts, and macros.
 | |
|  */
 | |
| 
 | |
| #include "mozilla/widget/WinMessages.h"
 | |
| #include "nsBaseWidget.h"
 | |
| #include "nsdefs.h"
 | |
| #include "resource.h"
 | |
| 
 | |
| /**************************************************************
 | |
|  *
 | |
|  * SECTION: defines
 | |
|  *
 | |
|  **************************************************************/
 | |
| 
 | |
| // ConstrainPosition window positioning slop value
 | |
| #define kWindowPositionSlop 20
 | |
| 
 | |
| // Origin of the system context menu when displayed in full screen mode
 | |
| #define MOZ_SYSCONTEXT_X_POS 20
 | |
| #define MOZ_SYSCONTEXT_Y_POS 20
 | |
| 
 | |
| // Don't put more than this many rects in the dirty region, just fluff
 | |
| // out to the bounding-box if there are more
 | |
| #define MAX_RECTS_IN_REGION 100
 | |
| 
 | |
| // Tablet PC Mouse Input Source
 | |
| #define TABLET_INK_SIGNATURE 0xFFFFFF00
 | |
| #define TABLET_INK_CHECK 0xFF515700
 | |
| #define TABLET_INK_TOUCH 0x00000080
 | |
| #define TABLET_INK_ID_MASK 0x0000007F
 | |
| #define MOUSE_INPUT_SOURCE() WinUtils::GetMouseInputSource()
 | |
| #define MOUSE_POINTERID() WinUtils::GetMousePointerID()
 | |
| 
 | |
| /**************************************************************
 | |
|  *
 | |
|  * SECTION: constants
 | |
|  *
 | |
|  **************************************************************/
 | |
| 
 | |
| /*
 | |
|  * Native windows class names
 | |
|  *
 | |
|  * ::: IMPORTANT :::
 | |
|  *
 | |
|  * External apps and drivers depend on window class names.
 | |
|  * For example, changing the window classes could break
 | |
|  * touchpad scrolling or screen readers.
 | |
|  *
 | |
|  * See bug 1776498.
 | |
|  */
 | |
| const wchar_t kClassNameHidden[] = L"MozillaHiddenWindowClass";
 | |
| const wchar_t kClassNameGeneral[] = L"MozillaWindowClass";
 | |
| const wchar_t kClassNameDialog[] = L"MozillaDialogClass";
 | |
| const wchar_t kClassNameDropShadow[] = L"MozillaDropShadowWindowClass";
 | |
| const wchar_t kClassNameTemp[] = L"MozillaTempWindowClass";
 | |
| const wchar_t kClassNameTransition[] = L"MozillaTransitionWindowClass";
 | |
| 
 | |
| /**************************************************************
 | |
|  *
 | |
|  * SECTION: structs
 | |
|  *
 | |
|  **************************************************************/
 | |
| 
 | |
| // Used for synthesizing events
 | |
| struct KeyPair {
 | |
|   uint8_t mGeneral;
 | |
|   uint8_t mSpecific;
 | |
|   uint16_t mScanCode;
 | |
|   KeyPair(uint32_t aGeneral, uint32_t aSpecific)
 | |
|       : mGeneral(aGeneral & 0xFF),
 | |
|         mSpecific(aSpecific & 0xFF),
 | |
|         mScanCode((aGeneral & 0xFFFF0000) >> 16) {}
 | |
|   KeyPair(uint8_t aGeneral, uint8_t aSpecific, uint16_t aScanCode)
 | |
|       : mGeneral(aGeneral), mSpecific(aSpecific), mScanCode(aScanCode) {}
 | |
| };
 | |
| 
 | |
| #if (WINVER < 0x0600)
 | |
| struct TITLEBARINFOEX {
 | |
|   DWORD cbSize;
 | |
|   RECT rcTitleBar;
 | |
|   DWORD rgstate[CCHILDREN_TITLEBAR + 1];
 | |
|   RECT rgrect[CCHILDREN_TITLEBAR + 1];
 | |
| };
 | |
| #endif
 | |
| 
 | |
| namespace mozilla {
 | |
| namespace widget {
 | |
| 
 | |
| struct MSGResult {
 | |
|   // Result for the message.
 | |
|   LRESULT& mResult;
 | |
|   // If mConsumed is true, the caller shouldn't call next wndproc.
 | |
|   bool mConsumed;
 | |
| 
 | |
|   explicit MSGResult(LRESULT* aResult = nullptr)
 | |
|       : mResult(aResult ? *aResult : mDefaultResult), mConsumed(false) {}
 | |
| 
 | |
|  private:
 | |
|   LRESULT mDefaultResult;
 | |
| };
 | |
| 
 | |
| }  // namespace widget
 | |
| }  // namespace mozilla
 | |
| 
 | |
| /**************************************************************
 | |
|  *
 | |
|  * SECTION: macros
 | |
|  *
 | |
|  **************************************************************/
 | |
| 
 | |
| #define NSRGB_2_COLOREF(color) \
 | |
|   RGB(NS_GET_R(color), NS_GET_G(color), NS_GET_B(color))
 | |
| #define COLOREF_2_NSRGB(color) \
 | |
|   NS_RGB(GetRValue(color), GetGValue(color), GetBValue(color))
 | |
| 
 | |
| #define VERIFY_WINDOW_STYLE(s)                                         \
 | |
|   NS_ASSERTION(((s) & (WS_CHILD | WS_POPUP)) != (WS_CHILD | WS_POPUP), \
 | |
|                "WS_POPUP and WS_CHILD are mutually exclusive")
 | |
| 
 | |
| #endif /* WindowDefs_h__ */
 | 
