diff options
author | sgilbertson <sgilbertson@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-08-25 19:02:29 +0000 |
---|---|---|
committer | sgilbertson <sgilbertson@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-08-25 19:02:29 +0000 |
commit | 8c8125ea529bfedac13ece8d1769d2097760052b (patch) | |
tree | cf8eb4ec21e611ee7dbea198fd5f8dce39ee903d /libjava/gnu/gcj | |
parent | 8b8f063f8f15d11ec66d8cda853221827857706e (diff) | |
download | gcc-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.java | 2 | ||||
-rw-r--r-- | libjava/gnu/gcj/xlib/GC.java | 5 | ||||
-rw-r--r-- | libjava/gnu/gcj/xlib/XAnyEvent.java | 42 | ||||
-rw-r--r-- | libjava/gnu/gcj/xlib/natDrawable.cc | 20 | ||||
-rw-r--r-- | libjava/gnu/gcj/xlib/natGC.cc | 15 |
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); +} |