devexpress-richedit
Version:
DevExpress Rich Text Editor is an advanced word-processing tool designed for working with rich text documents.
40 lines (39 loc) • 1.76 kB
JavaScript
import { FontLoadStatus } from '../../../common/model/fonts/control-font';
import { ControlFontsLoader } from '../../../common/model/fonts/loader';
export class ControlFontApi {
get fontFamily() { return this._font.fontFamily; }
get status() {
switch (this._font.status) {
case FontLoadStatus.Error: return 'error';
case FontLoadStatus.Loaded: return 'loaded';
case FontLoadStatus.Loading: return 'loading';
case FontLoadStatus.Unloaded: return 'unloaded';
}
}
get descriptors() { return this._font.descriptors.clone(); }
get data() { return this._font.data; }
get sourceUrls() { return this._font.allSourceUrls(this._processor.modelManager.richOptions.fonts.defaultFolder); }
set sourceUrls(val) { this._font.sourceUrls = val; }
set sourceUrl(val) { this._font.sourceUrls = [val]; }
constructor(processor, font) {
this._font = font;
this._processor = processor;
}
load(reloadFailed = false, callback) {
if (!callback)
callback = () => { };
const modelManager = this._processor.modelManager;
const loader = new ControlFontsLoader(modelManager.model.cache.controlFontsCache, modelManager.richOptions.fonts, false);
const status = [FontLoadStatus.Unloaded];
if (reloadFailed)
status.push(FontLoadStatus.Error);
loader.loadFonts([this._font], status, () => {
if (loader.needInvalidateLayout)
this._processor.invalidateLayoutAfterFontsLoaded();
callback();
});
}
delete() {
this._processor.modelManager.model.cache.controlFontsCache.deleteFont(this._font);
}
}