[kaffe] CVS kaffe (jserv): Qt AWT backend cleanup

Kaffe CVS cvs-commits at kaffe.org
Fri Jul 9 19:05:28 PDT 2004


PatchSet 4921 
Date: 2004/07/10 01:58:26
Author: jserv
Branch: HEAD
Tag: (none) 
Log:
Qt AWT backend cleanup

	* libraries/clib/awt/qt/imggif.cc,
	libraries/clib/awt/qt/imgjpeg.cc,
	libraries/clib/awt/qt/imgpng.cc:
	removed.

	* libraries/clib/awt/qt/Makefile.am,
	libraries/clib/awt/qt/Makefile.in:
	Remove useless imggif.cc, imgjpeg.cc, and imgpng.cc
	because Qt AWT backend handles images via Qt toolkit.
	Update copyright note.

	* libraries/clib/awt/qt/cbd.cc,
	libraries/clib/awt/qt/clr.cc,
	libraries/clib/awt/qt/evt.cc,
	libraries/clib/awt/qt/evt.h,
	libraries/clib/awt/qt/fnt.cc,
	libraries/clib/awt/qt/gra.cc,
	libraries/clib/awt/qt/img.cc,
	libraries/clib/awt/qt/keysyms.h,
	libraries/clib/awt/qt/tlk.cc,
	libraries/clib/awt/qt/tlkprops.h,
	libraries/clib/awt/qt/toolkit.h,
	libraries/clib/awt/qt/wnd.cc:
	Clean up X specific comments and macros for advanced
	refactoring.
	Better way to dump debug messages.
	Update copyright note.

Members: 
	ChangeLog:1.2487->1.2488 
	libraries/clib/awt/qt/Makefile.am:1.8->1.9 
	libraries/clib/awt/qt/Makefile.in:1.58->1.59 
	libraries/clib/awt/qt/cbd.cc:1.2->1.3 
	libraries/clib/awt/qt/clr.cc:1.3->1.4 
	libraries/clib/awt/qt/evt.cc:1.5->1.6 
	libraries/clib/awt/qt/evt.h:1.1->1.2 
	libraries/clib/awt/qt/fnt.cc:1.3->1.4 
	libraries/clib/awt/qt/gra.cc:1.2->1.3 
	libraries/clib/awt/qt/img.cc:1.4->1.5 
	libraries/clib/awt/qt/keysyms.h:1.2->1.3 
	libraries/clib/awt/qt/tlk.cc:1.3->1.4 
	libraries/clib/awt/qt/tlkprops.h:1.1->1.2 
	libraries/clib/awt/qt/toolkit.h:1.3->1.4 
	libraries/clib/awt/qt/wnd.cc:1.3->1.4 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.2487 kaffe/ChangeLog:1.2488
--- kaffe/ChangeLog:1.2487	Fri Jul  9 16:19:21 2004
+++ kaffe/ChangeLog	Sat Jul 10 01:58:26 2004
@@ -1,3 +1,33 @@
+2004-07-10  Jim Huang  <jserv at kaffe.org>
+
+	* libraries/clib/awt/qt/imggif.cc,
+	libraries/clib/awt/qt/imgjpeg.cc,
+	libraries/clib/awt/qt/imgpng.cc:
+	removed.
+	
+	* libraries/clib/awt/qt/Makefile.am,
+	libraries/clib/awt/qt/Makefile.in:
+	Remove useless imggif.cc, imgjpeg.cc, and imgpng.cc
+	because Qt AWT backend handles images via Qt toolkit.
+	Update copyright note.
+
+	* libraries/clib/awt/qt/cbd.cc,
+	libraries/clib/awt/qt/clr.cc,
+	libraries/clib/awt/qt/evt.cc,
+	libraries/clib/awt/qt/evt.h,
+	libraries/clib/awt/qt/fnt.cc,
+	libraries/clib/awt/qt/gra.cc,
+	libraries/clib/awt/qt/img.cc,
+	libraries/clib/awt/qt/keysyms.h,
+	libraries/clib/awt/qt/tlk.cc,
+	libraries/clib/awt/qt/tlkprops.h,
+	libraries/clib/awt/qt/toolkit.h,
+	libraries/clib/awt/qt/wnd.cc:
+	Clean up X specific comments and macros for advanced
+	refactoring.
+	Better way to dump debug messages.
+	Update copyright note.
+
 2004-07-09  Dalibor Topic  <robilad at kaffe.org>
 
 	* libraries/javalib/profiles/default/coreawt.files,
Index: kaffe/libraries/clib/awt/qt/Makefile.am
diff -u kaffe/libraries/clib/awt/qt/Makefile.am:1.8 kaffe/libraries/clib/awt/qt/Makefile.am:1.9
--- kaffe/libraries/clib/awt/qt/Makefile.am:1.8	Thu Jan 15 02:29:42 2004
+++ kaffe/libraries/clib/awt/qt/Makefile.am	Sat Jul 10 01:58:25 2004
@@ -1,8 +1,11 @@
-# QT-embedded-based AWT support for standard Java libraries
+# Qt AWT backend for Kaffe
 #
 # Copyright (c) 2001-2002
