1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
4 /* This Source Code Form is subject to the terms of the Mozilla Public
5 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
6 * You can obtain one at http://mozilla.org/MPL/2.0/. */
8 #ifndef mozilla_WidgetUtils_h
9 #define mozilla_WidgetUtils_h
11 #include "mozilla/EventForwards.h"
12 #include "mozilla/gfx/Matrix.h"
14 #include "nsIWidget.h"
17 class nsPIDOMWindowOuter
;
21 // NB: these must match up with pseudo-enum in nsIScreen.idl.
31 gfx::Matrix
ComputeTransformForRotation(const nsIntRect
& aBounds
,
32 ScreenRotation aRotation
);
34 gfx::Matrix
ComputeTransformForUnRotation(const nsIntRect
& aBounds
,
35 ScreenRotation aRotation
);
37 nsIntRect
RotateRect(nsIntRect aRect
, const nsIntRect
& aBounds
,
38 ScreenRotation aRotation
);
45 * Shutdown() is called when "xpcom-will-shutdown" is notified. This is
46 * useful when you need to observe the notification in XP level code under
49 static void Shutdown();
52 * Starting at the docshell item for the passed in DOM window this looks up
53 * the docshell tree until it finds a docshell item that has a widget.
55 static already_AddRefed
<nsIWidget
> DOMWindowToWidget(
56 nsPIDOMWindowOuter
* aDOMWindow
);
59 * Compute our keyCode value (NS_VK_*) from an ASCII character.
61 static uint32_t ComputeKeyCodeFromChar(uint32_t aCharCode
);
64 * Get unshifted charCode and shifted charCode for aKeyCode if the keyboad
65 * layout is a Latin keyboard layout.
67 * @param aKeyCode Our keyCode (NS_VK_*).
68 * @param aIsCapsLock TRUE if CapsLock is Locked. Otherwise, FALSE.
69 * This is used only when aKeyCode is NS_VK_[0-9].
70 * @param aUnshiftedCharCode CharCode for aKeyCode without Shift key.
71 * This may be zero if aKeyCode key doesn't input
73 * Note that must not be nullptr.
74 * @param aShiftedCharCode CharCode for aKeyCOde with Shift key.
75 * This is always 0 when aKeyCode isn't
77 * Note that must not be nullptr.
79 static void GetLatinCharCodeForKeyCode(uint32_t aKeyCode
, bool aIsCapsLock
,
80 uint32_t* aUnshiftedCharCode
,
81 uint32_t* aShiftedCharCode
);
84 * Does device have touch support
86 static uint32_t IsTouchDeviceSupportPresent();
89 * Send bidi keyboard information to content process
91 static void SendBidiKeyboardInfoToContent();
94 * Get branchShortName from string bundle
96 static void GetBrandShortName(nsAString
& aBrandName
);
100 } // namespace mozilla
102 #endif // mozilla_WidgetUtils_h