1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "content/common/font_list.h"
7 #include <pango/pango.h>
8 #include <pango/pangocairo.h>
13 #include "base/values.h"
17 scoped_ptr
<base::ListValue
> GetFontList_SlowBlocking() {
18 scoped_ptr
<base::ListValue
> font_list(new base::ListValue
);
20 PangoFontMap
* font_map
= ::pango_cairo_font_map_get_default();
21 PangoFontFamily
** families
= NULL
;
23 ::pango_font_map_list_families(font_map
, &families
, &num_families
);
25 std::set
<std::string
> sorted_families
;
26 for (int i
= 0; i
< num_families
; i
++) {
27 sorted_families
.insert(::pango_font_family_get_name(families
[i
]));
31 for (std::set
<std::string
>::const_iterator iter
= sorted_families
.begin();
32 iter
!= sorted_families
.end(); ++iter
) {
33 base::ListValue
* font_item
= new base::ListValue();
34 font_item
->Append(new base::StringValue(*iter
));
35 font_item
->Append(new base::StringValue(*iter
)); // localized name.
36 // TODO(yusukes): Support localized family names.
37 font_list
->Append(font_item
);
40 return font_list
.Pass();
43 } // namespace content