aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/lowagie/text/pdf/codec/wmf/MetaState.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/lowagie/text/pdf/codec/wmf/MetaState.java')
-rw-r--r--src/main/java/com/lowagie/text/pdf/codec/wmf/MetaState.java372
1 files changed, 0 insertions, 372 deletions
diff --git a/src/main/java/com/lowagie/text/pdf/codec/wmf/MetaState.java b/src/main/java/com/lowagie/text/pdf/codec/wmf/MetaState.java
deleted file mode 100644
index 97f18f4..0000000
--- a/src/main/java/com/lowagie/text/pdf/codec/wmf/MetaState.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/*
- * $Id: MetaState.java,v 1.5 2005/12/01 16:57:15 psoares33 Exp $
- * $Name: $
- *
- * Copyright 2001, 2002 Paulo Soares
- *
- * The contents of this file are subject to the Mozilla Public License Version 1.1
- * (the "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the License.
- *
- * The Original Code is 'iText, a free JAVA-PDF library'.
- *
- * The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
- * the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
- * All Rights Reserved.
- * Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
- * are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
- *
- * Contributor(s): all the names of the contributors are added in the source code
- * where applicable.
- *
- * Alternatively, the contents of this file may be used under the terms of the
- * LGPL license (the "GNU LIBRARY GENERAL PUBLIC LICENSE"), in which case the
- * provisions of LGPL are applicable instead of those above. If you wish to
- * allow use of your version of this file only under the terms of the LGPL
- * License and not to allow others to use your version of this file under
- * the MPL, indicate your decision by deleting the provisions above and
- * replace them with the notice and other provisions required by the LGPL.
- * If you do not delete the provisions above, a recipient may use your version
- * of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the MPL as stated above or under the terms of the GNU
- * Library General Public License as published by the Free Software Foundation;
- * either version 2 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU Library general Public License for more
- * details.
- *
- * If you didn't download this code from the following link, you should check if
- * you aren't using an obsolete version:
- * http://www.lowagie.com/iText/
- */
-
-package com.lowagie.text.pdf.codec.wmf;
-
-import java.util.ArrayList;
-import java.util.Stack;
-import java.awt.Point;
-import java.awt.Color;
-import com.lowagie.text.pdf.*;
-
-public class MetaState {
-
- public static final int TA_NOUPDATECP = 0;
- public static final int TA_UPDATECP = 1;
- public static final int TA_LEFT = 0;
- public static final int TA_RIGHT = 2;
- public static final int TA_CENTER = 6;
- public static final int TA_TOP = 0;
- public static final int TA_BOTTOM = 8;
- public static final int TA_BASELINE = 24;
-
- public static final int TRANSPARENT = 1;
- public static final int OPAQUE = 2;
-
- public static final int ALTERNATE = 1;
- public static final int WINDING = 2;
-
- public Stack savedStates;
- public ArrayList MetaObjects;
- public Point currentPoint;
- public MetaPen currentPen;
- public MetaBrush currentBrush;
- public MetaFont currentFont;
- public Color currentBackgroundColor = Color.white;
- public Color currentTextColor = Color.black;
- public int backgroundMode = OPAQUE;
- public int polyFillMode = ALTERNATE;
- public int lineJoin = 1;
- public int textAlign;
- public int offsetWx;
- public int offsetWy;
- public int extentWx;
- public int extentWy;
- public float scalingX;
- public float scalingY;
-
-
- /** Creates new MetaState */
- public MetaState() {
- savedStates = new Stack();
- MetaObjects = new ArrayList();
- currentPoint = new Point(0, 0);
- currentPen = new MetaPen();
- currentBrush = new MetaBrush();
- currentFont = new MetaFont();
- }
-
- public MetaState(MetaState state) {
- setMetaState(state);
- }
-
- public void setMetaState(MetaState state) {
- savedStates = state.savedStates;
- MetaObjects = state.MetaObjects;
- currentPoint = state.currentPoint;
- currentPen = state.currentPen;
- currentBrush = state.currentBrush;
- currentFont = state.currentFont;
- currentBackgroundColor = state.currentBackgroundColor;
- currentTextColor = state.currentTextColor;
- backgroundMode = state.backgroundMode;
- polyFillMode = state.polyFillMode;
- textAlign = state.textAlign;
- lineJoin = state.lineJoin;
- offsetWx = state.offsetWx;
- offsetWy = state.offsetWy;
- extentWx = state.extentWx;
- extentWy = state.extentWy;
- scalingX = state.scalingX;
- scalingY = state.scalingY;
- }
-
- public void addMetaObject(MetaObject object) {
- for (int k = 0; k < MetaObjects.size(); ++k) {
- if (MetaObjects.get(k) == null) {
- MetaObjects.set(k, object);
- return;
- }
- }
- MetaObjects.add(object);
- }
-
- public void selectMetaObject(int index, PdfContentByte cb) {
- MetaObject obj = (MetaObject)MetaObjects.get(index);
- if (obj == null)
- return;
- int style;
- switch (obj.getType()) {
- case MetaObject.META_BRUSH:
- currentBrush = (MetaBrush)obj;
- style = currentBrush.getStyle();
- if (style == MetaBrush.BS_SOLID) {
- Color color = currentBrush.getColor();
- cb.setColorFill(color);
- }
- else if (style == MetaBrush.BS_HATCHED) {
- Color color = currentBackgroundColor;
- cb.setColorFill(color);
- }
- break;
- case MetaObject.META_PEN:
- {
- currentPen = (MetaPen)obj;
- style = currentPen.getStyle();
- if (style != MetaPen.PS_NULL) {
- Color color = currentPen.getColor();
- cb.setColorStroke(color);
- cb.setLineWidth(Math.abs((float)currentPen.getPenWidth() * scalingX / extentWx));
- switch (style) {
- case MetaPen.PS_DASH:
- cb.setLineDash(18, 6, 0);
- break;
- case MetaPen.PS_DASHDOT:
- cb.setLiteral("[9 6 3 6]0 d\n");
- break;
- case MetaPen.PS_DASHDOTDOT:
- cb.setLiteral("[9 3 3 3 3 3]0 d\n");
- break;
- case MetaPen.PS_DOT:
- cb.setLineDash(3, 0);
- break;
- default:
- cb.setLineDash(0);
- break;
- }
- }
- break;
- }
- case MetaObject.META_FONT:
- {
- currentFont = (MetaFont)obj;
- break;
- }
- }
- }
-
- public void deleteMetaObject(int index) {
- MetaObjects.set(index, null);
- }
-
- public void saveState(PdfContentByte cb) {
- cb.saveState();
- MetaState state = new MetaState(this);
- savedStates.push(state);
- }
-
- public void restoreState(int index, PdfContentByte cb) {
- int pops;
- if (index < 0)
- pops = Math.min(-index, savedStates.size());
- else
- pops = Math.max(savedStates.size() - index, 0);
- if (pops == 0)
- return;
- MetaState state = null;
- while (pops-- != 0) {
- cb.restoreState();
- state = (MetaState)savedStates.pop();
- }
- setMetaState(state);
- }
-
- public void cleanup(PdfContentByte cb) {
- int k = savedStates.size();
- while (k-- > 0)
- cb.restoreState();
- }
-
- public float transformX(int x) {
- return ((float)x - offsetWx) * scalingX / extentWx;
- }
-
- public float transformY(int y) {
- return (1f - ((float)y - offsetWy) / extentWy) * scalingY;
- }
-
- public void setScalingX(float scalingX) {
- this.scalingX = scalingX;
- }
-
- public void setScalingY(float scalingY) {
- this.scalingY = scalingY;
- }
-
- public void setOffsetWx(int offsetWx) {
- this.offsetWx = offsetWx;
- }
-
- public void setOffsetWy(int offsetWy) {
- this.offsetWy = offsetWy;
- }
-
- public void setExtentWx(int extentWx) {
- this.extentWx = extentWx;
- }
-
- public void setExtentWy(int extentWy) {
- this.extentWy = extentWy;
- }
-
- public float transformAngle(float angle) {
- float ta = scalingY < 0 ? -angle : angle;
- return (float)(scalingX < 0 ? Math.PI - ta : ta);
- }
-
- public void setCurrentPoint(Point p) {
- currentPoint = p;
- }
-
- public Point getCurrentPoint() {
- return currentPoint;
- }
-
- public MetaBrush getCurrentBrush() {
- return currentBrush;
- }
-
- public MetaPen getCurrentPen() {
- return currentPen;
- }
-
- public MetaFont getCurrentFont() {
- return currentFont;
- }
-
- /** Getter for property currentBackgroundColor.
- * @return Value of property currentBackgroundColor.
- */
- public Color getCurrentBackgroundColor() {
- return currentBackgroundColor;
- }
-
- /** Setter for property currentBackgroundColor.
- * @param currentBackgroundColor New value of property currentBackgroundColor.
- */
- public void setCurrentBackgroundColor(Color currentBackgroundColor) {
- this.currentBackgroundColor = currentBackgroundColor;
- }
-
- /** Getter for property currentTextColor.
- * @return Value of property currentTextColor.
- */
- public Color getCurrentTextColor() {
- return currentTextColor;
- }
-
- /** Setter for property currentTextColor.
- * @param currentTextColor New value of property currentTextColor.
- */
- public void setCurrentTextColor(Color currentTextColor) {
- this.currentTextColor = currentTextColor;
- }
-
- /** Getter for property backgroundMode.
- * @return Value of property backgroundMode.
- */
- public int getBackgroundMode() {
- return backgroundMode;
- }
-
- /** Setter for property backgroundMode.
- * @param backgroundMode New value of property backgroundMode.
- */
- public void setBackgroundMode(int backgroundMode) {
- this.backgroundMode = backgroundMode;
- }
-
- /** Getter for property textAlign.
- * @return Value of property textAlign.
- */
- public int getTextAlign() {
- return textAlign;
- }
-
- /** Setter for property textAlign.
- * @param textAlign New value of property textAlign.
- */
- public void setTextAlign(int textAlign) {
- this.textAlign = textAlign;
- }
-
- /** Getter for property polyFillMode.
- * @return Value of property polyFillMode.
- */
- public int getPolyFillMode() {
- return polyFillMode;
- }
-
- /** Setter for property polyFillMode.
- * @param polyFillMode New value of property polyFillMode.
- */
- public void setPolyFillMode(int polyFillMode) {
- this.polyFillMode = polyFillMode;
- }
-
- public void setLineJoinRectangle(PdfContentByte cb) {
- if (lineJoin != 0) {
- lineJoin = 0;
- cb.setLineJoin(0);
- }
- }
-
- public void setLineJoinPolygon(PdfContentByte cb) {
- if (lineJoin == 0) {
- lineJoin = 1;
- cb.setLineJoin(1);
- }
- }
-
- public boolean getLineNeutral() {
- return (lineJoin == 0);
- }
-
-}