X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.g2d%2Fsrc%2Forg%2Fsimantics%2Fg2d%2Futils%2FFontHelper.java;h=98d5c78f664759653e2a5ffad20cbf7600da24af;hb=78d831a19c254d829e45d04c5ec6a3057680b7d7;hp=f5bfcfdf438eaf2009cb5c5ef25d39c72d17916f;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.g2d/src/org/simantics/g2d/utils/FontHelper.java b/bundles/org.simantics.g2d/src/org/simantics/g2d/utils/FontHelper.java index f5bfcfdf4..98d5c78f6 100644 --- a/bundles/org.simantics.g2d/src/org/simantics/g2d/utils/FontHelper.java +++ b/bundles/org.simantics.g2d/src/org/simantics/g2d/utils/FontHelper.java @@ -1,47 +1,46 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Association for Decentralized Information Management - * in Industry THTH ry. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * VTT Technical Research Centre of Finland - initial API and implementation - *******************************************************************************/ -package org.simantics.g2d.utils; - -import java.awt.Font; -import java.awt.Toolkit; - -import org.eclipse.jface.resource.FontRegistry; -import org.eclipse.swt.graphics.FontData; -import org.eclipse.ui.PlatformUI; - -public final class FontHelper { - - /** - * @return - * @throws IllegalStateException if there's no eclipse workbench context - * available - */ - public static FontRegistry getCurrentThemeFontRegistry() { - return PlatformUI.getWorkbench().getThemeManager().getCurrentTheme().getFontRegistry(); - } - - public static java.awt.Font toAwt(FontRegistry registry, String themeFontId) { - FontData fd = registry.getFontData(themeFontId)[0]; - return toAwt(fd); - } - - public static java.awt.Font toAwt(FontData fd) { - int resolution = Toolkit.getDefaultToolkit().getScreenResolution(); - int awtFontSize = (int) Math.round((double) fd.getHeight() * resolution / 72.0); - // The style constants for SWT and AWT map exactly, and since they are int constants, they should - // never change. So, the SWT style is passed through as the AWT style. - Font font = new java.awt.Font(fd.getName(), fd.getStyle(), awtFontSize); -// System.out.println("awt font: " + font); - return font; - } - -} +/******************************************************************************* + * Copyright (c) 2007, 2010 Association for Decentralized Information Management + * in Industry THTH ry. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * VTT Technical Research Centre of Finland - initial API and implementation + *******************************************************************************/ +package org.simantics.g2d.utils; + +import java.awt.Font; + +import org.eclipse.jface.resource.FontRegistry; +import org.eclipse.swt.graphics.FontData; +import org.eclipse.ui.PlatformUI; +import org.simantics.utils.ui.SWTDPIUtil; + +public final class FontHelper { + + /** + * @return + * @throws IllegalStateException if there's no eclipse workbench context + * available + */ + public static FontRegistry getCurrentThemeFontRegistry() { + return PlatformUI.getWorkbench().getThemeManager().getCurrentTheme().getFontRegistry(); + } + + public static java.awt.Font toAwt(FontRegistry registry, String themeFontId) { + FontData fd = registry.getFontData(themeFontId)[0]; + return toAwt(fd); + } + + public static java.awt.Font toAwt(FontData fd) { + int awtFontSize = SWTDPIUtil.upscaleSwt(fd.getHeight()); + // The style constants for SWT and AWT map exactly, and since they are int constants, they should + // never change. So, the SWT style is passed through as the AWT style. + Font font = new java.awt.Font(fd.getName(), fd.getStyle(), awtFontSize); +// System.out.println("awt font: " + font); + return font; + } + +}