summaryrefslogtreecommitdiffstats
path: root/ui/base/cocoa/appkit_utils.h
blob: 3f1b446349d97ba63ed9e8cc4b3f050ec7aee209 (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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// Copyright 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.

#ifndef UI_BASE_COCOA_APPKIT_UTILS_H
#define UI_BASE_COCOA_APPKIT_UTILS_H

#import <Cocoa/Cocoa.h>

#include "ui/base/ui_base_export.h"

namespace ui {

struct NinePartImageIds {
  int top_left;
  int top;
  int top_right;
  int left;
  int center;
  int right;
  int bottom_left;
  int bottom;
  int bottom_right;
};

// A macro to define arrays of IDR constants used with DrawNinePartImage.
#define IMAGE_GRID(x) { x ## _TOP_LEFT,    x ## _TOP,    x ## _TOP_RIGHT, \
                        x ## _LEFT,        x ## _CENTER, x ## _RIGHT, \
                        x ## _BOTTOM_LEFT, x ## _BOTTOM, x ## _BOTTOM_RIGHT, }

// Utility method to draw a nine part image using image ids.
UI_BASE_EXPORT void DrawNinePartImage(NSRect frame,
                                      const NinePartImageIds& image_ids,
                                      NSCompositingOperation operation,
                                      CGFloat alpha,
                                      BOOL flipped);

// Minimizes or zooms the window, or does nothing, depending on OS version and
// system configuration.
// |window| is the receiver of the double click.
// |sender| is the object that sends the action, if one is sent.
UI_BASE_EXPORT void WindowTitlebarReceivedDoubleClick(NSWindow* window,
                                                      id sender);

}  // namespace ui

#endif  // UI_BASE_COCOA_APPKIT_UTILS_H