Bug 1421088 - Create DrawToolbar. r?spohl draft
authorMarkus Stange <mstange@themasta.com>
Fri, 01 Dec 2017 17:55:02 -0500
changeset 782258 042e5629f7cac6c1658e8c43357aa139f7b2aca8
parent 782257 a66d59f0bde3ad87e797628568eab65353e66174
child 782259 d61df983eaf1c9c87d6792f4a701a5d0208ae5a9
push id106506
push userbmo:mstange@themasta.com
push dateSun, 15 Apr 2018 03:32:46 +0000
reviewersspohl
bugs1421088
milestone61.0a1
Bug 1421088 - Create DrawToolbar. r?spohl MozReview-Commit-ID: 3NMidcVazQo
widget/cocoa/nsNativeThemeCocoa.h
widget/cocoa/nsNativeThemeCocoa.mm
--- a/widget/cocoa/nsNativeThemeCocoa.h
+++ b/widget/cocoa/nsNativeThemeCocoa.h
@@ -372,16 +372,18 @@ protected:
                     const DropdownParams& aParams);
   HIThemeButtonDrawInfo SpinButtonDrawInfo(ThemeButtonKind aKind,
                                            const SpinButtonParams& aParams);
   void DrawSpinButtons(CGContextRef context, const HIRect& inBoxRect,
                        const SpinButtonParams& aParams);
   void DrawSpinButton(CGContextRef context,
                       const HIRect& inBoxRect, SpinButton aDrawnButton,
                       const SpinButtonParams& aParams);
+  void DrawToolbar(CGContextRef cgContext, const CGRect& inBoxRect,
+                   bool aIsMain);
   void DrawUnifiedToolbar(CGContextRef cgContext, const HIRect& inBoxRect,
                           const UnifiedToolbarParams& aParams);
   void DrawStatusBar(CGContextRef cgContext, const HIRect& inBoxRect,
                      bool aIsMain);
   void DrawResizer(CGContextRef cgContext, const HIRect& aRect, bool aIsRTL);
   void DrawScrollbarThumb(CGContextRef cgContext, const CGRect& inBoxRect,
                           ScrollbarParams aParams);
   void DrawScrollbarTrack(CGContextRef cgContext, const CGRect& inBoxRect,
--- a/widget/cocoa/nsNativeThemeCocoa.mm
+++ b/widget/cocoa/nsNativeThemeCocoa.mm
@@ -2512,16 +2512,37 @@ nsNativeThemeCocoa::GetParentScrollbarFr
   do {
     if (scrollbarFrame->IsScrollbarFrame()) break;
   } while ((scrollbarFrame = scrollbarFrame->GetParent()));
 
   // We return null if we can't find a parent scrollbar frame
   return scrollbarFrame;
 }
 
+void
+nsNativeThemeCocoa::DrawToolbar(CGContextRef cgContext, const CGRect& inBoxRect,
+                                bool aIsMain)
+{
+  CGRect drawRect = inBoxRect;
+
+  // top border
+  drawRect.size.height = 1.0f;
+  DrawNativeGreyColorInRect(cgContext, toolbarTopBorderGrey, drawRect, aIsMain);
+
+  // background
+  drawRect.origin.y += drawRect.size.height;
+  drawRect.size.height = inBoxRect.size.height - 2.0f;
+  DrawNativeGreyColorInRect(cgContext, toolbarFillGrey, drawRect, aIsMain);
+
+  // bottom border
+  drawRect.origin.y += drawRect.size.height;
+  drawRect.size.height = 1.0f;
+  DrawNativeGreyColorInRect(cgContext, toolbarBottomBorderGrey, drawRect, aIsMain);
+}
+
 static bool
 ToolbarCanBeUnified(const HIRect& inBoxRect, NSWindow* aWindow)
 {
   if (![aWindow isKindOfClass:[ToolbarWindow class]])
     return false;
 
   ToolbarWindow* win = (ToolbarWindow*)aWindow;
   float unifiedToolbarHeight = [win unifiedToolbarHeight];
@@ -3099,31 +3120,17 @@ nsNativeThemeCocoa::DrawWidgetBackground
       if (ToolbarCanBeUnified(macRect, win)) {
         float unifiedHeight =
           std::max([(ToolbarWindow*)win unifiedToolbarHeight],
                    macRect.size.height);
         DrawUnifiedToolbar(cgContext, macRect,
                            UnifiedToolbarParams{unifiedHeight, isMain});
         break;
       }
-      CGRect drawRect = macRect;
-
-      // top border
-      drawRect.size.height = 1.0f;
-      DrawNativeGreyColorInRect(cgContext, toolbarTopBorderGrey, drawRect, isMain);
-
-      // background
-      drawRect.origin.y += drawRect.size.height;
-      drawRect.size.height = macRect.size.height - 2.0f;
-      DrawNativeGreyColorInRect(cgContext, toolbarFillGrey, drawRect, isMain);
-
-      // bottom border
-      drawRect.origin.y += drawRect.size.height;
-      drawRect.size.height = 1.0f;
-      DrawNativeGreyColorInRect(cgContext, toolbarBottomBorderGrey, drawRect, isMain);
+      DrawToolbar(cgContext, macRect, isMain);
     }
       break;
 
     case NS_THEME_WINDOW_TITLEBAR: {
       NSWindow* win = NativeWindowForFrame(aFrame);
       BOOL isMain = [win isMainWindow];
       float unifiedToolbarHeight = [win isKindOfClass:[ToolbarWindow class]] ?
         [(ToolbarWindow*)win unifiedToolbarHeight] : macRect.size.height;