-#	Dialogue Technologies, Inc.  All rights reserved.
-# Author: Murphy Chen, Ken-Hao Liu
+#	Murphy Chen, Ken-Hao Liu from Dialogue Technologies, Inc.
+#	All rights reserved.
+#
+# Copyright (c) 2002, 2003, 2004
+#	Kaffe.org contributors, see ChangeLog for details.  All rights reserved.
 #
 # See the file "license.terms" for information on usage and redistribution 
 # of this file. 
@@ -50,9 +53,6 @@
 
 CLEANFILES = so_locations $(BUILT_SOURCES)
 
-EXTRA_DIST = evt.h \
-	imggif.cc \
-	imgjpeg.cc \
-	imgpng.cc
+EXTRA_DIST = evt.h
 
 
Index: kaffe/libraries/clib/awt/qt/Makefile.in
diff -u kaffe/libraries/clib/awt/qt/Makefile.in:1.58 kaffe/libraries/clib/awt/qt/Makefile.in:1.59
--- kaffe/libraries/clib/awt/qt/Makefile.in:1.58	Wed Jul  7 19:34:42 2004
+++ kaffe/libraries/clib/awt/qt/Makefile.in	Sat Jul 10 01:58:25 2004
@@ -14,14 +14,17 @@
 
 @SET_MAKE@
 
-# QT-embedded-based AWT support for standard Java libraries
+# Qt AWT backend for Kaffe
 #
 # Copyright (c) 2001-2002
-#	Dialogue Technologies, Inc.  All rights reserved.
-# Author: Murphy Chen, Ken-Hao Liu
+#	Murphy Chen, Ken-Hao Liu from Dialogue Technologies, Inc.
+#	All rights reserved.
 #
-# See the file "license.terms" for information on usage and redistribution 
-# of this file. 
+# Copyright (c) 2002, 2003, 2004
+#	Kaffe.org contributors, see ChangeLog for details.  All rights reserved.
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file.
 
 
 SOURCES = $(libawt_la_SOURCES) $(nodist_libawt_la_SOURCES)
@@ -387,10 +390,7 @@
 
 BUILT_SOURCES = $(libawt_la_MOC)
 CLEANFILES = so_locations $(BUILT_SOURCES)
-EXTRA_DIST = evt.h \
-	imggif.cc \
-	imgjpeg.cc \
-	imgpng.cc
+EXTRA_DIST = evt.h
 
 all: $(BUILT_SOURCES)
 	$(MAKE) $(AM_MAKEFLAGS) all-am
Index: kaffe/libraries/clib/awt/qt/cbd.cc
diff -u kaffe/libraries/clib/awt/qt/cbd.cc:1.2 kaffe/libraries/clib/awt/qt/cbd.cc:1.3
--- kaffe/libraries/clib/awt/qt/cbd.cc:1.2	Mon Dec  2 14:35:53 2002
+++ kaffe/libraries/clib/awt/qt/cbd.cc	Sat Jul 10 01:58:25 2004
@@ -4,6 +4,9 @@
  * Copyright (c) 1998
  *      Transvirtual Technologies, Inc.  All rights reserved.
  *
+ * Copyright (c) 2002, 2003, 2004
+ *	Kaffe.org contributors, see ChangeLog for details.  All rights reserved.
+ *
  * See the file "license.terms" for information on usage and redistribution 
  * of this file. 
  */
@@ -22,132 +25,14 @@
 typedef void ClipBoard;
 QString cbdText;
 int cbdDirty;
