Files
haxework/demo/src/demo/popup/FontPopup.hx

49 lines
1.3 KiB
Haxe

package demo.popup;
import flash.text.Font;
import flash.text.FontType;
import haxework.view.list.LabelListItem;
import haxework.view.list.ListView;
import haxework.view.popup.PopupView;
import haxework.view.theme.ITheme;
class FontLabelView extends LabelListItem<ThemeFont> {
override private function set_data(value:ThemeFont):ThemeFont {
style = item_index % 2 == 0 ? "light" : "dark";
data = value;
text = value.name;
font.family = value.name;
font.embed = value.embed;
return data;
}
}
@:template class FontPopup extends PopupView<ThemeFont> {
@:view var fonts:ListView<ThemeFont>;
private function new():Void {
super();
var values:Array<ThemeFont> = Font.enumerateFonts(true).map(function(font:Font) {
return {
name: font.fontName,
embed: switch font.fontType {
case DEVICE: false;
case _: true;
}
}
});
values.sort(function(a:ThemeFont, b:ThemeFont) {
return switch [a.embed, b.embed] {
case [false, true]: 1;
case [true, false]: -1;
case _: 0;
}
});
fonts.data = values;
}
private function fontViewFactory() return new FontLabelView();
}