2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / libjava / java / awt / print / PageFormat.java
blobd9ca50bea302f6ab39a50f8967a18c60487ff8be
1 /* PageFormat.java -- Information about the page format
2 Copyright (C) 1999 Free Software Foundation, Inc.
4 This file is part of GNU Classpath.
6 GNU Classpath is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
11 GNU Classpath is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GNU Classpath; see the file COPYING. If not, write to the
18 Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
19 02111-1307 USA.
21 Linking this library statically or dynamically with other modules is
22 making a combined work based on this library. Thus, the terms and
23 conditions of the GNU General Public License cover the whole
24 combination.
26 As a special exception, the copyright holders of this library give you
27 permission to link this library with independent modules to produce an
28 executable, regardless of the license terms of these independent
29 modules, and to copy and distribute the resulting executable under
30 terms of your choice, provided that you also meet, for each linked
31 independent module, the terms and conditions of the license of that
32 module. An independent module is a module which is not derived from
33 or based on this library. If you modify this library, you may extend
34 this exception to your version of the library, but you are not
35 obligated to do so. If you do not wish to do so, delete this
36 exception statement from your version. */
39 package java.awt.print;
41 /**
42 * This class contains information about the desired page format to
43 * use for printing a particular set of pages.
45 * @author Aaron M. Renn (arenn@urbanophile.com)
47 public class PageFormat implements Cloneable
51 * Static Variables
54 /**
55 * A constant for a landscaped page orientation. Used by
56 * <code>getOrientation</code> and <code>setOrientation</code>.
58 public static final int LANDSCAPE = 0;
60 /**
61 * A constant for a portrait page orientation. Used by
62 * <code>getOrientation</code> and <code>setOrientation</code>.
64 public static final int PORTRAIT = 1;
66 /**
67 * A constant for a reversed landscaped page orientation. This is
68 * the orientation used by Macintosh's for landscape. The origin is
69 * in the upper right hand corner instead of the upper left. The
70 * X and Y axes are reversed. Used by <code>getOrientation</code> and
71 * <code>setOrientation</code>.
73 public static final int REVERSE_LANDSCAPE = 2;
75 /*************************************************************************/
78 * Instance Variables
81 // The page orientation
82 private int orientation;
84 // The paper type
85 private Paper paper;
87 /*************************************************************************/
90 * Constructors
93 /**
94 * This method creates a default page layout, which will be in portrait
95 * format.
97 public
98 PageFormat()
100 this.paper = new Paper();
101 this.orientation = PORTRAIT;
104 /*************************************************************************/
107 * Instance Methods
111 * This method returns the width of the page, in 1/72nd's of an inch. The
112 * "width" measured depends on orientation.
114 * @return The width of the page.
116 public double
117 getWidth()
119 return(paper.getWidth());
122 /*************************************************************************/
125 * This method returns the height of the page, in 1/72nd's of an inch.
126 * The "height" measured depends on the orientation.
128 * @return The height of the page.
130 public double
131 getHeight()
133 return(paper.getHeight());
136 /*************************************************************************/
139 * This method returns the X coordinate value of the upper leftmost
140 * drawable area of the paper.
142 * @return The upper leftmost imageable X coordinate.
144 public double
145 getImageableX()
147 return(paper.getImageableX());
150 /*************************************************************************/
153 * This method returns the Y coordinate value of the upper leftmost
154 * drawable area of the paper.
156 * @return The upper leftmost imageable Y coordinate.
158 public double
159 getImageableY()
161 return(paper.getImageableY());
164 /*************************************************************************/
167 * This method returns the imageable width of the paper, in 1/72nd's of
168 * an inch.
170 * @return The imageable width of the paper.
172 public double
173 getImageableWidth()
175 return(paper.getImageableWidth());
178 /*************************************************************************/
181 * This method returns the imageable height of the paper, in 1/72nd's of
182 * an inch.
184 * @return The imageable height of the paper.
186 public double getImageableHeight()
188 return(paper.getImageableHeight());
191 /*************************************************************************/
194 * Returns a copy of the <code>paper</code> object being used for this
195 * page format.
197 * @return A copy of the <code>Paper</code> object for this format.
199 public Paper
200 getPaper()
202 return((Paper)paper.clone());
205 /*************************************************************************/
208 * Sets the <code>Paper</code> object to be used by this page format.
210 * @param paper The new <code>Paper</code> object for this page format.
212 public void
213 setPaper(Paper paper)
215 this.paper = paper;
218 /*************************************************************************/
221 * This method returns the current page orientation. The value returned
222 * will be one of the page orientation constants from this class.
224 * @return The current page orientation.
226 public int
227 getOrientation()
229 return(orientation);
232 /*************************************************************************/
235 * This method sets the page orientation for this format to the
236 * specified value. It must be one of the page orientation constants
237 * from this class or an exception will be thrown.
239 * @param orientation The new page orientation.
241 * @exception IllegalArgumentException If the specified page orientation
242 * value is not one of the constants from this class.
244 public void
245 setOrientation(int orientation) throws IllegalArgumentException
247 if ((orientation != PORTRAIT) &&
248 (orientation != LANDSCAPE) &&
249 (orientation != REVERSE_LANDSCAPE))
250 throw new IllegalArgumentException("Bad page orientation value: " +
251 orientation);
253 this.orientation = orientation;
256 /*************************************************************************/
259 * This method returns a matrix used for transforming user space
260 * coordinates to page coordinates. The value returned will be six
261 * doubles as described in <code>java.awt.geom.AffineTransform</code>.
263 * @return The transformation matrix for this page format.
265 public double[]
266 getMatrix()
268 throw new RuntimeException("Not implemented since I don't know what to do");
271 /*************************************************************************/
274 * This method returns a copy of this object.
276 * @return A copy of this object.
278 public Object
279 clone()
283 return(super.clone());
285 catch(CloneNotSupportedException e)
287 return(null);
291 } // class PageFormat