summaryrefslogtreecommitdiffstats
path: root/ui/base/cocoa/nsgraphics_context_additions.mm
blob: 9e85fad24f248e65504bd6fe0972edfd2c9ea531 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#import "ui/base/cocoa/nsgraphics_context_additions.h"

@implementation NSGraphicsContext (CrAdditions)

- (void)cr_setPatternPhase:(NSPoint)phase
                   forView:(NSView*)view {
  NSView* ancestorWithLayer = view;
  while (ancestorWithLayer && ![ancestorWithLayer layer])
    ancestorWithLayer = [ancestorWithLayer superview];
  if (ancestorWithLayer) {
    NSPoint bottomLeft = NSZeroPoint;
    if ([ancestorWithLayer isFlipped])
      bottomLeft.y = NSMaxY([ancestorWithLayer bounds]);
    NSPoint offset = [ancestorWithLayer convertPoint:bottomLeft toView:nil];
    phase.x -= offset.x;
    phase.y -= offset.y;
  }
  [self setPatternPhase:phase];
}

@end