// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "ui/gfx/text_utils.h"

#import <CoreText/CoreText.h>
#import <UIKit/UIKit.h>

#include <cmath>

#include "base/mac/foundation_util.h"
#include "base/strings/sys_string_conversions.h"
#include "ui/gfx/font_list.h"

namespace gfx {

int GetStringWidth(const std::u16string& text, const FontList& font_list) {
  return std::ceil(GetStringWidthF(text, font_list));
}

float GetStringWidthF(const std::u16string& text, const FontList& font_list) {
  NSString* ns_text = base::SysUTF16ToNSString(text);
  CTFontRef font = font_list.GetPrimaryFont().GetCTFont();
  NSDictionary* attributes =
      @{NSFontAttributeName : base::mac::CFToNSCast(font)};
  return [ns_text sizeWithAttributes:attributes].width;
}

}  // namespace gfx
