1765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye/******************************************************************************* 2765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Copyright (c) 2011 Google, Inc. 3765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * All rights reserved. This program and the accompanying materials 4765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * are made available under the terms of the Eclipse Public License v1.0 5765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * which accompanies this distribution, and is available at 6765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * http://www.eclipse.org/legal/epl-v10.html 7765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 8765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Contributors: 9765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Google, Inc. - initial API and implementation 10765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye *******************************************************************************/ 11765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyepackage org.eclipse.wb.internal.core.utils.ui; 12765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 13765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.jface.dialogs.Dialog; 14765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.swt.graphics.FontMetrics; 15765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.swt.graphics.GC; 16765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.swt.widgets.Control; 17765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 18765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye/** 19765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Helper class for converting DLU and char size into pixels. 20765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 21765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Based on code from JDT UI. 22765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 23765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @author scheglov_ke 24765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 25765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyepublic class PixelConverter { 26765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye private final FontMetrics fFontMetrics; 27765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 28765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 29765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 30765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // Constructors 31765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 32765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 33765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public PixelConverter(Control control) { 34765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye GC gc = new GC(control); 35765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye gc.setFont(control.getFont()); 36765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye fFontMetrics = gc.getFontMetrics(); 37765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye gc.dispose(); 38765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 39765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 40765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 41765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 42765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // Conversions 43765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 44765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 45765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 46765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * see org.eclipse.jface.dialogs.DialogPage#convertHeightInCharsToPixels(int) 47765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 48765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public int convertHeightInCharsToPixels(int chars) { 49765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return Dialog.convertHeightInCharsToPixels(fFontMetrics, chars); 50765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 51765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 52765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 53765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * see org.eclipse.jface.dialogs.DialogPage#convertHorizontalDLUsToPixels(int) 54765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 55765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public int convertHorizontalDLUsToPixels(int dlus) { 56765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return Dialog.convertHorizontalDLUsToPixels(fFontMetrics, dlus); 57765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 58765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 59765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 60765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * see org.eclipse.jface.dialogs.DialogPage#convertVerticalDLUsToPixels(int) 61765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 62765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public int convertVerticalDLUsToPixels(int dlus) { 63765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return Dialog.convertVerticalDLUsToPixels(fFontMetrics, dlus); 64765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 65765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 66765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 67765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * see org.eclipse.jface.dialogs.DialogPage#convertWidthInCharsToPixels(int) 68765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 69765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public int convertWidthInCharsToPixels(int chars) { 70765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return Dialog.convertWidthInCharsToPixels(fFontMetrics, chars); 71765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 72765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye} 73