-/*****************************************************************************************
- * internal event handling functions
- *  (note that non of them gets back to Java via events (->return 0);
- */
-#if 0
-jobject
-selectionClear ( JNIEnv* env, Toolkit* X )
-{
-  env->CallStaticVoidMethod( NativeClipboard, lostOwnership);
-
-  return 0; /* don't pass event to Java */
-}
-jobject
-selectionRequest ( JNIEnv* env, Toolkit* X )
-{
-  //XEvent     e;
-  char       *mime;
-  jstring    jMimeType;
-  jbyteArray jData;
-  jbyte      *data;
-  jboolean   isCopy;
-  int        len;
-  //Atom       target = X->event.xselectionrequest.target;
-
-  if ( target == JAVA_OBJECT )
-	mime = "application/x-java-serialized-object";
-  else if ( target == XA_STRING )
-	mime = "text/plain; charset=unicode";
-  else
-	mime = XGetAtomName( X->dsp, target);
 
-  jMimeType = env->NewStringUTF( (const char*) mime);
-  jData = env->CallStaticObjectMethod( NativeClipboard, getNativeData, jMimeType);
-
-  if ( jData ) {
-	data = env->GetByteArrayElements( jData, &isCopy);
-	len = env->GetArrayLength( jData);
-
-	//XChangeProperty( X->dsp,
-	//				 X->event.xselectionrequest.requestor,
-	//				 X->event.xselectionrequest.property,
-	//				 X->event.xselectionrequest.target,
-	//				 8, PropModeReplace, data, len);
-
-	env->ReleaseByteArrayElements( jData, data, JNI_ABORT);
-	//e.xselection.property  = X->event.xselectionrequest.property;
-  }
-  else {
-	//e.xselection.property  = None;  /* format not supported */
-  }
-/*
-  e.xselection.type      = SelectionNotify;
-  e.xselection.requestor = X->event.xselectionrequest.requestor;
-  e.xselection.selection = X->event.xselectionrequest.selection;
-  e.xselection.target    = target;
-  e.xselection.time      = X->event.xselectionrequest.time;
-
-  XSendEvent( X->dsp, e.xselection.requestor, False, 0, &e);
-*/
-  return 0; /* don't pass event to Java */
-}
-#endif
-
-/*
- * this is the low level helper - get the raw data of the requested 'target' format
- * returns :
- *   -1 if there is no selection owner
- *    0 if the owner cannot prvide the requested format
- *    length of *pData otherwise
- */
-#if 0
-static int
-getRawData ( Toolkit* X, Atom target, unsigned char** pData )
-{
-
-  int              i, format;
-  unsigned long    len = 8191, remain = 1;
-  Atom             type;
-  XEvent           e;
-
-  XConvertSelection( X->dsp, XA_PRIMARY, target, SELECTION_DATA, X->cbdOwner, CurrentTime);
-
-  for ( i=0; i<2; i++ ) {
-	XSync( X->dsp, False);
-	if ( XCheckTypedWindowEvent( X->dsp, X->cbdOwner, SelectionNotify, &e) ){
-	  if ( e.xselection.property == None )  /* target type not supported by owner */
-		return 0;
-
-	  while ( remain ) {
-		len += remain;
-		XGetWindowProperty( X->dsp, X->cbdOwner, SELECTION_DATA, 0, len, False,
-							AnyPropertyType, &type, &format, &len, &remain, pData);
-	  }
-	  return len;
-	}
-	sleep( 1);
-  }
-  return -1; /* no selection owner at all */
-}
-#endif
-
-/*****************************************************************************************
+/**
  * exported functions
  */
 
 jobject
 Java_java_awt_Toolkit_cbdInitClipboard ( JNIEnv* env, jclass clazz )
 {
-#if 0
-  unsigned long mask = 0;
-  XSetWindowAttributes attrs;
-
-  attrs.override_redirect = True;
-  mask |= CWOverrideRedirect;
-
-  /*
-   * We need an appropriate native owner/requestor (Window) since
-   * Java requestors/owners can be non-native Windows. We also
-   * don't want to introduce artificial events (with all their
-   * required infrastructure)
-   */
-  X->cbdOwner = XCreateWindow( X->dsp, X->root, -10000, -10000, 1, 1, 0, CopyFromParent,
-							   InputOutput, CopyFromParent, mask, &attrs);
-
-#endif
-
   NativeClipboard = env->FindClass( "java/awt/NativeClipboard");
   lostOwnership   = env->GetStaticMethodID( NativeClipboard,
 											   "lostOwnership", "()V");
@@ -157,8 +42,6 @@
 												  "createTransferable",
 												  "(Ljava/lang/String;[B)Ljava/awt/datatransfer/Transferable;");
 
-//  SELECTION_DATA   = XInternAtom( X->dsp, "SELECTION_DATA", False);
-//  JAVA_OBJECT      = XInternAtom( X->dsp, "application/x-java-serialized-object", False);
   return 0;
 }
 
@@ -173,14 +56,6 @@
 
   cbdDirty = 1;  
   return 1;
-
-#if 0
-  XSetSelectionOwner( X->dsp, XA_PRIMARY, X->cbdOwner, CurrentTime);
-  if ( XGetSelectionOwner( X->dsp, XA_PRIMARY) != X->cbdOwner )
-        return 0;
-  else
-        return 1;
-#endif
 }
 
 
@@ -229,7 +104,6 @@
 	jMimeType = env->NewStringUTF( (const char*)mime);
 	jdata = env->NewByteArray( ret);
 	env->SetByteArrayRegion( jdata, 0, ret, (jbyte*)data);
-	//XFree( data);
 
 	return env->CallStaticObjectMethod( NativeClipboard, createTransferable,
 										   jMimeType, jdata);
@@ -287,3 +161,4 @@
 #endif
   return NULL;
 }
+
Index: kaffe/libraries/clib/awt/qt/clr.cc
diff -u kaffe/libraries/clib/awt/qt/clr.cc:1.3 kaffe/libraries/clib/awt/qt/clr.cc:1.4
--- kaffe/libraries/clib/awt/qt/clr.cc:1.3	Tue Jun  3 23:32:07 2003
+++ kaffe/libraries/clib/awt/qt/clr.cc	Sat Jul 10 01:58:25 2004
@@ -4,6 +4,9 @@
  * Copyright (c) 1998
  *      Transvirtual Technologies, Inc.  All rights reserved.
  *
+ * Copyright (c) 2002, 2003, 2004
+ *	Kaffe.org contributors, see ChangeLog for details.  All rights reserved.
+ *
  * See the file "license.terms" for information on usage and redistribution 
  * of this file. 
  */
@@ -26,23 +29,18 @@
 extern QApplication *qapp;
 #endif
 
-/********************************************************************************
- * auxiliary functions
- */
-
-
-/********************************************************************************
+/**
  * common funcs
  */
 
 void initColorMapping(JNIEnv* env, jclass clazz,  Toolkit* X)
 {
-//  qapp->setColorSpec(QApplication::NormalColor);
+  // qapp->setColorSpec(QApplication::NormalColor);
   X->colorMode = QApplication::ManyColor;
 }
 
 
-/********************************************************************************
+/**
  * exported functions
  */
 
@@ -56,10 +54,9 @@
   if ( !X->colorMode )
 	initColorMapping( env, clazz, X);
 
