aboutsummaryrefslogtreecommitdiff
path: root/libjava/gnu/gcj
diff options
context:
space:
mode:
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 551aca8..fa12ba2 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 b7eb0b6..24cd3bd 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 e7a4a02..df1ad78 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 6cca3b7..87c9d35 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 fd9fca8..17bcbe6 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);
+}