summaryrefslogtreecommitdiff
path: root/libjava/gnu/gcj
diff options
context:
space:
mode:
authorsgilbertson <sgilbertson@138bc75d-0d04-0410-961f-82ee72b054a4>2003-08-25 19:02:29 +0000
committersgilbertson <sgilbertson@138bc75d-0d04-0410-961f-82ee72b054a4>2003-08-25 19:02:29 +0000
commit8c8125ea529bfedac13ece8d1769d2097760052b (patch)
treecf8eb4ec21e611ee7dbea198fd5f8dce39ee903d /libjava/gnu/gcj
parent8b8f063f8f15d11ec66d8cda853221827857706e (diff)
downloadgcc-8c8125ea529bfedac13ece8d1769d2097760052b.tar.gz
* Makefile.am: added gnu/awt/xlib/XOffScreenImage.java.
* Makefile.in: re-generated. * gnu/awt/j2d/IntegerGraphicsState.java (ScreenCoupledImage): new interface. (drawImage): detect ScreenCoupledImage instances. * gnu/awt/xlib/XCanvasPeer.java (createImage) implemented. * gnu/awt/xlib/XEventLoop.java (createEvent): re-formatted, and rearranged to avoid null pointer. * gnu/awt/xlib/XGraphics.java (drawImage): added XOffScreenImage handling. * gnu/awt/xlib/XOffScreenImage.java: new file. * gnu/gcj/xlib/Drawable.java (getDepth): new native method. * gnu/gcj/xlib/GC.java (copyArea): new native method. * gnu/gcj/xlib/XAnyEvent.java (TYPE_KEY_PRESS): new constant. (TYPE_KEY_RELEASE): new constant. (TYPE_MOTION_NOTIFY): new constant. (TYPE_ENTER_NOTIFY): new constant. (TYPE_LEAVE_NOTIFY): new constant. (TYPE_FOCUS_IN): new constant. (TYPE_FOCUS_OUT): new constant. (TYPE_KEYMAP_NOTIFY): new constant. (TYPE_GRAPHICS_EXPOSE): new constant. (TYPE_NO_EXPOSE): new constant. (TYPE_VISIBILITY_NOTIFY): new constant. (TYPE_CREATE_NOTIFY): new constant. (TYPE_DESTROY_NOTIFY): new constant. (TYPE_MAP_REQUEST): new constant. (TYPE_CONFIGURE_REQUEST): new constant. (TYPE_GRAVITY_NOTIFY): new constant. (TYPE_RESIZE_REQUEST): new constant. (TYPE_CIRCULATE_NOTIFY): new constant. (TYPE_CIRCULATE_REQUEST): new constant. (TYPE_PROPERTY_NOTIFY): new constant. (TYPE_SELECTION_CLEAR): new constant. (TYPE_SELECTION_REQUEST): new constant. (TYPE_SELECTION_NOTIFY): new constant. (TYPE_COLORMAP_NOTIFY): new constant. (TYPE_MAPPING_NOTIFY): new constant. * gnu/gcj/xlib/natDrawable.cc (getDepth): new method. * gnu/gcj/xlib/natGC.cc (copyArea): new method * java/awt/Component.java (createImage): changed to use peer method. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70776 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/gnu/gcj')
-rw-r--r--libjava/gnu/gcj/xlib/Drawable.java2
-rw-r--r--libjava/gnu/gcj/xlib/GC.java5
-rw-r--r--libjava/gnu/gcj/xlib/XAnyEvent.java42
-rw-r--r--libjava/gnu/gcj/xlib/natDrawable.cc20
-rw-r--r--libjava/gnu/gcj/xlib/natGC.cc15
5 files changed, 76 insertions, 8 deletions
diff --git a/libjava/gnu/gcj/xlib/Drawable.java b/libjava/gnu/gcj/xlib/Drawable.java
index 551aca84c18..fa12ba2b3fe 100644
--- a/libjava/gnu/gcj/xlib/Drawable.java
+++ b/libjava/gnu/gcj/xlib/Drawable.java
@@ -79,6 +79,8 @@ public class Drawable extends XID
public native Rectangle getBounds(Rectangle rv);
+ public native int getDepth ();
+
private static final String MSG_XGETSUBIMAGE_FAILED =
"XGetSubImage() failed.";
diff --git a/libjava/gnu/gcj/xlib/GC.java b/libjava/gnu/gcj/xlib/GC.java
index b7eb0b682f4..24cd3bd1f53 100644
--- a/libjava/gnu/gcj/xlib/GC.java
+++ b/libjava/gnu/gcj/xlib/GC.java
@@ -138,6 +138,11 @@ public class GC implements Cloneable
int destX, int destY,
int width, int height);
+ public native void copyArea (Drawable source,
+ int srcX, int srcY,
+ int destX, int destY,
+ int width, int height);
+
public Drawable getDrawable()
{
return target;
diff --git a/libjava/gnu/gcj/xlib/XAnyEvent.java b/libjava/gnu/gcj/xlib/XAnyEvent.java
index e7a4a02b987..df1ad782d79 100644
--- a/libjava/gnu/gcj/xlib/XAnyEvent.java
+++ b/libjava/gnu/gcj/xlib/XAnyEvent.java
@@ -19,14 +19,40 @@ import gnu.gcj.RawData;
public final class XAnyEvent
{
// Must match the definitions in X.h:
- public static final int TYPE_BUTTON_PRESS = 4,
- TYPE_BUTTON_RELEASE = 5,
- TYPE_EXPOSE = 12,
- TYPE_UNMAP_NOTIFY = 18,
- TYPE_MAP_NOTIFY = 19,
- TYPE_REPARENT_NOTIFY = 21,
- TYPE_CONFIGURE_NOTIFY = 22,
- TYPE_CLIENT_MESSAGE = 33;
+ public static final int
+ TYPE_KEY_PRESS = 2,
+ TYPE_KEY_RELEASE = 3,
+ TYPE_BUTTON_PRESS = 4,
+ TYPE_BUTTON_RELEASE = 5,
+ TYPE_MOTION_NOTIFY = 6,
+ TYPE_ENTER_NOTIFY = 7,
+ TYPE_LEAVE_NOTIFY = 8,
+ TYPE_FOCUS_IN = 9,
+ TYPE_FOCUS_OUT = 10,
+ TYPE_KEYMAP_NOTIFY = 11,
+ TYPE_EXPOSE = 12,
+ TYPE_GRAPHICS_EXPOSE = 13,
+ TYPE_NO_EXPOSE = 14,
+ TYPE_VISIBILITY_NOTIFY = 15,
+ TYPE_CREATE_NOTIFY = 16,
+ TYPE_DESTROY_NOTIFY = 17,
+ TYPE_UNMAP_NOTIFY = 18,
+ TYPE_MAP_NOTIFY = 19,
+ TYPE_MAP_REQUEST = 20,
+ TYPE_REPARENT_NOTIFY = 21,
+ TYPE_CONFIGURE_NOTIFY = 22,
+ TYPE_CONFIGURE_REQUEST = 23,
+ TYPE_GRAVITY_NOTIFY = 24,
+ TYPE_RESIZE_REQUEST = 25,
+ TYPE_CIRCULATE_NOTIFY = 26,
+ TYPE_CIRCULATE_REQUEST = 27,
+ TYPE_PROPERTY_NOTIFY = 28,
+ TYPE_SELECTION_CLEAR = 29,
+ TYPE_SELECTION_REQUEST = 30,
+ TYPE_SELECTION_NOTIFY = 31,
+ TYPE_COLORMAP_NOTIFY = 32,
+ TYPE_CLIENT_MESSAGE = 33,
+ TYPE_MAPPING_NOTIFY = 34;
// Must match the definitions in X.h:
public final static long MASK_SUBSTRUCTURE_NOTIFY = 1L<<19,
diff --git a/libjava/gnu/gcj/xlib/natDrawable.cc b/libjava/gnu/gcj/xlib/natDrawable.cc
index 6cca3b74901..87c9d3572b2 100644
--- a/libjava/gnu/gcj/xlib/natDrawable.cc
+++ b/libjava/gnu/gcj/xlib/natDrawable.cc
@@ -43,6 +43,26 @@ jboolean gnu::gcj::xlib::Drawable::copyIntoXImageImpl(XImage* image,
return true;
}
+jint gnu::gcj::xlib::Drawable::getDepth ()
+{
+ ::Display* dpy = (::Display*) (getDisplay ()->display);
+ ::Window root;
+ int x, y;
+ unsigned int w, h, bw, depth;
+
+ Status status = XGetGeometry (dpy, getXID(), &root,
+ &x, &y, &w, &h,
+ &bw, &depth);
+ switch (status)
+ {
+ case BadDrawable:
+ throw new XException (display, status);
+ default:
+ ; // All OK, NOP.
+ }
+ return (jint)depth;
+}
+
java::awt::Rectangle*
gnu::gcj::xlib::Drawable::getBounds(java::awt::Rectangle* rv)
{
diff --git a/libjava/gnu/gcj/xlib/natGC.cc b/libjava/gnu/gcj/xlib/natGC.cc
index fd9fca84564..17bcbe67b5a 100644
--- a/libjava/gnu/gcj/xlib/natGC.cc
+++ b/libjava/gnu/gcj/xlib/natGC.cc
@@ -237,3 +237,18 @@ void gnu::gcj::xlib::GC::updateClip()
ordering);
// no fast fail
}
+
+void gnu::gcj::xlib::GC::copyArea (gnu::gcj::xlib::Drawable * source,
+ jint srcX, jint srcY,
+ jint destX, jint destY,
+ jint width, jint height)
+{
+ Display* display = target->getDisplay ();
+ ::Display* dpy = (::Display*) (display->display);
+ ::Drawable drawableXID = target->getXID ();
+ ::GC gc = (::GC) structure;
+ ::Drawable srcXID = source->getXID ();
+
+ XCopyArea (dpy, srcXID, drawableXID, gc, srcX, srcY, width, height,
+ destX, destY);
+}