-//  uint pixel = QColor(JRED(rgb), JGREEN(rgb), JBLUE(rgb)).pixel();
-//  AWT_DBG(printf("clrGetPixelValue: %8x -> %x (%d)\n", rgb, pixel, pixel));
+  // uint pixel = QColor(JRED(rgb), JGREEN(rgb), JBLUE(rgb)).pixel();
+  // AWT_DBG(qDebug("clrGetPixelValue: %8x -> %x (%d)\n", rgb, pixel, pixel));
 
-//  return pixel;
   return rgb;
 }
 
@@ -136,3 +133,4 @@
 
   return cm;
 }
+
Index: kaffe/libraries/clib/awt/qt/evt.cc
diff -u kaffe/libraries/clib/awt/qt/evt.cc:1.5 kaffe/libraries/clib/awt/qt/evt.cc:1.6
--- kaffe/libraries/clib/awt/qt/evt.cc:1.5	Tue Jun  3 23:32:07 2003
+++ kaffe/libraries/clib/awt/qt/evt.cc	Sat Jul 10 01:58:25 2004
@@ -4,6 +4,9 @@
  * Copyright (c) 1998
  *      Transvirtual Technologies, Inc.  All rights reserved.
  *
+ * Copyright (c) 2002, 2003, 2004
+ *	Kaffe.org contributors, see ChangeLog for details.  All rights reserved.
+ *
  * See the file "license.terms" for information on usage and redistribution 
  * of this file. 
  */
