+++ /dev/null
-/* Copyright (C) 2000 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.xlib;
-
-import gnu.gcj.RawData;
-import java.awt.Rectangle;
-
-/**
- * An X11 graphics context. Unlike a traditional X11 graphics
- * context, the target drawable is part of the GC state.
- *
- * Implementation notes: There is no need to do coalescing of changes
- * since Xlib will do this for us. The implementation relies on the
- * Xlib GC cache and will not try to be clever.
- *
- * @author Rolf W. Rasmussen <rolfwr@ii.uib.no>
- */
-public class GC implements Cloneable
-{
-
- public GC(Drawable target)
- {
- this.target = target;
- initStructure(null);
- }
-
- public Object clone()
- {
- GC gcClone = (GC) super.clone();
- gcClone.structure = null;
- gcClone.initStructure(this);
- gcClone.updateClip();
- return gcClone;
- }
-
- private native void initStructure(GC copyFrom);
-
- public GC create()
- {
- return (GC) clone();
- }
-
- public void finalize()
- {
- disposeImpl();
- }
-
- public void dispose()
- {
- disposeImpl();
- }
-
- public synchronized native void disposeImpl();
-
- public native void setForeground(long pixel);
- public native void setFont(gnu.gcj.xlib.Font font);
-
- /**
- * Set the clip region for the graphics operations performed by the
- * GC.
- *
- * This is one of the few costly operations of this class. It is
- * suggested that the clip is only set or changed if really
- * necessary. Higher level APIs can make such optimizations
- * transparent.
- *
- * @param rectangles the union of these rectangles describe the clip
- * region.
- */
- public void setClipRectangles(Rectangle[] rectangles)
- {
- clip = new Clip(rectangles);
- updateClip();
- }
-
- public native void drawString(String text, int x, int y);
- public native void drawLine(int x1, int y1, int x2, int y2);
- public native void drawRectangle(int x, int y, int w, int h);
-
- public native void fillRectangle(int x, int y, int w, int h);
-
- /**
- *
- * Clear area using the background pixel or pixmap of the drawable.
- * Note that this operation does not adhere to the current clip.
- */
- public native void clearArea(int x, int y, int w, int h,
- boolean exposures);
-
-
- public native void putImage(XImage image,
- int srcX, int srcY,
- int destX, int destY,
- int width, int height);
-
- public Drawable getDrawable()
- {
- return target;
- }
-
- private native void updateClip();
-
- private Drawable target;
- private RawData structure;
- private Clip clip;
-}
-