168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// found in the LICENSE file.
468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#ifndef UI_BASE_COCOA_APPKIT_UTILS_H
668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#define UI_BASE_COCOA_APPKIT_UTILS_H
768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#import <Cocoa/Cocoa.h>
968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "ui/base/ui_base_export.h"
1168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
1268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)namespace ui {
1368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
1468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)struct NinePartImageIds {
1568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  int top_left;
1668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  int top;
1768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  int top_right;
1868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  int left;
1968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  int center;
2068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  int right;
2168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  int bottom_left;
2268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  int bottom;
2368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  int bottom_right;
2468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)};
2568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// A macro to define arrays of IDR constants used with DrawNinePartImage.
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#define IMAGE_GRID(x) { x ## _TOP_LEFT,    x ## _TOP,    x ## _TOP_RIGHT, \
285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                        x ## _LEFT,        x ## _CENTER, x ## _RIGHT, \
295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                        x ## _BOTTOM_LEFT, x ## _BOTTOM, x ## _BOTTOM_RIGHT, }
305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
3168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// Utility method to draw a nine part image using image ids.
325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)UI_BASE_EXPORT void DrawNinePartImage(NSRect frame,
335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                      const NinePartImageIds& image_ids,
345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                      NSCompositingOperation operation,
355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                      CGFloat alpha,
365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                      BOOL flipped);
3768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
3868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)}  // namespace ui
3968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
4068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)#endif  // UI_BASE_COCOA_APPKIT_UTILS_H
41