@@ -90,13 +93,11 @@
 }
 
 bool EventDispatcher::eventFilter(QObject* o, QEvent* e) {
-//  AWT_DBG(printf("event type=%d widget=%p\n", e->type(), o));
+  DBG(AWT, qDebug("event type=%d widget=%p\n", e->type(), o));
   QEvent* newEvent = NULL;
   EventPacket* packet = NULL;
   bool processed = false;
 
-//  getSourceIdx(X, o);
-
   if(X->srcIdx == 0)
     return QWidget::eventFilter(o, e);
 
@@ -115,7 +116,7 @@
     }
 
     case QEvent::Show: {
-      AWT_DBG(printf("Event Show: srcIdx=%d\n", X->srcIdx));
+      DBG(AWT, qDebug("Event Show: srcIdx=%d\n", X->srcIdx));
 
 #if (QT_VERSION < 300)
       newEvent = (QEvent*) new QShowEvent(true);
@@ -129,7 +130,7 @@
     }
     
     case QEvent::Hide: {
-      AWT_DBG(printf("Event Hid: srcIdx=%d\n", X->srcIdx));
+      DBG(AWT, qDebug("Event Hid: srcIdx=%d\n", X->srcIdx));
 
 #if (QT_VERSION < 300)
       newEvent = (QEvent*) new QHideEvent(true);
@@ -144,7 +145,7 @@
     
     case QEvent::FocusIn:
     case QEvent::FocusOut: {
-      AWT_DBG(printf("Event Focus: srcIdx=%d\n", X->srcIdx));
+      DBG(AWT, qDebug("Event Focus: srcIdx=%d\n", X->srcIdx));
       QFocusEvent* tmpFocusEvent = (QFocusEvent*)e;
       newEvent = (QEvent*) new QFocusEvent(tmpFocusEvent->type());
       ((QFocusEvent*)newEvent)->setReason(tmpFocusEvent->reason());
@@ -154,7 +155,7 @@
 
     case QEvent::KeyPress:
     case QEvent::KeyRelease: {
-      AWT_DBG(printf("Event Key: srcIdx=%d\n", X->srcIdx));
+      DBG(AWT, qDebug("Event Key: srcIdx=%d\n", X->srcIdx));
       QKeyEvent* tmpKeyEvent = (QKeyEvent*)e;
       newEvent = (QEvent*) new QKeyEvent(tmpKeyEvent->type(),tmpKeyEvent->key(),
 	tmpKeyEvent->ascii(), tmpKeyEvent->state(), tmpKeyEvent->text(),
@@ -166,7 +167,7 @@
     case QEvent::MouseButtonPress:
     case QEvent::MouseButtonRelease:
     case QEvent::MouseMove: {
-      AWT_DBG(printf("Event MouseButton: srcIdx=%d\n", X->srcIdx));
+      DBG(AWT, qDebug("Event MouseButton: srcIdx=%d\n", X->srcIdx));
       QMouseEvent* tmpMouseEvent = (QMouseEvent*)e;
       newEvent = (QEvent*) new QMouseEvent(tmpMouseEvent->type(),
         tmpMouseEvent->pos(), tmpMouseEvent->button(),
@@ -175,7 +176,7 @@
       break;
     }
     case QEvent::Paint: {
-      AWT_DBG(printf("Event Paint: srcIdx=%d\n", X->srcIdx));
+      DBG(AWT, qDebug("Event Paint: srcIdx=%d\n", X->srcIdx));
       QPaintEvent* tmpPaintEvent = (QPaintEvent*)e;
       newEvent = (QEvent*) new QPaintEvent(tmpPaintEvent->rect(),
         tmpPaintEvent->erased());
@@ -183,7 +184,7 @@
       break;
     }
     case QEvent::Move: {
-      AWT_DBG(printf("Event Move: srcIdx=%d\n", X->srcIdx));
+      DBG(AWT, qDebug("Event Move: srcIdx=%d\n", X->srcIdx));
       QPoint data(((QWidget*)o)->width(), ((QWidget*)o)->height());
       QMoveEvent* tmpMoveEvent = (QMoveEvent*)e;
       // Hide width/height in oldPos of newEvent
@@ -193,7 +194,7 @@
       break;
     }
     case QEvent::Resize: {
-      AWT_DBG(printf("Event Resize: srcIdx=%d\n", X->srcIdx));
+      DBG(AWT, qDebug("Event Resize: srcIdx=%d\n", X->srcIdx));
       QSize data(((QWidget*)o)->x(), ((QWidget*)o)->y());
       QResizeEvent* tmpResizeEvent = (QResizeEvent*)e;
       // Hide x/y in oldSize of newEvent
@@ -217,12 +218,8 @@
 void forwardFocus ( int cmd, void* wnd );  /* from wnd.c */
 
 
-/*****************************************************************************
- *
- */
-
-
-/* X-to-Java key modifier mapping
+/**
+ * Qt-X-Java key modifier mapping
  *                                     altGr   : PC
  *     shift       -    ctrl     alt    meta   : Java
  *     Shift    Lock    Ctrl    Mod1    Mod3   : X      symbol
@@ -281,369 +278,20 @@
   }
 };
 #endif
-#if 0
-static jobject
-keyNotify ( JNIEnv* env, Toolkit* X )
-{
-  KeySym          keysym;
-  XComposeStatus  ioStatus;
-  int             n, keyCode, keyChar, mod, idx;
-
-  /*
-   * We should eventually support input methods here.
-   * Note that 'keysym' is queried separately (with a standard state), to
-   * ensure the "one physical key -> one keycode" invariant
-   */
-  n = XLookupString( &X->event.xkey, X->buf, X->nBuf, 0, &ioStatus);
-  keysym = XKeycodeToKeysym( X->dsp, X->event.xkey.keycode, 0);
-
-  if ( (keysym >= 0xff00) || (n == 0) ) {
-	keyCode = FKeyCode[keysym & 0xff];
-	/*
-	 * There are some "control keys" that should generate KEY_TYPED events
-	 * (enter, cancel, backspace, del, tab). This is flagged by a negative keyCode
-	 * value and leads to non-zero keyChars
-	 */
-	if ( keyCode < 0 ){
-	  keyChar = keyCode = -keyCode;
-	}
-	else {  /* a "pure" function key */
-	  keyChar = 0;
-	}
-
-  }
-  else {
-	keyChar = (unsigned char)X->buf[0];
-	keyCode = LKeyCode[keysym & 0xff];
-  }
-
-  X->evtId = (X->event.xany.type == KeyPress)? KEY_PRESSED : KEY_RELEASED;
-  mod = keyMod( X->event.xkey.state);
-
-  if ( X->fwdIdx >= 0 ) {
-	/*
-	 * watch out - we still might have key events for a already
-	 * unregistered forwardee in the queue (since we fake X, we can't rely on it
-	 * to remove key events for a destroyed forwardee)
-	 */
-	if ( !checkSource( X, X->fwdIdx) )
-	  return 0;
-	idx = X->fwdIdx;
-  }
-  else {
-	idx = X->srcIdx;
-  }
-
-  return env->CallStaticObjectMethod( KeyEvent, getKeyEvent,
-                      idx, X->evtId, keyCode, keyChar, mod);
-}
-
-
-static jobject
-buttonNotify ( JNIEnv* env, Toolkit* X )
-{
-  if ( X->event.xany.type == ButtonPress ) {
-	X->evtId = MOUSE_PRESSED;
-
-	if ( (X->windows[X->srcIdx].w == X->focus) && (X->fwdIdx >= 0) )
-	  forwardFocus( FWD_REVERT, X->event.xany.window);
-  }
-}
-
-
-static jobject
-mouseNotify ( JNIEnv* env, Toolkit* X )
-{
-  X->evtId = (X->event.xany.type == EnterNotify) ? MOUSE_ENTERED : MOUSE_EXITED;
-
-  return env->CallStaticObjectMethod(  MouseEvent, getMouseEvent,
-    X->srcIdx, X->evtId,
-    0, X->event.xcrossing.x, X->event.xcrossing.y);
-}
-
-
-static jobject
-focusNotify ( JNIEnv* env, Toolkit* X )
-{
-  return 0;
-#if 0
-  int et = X->event.xany.type;
-  int idx = (X->focusFwd) ? X->fwdIdx : X->srcIdx;
-
-  /*
-   * get rid of all these fancy intermediate focus events (the real thing should
-   * come last), but be aware of that we might get events for already unregistered windows
-   * (in case the app isn't particulary careful with disposing windows), ending up in
-   * ArrayOutOfBoundsExceptions in the getFocusEvent
-   */
-  while ( XCheckMaskEvent( X->dsp, FocusChangeMask, &X->event) ){
-	X->pending--;
-	if ( getSourceIdx( X, X->event.xfocus.window) >= 0 ) {
-	  et = X->event.xany.type;
-	  idx = (X->focusFwd) ? X->fwdIdx : X->srcIdx;
-	}
-  }
-
-  if ( et == FocusIn ) {
-	X->evtId = FOCUS_GAINED;
-	X->focus = X->event.xany.window;
-  }
-  else {
-	X->evtId = FOCUS_LOST;
-	X->focus = 0;
-  }
-
-  /*
-   * No matter what the focus change is - if we get a REAL focus notification,
-   * it means that we will end focus forwarding (which is done on the owner-basis,
-   * not by means of a global grab mode)
-   */
-  resetFocusForwarding( X);
-
-  if ( checkSource( X, idx) ){
-	return env->CallStaticObjectMethod( FocusEvent, getFocusEvent, idx,
-										   X->evtId, JNI_FALSE);
-  }
-  else {
-	return 0;
-  }
-#endif
-}
-
-static jobject
-destroyNotify ( JNIEnv* env, Toolkit* X )
-{
-  /*
-   * We should get this just for windows which have been destroyed from an
-   * external client, since removeNotify() calls evtUnregisterSource() (i.e.
-   * removes windows properly from the dispatch table)
-   */
-  X->windows[X->srcIdx].flags &= ~WND_MAPPED;
-
-  return env->CallStaticObjectMethod( WMEvent, getWMEvent,
-				 X->srcIdx, (X->evtId = WM_KILLED));
-}
-
-
-static jobject
-mapNotify ( JNIEnv* env, Toolkit* X )
-{
-  int id = 0;
-
-  if ( X->event.xany.type == MapNotify ) {
-	if ( (X->windows[X->srcIdx].flags & WND_MAPPED) == 0 ){
-	  id = WINDOW_DEICONIFIED;
-	  X->windows[X->srcIdx].flags |= WND_MAPPED;
-	}
-  }
-  else {
-	if ( (X->windows[X->srcIdx].flags & WND_MAPPED) != 0 ){
-	  id = WINDOW_ICONIFIED;
-	  X->windows[X->srcIdx].flags &= ~WND_MAPPED;
-	}
-  }
-
-  if ( id ) {
-	return env->CallStaticObjectMethod( WindowEvent, getWindowEvent,
-		   X->srcIdx, id);
-  }
-  else {
-	// we do the ComponentEvent show/hide in Java
-	return 0;
-  }
-}
-
-static jobject
-clientMessage ( JNIEnv* env, Toolkit* X )
-{
-  return 0;
-#if 0
-  if ( X->windows[X->srcIdx].flags & WND_DESTROYED ){
-	/* we lost him, Jim */
-	return 0;
-  }
-
-  if ( X->event.xclient.message_type == WM_PROTOCOLS ) {
-	if ( X->event.xclient.data.l[0] == WM_DELETE_WINDOW ) {
-	  return env->CallStaticObjectMethod( WindowEvent, getWindowEvent,
-											 X->srcIdx, (X->evtId = WINDOW_CLOSING));
-	}
-	else if ( X->event.xclient.data.l[0] == WM_TAKE_FOCUS ) {
-	  XSetInputFocus( X->dsp, X->event.xany.window, RevertToParent, CurrentTime);
-	}
-  }
-
-  /*
-   * This is a workaround for the common problem of requesting the focus for not
-   * yet mapped windows (resulting in BadMatch errors)
-   */
-  else if ( X->event.xclient.message_type == RETRY_FOCUS ) {
-	if ( X->windows[X->srcIdx].flags & WND_MAPPED ) {
-	  XSetInputFocus( X->dsp, (Window)X->event.xclient.window, RevertToParent, CurrentTime);
-	  if ( X->event.xclient.data.l[1] ) {
-		/* we have a pending forward request, too */
-		forwardFocus( FWD_SET, X->event.xclient.data.l[1]);
-	  }
-	}
-  }
-
-  /*
-   * This is a workaround for X not having "owned" windows (popups), which do
-   * not "shade" the titlebar of their owner (i.e. don't indicate a change in
-   * the activeWindow). The only way to implement this reliable (w/o playing
-   * around with a window manager) is to not let these popups select on
-   * key events at all. But rather than to expose this to the Java side (like
-   * the JDK does), we hide this in the native layer
-   */
-  else if ( X->event.xclient.message_type == FORWARD_FOCUS ) {
-	switch ( X->event.xclient.data.l[0] ){
-	case FWD_SET:
-	  DBG( AWT_EVT, printf("FWD_SET: %lx (%d) %lx\n", X->event.xany.window, X->srcIdx, X->windows[X->srcIdx].owner));
-
-	  if ( (X->srcIdx != X->fwdIdx) && (X->focus == X->windows[X->srcIdx].owner) ){
-		X->fwdIdx = X->srcIdx;
-		X->focusFwd = X->event.xany.window;
-		return env->CallStaticObjectMethod( FocusEvent, getFocusEvent,
-											   X->srcIdx, FOCUS_GAINED, JNI_TRUE);
-	  }
-	  else {
-		return 0;
-	  }
-
-	case FWD_CLEAR:
-	  DBG( AWT_EVT, printf("FWD_CLEAR: %lx (%d) %lx\n", X->event.xany.window, X->srcIdx, X->windows[X->srcIdx].owner));
-
-	  if ( X->fwdIdx >= 0 ) {
-		resetFocusForwarding( X);
-		return env->CallStaticObjectMethod( FocusEvent, getFocusEvent,
-											   X->srcIdx, FOCUS_LOST, JNI_FALSE);
-	  }
-	  else {
-		return 0;
-	  }
-
-	case FWD_REVERT:
-	  DBG( AWT_EVT, printf("FWD_REVERT: %lx\n", X->event.xany.window));
-	  if ( X->event.xany.window == X->focus ) {
-		resetFocusForwarding( X);
-		return env->CallStaticObjectMethod( FocusEvent, getFocusEvent,
-											   X->srcIdx, FOCUS_GAINED, JNI_FALSE);
-	  }
-	}
-  }
-  return 0;
-#endif
-}
-
-static jobject
-reparentNotify ( JNIEnv* env, Toolkit* X )
-{
-  Window    window, parent, root;
-  jclass    clazz = 0;
-  jmethodID setDecoInsets = 0;
-  int       left, top, right, bottom;
-  int       x, y, w, h, bw, d;
-  int       xc, yc, wc, hc;
-  DecoInset *in = 0;
-  XSizeHints wmHints;
-  long      supHints;
-
-  if ( X->frameInsets.guess || X->dialogInsets.guess ) {
-	window = X->event.xreparent.window;
-	parent = X->event.xreparent.parent;
-
-	XGetGeometry( X->dsp, parent, &root, &x, &y, &w, &h, &bw, &d);
-	XGetGeometry( X->dsp, window, &root, &xc, &yc, &wc, &hc, &bw, &d);
-
-	left   = X->event.xreparent.x;
-	top    = X->event.xreparent.y;
-	right  = w - wc - left;
-	bottom = h - hc - top;
-
-	if ( (X->windows[X->srcIdx].flags & WND_DIALOG) && X->dialogInsets.guess ) {
-	  in = &(X->dialogInsets);
-	  if ( (left != in->left) || (top != in->top) ||
-		   (right != in->right) || (bottom != in->bottom) ){
-		clazz = env->FindClass( "java/awt/Dialog");
-		setDecoInsets = env->GetStaticMethodID( clazz, "setDecoInsets","(IIIII)V");
-	  }
-	  in->guess = 0;
-	}
-	else if ( X->frameInsets.guess ) {
-	  in = &(X->frameInsets);
-	  if ( (left != in->left) || (top != in->top) ||
-		   (right != in->right) || (bottom != in->bottom) ){
-		clazz = env->FindClass( "java/awt/Frame");
-		setDecoInsets = env->GetStaticMethodID( clazz, "setDecoInsets","(IIIII)V");
-	  }
-	  in->guess = 0;
-	}
-
-	if ( clazz ) {
-	  wc -= (left + right) - (in->left + in->right);
-	  hc -= (top + bottom) - (in->top + in->bottom);
-
-	  XCheckTypedWindowEvent( X->dsp, window, ConfigureNotify, &X->event);
-	  XCheckTypedWindowEvent( X->dsp, window, Expose, &X->event);
-	  XResizeWindow( X->dsp, window, wc, hc);
-
-	  in->left = left;
-	  in->top = top;
-	  in->right = right;
-	  in->bottom = bottom;
-
-	  env->CallStaticVoidMethod( clazz, setDecoInsets, 
-									in->top, in->left, in->bottom, in->right, X->srcIdx);
-
-	  /* check if this was a resize locked window (which has to be locked again) */
-	  XGetWMNormalHints( X->dsp, window, &wmHints, &supHints);
-	  if ( wmHints.min_width == wmHints.max_width ){
-		wmHints.min_width = wmHints.max_width = wc;
-		wmHints.min_height = wmHints.max_height = hc;
-		XSetWMNormalHints( X->dsp, window, &wmHints);
-	  }
-	}
-  }
-
-  return NULL;
-}
-
-typedef jobject (*EventFunc)(JNIEnv*,Toolkit*);
-
-static EventFunc  processEvent[LASTEvent] = {
-  keyNotify,            /* KeyPress                 2 */
-  keyNotify,            /* KeyRelease               3 */
-  mouseNotify,          /* EnterNotify              7 */
-  mouseNotify,          /* LeaveNotify              8 */
-  focusNotify,          /* FocusIn                  9 */
-  focusNotify,          /* FocusOut                10 */
-  destroyNotify,        /* DestroyNotify           17 */
-  mapNotify,            /* UnmapNotify             18 */
-  mapNotify,            /* MapNotify               19 */
-  reparentNotify,       /* ReparentNotify          21 */
-  selectionClear,       /* SelectionClear          29 */
-  selectionRequest,     /* SelectionRequest        30 */
-  clientMessage,        /* ClientMessage           33 */
-};
-#endif
-
-/*******************************************************************************
- *
- */
 
 jobject Java_java_awt_Toolkit_evtInit(JNIEnv* env, jclass clazz)
 {
   jclass Component;
 
-  AWT_DBG(printf("evtInit\n"));
+  DBG(AWT, qDebug("evtInit\n"));
 
   if ( ComponentEvent != NULL ){
-    AWT_DBG(printf("evtInit called twice\n"));
+    DBG(AWT, qDebug("evtInit called twice\n"));
     return NULL;
   }
 
   if(qapp == NULL) {
-    AWT_DBG(printf("evtInit: qapp not initialized!\n"));
+    DBG(AWT, qDebug("evtInit: qapp not initialized!\n"));
   }
 
   eventDispatcher = new EventDispatcher();
@@ -714,7 +362,7 @@
       
 
     case QEvent::Destroy: {
-      AWT_DBG(printf("processing Destroy: SrcIdx=%d\n", index));
+      DBG(AWT, qDebug("processing Destroy: SrcIdx=%d\n", index));
       /*
        * We should get this just for windows which have been destroyed from an
        * external client, since removeNotify() calls evtUnregisterSource() (i.e.
@@ -728,13 +376,13 @@
     }
     
     case QEvent::Reparent: {
-      AWT_DBG(printf("processing Reparent: SrcIdx=%d\n", index));
+      DBG(AWT, qDebug("processing Reparent: SrcIdx=%d\n", index));
       return NULL;
     }
 
     case QEvent::FocusIn:
     case QEvent::FocusOut: {
-      AWT_DBG(printf("processing %s: SrcIdx=%d\n",(event->type() == QEvent::FocusIn)?"FocusIn":"FocusOut",index));
+      DBG(AWT, qDebug("processing %s: SrcIdx=%d\n",(event->type() == QEvent::FocusIn)?"FocusIn":"FocusOut",index));
       int evtId;
       int et = event->type();
       if ( et == QEvent::FocusIn ) {
@@ -756,7 +404,7 @@
 
     case QEvent::KeyPress:
     case QEvent::KeyRelease: { 
-      AWT_DBG(printf("processing %s: SrcIdx=%d\n",(event->type() == QEvent::KeyPress)?"KeyPress":"KeyRelease",index));
+      DBG(AWT, qDebug("processing %s: SrcIdx=%d\n",(event->type() == QEvent::KeyPress)?"KeyPress":"KeyRelease",index));
       QKeyEvent *keyEvent = (QKeyEvent*)event;
       int             n, keyCode, keyChar, mod;
       
@@ -793,7 +441,7 @@
       int evtId = (((QEvent*)keyEvent)->type() == QEvent::KeyPress)? KEY_PRESSED : KEY_RELEASED;
       mod = keyMod(keyEvent->state());
       
-      AWT_DBG(printf("KeyEvent: idx=%d keyCode=%d keyChar=%c mod=%d\n", index, keyCode,keyChar,mod));
+      DBG(AWT, qDebug("KeyEvent: idx=%d keyCode=%d keyChar=%c mod=%d\n", index, keyCode,keyChar,mod));
 
       return env->CallStaticObjectMethod( KeyEvent, getKeyEvent,
                                           index, evtId, keyCode, keyChar, mod);
@@ -801,7 +449,7 @@
     }
     
     case QEvent::MouseButtonPress: {
-      AWT_DBG(printf("processing MouseButtonPress Event SrcIdx=%d\n", index));
+      DBG(AWT, qDebug("processing MouseButtonPress Event SrcIdx=%d\n", index));
       QMouseEvent* mouseEvent = (QMouseEvent*)event;
       // check the diff between event.xbutton.button and QMouseEvent::button()
       if (checkSource( X, index) ){
@@ -816,7 +464,7 @@
         mouseEvent->x(), mouseEvent->y());
     }
     case QEvent::MouseButtonRelease: {
-      AWT_DBG(printf("processing MouseButtonRelease Event SrcIdx=%d\n", index));
+      DBG(AWT, qDebug("processing MouseButtonRelease Event SrcIdx=%d\n", index));
       QMouseEvent* mouseEvent = (QMouseEvent*)event;
       // check the diff between event.xbutton.button and QMouseEvent::button()
       return env->CallStaticObjectMethod(MouseEvent, getMouseEvent,
@@ -824,21 +472,21 @@
         mouseEvent->x(), mouseEvent->y());
     }
     case QEvent::MouseMove: {
-      AWT_DBG(printf("processing MouseMove Event SrcIdx=%d\n", index));
+      DBG(AWT, qDebug("processing MouseMove Event SrcIdx=%d\n", index));
       QMouseEvent* mouseEvent = (QMouseEvent*)event;
       return env->CallStaticObjectMethod(MouseEvent, getMouseEvent,
         index, MOUSE_MOVED, 0,
         mouseEvent->x(), mouseEvent->y());
     }
     case QEvent::Paint: {
-      AWT_DBG(printf("processing Paint Event SrcIdx=%d\n", index));
+      DBG(AWT, qDebug("processing Paint Event SrcIdx=%d\n", index));
       QPaintEvent* paintEvent = (QPaintEvent*)event;
       QRect rect=paintEvent->rect();
       return env->CallStaticObjectMethod(PaintEvent, getPaintEvent,
         index, UPDATE, rect.x(), rect.y(), rect.width(), rect.height());
     }
     case QEvent::Move: {
-      AWT_DBG(printf("processing Move Event SrcIdx=%d\n", index));
+      DBG(AWT, qDebug("processing Move Event SrcIdx=%d\n", index));
       QMoveEvent* moveEvent = (QMoveEvent*)event;
       QPoint pos, data;
       pos = moveEvent->pos();
@@ -847,7 +495,7 @@
         index, COMPONENT_RESIZED, pos.x(), pos.y(), data.x(), data.y());
     }
     case QEvent::Resize: {
-      AWT_DBG(printf("processing Resize Event SrcIdx=%d\n", index));
+      DBG(AWT, qDebug("processing Resize Event SrcIdx=%d\n", index));
       QResizeEvent* resizeEvent = (QResizeEvent*)event;
       QSize size, data;
       size = resizeEvent->size();
@@ -867,7 +515,7 @@
   QEvent *event;
   int index;
 
-  //AWT_DBG(printf("getNextEvent..\n"));
+  DBG(AWT, qDebug("getNextEvent..\n"));
   pollJavaClipboard(env);
 
   if (g_event_queue.count()) {
@@ -879,7 +527,6 @@
     delete packet;
   }

*** Patch too long, truncated ***



More information about the kaffe mailing list