19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * this work for additional information regarding copyright ownership. 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * (the "License"); you may not use this file except in compliance with 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the License. You may obtain a copy of the License at 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @author Pavel Dolgov, Alexey A. Petrenko, Oleg V. Khaschansky 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @version $Revision$ 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage org.apache.harmony.awt.wtk; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.awt.Font; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.awt.FontMetrics; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.awt.Graphics2D; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.awt.GraphicsEnvironment; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.awt.peer.FontPeer; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport org.apache.harmony.awt.gl.MultiRectArea; 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport org.apache.harmony.awt.gl.font.FontManager; 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.graphics.Canvas; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.graphics.Paint; 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * GraphicsFactory interface defines methods for Graphics2D 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * and font stuff instances factories. 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic interface GraphicsFactory { 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static final FontMetrics cacheFM[] = new FontMetrics[10]; 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This method creates Graphics2D instance for specified native window. 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param win Native window to draw 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param translateX Translation along X axis 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param translateY Translation along Y axis 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param clip Clipping area for a new Graphics2D instance 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return New Graphics2D instance for specified native window 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @deprecated 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Deprecated 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Graphics2D getGraphics2D(NativeWindow win, int translateX, int translateY, MultiRectArea clip); 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This method creates Graphics2D instance for specified native window. 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param win Native window to draw 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param translateX Translation along X axis 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param translateY Translation along Y axis 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param width Width of drawing area 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param height Height of drawing area 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return New Graphics2D instance for specified native window 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Graphics2D getGraphics2D(NativeWindow win, int translateX, int translateY, int width, int height); 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // ???AWT: not standard harmony 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Graphics2D getGraphics2D(Canvas c, Paint p); 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Creates instance of GraphicsEnvironment for specified WindowFactory 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param wf WindowFactory 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return New instance of GraphicsEnvironment 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project GraphicsEnvironment createGraphicsEnvironment(WindowFactory wf); 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Font methods 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project FontMetrics getFontMetrics(Font font); 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project FontManager getFontManager(); 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project FontPeer getFontPeer(Font font); 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Font embedFont(String fontFilePath); 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 83