1 /* -*- Mode: C++; tab-width: 40; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #include "ThemeCocoa.h"
8 #include "cocoa/MacThemeGeometryType.h"
9 #include "gfxPlatform.h"
10 #include "mozilla/ClearOnShutdown.h"
11 #include "mozilla/gfx/Helpers.h"
12 #include "mozilla/LookAndFeel.h"
13 #include "mozilla/ServoStyleConsts.h"
15 namespace mozilla::widget
{
17 LayoutDeviceIntSize
ThemeCocoa::GetMinimumWidgetSize(
18 nsPresContext
* aPresContext
, nsIFrame
* aFrame
,
19 StyleAppearance aAppearance
) {
20 if (aAppearance
== StyleAppearance::MozMenulistArrowButton
) {
22 GetScrollbarSize(aPresContext
, StyleScrollbarWidth::Auto
, Overlay::No
);
25 return Theme::GetMinimumWidgetSize(aPresContext
, aFrame
, aAppearance
);
29 ThemeCocoa::DrawWidgetBackground(gfxContext
* aContext
, nsIFrame
* aFrame
,
30 StyleAppearance aAppearance
,
31 const nsRect
& aRect
, const nsRect
& aDirtyRect
,
32 DrawOverflow aDrawOverflow
) {
33 switch (aAppearance
) {
34 case StyleAppearance::Tooltip
:
35 // Cocoa tooltip background and border are already drawn by the
41 return Theme::DrawWidgetBackground(aContext
, aFrame
, aAppearance
, aRect
,
42 aDirtyRect
, aDrawOverflow
);
45 bool ThemeCocoa::CreateWebRenderCommandsForWidget(
46 mozilla::wr::DisplayListBuilder
& aBuilder
,
47 mozilla::wr::IpcResourceUpdateQueue
& aResources
,
48 const mozilla::layers::StackingContextHelper
& aSc
,
49 mozilla::layers::RenderRootStateManager
* aManager
, nsIFrame
* aFrame
,
50 StyleAppearance aAppearance
, const nsRect
& aRect
) {
51 switch (aAppearance
) {
52 case StyleAppearance::Tooltip
:
53 // Cocoa tooltip background and border are already drawn by the
59 return Theme::CreateWebRenderCommandsForWidget(
60 aBuilder
, aResources
, aSc
, aManager
, aFrame
, aAppearance
, aRect
);
63 } // namespace mozilla::widget