Merge jdk7-b48
authorlana
Wed, 18 Feb 2009 10:05:41 -0800
changeset 8885fbd9ea7def1
parent 861 14681728d6af
parent 887 8b96fb2d0c3a
child 889 8311105ea7a3
Merge
src/windows/native/sun/windows/UnicowsLoader.cpp
src/windows/native/sun/windows/UnicowsLoader.h
src/windows/native/sun/windows/awt_MMStub.cpp
src/windows/native/sun/windows/awt_MMStub.h
src/windows/native/sun/windows/awt_Multimon.h
src/windows/native/sun/windows/awt_Unicode.cpp
src/windows/native/sun/windows/awt_Unicode.h
src/windows/native/sun/windows/awt_dlls.cpp
src/windows/native/sun/windows/awt_dlls.h
     1.1 --- a/make/sun/awt/FILES_c_windows.gmk	Tue Feb 17 09:06:16 2009 -0800
     1.2 +++ b/make/sun/awt/FILES_c_windows.gmk	Wed Feb 18 10:05:41 2009 -0800
     1.3 @@ -153,7 +153,6 @@
     1.4  	awt_Menu.cpp \
     1.5  	awt_MenuBar.cpp \
     1.6  	awt_MenuItem.cpp \
     1.7 -	awt_MMStub.cpp \
     1.8  	awt_MouseEvent.cpp \
     1.9  	awt_Object.cpp \
    1.10  	awt_Palette.cpp \
    1.11 @@ -171,7 +170,6 @@
    1.12  	awt_TextComponent.cpp \
    1.13  	awt_TextField.cpp \
    1.14  	awt_Toolkit.cpp \
    1.15 -	awt_Unicode.cpp \
    1.16  	awt_Window.cpp \
    1.17  	awt_Win32GraphicsEnv.cpp \
    1.18  	awt_Win32GraphicsDevice.cpp \
    1.19 @@ -202,6 +200,4 @@
    1.20  	ThemeReader.cpp \
    1.21  	ComCtl32Util.cpp \
    1.22  	initIDs.cpp \
    1.23 -	awt_dlls.cpp \
    1.24 -	UnicowsLoader.cpp \
    1.25  	MouseInfo.cpp
     2.1 --- a/make/sun/awt/Makefile	Tue Feb 17 09:06:16 2009 -0800
     2.2 +++ b/make/sun/awt/Makefile	Wed Feb 18 10:05:41 2009 -0800
     2.3 @@ -47,7 +47,7 @@
     2.4  # sun/awt/resources       handled by java/awt/Makefile
     2.5  # sun/java2d/pisces       handled by sun/pisces/Makefile
     2.6  #
     2.7 -AUTO_FILES_JAVA_DIRS = sun/awt sun/java2d
     2.8 +AUTO_FILES_JAVA_DIRS = sun/awt sun/java2d com/sun/awt
     2.9  AUTO_JAVA_PRUNE = resources pisces
    2.10  
    2.11  ifeq ($(PLATFORM), windows)
    2.12 @@ -247,8 +247,14 @@
    2.13  ifeq ($(PLATFORM), windows)
    2.14  # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv WINDOWS
    2.15  OTHER_LDLIBS = kernel32.lib user32.lib gdi32.lib winspool.lib \
    2.16 -               imm32.lib ole32.lib uuid.lib $(JVMLIB) \
    2.17 -               shell32.lib
    2.18 +               imm32.lib ole32.lib uuid.lib shell32.lib \
    2.19 +               comdlg32.lib winmm.lib comctl32.lib delayimp.lib \
    2.20 +               $(JVMLIB) \
    2.21 +               /DELAYLOAD:user32.dll /DELAYLOAD:gdi32.dll \
    2.22 +               /DELAYLOAD:shell32.dll /DELAYLOAD:winmm.dll \
    2.23 +               /DELAYLOAD:winspool.drv /DELAYLOAD:imm32.dll \
    2.24 +               /DELAYLOAD:ole32.dll /DELAYLOAD:comdlg32.dll \
    2.25 +               /DELAYLOAD:comctl32.dll
    2.26  
    2.27  clean:: awt.clean
    2.28  
     3.1 --- a/make/sun/awt/make.depend	Tue Feb 17 09:06:16 2009 -0800
     3.2 +++ b/make/sun/awt/make.depend	Wed Feb 18 10:05:41 2009 -0800
     3.3 @@ -14,141 +14,135 @@
     3.4  
     3.5  $(OBJDIR)/AnyShort.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
     3.6  
     3.7 -$(OBJDIR)/awt_AWTEvent.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
     3.8 +$(OBJDIR)/awt_AWTEvent.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
     3.9  
    3.10 -$(OBJDIR)/awt_BitmapUtil.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.11 +$(OBJDIR)/awt_BitmapUtil.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.12  
    3.13 -$(OBJDIR)/awt_Brush.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.14 +$(OBJDIR)/awt_Brush.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.15  
    3.16 -$(OBJDIR)/awt_Button.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Button.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WButtonPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Button.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.17 +$(OBJDIR)/awt_Button.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Button.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WButtonPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Button.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.18  
    3.19 -$(OBJDIR)/awt_Canvas.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.20 +$(OBJDIR)/awt_Canvas.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.21  
    3.22 -$(OBJDIR)/awt_Checkbox.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Checkbox.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Checkbox.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.23 +$(OBJDIR)/awt_Checkbox.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Checkbox.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Checkbox.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.24  
    3.25 -$(OBJDIR)/awt_Choice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Choice.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WChoicePeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Choice.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.26 +$(OBJDIR)/awt_Choice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Choice.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WChoicePeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Choice.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.27  
    3.28 -$(OBJDIR)/awt_Clipboard.obj::	$(CLASSHDRDIR)/sun_awt_windows_WClipboard.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.29 +$(OBJDIR)/awt_Clipboard.obj::	$(CLASSHDRDIR)/sun_awt_windows_WClipboard.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.30  
    3.31 -$(OBJDIR)/awt_Color.obj::	$(CLASSHDRDIR)/sun_awt_windows_WColor.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Color.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.32 +$(OBJDIR)/awt_Color.obj::	$(CLASSHDRDIR)/sun_awt_windows_WColor.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Color.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.33  
    3.34 -$(OBJDIR)/awt_Component.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Color.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_MouseWheelEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_KeyboardFocusManager.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPanelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.35 +$(OBJDIR)/awt_Component.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Color.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_MouseWheelEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_KeyboardFocusManager.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPanelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.36  
    3.37 -$(OBJDIR)/awt_Container.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.38 +$(OBJDIR)/awt_Container.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.39  
    3.40 -$(OBJDIR)/awt_Cursor.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Cursor.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCustomCursor.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WGlobalCursorManager.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.41 +$(OBJDIR)/awt_Cursor.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Cursor.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WCustomCursor.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WGlobalCursorManager.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.42  
    3.43 -$(OBJDIR)/awt_DataTransferer.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_datatransfer_DataTransferer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDataTransferer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.44 +$(OBJDIR)/awt_DataTransferer.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_datatransfer_DataTransferer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDataTransferer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.45  
    3.46 -$(OBJDIR)/awt_Debug.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.47 +$(OBJDIR)/awt_Debug.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.48  
    3.49  $(OBJDIR)/awt_Desktop.obj::	../../../src/share/javavm/export/jni.h ../../../src/windows/javavm/export/jni_md.h
    3.50  
    3.51 -$(OBJDIR)/awt_DesktopProperties.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDesktopProperties.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.52 +$(OBJDIR)/awt_DesktopProperties.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDesktopProperties.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.53  
    3.54 -$(OBJDIR)/awt_Dialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.55 +$(OBJDIR)/awt_Dialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.56  
    3.57 -$(OBJDIR)/awt_Dimension.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.58 +$(OBJDIR)/awt_Dimension.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.59  
    3.60 -$(OBJDIR)/awt_dlls.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.61 +$(OBJDIR)/awt_DnDDS.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_dnd_SunDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.62  
    3.63 -$(OBJDIR)/awt_DnDDS.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_dnd_SunDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDragSourceContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.64 +$(OBJDIR)/awt_DnDDT.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDropTargetContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.65  
    3.66 -$(OBJDIR)/awt_DnDDT.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_dnd_DnDConstants.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDropTargetContextPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_DataTransferer.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.67 +$(OBJDIR)/awt_DrawingSurface.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.68  
    3.69 -$(OBJDIR)/awt_DrawingSurface.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.70 +$(OBJDIR)/awt_Event.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.71  
    3.72 -$(OBJDIR)/awt_Event.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.73 +$(OBJDIR)/awt_FileDialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.74  
    3.75 -$(OBJDIR)/awt_FileDialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.76 +$(OBJDIR)/awt_Font.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDefaultFontCharset.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFontPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.77  
    3.78 -$(OBJDIR)/awt_Font.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDefaultFontCharset.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFontPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.79 +$(OBJDIR)/awt_Frame.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/java_lang_Integer.h $(CLASSHDRDIR)/sun_awt_EmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.80  
    3.81 -$(OBJDIR)/awt_Frame.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/java_lang_Integer.h $(CLASSHDRDIR)/sun_awt_EmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFrame.h $(CLASSHDRDIR)/sun_awt_windows_WEmbeddedFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.82 +$(OBJDIR)/awt_GDIObject.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.83  
    3.84 -$(OBJDIR)/awt_GDIObject.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.85 -
    3.86 -$(OBJDIR)/awt_IconCursor.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.87 +$(OBJDIR)/awt_IconCursor.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.88  
    3.89  $(OBJDIR)/awt_ImageRep.obj::	$(CLASSHDRDIR)/sun_awt_image_ImageRepresentation.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
    3.90  
    3.91  $(OBJDIR)/awt_ImagingLib.obj::	$(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_image_BufferedImage.h $(CLASSHDRDIR)/java_awt_image_ConvolveOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_image_ImagingLib.h $(CLASSHDRDIR)/sun_awt_image_IntegerComponentRaster.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/share/native/sun/awt/medialib/safe_alloc.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/awt_Mlib.h
    3.92  
    3.93 -$(OBJDIR)/awt_InputEvent.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.94 +$(OBJDIR)/awt_InputEvent.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.95  
    3.96 -$(OBJDIR)/awt_InputMethod.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethodDescriptor.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
    3.97 +$(OBJDIR)/awt_InputMethod.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethod.h $(CLASSHDRDIR)/sun_awt_windows_WInputMethodDescriptor.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/common/locale_str.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
    3.98  
    3.99 -$(OBJDIR)/awt_InputTextInfor.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.100 +$(OBJDIR)/awt_InputTextInfor.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_InputTextInfor.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.101  
   3.102 -$(OBJDIR)/awt_Insets.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.103 +$(OBJDIR)/awt_Insets.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.104  
   3.105 -$(OBJDIR)/awt_KeyboardFocusManager.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_KeyboardFocusManager.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.106 +$(OBJDIR)/awt_KeyboardFocusManager.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_KeyboardFocusManager.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.107  
   3.108 -$(OBJDIR)/awt_KeyEvent.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.109 +$(OBJDIR)/awt_KeyEvent.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.110  
   3.111 -$(OBJDIR)/awt_Label.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Label.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WLabelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Label.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.112 +$(OBJDIR)/awt_Label.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Label.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WLabelPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Label.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.113  
   3.114 -$(OBJDIR)/awt_List.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.115 +$(OBJDIR)/awt_List.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dimension.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.116  
   3.117 -$(OBJDIR)/awt_Menu.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.118 +$(OBJDIR)/awt_Menu.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.119  
   3.120 -$(OBJDIR)/awt_MenuBar.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.121 +$(OBJDIR)/awt_MenuBar.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.122  
   3.123 -$(OBJDIR)/awt_MenuItem.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_CheckboxMenuItem.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.124 +$(OBJDIR)/awt_MenuItem.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_CheckboxMenuItem.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCheckboxMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.125  
   3.126  $(OBJDIR)/awt_Mlib.obj::	$(CLASSHDRDIR)/java_awt_image_BufferedImage.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt_Mlib.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.127  
   3.128 -$(OBJDIR)/awt_MMStub.obj::	../../../src/windows/native/sun/windows/awt_MMStub.h
   3.129 +$(OBJDIR)/awt_MouseEvent.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.130  
   3.131 -$(OBJDIR)/awt_MouseEvent.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MouseEvent.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.132 +$(OBJDIR)/awt_new.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.133  
   3.134 -$(OBJDIR)/awt_new.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.135 +$(OBJDIR)/awt_Object.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.136  
   3.137 -$(OBJDIR)/awt_Object.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.138 +$(OBJDIR)/awt_Palette.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_CustomPaletteDef.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.139  
   3.140 -$(OBJDIR)/awt_Palette.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_CustomPaletteDef.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.141 -
   3.142 -$(OBJDIR)/awt_Panel.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.143 +$(OBJDIR)/awt_Panel.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.144  
   3.145  $(OBJDIR)/awt_parseImage.obj::	$(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_image_BufferedImage.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_image_ImagingLib.h $(CLASSHDRDIR)/sun_awt_image_IntegerComponentRaster.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/awt_parseImage.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/share/native/sun/awt/medialib/awt_ImagingLib.h ../../../src/share/native/sun/awt/medialib/mlib_image_get.h ../../../src/share/native/sun/awt/medialib/mlib_image_types.h ../../../src/share/native/sun/awt/medialib/mlib_status.h ../../../src/share/native/sun/awt/medialib/mlib_types.h ../../../src/share/native/sun/awt/medialib/safe_alloc.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/awt_Mlib.h
   3.146  
   3.147 -$(OBJDIR)/awt_Pen.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.148 +$(OBJDIR)/awt_Pen.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.149  
   3.150 -$(OBJDIR)/awt_PopupMenu.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.151 +$(OBJDIR)/awt_PopupMenu.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Event.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.152  
   3.153 -$(OBJDIR)/awt_PrintControl.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.154 +$(OBJDIR)/awt_PrintControl.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.155  
   3.156 -$(OBJDIR)/awt_PrintDialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialog.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.157 +$(OBJDIR)/awt_PrintDialog.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialog.h $(CLASSHDRDIR)/sun_awt_windows_WPrintDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.158  
   3.159 -$(OBJDIR)/awt_PrintJob.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrinterJob.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.160 +$(OBJDIR)/awt_PrintJob.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPrinterJob.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.161  
   3.162 -$(OBJDIR)/awt_Rectangle.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Rectangle.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.163 +$(OBJDIR)/awt_Rectangle.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Rectangle.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.164  
   3.165 -$(OBJDIR)/awt_Robot.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WRobotPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Robot.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.166 +$(OBJDIR)/awt_Robot.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WRobotPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Robot.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.167  
   3.168 -$(OBJDIR)/awt_Scrollbar.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.169 +$(OBJDIR)/awt_Scrollbar.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.170  
   3.171 -$(OBJDIR)/awt_ScrollPane.obj::	$(CLASSHDRDIR)/java_awt_Adjustable.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_AdjustmentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_ScrollPane.h $(CLASSHDRDIR)/java_awt_ScrollPaneAdjustable.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollPanePeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_ScrollPane.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.172 +$(OBJDIR)/awt_ScrollPane.obj::	$(CLASSHDRDIR)/java_awt_Adjustable.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_AdjustmentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_Scrollbar.h $(CLASSHDRDIR)/java_awt_ScrollPane.h $(CLASSHDRDIR)/java_awt_ScrollPaneAdjustable.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollbarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WScrollPanePeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Scrollbar.h ../../../src/windows/native/sun/windows/awt_ScrollPane.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.173  
   3.174 -$(OBJDIR)/awt_TextArea.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextArea.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextAreaPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_TextArea.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.175 +$(OBJDIR)/awt_TextArea.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextArea.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextAreaPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_TextArea.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.176  
   3.177 -$(OBJDIR)/awt_TextComponent.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.178 +$(OBJDIR)/awt_TextComponent.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.179  
   3.180 -$(OBJDIR)/awt_TextField.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_TextField.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextFieldPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_TextField.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.181 +$(OBJDIR)/awt_TextField.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_TextComponent.h $(CLASSHDRDIR)/java_awt_TextField.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WTextFieldPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_KeyboardFocusManager.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_TextComponent.h ../../../src/windows/native/sun/windows/awt_TextField.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.182  
   3.183 -$(OBJDIR)/awt_Toolkit.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_ComponentPeer.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.184 +$(OBJDIR)/awt_Toolkit.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputMethodEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_List.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_ComponentPeer.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_PopupMenu.h $(CLASSHDRDIR)/java_awt_Toolkit.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WListPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WPopupMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Clipboard.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Cursor.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DesktopProperties.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_DnDDS.h ../../../src/windows/native/sun/windows/awt_DnDDT.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_InputEvent.h ../../../src/windows/native/sun/windows/awt_KeyEvent.h ../../../src/windows/native/sun/windows/awt_List.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_new.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PopupMenu.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.185  
   3.186 -$(OBJDIR)/awt_TrayIcon.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_ActionEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TrayIcon.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WTrayIconPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_TrayIcon.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.187 +$(OBJDIR)/awt_TrayIcon.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_ActionEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_InputEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_TrayIcon.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WTrayIconPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_AWTEvent.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_TrayIcon.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.188  
   3.189 -$(OBJDIR)/awt_Unicode.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.190 +$(OBJDIR)/awt_Win32GraphicsConfig.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsConfig.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.191  
   3.192 -$(OBJDIR)/awt_Win32GraphicsConfig.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsConfig.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsConfig.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.193 +$(OBJDIR)/awt_Win32GraphicsDevice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsDevice.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/awt/image/dither.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.194  
   3.195 -$(OBJDIR)/awt_Win32GraphicsDevice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_color_ColorSpace.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_image_DataBuffer.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsDevice.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/awt/image/dither.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/img_util_md.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.196 +$(OBJDIR)/awt_Win32GraphicsEnv.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsEnvironment.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.197  
   3.198 -$(OBJDIR)/awt_Win32GraphicsEnv.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_Win32GraphicsEnvironment.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.199 -
   3.200 -$(OBJDIR)/awt_Window.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Container.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_ComponentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.201 +$(OBJDIR)/awt_Window.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Container.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_ComponentEvent.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Insets.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Container.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_IconCursor.h ../../../src/windows/native/sun/windows/awt_Insets.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Panel.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.202  
   3.203  $(OBJDIR)/Blit.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_Blit.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   3.204  
   3.205 @@ -170,9 +164,9 @@
   3.206  
   3.207  $(OBJDIR)/ByteIndexed.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyByte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/Index12Gray.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   3.208  
   3.209 -$(OBJDIR)/CmdIDList.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.210 +$(OBJDIR)/CmdIDList.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/CmdIDList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.211  
   3.212 -$(OBJDIR)/ComCtl32Util.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.213 +$(OBJDIR)/ComCtl32Util.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/ComCtl32Util.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.214  
   3.215  $(OBJDIR)/D3DBlitLoops.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DBlitLoops.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntBgr.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgb.h ../../../src/share/native/sun/java2d/loops/Ushort565Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
   3.216  
   3.217 @@ -182,7 +176,7 @@
   3.218  
   3.219  $(OBJDIR)/D3DGlyphCache.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
   3.220  
   3.221 -$(OBJDIR)/D3DGraphicsDevice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DGraphicsDevice.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGraphicsDevice.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.222 +$(OBJDIR)/D3DGraphicsDevice.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DGraphicsDevice.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGraphicsDevice.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.223  
   3.224  $(OBJDIR)/D3DMaskBlit.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
   3.225  
   3.226 @@ -192,15 +186,15 @@
   3.227  
   3.228  $(OBJDIR)/D3DPaints.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
   3.229  
   3.230 -$(OBJDIR)/D3DPipelineManager.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBadHardware.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.231 +$(OBJDIR)/D3DPipelineManager.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBadHardware.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.232  
   3.233  $(OBJDIR)/D3DRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DRenderer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
   3.234  
   3.235 -$(OBJDIR)/D3DRenderQueue.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DBlitLoops.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskFill.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.236 +$(OBJDIR)/D3DRenderQueue.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DBlitLoops.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedOpCodes.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedRenderPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DBlitLoops.h ../../../src/windows/native/sun/java2d/d3d/D3DBufImgOps.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskBlit.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskFill.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.237  
   3.238 -$(OBJDIR)/D3DResourceManager.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.239 +$(OBJDIR)/D3DResourceManager.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h $(CLASSHDRDIR)/sun_java2d_SunGraphics2D.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPaints.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.240  
   3.241 -$(OBJDIR)/D3DSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.242 +$(OBJDIR)/D3DSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_BitmapUtil.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.243  
   3.244  $(OBJDIR)/D3DTextRenderer.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DTextRenderer.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedTextPipe.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/sun/font/AccelGlyphCache.h ../../../src/share/native/sun/font/fontscalerdefs.h ../../../src/share/native/sun/font/sunfontids.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DGlyphCache.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DRenderQueue.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DTextRenderer.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h
   3.245  
   3.246 @@ -216,7 +210,7 @@
   3.247  
   3.248  $(OBJDIR)/debug_util.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h
   3.249  
   3.250 -$(OBJDIR)/Devices.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.251 +$(OBJDIR)/Devices.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/java_awt_Transparency.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DContext.h $(CLASSHDRDIR)/sun_java2d_d3d_D3DSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelDeviceEventNotifier.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/ShaderList.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/d3d/D3DContext.h ../../../src/windows/native/sun/java2d/d3d/D3DMaskCache.h ../../../src/windows/native/sun/java2d/d3d/D3DPipeline.h ../../../src/windows/native/sun/java2d/d3d/D3DPipelineManager.h ../../../src/windows/native/sun/java2d/d3d/D3DResourceManager.h ../../../src/windows/native/sun/java2d/d3d/D3DSurfaceData.h ../../../src/windows/native/sun/java2d/d3d/D3DVertexCacher.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.252  
   3.253  $(OBJDIR)/Disposer.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
   3.254  
   3.255 @@ -240,19 +234,19 @@
   3.256  
   3.257  $(OBJDIR)/FourByteAbgrPre.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any4Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/FourByteAbgrPre.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   3.258  
   3.259 -$(OBJDIR)/GDIBlitLoops.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIBlitLoops.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.260 +$(OBJDIR)/GDIBlitLoops.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIBlitLoops.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.261  
   3.262 -$(OBJDIR)/GDIHashtable.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.263 +$(OBJDIR)/GDIHashtable.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.264  
   3.265 -$(OBJDIR)/GDIRenderer.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_geom_PathIterator.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIRenderer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.266 +$(OBJDIR)/GDIRenderer.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_geom_PathIterator.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIRenderer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.267  
   3.268 -$(OBJDIR)/GDIWindowSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIWindowSurfaceData.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.269 +$(OBJDIR)/GDIWindowSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_java2d_windows_GDIWindowSurfaceData.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.270  
   3.271  $(OBJDIR)/gifdecoder.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
   3.272  
   3.273  $(OBJDIR)/GraphicsPrimitiveMgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_GraphicsPrimitiveMgr.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   3.274  
   3.275 -$(OBJDIR)/Hashtable.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.276 +$(OBJDIR)/Hashtable.obj::	$(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.277  
   3.278  $(OBJDIR)/imageInitIDs.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/image/imageInitIDs.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
   3.279  
   3.280 @@ -282,9 +276,9 @@
   3.281  
   3.282  $(OBJDIR)/MaskFill.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/sun_java2d_loops_MaskFill.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   3.283  
   3.284 -$(OBJDIR)/MouseInfo.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.285 +$(OBJDIR)/MouseInfo.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.286  
   3.287 -$(OBJDIR)/ObjectList.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.288 +$(OBJDIR)/ObjectList.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.289  
   3.290  $(OBJDIR)/OGLBlitLoops.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLBlitLoops.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLBlitLoops.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h
   3.291  
   3.292 @@ -320,13 +314,13 @@
   3.293  
   3.294  $(OBJDIR)/ShapeSpanIterator.obj::	$(CLASSHDRDIR)/java_awt_geom_PathIterator.h $(CLASSHDRDIR)/sun_java2d_pipe_ShapeSpanIterator.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/pipe/PathConsumer2D.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   3.295  
   3.296 -$(OBJDIR)/ShellFolder2.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.297 +$(OBJDIR)/ShellFolder2.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.298  
   3.299  $(OBJDIR)/SpanClipRenderer.obj::	$(CLASSHDRDIR)/sun_java2d_pipe_RegionIterator.h $(CLASSHDRDIR)/sun_java2d_pipe_SpanClipRenderer.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
   3.300  
   3.301  $(OBJDIR)/SurfaceData.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/Disposer.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h
   3.302  
   3.303 -$(OBJDIR)/ThemeReader.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_ThemeReader.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.304 +$(OBJDIR)/ThemeReader.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_ThemeReader.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.305  
   3.306  $(OBJDIR)/ThreeByteBgr.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/Any3Byte.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   3.307  
   3.308 @@ -334,8 +328,6 @@
   3.309  
   3.310  $(OBJDIR)/TransformHelper.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h $(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_loops_TransformHelper.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/pipe/Region.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   3.311  
   3.312 -$(OBJDIR)/UnicowsLoader.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.313 -
   3.314  $(OBJDIR)/Ushort4444Argb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort4444Argb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   3.315  
   3.316  $(OBJDIR)/Ushort555Rgb.obj::	$(CLASSHDRDIR)/java_awt_AlphaComposite.h ../../../src/share/javavm/export/jni.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/sun/java2d/loops/AlphaMacros.h ../../../src/share/native/sun/java2d/loops/AlphaMath.h ../../../src/share/native/sun/java2d/loops/AnyShort.h ../../../src/share/native/sun/java2d/loops/ByteGray.h ../../../src/share/native/sun/java2d/loops/ByteIndexed.h ../../../src/share/native/sun/java2d/loops/GlyphImageRef.h ../../../src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.h ../../../src/share/native/sun/java2d/loops/IntArgb.h ../../../src/share/native/sun/java2d/loops/IntArgbBm.h ../../../src/share/native/sun/java2d/loops/IntArgbPre.h ../../../src/share/native/sun/java2d/loops/IntDcm.h ../../../src/share/native/sun/java2d/loops/IntRgb.h ../../../src/share/native/sun/java2d/loops/LineUtils.h ../../../src/share/native/sun/java2d/loops/LoopMacros.h ../../../src/share/native/sun/java2d/loops/ThreeByteBgr.h ../../../src/share/native/sun/java2d/loops/Ushort555Rgb.h ../../../src/share/native/sun/java2d/loops/UshortGray.h ../../../src/share/native/sun/java2d/pipe/SpanIterator.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/sun/java2d/j2d_md.h
   3.317 @@ -352,6 +344,6 @@
   3.318  
   3.319  $(OBJDIR)/WGLSurfaceData.obj::	$(CLASSHDRDIR)/java_awt_image_AffineTransformOp.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLContext.h $(CLASSHDRDIR)/sun_java2d_opengl_OGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_opengl_WGLSurfaceData.h $(CLASSHDRDIR)/sun_java2d_pipe_BufferedContext.h $(CLASSHDRDIR)/sun_java2d_pipe_hw_AccelSurface.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/gdefs.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/gl.h ../../../src/share/native/sun/java2d/opengl/J2D_GL/glext.h ../../../src/share/native/sun/java2d/opengl/OGLContext.h ../../../src/share/native/sun/java2d/opengl/OGLFuncMacros.h ../../../src/share/native/sun/java2d/opengl/OGLFuncs.h ../../../src/share/native/sun/java2d/opengl/OGLRenderQueue.h ../../../src/share/native/sun/java2d/opengl/OGLSurfaceData.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/gdefs_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/j2d_md.h ../../../src/windows/native/sun/java2d/opengl/J2D_GL/wglext.h ../../../src/windows/native/sun/java2d/opengl/OGLFuncs_md.h ../../../src/windows/native/sun/java2d/opengl/WGLGraphicsConfig.h ../../../src/windows/native/sun/java2d/opengl/WGLSurfaceData.h
   3.320  
   3.321 -$(OBJDIR)/WindowsFlags.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.322 +$(OBJDIR)/WindowsFlags.obj::	../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/WindowsFlags.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/stdhdrs.h
   3.323  
   3.324 -$(OBJDIR)/WPrinterJob.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_dlls.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h ../../../src/windows/native/sun/windows/UnicowsLoader.h
   3.325 +$(OBJDIR)/WPrinterJob.obj::	$(CLASSHDRDIR)/java_awt_AWTEvent.h $(CLASSHDRDIR)/java_awt_Component.h $(CLASSHDRDIR)/java_awt_Dialog.h $(CLASSHDRDIR)/java_awt_Dimension.h $(CLASSHDRDIR)/java_awt_Event.h $(CLASSHDRDIR)/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/java_awt_FileDialog.h $(CLASSHDRDIR)/java_awt_Font.h $(CLASSHDRDIR)/java_awt_FontMetrics.h $(CLASSHDRDIR)/java_awt_Frame.h $(CLASSHDRDIR)/java_awt_Menu.h $(CLASSHDRDIR)/java_awt_MenuBar.h $(CLASSHDRDIR)/java_awt_MenuComponent.h $(CLASSHDRDIR)/java_awt_MenuItem.h $(CLASSHDRDIR)/java_awt_peer_MenuComponentPeer.h $(CLASSHDRDIR)/java_awt_Window.h $(CLASSHDRDIR)/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/sun_awt_PlatformFont.h $(CLASSHDRDIR)/sun_awt_windows_WCanvasPeer.h $(CLASSHDRDIR)/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/sun_awt_windows_WDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFileDialogPeer.h $(CLASSHDRDIR)/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/sun_awt_windows_WFramePeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuBarPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuItemPeer.h $(CLASSHDRDIR)/sun_awt_windows_WMenuPeer.h $(CLASSHDRDIR)/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/sun_awt_windows_WToolkit.h $(CLASSHDRDIR)/sun_awt_windows_WWindowPeer.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Canvas.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_Dialog.h ../../../src/windows/native/sun/windows/awt_FileDialog.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_Frame.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Menu.h ../../../src/windows/native/sun/windows/awt_MenuBar.h ../../../src/windows/native/sun/windows/awt_MenuItem.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_PrintControl.h ../../../src/windows/native/sun/windows/awt_PrintDialog.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awt_Window.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/stdhdrs.h
     4.1 --- a/make/sun/jawt/make.depend	Tue Feb 17 09:06:16 2009 -0800
     4.2 +++ b/make/sun/jawt/make.depend	Wed Feb 18 10:05:41 2009 -0800
     4.3 @@ -1,1 +1,1 @@
     4.4 -$(OBJDIR)/jawt.obj::	$(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_AWTEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Component.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Dimension.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Event.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Font.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_PlatformFont.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/UnicowsLoader.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_MMStub.h ../../../src/windows/native/sun/windows/awt_Multimon.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Unicode.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/stdhdrs.h
     4.5 +$(OBJDIR)/jawt.obj::	$(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_AWTEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Component.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Dimension.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Event.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_Font.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_FocusEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_KeyEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_MouseEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/java_awt_event_WindowEvent.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_FontDescriptor.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_PlatformFont.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WComponentPeer.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WFontMetrics.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WObjectPeer.h $(CLASSHDRDIR)/../../awt/CClassHeaders/sun_awt_windows_WToolkit.h ../../../src/share/javavm/export/jawt.h ../../../src/share/javavm/export/jni.h ../../../src/share/javavm/export/jvm.h ../../../src/share/native/common/jlong.h ../../../src/share/native/common/jni_util.h ../../../src/share/native/sun/awt/debug/debug_assert.h ../../../src/share/native/sun/awt/debug/debug_mem.h ../../../src/share/native/sun/awt/debug/debug_trace.h ../../../src/share/native/sun/awt/debug/debug_util.h ../../../src/share/native/sun/awt/image/cvutils/img_globals.h ../../../src/share/native/sun/java2d/SurfaceData.h ../../../src/share/native/sun/java2d/Trace.h ../../../src/windows/javavm/export/jawt_md.h ../../../src/windows/javavm/export/jni_md.h ../../../src/windows/javavm/export/jvm_md.h ../../../src/windows/native/common/jlong_md.h ../../../src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.h ../../../src/windows/native/sun/windows/Devices.h ../../../src/windows/native/sun/windows/GDIHashtable.h ../../../src/windows/native/sun/windows/Hashtable.h ../../../src/windows/native/sun/windows/ObjectList.h ../../../src/windows/native/sun/windows/alloc.h ../../../src/windows/native/sun/windows/awt.h ../../../src/windows/native/sun/windows/awt_Brush.h ../../../src/windows/native/sun/windows/awt_Component.h ../../../src/windows/native/sun/windows/awt_Debug.h ../../../src/windows/native/sun/windows/awt_DrawingSurface.h ../../../src/windows/native/sun/windows/awt_Font.h ../../../src/windows/native/sun/windows/awt_GDIObject.h ../../../src/windows/native/sun/windows/awt_Object.h ../../../src/windows/native/sun/windows/awt_Palette.h ../../../src/windows/native/sun/windows/awt_Pen.h ../../../src/windows/native/sun/windows/awt_Toolkit.h ../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.h ../../../src/windows/native/sun/windows/awtmsg.h ../../../src/windows/native/sun/windows/colordata.h ../../../src/windows/native/sun/windows/stdhdrs.h
     5.1 --- a/make/sun/splashscreen/Makefile	Tue Feb 17 09:06:16 2009 -0800
     5.2 +++ b/make/sun/splashscreen/Makefile	Wed Feb 18 10:05:41 2009 -0800
     5.3 @@ -67,7 +67,7 @@
     5.4    OTHER_LDLIBS += -L$(OPENWIN_LIB) -lX11 -lXext $(LIBM) -lpthread
     5.5  else # PLATFORM
     5.6    CFLAGS += -DWITH_WIN32
     5.7 -  OTHER_LDLIBS += kernel32.lib user32.lib gdi32.lib 
     5.8 +  OTHER_LDLIBS += kernel32.lib user32.lib gdi32.lib delayimp.lib /DELAYLOAD:user32.dll
     5.9  #$(JVMLIB) $(OBJDIR)/../../jpeg/$(OBJDIRNAME)/jpeg$(SUFFIX).lib
    5.10  endif # PLATFORM
    5.11  
    5.12 @@ -85,13 +85,6 @@
    5.13  CPPFLAGS += -I$(PLATFORM_SRC)/native/$(PKGDIR)/splashscreen -I$(SHARE_SRC)/native/$(PKGDIR)/splashscreen
    5.14  CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/image/jpeg -I$(SHARE_SRC)/native/java/util/zip/zlib-1.1.3
    5.15  
    5.16 -ifeq ($(PLATFORM), linux)
    5.17 -  ifeq ($(ARCH_DATA_MODEL), 64)
    5.18 -    # 64-bit gcc has problems compiling MMX instructions.
    5.19 -    # Google it for more details. Possibly the newer versions of
    5.20 -    # the PNG-library and/or the new compiler will not need this
    5.21 -    # option in the future.
    5.22 -    CPPFLAGS += -DPNG_NO_MMX_CODE
    5.23 -  endif
    5.24 -endif
    5.25 -
    5.26 +# Shun the less than portable MMX assembly code in pnggccrd.c,
    5.27 +# and use alternative implementations in C.
    5.28 +CPPFLAGS += -DPNG_NO_MMX_CODE
     6.1 --- a/make/sun/xawt/mapfile-vers	Tue Feb 17 09:06:16 2009 -0800
     6.2 +++ b/make/sun/xawt/mapfile-vers	Wed Feb 18 10:05:41 2009 -0800
     6.3 @@ -151,6 +151,7 @@
     6.4          Java_sun_awt_X11_XRobotPeer_mouseReleaseImpl;
     6.5          Java_sun_awt_X11_XRobotPeer_mouseWheelImpl;
     6.6          Java_sun_awt_X11_XRobotPeer_setup;
     6.7 +        Java_sun_awt_X11_XRobotPeer_getNumberOfButtonsImpl;
     6.8          Java_java_awt_Component_initIDs;
     6.9          Java_java_awt_Container_initIDs;
    6.10          Java_java_awt_Button_initIDs;
    6.11 @@ -288,6 +289,7 @@
    6.12          Java_sun_awt_X11_XlibWrapper_XGetIconSizes;
    6.13          Java_sun_awt_X11_XlibWrapper_XKeycodeToKeysym;
    6.14          Java_sun_awt_X11_XlibWrapper_XKeysymToKeycode;
    6.15 +        Java_sun_awt_X11_XlibWrapper_XQueryKeymap;
    6.16          Java_sun_awt_X11_XlibWrapper_XGetModifierMapping;
    6.17          Java_sun_awt_X11_XlibWrapper_XFreeModifiermap;        
    6.18          Java_sun_awt_X11_XlibWrapper_XChangeActivePointerGrab;
     7.1 --- a/make/tools/sharing/classlist.linux	Tue Feb 17 09:06:16 2009 -0800
     7.2 +++ b/make/tools/sharing/classlist.linux	Wed Feb 18 10:05:41 2009 -0800
     7.3 @@ -1718,6 +1718,7 @@
     7.4  sun/awt/color/CMM
     7.5  java/applet/Applet
     7.6  java/awt/Panel
     7.7 +com/sun/awt/AWTUtilities
     7.8  javax/swing/KeyboardManager$ComponentKeyStrokePair
     7.9  sun/awt/EmbeddedFrame
    7.10  sun/awt/im/InputMethodContext
     8.1 --- a/make/tools/sharing/classlist.solaris	Tue Feb 17 09:06:16 2009 -0800
     8.2 +++ b/make/tools/sharing/classlist.solaris	Wed Feb 18 10:05:41 2009 -0800
     8.3 @@ -961,6 +961,7 @@
     8.4  javax/swing/SystemEventQueueUtilities$ComponentWorkRequest
     8.5  java/applet/Applet
     8.6  java/awt/Panel
     8.7 +com/sun/awt/AWTUtilities
     8.8  sun/awt/X11/XExposeEvent
     8.9  java/util/jar/Manifest
    8.10  java/io/ByteArrayInputStream
     9.1 --- a/make/tools/sharing/classlist.windows	Tue Feb 17 09:06:16 2009 -0800
     9.2 +++ b/make/tools/sharing/classlist.windows	Wed Feb 18 10:05:41 2009 -0800
     9.3 @@ -1621,6 +1621,7 @@
     9.4  sun/font/FontDesignMetrics$MetricsKey
     9.5  java/applet/Applet
     9.6  java/awt/Panel
     9.7 +com/sun/awt/AWTUtilities
     9.8  javax/swing/KeyboardManager$ComponentKeyStrokePair
     9.9  sun/awt/im/InputMethodContext
    9.10  java/awt/im/spi/InputMethodContext
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/src/share/classes/com/sun/awt/AWTUtilities.java	Wed Feb 18 10:05:41 2009 -0800
    10.3 @@ -0,0 +1,104 @@
    10.4 +/*
    10.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
    10.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    10.7 + *
    10.8 + * This code is free software; you can redistribute it and/or modify it
    10.9 + * under the terms of the GNU General Public License version 2 only, as
   10.10 + * published by the Free Software Foundation.  Sun designates this
   10.11 + * particular file as subject to the "Classpath" exception as provided
   10.12 + * by Sun in the LICENSE file that accompanied this code.
   10.13 + *
   10.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   10.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   10.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   10.17 + * version 2 for more details (a copy is included in the LICENSE file that
   10.18 + * accompanied this code).
   10.19 + *
   10.20 + * You should have received a copy of the GNU General Public License version
   10.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   10.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   10.23 + *
   10.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   10.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   10.26 + * have any questions.
   10.27 + */
   10.28 +
   10.29 +package com.sun.awt;
   10.30 +
   10.31 +import java.awt.*;
   10.32 +import sun.awt.AWTAccessor;
   10.33 +
   10.34 +
   10.35 +/**
   10.36 + * A collection of utility methods for AWT.
   10.37 + *
   10.38 + * The functionality provided by the static methods of the class includes:
   10.39 + * <ul>
   10.40 + * <li>Setting a 'mixing-cutout' shape for a component.
   10.41 + * </ul>
   10.42 + * <p>
   10.43 + * <b>WARNING</b>: This class is an implementation detail and only meant
   10.44 + * for limited use outside of the core platform. This API may change
   10.45 + * drastically between update release, and it may even be
   10.46 + * removed or be moved in some other package(s)/class(es).
   10.47 + */
   10.48 +public final class AWTUtilities {
   10.49 +
   10.50 +    /**
   10.51 +     * The AWTUtilities class should not be instantiated
   10.52 +     */
   10.53 +    private AWTUtilities() {
   10.54 +    }
   10.55 +
   10.56 +    /**
   10.57 +     * Sets a 'mixing-cutout' shape for the given component.
   10.58 +     *
   10.59 +     * By default a lightweight component is treated as an opaque rectangle for
   10.60 +     * the purposes of the Heavyweight/Lightweight Components Mixing feature.
   10.61 +     * This method enables developers to set an arbitrary shape to be cut out
   10.62 +     * from heavyweight components positioned underneath the lightweight
   10.63 +     * component in the z-order.
   10.64 +     * <p>
   10.65 +     * The {@code shape} argument may have the following values:
   10.66 +     * <ul>
   10.67 +     * <li>{@code null} - reverts the default cutout shape (the rectangle equal
   10.68 +     * to the component's {@code getBounds()})
   10.69 +     * <li><i>empty-shape</i> - does not cut out anything from heavyweight
   10.70 +     * components. This makes the given lightweight component effectively
   10.71 +     * transparent. Note that descendants of the lightweight component still
   10.72 +     * affect the shapes of heavyweight components.  An example of an
   10.73 +     * <i>empty-shape</i> is {@code new Rectangle()}.
   10.74 +     * <li><i>non-empty-shape</i> - the given shape will be cut out from
   10.75 +     * heavyweight components.
   10.76 +     * </ul>
   10.77 +     * <p>
   10.78 +     * The most common example when the 'mixing-cutout' shape is needed is a
   10.79 +     * glass pane component. The {@link JRootPane#setGlassPane()} method
   10.80 +     * automatically sets the <i>empty-shape</i> as the 'mixing-cutout' shape
   10.81 +     * for the given glass pane component.  If a developer needs some other
   10.82 +     * 'mixing-cutout' shape for the glass pane (which is rare), this must be
   10.83 +     * changed manually after installing the glass pane to the root pane.
   10.84 +     * <p>
   10.85 +     * Note that the 'mixing-cutout' shape neither affects painting, nor the
   10.86 +     * mouse events handling for the given component. It is used exclusively
   10.87 +     * for the purposes of the Heavyweight/Lightweight Components Mixing
   10.88 +     * feature.
   10.89 +     *
   10.90 +     * @param component the component that needs non-default
   10.91 +     * 'mixing-cutout' shape
   10.92 +     * @param shape the new 'mixing-cutout' shape
   10.93 +     * @throws NullPointerException if the component argument is {@code null}
   10.94 +     */
   10.95 +    public static void setComponentMixingCutoutShape(Component component,
   10.96 +            Shape shape)
   10.97 +    {
   10.98 +        if (component == null) {
   10.99 +            throw new NullPointerException(
  10.100 +                    "The component argument should not be null.");
  10.101 +        }
  10.102 +
  10.103 +        AWTAccessor.getComponentAccessor().setMixingCutoutShape(component,
  10.104 +                shape);
  10.105 +    }
  10.106 +}
  10.107 +
    11.1 --- a/src/share/classes/java/awt/Choice.java	Tue Feb 17 09:06:16 2009 -0800
    11.2 +++ b/src/share/classes/java/awt/Choice.java	Wed Feb 18 10:05:41 2009 -0800
    11.3 @@ -228,7 +228,7 @@
    11.4          pItems.insertElementAt(item, index);
    11.5          ChoicePeer peer = (ChoicePeer)this.peer;
    11.6          if (peer != null) {
    11.7 -            peer.addItem(item, index);
    11.8 +            peer.add(item, index);
    11.9          }
   11.10          // no selection or selection shifted up
   11.11          if (selectedIndex < 0 || selectedIndex >= index) {
    12.1 --- a/src/share/classes/java/awt/Component.java	Tue Feb 17 09:06:16 2009 -0800
    12.2 +++ b/src/share/classes/java/awt/Component.java	Wed Feb 18 10:05:41 2009 -0800
    12.3 @@ -65,8 +65,10 @@
    12.4  
    12.5  import sun.security.action.GetPropertyAction;
    12.6  import sun.awt.AppContext;
    12.7 +import sun.awt.AWTAccessor;
    12.8  import sun.awt.ConstrainableGraphics;
    12.9  import sun.awt.SubRegionShowable;
   12.10 +import sun.awt.SunToolkit;
   12.11  import sun.awt.WindowClosingListener;
   12.12  import sun.awt.CausedFocusEvent;
   12.13  import sun.awt.EmbeddedFrame;
   12.14 @@ -758,22 +760,26 @@
   12.15       * The shape set with the applyCompoundShape() method. It uncludes the result
   12.16       * of the HW/LW mixing related shape computation. It may also include
   12.17       * the user-specified shape of the component.
   12.18 +     * The 'null' value means the component has normal shape (or has no shape at all)
   12.19 +     * and applyCompoundShape() will skip the following shape identical to normal.
   12.20       */
   12.21      private transient Region compoundShape = null;
   12.22  
   12.23      /*
   12.24 +     * Represents the shape of this lightweight component to be cut out from
   12.25 +     * heavyweight components should they intersect. Possible values:
   12.26 +     *    1. null - consider the shape rectangular
   12.27 +     *    2. EMPTY_REGION - nothing gets cut out (children still get cut out)
   12.28 +     *    3. non-empty - this shape gets cut out.
   12.29 +     */
   12.30 +    private transient Region mixingCutoutRegion = null;
   12.31 +
   12.32 +    /*
   12.33       * Indicates whether addNotify() is complete
   12.34       * (i.e. the peer is created).
   12.35       */
   12.36      private transient boolean isAddNotifyComplete = false;
   12.37  
   12.38 -    private static final PropertyChangeListener opaquePropertyChangeListener =
   12.39 -        new PropertyChangeListener() {
   12.40 -            public void propertyChange(java.beans.PropertyChangeEvent evt) {
   12.41 -                ((Component)evt.getSource()).mixOnOpaqueChanging();
   12.42 -            }
   12.43 -        };
   12.44 -
   12.45      /**
   12.46       * Should only be used in subclass getBounds to check that part of bounds
   12.47       * is actualy changing
   12.48 @@ -793,6 +799,39 @@
   12.49              }
   12.50      }
   12.51  
   12.52 +    static {
   12.53 +        AWTAccessor.setComponentAccessor(new AWTAccessor.ComponentAccessor() {
   12.54 +            public void setMixingCutoutShape(Component comp, Shape shape) {
   12.55 +                Region region = shape == null ?  null :
   12.56 +                    Region.getInstance(shape, null);
   12.57 +
   12.58 +                synchronized (comp.getTreeLock()) {
   12.59 +                    boolean needShowing = false;
   12.60 +                    boolean needHiding = false;
   12.61 +
   12.62 +                    if (!comp.isNonOpaqueForMixing()) {
   12.63 +                        needHiding = true;
   12.64 +                    }
   12.65 +
   12.66 +                    comp.mixingCutoutRegion = region;
   12.67 +
   12.68 +                    if (!comp.isNonOpaqueForMixing()) {
   12.69 +                        needShowing = true;
   12.70 +                    }
   12.71 +
   12.72 +                    if (comp.isMixingNeeded()) {
   12.73 +                        if (needHiding) {
   12.74 +                            comp.mixOnHiding(comp.isLightweight());
   12.75 +                        }
   12.76 +                        if (needShowing) {
   12.77 +                            comp.mixOnShowing();
   12.78 +                        }
   12.79 +                    }
   12.80 +                }
   12.81 +            }
   12.82 +        });
   12.83 +    }
   12.84 +
   12.85      /**
   12.86       * Constructs a new component. Class <code>Component</code> can be
   12.87       * extended directly to create a lightweight component that does not
   12.88 @@ -1306,7 +1345,7 @@
   12.89                  enabled = true;
   12.90                  ComponentPeer peer = this.peer;
   12.91                  if (peer != null) {
   12.92 -                    peer.enable();
   12.93 +                    peer.setEnabled(true);
   12.94                      if (visible) {
   12.95                          updateCursorImmediately();
   12.96                      }
   12.97 @@ -1355,7 +1394,7 @@
   12.98                  }
   12.99                  ComponentPeer peer = this.peer;
  12.100                  if (peer != null) {
  12.101 -                    peer.disable();
  12.102 +                    peer.setEnabled(false);
  12.103                      if (visible) {
  12.104                          updateCursorImmediately();
  12.105                      }
  12.106 @@ -1447,7 +1486,7 @@
  12.107                  mixOnShowing();
  12.108                  ComponentPeer peer = this.peer;
  12.109                  if (peer != null) {
  12.110 -                    peer.show();
  12.111 +                    peer.setVisible(true);
  12.112                      createHierarchyEvents(HierarchyEvent.HIERARCHY_CHANGED,
  12.113                                            this, parent,
  12.114                                            HierarchyEvent.SHOWING_CHANGED,
  12.115 @@ -1517,7 +1556,7 @@
  12.116                  }
  12.117                  ComponentPeer peer = this.peer;
  12.118                  if (peer != null) {
  12.119 -                    peer.hide();
  12.120 +                    peer.setVisible(false);
  12.121                      createHierarchyEvents(HierarchyEvent.HIERARCHY_CHANGED,
  12.122                                            this, parent,
  12.123                                            HierarchyEvent.SHOWING_CHANGED,
  12.124 @@ -2414,7 +2453,7 @@
  12.125          if (dim == null || !(isPreferredSizeSet() || isValid())) {
  12.126              synchronized (getTreeLock()) {
  12.127                  prefSize = (peer != null) ?
  12.128 -                    peer.preferredSize() :
  12.129 +                    peer.getPreferredSize() :
  12.130                      getMinimumSize();
  12.131                  dim = prefSize;
  12.132              }
  12.133 @@ -2484,7 +2523,7 @@
  12.134          if (dim == null || !(isMinimumSizeSet() || isValid())) {
  12.135              synchronized (getTreeLock()) {
  12.136                  minSize = (peer != null) ?
  12.137 -                    peer.minimumSize() :
  12.138 +                    peer.getMinimumSize() :
  12.139                      size();
  12.140                  dim = minSize;
  12.141              }
  12.142 @@ -3171,7 +3210,7 @@
  12.143      private Insets getInsets_NoClientCode() {
  12.144          ComponentPeer peer = this.peer;
  12.145          if (peer instanceof ContainerPeer) {
  12.146 -            return (Insets)((ContainerPeer)peer).insets().clone();
  12.147 +            return (Insets)((ContainerPeer)peer).getInsets().clone();
  12.148          }
  12.149          return new Insets(0, 0, 0, 0);
  12.150      }
  12.151 @@ -6643,7 +6682,6 @@
  12.152              }
  12.153  
  12.154              if (!isAddNotifyComplete) {
  12.155 -                addPropertyChangeListener("opaque", opaquePropertyChangeListener);
  12.156                  mixOnShowing();
  12.157              }
  12.158  
  12.159 @@ -6722,7 +6760,7 @@
  12.160  
  12.161                  // Hide peer first to stop system events such as cursor moves.
  12.162                  if (visible) {
  12.163 -                    p.hide();
  12.164 +                    p.setVisible(false);
  12.165                  }
  12.166  
  12.167                  peer = null; // Stop peer updates.
  12.168 @@ -6735,9 +6773,11 @@
  12.169                  p.dispose();
  12.170  
  12.171                  mixOnHiding(isLightweight);
  12.172 -                removePropertyChangeListener("opaque", opaquePropertyChangeListener);
  12.173  
  12.174                  isAddNotifyComplete = false;
  12.175 +                // Nullifying compoundShape means that the component has normal shape
  12.176 +                // (or has no shape at all).
  12.177 +                this.compoundShape = null;
  12.178              }
  12.179  
  12.180              if (hierarchyListener != null ||
  12.181 @@ -9401,10 +9441,9 @@
  12.182       * Null-layout of the container or absence of the container mean
  12.183       * the bounds of the component are final and can be trusted.
  12.184       */
  12.185 -    private boolean areBoundsValid() {
  12.186 +    final boolean areBoundsValid() {
  12.187          Container cont = getContainer();
  12.188 -        return cont == null || cont.isValid()
  12.189 -            || cont.getLayout() == null;
  12.190 +        return cont == null || cont.isValid() || cont.getLayout() == null;
  12.191      }
  12.192  
  12.193      /**
  12.194 @@ -9413,6 +9452,14 @@
  12.195       */
  12.196      void applyCompoundShape(Region shape) {
  12.197          checkTreeLock();
  12.198 +
  12.199 +        if (!areBoundsValid()) {
  12.200 +            if (mixingLog.isLoggable(Level.FINE)) {
  12.201 +                mixingLog.fine("this = " + this + "; areBoundsValid = " + areBoundsValid());
  12.202 +            }
  12.203 +            return;
  12.204 +        }
  12.205 +
  12.206          if (!isLightweight()) {
  12.207              ComponentPeer peer = getPeer();
  12.208              if (peer != null) {
  12.209 @@ -9422,22 +9469,31 @@
  12.210                  // with some incorrect Region object with loX being
  12.211                  // greater than the hiX for instance.
  12.212                  if (shape.isEmpty()) {
  12.213 -                    shape = Region.getInstanceXYWH(0, 0, 0, 0);
  12.214 +                    shape = Region.EMPTY_REGION;
  12.215                  }
  12.216  
  12.217 +
  12.218                  // Note: the shape is not really copied/cloned. We create
  12.219                  // the Region object ourselves, so there's no any possibility
  12.220                  // to modify the object outside of the mixing code.
  12.221 -                this.compoundShape = shape;
  12.222 -
  12.223 -                if (areBoundsValid()) {
  12.224 +                // Nullifying compoundShape means that the component has normal shape
  12.225 +                // (or has no shape at all).
  12.226 +                if (shape.equals(getNormalShape())) {
  12.227 +                    if (this.compoundShape == null) {
  12.228 +                        return;
  12.229 +                    }
  12.230 +                    this.compoundShape = null;
  12.231 +                    peer.applyShape(null);
  12.232 +                } else {
  12.233 +                    if (shape.equals(getAppliedShape())) {
  12.234 +                        return;
  12.235 +                    }
  12.236 +                    this.compoundShape = shape;
  12.237                      Point compAbsolute = getLocationOnWindow();
  12.238 -
  12.239                      if (mixingLog.isLoggable(Level.FINER)) {
  12.240                          mixingLog.fine("this = " + this +
  12.241 -                            "; compAbsolute=" + compAbsolute + "; shape=" + shape);
  12.242 +                                "; compAbsolute=" + compAbsolute + "; shape=" + shape);
  12.243                      }
  12.244 -
  12.245                      peer.applyShape(shape.getTranslatedRegion(-compAbsolute.x, -compAbsolute.y));
  12.246                  }
  12.247              }
  12.248 @@ -9460,7 +9516,7 @@
  12.249          Point curLocation = getLocation();
  12.250  
  12.251          for (Container parent = getContainer();
  12.252 -                parent != null;
  12.253 +                parent != null && !(parent instanceof Window);
  12.254                  parent = parent.getContainer())
  12.255          {
  12.256              curLocation.x += parent.getX();
  12.257 @@ -9486,7 +9542,28 @@
  12.258              );
  12.259      }
  12.260  
  12.261 -    private int getSiblingIndexAbove() {
  12.262 +    /**
  12.263 +     * Returns the "opaque shape" of the component.
  12.264 +     *
  12.265 +     * The opaque shape of a lightweight components is the actual shape that
  12.266 +     * needs to be cut off of the heavyweight components in order to mix this
  12.267 +     * lightweight component correctly with them.
  12.268 +     *
  12.269 +     * The method is overriden in the java.awt.Container to handle non-opaque
  12.270 +     * containers containing opaque children.
  12.271 +     *
  12.272 +     * See 6637655 for details.
  12.273 +     */
  12.274 +    Region getOpaqueShape() {
  12.275 +        checkTreeLock();
  12.276 +        if (mixingCutoutRegion != null) {
  12.277 +            return mixingCutoutRegion;
  12.278 +        } else {
  12.279 +            return getNormalShape();
  12.280 +        }
  12.281 +    }
  12.282 +
  12.283 +    final int getSiblingIndexAbove() {
  12.284          checkTreeLock();
  12.285          Container parent = getContainer();
  12.286          if (parent == null) {
  12.287 @@ -9498,7 +9575,7 @@
  12.288          return nextAbove < 0 ? -1 : nextAbove;
  12.289      }
  12.290  
  12.291 -    private int getSiblingIndexBelow() {
  12.292 +    final int getSiblingIndexBelow() {
  12.293          checkTreeLock();
  12.294          Container parent = getContainer();
  12.295          if (parent == null) {
  12.296 @@ -9510,6 +9587,11 @@
  12.297          return nextBelow >= parent.getComponentCount() ? -1 : nextBelow;
  12.298      }
  12.299  
  12.300 +    final boolean isNonOpaqueForMixing() {
  12.301 +        return mixingCutoutRegion != null &&
  12.302 +            mixingCutoutRegion.isEmpty();
  12.303 +    }
  12.304 +
  12.305      private Region calculateCurrentShape() {
  12.306          checkTreeLock();
  12.307          Region s = getNormalShape();
  12.308 @@ -9532,8 +9614,8 @@
  12.309                       * implementation of the Container class.
  12.310                       */
  12.311                      Component c = cont.getComponent(index);
  12.312 -                    if (c.isLightweight() && c.isShowing() && c.isOpaque()) {
  12.313 -                        s = s.getDifference(c.getNormalShape());
  12.314 +                    if (c.isLightweight() && c.isShowing()) {
  12.315 +                        s = s.getDifference(c.getOpaqueShape());
  12.316                      }
  12.317                  }
  12.318  
  12.319 @@ -9558,6 +9640,9 @@
  12.320      void applyCurrentShape() {
  12.321          checkTreeLock();
  12.322          if (!areBoundsValid()) {
  12.323 +            if (mixingLog.isLoggable(Level.FINE)) {
  12.324 +                mixingLog.fine("this = " + this + "; areBoundsValid = " + areBoundsValid());
  12.325 +            }
  12.326              return; // Because applyCompoundShape() ignores such components anyway
  12.327          }
  12.328          if (mixingLog.isLoggable(Level.FINE)) {
  12.329 @@ -9576,16 +9661,54 @@
  12.330          applyCompoundShape(getAppliedShape().getDifference(s));
  12.331      }
  12.332  
  12.333 +    private final void applyCurrentShapeBelowMe() {
  12.334 +        checkTreeLock();
  12.335 +        Container parent = getContainer();
  12.336 +        if (parent != null && parent.isShowing()) {
  12.337 +            // First, reapply shapes of my siblings
  12.338 +            parent.recursiveApplyCurrentShape(getSiblingIndexBelow());
  12.339 +
  12.340 +            // Second, if my container is non-opaque, reapply shapes of siblings of my container
  12.341 +            Container parent2 = parent.getContainer();
  12.342 +            while (!parent.isOpaque() && parent2 != null) {
  12.343 +                parent2.recursiveApplyCurrentShape(parent.getSiblingIndexBelow());
  12.344 +
  12.345 +                parent = parent2;
  12.346 +                parent2 = parent.getContainer();
  12.347 +            }
  12.348 +        }
  12.349 +    }
  12.350 +
  12.351 +    final void subtractAndApplyShapeBelowMe() {
  12.352 +        checkTreeLock();
  12.353 +        Container parent = getContainer();
  12.354 +        if (parent != null && isShowing()) {
  12.355 +            Region opaqueShape = getOpaqueShape();
  12.356 +
  12.357 +            // First, cut my siblings
  12.358 +            parent.recursiveSubtractAndApplyShape(opaqueShape, getSiblingIndexBelow());
  12.359 +
  12.360 +            // Second, if my container is non-opaque, cut siblings of my container
  12.361 +            Container parent2 = parent.getContainer();
  12.362 +            while (!parent.isOpaque() && parent2 != null) {
  12.363 +                parent2.recursiveSubtractAndApplyShape(opaqueShape, parent.getSiblingIndexBelow());
  12.364 +
  12.365 +                parent = parent2;
  12.366 +                parent2 = parent.getContainer();
  12.367 +            }
  12.368 +        }
  12.369 +    }
  12.370 +
  12.371      void mixOnShowing() {
  12.372          synchronized (getTreeLock()) {
  12.373              if (mixingLog.isLoggable(Level.FINE)) {
  12.374                  mixingLog.fine("this = " + this);
  12.375              }
  12.376 +            if (!isMixingNeeded()) {
  12.377 +                return;
  12.378 +            }
  12.379              if (isLightweight()) {
  12.380 -                Container parent = getContainer();
  12.381 -                if (parent != null && isShowing() && isOpaque()) {
  12.382 -                    parent.recursiveSubtractAndApplyShape(getNormalShape(), getSiblingIndexBelow());
  12.383 -                }
  12.384 +                subtractAndApplyShapeBelowMe();
  12.385              } else {
  12.386                  applyCurrentShape();
  12.387              }
  12.388 @@ -9599,12 +9722,12 @@
  12.389              if (mixingLog.isLoggable(Level.FINE)) {
  12.390                  mixingLog.fine("this = " + this + "; isLightweight = " + isLightweight);
  12.391              }
  12.392 +            if (!isMixingNeeded()) {
  12.393 +                return;
  12.394 +            }
  12.395              if (isLightweight) {
  12.396 -                Container parent = getContainer();
  12.397 -                if (parent != null) {
  12.398 -                    parent.recursiveApplyCurrentShape(getSiblingIndexBelow());
  12.399 -                }
  12.400 -            } //XXX: else applyNormalShape() ???
  12.401 +                applyCurrentShapeBelowMe();
  12.402 +            }
  12.403          }
  12.404      }
  12.405  
  12.406 @@ -9613,11 +9736,11 @@
  12.407              if (mixingLog.isLoggable(Level.FINE)) {
  12.408                  mixingLog.fine("this = " + this);
  12.409              }
  12.410 +            if (!isMixingNeeded()) {
  12.411 +                return;
  12.412 +            }
  12.413              if (isLightweight()) {
  12.414 -                Container parent = getContainer();
  12.415 -                if (parent != null) {
  12.416 -                    parent.recursiveApplyCurrentShape(parent.getComponentZOrder(this));
  12.417 -                }
  12.418 +                applyCurrentShapeBelowMe();
  12.419              } else {
  12.420                  applyCurrentShape();
  12.421              }
  12.422 @@ -9633,11 +9756,13 @@
  12.423                  mixingLog.fine("this = " + this +
  12.424                      "; oldZorder=" + oldZorder + "; newZorder=" + newZorder + "; parent=" + parent);
  12.425              }
  12.426 -
  12.427 +            if (!isMixingNeeded()) {
  12.428 +                return;
  12.429 +            }
  12.430              if (isLightweight()) {
  12.431                  if (becameHigher) {
  12.432 -                    if (parent != null && isShowing() && isOpaque()) {
  12.433 -                        parent.recursiveSubtractAndApplyShape(getNormalShape(), getSiblingIndexBelow(), oldZorder);
  12.434 +                    if (parent != null && isShowing()) {
  12.435 +                        parent.recursiveSubtractAndApplyShape(getOpaqueShape(), getSiblingIndexBelow(), oldZorder);
  12.436                      }
  12.437                  } else {
  12.438                      if (parent != null) {
  12.439 @@ -9653,8 +9778,8 @@
  12.440  
  12.441                          for (int index = oldZorder; index < newZorder; index++) {
  12.442                              Component c = parent.getComponent(index);
  12.443 -                            if (c.isLightweight() && c.isShowing() && c.isOpaque()) {
  12.444 -                                shape = shape.getDifference(c.getNormalShape());
  12.445 +                            if (c.isLightweight() && c.isShowing()) {
  12.446 +                                shape = shape.getDifference(c.getOpaqueShape());
  12.447                              }
  12.448                          }
  12.449                          applyCompoundShape(shape);
  12.450 @@ -9664,21 +9789,42 @@
  12.451          }
  12.452      }
  12.453  
  12.454 -    void mixOnOpaqueChanging() {
  12.455 -        if (mixingLog.isLoggable(Level.FINE)) {
  12.456 -            mixingLog.fine("this = " + this);
  12.457 -        }
  12.458 -        if (isOpaque()) {
  12.459 -            mixOnShowing();
  12.460 -        } else {
  12.461 -            mixOnHiding(isLightweight());
  12.462 -        }
  12.463 -    }
  12.464 -
  12.465      void mixOnValidating() {
  12.466          // This method gets overriden in the Container. Obviously, a plain
  12.467          // non-container components don't need to handle validation.
  12.468      }
  12.469  
  12.470 +    final boolean isMixingNeeded() {
  12.471 +        if (SunToolkit.getSunAwtDisableMixing()) {
  12.472 +            if (mixingLog.isLoggable(Level.FINEST)) {
  12.473 +                mixingLog.finest("this = " + this + "; Mixing disabled via sun.awt.disableMixing");
  12.474 +            }
  12.475 +            return false;
  12.476 +        }
  12.477 +        if (!areBoundsValid()) {
  12.478 +            if (mixingLog.isLoggable(Level.FINE)) {
  12.479 +                mixingLog.fine("this = " + this + "; areBoundsValid = " + areBoundsValid());
  12.480 +            }
  12.481 +            return false;
  12.482 +        }
  12.483 +        Window window = getContainingWindow();
  12.484 +        if (window != null) {
  12.485 +            if (!window.hasHeavyweightDescendants() || !window.hasLightweightDescendants()) {
  12.486 +                if (mixingLog.isLoggable(Level.FINE)) {
  12.487 +                    mixingLog.fine("containing window = " + window +
  12.488 +                            "; has h/w descendants = " + window.hasHeavyweightDescendants() +
  12.489 +                            "; has l/w descendants = " + window.hasLightweightDescendants());
  12.490 +                }
  12.491 +                return false;
  12.492 +            }
  12.493 +        } else {
  12.494 +            if (mixingLog.isLoggable(Level.FINE)) {
  12.495 +                mixingLog.finest("this = " + this + "; containing window is null");
  12.496 +            }
  12.497 +            return false;
  12.498 +        }
  12.499 +        return true;
  12.500 +    }
  12.501 +
  12.502      // ****************** END OF MIXING CODE ********************************
  12.503  }
    13.1 --- a/src/share/classes/java/awt/Container.java	Tue Feb 17 09:06:16 2009 -0800
    13.2 +++ b/src/share/classes/java/awt/Container.java	Wed Feb 18 10:05:41 2009 -0800
    13.3 @@ -343,7 +343,7 @@
    13.4          ComponentPeer peer = this.peer;
    13.5          if (peer instanceof ContainerPeer) {
    13.6              ContainerPeer cpeer = (ContainerPeer)peer;
    13.7 -            return (Insets)cpeer.insets().clone();
    13.8 +            return (Insets)cpeer.getInsets().clone();
    13.9          }
   13.10          return new Insets(0, 0, 0, 0);
   13.11      }
   13.12 @@ -569,7 +569,7 @@
   13.13       * @return true if there is at least one heavyweight children in a container, false otherwise
   13.14       * @since 1.5
   13.15       */
   13.16 -    private boolean hasHeavyweightDescendants() {
   13.17 +    final boolean hasHeavyweightDescendants() {
   13.18          checkTreeLock();
   13.19          return numOfHWComponents > 0;
   13.20      }
   13.21 @@ -580,7 +580,7 @@
   13.22       * @return true if there is at least one lightweight children in a container, false otherwise
   13.23       * @since 1.7
   13.24       */
   13.25 -    private boolean hasLightweightDescendants() {
   13.26 +    final boolean hasLightweightDescendants() {
   13.27          checkTreeLock();
   13.28          return numOfLWComponents > 0;
   13.29      }
   13.30 @@ -3861,6 +3861,28 @@
   13.31          return -1;
   13.32      }
   13.33  
   13.34 +    /*
   13.35 +     * This method is overriden to handle opaque children in non-opaque
   13.36 +     * containers.
   13.37 +     */
   13.38 +    @Override
   13.39 +    final Region getOpaqueShape() {
   13.40 +        checkTreeLock();
   13.41 +        if (isLightweight() && isNonOpaqueForMixing()
   13.42 +                && hasLightweightDescendants())
   13.43 +        {
   13.44 +            Region s = Region.EMPTY_REGION;
   13.45 +            for (int index = 0; index < getComponentCount(); index++) {
   13.46 +                Component c = getComponent(index);
   13.47 +                if (c.isLightweight() && c.isShowing()) {
   13.48 +                    s = s.getUnion(c.getOpaqueShape());
   13.49 +                }
   13.50 +            }
   13.51 +            return s.getIntersection(getNormalShape());
   13.52 +        }
   13.53 +        return super.getOpaqueShape();
   13.54 +    }
   13.55 +
   13.56      final void recursiveSubtractAndApplyShape(Region shape) {
   13.57          recursiveSubtractAndApplyShape(shape, getTopmostComponentIndex(), getBottommostComponentIndex());
   13.58      }
   13.59 @@ -3878,6 +3900,15 @@
   13.60          if (fromZorder == -1) {
   13.61              return;
   13.62          }
   13.63 +        if (shape.isEmpty()) {
   13.64 +            return;
   13.65 +        }
   13.66 +        // An invalid container with not-null layout should be ignored
   13.67 +        // by the mixing code, the container will be validated later
   13.68 +        // and the mixing code will be executed later.
   13.69 +        if (getLayout() != null && !isValid()) {
   13.70 +            return;
   13.71 +        }
   13.72          for (int index = fromZorder; index <= toZorder; index++) {
   13.73              Component comp = getComponent(index);
   13.74              if (!comp.isLightweight()) {
   13.75 @@ -3906,10 +3937,19 @@
   13.76          if (fromZorder == -1) {
   13.77              return;
   13.78          }
   13.79 +        // An invalid container with not-null layout should be ignored
   13.80 +        // by the mixing code, the container will be validated later
   13.81 +        // and the mixing code will be executed later.
   13.82 +        if (getLayout() != null && !isValid()) {
   13.83 +            return;
   13.84 +        }
   13.85          for (int index = fromZorder; index <= toZorder; index++) {
   13.86              Component comp = getComponent(index);
   13.87              if (!comp.isLightweight()) {
   13.88                  comp.applyCurrentShape();
   13.89 +                if (comp instanceof Container && ((Container)comp).getLayout() == null) {
   13.90 +                    ((Container)comp).recursiveApplyCurrentShape();
   13.91 +                }
   13.92              } else if (comp instanceof Container &&
   13.93                      ((Container)comp).hasHeavyweightDescendants()) {
   13.94                  ((Container)comp).recursiveApplyCurrentShape();
   13.95 @@ -3931,7 +3971,7 @@
   13.96                  if (comp.isVisible()) {
   13.97                      ComponentPeer peer = comp.getPeer();
   13.98                      if (peer != null) {
   13.99 -                        peer.show();
  13.100 +                        peer.setVisible(true);
  13.101                      }
  13.102                  }
  13.103              }
  13.104 @@ -3952,7 +3992,7 @@
  13.105                  if (comp.isVisible()) {
  13.106                      ComponentPeer peer = comp.getPeer();
  13.107                      if (peer != null) {
  13.108 -                        peer.hide();
  13.109 +                        peer.setVisible(false);
  13.110                      }
  13.111                  }
  13.112              }
  13.113 @@ -4000,6 +4040,10 @@
  13.114                  mixingLog.fine("this = " + this);
  13.115              }
  13.116  
  13.117 +            if (!isMixingNeeded()) {
  13.118 +                return;
  13.119 +            }
  13.120 +
  13.121              boolean isLightweight = isLightweight();
  13.122  
  13.123              if (isLightweight && isRecursivelyVisibleUpToHeavyweightContainer()) {
  13.124 @@ -4034,6 +4078,9 @@
  13.125              if (mixingLog.isLoggable(Level.FINE)) {
  13.126                  mixingLog.fine("this = " + this);
  13.127              }
  13.128 +
  13.129 +            boolean isMixingNeeded = isMixingNeeded();
  13.130 +
  13.131              if (isLightweight() && hasHeavyweightDescendants()) {
  13.132                  final Point origin = new Point(getX(), getY());
  13.133                  for (Container cont = getContainer();
  13.134 @@ -4044,7 +4091,18 @@
  13.135                  }
  13.136  
  13.137                  recursiveRelocateHeavyweightChildren(origin);
  13.138 +
  13.139 +                if (!isMixingNeeded) {
  13.140 +                    return;
  13.141 +                }
  13.142 +
  13.143 +                recursiveApplyCurrentShape();
  13.144              }
  13.145 +
  13.146 +            if (!isMixingNeeded) {
  13.147 +                return;
  13.148 +            }
  13.149 +
  13.150              super.mixOnReshaping();
  13.151          }
  13.152      }
  13.153 @@ -4057,6 +4115,10 @@
  13.154                      "; oldZ=" + oldZorder + "; newZ=" + newZorder);
  13.155              }
  13.156  
  13.157 +            if (!isMixingNeeded()) {
  13.158 +                return;
  13.159 +            }
  13.160 +
  13.161              boolean becameHigher = newZorder < oldZorder;
  13.162  
  13.163              if (becameHigher && isLightweight() && hasHeavyweightDescendants()) {
  13.164 @@ -4073,10 +4135,18 @@
  13.165                  mixingLog.fine("this = " + this);
  13.166              }
  13.167  
  13.168 +            if (!isMixingNeeded()) {
  13.169 +                return;
  13.170 +            }
  13.171 +
  13.172              if (hasHeavyweightDescendants()) {
  13.173                  recursiveApplyCurrentShape();
  13.174              }
  13.175  
  13.176 +            if (isLightweight() && isNonOpaqueForMixing()) {
  13.177 +                subtractAndApplyShapeBelowMe();
  13.178 +            }
  13.179 +
  13.180              super.mixOnValidating();
  13.181          }
  13.182      }
    14.1 --- a/src/share/classes/java/awt/Dialog.java	Tue Feb 17 09:06:16 2009 -0800
    14.2 +++ b/src/share/classes/java/awt/Dialog.java	Wed Feb 18 10:05:41 2009 -0800
    14.3 @@ -941,7 +941,7 @@
    14.4                  // does not invoke the super.show(). So wried... :(
    14.5                  mixOnShowing();
    14.6  
    14.7 -                peer.show(); // now guaranteed never to block
    14.8 +                peer.setVisible(true); // now guaranteed never to block
    14.9                  if (isModalBlocked()) {
   14.10                      modalBlocker.toFront();
   14.11                  }
    15.1 --- a/src/share/classes/java/awt/EventDispatchThread.java	Tue Feb 17 09:06:16 2009 -0800
    15.2 +++ b/src/share/classes/java/awt/EventDispatchThread.java	Wed Feb 18 10:05:41 2009 -0800
    15.3 @@ -300,119 +300,19 @@
    15.4          }
    15.5          // Can get and throw only unchecked exceptions
    15.6          catch (RuntimeException e) {
    15.7 -            processException(e, modalFiltersCount > 0);
    15.8 +            processException(e);
    15.9          } catch (Error e) {
   15.10 -            processException(e, modalFiltersCount > 0);
   15.11 +            processException(e);
   15.12          }
   15.13          return true;
   15.14      }
   15.15  
   15.16 -    private void processException(Throwable e, boolean isModal) {
   15.17 +    private void processException(Throwable e) {
   15.18          if (eventLog.isLoggable(Level.FINE)) {
   15.19 -            eventLog.log(Level.FINE, "Processing exception: " + e +
   15.20 -                                     ", isModal = " + isModal);
   15.21 +            eventLog.log(Level.FINE, "Processing exception: " + e);
   15.22          }
   15.23 -        if (!handleException(e)) {
   15.24 -            // See bug ID 4499199.
   15.25 -            // If we are in a modal dialog, we cannot throw
   15.26 -            // an exception for the ThreadGroup to handle (as added
   15.27 -            // in RFE 4063022).  If we did, the message pump of
   15.28 -            // the modal dialog would be interrupted.
   15.29 -            // We instead choose to handle the exception ourselves.
   15.30 -            // It may be useful to add either a runtime flag or API
   15.31 -            // later if someone would like to instead dispose the
   15.32 -            // dialog and allow the thread group to handle it.
   15.33 -            if (isModal) {
   15.34 -                System.err.println(
   15.35 -                    "Exception occurred during event dispatching:");
   15.36 -                e.printStackTrace();
   15.37 -            } else if (e instanceof RuntimeException) {
   15.38 -                throw (RuntimeException)e;
   15.39 -            } else if (e instanceof Error) {
   15.40 -                throw (Error)e;
   15.41 -            }
   15.42 -        }
   15.43 -    }
   15.44 -
   15.45 -    private static final String handlerPropName = "sun.awt.exception.handler";
   15.46 -    private static String handlerClassName = null;
   15.47 -    private static String NO_HANDLER = new String();
   15.48 -
   15.49 -    /**
   15.50 -     * Handles an exception thrown in the event-dispatch thread.
   15.51 -     *
   15.52 -     * <p> If the system property "sun.awt.exception.handler" is defined, then
   15.53 -     * when this method is invoked it will attempt to do the following:
   15.54 -     *
   15.55 -     * <ol>
   15.56 -     * <li> Load the class named by the value of that property, using the
   15.57 -     *      current thread's context class loader,
   15.58 -     * <li> Instantiate that class using its zero-argument constructor,
   15.59 -     * <li> Find the resulting handler object's <tt>public void handle</tt>
   15.60 -     *      method, which should take a single argument of type
   15.61 -     *      <tt>Throwable</tt>, and
   15.62 -     * <li> Invoke the handler's <tt>handle</tt> method, passing it the
   15.63 -     *      <tt>thrown</tt> argument that was passed to this method.
   15.64 -     * </ol>
   15.65 -     *
   15.66 -     * If any of the first three steps fail then this method will return
   15.67 -     * <tt>false</tt> and all following invocations of this method will return
   15.68 -     * <tt>false</tt> immediately.  An exception thrown by the handler object's
   15.69 -     * <tt>handle</tt> will be caught, and will cause this method to return
   15.70 -     * <tt>false</tt>.  If the handler's <tt>handle</tt> method is successfully
   15.71 -     * invoked, then this method will return <tt>true</tt>.  This method will
   15.72 -     * never throw any sort of exception.
   15.73 -     *
   15.74 -     * <p> <i>Note:</i> This method is a temporary hack to work around the
   15.75 -     * absence of a real API that provides the ability to replace the
   15.76 -     * event-dispatch thread.  The magic "sun.awt.exception.handler" property
   15.77 -     * <i>will be removed</i> in a future release.
   15.78 -     *
   15.79 -     * @param  thrown  The Throwable that was thrown in the event-dispatch
   15.80 -     *                 thread
   15.81 -     *
   15.82 -     * @return  <tt>false</tt> if any of the above steps failed, otherwise
   15.83 -     *          <tt>true</tt>
   15.84 -     */
   15.85 -    private boolean handleException(Throwable thrown) {
   15.86 -
   15.87 -        try {
   15.88 -
   15.89 -            if (handlerClassName == NO_HANDLER) {
   15.90 -                return false;   /* Already tried, and failed */
   15.91 -            }
   15.92 -
   15.93 -            /* Look up the class name */
   15.94 -            if (handlerClassName == null) {
   15.95 -                handlerClassName = ((String) AccessController.doPrivileged(
   15.96 -                    new GetPropertyAction(handlerPropName)));
   15.97 -                if (handlerClassName == null) {
   15.98 -                    handlerClassName = NO_HANDLER; /* Do not try this again */
   15.99 -                    return false;
  15.100 -                }
  15.101 -            }
  15.102 -
  15.103 -            /* Load the class, instantiate it, and find its handle method */
  15.104 -            Method m;
  15.105 -            Object h;
  15.106 -            try {
  15.107 -                ClassLoader cl = Thread.currentThread().getContextClassLoader();
  15.108 -                Class c = Class.forName(handlerClassName, true, cl);
  15.109 -                m = c.getMethod("handle", new Class[] { Throwable.class });
  15.110 -                h = c.newInstance();
  15.111 -            } catch (Throwable x) {
  15.112 -                handlerClassName = NO_HANDLER; /* Do not try this again */
  15.113 -                return false;
  15.114 -            }
  15.115 -
  15.116 -            /* Finally, invoke the handler */
  15.117 -            m.invoke(h, new Object[] { thrown });
  15.118 -
  15.119 -        } catch (Throwable x) {
  15.120 -            return false;
  15.121 -        }
  15.122 -
  15.123 -        return true;
  15.124 +        getUncaughtExceptionHandler().uncaughtException(this, e);
  15.125 +        // don't rethrow the exception to avoid EDT recreation
  15.126      }
  15.127  
  15.128      boolean isDispatching(EventQueue eq) {
    16.1 --- a/src/share/classes/java/awt/List.java	Tue Feb 17 09:06:16 2009 -0800
    16.2 +++ b/src/share/classes/java/awt/List.java	Wed Feb 18 10:05:41 2009 -0800
    16.3 @@ -378,7 +378,7 @@
    16.4  
    16.5          ListPeer peer = (ListPeer)this.peer;
    16.6          if (peer != null) {
    16.7 -            peer.addItem(item, index);
    16.8 +            peer.add(item, index);
    16.9          }
   16.10      }
   16.11  
   16.12 @@ -413,7 +413,7 @@
   16.13      public synchronized void clear() {
   16.14          ListPeer peer = (ListPeer)this.peer;
   16.15          if (peer != null) {
   16.16 -            peer.clear();
   16.17 +            peer.removeAll();
   16.18          }
   16.19          items = new Vector();
   16.20          selected = new int[0];
   16.21 @@ -718,7 +718,7 @@
   16.22              multipleMode = b;
   16.23              ListPeer peer = (ListPeer)this.peer;
   16.24              if (peer != null) {
   16.25 -                peer.setMultipleSelections(b);
   16.26 +                peer.setMultipleMode(b);
   16.27              }
   16.28          }
   16.29      }
   16.30 @@ -768,7 +768,7 @@
   16.31          synchronized (getTreeLock()) {
   16.32              ListPeer peer = (ListPeer)this.peer;
   16.33              return (peer != null) ?
   16.34 -                       peer.preferredSize(rows) :
   16.35 +                       peer.getPreferredSize(rows) :
   16.36                         super.preferredSize();
   16.37          }
   16.38      }
   16.39 @@ -818,7 +818,7 @@
   16.40          synchronized (getTreeLock()) {
   16.41              ListPeer peer = (ListPeer)this.peer;
   16.42              return (peer != null) ?
   16.43 -                       peer.minimumSize(rows) :
   16.44 +                       peer.getMinimumSize(rows) :
   16.45                         super.minimumSize();
   16.46          }
   16.47      }
    17.1 --- a/src/share/classes/java/awt/MenuItem.java	Tue Feb 17 09:06:16 2009 -0800
    17.2 +++ b/src/share/classes/java/awt/MenuItem.java	Wed Feb 18 10:05:41 2009 -0800
    17.3 @@ -268,7 +268,7 @@
    17.4          enabled = true;
    17.5          MenuItemPeer peer = (MenuItemPeer)this.peer;
    17.6          if (peer != null) {
    17.7 -            peer.enable();
    17.8 +            peer.setEnabled(true);
    17.9          }
   17.10      }
   17.11  
   17.12 @@ -294,7 +294,7 @@
   17.13          enabled = false;
   17.14          MenuItemPeer peer = (MenuItemPeer)this.peer;
   17.15          if (peer != null) {
   17.16 -            peer.disable();
   17.17 +            peer.setEnabled(false);
   17.18          }
   17.19      }
   17.20  
    18.1 --- a/src/share/classes/java/awt/Robot.java	Tue Feb 17 09:06:16 2009 -0800
    18.2 +++ b/src/share/classes/java/awt/Robot.java	Wed Feb 18 10:05:41 2009 -0800
    18.3 @@ -70,10 +70,7 @@
    18.4      private RobotPeer peer;
    18.5      private boolean isAutoWaitForIdle = false;
    18.6      private int autoDelay = 0;
    18.7 -    private static final int LEGAL_BUTTON_MASK =
    18.8 -                                            InputEvent.BUTTON1_MASK|
    18.9 -                                            InputEvent.BUTTON2_MASK|
   18.10 -                                            InputEvent.BUTTON3_MASK;
   18.11 +    private static int LEGAL_BUTTON_MASK;
   18.12  
   18.13      // location of robot's GC, used in mouseMove(), getPixelColor() and captureScreenImage()
   18.14      private Point gdLoc;
   18.15 @@ -98,6 +95,19 @@
   18.16          }
   18.17          init(GraphicsEnvironment.getLocalGraphicsEnvironment()
   18.18              .getDefaultScreenDevice());
   18.19 +        int tmpMask = 0;
   18.20 +        if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
   18.21 +            for (int i = 0; i < peer.getNumberOfButtons(); i++){
   18.22 +                tmpMask |= InputEvent.getMaskForButton(i+1);
   18.23 +            }
   18.24 +        }
   18.25 +        tmpMask |= InputEvent.BUTTON1_MASK|
   18.26 +            InputEvent.BUTTON2_MASK|
   18.27 +            InputEvent.BUTTON3_MASK|
   18.28 +            InputEvent.BUTTON1_DOWN_MASK|
   18.29 +            InputEvent.BUTTON2_DOWN_MASK|
   18.30 +            InputEvent.BUTTON3_DOWN_MASK;
   18.31 +        LEGAL_BUTTON_MASK = tmpMask;
   18.32      }
   18.33  
   18.34      /**
   18.35 @@ -187,18 +197,55 @@
   18.36  
   18.37      /**
   18.38       * Presses one or more mouse buttons.  The mouse buttons should
   18.39 -     * be released using the <code>mouseRelease</code> method.
   18.40 +     * be released using the {@link #mouseRelease(int)} method.
   18.41       *
   18.42 -     * @param buttons   the Button mask; a combination of one or more
   18.43 -     * of these flags:
   18.44 +     * @param buttons the Button mask; a combination of one or more
   18.45 +     * mouse button masks.
   18.46 +     * <p>
   18.47 +     * It is allowed to use only a combination of valid values as a {@code buttons} parameter.
   18.48 +     * A valid combination consists of {@code InputEvent.BUTTON1_DOWN_MASK},
   18.49 +     * {@code InputEvent.BUTTON2_DOWN_MASK}, {@code InputEvent.BUTTON3_DOWN_MASK}
   18.50 +     * and values returned by the
   18.51 +     * {@link InputEvent#getMaskForButton(int) InputEvent.getMaskForButton(button)} method.
   18.52 +     *
   18.53 +     * The valid combination also depends on a
   18.54 +     * {@link Toolkit#areExtraMouseButtonsEnabled() Toolkit.areExtraMouseButtonsEnabled()} value as follows:
   18.55       * <ul>
   18.56 -     * <li><code>InputEvent.BUTTON1_MASK</code>
   18.57 -     * <li><code>InputEvent.BUTTON2_MASK</code>
   18.58 -     * <li><code>InputEvent.BUTTON3_MASK</code>
   18.59 +     * <li> If support for extended mouse buttons is
   18.60 +     * {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java
   18.61 +     * then it is allowed to use only the following standard button masks:
   18.62 +     * {@code InputEvent.BUTTON1_DOWN_MASK}, {@code InputEvent.BUTTON2_DOWN_MASK},
   18.63 +     * {@code InputEvent.BUTTON3_DOWN_MASK}.
   18.64 +     * <li> If support for extended mouse buttons is
   18.65 +     * {@link Toolkit#areExtraMouseButtonsEnabled() enabled} by Java
   18.66 +     * then it is allowed to use the standard button masks
   18.67 +     * and masks for existing extended mouse buttons, if the mouse has more then three buttons.
   18.68 +     * In that way, it is allowed to use the button masks corresponding to the buttons
   18.69 +     * in the range from 1 to {@link java.awt.MouseInfo#getNumberOfButtons() MouseInfo.getNumberOfButtons()}.
   18.70 +     * <br>
   18.71 +     * It is recommended to use the {@link InputEvent#getMaskForButton(int) InputEvent.getMaskForButton(button)}
   18.72 +     * method to obtain the mask for any mouse button by its number.
   18.73       * </ul>
   18.74 -     * @throws  IllegalArgumentException if the button mask is not a
   18.75 -     *          valid combination
   18.76 +     * <p>
   18.77 +     * The following standard button masks are also accepted:
   18.78 +     * <ul>
   18.79 +     * <li>{@code InputEvent.BUTTON1_MASK}
   18.80 +     * <li>{@code InputEvent.BUTTON2_MASK}
   18.81 +     * <li>{@code InputEvent.BUTTON3_MASK}
   18.82 +     * </ul>
   18.83 +     * However, it is recommended to use {@code InputEvent.BUTTON1_DOWN_MASK},
   18.84 +     * {@code InputEvent.BUTTON2_DOWN_MASK},  {@code InputEvent.BUTTON3_DOWN_MASK} instead.
   18.85 +     * Either extended {@code _DOWN_MASK} or old {@code _MASK} values
   18.86 +     * should be used, but both those models should not be mixed.
   18.87 +     * @throws IllegalArgumentException if the {@code buttons} mask contains the mask for extra mouse button
   18.88 +     *         and support for extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java
   18.89 +     * @throws IllegalArgumentException if the {@code buttons} mask contains the mask for extra mouse button
   18.90 +     *         that does not exist on the mouse and support for extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() enabled} by Java
   18.91       * @see #mouseRelease(int)
   18.92 +     * @see InputEvent#getMaskForButton(int)
   18.93 +     * @see Toolkit#areExtraMouseButtonsEnabled()
   18.94 +     * @see java.awt.MouseInfo#getNumberOfButtons()
   18.95 +     * @see java.awt.event.MouseEvent
   18.96       */
   18.97      public synchronized void mousePress(int buttons) {
   18.98          checkButtonsArgument(buttons);
   18.99 @@ -209,16 +256,53 @@
  18.100      /**
  18.101       * Releases one or more mouse buttons.
  18.102       *
  18.103 -     * @param buttons   the Button mask; a combination of one or more
  18.104 -     * of these flags:
  18.105 +     * @param buttons the Button mask; a combination of one or more
  18.106 +     * mouse button masks.
  18.107 +     * <p>
  18.108 +     * It is allowed to use only a combination of valid values as a {@code buttons} parameter.
  18.109 +     * A valid combination consists of {@code InputEvent.BUTTON1_DOWN_MASK},
  18.110 +     * {@code InputEvent.BUTTON2_DOWN_MASK}, {@code InputEvent.BUTTON3_DOWN_MASK}
  18.111 +     * and values returned by the
  18.112 +     * {@link InputEvent#getMaskForButton(int) InputEvent.getMaskForButton(button)} method.
  18.113 +     *
  18.114 +     * The valid combination also depends on a
  18.115 +     * {@link Toolkit#areExtraMouseButtonsEnabled() Toolkit.areExtraMouseButtonsEnabled()} value as follows:
  18.116       * <ul>
  18.117 -     * <li><code>InputEvent.BUTTON1_MASK</code>
  18.118 -     * <li><code>InputEvent.BUTTON2_MASK</code>
  18.119 -     * <li><code>InputEvent.BUTTON3_MASK</code>
  18.120 +     * <li> If the support for extended mouse buttons is
  18.121 +     * {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java
  18.122 +     * then it is allowed to use only the following standard button masks:
  18.123 +     * {@code InputEvent.BUTTON1_DOWN_MASK}, {@code InputEvent.BUTTON2_DOWN_MASK},
  18.124 +     * {@code InputEvent.BUTTON3_DOWN_MASK}.
  18.125 +     * <li> If the support for extended mouse buttons is
  18.126 +     * {@link Toolkit#areExtraMouseButtonsEnabled() enabled} by Java
  18.127 +     * then it is allowed to use the standard button masks
  18.128 +     * and masks for existing extended mouse buttons, if the mouse has more then three buttons.
  18.129 +     * In that way, it is allowed to use the button masks corresponding to the buttons
  18.130 +     * in the range from 1 to {@link java.awt.MouseInfo#getNumberOfButtons() MouseInfo.getNumberOfButtons()}.
  18.131 +     * <br>
  18.132 +     * It is recommended to use the {@link InputEvent#getMaskForButton(int) InputEvent.getMaskForButton(button)}
  18.133 +     * method to obtain the mask for any mouse button by its number.
  18.134       * </ul>
  18.135 +     * <p>
  18.136 +     * The following standard button masks are also accepted:
  18.137 +     * <ul>
  18.138 +     * <li>{@code InputEvent.BUTTON1_MASK}
  18.139 +     * <li>{@code InputEvent.BUTTON2_MASK}
  18.140 +     * <li>{@code InputEvent.BUTTON3_MASK}
  18.141 +     * </ul>
  18.142 +     * However, it is recommended to use {@code InputEvent.BUTTON1_DOWN_MASK},
  18.143 +     * {@code InputEvent.BUTTON2_DOWN_MASK},  {@code InputEvent.BUTTON3_DOWN_MASK} instead.
  18.144 +     * Either extended {@code _DOWN_MASK} or old {@code _MASK} values
  18.145 +     * should be used, but both those models should not be mixed.
  18.146 +     * @throws IllegalArgumentException if the {@code buttons} mask contains the mask for extra mouse button
  18.147 +     *         and support for extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java
  18.148 +     * @throws IllegalArgumentException if the {@code buttons} mask contains the mask for extra mouse button
  18.149 +     *         that does not exist on the mouse and support for extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() enabled} by Java
  18.150       * @see #mousePress(int)
  18.151 -     * @throws  IllegalArgumentException if the button mask is not a valid
  18.152 -     *          combination
  18.153 +     * @see InputEvent#getMaskForButton(int)
  18.154 +     * @see Toolkit#areExtraMouseButtonsEnabled()
  18.155 +     * @see java.awt.MouseInfo#getNumberOfButtons()
  18.156 +     * @see java.awt.event.MouseEvent
  18.157       */
  18.158      public synchronized void mouseRelease(int buttons) {
  18.159          checkButtonsArgument(buttons);
    19.1 --- a/src/share/classes/java/awt/TextArea.java	Tue Feb 17 09:06:16 2009 -0800
    19.2 +++ b/src/share/classes/java/awt/TextArea.java	Wed Feb 18 10:05:41 2009 -0800
    19.3 @@ -321,7 +321,7 @@
    19.4      public synchronized void insertText(String str, int pos) {
    19.5          TextAreaPeer peer = (TextAreaPeer)this.peer;
    19.6          if (peer != null) {
    19.7 -            peer.insertText(str, pos);
    19.8 +            peer.insert(str, pos);
    19.9          } else {
   19.10              text = text.substring(0, pos) + str + text.substring(pos);
   19.11          }
   19.12 @@ -385,7 +385,7 @@
   19.13      public synchronized void replaceText(String str, int start, int end) {
   19.14          TextAreaPeer peer = (TextAreaPeer)this.peer;
   19.15          if (peer != null) {
   19.16 -            peer.replaceText(str, start, end);
   19.17 +            peer.replaceRange(str, start, end);
   19.18          } else {
   19.19              text = text.substring(0, start) + str + text.substring(end);
   19.20          }
   19.21 @@ -500,7 +500,7 @@
   19.22          synchronized (getTreeLock()) {
   19.23              TextAreaPeer peer = (TextAreaPeer)this.peer;
   19.24              return (peer != null) ?
   19.25 -                       peer.preferredSize(rows, columns) :
   19.26 +                       peer.getPreferredSize(rows, columns) :
   19.27                         super.preferredSize();
   19.28          }
   19.29      }
   19.30 @@ -552,7 +552,7 @@
   19.31          synchronized (getTreeLock()) {
   19.32              TextAreaPeer peer = (TextAreaPeer)this.peer;
   19.33              return (peer != null) ?
   19.34 -                       peer.minimumSize(rows, columns) :
   19.35 +                       peer.getMinimumSize(rows, columns) :
   19.36                         super.minimumSize();
   19.37          }
   19.38      }
    20.1 --- a/src/share/classes/java/awt/TextField.java	Tue Feb 17 09:06:16 2009 -0800
    20.2 +++ b/src/share/classes/java/awt/TextField.java	Wed Feb 18 10:05:41 2009 -0800
    20.3 @@ -281,7 +281,7 @@
    20.4              echoChar = c;
    20.5              TextFieldPeer peer = (TextFieldPeer)this.peer;
    20.6              if (peer != null) {
    20.7 -                peer.setEchoCharacter(c);
    20.8 +                peer.setEchoChar(c);
    20.9              }
   20.10          }
   20.11      }
   20.12 @@ -376,7 +376,7 @@
   20.13          synchronized (getTreeLock()) {
   20.14              TextFieldPeer peer = (TextFieldPeer)this.peer;
   20.15              return (peer != null) ?
   20.16 -                       peer.preferredSize(columns) :
   20.17 +                       peer.getPreferredSize(columns) :
   20.18                         super.preferredSize();
   20.19          }
   20.20      }
   20.21 @@ -424,7 +424,7 @@
   20.22          synchronized (getTreeLock()) {
   20.23              TextFieldPeer peer = (TextFieldPeer)this.peer;
   20.24              return (peer != null) ?
   20.25 -                       peer.minimumSize(columns) :
   20.26 +                       peer.getMinimumSize(columns) :
   20.27                         super.minimumSize();
   20.28          }
   20.29      }
    21.1 --- a/src/share/classes/java/awt/Toolkit.java	Tue Feb 17 09:06:16 2009 -0800
    21.2 +++ b/src/share/classes/java/awt/Toolkit.java	Wed Feb 18 10:05:41 2009 -0800
    21.3 @@ -1,5 +1,5 @@
    21.4  /*
    21.5 - * Copyright 1995-2007 Sun Microsystems, Inc.  All Rights Reserved.
    21.6 + * Copyright 1995-2008 Sun Microsystems, Inc.  All Rights Reserved.
    21.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    21.8   *
    21.9   * This code is free software; you can redistribute it and/or modify it
   21.10 @@ -2550,4 +2550,37 @@
   21.11              }
   21.12          }
   21.13      }
   21.14 +
   21.15 +    /**
   21.16 +    * Reports whether events from extra mouse buttons are allowed to be processed and posted into
   21.17 +    * {@code EventQueue}.
   21.18 +    * <br>
   21.19 +    * To change the returned value it is necessary to set the {@code sun.awt.enableExtraMouseButtons}
   21.20 +    * property before the {@code Toolkit} class initialization. This setting could be done on the application
   21.21 +    * startup by the following command:
   21.22 +    * <pre>
   21.23 +    * java -Dsun.awt.enableExtraMouseButtons=false Application
   21.24 +    * </pre>
   21.25 +    * Alternatively, the property could be set in the application by using the following code:
   21.26 +    * <pre>
   21.27 +    * System.setProperty("sun.awt.enableExtraMouseButtons", "true");
   21.28 +    * </pre>
   21.29 +    * before the {@code Toolkit} class initialization.
   21.30 +    * If not set by the time of the {@code Toolkit} class initialization, this property will be
   21.31 +    * initialized with {@code true}.
   21.32 +    * Changing this value after the {@code Toolkit} class initialization will have no effect.
   21.33 +    * <p>
   21.34 +    * The current value could be queried by using the
   21.35 +    * {@code System.getProperty("sun.awt.enableExtraMouseButtons")} method.
   21.36 +    * @exception HeadlessException if GraphicsEnvironment.isHeadless() returns true
   21.37 +    * @return {@code true} if events from extra mouse buttons are allowed to be processed and posted;
   21.38 +    *         {@code false} otherwise
   21.39 +    * @see System#getProperty(String propertyName)
   21.40 +    * @see System#setProperty(String propertyName, String value)
   21.41 +    * @see java.awt.EventQueue
   21.42 +    * @since 1.7
   21.43 +     */
   21.44 +    public boolean areExtraMouseButtonsEnabled() throws HeadlessException {
   21.45 +        return Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled();
   21.46 +    }
   21.47  }
    22.1 --- a/src/share/classes/java/awt/Window.java	Tue Feb 17 09:06:16 2009 -0800
    22.2 +++ b/src/share/classes/java/awt/Window.java	Wed Feb 18 10:05:41 2009 -0800
    22.3 @@ -53,6 +53,7 @@
    22.4  import sun.awt.CausedFocusEvent;
    22.5  import sun.awt.SunToolkit;
    22.6  import sun.awt.util.IdentityArrayList;
    22.7 +import sun.java2d.Disposer;
    22.8  import sun.java2d.pipe.Region;
    22.9  import sun.security.action.GetPropertyAction;
   22.10  import sun.security.util.SecurityConstants;
   22.11 @@ -409,8 +410,6 @@
   22.12          }
   22.13  
   22.14          modalExclusionType = Dialog.ModalExclusionType.NO_EXCLUDE;
   22.15 -
   22.16 -        sun.java2d.Disposer.addRecord(anchor, new WindowDisposerRecord(appContext, this));
   22.17      }
   22.18  
   22.19      /**
   22.20 @@ -540,6 +539,10 @@
   22.21          if (owner != null) {
   22.22              owner.addOwnedWindow(weakThis);
   22.23          }
   22.24 +
   22.25 +        // Fix for 6758673: this call is moved here from init(gc), because
   22.26 +        // WindowDisposerRecord requires a proper value of parent field.
   22.27 +        Disposer.addRecord(anchor, new WindowDisposerRecord(appContext, this));
   22.28      }
   22.29  
   22.30      /**
    23.1 --- a/src/share/classes/java/awt/doc-files/DesktopProperties.html	Tue Feb 17 09:06:16 2009 -0800
    23.2 +++ b/src/share/classes/java/awt/doc-files/DesktopProperties.html	Wed Feb 18 10:05:41 2009 -0800
    23.3 @@ -1,5 +1,5 @@
    23.4  <!--
    23.5 - Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    23.6 + Copyright 2005-2008 Sun Microsystems, Inc.  All Rights Reserved.
    23.7   DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    23.8  
    23.9   This code is free software; you can redistribute it and/or modify it
   23.10 @@ -64,6 +64,11 @@
   23.11  <td valign="TOP"><a href="../../util/Map.html">java.util.Map<a/></td>
   23.12  <td valign="TOP">Font smoothing (text antialiasing) settings.<a/></td>
   23.13  </tr>
   23.14 +<tr>
   23.15 +<td valign="TOP"><A href=#"sun.awt.enableExtraMouseButtons">sun.awt.enableExtraMouseButtons</A</td>
   23.16 +<td valign="TOP"><a href="../../lang/Boolean.html">java.lang.Boolean<a/></td>
   23.17 +<td valign="TOP">Controls if mouse events from extra buttons are to be generated or not<a/></td>
   23.18 +</tr>
   23.19  </table>
   23.20  <p>
   23.21  <h2>Desktop Font Rendering Hints</h2>
   23.22 @@ -219,5 +224,50 @@
   23.23  determine that there is a non-null return for any screen device using
   23.24  the per-device property name.
   23.25  </ul>
   23.26 +<h2>Mouse Functionality</h2>
   23.27 +<b>Desktop Property: <A name="sun.awt.enableExtraMouseButtons">"sun.awt.enableExtraMouseButtons"</A></b>
   23.28 +<p>
   23.29 +This property determines if events from extra mouse buttons (if they are exist and are
   23.30 +enabled by the underlying operating system) are allowed to be processed and posted into
   23.31 +{@code EventQueue}.
   23.32 +<br>
   23.33 +The value could be changed by passing "sun.awt.enableExtraMouseButtons"
   23.34 +property value into java before application starts. This could be done with the following command:
   23.35 +<pre>
   23.36 +java -Dsun.awt.enableExtraMouseButtons=false Application
   23.37 +</pre>
   23.38 +Once set on application startup, it is impossible to change this value after.
   23.39 +<br>
   23.40 +Current value could also be queried using getDesktopProperty("sun.awt.enableExtraMouseButtons")
   23.41 +method.
   23.42 +<br>
   23.43 +If the property is set to {@code true} then 
   23.44 +<ul>
   23.45 +<li> it is still legal to create {@code MouseEvent} objects with
   23.46 +standard buttons and, if the mouse has more
   23.47 +then three buttons, it is also legal to use buttons from the range started
   23.48 +from 0 up to {@link java.awt.MouseInfo#getNumberOfButtons() getNumberOfButtons()}.
   23.49 +
   23.50 +<li> it is legal to use standard button masks when using {@code Robot.mousePress()}
   23.51 +and {@code Robot.mouseRelease()} methods and, if the mouse has more then three buttons,
   23.52 +it is also legal to use masks for existing extended mouse buttons.
   23.53 +That way, if there are more then three buttons on the mouse then it is allowed to
   23.54 +use button masks corresponding to the buttons 
   23.55 +in the range from 1 up to {@link java.awt.MouseInfo#getNumberOfButtons() getNumberOfButtons()}
   23.56 +</ul>
   23.57 +<br>
   23.58 +If the property is set to {@code false} then 
   23.59 +<ul>
   23.60 +<li> it is legal to create {@code MouseEvent} objects with standard buttons 
   23.61 +only: {@code NOBUTTON}, {@code BUTTON1}, {@code BUTTON2} and
   23.62 +{@code BUTTON3}
   23.63 +<li> it is legal to use standard button masks only:
   23.64 +{@code InputEvent.BUTTON1_DOWN_MASK}, {@code InputEvent.BUTTON2_DOWN_MASK},
   23.65 +{@code InputEvent.BUTTON3_DOWN_MASK}
   23.66 +</ul>
   23.67 +
   23.68 +This property should be used when there is no need in listening mouse events fired as a result of
   23.69 +activity with extra mouse button.
   23.70 +By default this property is set to {@code true}.
   23.71  </body>
   23.72  </html>
    24.1 --- a/src/share/classes/java/awt/event/InputEvent.java	Tue Feb 17 09:06:16 2009 -0800
    24.2 +++ b/src/share/classes/java/awt/event/InputEvent.java	Wed Feb 18 10:05:41 2009 -0800
    24.3 @@ -31,6 +31,7 @@
    24.4  import java.awt.Toolkit;
    24.5  import java.util.logging.Logger;
    24.6  import java.util.logging.Level;
    24.7 +import java.util.Arrays;
    24.8  
    24.9  /**
   24.10   * The root event class for all component-level input events.
   24.11 @@ -153,13 +154,93 @@
   24.12       */
   24.13      public static final int ALT_GRAPH_DOWN_MASK = 1 << 13;
   24.14  
   24.15 +    /**
   24.16 +     * An array of extended modifiers for additional buttons.
   24.17 +     * @see getButtonDownMasks
   24.18 +     * @since 7.0
   24.19 +     */
   24.20 +    private static final int [] BUTTON_DOWN_MASK = new int [] { BUTTON1_DOWN_MASK,
   24.21 +                                                               BUTTON2_DOWN_MASK,
   24.22 +                                                               BUTTON3_DOWN_MASK,
   24.23 +                                                               1<<14, //4th phisical button (this is not a wheel!)
   24.24 +                                                               1<<15, //(this is not a wheel!)
   24.25 +                                                               1<<16,
   24.26 +                                                               1<<17,
   24.27 +                                                               1<<18,
   24.28 +                                                               1<<19,
   24.29 +                                                               1<<20,
   24.30 +                                                               1<<21 };
   24.31 +
   24.32 +    /**
   24.33 +     * A method to access an array of extended modifiers for additional buttons.
   24.34 +     * @since 7.0
   24.35 +     */
   24.36 +    private static int [] getButtonDownMasks(){
   24.37 +        return Arrays.copyOf(BUTTON_DOWN_MASK, BUTTON_DOWN_MASK.length);
   24.38 +    }
   24.39 +
   24.40 +
   24.41 +    /**
   24.42 +     * A method to obtain a mask for any existing mouse button.
   24.43 +     * The returned mask may be used for different purposes. Following are some of them:
   24.44 +     * <ul>
   24.45 +     * <li> {@link java.awt.Robot#mousePress(int) mousePress(buttons)} and
   24.46 +     *      {@link java.awt.Robot#mouseRelease(int) mouseRelease(buttons)}
   24.47 +     * <li> as a {@code modifiers} parameter when creating a new {@link MouseEvent} instance
   24.48 +     * <li> to check {@link MouseEvent#getModifiersEx() modifiersEx} of existing {@code MouseEvent}
   24.49 +     * </ul>
   24.50 +     * @param button is a number to represent a button starting from 1.
   24.51 +     * For example,
   24.52 +     * <pre>
   24.53 +     * int button = InputEvent.getMaskForButton(1);
   24.54 +     * </pre>
   24.55 +     * will have the same meaning as
   24.56 +     * <pre>
   24.57 +     * int button = InputEvent.getMaskForButton(MouseEvent.BUTTON1);
   24.58 +     * </pre>
   24.59 +     * because {@link MouseEvent#BUTTON1 MouseEvent.BUTTON1} equals to 1.
   24.60 +     * If a mouse has three enabled buttons(see {@link java.awt.MouseInfo#getNumberOfButtons() MouseInfo.getNumberOfButtons()})
   24.61 +     * then the values from the left column passed into the method will return
   24.62 +     * corresponding values from the right column:
   24.63 +     * <PRE>
   24.64 +     *    <b>button </b>   <b>returned mask</b>
   24.65 +     *    {@link MouseEvent#BUTTON1 BUTTON1}  {@link MouseEvent#BUTTON1_DOWN_MASK BUTTON1_DOWN_MASK}
   24.66 +     *    {@link MouseEvent#BUTTON2 BUTTON2}  {@link MouseEvent#BUTTON2_DOWN_MASK BUTTON2_DOWN_MASK}
   24.67 +     *    {@link MouseEvent#BUTTON3 BUTTON3}  {@link MouseEvent#BUTTON3_DOWN_MASK BUTTON3_DOWN_MASK}
   24.68 +     * </PRE>
   24.69 +     * If a mouse has more than three enabled buttons then more values
   24.70 +     * are admissible (4, 5, etc.). There is no assigned constants for these extended buttons.
   24.71 +     * The button masks for the extra buttons returned by this method have no assigned names like the
   24.72 +     * first three button masks.
   24.73 +     * <p>
   24.74 +     * This method has the following implementation restriction.
   24.75 +     * It returns masks for a limited number of buttons only. The maximum number is
   24.76 +     * implementation dependent and may vary.
   24.77 +     * This limit is defined by the relevant number
   24.78 +     * of buttons that may hypothetically exist on the mouse but it is greater than the
   24.79 +     * {@link java.awt.MouseInfo#getNumberOfButtons() MouseInfo.getNumberOfButtons()}.
   24.80 +     * <p>
   24.81 +     * @throws IllegalArgumentException if {@code button} is less than zero or greater than the number
   24.82 +     *         of button masks reserved for buttons
   24.83 +     * @since 7.0
   24.84 +     * @see java.awt.MouseInfo#getNumberOfButtons()
   24.85 +     * @see Toolkit#areExtraMouseButtonsEnabled()
   24.86 +     * @see MouseEvent#getModifiers()
   24.87 +     * @see MouseEvent#getModifiersEx()
   24.88 +     */
   24.89 +    public static int getMaskForButton(int button) {
   24.90 +        if (button <= 0 || button > BUTTON_DOWN_MASK.length) {
   24.91 +            throw new IllegalArgumentException("button doesn\'t exist " + button);
   24.92 +        }
   24.93 +        return BUTTON_DOWN_MASK[button - 1];
   24.94 +    }
   24.95 +
   24.96      // the constant below MUST be updated if any extra modifier
   24.97      // bits are to be added!
   24.98      // in fact, it is undesirable to add modifier bits
   24.99      // to the same field as this may break applications
  24.100      // see bug# 5066958
  24.101 -
  24.102 -    static final int FIRST_HIGH_BIT = 1 << 14;
  24.103 +    static final int FIRST_HIGH_BIT = 1 << 22;
  24.104  
  24.105      static final int JDK_1_3_MODIFIERS = SHIFT_DOWN_MASK - 1;
  24.106      static final int HIGH_MODIFIERS = ~( FIRST_HIGH_BIT - 1 );
  24.107 @@ -382,7 +463,7 @@
  24.108       * cause the returning an empty string.
  24.109       *
  24.110       * @param modifiers a modifier mask describing the extended
  24.111 -       *                modifier keys and mouse buttons for the event
  24.112 +     *                modifier keys and mouse buttons for the event
  24.113       * @return a text description of the combination of extended
  24.114       *         modifier keys and mouse buttons that were held down
  24.115       *         during the event.
  24.116 @@ -410,17 +491,14 @@
  24.117              buf.append(Toolkit.getProperty("AWT.altGraph", "Alt Graph"));
  24.118              buf.append("+");
  24.119          }
  24.120 -        if ((modifiers & InputEvent.BUTTON1_DOWN_MASK) != 0) {
  24.121 -            buf.append(Toolkit.getProperty("AWT.button1", "Button1"));
  24.122 -            buf.append("+");
  24.123 -        }
  24.124 -        if ((modifiers & InputEvent.BUTTON2_DOWN_MASK) != 0) {
  24.125 -            buf.append(Toolkit.getProperty("AWT.button2", "Button2"));
  24.126 -            buf.append("+");
  24.127 -        }
  24.128 -        if ((modifiers & InputEvent.BUTTON3_DOWN_MASK) != 0) {
  24.129 -            buf.append(Toolkit.getProperty("AWT.button3", "Button3"));
  24.130 -            buf.append("+");
  24.131 +
  24.132 +        int buttonNumber = 1;
  24.133 +        for (int mask : InputEvent.BUTTON_DOWN_MASK){
  24.134 +            if ((modifiers & mask) != 0) {
  24.135 +                buf.append(Toolkit.getProperty("AWT.button"+buttonNumber, "Button"+buttonNumber));
  24.136 +                buf.append("+");
  24.137 +            }
  24.138 +            buttonNumber++;
  24.139          }
  24.140          if (buf.length() > 0) {
  24.141              buf.setLength(buf.length()-1); // remove trailing '+'
    25.1 --- a/src/share/classes/java/awt/event/MouseEvent.java	Tue Feb 17 09:06:16 2009 -0800
    25.2 +++ b/src/share/classes/java/awt/event/MouseEvent.java	Wed Feb 18 10:05:41 2009 -0800
    25.3 @@ -32,6 +32,7 @@
    25.4  import java.io.IOException;
    25.5  import java.io.ObjectInputStream;
    25.6  import java.awt.IllegalComponentStateException;
    25.7 +import java.awt.MouseInfo;
    25.8  
    25.9  /**
   25.10   * An event which indicates that a mouse action occurred in a component.
   25.11 @@ -135,7 +136,15 @@
   25.12   * for <code>BUTTON2_MASK</code> arrives first,
   25.13   * followed by the pair for <code>BUTTON1_MASK</code>.
   25.14   * <p>
   25.15 - *
   25.16 + * Some extra mouse buttons are added to extend the standard set of buttons
   25.17 + * represented by the following constants:{@code BUTTON1}, {@code BUTTON2}, and {@code BUTTON3}.
   25.18 + * Extra buttons have no assigned {@code BUTTONx}
   25.19 + * constants as well as their button masks have no assigned {@code BUTTONx_DOWN_MASK}
   25.20 + * constants. Nevertheless, ordinal numbers starting from 4 may be
   25.21 + * used as button numbers (button ids). Values obtained by the
   25.22 + * {@link InputEvent#getMaskForButton(int) getMaskForButton(button)} method may be used
   25.23 + * as button masks.
   25.24 + * <p>
   25.25   * <code>MOUSE_DRAGGED</code> events are delivered to the <code>Component</code>
   25.26   * in which the mouse button was pressed until the mouse button is released
   25.27   * (regardless of whether the mouse position is within the bounds of the
   25.28 @@ -324,13 +333,31 @@
   25.29      /**
   25.30       * Indicates which, if any, of the mouse buttons has changed state.
   25.31       *
   25.32 -     * The only legal values are the following constants:
   25.33 -     * <code>NOBUTTON</code>,
   25.34 -     * <code>BUTTON1</code>,
   25.35 -     * <code>BUTTON2</code> or
   25.36 -     * <code>BUTTON3</code>.
   25.37 +     * The valid values are ranged from 0 to the value returned by the
   25.38 +     * {@link java.awt.MouseInfo#getNumberOfButtons() MouseInfo.getNumberOfButtons()} method.
   25.39 +     * This range already includes constants {@code NOBUTTON}, {@code BUTTON1},
   25.40 +     * {@code BUTTON2}, and {@code BUTTON3}
   25.41 +     * if these buttons are present. So it is allowed to use these constants too.
   25.42 +     * For example, for a mouse with two buttons this field may contain the following values:
   25.43 +     * <ul>
   25.44 +     * <li> 0 ({@code NOBUTTON})
   25.45 +     * <li> 1 ({@code BUTTON1})
   25.46 +     * <li> 2 ({@code BUTTON2})
   25.47 +     * </ul>
   25.48 +     * If a mouse has 5 buttons, this field may contain the following values:
   25.49 +     * <ul>
   25.50 +     * <li> 0 ({@code NOBUTTON})
   25.51 +     * <li> 1 ({@code BUTTON1})
   25.52 +     * <li> 2 ({@code BUTTON2})
   25.53 +     * <li> 3 ({@code BUTTON3})
   25.54 +     * <li> 4
   25.55 +     * <li> 5
   25.56 +     * </ul>
   25.57 +     * If support for extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled()} disabled by Java
   25.58 +     * then the field may not contain the value larger than {@code BUTTON3}.
   25.59       * @serial
   25.60 -     * @see #getButton().
   25.61 +     * @see #getButton()
   25.62 +     * @see java.awt.Toolkit#areExtraMouseButtonsEnabled()
   25.63       */
   25.64      int button;
   25.65  
   25.66 @@ -385,6 +412,15 @@
   25.67      }
   25.68  
   25.69      /**
   25.70 +     * A number of buttons available on the mouse at the {@code Toolkit} machinery startup.
   25.71 +     */
   25.72 +    private static int cachedNumberOfButtons;
   25.73 +
   25.74 +    static {
   25.75 +        cachedNumberOfButtons = MouseInfo.getNumberOfButtons();
   25.76 +    }
   25.77 +
   25.78 +    /**
   25.79       * Returns the absolute horizontal x position of the event.
   25.80       * In a virtual device multi-screen environment in which the
   25.81       * desktop area could span multiple physical screen devices,
   25.82 @@ -421,7 +457,8 @@
   25.83      /**
   25.84       * Constructs a <code>MouseEvent</code> object with the
   25.85       * specified source component,
   25.86 -     * type, modifiers, coordinates, and click count.
   25.87 +     * type, time, modifiers, coordinates, click count, popupTrigger flag,
   25.88 +     * and button number.
   25.89       * <p>
   25.90       * Creating an invalid event (such
   25.91       * as by using more than one of the old _MASKs, or modifier/button
   25.92 @@ -464,7 +501,33 @@
   25.93       * @param popupTrigger A boolean that equals {@code true} if this event
   25.94       *                     is a trigger for a popup menu
   25.95       * @param button       An integer that indicates, which of the mouse buttons has
   25.96 -     *                     changed its state
   25.97 +     *                     changed its state.
   25.98 +     * The following rules are applied to this parameter:
   25.99 +     * <ul>
  25.100 +     * <li>If support for the extended mouse buttons is
  25.101 +     * {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java
  25.102 +     * then it is allowed to create {@code MouseEvent} objects only with the standard buttons:
  25.103 +     * {@code NOBUTTON}, {@code BUTTON1}, {@code BUTTON2}, and
  25.104 +     * {@code BUTTON3}.
  25.105 +     * <li> If support for the extended mouse buttons is
  25.106 +     * {@link Toolkit#areExtraMouseButtonsEnabled() enabled} by Java
  25.107 +     * then it is allowed to create {@code MouseEvent} objects with
  25.108 +     * the standard buttons.
  25.109 +     * In case the support for extended mouse buttons is
  25.110 +     * {@link Toolkit#areExtraMouseButtonsEnabled() enabled} by Java, then
  25.111 +     * in addition to the standard buttons, {@code MouseEvent} objects can be created
  25.112 +     * using buttons from the range starting from 4 to
  25.113 +     * {@link java.awt.MouseInfo#getNumberOfButtons() MouseInfo.getNumberOfButtons()}
  25.114 +     * if the mouse has more than three buttons.
  25.115 +     * </ul>
  25.116 +     * @throws IllegalArgumentException if {@code button} is less then zero
  25.117 +     * @throws IllegalArgumentException if <code>source</code> is null
  25.118 +     * @throws IllegalArgumentException if {@code button} is greater then BUTTON3 and the support for extended mouse buttons is
  25.119 +     *                                  {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java
  25.120 +     * @throws IllegalArgumentException if {@code button} is greater then the
  25.121 +     *                                  {@link java.awt.MouseInfo#getNumberOfButtons() current number of buttons} and the support
  25.122 +     *                                  for extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() enabled}
  25.123 +     *                                  by Java
  25.124       * @throws IllegalArgumentException if an invalid <code>button</code>
  25.125       *            value is passed in
  25.126       * @throws IllegalArgumentException if <code>source</code> is null
  25.127 @@ -498,7 +561,7 @@
  25.128      /**
  25.129       * Constructs a <code>MouseEvent</code> object with the
  25.130       * specified source component,
  25.131 -     * type, modifiers, coordinates, and click count.
  25.132 +     * type, modifiers, coordinates, click count, and popupTrigger flag.
  25.133       * An invocation of the form
  25.134       * <tt>MouseEvent(source, id, when, modifiers, x, y, clickCount, popupTrigger)</tt>
  25.135       * behaves in exactly the same way as the invocation
  25.136 @@ -551,10 +614,26 @@
  25.137       }
  25.138  
  25.139  
  25.140 +    /* if the button is an extra button and it is released or clicked then in Xsystem its state
  25.141 +       is not modified. Exclude this button number from ExtModifiers mask.*/
  25.142 +    transient private boolean shouldExcludeButtonFromExtModifiers = false;
  25.143 +
  25.144 +    /**
  25.145 +     * {@inheritDoc}
  25.146 +     */
  25.147 +    public int getModifiersEx() {
  25.148 +        int tmpModifiers = modifiers;
  25.149 +        if (shouldExcludeButtonFromExtModifiers) {
  25.150 +            tmpModifiers &= ~(InputEvent.getMaskForButton(getButton()));
  25.151 +        }
  25.152 +        return tmpModifiers & ~JDK_1_3_MODIFIERS;
  25.153 +    }
  25.154 +
  25.155      /**
  25.156       * Constructs a <code>MouseEvent</code> object with the
  25.157       * specified source component,
  25.158 -     * type, modifiers, coordinates, absolute coordinates, and click count.
  25.159 +     * type, time, modifiers, coordinates, absolute coordinates, click count, popupTrigger flag,
  25.160 +     * and button number.
  25.161       * <p>
  25.162       * Creating an invalid event (such
  25.163       * as by using more than one of the old _MASKs, or modifier/button
  25.164 @@ -595,7 +674,33 @@
  25.165       * @param popupTrigger A boolean that equals {@code true} if this event
  25.166       *                     is a trigger for a popup menu
  25.167       * @param button       An integer that indicates, which of the mouse buttons has
  25.168 -     *                     changed its state
  25.169 +     *                     changed its state.
  25.170 +     * The following rules are applied to this parameter:
  25.171 +     * <ul>
  25.172 +     * <li>If support for the extended mouse buttons is
  25.173 +     * {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java
  25.174 +     * then it is allowed to create {@code MouseEvent} objects only with the standard buttons:
  25.175 +     * {@code NOBUTTON}, {@code BUTTON1}, {@code BUTTON2}, and
  25.176 +     * {@code BUTTON3}.
  25.177 +     * <li> If support for the extended mouse buttons is
  25.178 +     * {@link Toolkit#areExtraMouseButtonsEnabled() enabled} by Java
  25.179 +     * then it is allowed to create {@code MouseEvent} objects with
  25.180 +     * the standard buttons.
  25.181 +     * In case the support for extended mouse buttons is
  25.182 +     * {@link Toolkit#areExtraMouseButtonsEnabled() enabled} by Java, then
  25.183 +     * in addition to the standard buttons, {@code MouseEvent} objects can be created
  25.184 +     * using buttons from the range starting from 4 to
  25.185 +     * {@link java.awt.MouseInfo#getNumberOfButtons() MouseInfo.getNumberOfButtons()}
  25.186 +     * if the mouse has more than three buttons.
  25.187 +     * </ul>
  25.188 +     * @throws IllegalArgumentException if {@code button} is less then zero
  25.189 +     * @throws IllegalArgumentException if <code>source</code> is null
  25.190 +     * @throws IllegalArgumentException if {@code button} is greater then BUTTON3 and the support for extended mouse buttons is
  25.191 +     *                                  {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java
  25.192 +     * @throws IllegalArgumentException if {@code button} is greater then the
  25.193 +     *                                  {@link java.awt.MouseInfo#getNumberOfButtons() current number of buttons} and the support
  25.194 +     *                                  for extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() enabled}
  25.195 +     *                                  by Java
  25.196       * @throws IllegalArgumentException if an invalid <code>button</code>
  25.197       *            value is passed in
  25.198       * @throws IllegalArgumentException if <code>source</code> is null
  25.199 @@ -610,6 +715,10 @@
  25.200       * @see #getClickCount()
  25.201       * @see #isPopupTrigger()
  25.202       * @see #getButton()
  25.203 +     * @see #button
  25.204 +     * @see Toolkit#areExtraMouseButtonsEnabled()
  25.205 +     * @see java.awt.MouseInfo#getNumberOfButtons()
  25.206 +     * @see InputEvent#getMaskForButton(int)
  25.207       * @since 1.6
  25.208       */
  25.209      public MouseEvent(Component source, int id, long when, int modifiers,
  25.210 @@ -623,14 +732,41 @@
  25.211          this.yAbs = yAbs;
  25.212          this.clickCount = clickCount;
  25.213          this.popupTrigger = popupTrigger;
  25.214 -        if (button < NOBUTTON || button >BUTTON3) {
  25.215 -            throw new IllegalArgumentException("Invalid button value");
  25.216 +        if (button < NOBUTTON){
  25.217 +            throw new IllegalArgumentException("Invalid button value :" + button);
  25.218          }
  25.219 +        //TODO: initialize MouseInfo.cachedNumber on toolkit creation.
  25.220 +        if (button > BUTTON3) {
  25.221 +            if (!Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
  25.222 +                throw new IllegalArgumentException("Extra mouse events are disabled " + button);
  25.223 +            } else {
  25.224 +                if (button > cachedNumberOfButtons) {
  25.225 +                    throw new IllegalArgumentException("Nonexistent button " + button);
  25.226 +                }
  25.227 +            }
  25.228 +            // XToolkit: extra buttons are not reporting about their state correctly.
  25.229 +            // Being pressed they report the state=0 both on the press and on the release.
  25.230 +            // For 1-3 buttons the state value equals zero on press and non-zero on release.
  25.231 +            // Other modifiers like Shift, ALT etc seem report well with extra buttons.
  25.232 +            // The problem reveals as follows: one button is pressed and then another button is pressed and released.
  25.233 +            // So, the getModifiersEx() would not be zero due to a first button and we will skip this modifier.
  25.234 +            // This may have to be moved into the peer code instead if possible.
  25.235 +
  25.236 +            if (getModifiersEx() != 0) { //There is at least one more button in a pressed state.
  25.237 +                if (id == MouseEvent.MOUSE_RELEASED || id == MouseEvent.MOUSE_CLICKED){
  25.238 +                    System.out.println("MEvent. CASE!");
  25.239 +                    shouldExcludeButtonFromExtModifiers = true;
  25.240 +                }
  25.241 +            }
  25.242 +        }
  25.243 +
  25.244          this.button = button;
  25.245 +
  25.246          if ((getModifiers() != 0) && (getModifiersEx() == 0)) {
  25.247              setNewModifiers();
  25.248          } else if ((getModifiers() == 0) &&
  25.249 -                   (getModifiersEx() != 0 || button != NOBUTTON))
  25.250 +                   (getModifiersEx() != 0 || button != NOBUTTON) &&
  25.251 +                   (button <= BUTTON3))
  25.252          {
  25.253              setOldModifiers();
  25.254          }
  25.255 @@ -701,13 +837,55 @@
  25.256  
  25.257      /**
  25.258       * Returns which, if any, of the mouse buttons has changed state.
  25.259 +     * The returned value is ranged
  25.260 +     * from 0 to the {@link java.awt.MouseInfo#getNumberOfButtons() MouseInfo.getNumberOfButtons()}
  25.261 +     * value.
  25.262 +     * The returned value includes at least the following constants:
  25.263 +     * <ul>
  25.264 +     * <li> {@code NOBUTTON}
  25.265 +     * <li> {@code BUTTON1}
  25.266 +     * <li> {@code BUTTON2}
  25.267 +     * <li> {@code BUTTON3}
  25.268 +     * </ul>
  25.269 +     * It is allowed to use those constants to compare with the returned button number in the application.
  25.270 +     * For example,
  25.271 +     * <pre>
  25.272 +     * if (anEvent.getButton() == MouseEvent.BUTTON1) {
  25.273 +     * </pre>
  25.274 +     * In particular, for a mouse with one, two, or three buttons this method may return the following values:
  25.275 +     * <ul>
  25.276 +     * <li> 0 ({@code NOBUTTON})
  25.277 +     * <li> 1 ({@code BUTTON1})
  25.278 +     * <li> 2 ({@code BUTTON2})
  25.279 +     * <li> 3 ({@code BUTTON3})
  25.280 +     * </ul>
  25.281 +     * Button numbers greater then {@code BUTTON3} have no constant identifier. So if a mouse with five buttons is
  25.282 +     * installed, this method may return the following values:
  25.283 +     * <ul>
  25.284 +     * <li> 0 ({@code NOBUTTON})
  25.285 +     * <li> 1 ({@code BUTTON1})
  25.286 +     * <li> 2 ({@code BUTTON2})
  25.287 +     * <li> 3 ({@code BUTTON3})
  25.288 +     * <li> 4
  25.289 +     * <li> 5
  25.290 +     * </ul>
  25.291 +     * <p>
  25.292 +     * Note: If support for extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java
  25.293 +     * then the AWT event subsystem does not produce mouse events for the extended mouse
  25.294 +     * buttons. So it is not expected that this method returns anything except {@code NOBUTTON}, {@code BUTTON1},
  25.295 +     * {@code BUTTON2}, {@code BUTTON3}.
  25.296       *
  25.297 -     * @return one of the following constants:
  25.298 -     * <code>NOBUTTON</code>,
  25.299 -     * <code>BUTTON1</code>,
  25.300 -     * <code>BUTTON2</code> or
  25.301 -     * <code>BUTTON3</code>.
  25.302 +     * @return one of the values from 0 to {@link java.awt.MouseInfo#getNumberOfButtons() MouseInfo.getNumberOfButtons()}
  25.303 +     *         if support for the extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() enabled} by Java.
  25.304 +     *         That range includes {@code NOBUTTON}, {@code BUTTON1}, {@code BUTTON2}, {@code BUTTON3};
  25.305 +     *         <br>
  25.306 +     *         {@code NOBUTTON}, {@code BUTTON1}, {@code BUTTON2} or {@code BUTTON3}
  25.307 +     *         if support for the extended mouse buttons is {@link Toolkit#areExtraMouseButtonsEnabled() disabled} by Java
  25.308       * @since 1.4
  25.309 +     * @see Toolkit#areExtraMouseButtonsEnabled()
  25.310 +     * @see java.awt.MouseInfo#getNumberOfButtons()
  25.311 +     * @see #MouseEvent(Component, int, long, int, int, int, int, int, int, boolean, int)
  25.312 +     * @see InputEvent#getMaskForButton(int)
  25.313       */
  25.314      public int getButton() {
  25.315          return button;
  25.316 @@ -746,7 +924,7 @@
  25.317       * and will cause the returning an unspecified string.
  25.318       * Zero parameter means that no modifiers were passed and will
  25.319       * cause the returning an empty string.
  25.320 -     *
  25.321 +     * <p>
  25.322       * @param modifiers A modifier mask describing the modifier keys and
  25.323       *                  mouse buttons that were down during the event
  25.324       * @return string   string text description of the combination of modifier
  25.325 @@ -788,6 +966,24 @@
  25.326              buf.append(Toolkit.getProperty("AWT.button3", "Button3"));
  25.327              buf.append("+");
  25.328          }
  25.329 +
  25.330 +        int mask;
  25.331 +
  25.332 +        // TODO: add a toolkit field that holds a number of button on the mouse.
  25.333 +        // As the method getMouseModifiersText() is static and obtain
  25.334 +        // an integer as a parameter then we may not restrict this with the number
  25.335 +        // of buttons installed on the mouse.
  25.336 +        // It's a temporary solution. We need to somehow hold the number of buttons somewhere else.
  25.337 +        for (int i = 1; i <= cachedNumberOfButtons; i++){
  25.338 +            mask = InputEvent.getMaskForButton(i);
  25.339 +            if ((modifiers & mask) != 0 &&
  25.340 +                buf.indexOf(Toolkit.getProperty("AWT.button"+i, "Button"+i)) == -1) //1,2,3 buttons may already be there; so don't duplicate it.
  25.341 +            {
  25.342 +                buf.append(Toolkit.getProperty("AWT.button"+i, "Button"+i));
  25.343 +                buf.append("+");
  25.344 +            }
  25.345 +        }
  25.346 +
  25.347          if (buf.length() > 0) {
  25.348              buf.setLength(buf.length()-1); // remove trailing '+'
  25.349          }
  25.350 @@ -836,14 +1032,18 @@
  25.351          str.append(",(").append(x).append(",").append(y).append(")");
  25.352          str.append(",absolute(").append(xAbs).append(",").append(yAbs).append(")");
  25.353  
  25.354 -        str.append(",button=").append(getButton());
  25.355 +        if (id != MOUSE_DRAGGED && id != MOUSE_MOVED){
  25.356 +            str.append(",button=").append(getButton());
  25.357 +        }
  25.358  
  25.359          if (getModifiers() != 0) {
  25.360              str.append(",modifiers=").append(getMouseModifiersText(modifiers));
  25.361          }
  25.362  
  25.363          if (getModifiersEx() != 0) {
  25.364 -            str.append(",extModifiers=").append(getModifiersExText(modifiers));
  25.365 +            //Using plain "modifiers" here does show an excluded extended buttons in the string event representation.
  25.366 +            //getModifiersEx() solves the problem.
  25.367 +            str.append(",extModifiers=").append(getModifiersExText(getModifiersEx()));
  25.368          }
  25.369  
  25.370          str.append(",clickCount=").append(clickCount);
    26.1 --- a/src/share/classes/java/awt/peer/ButtonPeer.java	Tue Feb 17 09:06:16 2009 -0800
    26.2 +++ b/src/share/classes/java/awt/peer/ButtonPeer.java	Wed Feb 18 10:05:41 2009 -0800
    26.3 @@ -25,7 +25,11 @@
    26.4  
    26.5  package java.awt.peer;
    26.6  
    26.7 +import java.awt.Button;
    26.8 +
    26.9  /**
   26.10 + * The peer interface for {@link Button}.
   26.11 + *
   26.12   * The peer interfaces are intended only for use in porting
   26.13   * the AWT. They are not intended for use by application
   26.14   * developers, and developers should not implement peers
   26.15 @@ -33,5 +37,14 @@
   26.16   * instances.
   26.17   */
   26.18  public interface ButtonPeer extends ComponentPeer {
   26.19 +
   26.20 +    /**
   26.21 +     * Sets the label that is displayed on the button. Can be {@code null}
   26.22 +     * when the button should not display a label.
   26.23 +     *
   26.24 +     * @param label the label string to set
   26.25 +     *
   26.26 +     * @see Button#setLabel
   26.27 +     */
   26.28      void setLabel(String label);
   26.29  }
    27.1 --- a/src/share/classes/java/awt/peer/CanvasPeer.java	Tue Feb 17 09:06:16 2009 -0800
    27.2 +++ b/src/share/classes/java/awt/peer/CanvasPeer.java	Wed Feb 18 10:05:41 2009 -0800
    27.3 @@ -24,7 +24,11 @@
    27.4   */
    27.5  package java.awt.peer;
    27.6  
    27.7 +import java.awt.Canvas;
    27.8 +
    27.9  /**
   27.10 + * The peer interface for {@link Canvas}.
   27.11 + *
   27.12   * The peer interfaces are intended only for use in porting
   27.13   * the AWT. They are not intended for use by application
   27.14   * developers, and developers should not implement peers
    28.1 --- a/src/share/classes/java/awt/peer/CheckboxMenuItemPeer.java	Tue Feb 17 09:06:16 2009 -0800
    28.2 +++ b/src/share/classes/java/awt/peer/CheckboxMenuItemPeer.java	Wed Feb 18 10:05:41 2009 -0800
    28.3 @@ -24,7 +24,11 @@
    28.4   */
    28.5  package java.awt.peer;
    28.6  
    28.7 +import java.awt.CheckboxMenuItem;
    28.8 +
    28.9  /**
   28.10 + * The peer interface for {@link CheckboxMenuItem}.
   28.11 + *
   28.12   * The peer interfaces are intended only for use in porting
   28.13   * the AWT. They are not intended for use by application
   28.14   * developers, and developers should not implement peers
   28.15 @@ -32,5 +36,14 @@
   28.16   * instances.
   28.17   */
   28.18  public interface CheckboxMenuItemPeer extends MenuItemPeer {
   28.19 +
   28.20 +    /**
   28.21 +     * Sets the state of the checkbox to be checked ({@code true}) or
   28.22 +     * unchecked ({@code false}).
   28.23 +     *
   28.24 +     * @param t the state to set on the checkbox
   28.25 +     *
   28.26 +     * @see CheckboxMenuItemPeer#setState(boolean)
   28.27 +     */
   28.28      void setState(boolean t);
   28.29  }
    29.1 --- a/src/share/classes/java/awt/peer/CheckboxPeer.java	Tue Feb 17 09:06:16 2009 -0800
    29.2 +++ b/src/share/classes/java/awt/peer/CheckboxPeer.java	Wed Feb 18 10:05:41 2009 -0800
    29.3 @@ -27,6 +27,8 @@
    29.4  import java.awt.*;
    29.5  
    29.6  /**
    29.7 + * The peer interface for {@link Checkbox}.
    29.8 + *
    29.9   * The peer interfaces are intended only for use in porting
   29.10   * the AWT. They are not intended for use by application
   29.11   * developers, and developers should not implement peers
   29.12 @@ -34,7 +36,36 @@
   29.13   * instances.
   29.14   */
   29.15  public interface CheckboxPeer extends ComponentPeer {
   29.16 +
   29.17 +    /**
   29.18 +     * Sets the state of the checkbox to be checked ({@code true}) or
   29.19 +     * unchecked ({@code false}).
   29.20 +     *
   29.21 +     * @param t the state to set on the checkbox
   29.22 +     *
   29.23 +     * @see Checkbox#setState(boolean)
   29.24 +     */
   29.25      void setState(boolean state);
   29.26 +
   29.27 +    /**
   29.28 +     * Sets the checkbox group for this checkbox. Checkboxes in one checkbox
   29.29 +     * group can only be selected exclusively (like radio buttons). A value
   29.30 +     * of {@code null} removes this checkbox from any checkbox group.
   29.31 +     *
   29.32 +     * @param g the checkbox group to set, or {@code null} when this
   29.33 +     *          checkbox should not be placed in any group
   29.34 +     *
   29.35 +     * @see Checkbox#setCheckboxGroup(CheckboxGroup)
   29.36 +     */
   29.37      void setCheckboxGroup(CheckboxGroup g);
   29.38 +
   29.39 +    /**
   29.40 +     * Sets the label that should be displayed on the ckeckbox. A value of
   29.41 +     * {@code null} means that no label should be displayed.
   29.42 +     *
   29.43 +     * @param label the label to be displayed on the checkbox, or
   29.44 +     *              {@code null} when no label should be displayed.
   29.45 +     */
   29.46      void setLabel(String label);
   29.47 +
   29.48  }
    30.1 --- a/src/share/classes/java/awt/peer/ChoicePeer.java	Tue Feb 17 09:06:16 2009 -0800
    30.2 +++ b/src/share/classes/java/awt/peer/ChoicePeer.java	Wed Feb 18 10:05:41 2009 -0800
    30.3 @@ -24,7 +24,11 @@
    30.4   */
    30.5  package java.awt.peer;
    30.6  
    30.7 +import java.awt.Choice;
    30.8 +
    30.9  /**
   30.10 + * The peer interface for {@link Choice}.
   30.11 + *
   30.12   * The peer interfaces are intended only for use in porting
   30.13   * the AWT. They are not intended for use by application
   30.14   * developers, and developers should not implement peers
   30.15 @@ -32,13 +36,41 @@
   30.16   * instances.
   30.17   */
   30.18  public interface ChoicePeer extends ComponentPeer {
   30.19 +
   30.20 +    /**
   30.21 +     * Adds an item with the string {@code item} to the combo box list
   30.22 +     * at index {@code index}.
   30.23 +     *
   30.24 +     * @param item the label to be added to the list
   30.25 +     * @param index the index where to add the item
   30.26 +     *
   30.27 +     * @see Choice#add(String)
   30.28 +     */
   30.29      void add(String item, int index);
   30.30 +
   30.31 +    /**
   30.32 +     * Removes the item at index {@code index} from the combo box list.
   30.33 +     *
   30.34 +     * @param index the index where to remove the item
   30.35 +     *
   30.36 +     * @see Choice#remove(int)
   30.37 +     */
   30.38      void remove(int index);
   30.39 +
   30.40 +    /**
   30.41 +     * Removes all items from the combo box list.
   30.42 +     *
   30.43 +     * @see Choice#removeAll()
   30.44 +     */
   30.45      void removeAll();
   30.46 +
   30.47 +    /**
   30.48 +     * Selects the item at index {@code index}.
   30.49 +     *
   30.50 +     * @param index the index which should be selected
   30.51 +     *
   30.52 +     * @see Choice#select(int)
   30.53 +     */
   30.54      void select(int index);
   30.55  
   30.56 -    /*
   30.57 -     * DEPRECATED:  Replaced by add(String, int).
   30.58 -     */
   30.59 -    void addItem(String item, int index);
   30.60  }
    31.1 --- a/src/share/classes/java/awt/peer/ComponentPeer.java	Tue Feb 17 09:06:16 2009 -0800
    31.2 +++ b/src/share/classes/java/awt/peer/ComponentPeer.java	Wed Feb 18 10:05:41 2009 -0800
    31.3 @@ -37,6 +37,12 @@
    31.4  
    31.5  
    31.6  /**
    31.7 + * The peer interface for {@link Component}. This is the top level peer
    31.8 + * interface for widgets and defines the bulk of methods for AWT component
    31.9 + * peers. Most component peers have to implement this interface (via one
   31.10 + * of the subinterfaces), except menu components, which implement
   31.11 + * {@link MenuComponentPeer}.
   31.12 + *
   31.13   * The peer interfaces are intended only for use in porting
   31.14   * the AWT. They are not intended for use by application
   31.15   * developers, and developers should not implement peers
   31.16 @@ -44,63 +50,474 @@
   31.17   * instances.
   31.18   */
   31.19  public interface ComponentPeer {
   31.20 -    public static final int SET_LOCATION = 1,
   31.21 -        SET_SIZE = 2,
   31.22 -        SET_BOUNDS = 3,
   31.23 -        SET_CLIENT_SIZE = 4,
   31.24 -        RESET_OPERATION = 5,
   31.25 -        NO_EMBEDDED_CHECK = (1 << 14),
   31.26 -        DEFAULT_OPERATION = SET_BOUNDS;
   31.27 +
   31.28 +    /**
   31.29 +     * Operation for {@link #setBounds(int, int, int, int, int)}, indicating
   31.30 +     * a change in the component location only.
   31.31 +     *
   31.32 +     * @see #setBounds(int, int, int, int, int)
   31.33 +     */
   31.34 +    public static final int SET_LOCATION = 1;
   31.35 +
   31.36 +    /**
   31.37 +     * Operation for {@link #setBounds(int, int, int, int, int)}, indicating
   31.38 +     * a change in the component size only.
   31.39 +     *
   31.40 +     * @see #setBounds(int, int, int, int, int)
   31.41 +     */
   31.42 +    public static final int SET_SIZE = 2;
   31.43 +
   31.44 +    /**
   31.45 +     * Operation for {@link #setBounds(int, int, int, int, int)}, indicating
   31.46 +     * a change in the component size and location.
   31.47 +     *
   31.48 +     * @see #setBounds(int, int, int, int, int)
   31.49 +     */
   31.50 +    public static final int SET_BOUNDS = 3;
   31.51 +
   31.52 +    /**
   31.53 +     * Operation for {@link #setBounds(int, int, int, int, int)}, indicating
   31.54 +     * a change in the component client size. This is used for setting
   31.55 +     * the 'inside' size of windows, without the border insets.
   31.56 +     *
   31.57 +     * @see #setBounds(int, int, int, int, int)
   31.58 +     */
   31.59 +    public static final int SET_CLIENT_SIZE = 4;
   31.60 +
   31.61 +    /**
   31.62 +     * Resets the setBounds() operation to DEFAULT_OPERATION. This is not
   31.63 +     * passed into {@link #setBounds(int, int, int, int, int)}.
   31.64 +     *
   31.65 +     * TODO: This is only used internally and should probably be moved outside
   31.66 +     *       the peer interface.
   31.67 +     *
   31.68 +     * @see Component#setBoundsOp
   31.69 +     */
   31.70 +    public static final int RESET_OPERATION = 5;
   31.71 +
   31.72 +    /**
   31.73 +     * A flag that is used to suppress checks for embedded frames.
   31.74 +     *
   31.75 +     * TODO: This is only used internally and should probably be moved outside
   31.76 +     *       the peer interface.
   31.77 +     */
   31.78 +    public static final int NO_EMBEDDED_CHECK = (1 << 14);
   31.79 +
   31.80 +    /**
   31.81 +     * The default operation, which is to set size and location.
   31.82 +     *
   31.83 +     * TODO: This is only used internally and should probably be moved outside
   31.84 +     *       the peer interface.
   31.85 +     *
   31.86 +     * @see Component#setBoundsOp
   31.87 +     */
   31.88 +    public static final int DEFAULT_OPERATION = SET_BOUNDS;
   31.89 +
   31.90 +    /**
   31.91 +     * Determines if a component has been obscured, i.e. by an overlapping
   31.92 +     * window or similar. This is used by JViewport for optimizing performance.
   31.93 +     * This doesn't have to be implemented, when
   31.94 +     * {@link #canDetermineObscurity()} returns {@code false}.
   31.95 +     *
   31.96 +     * @return {@code true} when the component has been obscured,
   31.97 +     *         {@code false} otherwise
   31.98 +     *
   31.99 +     * @see #canDetermineObscurity()
  31.100 +     * @see javax.swing.JViewport#needsRepaintAfterBlit
  31.101 +     */
  31.102      boolean isObscured();
  31.103 +
  31.104 +    /**
  31.105 +     * Returns {@code true} when the peer can determine if a component
  31.106 +     * has been obscured, {@code false} false otherwise.
  31.107 +     *
  31.108 +     * @return {@code true} when the peer can determine if a component
  31.109 +     *         has been obscured, {@code false} false otherwise
  31.110 +     *
  31.111 +     * @see #isObscured()
  31.112 +     * @see javax.swing.JViewport#needsRepaintAfterBlit
  31.113 +     */
  31.114      boolean canDetermineObscurity();
  31.115 -    void                setVisible(boolean b);
  31.116 -    void                setEnabled(boolean b);
  31.117 -    void                paint(Graphics g);
  31.118 -    void                repaint(long tm, int x, int y, int width, int height);
  31.119 -    void                print(Graphics g);
  31.120 -    void                setBounds(int x, int y, int width, int height, int op);
  31.121 -    void                handleEvent(AWTEvent e);
  31.122 -    void                coalescePaintEvent(PaintEvent e);
  31.123 -    Point               getLocationOnScreen();
  31.124 -    Dimension           getPreferredSize();
  31.125 -    Dimension           getMinimumSize();
  31.126 -    ColorModel          getColorModel();
  31.127 -    Toolkit             getToolkit();
  31.128 -    Graphics            getGraphics();
  31.129 -    FontMetrics         getFontMetrics(Font font);
  31.130 -    void                dispose();
  31.131 -    void                setForeground(Color c);
  31.132 -    void                setBackground(Color c);
  31.133 -    void                setFont(Font f);
  31.134 -    void                updateCursorImmediately();
  31.135 -    boolean             requestFocus(Component lightweightChild,
  31.136 -                                     boolean temporary,
  31.137 -                                     boolean focusedWindowChangeAllowed,
  31.138 -                                     long time, CausedFocusEvent.Cause cause);
  31.139 -    boolean             isFocusable();
  31.140  
  31.141 -    Image               createImage(ImageProducer producer);
  31.142 -    Image               createImage(int width, int height);
  31.143 -    VolatileImage       createVolatileImage(int width, int height);
  31.144 -    boolean             prepareImage(Image img, int w, int h, ImageObserver o);
  31.145 -    int                 checkImage(Image img, int w, int h, ImageObserver o);
  31.146 +    /**
  31.147 +     * Makes a component visible or invisible.
  31.148 +     *
  31.149 +     * @param v {@code true} to make a component visible,
  31.150 +     *          {@code false} to make it invisible
  31.151 +     *
  31.152 +     * @see Component#setVisible(boolean)
  31.153 +     */
  31.154 +    void setVisible(boolean v);
  31.155 +
  31.156 +    /**
  31.157 +     * Enables or disables a component. Disabled components are usually grayed
  31.158 +     * out and cannot be activated.
  31.159 +     *
  31.160 +     * @param e {@code true} to enable the component, {@code false}
  31.161 +     *          to disable it
  31.162 +     *
  31.163 +     * @see Component#setEnabled(boolean)
  31.164 +     */
  31.165 +    void setEnabled(boolean e);
  31.166 +
  31.167 +    /**
  31.168 +     * Paints the component to the specified graphics context. This is called
  31.169 +     * by {@link Component#paintAll(Graphics)} to paint the component.
  31.170 +     *
  31.171 +     * @param g the graphics context to paint to
  31.172 +     *
  31.173 +     * @see Component#paintAll(Graphics)
  31.174 +     */
  31.175 +    void paint(Graphics g);
  31.176 +
  31.177 +    /**
  31.178 +     * Prints the component to the specified graphics context. This is called
  31.179 +     * by {@link Component#printAll(Graphics)} to print the component.
  31.180 +     *
  31.181 +     * @param g the graphics context to print to
  31.182 +     *
  31.183 +     * @see Component#printAll(Graphics)
  31.184 +     */
  31.185 +    void print(Graphics g);
  31.186 +
  31.187 +    /**
  31.188 +     * Sets the location or size or both of the component. The location is
  31.189 +     * specified relative to the component's parent. The {@code op}
  31.190 +     * parameter specifies which properties change. If it is
  31.191 +     * {@link #SET_LOCATION}, then only the location changes (and the size
  31.192 +     * parameters can be ignored). If {@code op} is {@link #SET_SIZE},
  31.193 +     * then only the size changes (and the location can be ignored). If
  31.194 +     * {@code op} is {@link #SET_BOUNDS}, then both change. There is a
  31.195 +     * special value {@link #SET_CLIENT_SIZE}, which is used only for
  31.196 +     * window-like components to set the size of the client (i.e. the 'inner'
  31.197 +     * size, without the insets of the window borders).
  31.198 +     *
  31.199 +     * @param x the X location of the component
  31.200 +     * @param y the Y location of the component
  31.201 +     * @param width the width of the component
  31.202 +     * @param height the height of the component
  31.203 +     * @param op the operation flag
  31.204 +     *
  31.205 +     * @see #SET_BOUNDS
  31.206 +     * @see #SET_LOCATION
  31.207 +     * @see #SET_SIZE
  31.208 +     * @see #SET_CLIENT_SIZE
  31.209 +     */
  31.210 +    void setBounds(int x, int y, int width, int height, int op);
  31.211 +
  31.212 +    /**
  31.213 +     * Called to let the component peer handle events.
  31.214 +     *
  31.215 +     * @param e the AWT event to handle
  31.216 +     *
  31.217 +     * @see Component#dispatchEvent(AWTEvent)
  31.218 +     */
  31.219 +    void handleEvent(AWTEvent e);
  31.220 +
  31.221 +    /**
  31.222 +     * Called to coalesce paint events.
  31.223 +     *
  31.224 +     * @param e the paint event to consider to coalesce
  31.225 +     *
  31.226 +     * @see EventQueue#coalescePaintEvent
  31.227 +     */
  31.228 +    void coalescePaintEvent(PaintEvent e);
  31.229 +
  31.230 +    /**
  31.231 +     * Determines the location of the component on the screen.
  31.232 +     *
  31.233 +     * @return the location of the component on the screen
  31.234 +     *
  31.235 +     * @see Component#getLocationOnScreen()
  31.236 +     */
  31.237 +    Point getLocationOnScreen();
  31.238 +
  31.239 +    /**
  31.240 +     * Determines the preferred size of the component.
  31.241 +     *
  31.242 +     * @return the preferred size of the component
  31.243 +     *
  31.244 +     * @see Component#getPreferredSize()
  31.245 +     */
  31.246 +    Dimension getPreferredSize();
  31.247 +
  31.248 +    /**
  31.249 +     * Determines the minimum size of the component.
  31.250 +     *
  31.251 +     * @return the minimum size of the component
  31.252 +     *
  31.253 +     * @see Component#getMinimumSize()
  31.254 +     */
  31.255 +    Dimension getMinimumSize();
  31.256 +
  31.257 +    /**
  31.258 +     * Returns the color model used by the component.
  31.259 +     *
  31.260 +     * @return the color model used by the component
  31.261 +     *
  31.262 +     * @see Component#getColorModel()
  31.263 +     */
  31.264 +    ColorModel getColorModel();
  31.265 +
  31.266 +    /**
  31.267 +     * Returns the toolkit that is responsible for the component.
  31.268 +     *
  31.269 +     * @return the toolkit that is responsible for the component
  31.270 +     *
  31.271 +     * @see Component#getToolkit()
  31.272 +     */
  31.273 +    Toolkit getToolkit();
  31.274 +
  31.275 +    /**
  31.276 +     * Returns a graphics object to paint on the component.
  31.277 +     *
  31.278 +     * @return a graphics object to paint on the component
  31.279 +     *
  31.280 +     * @see Component#getGraphics()
  31.281 +     */
  31.282 +    // TODO: Maybe change this to force Graphics2D, since many things will
  31.283 +    // break with plain Graphics nowadays.
  31.284 +    Graphics getGraphics();
  31.285 +
  31.286 +    /**
  31.287 +     * Returns a font metrics object to determine the metrics properties of
  31.288 +     * the specified font.
  31.289 +     *
  31.290 +     * @param font the font to determine the metrics for
  31.291 +     *
  31.292 +     * @return a font metrics object to determine the metrics properties of
  31.293 +     *         the specified font
  31.294 +     *
  31.295 +     * @see Component#getFontMetrics(Font)
  31.296 +     */
  31.297 +    FontMetrics getFontMetrics(Font font);
  31.298 +
  31.299 +    /**
  31.300 +     * Disposes all resources held by the component peer. This is called
  31.301 +     * when the component has been disconnected from the component hierarchy
  31.302 +     * and is about to be garbage collected.
  31.303 +     *
  31.304 +     * @see Component#removeNotify()
  31.305 +     */
  31.306 +    void dispose();
  31.307 +
  31.308 +    /**
  31.309 +     * Sets the foreground color of this component.
  31.310 +     *
  31.311 +     * @param c the foreground color to set
  31.312 +     *
  31.313 +     * @see Component#setForeground(Color)
  31.314 +     */
  31.315 +    void setForeground(Color c);
  31.316 +
  31.317 +    /**
  31.318 +     * Sets the background color of this component.
  31.319 +     *
  31.320 +     * @param c the background color to set
  31.321 +     *
  31.322 +     * @see Component#setBackground(Color)
  31.323 +     */
  31.324 +    void setBackground(Color c);
  31.325 +
  31.326 +    /**
  31.327 +     * Sets the font of this component.
  31.328 +     *
  31.329 +     * @param f the font of this component
  31.330 +     *
  31.331 +     * @see Component#setFont(Font)
  31.332 +     */
  31.333 +    void setFont(Font f);
  31.334 +
  31.335 +    /**
  31.336 +     * Updates the cursor of the component.
  31.337 +     *
  31.338 +     * @see Component#updateCursorImmediately
  31.339 +     */
  31.340 +    void updateCursorImmediately();
  31.341 +
  31.342 +    /**
  31.343 +     * Requests focus on this component.
  31.344 +     *
  31.345 +     * @param lightweightChild the actual lightweight child that requests the
  31.346 +     *        focus
  31.347 +     * @param temporary {@code true} if the focus change is temporary,
  31.348 +     *        {@code false} otherwise
  31.349 +     * @param focusedWindowChangeAllowed {@code true} if changing the
  31.350 +     *        focus of the containing window is allowed or not
  31.351 +     * @param time the time of the focus change request
  31.352 +     * @param cause the cause of the focus change request
  31.353 +     *
  31.354 +     * @return {@code true} if the focus change is guaranteed to be
  31.355 +     *         granted, {@code false} otherwise
  31.356 +     */
  31.357 +    boolean requestFocus(Component lightweightChild, boolean temporary,
  31.358 +                         boolean focusedWindowChangeAllowed, long time,
  31.359 +                         CausedFocusEvent.Cause cause);
  31.360 +
  31.361 +    /**
  31.362 +     * Returns {@code true} when the component takes part in the focus
  31.363 +     * traversal, {@code false} otherwise.
  31.364 +     *
  31.365 +     * @return {@code true} when the component takes part in the focus
  31.366 +     *         traversal, {@code false} otherwise
  31.367 +     */
  31.368 +    boolean isFocusable();
  31.369 +
  31.370 +    /**
  31.371 +     * Creates an image using the specified image producer.
  31.372 +     *
  31.373 +     * @param producer the image producer from which the image pixels will be
  31.374 +     *        produced
  31.375 +     *
  31.376 +     * @return the created image
  31.377 +     *
  31.378 +     * @see Component#createImage(ImageProducer)
  31.379 +     */
  31.380 +    Image createImage(ImageProducer producer);
  31.381 +
  31.382 +    /**
  31.383 +     * Creates an empty image with the specified width and height. This is
  31.384 +     * generally used as a non-accelerated backbuffer for drawing onto the
  31.385 +     * component (e.g. by Swing).
  31.386 +     *
  31.387 +     * @param width the width of the image
  31.388 +     * @param height the height of the image
  31.389 +     *
  31.390 +     * @return the created image
  31.391 +     *
  31.392 +     * @see Component#createImage(int, int)
  31.393 +     */
  31.394 +    // TODO: Maybe make that return a BufferedImage, because some stuff will
  31.395 +    // break if a different kind of image is returned.
  31.396 +    Image createImage(int width, int height);
  31.397 +
  31.398 +    /**
  31.399 +     * Creates an empty volatile image with the specified width and height.
  31.400 +     * This is generally used as an accelerated backbuffer for drawing onto
  31.401 +     * the component (e.g. by Swing).
  31.402 +     *
  31.403 +     * @param width the width of the image
  31.404 +     * @param height the height of the image
  31.405 +     *
  31.406 +     * @return the created volatile image
  31.407 +     *
  31.408 +     * @see Component#createVolatileImage(int, int)
  31.409 +     */
  31.410 +    // TODO: Include capabilities here and fix Component#createVolatileImage
  31.411 +    VolatileImage createVolatileImage(int width, int height);
  31.412 +
  31.413 +    /**
  31.414 +     * Prepare the specified image for rendering on this component. This should
  31.415 +     * start loading the image (if not already loaded) and create an
  31.416 +     * appropriate screen representation.
  31.417 +     *
  31.418 +     * @param img the image to prepare
  31.419 +     * @param w the width of the screen representation
  31.420 +     * @param h the height of the screen representation
  31.421 +     * @param o an image observer to observe the progress
  31.422 +     *
  31.423 +     * @return {@code true} if the image is already fully prepared,
  31.424 +     *         {@code false} otherwise
  31.425 +     *
  31.426 +     * @see Component#prepareImage(Image, int, int, ImageObserver)
  31.427 +     */
  31.428 +    boolean prepareImage(Image img, int w, int h, ImageObserver o);
  31.429 +
  31.430 +    /**
  31.431 +     * Determines the status of the construction of the screen representaion
  31.432 +     * of the specified image.
  31.433 +     *
  31.434 +     * @param img the image to check
  31.435 +     * @param w the target width
  31.436 +     * @param h the target height
  31.437 +     * @param o the image observer to notify
  31.438 +     *
  31.439 +     * @return the status as bitwise ORed ImageObserver flags
  31.440 +     *
  31.441 +     * @see Component#checkImage(Image, int, int, ImageObserver)
  31.442 +     */
  31.443 +    int checkImage(Image img, int w, int h, ImageObserver o);
  31.444 +
  31.445 +    /**
  31.446 +     * Returns the graphics configuration that corresponds to this component.
  31.447 +     *
  31.448 +     * @return the graphics configuration that corresponds to this component
  31.449 +     *
  31.450 +     * @see Component#getGraphicsConfiguration()
  31.451 +     */
  31.452      GraphicsConfiguration getGraphicsConfiguration();
  31.453 -    boolean     handlesWheelScrolling();
  31.454 -    void createBuffers(int numBuffers, BufferCapabilities caps) throws AWTException;
  31.455 +
  31.456 +    /**
  31.457 +     * Determines if the component handles wheel scrolling itself. Otherwise
  31.458 +     * it is delegated to the component's parent.
  31.459 +     *
  31.460 +     * @return {@code true} if the component handles wheel scrolling,
  31.461 +     *         {@code false} otherwise
  31.462 +     *
  31.463 +     * @see Component#dispatchEventImpl(AWTEvent)
  31.464 +     */
  31.465 +    boolean handlesWheelScrolling();
  31.466 +
  31.467 +    /**
  31.468 +     * Create {@code numBuffers} flipping buffers with the specified
  31.469 +     * buffer capabilities.
  31.470 +     *
  31.471 +     * @param numBuffers the number of buffers to create
  31.472 +     * @param caps the buffer capabilities
  31.473 +     *
  31.474 +     * @throws AWTException if flip buffering is not supported
  31.475 +     *
  31.476 +     * @see Component.FlipBufferStrategy#createBuffers
  31.477 +     */
  31.478 +    void createBuffers(int numBuffers, BufferCapabilities caps)
  31.479 +         throws AWTException;
  31.480 +
  31.481 +    /**
  31.482 +     * Returns the back buffer as image.
  31.483 +     *
  31.484 +     * @return the back buffer as image
  31.485 +     *
  31.486 +     * @see Component.FlipBufferStrategy#getBackBuffer
  31.487 +     */
  31.488      Image getBackBuffer();
  31.489 +
  31.490 +    /**
  31.491 +     * Move the back buffer to the front buffer.
  31.492 +     *
  31.493 +     * @param x1 the area to be flipped, upper left X coordinate
  31.494 +     * @param y1 the area to be flipped, upper left Y coordinate
  31.495 +     * @param x2 the area to be flipped, lower right X coordinate
  31.496 +     * @param y2 the area to be flipped, lower right Y coordinate
  31.497 +     * @param flipAction the flip action to perform
  31.498 +     *
  31.499 +     * @see Component.FlipBufferStrategy#flip
  31.500 +     */
  31.501      void flip(int x1, int y1, int x2, int y2, BufferCapabilities.FlipContents flipAction);
  31.502 +
  31.503 +    /**
  31.504 +     * Destroys all created buffers.
  31.505 +     *
  31.506 +     * @see Component.FlipBufferStrategy#destroyBuffers
  31.507 +     */
  31.508      void destroyBuffers();
  31.509  
  31.510      /**
  31.511 -     * Reparents this peer to the new parent referenced by <code>newContainer</code> peer
  31.512 -     * Implementation depends on toolkit and container.
  31.513 +     * Reparents this peer to the new parent referenced by
  31.514 +     * {@code newContainer} peer. Implementation depends on toolkit and
  31.515 +     * container.
  31.516 +     *
  31.517       * @param newContainer peer of the new parent container
  31.518 +     *
  31.519       * @since 1.5
  31.520       */
  31.521      void reparent(ContainerPeer newContainer);
  31.522 +
  31.523      /**
  31.524 -     * Returns whether this peer supports reparenting to another parent withour destroying the peer
  31.525 +     * Returns whether this peer supports reparenting to another parent without
  31.526 +     * destroying the peer.
  31.527 +     *
  31.528       * @return true if appropriate reparent is supported, false otherwise
  31.529 +     *
  31.530       * @since 1.5
  31.531       */
  31.532      boolean isReparentSupported();
  31.533 @@ -109,50 +526,17 @@
  31.534       * Used by lightweight implementations to tell a ComponentPeer to layout
  31.535       * its sub-elements.  For instance, a lightweight Checkbox needs to layout
  31.536       * the box, as well as the text label.
  31.537 +     *
  31.538 +     * @see Component#validate()
  31.539       */
  31.540 -    void        layout();
  31.541 -
  31.542 -
  31.543 -        Rectangle getBounds();
  31.544 +    void layout();
  31.545  
  31.546      /**
  31.547       * Applies the shape to the native component window.
  31.548       * @since 1.7
  31.549 +     *
  31.550 +     * @see Component#applyCompoundShape
  31.551       */
  31.552      void applyShape(Region shape);
  31.553  
  31.554 -    /**
  31.555 -     * DEPRECATED:  Replaced by getPreferredSize().
  31.556 -     */
  31.557 -    Dimension           preferredSize();
  31.558 -
  31.559 -    /**
  31.560 -     * DEPRECATED:  Replaced by getMinimumSize().
  31.561 -     */
  31.562 -    Dimension           minimumSize();
  31.563 -
  31.564 -    /**
  31.565 -     * DEPRECATED:  Replaced by setVisible(boolean).
  31.566 -     */
  31.567 -    void                show();
  31.568 -
  31.569 -    /**
  31.570 -     * DEPRECATED:  Replaced by setVisible(boolean).
  31.571 -     */
  31.572 -    void                hide();
  31.573 -
  31.574 -    /**
  31.575 -     * DEPRECATED:  Replaced by setEnabled(boolean).
  31.576 -     */
  31.577 -    void                enable();
  31.578 -
  31.579 -    /**
  31.580 -     * DEPRECATED:  Replaced by setEnabled(boolean).
  31.581 -     */
  31.582 -    void                disable();
  31.583 -
  31.584 -    /**
  31.585 -     * DEPRECATED:  Replaced by setBounds(int, int, int, int).
  31.586 -     */
  31.587 -    void                reshape(int x, int y, int width, int height);
  31.588  }
    32.1 --- a/src/share/classes/java/awt/peer/ContainerPeer.java	Tue Feb 17 09:06:16 2009 -0800
    32.2 +++ b/src/share/classes/java/awt/peer/ContainerPeer.java	Wed Feb 18 10:05:41 2009 -0800
    32.3 @@ -27,6 +27,9 @@
    32.4  import java.awt.*;
    32.5  
    32.6  /**
    32.7 + * The peer interface for {@link Container}. This is the parent interface
    32.8 + * for all container like widgets.
    32.9 + *
   32.10   * The peer interfaces are intended only for use in porting
   32.11   * the AWT. They are not intended for use by application
   32.12   * developers, and developers should not implement peers
   32.13 @@ -34,30 +37,60 @@
   32.14   * instances.
   32.15   */
   32.16  public interface ContainerPeer extends ComponentPeer {
   32.17 -    Insets getInsets();
   32.18 -    void beginValidate();
   32.19 -    void endValidate();
   32.20 -    void beginLayout();
   32.21 -    void endLayout();
   32.22 -    boolean isPaintPending();
   32.23  
   32.24      /**
   32.25 -     * Restacks native windows - children of this native window - according to Java container order
   32.26 +     * Returns the insets of this container. Insets usually is the space that
   32.27 +     * is occupied by things like borders.
   32.28 +     *
   32.29 +     * @return the insets of this container
   32.30 +     */
   32.31 +    Insets getInsets();
   32.32 +
   32.33 +    /**
   32.34 +     * Notifies the peer that validation of the component tree is about to
   32.35 +     * begin.
   32.36 +     *
   32.37 +     * @see Container#validate()
   32.38 +     */
   32.39 +    void beginValidate();
   32.40 +
   32.41 +    /**
   32.42 +     * Notifies the peer that validation of the component tree is finished.
   32.43 +     *
   32.44 +     * @see Container#validate()
   32.45 +     */
   32.46 +    void endValidate();
   32.47 +
   32.48 +    /**
   32.49 +     * Notifies the peer that layout is about to begin. This is called
   32.50 +     * before the container itself and its children are laid out.
   32.51 +     *
   32.52 +     * @see Container#validateTree()
   32.53 +     */
   32.54 +    void beginLayout();
   32.55 +
   32.56 +    /**
   32.57 +     * Notifies the peer that layout is finished. This is called after the
   32.58 +     * container and its children have been laid out.
   32.59 +     *
   32.60 +     * @see Container#validateTree()
   32.61 +     */
   32.62 +    void endLayout();
   32.63 +
   32.64 +    /**
   32.65 +     * Restacks native windows - children of this native window - according to
   32.66 +     * Java container order.
   32.67 +     *
   32.68       * @since 1.5
   32.69       */
   32.70      void restack();
   32.71  
   32.72      /**
   32.73 -     * Indicates availabiltity of restacking operation in this container.
   32.74 +     * Indicates availability of restacking operation in this container.
   32.75 +     *
   32.76       * @return Returns true if restack is supported, false otherwise
   32.77 +     *
   32.78       * @since 1.5
   32.79       */
   32.80      boolean isRestackSupported();
   32.81 -    /**
   32.82 -
   32.83 -
   32.84 -
   32.85 -     * DEPRECATED:  Replaced by getInsets().
   32.86 -     */
   32.87 -    Insets insets();
   32.88  }
    33.1 --- a/src/share/classes/java/awt/peer/DesktopPeer.java	Tue Feb 17 09:06:16 2009 -0800
    33.2 +++ b/src/share/classes/java/awt/peer/DesktopPeer.java	Wed Feb 18 10:05:41 2009 -0800
    33.3 @@ -32,7 +32,7 @@
    33.4  import java.awt.Desktop.Action;
    33.5  
    33.6  /**
    33.7 - * The <code>DesktopPeer</code> interface provides methods for the operation
    33.8 + * The {@code DesktopPeer} interface provides methods for the operation
    33.9   * of open, edit, print, browse and mail with the given URL or file, by
   33.10   * launching the associated application.
   33.11   * <p>
   33.12 @@ -40,14 +40,15 @@
   33.13   *
   33.14   */
   33.15  public interface DesktopPeer {
   33.16 +
   33.17      /**
   33.18       * Returns whether the given action is supported on the current platform.
   33.19       * @param action the action type to be tested if it's supported on the
   33.20       *        current platform.
   33.21 -     * @return <code>true</code> if the given action is supported on
   33.22 -     *         the current platform; <code>false</code> otherwise.
   33.23 +     * @return {@code true} if the given action is supported on
   33.24 +     *         the current platform; {@code false} otherwise.
   33.25       */
   33.26 -    public boolean isSupported(Action action);
   33.27 +    boolean isSupported(Action action);
   33.28  
   33.29      /**
   33.30       * Launches the associated application to open the given file. The
   33.31 @@ -58,7 +59,7 @@
   33.32       * @throws IOException If the given file has no associated application,
   33.33       *         or the associated application fails to be launched.
   33.34       */
   33.35 -    public void open(File file) throws IOException;
   33.36 +    void open(File file) throws IOException;
   33.37  
   33.38      /**
   33.39       * Launches the associated editor and opens the given file for editing. The
   33.40 @@ -69,7 +70,7 @@
   33.41       * @throws IOException If the given file has no associated editor, or
   33.42       *         the associated application fails to be launched.
   33.43       */
   33.44 -    public void edit(File file) throws IOException;
   33.45 +    void edit(File file) throws IOException;
   33.46  
   33.47      /**
   33.48       * Prints the given file with the native desktop printing facility, using
   33.49 @@ -79,7 +80,7 @@
   33.50       * @throws IOException If the given file has no associated application
   33.51       *         that can be used to print it.
   33.52       */
   33.53 -    public void print(File file) throws IOException;
   33.54 +    void print(File file) throws IOException;
   33.55  
   33.56      /**
   33.57       * Launches the mail composing window of the user default mail client,
   33.58 @@ -93,7 +94,7 @@
   33.59       * @throws IOException If the user default mail client is not found,
   33.60       *         or it fails to be launched.
   33.61       */
   33.62 -    public void mail(URI mailtoURL) throws IOException;
   33.63 +    void mail(URI mailtoURL) throws IOException;
   33.64  
   33.65      /**
   33.66       * Launches the user default browser to display the given URI.
   33.67 @@ -102,5 +103,5 @@
   33.68       * @throws IOException If the user default browser is not found,
   33.69       *         or it fails to be launched.
   33.70       */
   33.71 -    public void browse(URI url) throws IOException;
   33.72 +    void browse(URI url) throws IOException;
   33.73  }
    34.1 --- a/src/share/classes/java/awt/peer/DialogPeer.java	Tue Feb 17 09:06:16 2009 -0800
    34.2 +++ b/src/share/classes/java/awt/peer/DialogPeer.java	Wed Feb 18 10:05:41 2009 -0800
    34.3 @@ -28,6 +28,9 @@
    34.4  import java.awt.*;
    34.5  
    34.6  /**
    34.7 + * The peer interface for {@link Dialog}. This adds a couple of dialog specific
    34.8 + * features to the {@link WindowPeer} interface.
    34.9 + *
   34.10   * The peer interfaces are intended only for use in porting
   34.11   * the AWT. They are not intended for use by application
   34.12   * developers, and developers should not implement peers
   34.13 @@ -35,7 +38,33 @@
   34.14   * instances.
   34.15   */
   34.16  public interface DialogPeer extends WindowPeer {
   34.17 +
   34.18 +    /**
   34.19 +     * Sets the title on the dialog window.
   34.20 +     *
   34.21 +     * @param title the title to set
   34.22 +     *
   34.23 +     * @see Dialog#setTitle(String)
   34.24 +     */
   34.25      void setTitle(String title);
   34.26 +
   34.27 +    /**
   34.28 +     * Sets if the dialog should be resizable or not.
   34.29 +     *
   34.30 +     * @param resizeable {@code true} when the dialog should be resizable,
   34.31 +     *        {@code false} if not
   34.32 +     *
   34.33 +     * @see Dialog#setResizable(boolean)
   34.34 +     */
   34.35      void setResizable(boolean resizeable);
   34.36 +
   34.37 +    /**
   34.38 +     * Block the specified windows. This is used for modal dialogs.
   34.39 +     *
   34.40 +     * @param windows the windows to block
   34.41 +     *
   34.42 +     * @see Dialog#modalShow()
   34.43 +     * @see Dialog#blockWindows()
   34.44 +     */
   34.45      void blockWindows(java.util.List<Window> windows);
   34.46  }
    35.1 --- a/src/share/classes/java/awt/peer/FileDialogPeer.java	Tue Feb 17 09:06:16 2009 -0800
    35.2 +++ b/src/share/classes/java/awt/peer/FileDialogPeer.java	Wed Feb 18 10:05:41 2009 -0800
    35.3 @@ -25,9 +25,12 @@
    35.4  
    35.5  package java.awt.peer;
    35.6  
    35.7 +import java.awt.FileDialog;
    35.8  import java.io.FilenameFilter;
    35.9  
   35.10  /**
   35.11 + * The peer interface for {@link FileDialog}.
   35.12 + *
   35.13   * The peer interfaces are intended only for use in porting
   35.14   * the AWT. They are not intended for use by application
   35.15   * developers, and developers should not implement peers
   35.16 @@ -35,7 +38,32 @@
   35.17   * instances.
   35.18   */
   35.19  public interface FileDialogPeer extends DialogPeer {
   35.20 +
   35.21 +    /**
   35.22 +     * Sets the selected file for this file dialog.
   35.23 +     *
   35.24 +     * @param file the file to set as selected file, or {@code null} for
   35.25 +     *        no selected file
   35.26 +     *
   35.27 +     * @see FileDialog#setFile(String)
   35.28 +     */
   35.29      void setFile(String file);
   35.30 +
   35.31 +    /**
   35.32 +     * Sets the current directory for this file dialog.
   35.33 +     *
   35.34 +     * @param dir the directory to set
   35.35 +     *
   35.36 +     * @see FileDialog#setDirectory(String)
   35.37 +     */
   35.38      void setDirectory(String dir);
   35.39 +
   35.40 +    /**
   35.41 +     * Sets the filename filter for filtering the displayed files.
   35.42 +     *
   35.43 +     * @param filter the filter to set
   35.44 +     *
   35.45 +     * @see FileDialog#setFilenameFilter(FilenameFilter)
   35.46 +     */
   35.47      void setFilenameFilter(FilenameFilter filter);
   35.48  }
    36.1 --- a/src/share/classes/java/awt/peer/FontPeer.java	Tue Feb 17 09:06:16 2009 -0800
    36.2 +++ b/src/share/classes/java/awt/peer/FontPeer.java	Wed Feb 18 10:05:41 2009 -0800
    36.3 @@ -26,6 +26,9 @@
    36.4  package java.awt.peer;
    36.5  
    36.6  /**
    36.7 + * The peer interface for fonts. This is only a marker interface and not
    36.8 + * used by AWT itself.
    36.9 + *
   36.10   * The peer interfaces are intended only for use in porting
   36.11   * the AWT. They are not intended for use by application
   36.12   * developers, and developers should not implement peers
    37.1 --- a/src/share/classes/java/awt/peer/FramePeer.java	Tue Feb 17 09:06:16 2009 -0800
    37.2 +++ b/src/share/classes/java/awt/peer/FramePeer.java	Wed Feb 18 10:05:41 2009 -0800
    37.3 @@ -27,7 +27,12 @@
    37.4  
    37.5  import java.awt.*;
    37.6  
    37.7 +import sun.awt.EmbeddedFrame;
    37.8 +
    37.9  /**
   37.10 + * The peer interface for {@link Frame}. This adds a couple of frame specific
   37.11 + * methods to the {@link WindowPeer} interface.
   37.12 + *
   37.13   * The peer interfaces are intended only for use in porting
   37.14   * the AWT. They are not intended for use by application
   37.15   * developers, and developers should not implement peers
   37.16 @@ -35,12 +40,89 @@
   37.17   * instances.
   37.18   */
   37.19  public interface FramePeer extends WindowPeer {
   37.20 +
   37.21 +    /**
   37.22 +     * Sets the title on the frame.
   37.23 +     *
   37.24 +     * @param title the title to set
   37.25 +     *
   37.26 +     * @see Frame#setTitle(String)
   37.27 +     */
   37.28      void setTitle(String title);
   37.29 +
   37.30 +    /**
   37.31 +     * Sets the menu bar for the frame.
   37.32 +     *
   37.33 +     * @param mb the menu bar to set
   37.34 +     *
   37.35 +     * @see Frame#setMenuBar(MenuBar)
   37.36 +     */
   37.37      void setMenuBar(MenuBar mb);
   37.38 +
   37.39 +    /**
   37.40 +     * Sets if the frame should be resizable or not.
   37.41 +     *
   37.42 +     * @param resizeable {@code true} when the frame should be resizable,
   37.43 +     *        {@code false} if not
   37.44 +     *
   37.45 +     * @see Frame#setResizable(boolean)
   37.46 +     */
   37.47      void setResizable(boolean resizeable);
   37.48 +
   37.49 +    /**
   37.50 +     * Changes the state of the frame.
   37.51 +     *
   37.52 +     * @param state the new state
   37.53 +     *
   37.54 +     * @see Frame#setExtendedState(int)
   37.55 +     */
   37.56      void setState(int state);
   37.57 -    int  getState();
   37.58 -    void setMaximizedBounds(Rectangle bounds); // XXX
   37.59 +
   37.60 +    /**
   37.61 +     * Returns the current state of the frame.
   37.62 +     *
   37.63 +     * @return the current state of the frame
   37.64 +     *
   37.65 +     * @see Frame#getExtendedState()
   37.66 +     */
   37.67 +    int getState();
   37.68 +
   37.69 +    /**
   37.70 +     * Sets the bounds of the frame when it becomes maximized.
   37.71 +     *
   37.72 +     * @param bounds the maximized bounds of the frame
   37.73 +     *
   37.74 +     * @see Frame#setMaximizedBounds(Rectangle)
   37.75 +     */
   37.76 +    void setMaximizedBounds(Rectangle bounds);
   37.77 +
   37.78 +    /**
   37.79 +     * Sets the size and location for embedded frames. (On embedded frames,
   37.80 +     * setLocation() and setBounds() always set the frame to (0,0) for
   37.81 +     * backwards compatibility.
   37.82 +     *
   37.83 +     * @param x the X location
   37.84 +     * @param y the Y location
   37.85 +     * @param width the width of the frame
   37.86 +     * @param height the height of the frame
   37.87 +     *
   37.88 +     * @see EmbeddedFrame#setBoundsPrivate(int, int, int, int)
   37.89 +     */
   37.90 +    // TODO: This is only used in EmbeddedFrame, and should probably be moved
   37.91 +    // into an EmbeddedFramePeer which would extend FramePeer
   37.92      void setBoundsPrivate(int x, int y, int width, int height);
   37.93 +
   37.94 +    /**
   37.95 +     * Returns the size and location for embedded frames. (On embedded frames,
   37.96 +     * setLocation() and setBounds() always set the frame to (0,0) for
   37.97 +     * backwards compatibility.
   37.98 +     *
   37.99 +     * @return the bounds of an embedded frame
  37.100 +     *
  37.101 +     * @see EmbeddedFrame#getBoundsPrivate()
  37.102 +     */
  37.103 +    // TODO: This is only used in EmbeddedFrame, and should probably be moved
  37.104 +    // into an EmbeddedFramePeer which would extend FramePeer
  37.105      Rectangle getBoundsPrivate();
  37.106 +
  37.107  }
    38.1 --- a/src/share/classes/java/awt/peer/KeyboardFocusManagerPeer.java	Tue Feb 17 09:06:16 2009 -0800
    38.2 +++ b/src/share/classes/java/awt/peer/KeyboardFocusManagerPeer.java	Wed Feb 18 10:05:41 2009 -0800
    38.3 @@ -28,11 +28,45 @@
    38.4  import java.awt.Component;
    38.5  import java.awt.Window;
    38.6  
    38.7 +/**
    38.8 + * The native peer interface for {@link KeyboardFocusManager}.
    38.9 + */
   38.10  public interface KeyboardFocusManagerPeer {
   38.11 +
   38.12 +    /**
   38.13 +     * Returns the currently focused window.
   38.14 +     *
   38.15 +     * @return the currently focused window
   38.16 +     *
   38.17 +     * @see KeyboardFocusManager#getNativeFocusedWindow()
   38.18 +     */
   38.19      Window getCurrentFocusedWindow();
   38.20  
   38.21 +    /**
   38.22 +     * Sets the component that should become the focus owner.
   38.23 +     *
   38.24 +     * @param comp the component to become the focus owner
   38.25 +     *
   38.26 +     * @see KeyboardFocusManager#setNativeFocusOwner(Component)
   38.27 +     */
   38.28      void setCurrentFocusOwner(Component comp);
   38.29 +
   38.30 +    /**
   38.31 +     * Returns the component that currently owns the input focus.
   38.32 +     *
   38.33 +     * @return the component that currently owns the input focus
   38.34 +     *
   38.35 +     * @see KeyboardFocusManager#getNativeFocusOwner()
   38.36 +     */
   38.37      Component getCurrentFocusOwner();
   38.38  
   38.39 +    /**
   38.40 +     * Clears the current global focus owner.
   38.41 +     *
   38.42 +     * @param activeWindow
   38.43 +     *
   38.44 +     * @see KeyboardFocusManager#clearGlobalFocusOwner()
   38.45 +     */
   38.46      void clearGlobalFocusOwner(Window activeWindow);
   38.47 +
   38.48  }
    39.1 --- a/src/share/classes/java/awt/peer/LabelPeer.java	Tue Feb 17 09:06:16 2009 -0800
    39.2 +++ b/src/share/classes/java/awt/peer/LabelPeer.java	Wed Feb 18 10:05:41 2009 -0800
    39.3 @@ -24,7 +24,11 @@
    39.4   */
    39.5  package java.awt.peer;
    39.6  
    39.7 +import java.awt.Label;
    39.8 +
    39.9  /**
   39.10 + * The peer interface for {@link Label}.
   39.11 + *
   39.12   * The peer interfaces are intended only for use in porting
   39.13   * the AWT. They are not intended for use by application
   39.14   * developers, and developers should not implement peers
   39.15 @@ -32,6 +36,25 @@
   39.16   * instances.
   39.17   */
   39.18  public interface LabelPeer extends ComponentPeer {
   39.19 +
   39.20 +    /**
   39.21 +     * Sets the text to be displayed on the label.
   39.22 +     *
   39.23 +     * @param label the text to be displayed on the label
   39.24 +     *
   39.25 +     * @see Label#setText
   39.26 +     */
   39.27      void setText(String label);
   39.28 +
   39.29 +    /**
   39.30 +     * Sets the alignment of the label text.
   39.31 +     *
   39.32 +     * @param alignment the alignment of the label text
   39.33 +     *
   39.34 +     * @see Label#setAlignment(int)
   39.35 +     * @see Label#CENTER
   39.36 +     * @see Label#RIGHT
   39.37 +     * @see Label#LEFT
   39.38 +     */
   39.39      void setAlignment(int alignment);
   39.40  }
    40.1 --- a/src/share/classes/java/awt/peer/ListPeer.java	Tue Feb 17 09:06:16 2009 -0800
    40.2 +++ b/src/share/classes/java/awt/peer/ListPeer.java	Wed Feb 18 10:05:41 2009 -0800
    40.3 @@ -25,8 +25,11 @@
    40.4  package java.awt.peer;
    40.5  
    40.6  import java.awt.Dimension;
    40.7 +import java.awt.List;
    40.8  
    40.9  /**
   40.10 + * The peer interface for {@link List}.
   40.11 + *
   40.12   * The peer interfaces are intended only for use in porting
   40.13   * the AWT. They are not intended for use by application
   40.14   * developers, and developers should not implement peers
   40.15 @@ -34,39 +37,102 @@
   40.16   * instances.
   40.17   */
   40.18  public interface ListPeer extends ComponentPeer {
   40.19 +
   40.20 +    /**
   40.21 +     * Returns the indices of the list items that are currently selected.
   40.22 +     * The returned array is not required to be a copy, the callers of this
   40.23 +     * method already make sure it is not modified.
   40.24 +     *
   40.25 +     * @return the indices of the list items that are currently selected
   40.26 +     *
   40.27 +     * @see List#getSelectedIndexes()
   40.28 +     */
   40.29      int[] getSelectedIndexes();
   40.30 +
   40.31 +    /**
   40.32 +     * Adds an item to the list at the specified index.
   40.33 +     *
   40.34 +     * @param item the item to add to the list
   40.35 +     * @param index the index where to add the item into the list
   40.36 +     *
   40.37 +     * @see List#add(String, int)
   40.38 +     */
   40.39      void add(String item, int index);
   40.40 +
   40.41 +    /**
   40.42 +     * Deletes items from the list. All items from start to end should are
   40.43 +     * deleted, including the item at the start and end indices.
   40.44 +     *
   40.45 +     * @param start the first item to be deleted
   40.46 +     * @param end the last item to be deleted
   40.47 +     */
   40.48      void delItems(int start, int end);
   40.49 +
   40.50 +    /**
   40.51 +     * Removes all items from the list.
   40.52 +     *
   40.53 +     * @see List#removeAll()
   40.54 +     */
   40.55      void removeAll();
   40.56 +
   40.57 +    /**
   40.58 +     * Selects the item at the specified {@code index}.
   40.59 +     *
   40.60 +     * @param index the index of the item to select
   40.61 +     *
   40.62 +     * @see List#select(int)
   40.63 +     */
   40.64      void select(int index);
   40.65 +
   40.66 +    /**
   40.67 +     * De-selects the item at the specified {@code index}.
   40.68 +     *
   40.69 +     * @param index the index of the item to de-select
   40.70 +     *
   40.71 +     * @see List#deselect(int)
   40.72 +     */
   40.73      void deselect(int index);
   40.74 +
   40.75 +    /**
   40.76 +     * Makes sure that the item at the specified {@code index} is visible,
   40.77 +     * by scrolling the list or similar.
   40.78 +     *
   40.79 +     * @param index the index of the item to make visible
   40.80 +     *
   40.81 +     * @see List#makeVisible(int)
   40.82 +     */
   40.83      void makeVisible(int index);
   40.84 -    void setMultipleMode(boolean b);
   40.85 +
   40.86 +    /**
   40.87 +     * Toggles multiple selection mode on or off.
   40.88 +     *
   40.89 +     * @param m {@code true} for multiple selection mode,
   40.90 +     *        {@code false} for single selection mode
   40.91 +     *
   40.92 +     * @see List#setMultipleMode(boolean)
   40.93 +     */
   40.94 +    void setMultipleMode(boolean m);
   40.95 +
   40.96 +    /**
   40.97 +     * Returns the preferred size for a list with the specified number of rows.
   40.98 +     *
   40.99 +     * @param rows the number of rows
  40.100 +     *
  40.101 +     * @return the preferred size of the list
  40.102 +     *
  40.103 +     * @see List#getPreferredSize(int)
  40.104 +     */
  40.105      Dimension getPreferredSize(int rows);
  40.106 +
  40.107 +    /**
  40.108 +     * Returns the minimum size for a list with the specified number of rows.
  40.109 +     *
  40.110 +     * @param rows the number of rows
  40.111 +     *
  40.112 +     * @return the minimum size of the list
  40.113 +     *
  40.114 +     * @see List#getMinimumSize(int)
  40.115 +     */
  40.116      Dimension getMinimumSize(int rows);
  40.117  
  40.118 -    /**
  40.119 -     * DEPRECATED:  Replaced by add(String, int).
  40.120 -     */
  40.121 -    void addItem(String item, int index);
  40.122 -
  40.123 -    /**
  40.124 -     * DEPRECATED:  Replaced by removeAll().
  40.125 -     */
  40.126 -    void clear();
  40.127 -
  40.128 -    /**
  40.129 -     * DEPRECATED:  Replaced by setMultipleMode(boolean).
  40.130 -     */
  40.131 -    void setMultipleSelections(boolean v);
  40.132 -
  40.133 -    /**
  40.134 -     * DEPRECATED:  Replaced by getPreferredSize(int).
  40.135 -     */
  40.136 -    Dimension preferredSize(int v);
  40.137 -
  40.138 -    /**
  40.139 -     * DEPRECATED:  Replaced by getMinimumSize(int).
  40.140 -     */
  40.141 -    Dimension minimumSize(int v);
  40.142  }
    41.1 --- a/src/share/classes/java/awt/peer/MenuBarPeer.java	Tue Feb 17 09:06:16 2009 -0800
    41.2 +++ b/src/share/classes/java/awt/peer/MenuBarPeer.java	Wed Feb 18 10:05:41 2009 -0800
    41.3 @@ -25,8 +25,11 @@
    41.4  package java.awt.peer;
    41.5  
    41.6  import java.awt.Menu;
    41.7 +import java.awt.MenuBar;
    41.8  
    41.9  /**
   41.10 + * The peer interface for {@link MenuBar}.
   41.11 + *
   41.12   * The peer interfaces are intended only for use in porting
   41.13   * the AWT. They are not intended for use by application
   41.14   * developers, and developers should not implement peers
   41.15 @@ -34,7 +37,31 @@
   41.16   * instances.
   41.17   */
   41.18  public interface MenuBarPeer extends MenuComponentPeer {
   41.19 +
   41.20 +    /**
   41.21 +     * Adds a menu to the menu bar.
   41.22 +     *
   41.23 +     * @param m the menu to add
   41.24 +     *
   41.25 +     * @see MenuBar#add(Menu)
   41.26 +     */
   41.27      void addMenu(Menu m);
   41.28 +
   41.29 +    /**
   41.30 +     * Deletes a menu from the menu bar.
   41.31 +     *
   41.32 +     * @param index the index of the menu to remove
   41.33 +     *
   41.34 +     * @see MenuBar#remove(int)
   41.35 +     */
   41.36      void delMenu(int index);
   41.37 +
   41.38 +    /**
   41.39 +     * Adds a help menu to the menu bar.
   41.40 +     *
   41.41 +     * @param m the help menu to add
   41.42 +     *
   41.43 +     * @see MenuBar#setHelpMenu(Menu)
   41.44 +     */
   41.45      void addHelpMenu(Menu m);
   41.46  }
    42.1 --- a/src/share/classes/java/awt/peer/MenuComponentPeer.java	Tue Feb 17 09:06:16 2009 -0800
    42.2 +++ b/src/share/classes/java/awt/peer/MenuComponentPeer.java	Wed Feb 18 10:05:41 2009 -0800
    42.3 @@ -25,8 +25,12 @@
    42.4  package java.awt.peer;
    42.5  
    42.6  import java.awt.Font;
    42.7 +import java.awt.MenuComponent;
    42.8  
    42.9  /**
   42.10 + * The base interface for all kinds of menu components. This is used by
   42.11 + * {@link MenuComponent}.
   42.12 + *
   42.13   * The peer interfaces are intended only for use in porting
   42.14   * the AWT. They are not intended for use by application
   42.15   * developers, and developers should not implement peers
   42.16 @@ -34,6 +38,20 @@
   42.17   * instances.
   42.18   */
   42.19  public interface MenuComponentPeer {
   42.20 +
   42.21 +    /**
   42.22 +     * Disposes the menu component.
   42.23 +     *
   42.24 +     * @see MenuComponent#removeNotify()
   42.25 +     */
   42.26      void dispose();
   42.27 +
   42.28 +    /**
   42.29 +     * Sets the font for the menu component.
   42.30 +     *
   42.31 +     * @param f the font to use for the menu component
   42.32 +     *
   42.33 +     * @see MenuComponent#setFont(Font)
   42.34 +     */
   42.35      void setFont(Font f);
   42.36  }
    43.1 --- a/src/share/classes/java/awt/peer/MenuItemPeer.java	Tue Feb 17 09:06:16 2009 -0800
    43.2 +++ b/src/share/classes/java/awt/peer/MenuItemPeer.java	Wed Feb 18 10:05:41 2009 -0800
    43.3 @@ -24,7 +24,11 @@
    43.4   */
    43.5  package java.awt.peer;
    43.6  
    43.7 +import java.awt.MenuItem;
    43.8 +
    43.9  /**
   43.10 + * The peer interface for menu items. This is used by {@link MenuItem}.
   43.11 + *
   43.12   * The peer interfaces are intended only for use in porting
   43.13   * the AWT. They are not intended for use by application
   43.14   * developers, and developers should not implement peers
   43.15 @@ -32,16 +36,20 @@
   43.16   * instances.
   43.17   */
   43.18  public interface MenuItemPeer extends MenuComponentPeer {
   43.19 -    void setLabel(String label);
   43.20 -    void setEnabled(boolean b);
   43.21  
   43.22      /**
   43.23 -     * DEPRECATED:  Replaced by setEnabled(boolean).
   43.24 +     * Sets the label to be displayed in this menu item.
   43.25 +     *
   43.26 +     * @param label the label to be displayed
   43.27       */
   43.28 -    void enable();
   43.29 +    void setLabel(String label);
   43.30  
   43.31      /**
   43.32 -     * DEPRECATED:  Replaced by setEnabled(boolean).
   43.33 +     * Enables or disables the menu item.
   43.34 +     *
   43.35 +     * @param e {@code true} to enable the menu item, {@code false}
   43.36 +     *        to disable it
   43.37       */
   43.38 -    void disable();
   43.39 +    void setEnabled(boolean e);
   43.40 +
   43.41  }
    44.1 --- a/src/share/classes/java/awt/peer/MenuPeer.java	Tue Feb 17 09:06:16 2009 -0800
    44.2 +++ b/src/share/classes/java/awt/peer/MenuPeer.java	Wed Feb 18 10:05:41 2009 -0800
    44.3 @@ -24,9 +24,12 @@
    44.4   */
    44.5  package java.awt.peer;
    44.6  
    44.7 +import java.awt.Menu;
    44.8  import java.awt.MenuItem;
    44.9  
   44.10  /**
   44.11 + * The peer interface for menus. This is used by {@link Menu}.
   44.12 + *
   44.13   * The peer interfaces are intended only for use in porting
   44.14   * the AWT. They are not intended for use by application
   44.15   * developers, and developers should not implement peers
   44.16 @@ -34,7 +37,29 @@
   44.17   * instances.
   44.18   */
   44.19  public interface MenuPeer extends MenuItemPeer {
   44.20 +
   44.21 +    /**
   44.22 +     * Adds a separator (e.g. a horizontal line or similar) to the menu.
   44.23 +     *
   44.24 +     * @see Menu#addSeparator()
   44.25 +     */
   44.26      void addSeparator();
   44.27 +
   44.28 +    /**
   44.29 +     * Adds the specified menu item to the menu.
   44.30 +     *
   44.31 +     * @param item the menu item to add
   44.32 +     *
   44.33 +     * @see Menu#add(MenuItem)
   44.34 +     */
   44.35      void addItem(MenuItem item);
   44.36 +
   44.37 +    /**
   44.38 +     * Removes the menu item at the specified index.
   44.39 +     *
   44.40 +     * @param index the index of the item to remove
   44.41 +     *
   44.42 +     * @see Menu#remove(int)
   44.43 +     */
   44.44      void delItem(int index);
   44.45  }
    45.1 --- a/src/share/classes/java/awt/peer/MouseInfoPeer.java	Tue Feb 17 09:06:16 2009 -0800
    45.2 +++ b/src/share/classes/java/awt/peer/MouseInfoPeer.java	Wed Feb 18 10:05:41 2009 -0800
    45.3 @@ -29,6 +29,9 @@
    45.4  import java.awt.Point;
    45.5  
    45.6  /**
    45.7 + * Peer interface for {@link MouseInfo}. This is used to get some additional
    45.8 + * information about the mouse.
    45.9 + *
   45.10   * The peer interfaces are intended only for use in porting
   45.11   * the AWT. They are not intended for use by application
   45.12   * developers, and developers should not implement peers
    46.1 --- a/src/share/classes/java/awt/peer/PanelPeer.java	Tue Feb 17 09:06:16 2009 -0800
    46.2 +++ b/src/share/classes/java/awt/peer/PanelPeer.java	Wed Feb 18 10:05:41 2009 -0800
    46.3 @@ -25,6 +25,10 @@
    46.4  package java.awt.peer;
    46.5  
    46.6  /**
    46.7 + * The peer interface for {@link Panel}. This is a subinterface of
    46.8 + * ContainerPeer and does not declare any additional methods because a Panel
    46.9 + * is just that, a concrete Container.
   46.10 + *
   46.11   * The peer interfaces are intended only for use in porting
   46.12   * the AWT. They are not intended for use by application
   46.13   * developers, and developers should not implement peers
    47.1 --- a/src/share/classes/java/awt/peer/PopupMenuPeer.java	Tue Feb 17 09:06:16 2009 -0800
    47.2 +++ b/src/share/classes/java/awt/peer/PopupMenuPeer.java	Wed Feb 18 10:05:41 2009 -0800
    47.3 @@ -25,8 +25,11 @@
    47.4  package java.awt.peer;
    47.5  
    47.6  import java.awt.Event;
    47.7 +import java.awt.PopupMenu;
    47.8  
    47.9  /**
   47.10 + * The peer interface for {@link PopupMenu}.
   47.11 + *
   47.12   * The peer interfaces are intended only for use in porting
   47.13   * the AWT. They are not intended for use by application
   47.14   * developers, and developers should not implement peers
   47.15 @@ -34,5 +37,14 @@
   47.16   * instances.
   47.17   */
   47.18  public interface PopupMenuPeer extends MenuPeer {
   47.19 +
   47.20 +    /**
   47.21 +     * Shows the popup menu.
   47.22 +     *
   47.23 +     * @param e a synthetic event describing the origin and location of the
   47.24 +     *        popup menu
   47.25 +     *
   47.26 +     * @see PopupMenu#show(java.awt.Component, int, int)
   47.27 +     */
   47.28      void show(Event e);
   47.29  }
    48.1 --- a/src/share/classes/java/awt/peer/RobotPeer.java	Tue Feb 17 09:06:16 2009 -0800
    48.2 +++ b/src/share/classes/java/awt/peer/RobotPeer.java	Wed Feb 18 10:05:41 2009 -0800
    48.3 @@ -1,5 +1,5 @@
    48.4  /*
    48.5 - * Copyright 1999-2007 Sun Microsystems, Inc.  All Rights Reserved.
    48.6 + * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
    48.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    48.8   *
    48.9   * This code is free software; you can redistribute it and/or modify it
   48.10 @@ -39,17 +39,93 @@
   48.11   */
   48.12  public interface RobotPeer
   48.13  {
   48.14 -    public void mouseMove(int x, int y);
   48.15 -    public void mousePress(int buttons);
   48.16 -    public void mouseRelease(int buttons);
   48.17 +    /**
   48.18 +     * Moves the mouse pointer to the specified screen location.
   48.19 +     *
   48.20 +     * @param x the X location on screen
   48.21 +     * @param y the Y location on screen
   48.22 +     *
   48.23 +     * @see Robot#mouseMove(int, int)
   48.24 +     */
   48.25 +    void mouseMove(int x, int y);
   48.26  
   48.27 -    public void mouseWheel(int wheelAmt);
   48.28 +    /**
   48.29 +     * Simulates a mouse press with the specified button(s).
   48.30 +     *
   48.31 +     * @param buttons the button mask
   48.32 +     *
   48.33 +     * @see Robot#mousePress(int)
   48.34 +     */
   48.35 +    void mousePress(int buttons);
   48.36  
   48.37 -    public void keyPress(int keycode);
   48.38 -    public void keyRelease(int keycode);
   48.39 +    /**
   48.40 +     * Simulates a mouse release with the specified button(s).
   48.41 +     *
   48.42 +     * @param buttons the button mask
   48.43 +     *
   48.44 +     * @see Robot#mouseRelease(int)
   48.45 +     */
   48.46 +    void mouseRelease(int buttons);
   48.47  
   48.48 -    public int getRGBPixel(int x, int y);
   48.49 -    public int [] getRGBPixels(Rectangle bounds);
   48.50 +    /**
   48.51 +     * Simulates mouse wheel action.
   48.52 +     *
   48.53 +     * @param wheelAmt number of notches to move the mouse wheel
   48.54 +     *
   48.55 +     * @see Robot#mouseWheel(int)
   48.56 +     */
   48.57 +    void mouseWheel(int wheelAmt);
   48.58  
   48.59 -    public void dispose();
   48.60 +    /**
   48.61 +     * Simulates a key press of the specified key.
   48.62 +     *
   48.63 +     * @param keycode the key code to press
   48.64 +     *
   48.65 +     * @see Robot#keyPress(int)
   48.66 +     */
   48.67 +    void keyPress(int keycode);
   48.68 +
   48.69 +    /**
   48.70 +     * Simulates a key release of the specified key.
   48.71 +     *
   48.72 +     * @param keycode the key code to release
   48.73 +     *
   48.74 +     * @see Robot#keyRelease(int)
   48.75 +     */
   48.76 +    void keyRelease(int keycode);
   48.77 +
   48.78 +    /**
   48.79 +     * Gets the RGB value of the specified pixel on screen.
   48.80 +     *
   48.81 +     * @param x the X screen coordinate
   48.82 +     * @param y the Y screen coordinate
   48.83 +     *
   48.84 +     * @return the RGB value of the specified pixel on screen
   48.85 +     *
   48.86 +     * @see Robot#getPixelColor(int, int)
   48.87 +     */
   48.88 +    int getRGBPixel(int x, int y);
   48.89 +
   48.90 +    /**
   48.91 +     * Gets the RGB values of the specified screen area as an array.
   48.92 +     *
   48.93 +     * @param bounds the screen area to capture the RGB values from
   48.94 +     *
   48.95 +     * @return the RGB values of the specified screen area
   48.96 +     *
   48.97 +     * @see Robot#createScreenCapture(Rectangle)
   48.98 +     */
   48.99 +    int[] getRGBPixels(Rectangle bounds);
  48.100 +
  48.101 +    /**
  48.102 +     * Disposes the robot peer when it is not needed anymore.
  48.103 +     */
  48.104 +    void dispose();
  48.105 +
  48.106 +    /**
  48.107 +     * Returns the number of buttons that the robot simulates.
  48.108 +     *
  48.109 +     * @return the number of buttons that the robot simulates
  48.110 +     */
  48.111 +    int getNumberOfButtons();
  48.112  }
    49.1 --- a/src/share/classes/java/awt/peer/ScrollPanePeer.java	Tue Feb 17 09:06:16 2009 -0800
    49.2 +++ b/src/share/classes/java/awt/peer/ScrollPanePeer.java	Wed Feb 18 10:05:41 2009 -0800
    49.3 @@ -25,8 +25,12 @@
    49.4  package java.awt.peer;
    49.5  
    49.6  import java.awt.Adjustable;
    49.7 +import java.awt.ScrollPane;
    49.8 +import java.awt.ScrollPaneAdjustable;
    49.9  
   49.10  /**
   49.11 + * The peer interface for {@link ScrollPane}.
   49.12 + *
   49.13   * The peer interfaces are intended only for use in porting
   49.14   * the AWT. They are not intended for use by application
   49.15   * developers, and developers should not implement peers
   49.16 @@ -34,10 +38,60 @@
   49.17   * instances.
   49.18   */
   49.19  public interface ScrollPanePeer extends ContainerPeer {
   49.20 +
   49.21 +    /**
   49.22 +     * Returns the height of the horizontal scroll bar.
   49.23 +     *
   49.24 +     * @return the height of the horizontal scroll bar
   49.25 +     *
   49.26 +     * @see ScrollPane#getHScrollbarHeight()
   49.27 +     */
   49.28      int getHScrollbarHeight();
   49.29 +
   49.30 +    /**
   49.31 +     * Returns the width of the vertical scroll bar.
   49.32 +     *
   49.33 +     * @return the width of the vertical scroll bar
   49.34 +     *
   49.35 +     * @see ScrollPane#getVScrollbarWidth()
   49.36 +     */
   49.37      int getVScrollbarWidth();
   49.38 +
   49.39 +    /**
   49.40 +     * Sets the scroll position of the child.
   49.41 +     *
   49.42 +     * @param x the X coordinate of the scroll position
   49.43 +     * @param y the Y coordinate of the scroll position
   49.44 +     *
   49.45 +     * @see ScrollPane#setScrollPosition(int, int)
   49.46 +     */
   49.47      void setScrollPosition(int x, int y);
   49.48 +
   49.49 +    /**
   49.50 +     * Called when the child component changes its size.
   49.51 +     *
   49.52 +     * @param w the new width of the child component
   49.53 +     * @param h the new height of the child component
   49.54 +     *
   49.55 +     * @see ScrollPane#layout()
   49.56 +     */
   49.57      void childResized(int w, int h);
   49.58 +
   49.59 +    /**
   49.60 +     * Sets the unit increment of one of the scroll pane's adjustables.
   49.61 +     *
   49.62 +     * @param adj the scroll pane adjustable object
   49.63 +     * @param u the unit increment
   49.64 +     *
   49.65 +     * @see ScrollPaneAdjustable#setUnitIncrement(int)
   49.66 +     */
   49.67      void setUnitIncrement(Adjustable adj, int u);
   49.68 +
   49.69 +    /**
   49.70 +     * Sets the value for one of the scroll pane's adjustables.
   49.71 +     *
   49.72 +     * @param adj the scroll pane adjustable object
   49.73 +     * @param v the value to set
   49.74 +     */
   49.75      void setValue(Adjustable adj, int v);
   49.76  }
    50.1 --- a/src/share/classes/java/awt/peer/ScrollbarPeer.java	Tue Feb 17 09:06:16 2009 -0800
    50.2 +++ b/src/share/classes/java/awt/peer/ScrollbarPeer.java	Wed Feb 18 10:05:41 2009 -0800
    50.3 @@ -24,7 +24,11 @@
    50.4   */
    50.5  package java.awt.peer;
    50.6  
    50.7 +import java.awt.Scrollbar;
    50.8 +
    50.9  /**
   50.10 + * The peer interface for {@link Scrollbar}.
   50.11 + *
   50.12   * The peer interfaces are intended only for use in porting
   50.13   * the AWT. They are not intended for use by application
   50.14   * developers, and developers should not implement peers
   50.15 @@ -32,7 +36,34 @@
   50.16   * instances.
   50.17   */
   50.18  public interface ScrollbarPeer extends ComponentPeer {
   50.19 +
   50.20 +    /**
   50.21 +     * Sets the parameters for the scrollbar.
   50.22 +     *
   50.23 +     * @param value the current value
   50.24 +     * @param visible how much of the whole scale is visible
   50.25 +     * @param minimum the minimum value
   50.26 +     * @param maximum the maximum value
   50.27 +     *
   50.28 +     * @see Scrollbar#setValues(int, int, int, int)
   50.29 +     */
   50.30      void setValues(int value, int visible, int minimum, int maximum);
   50.31 +
   50.32 +    /**
   50.33 +     * Sets the line increment of the scrollbar.
   50.34 +     *
   50.35 +     * @param l the line increment
   50.36 +     *
   50.37 +     * @see Scrollbar#setLineIncrement(int)
   50.38 +     */
   50.39      void setLineIncrement(int l);
   50.40 +
   50.41 +    /**
   50.42 +     * Sets the page increment of the scrollbar.
   50.43 +     *
   50.44 +     * @param l the page increment
   50.45 +     *
   50.46 +     * @see Scrollbar#setPageIncrement(int)
   50.47 +     */
   50.48      void setPageIncrement(int l);
   50.49  }
    51.1 --- a/src/share/classes/java/awt/peer/SystemTrayPeer.java	Tue Feb 17 09:06:16 2009 -0800
    51.2 +++ b/src/share/classes/java/awt/peer/SystemTrayPeer.java	Wed Feb 18 10:05:41 2009 -0800
    51.3 @@ -26,7 +26,20 @@
    51.4  package java.awt.peer;
    51.5  
    51.6  import java.awt.Dimension;
    51.7 +import java.awt.SystemTray;
    51.8  
    51.9 +/**
   51.10 + * The peer interface for {@link SystemTray}. This doesn't need to be
   51.11 + * implemented if {@link SystemTray#isSupported()} returns false.
   51.12 + */
   51.13  public interface SystemTrayPeer {
   51.14 +
   51.15 +    /**
   51.16 +     * Returns the size of the system tray icon.
   51.17 +     *
   51.18 +     * @return the size of the system tray icon
   51.19 +     *
   51.20 +     * @see SystemTray#getTrayIconSize()
   51.21 +     */
   51.22      Dimension getTrayIconSize();
   51.23  }
    52.1 --- a/src/share/classes/java/awt/peer/TextAreaPeer.java	Tue Feb 17 09:06:16 2009 -0800
    52.2 +++ b/src/share/classes/java/awt/peer/TextAreaPeer.java	Wed Feb 18 10:05:41 2009 -0800
    52.3 @@ -25,8 +25,11 @@
    52.4  package java.awt.peer;
    52.5  
    52.6  import java.awt.Dimension;
    52.7 +import java.awt.TextArea;
    52.8  
    52.9  /**
   52.10 + * The peer interface for {@link TexTArea}.
   52.11 + *
   52.12   * The peer interfaces are intended only for use in porting
   52.13   * the AWT. They are not intended for use by application
   52.14   * developers, and developers should not implement peers
   52.15 @@ -34,28 +37,52 @@
   52.16   * instances.
   52.17   */
   52.18  public interface TextAreaPeer extends TextComponentPeer {
   52.19 +
   52.20 +    /**
   52.21 +     * Inserts the specified text at the specified position in the document.
   52.22 +     *
   52.23 +     * @param text the text to insert
   52.24 +     * @param pos the position to insert
   52.25 +     *
   52.26 +     * @see TextArea#insert(String, int)
   52.27 +     */
   52.28      void insert(String text, int pos);
   52.29 +
   52.30 +    /**
   52.31 +     * Replaces a range of text by the specified string
   52.32 +     *
   52.33 +     * @param text the replacement string
   52.34 +     * @param start the begin of the range to replace
   52.35 +     * @param end the end of the range to replace
   52.36 +     *
   52.37 +     * @see TextArea#replaceRange(String, int, int)
   52.38 +     */
   52.39      void replaceRange(String text, int start, int end);
   52.40 +
   52.41 +    /**
   52.42 +     * Returns the preferred size of a textarea with the specified number of
   52.43 +     * columns and rows.
   52.44 +     *
   52.45 +     * @param rows the number of rows
   52.46 +     * @param columns the number of columns
   52.47 +     *
   52.48 +     * @return the preferred size of a textarea
   52.49 +     *
   52.50 +     * @see TextArea#getPreferredSize(int, int)
   52.51 +     */
   52.52      Dimension getPreferredSize(int rows, int columns);
   52.53 +
   52.54 +    /**
   52.55 +     * Returns the minimum size of a textarea with the specified number of
   52.56 +     * columns and rows.
   52.57 +     *
   52.58 +     * @param rows the number of rows
   52.59 +     * @param columns the number of columns
   52.60 +     *
   52.61 +     * @return the minimum size of a textarea
   52.62 +     *
   52.63 +     * @see TextArea#getMinimumSize(int, int)
   52.64 +     */
   52.65      Dimension getMinimumSize(int rows, int columns);
   52.66  
   52.67 -    /**
   52.68 -     * DEPRECATED:  Replaced by insert(String, int).
   52.69 -     */
   52.70 -    void insertText(String txt, int pos);
   52.71 -
   52.72 -    /**
   52.73 -     * DEPRECATED:  Replaced by ReplaceRange(String, int, int).
   52.74 -     */
   52.75 -    void replaceText(String txt, int start, int end);
   52.76 -
   52.77 -    /**
   52.78 -     * DEPRECATED:  Replaced by getPreferredSize(int, int).
   52.79 -     */
   52.80 -    Dimension preferredSize(int rows, int cols);
   52.81 -
   52.82 -    /**
   52.83 -     * DEPRECATED:  Replaced by getMinimumSize(int, int).
   52.84 -     */
   52.85 -    Dimension minimumSize(int rows, int cols);
   52.86  }
    53.1 --- a/src/share/classes/java/awt/peer/TextComponentPeer.java	Tue Feb 17 09:06:16 2009 -0800
    53.2 +++ b/src/share/classes/java/awt/peer/TextComponentPeer.java	Wed Feb 18 10:05:41 2009 -0800
    53.3 @@ -24,10 +24,12 @@
    53.4   */
    53.5  package java.awt.peer;
    53.6  
    53.7 -import java.awt.Rectangle;
    53.8 +import java.awt.TextComponent;
    53.9  import java.awt.im.InputMethodRequests;
   53.10  
   53.11  /**
   53.12 + * The peer interface for {@link TextComponent}.
   53.13 + *
   53.14   * The peer interfaces are intended only for use in porting
   53.15   * the AWT. They are not intended for use by application
   53.16   * developers, and developers should not implement peers
   53.17 @@ -35,16 +37,85 @@
   53.18   * instances.
   53.19   */
   53.20  public interface TextComponentPeer extends ComponentPeer {
   53.21 +
   53.22 +    /**
   53.23 +     * Sets if the text component should be editable or not.
   53.24 +     *
   53.25 +     * @param editable {@code true} for editable text components,
   53.26 +     *        {@code false} for non-editable text components
   53.27 +     *
   53.28 +     * @see TextComponent#setEditable(boolean)
   53.29 +     */
   53.30      void setEditable(boolean editable);
   53.31 +
   53.32 +    /**
   53.33 +     * Returns the current content of the text component.
   53.34 +     *
   53.35 +     * @return the current content of the text component
   53.36 +     *
   53.37 +     * @see TextComponent#getText()
   53.38 +     */
   53.39      String getText();
   53.40 +
   53.41 +    /**
   53.42 +     * Sets the content for the text component.
   53.43 +     *
   53.44 +     * @param l the content to set
   53.45 +     *
   53.46 +     * @see TextComponent#setText(String)
   53.47 +     */
   53.48      void setText(String l);
   53.49 +
   53.50 +    /**
   53.51 +     * Returns the start index of the current selection.
   53.52 +     *
   53.53 +     * @return the start index of the current selection
   53.54 +     *
   53.55 +     * @see TextComponent#getSelectionStart()
   53.56 +     */
   53.57      int getSelectionStart();
   53.58 +
   53.59 +    /**
   53.60 +     * Returns the end index of the current selection.
   53.61 +     *
   53.62 +     * @return the end index of the current selection
   53.63 +     *
   53.64 +     * @see TextComponent#getSelectionEnd()
   53.65 +     */
   53.66      int getSelectionEnd();
   53.67 +
   53.68 +    /**
   53.69 +     * Selects an area of the text component.
   53.70 +     *
   53.71 +     * @param selStart the start index of the new selection
   53.72 +     * @param selEnd the end index of the new selection
   53.73 +     *
   53.74 +     * @see TextComponent#select(int, int)
   53.75 +     */
   53.76      void select(int selStart, int selEnd);
   53.77 +
   53.78 +    /**
   53.79 +     * Sets the caret position of the text component.
   53.80 +     *
   53.81 +     * @param pos the caret position to set
   53.82 +     *
   53.83 +     * @see TextComponent#setCaretPosition(int)
   53.84 +     */
   53.85      void setCaretPosition(int pos);
   53.86 +
   53.87 +    /**
   53.88 +     * Returns the current caret position.
   53.89 +     *
   53.90 +     * @return the current caret position
   53.91 +     *
   53.92 +     * @see TextComponent#getCaretPosition()
   53.93 +     */
   53.94      int getCaretPosition();
   53.95 -    int getIndexAtPoint(int x, int y);
   53.96 -    Rectangle getCharacterBounds(int i);
   53.97 -    long filterEvents(long mask);
   53.98 +
   53.99 +    /**
  53.100 +     * Returns the input method requests.
  53.101 +     *
  53.102 +     * @return the input method requests
  53.103 +     */
  53.104      InputMethodRequests getInputMethodRequests();
  53.105  }
    54.1 --- a/src/share/classes/java/awt/peer/TextFieldPeer.java	Tue Feb 17 09:06:16 2009 -0800
    54.2 +++ b/src/share/classes/java/awt/peer/TextFieldPeer.java	Wed Feb 18 10:05:41 2009 -0800
    54.3 @@ -25,8 +25,11 @@
    54.4  package java.awt.peer;
    54.5  
    54.6  import java.awt.Dimension;
    54.7 +import java.awt.TextField;
    54.8  
    54.9  /**
   54.10 + * The peer interface for {@link TextField}.
   54.11 + *
   54.12   * The peer interfaces are intended only for use in porting
   54.13   * the AWT. They are not intended for use by application
   54.14   * developers, and developers should not implement peers
   54.15 @@ -34,22 +37,38 @@
   54.16   * instances.
   54.17   */
   54.18  public interface TextFieldPeer extends TextComponentPeer {
   54.19 +
   54.20 +    /**
   54.21 +     * Sets the echo character.
   54.22 +     *
   54.23 +     * @param echoChar the echo character to set
   54.24 +     *
   54.25 +     * @see TextField#getEchoChar()
   54.26 +     */
   54.27      void setEchoChar(char echoChar);
   54.28 +
   54.29 +    /**
   54.30 +     * Returns the preferred size of the text field with the specified number
   54.31 +     * of columns.
   54.32 +     *
   54.33 +     * @param columns the number of columns
   54.34 +     *
   54.35 +     * @return the preferred size of the text field
   54.36 +     *
   54.37 +     * @see TextField#getPreferredSize(int)
   54.38 +     */
   54.39      Dimension getPreferredSize(int columns);
   54.40 +
   54.41 +    /**
   54.42 +     * Returns the minimum size of the text field with the specified number
   54.43 +     * of columns.
   54.44 +     *
   54.45 +     * @param columns the number of columns
   54.46 +     *
   54.47 +     * @return the minimum size of the text field
   54.48 +     *
   54.49 +     * @see TextField#getMinimumSize(int)
   54.50 +     */
   54.51      Dimension getMinimumSize(int columns);
   54.52  
   54.53 -    /**
   54.54 -     * DEPRECATED:  Replaced by setEchoChar(char echoChar).
   54.55 -     */
   54.56 -    void setEchoCharacter(char c);
   54.57 -
   54.58 -    /**
   54.59 -     * DEPRECATED:  Replaced by getPreferredSize(int).
   54.60 -     */
   54.61 -    Dimension preferredSize(int cols);
   54.62 -
   54.63 -    /**
   54.64 -     * DEPRECATED:  Replaced by getMinimumSize(int).
   54.65 -     */
   54.66 -    Dimension minimumSize(int cols);
   54.67  }
    55.1 --- a/src/share/classes/java/awt/peer/TrayIconPeer.java	Tue Feb 17 09:06:16 2009 -0800
    55.2 +++ b/src/share/classes/java/awt/peer/TrayIconPeer.java	Wed Feb 18 10:05:41 2009 -0800
    55.3 @@ -25,10 +25,56 @@
    55.4  
    55.5  package java.awt.peer;
    55.6  
    55.7 +import java.awt.SystemTray;
    55.8 +import java.awt.TrayIcon;
    55.9 +
   55.10 +/**
   55.11 + * The peer interface for the {@link TrayIcon}. This doesn't need to be
   55.12 + * implemented if {@link SystemTray#isSupported()} returns false.
   55.13 + */
   55.14  public interface TrayIconPeer {
   55.15 +
   55.16 +    /**
   55.17 +     * Disposes the tray icon and releases and resources held by it.
   55.18 +     *
   55.19 +     * @see TrayIcon#removeNotify()
   55.20 +     */
   55.21      void dispose();
   55.22 +
   55.23 +    /**
   55.24 +     * Sets the tool tip for the tray icon.
   55.25 +     *
   55.26 +     * @param tooltip the tooltip to set
   55.27 +     *
   55.28 +     * @see TrayIcon#setToolTip(String)
   55.29 +     */
   55.30      void setToolTip(String tooltip);
   55.31 +
   55.32 +    /**
   55.33 +     * Updates the icon image. This is supposed to display the current icon
   55.34 +     * from the TrayIcon component in the actual tray icon.
   55.35 +     *
   55.36 +     * @see TrayIcon#setImage(java.awt.Image)
   55.37 +     * @see TrayIcon#setImageAutoSize(boolean)
   55.38 +     */
   55.39      void updateImage();
   55.40 +
   55.41 +    /**
   55.42 +     * Displays a message at the tray icon.
   55.43 +     *
   55.44 +     * @param caption the message caption
   55.45 +     * @param text the actual message text
   55.46 +     * @param messageType the message type
   55.47 +     *
   55.48 +     * @see TrayIcon#displayMessage(String, String, java.awt.TrayIcon.MessageType)
   55.49 +     */
   55.50      void displayMessage(String caption, String text, String messageType);
   55.51 +
   55.52 +    /**
   55.53 +     * Shows the popup menu of this tray icon at the specified position.
   55.54 +     *
   55.55 +     * @param x the X location for the popup menu
   55.56 +     * @param y the Y location for the popup menu
   55.57 +     */
   55.58      void showPopupMenu(int x, int y);
   55.59  }
    56.1 --- a/src/share/classes/java/awt/peer/WindowPeer.java	Tue Feb 17 09:06:16 2009 -0800
    56.2 +++ b/src/share/classes/java/awt/peer/WindowPeer.java	Wed Feb 18 10:05:41 2009 -0800
    56.3 @@ -28,6 +28,8 @@
    56.4  import java.awt.*;
    56.5  
    56.6  /**
    56.7 + * The peer interface for {@link Window}.
    56.8 + *
    56.9   * The peer interfaces are intended only for use in porting
   56.10   * the AWT. They are not intended for use by application
   56.11   * developers, and developers should not implement peers
   56.12 @@ -35,12 +37,59 @@
   56.13   * instances.
   56.14   */
   56.15  public interface WindowPeer extends ContainerPeer {
   56.16 +
   56.17 +    /**
   56.18 +     * Makes this window the topmost window on the desktop.
   56.19 +     *
   56.20 +     * @see Window#toFront()
   56.21 +     */
   56.22      void toFront();
   56.23 +
   56.24 +    /**
   56.25 +     * Makes this window the bottommost window on the desktop.
   56.26 +     *
   56.27 +     * @see Window#toBack()
   56.28 +     */
   56.29      void toBack();
   56.30 +
   56.31 +    /**
   56.32 +     * Sets if the window should always stay on top of all other windows or
   56.33 +     * not.
   56.34 +     *
   56.35 +     * @param alwaysOnTop if the window should always stay on top of all other
   56.36 +     *        windows or not
   56.37 +     *
   56.38 +     * @see Window#setAlwaysOnTop(boolean)
   56.39 +     */
   56.40      void setAlwaysOnTop(boolean alwaysOnTop);
   56.41 +
   56.42 +    /**
   56.43 +     * Updates the window's focusable state.
   56.44 +     *
   56.45 +     * @see Window#setFocusableWindowState(boolean)
   56.46 +     */
   56.47      void updateFocusableWindowState();
   56.48 -    boolean requestWindowFocus();
   56.49 +
   56.50 +    /**
   56.51 +     * Sets if this window is blocked by a modal dialog or not.
   56.52 +     *
   56.53 +     * @param blocker the blocking modal dialog
   56.54 +     * @param blocked {@code true} to block the window, {@code false}
   56.55 +     *        to unblock it
   56.56 +     */
   56.57      void setModalBlocked(Dialog blocker, boolean blocked);
   56.58 +
   56.59 +    /**
   56.60 +     * Updates the minimum size on the peer.
   56.61 +     *
   56.62 +     * @see Window#setMinimumSize(Dimension)
   56.63 +     */
   56.64      void updateMinimumSize();
   56.65 +
   56.66 +    /**
   56.67 +     * Updates the icons for the window.
   56.68 +     *
   56.69 +     * @see Window#setIconImages(java.util.List)
   56.70 +     */
   56.71      void updateIconImages();
   56.72  }
    57.1 --- a/src/share/classes/javax/swing/JRootPane.java	Tue Feb 17 09:06:16 2009 -0800
    57.2 +++ b/src/share/classes/javax/swing/JRootPane.java	Wed Feb 18 10:05:41 2009 -0800
    57.3 @@ -34,6 +34,7 @@
    57.4  import java.util.Vector;
    57.5  import java.io.Serializable;
    57.6  import javax.swing.border.*;
    57.7 +import sun.awt.AWTAccessor;
    57.8  import sun.security.action.GetBooleanAction;
    57.9  
   57.10  
   57.11 @@ -688,6 +689,9 @@
   57.12              throw new NullPointerException("glassPane cannot be set to null.");
   57.13          }
   57.14  
   57.15 +        AWTAccessor.getComponentAccessor().setMixingCutoutShape(glass,
   57.16 +                new Rectangle());
   57.17 +
   57.18          boolean visible = false;
   57.19          if (glassPane != null && glassPane.getParent() == this) {
   57.20              this.remove(glassPane);
    58.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    58.2 +++ b/src/share/classes/sun/awt/AWTAccessor.java	Wed Feb 18 10:05:41 2009 -0800
    58.3 @@ -0,0 +1,77 @@
    58.4 +/*
    58.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
    58.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    58.7 + *
    58.8 + * This code is free software; you can redistribute it and/or modify it
    58.9 + * under the terms of the GNU General Public License version 2 only, as
   58.10 + * published by the Free Software Foundation.  Sun designates this
   58.11 + * particular file as subject to the "Classpath" exception as provided
   58.12 + * by Sun in the LICENSE file that accompanied this code.
   58.13 + *
   58.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   58.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   58.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   58.17 + * version 2 for more details (a copy is included in the LICENSE file that
   58.18 + * accompanied this code).
   58.19 + *
   58.20 + * You should have received a copy of the GNU General Public License version
   58.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   58.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   58.23 + *
   58.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   58.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   58.26 + * have any questions.
   58.27 + */
   58.28 +
   58.29 +package sun.awt;
   58.30 +
   58.31 +import java.awt.*;
   58.32 +import sun.misc.Unsafe;
   58.33 +
   58.34 +/** The AWTAccessor utility class.
   58.35 + * The main purpose of this class is to enable accessing
   58.36 + * private and package-private fields of classes from
   58.37 + * different classes/packages. See sun.misc.SharedSecretes
   58.38 + * for another example.
   58.39 + */
   58.40 +public final class AWTAccessor {
   58.41 +    private static final Unsafe unsafe = Unsafe.getUnsafe();
   58.42 +
   58.43 +    /** We don't need any objects of this class.
   58.44 +     * It's rather a collection of static methods
   58.45 +     * and interfaces.
   58.46 +     */
   58.47 +    private AWTAccessor() {
   58.48 +    }
   58.49 +
   58.50 +    /** An accessor for the java.awt.Component class.
   58.51 +     */
   58.52 +    public interface ComponentAccessor {
   58.53 +        // See 6797587
   58.54 +        // Also see: 6776743, 6768307, and 6768332.
   58.55 +        /**
   58.56 +         * Sets the shape of a lw component to cut out from hw components.
   58.57 +         */
   58.58 +        void setMixingCutoutShape(Component comp, Shape shape);
   58.59 +    }
   58.60 +
   58.61 +    /* The java.awt.Component class accessor object.
   58.62 +     */
   58.63 +    private static ComponentAccessor componentAccessor;
   58.64 +
   58.65 +    /** Set an accessor object for the java.awt.Component class.
   58.66 +     */
   58.67 +    public static void setComponentAccessor(ComponentAccessor ca) {
   58.68 +        componentAccessor = ca;
   58.69 +    }
   58.70 +
   58.71 +    /** Retrieve the accessor object for the java.awt.Window class.
   58.72 +     */
   58.73 +    public static ComponentAccessor getComponentAccessor() {
   58.74 +        if (componentAccessor == null) {
   58.75 +            unsafe.ensureClassInitialized(Component.class);
   58.76 +        }
   58.77 +
   58.78 +        return componentAccessor;
   58.79 +    }
   58.80 +}
    59.1 --- a/src/share/classes/sun/awt/HeadlessToolkit.java	Tue Feb 17 09:06:16 2009 -0800
    59.2 +++ b/src/share/classes/sun/awt/HeadlessToolkit.java	Wed Feb 18 10:05:41 2009 -0800
    59.3 @@ -1,5 +1,5 @@
    59.4  /*
    59.5 - * Copyright 2000-2007 Sun Microsystems, Inc.  All Rights Reserved.
    59.6 + * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
    59.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    59.8   *
    59.9   * This code is free software; you can redistribute it and/or modify it
   59.10 @@ -456,6 +456,10 @@
   59.11          return tk.getAWTEventListeners();
   59.12      }
   59.13  
   59.14 +    public AWTEventListener[] getAWTEventListeners(long eventMask) {
   59.15 +        return tk.getAWTEventListeners(eventMask);
   59.16 +    }
   59.17 +
   59.18      public boolean isDesktopSupported() {
   59.19          return false;
   59.20      }
   59.21 @@ -464,4 +468,8 @@
   59.22      throws HeadlessException{
   59.23          throw new HeadlessException();
   59.24      }
   59.25 +
   59.26 +    public boolean areExtraMouseButtonsEnabled() throws HeadlessException{
   59.27 +        throw new HeadlessException();
   59.28 +    }
   59.29  }
    60.1 --- a/src/share/classes/sun/awt/SunToolkit.java	Tue Feb 17 09:06:16 2009 -0800
    60.2 +++ b/src/share/classes/sun/awt/SunToolkit.java	Wed Feb 18 10:05:41 2009 -0800
    60.3 @@ -1972,6 +1972,21 @@
    60.4          AWTAutoShutdown.getInstance().dumpPeers(aLog);
    60.5      }
    60.6  
    60.7 +    private static Boolean sunAwtDisableMixing = null;
    60.8 +
    60.9 +    /**
   60.10 +     * Returns the value of "sun.awt.disableMixing" property. Default
   60.11 +     * value is {@code false}.
   60.12 +     */
   60.13 +    public synchronized static boolean getSunAwtDisableMixing() {
   60.14 +        if (sunAwtDisableMixing == null) {
   60.15 +            sunAwtDisableMixing = Boolean.valueOf(
   60.16 +                    AccessController.doPrivileged(
   60.17 +                        new GetBooleanAction("sun.awt.disableMixing")));
   60.18 +        }
   60.19 +        return sunAwtDisableMixing.booleanValue();
   60.20 +    }
   60.21 +
   60.22      /**
   60.23       * Returns true if the native GTK libraries are available.  The
   60.24       * default implementation returns false, but UNIXToolkit overrides this
   60.25 @@ -2008,26 +2023,12 @@
   60.26      /*
   60.27       * Continually post pending AWTEvents to the Java EventQueue.
   60.28       */
   60.29 -    public void flush() {
   60.30 -        if (queueHead != null) {
   60.31 -            EventQueueItem tempQueue;
   60.32 -            /*
   60.33 -             * We have to execute the loop inside the synchronized block
   60.34 -             * to ensure that the flush is completed before a new event
   60.35 -             * can be posted to this queue.
   60.36 -             */
   60.37 -            synchronized (this) {
   60.38 -                tempQueue = queueHead;
   60.39 -                queueHead = queueTail = null;
   60.40 -                /*
   60.41 -                 * If this PostEventQueue is flushed in parallel on two
   60.42 -                 * different threads tempQueue will be null for one of them.
   60.43 -                 */
   60.44 -                while (tempQueue != null) {
   60.45 -                    eventQueue.postEvent(tempQueue.event);
   60.46 -                    tempQueue = tempQueue.next;
   60.47 -                }
   60.48 -            }
   60.49 +    public synchronized void flush() {
   60.50 +        EventQueueItem tempQueue = queueHead;
   60.51 +        queueHead = queueTail = null;
   60.52 +        while (tempQueue != null) {
   60.53 +            eventQueue.postEvent(tempQueue.event);
   60.54 +            tempQueue = tempQueue.next;
   60.55          }
   60.56      }
   60.57  
    61.1 --- a/src/share/classes/sun/java2d/pipe/Region.java	Tue Feb 17 09:06:16 2009 -0800
    61.2 +++ b/src/share/classes/sun/java2d/pipe/Region.java	Wed Feb 18 10:05:41 2009 -0800
    61.3 @@ -28,6 +28,7 @@
    61.4  import java.awt.Rectangle;
    61.5  import java.awt.Shape;
    61.6  import java.awt.geom.AffineTransform;
    61.7 +import java.awt.geom.RectangularShape;
    61.8  
    61.9  /**
   61.10   * This class encapsulates a definition of a two dimensional region which
   61.11 @@ -63,11 +64,28 @@
   61.12      static final int INIT_SIZE = 50;
   61.13      static final int GROW_SIZE = 50;
   61.14  
   61.15 -    static final Region EMPTY_REGION = new Region(0, 0, 0, 0);
   61.16 -    static final Region WHOLE_REGION = new Region(Integer.MIN_VALUE,
   61.17 -                                                  Integer.MIN_VALUE,
   61.18 -                                                  Integer.MAX_VALUE,
   61.19 -                                                  Integer.MAX_VALUE);
   61.20 +    /**
   61.21 +     * Immutable Region.
   61.22 +     */
   61.23 +    private static final class ImmutableRegion extends Region {
   61.24 +        protected ImmutableRegion(int lox, int loy, int hix, int hiy) {
   61.25 +            super(lox, loy, hix, hiy);
   61.26 +        }
   61.27 +
   61.28 +        // Override all the methods that mutate the object
   61.29 +        public void appendSpans(sun.java2d.pipe.SpanIterator si) {}
   61.30 +        public void setOutputArea(java.awt.Rectangle r) {}
   61.31 +        public void setOutputAreaXYWH(int x, int y, int w, int h) {}
   61.32 +        public void setOutputArea(int[] box) {}
   61.33 +        public void setOutputAreaXYXY(int lox, int loy, int hix, int hiy) {}
   61.34 +    }
   61.35 +
   61.36 +    public static final Region EMPTY_REGION = new ImmutableRegion(0, 0, 0, 0);
   61.37 +    public static final Region WHOLE_REGION = new ImmutableRegion(
   61.38 +            Integer.MIN_VALUE,
   61.39 +            Integer.MIN_VALUE,
   61.40 +            Integer.MAX_VALUE,
   61.41 +            Integer.MAX_VALUE);
   61.42  
   61.43      int lox;
   61.44      int loy;
   61.45 @@ -113,7 +131,7 @@
   61.46          return newv;
   61.47      }
   61.48  
   61.49 -    private Region(int lox, int loy, int hix, int hiy) {
   61.50 +    protected Region(int lox, int loy, int hix, int hiy) {
   61.51          this.lox = lox;
   61.52          this.loy = loy;
   61.53          this.hix = hix;
   61.54 @@ -194,6 +212,13 @@
   61.55      public static Region getInstance(Region devBounds, boolean normalize,
   61.56                                       Shape s, AffineTransform at)
   61.57      {
   61.58 +        // Optimize for empty shapes to avoid involving the SpanIterator
   61.59 +        if (s instanceof RectangularShape &&
   61.60 +                ((RectangularShape)s).isEmpty())
   61.61 +        {
   61.62 +            return EMPTY_REGION;
   61.63 +        }
   61.64 +
   61.65          int box[] = new int[4];
   61.66          ShapeSpanIterator sr = new ShapeSpanIterator(normalize);
   61.67          try {
   61.68 @@ -1206,7 +1231,7 @@
   61.69              return false;
   61.70          }
   61.71          if (r.lox != this.lox || r.loy != this.loy ||
   61.72 -            r.hiy != this.hiy || r.hiy != this.hiy)
   61.73 +            r.hix != this.hix || r.hiy != this.hiy)
   61.74          {
   61.75              return false;
   61.76          }
    62.1 --- a/src/solaris/classes/sun/awt/X11/WindowDimensions.java	Tue Feb 17 09:06:16 2009 -0800
    62.2 +++ b/src/solaris/classes/sun/awt/X11/WindowDimensions.java	Wed Feb 18 10:05:41 2009 -0800
    62.3 @@ -32,10 +32,18 @@
    62.4      private Insets insets;
    62.5      private boolean isClientSizeSet;
    62.6  
    62.7 +    /**
    62.8 +     * If isClient is true, the bounds represent the client window area.
    62.9 +     * Otherwise, they represent the entire window area, with the insets included
   62.10 +     */
   62.11      public WindowDimensions(int x, int y, int width, int height, boolean isClient) {
   62.12          this(new Rectangle(x, y, width, height), null, isClient);
   62.13      }
   62.14  
   62.15 +    /**
   62.16 +     * If isClient is true, the bounds represent the client window area.
   62.17 +     * Otherwise, they represent the entire window area, with the insets included
   62.18 +     */
   62.19      public WindowDimensions(Rectangle rec, Insets ins, boolean isClient) {
   62.20          if (rec == null) {
   62.21              throw new IllegalArgumentException("Client bounds can't be null");
   62.22 @@ -46,10 +54,18 @@
   62.23          setInsets(ins);
   62.24      }
   62.25  
   62.26 +    /**
   62.27 +     * If isClient is true, the bounds represent the client window area.
   62.28 +     * Otherwise, they represent the entire window area, with the insets included
   62.29 +     */
   62.30      public WindowDimensions(Point loc, Dimension size, Insets in, boolean isClient) {
   62.31          this(new Rectangle(loc, size), in, isClient);
   62.32      }
   62.33  
   62.34 +    /**
   62.35 +     * If isClient is true, the bounds represent the client window area.
   62.36 +     * Otherwise, they represent the entire window area, with the insets included
   62.37 +     */
   62.38      public WindowDimensions(Rectangle bounds, boolean isClient) {
   62.39          this(bounds, null, isClient);
   62.40      }
    63.1 --- a/src/solaris/classes/sun/awt/X11/XBaseWindow.java	Tue Feb 17 09:06:16 2009 -0800
    63.2 +++ b/src/solaris/classes/sun/awt/X11/XBaseWindow.java	Wed Feb 18 10:05:41 2009 -0800
    63.3 @@ -979,8 +979,13 @@
    63.4       */
    63.5      public void handleButtonPressRelease(XEvent xev) {
    63.6          XButtonEvent xbe = xev.get_xbutton();
    63.7 -        final int buttonState = xbe.get_state() & (XConstants.Button1Mask | XConstants.Button2Mask
    63.8 -            | XConstants.Button3Mask | XConstants.Button4Mask | XConstants.Button5Mask);
    63.9 +        int buttonState = 0;
   63.10 +        for (int i = 0; i<XToolkit.getNumMouseButtons(); i++){
   63.11 +            // A bug in WM implementation: extra buttons doesn't have state!=0 as they should on Release message.
   63.12 +            if ((i != 4) && (i != 5)){
   63.13 +                buttonState |= (xbe.get_state() & XConstants.buttonsMask[i]);
   63.14 +            }
   63.15 +        }
   63.16          switch (xev.get_type()) {
   63.17          case XConstants.ButtonPress:
   63.18              if (buttonState == 0) {
   63.19 @@ -1011,19 +1016,11 @@
   63.20       * Checks ButtonRelease released all Mouse buttons
   63.21       */
   63.22      static boolean isFullRelease(int buttonState, int button) {
   63.23 -        switch (button) {
   63.24 -        case XConstants.Button1:
   63.25 -            return buttonState == XConstants.Button1Mask;
   63.26 -        case XConstants.Button2:
   63.27 -            return buttonState == XConstants.Button2Mask;
   63.28 -        case XConstants.Button3:
   63.29 -            return buttonState == XConstants.Button3Mask;
   63.30 -        case XConstants.Button4:
   63.31 -            return buttonState == XConstants.Button4Mask;
   63.32 -        case XConstants.Button5:
   63.33 -            return buttonState == XConstants.Button5Mask;
   63.34 +        if (button < 0 || button > XToolkit.getNumMouseButtons()) {
   63.35 +            return buttonState == 0;
   63.36 +        } else {
   63.37 +            return buttonState == XConstants.buttonsMask[button - 1];
   63.38          }
   63.39 -        return buttonState == 0;
   63.40      }
   63.41  
   63.42      static boolean isGrabbedEvent(XEvent ev, XBaseWindow target) {
    64.1 --- a/src/solaris/classes/sun/awt/X11/XComponentPeer.java	Tue Feb 17 09:06:16 2009 -0800
    64.2 +++ b/src/solaris/classes/sun/awt/X11/XComponentPeer.java	Wed Feb 18 10:05:41 2009 -0800
    64.3 @@ -1534,13 +1534,23 @@
    64.4              }
    64.5              XToolkit.awtLock();
    64.6              try {
    64.7 -                XlibWrapper.SetRectangularShape(
    64.8 -                        XToolkit.getDisplay(),
    64.9 -                        getWindow(),
   64.10 -                        shape.getLoX(), shape.getLoY(),
   64.11 -                        shape.getHiX(), shape.getHiY(),
   64.12 -                        (shape.isRectangular() ? null : shape)
   64.13 -                        );
   64.14 +                if (shape != null) {
   64.15 +                    XlibWrapper.SetRectangularShape(
   64.16 +                            XToolkit.getDisplay(),
   64.17 +                            getWindow(),
   64.18 +                            shape.getLoX(), shape.getLoY(),
   64.19 +                            shape.getHiX(), shape.getHiY(),
   64.20 +                            (shape.isRectangular() ? null : shape)
   64.21 +                            );
   64.22 +                } else {
   64.23 +                    XlibWrapper.SetRectangularShape(
   64.24 +                            XToolkit.getDisplay(),
   64.25 +                            getWindow(),
   64.26 +                            0, 0,
   64.27 +                            0, 0,
   64.28 +                            null
   64.29 +                            );
   64.30 +                }
   64.31              } finally {
   64.32                  XToolkit.awtUnlock();
   64.33              }
    65.1 --- a/src/solaris/classes/sun/awt/X11/XConstants.java	Tue Feb 17 09:06:16 2009 -0800
    65.2 +++ b/src/solaris/classes/sun/awt/X11/XConstants.java	Wed Feb 18 10:05:41 2009 -0800
    65.3 @@ -197,12 +197,30 @@
    65.4  
    65.5      /* button masks.  Used in same manner as Key masks above. Not to be confused
    65.6         with button names below. */
    65.7 -
    65.8 -    public static final int Button1Mask = (1<<8) ;
    65.9 -    public static final int Button2Mask = (1<<9) ;
   65.10 -    public static final int Button3Mask = (1<<10) ;
   65.11 -    public static final int Button4Mask = (1<<11) ;
   65.12 -    public static final int Button5Mask = (1<<12) ;
   65.13 +    public static final int [] buttonsMask = new int []{ 1<<8,
   65.14 +                                                         1<<9,
   65.15 +                                                         1<<10,
   65.16 +                                                         1<<11,
   65.17 +                                                         1<<12,
   65.18 +                                                         1<<13,
   65.19 +                                                         1<<14,
   65.20 +                                                         1<<15,
   65.21 +                                                         1<<16,
   65.22 +                                                         1<<17,
   65.23 +                                                         1<<18,
   65.24 +                                                         1<<19,
   65.25 +                                                         1<<20,
   65.26 +                                                         1<<21,
   65.27 +                                                         1<<22,
   65.28 +                                                         1<<23,
   65.29 +                                                         1<<24,
   65.30 +                                                         1<<25,
   65.31 +                                                         1<<26,
   65.32 +                                                         1<<27,
   65.33 +                                                         1<<28,
   65.34 +                                                         1<<29,
   65.35 +                                                         1<<30,
   65.36 +                                                         1<<31 };
   65.37  
   65.38      public static final int AnyModifier = (1<<15) ; /* used in GrabButton, GrabKey */
   65.39  
   65.40 @@ -211,11 +229,7 @@
   65.41         and ButtonRelease events.  Not to be confused with button masks above.
   65.42         Note that 0 is already defined above as "AnyButton".  */
   65.43  
   65.44 -    public static final int Button1 = 1 ;
   65.45 -    public static final int Button2 = 2 ;
   65.46 -    public static final int Button3 = 3 ;
   65.47 -    public static final int Button4 = 4 ;
   65.48 -    public static final int Button5 = 5 ;
   65.49 +    public static final int buttons [] = new int [] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24};
   65.50  
   65.51      /* Notify modes */
   65.52  
    66.1 --- a/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java	Tue Feb 17 09:06:16 2009 -0800
    66.2 +++ b/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java	Wed Feb 18 10:05:41 2009 -0800
    66.3 @@ -492,7 +492,14 @@
    66.4              // do nothing but accept it.
    66.5              Rectangle reqBounds = newDimensions.getBounds();
    66.6              Rectangle newBounds = constrainBounds(reqBounds.x, reqBounds.y, reqBounds.width, reqBounds.height);
    66.7 -            newDimensions = new WindowDimensions(newBounds, newDimensions.getInsets(), newDimensions.isClientSizeSet());
    66.8 +            Insets insets = newDimensions.getInsets();
    66.9 +            // Inherit isClientSizeSet from newDimensions
   66.10 +            if (newDimensions.isClientSizeSet()) {
   66.11 +                newBounds = new Rectangle(newBounds.x, newBounds.y,
   66.12 +                                          newBounds.width - insets.left - insets.right,
   66.13 +                                          newBounds.height - insets.top - insets.bottom);
   66.14 +            }
   66.15 +            newDimensions = new WindowDimensions(newBounds, insets, newDimensions.isClientSizeSet());
   66.16          }
   66.17          XToolkit.awtLock();
   66.18          try {
    67.1 --- a/src/solaris/classes/sun/awt/X11/XDragSourceContextPeer.java	Tue Feb 17 09:06:16 2009 -0800
    67.2 +++ b/src/solaris/classes/sun/awt/X11/XDragSourceContextPeer.java	Wed Feb 18 10:05:41 2009 -0800
    67.3 @@ -694,8 +694,8 @@
    67.4              } finally {
    67.5                  xmotion.dispose();
    67.6              }
    67.7 -            if (xbutton.get_button() == XConstants.Button1
    67.8 -                    || xbutton.get_button() == XConstants.Button2) {
    67.9 +            if (xbutton.get_button() == XConstants.buttons[0]
   67.10 +                || xbutton.get_button() == XConstants.buttons[1]) {
   67.11                  // drag is initiated with Button1 or Button2 pressed and
   67.12                  // ended on release of either of these buttons (as the same
   67.13                  // behavior was with our old Motif DnD-based implementation)
    68.1 --- a/src/solaris/classes/sun/awt/X11/XEmbedClientHelper.java	Tue Feb 17 09:06:16 2009 -0800
    68.2 +++ b/src/solaris/classes/sun/awt/X11/XEmbedClientHelper.java	Wed Feb 18 10:05:41 2009 -0800
    68.3 @@ -31,6 +31,9 @@
    68.4  import java.awt.Component;
    68.5  import java.awt.Container;
    68.6  
    68.7 +import sun.awt.X11GraphicsConfig;
    68.8 +import sun.awt.X11GraphicsDevice;
    68.9 +
   68.10  /**
   68.11   * Helper class implementing XEmbed protocol handling routines(client side)
   68.12   * Window which wants to participate in a protocol should create an instance,
   68.13 @@ -39,20 +42,34 @@
   68.14  public class XEmbedClientHelper extends XEmbedHelper implements XEventDispatcher {
   68.15      private static final Logger xembedLog = Logger.getLogger("sun.awt.X11.xembed.XEmbedClientHelper");
   68.16  
   68.17 -    private XEmbeddedFramePeer embedded;
   68.18 +    private XEmbeddedFramePeer embedded; // XEmbed client
   68.19 +    private long server; // XEmbed server
   68.20 +
   68.21      private boolean active;
   68.22 -    private long server;
   68.23      private boolean applicationActive;
   68.24  
   68.25      XEmbedClientHelper() {
   68.26          super();
   68.27      }
   68.28  
   68.29 -    void install(XEmbeddedFramePeer embedded) {
   68.30 -        this.embedded = embedded;
   68.31 +    void setClient(XEmbeddedFramePeer client) {
   68.32 +        if (xembedLog.isLoggable(Level.FINE)) {
   68.33 +            xembedLog.fine("XEmbed client: " + client);
   68.34 +        }
   68.35 +        if (embedded != null) {
   68.36 +            XToolkit.removeEventDispatcher(embedded.getWindow(), this);
   68.37 +            active = false;
   68.38 +        }
   68.39 +        embedded = client;
   68.40 +        if (embedded != null) {
   68.41 +            XToolkit.addEventDispatcher(embedded.getWindow(), this);
   68.42 +        }
   68.43 +    }
   68.44  
   68.45 -        if (xembedLog.isLoggable(Level.FINE)) xembedLog.fine("Installing xembedder on " + embedded);
   68.46 -        XToolkit.addEventDispatcher(embedded.getWindow(), this);
   68.47 +    void install() {
   68.48 +        if (xembedLog.isLoggable(Level.FINE)) {
   68.49 +            xembedLog.fine("Installing xembedder on " + embedded);
   68.50 +        }
   68.51          long[] info = new long[] { XEMBED_VERSION, XEMBED_MAPPED };
   68.52          long data = Native.card32ToData(info);
   68.53          try {
   68.54 @@ -155,7 +172,24 @@
   68.55      }
   68.56      public void handleReparentNotify(XEvent xev) {
   68.57          XReparentEvent re = xev.get_xreparent();
   68.58 -        server = re.get_parent();
   68.59 +        long newParent = re.get_parent();
   68.60 +        if (active) {
   68.61 +            // unregister accelerators, etc. for old parent
   68.62 +            embedded.notifyStopped();
   68.63 +            // check if newParent is a root window
   68.64 +            X11GraphicsConfig gc = (X11GraphicsConfig)embedded.getGraphicsConfiguration();
   68.65 +            X11GraphicsDevice gd = (X11GraphicsDevice)gc.getDevice();
   68.66 +            if ((newParent == XlibUtil.getRootWindow(gd.getScreen())) ||
   68.67 +                (newParent == XToolkit.getDefaultRootWindow()))
   68.68 +            {
   68.69 +                // reparenting to root means XEmbed termination
   68.70 +                active = false;
   68.71 +            } else {
   68.72 +                // continue XEmbed with a new parent
   68.73 +                server = newParent;
   68.74 +                embedded.notifyStarted();
   68.75 +            }
   68.76 +        }
   68.77      }
   68.78      boolean requestFocus() {
   68.79          if (active && embedded.focusAllowedFor()) {
   68.80 @@ -201,12 +235,16 @@
   68.81      }
   68.82  
   68.83      void registerAccelerator(AWTKeyStroke stroke, int id) {
   68.84 -        long sym = getX11KeySym(stroke);
   68.85 -        long mods = getX11Mods(stroke);
   68.86 -        sendMessage(server, XEMBED_REGISTER_ACCELERATOR, id, sym, mods);
   68.87 +        if (active) {
   68.88 +            long sym = getX11KeySym(stroke);
   68.89 +            long mods = getX11Mods(stroke);
   68.90 +            sendMessage(server, XEMBED_REGISTER_ACCELERATOR, id, sym, mods);
   68.91 +        }
   68.92      }
   68.93      void unregisterAccelerator(int id) {
   68.94 -        sendMessage(server, XEMBED_UNREGISTER_ACCELERATOR, id, 0, 0);
   68.95 +        if (active) {
   68.96 +            sendMessage(server, XEMBED_UNREGISTER_ACCELERATOR, id, 0, 0);
   68.97 +        }
   68.98      }
   68.99  
  68.100      long getX11KeySym(AWTKeyStroke stroke) {
    69.1 --- a/src/solaris/classes/sun/awt/X11/XEmbeddedFramePeer.java	Tue Feb 17 09:06:16 2009 -0800
    69.2 +++ b/src/solaris/classes/sun/awt/X11/XEmbeddedFramePeer.java	Wed Feb 18 10:05:41 2009 -0800
    69.3 @@ -63,7 +63,10 @@
    69.4      void postInit(XCreateWindowParams params) {
    69.5          super.postInit(params);
    69.6          if (embedder != null) {
    69.7 -            embedder.install(this);
    69.8 +            // install X11 event dispatcher
    69.9 +            embedder.setClient(this);
   69.10 +            // reparent to XEmbed server
   69.11 +            embedder.install();
   69.12          } else if (getParentWindowHandle() != 0) {
   69.13              XToolkit.awtLock();
   69.14              try {
   69.15 @@ -77,6 +80,15 @@
   69.16          }
   69.17      }
   69.18  
   69.19 +    @Override
   69.20 +    public void dispose() {
   69.21 +        if (embedder != null) {
   69.22 +            // uninstall X11 event dispatcher
   69.23 +            embedder.setClient(null);
   69.24 +        }
   69.25 +        super.dispose();
   69.26 +    }
   69.27 +
   69.28      public void updateMinimumSize() {
   69.29      }
   69.30  
   69.31 @@ -249,6 +261,14 @@
   69.32          // XEmbed.
   69.33          updateDropTarget();
   69.34      }
   69.35 +    void notifyStopped() {
   69.36 +        if (embedder != null && embedder.isActive()) {
   69.37 +            for (int i = strokes.size() - 1; i >= 0; i--) {
   69.38 +                embedder.unregisterAccelerator(i);
   69.39 +            }
   69.40 +        }
   69.41 +    }
   69.42 +
   69.43      long getFocusTargetWindow() {
   69.44          return getWindow();
   69.45      }
    70.1 --- a/src/solaris/classes/sun/awt/X11/XKeysym.java	Tue Feb 17 09:06:16 2009 -0800
    70.2 +++ b/src/solaris/classes/sun/awt/X11/XKeysym.java	Wed Feb 18 10:05:41 2009 -0800
    70.3 @@ -63,6 +63,8 @@
    70.4      // TODO: or not to do: add reverse lookup javakeycode2keysym,
    70.5      // for robot only it seems to me. After that, we can remove lookup table
    70.6      // from XWindow.c altogether.
    70.7 +    // Another use for reverse lookup: query keyboard state, for some keys.
    70.8 +    static Hashtable<Integer, Long> javaKeycode2KeysymHash = new Hashtable<Integer, Long>();
    70.9      static long keysym_lowercase = unsafe.allocateMemory(Native.getLongSize());
   70.10      static long keysym_uppercase = unsafe.allocateMemory(Native.getLongSize());
   70.11      public static char convertKeysym( long ks, int state ) {
   70.12 @@ -196,6 +198,10 @@
   70.13          Keysym2JavaKeycode jkc = getJavaKeycode( ev );
   70.14          return jkc == null ? java.awt.event.KeyEvent.VK_UNDEFINED : jkc.getJavaKeycode();
   70.15      }
   70.16 +    static long javaKeycode2Keysym( int jkey ) {
   70.17 +        Long ks = javaKeycode2KeysymHash.get( jkey );
   70.18 +        return  (ks == null ? 0 : ks.longValue());
   70.19 +    }
   70.20      /**
   70.21          Return keysym derived from a keycode and modifiers.
   70.22          Usually an input method does this. However non-system input methods (e.g. Java IMs) do not.
   70.23 @@ -1583,6 +1589,14 @@
   70.24          keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.hpXK_mute_asciitilde),     new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_TILDE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
   70.25  
   70.26          keysym2JavaKeycodeHash.put( Long.valueOf(XConstants.NoSymbol),     new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_UNDEFINED, java.awt.event.KeyEvent.KEY_LOCATION_UNKNOWN));
   70.27 +
   70.28 +        /* Reverse search of keysym by keycode. */
   70.29 +
   70.30 +        /* Add keyboard locking codes. */
   70.31 +        javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_CAPS_LOCK, XKeySymConstants.XK_Caps_Lock);
   70.32 +        javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_NUM_LOCK, XKeySymConstants.XK_Num_Lock);
   70.33 +        javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_SCROLL_LOCK, XKeySymConstants.XK_Scroll_Lock);
   70.34 +        javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_KANA_LOCK, XKeySymConstants.XK_Kana_Lock);
   70.35      };
   70.36  
   70.37  }
    71.1 --- a/src/solaris/classes/sun/awt/X11/XRobotPeer.java	Tue Feb 17 09:06:16 2009 -0800
    71.2 +++ b/src/solaris/classes/sun/awt/X11/XRobotPeer.java	Wed Feb 18 10:05:41 2009 -0800
    71.3 @@ -1,5 +1,5 @@
    71.4  /*
    71.5 - * Copyright 2003-2007 Sun Microsystems, Inc.  All Rights Reserved.
    71.6 + * Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
    71.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    71.8   *
    71.9   * This code is free software; you can redistribute it and/or modify it
   71.10 @@ -81,11 +81,16 @@
   71.11          return pixelArray;
   71.12      }
   71.13  
   71.14 +    public int getNumberOfButtons(){
   71.15 +        return getNumberOfButtonsImpl();
   71.16 +    }
   71.17 +
   71.18      private static native synchronized void setup();
   71.19  
   71.20      private static native synchronized void mouseMoveImpl(X11GraphicsConfig xgc, int x, int y);
   71.21      private static native synchronized void mousePressImpl(int buttons);
   71.22      private static native synchronized void mouseReleaseImpl(int buttons);
   71.23 +    private static native synchronized int getNumberOfButtonsImpl();
   71.24      private static native synchronized void mouseWheelImpl(int wheelAmt);
   71.25  
   71.26      private static native synchronized void keyPressImpl(int keycode);
    72.1 --- a/src/solaris/classes/sun/awt/X11/XToolkit.java	Tue Feb 17 09:06:16 2009 -0800
    72.2 +++ b/src/solaris/classes/sun/awt/X11/XToolkit.java	Wed Feb 18 10:05:41 2009 -0800
    72.3 @@ -27,6 +27,7 @@
    72.4  import java.awt.*;
    72.5  import java.awt.event.InputEvent;
    72.6  import java.awt.event.MouseEvent;
    72.7 +import java.awt.event.KeyEvent;
    72.8  import java.awt.datatransfer.Clipboard;
    72.9  import java.awt.dnd.DragSource;
   72.10  import java.awt.dnd.DragGestureListener;
   72.11 @@ -61,6 +62,10 @@
   72.12      private static Logger keyEventLog = Logger.getLogger("sun.awt.X11.kye.XToolkit");
   72.13      private static final Logger backingStoreLog = Logger.getLogger("sun.awt.X11.backingStore.XToolkit");
   72.14  
   72.15 +    //There is 400 ms is set by default on Windows and 500 by default on KDE and GNOME.
   72.16 +    //We use the same hardcoded constant.
   72.17 +    private final static int AWT_MULTICLICK_DEFAULT_TIME = 500;
   72.18 +
   72.19      static final boolean PRIMARY_LOOP = false;
   72.20      static final boolean SECONDARY_LOOP = true;
   72.21  
   72.22 @@ -74,6 +79,25 @@
   72.23      // Dynamic Layout Resize client code setting
   72.24      protected static boolean dynamicLayoutSetting = false;
   72.25  
   72.26 +    //Is it allowed to generate events assigned to extra mouse buttons.
   72.27 +    //Set to true by default.
   72.28 +    private static boolean areExtraMouseButtonsEnabled = true;
   72.29 +
   72.30 +    /**
   72.31 +     * Number of buttons.
   72.32 +     * By default it's taken from the system. If system value does not
   72.33 +     * fit into int type range, use our own MAX_BUTTONS_SUPPORT value.
   72.34 +     */
   72.35 +    private static int numberOfButtons = 0;
   72.36 +
   72.37 +    /* XFree standard mention 24 buttons as maximum:
   72.38 +     * http://www.xfree86.org/current/mouse.4.html
   72.39 +     * We workaround systems supporting more than 24 buttons.
   72.40 +     * Otherwise, we have to use long type values as masks
   72.41 +     * which leads to API change.
   72.42 +     */
   72.43 +    private static int MAX_BUTTONS_SUPPORT = 24;
   72.44 +
   72.45      /**
   72.46       * True when the x settings have been loaded.
   72.47       */
   72.48 @@ -273,6 +297,9 @@
   72.49  
   72.50              arrowCursor = XlibWrapper.XCreateFontCursor(XToolkit.getDisplay(),
   72.51                  XCursorFontConstants.XC_arrow);
   72.52 +            areExtraMouseButtonsEnabled = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons", "true"));
   72.53 +            //set system property if not yet assigned
   72.54 +            System.setProperty("sun.awt.enableExtraMouseButtons", ""+areExtraMouseButtonsEnabled);
   72.55          } finally {
   72.56              awtUnlock();
   72.57          }
   72.58 @@ -1080,6 +1107,19 @@
   72.59      public Map mapInputMethodHighlight(InputMethodHighlight highlight)     {
   72.60          return XInputMethod.mapInputMethodHighlight(highlight);
   72.61      }
   72.62 +    @Override
   72.63 +    public boolean getLockingKeyState(int key) {
   72.64 +        if (! (key == KeyEvent.VK_CAPS_LOCK || key == KeyEvent.VK_NUM_LOCK ||
   72.65 +               key == KeyEvent.VK_SCROLL_LOCK || key == KeyEvent.VK_KANA_LOCK)) {
   72.66 +            throw new IllegalArgumentException("invalid key for Toolkit.getLockingKeyState");
   72.67 +        }
   72.68 +        awtLock();
   72.69 +        try {
   72.70 +            return getModifierState( key );
   72.71 +        } finally {
   72.72 +            awtUnlock();
   72.73 +        }
   72.74 +    }
   72.75  
   72.76      public  Clipboard getSystemClipboard() {
   72.77          SecurityManager security = System.getSecurityManager();
   72.78 @@ -1216,7 +1256,6 @@
   72.79                  String multiclick_time_query = XlibWrapper.XGetDefault(XToolkit.getDisplay(), "*", "multiClickTime");
   72.80                  if (multiclick_time_query != null) {
   72.81                      awt_multiclick_time = (int)Long.parseLong(multiclick_time_query);
   72.82 -    //             awt_multiclick_time = XtGetMultiClickTime(awt_display);
   72.83                  } else {
   72.84                      multiclick_time_query = XlibWrapper.XGetDefault(XToolkit.getDisplay(),
   72.85                                                                      "OpenWindows", "MultiClickTimeout");
   72.86 @@ -1226,20 +1265,19 @@
   72.87                             milliseconds */
   72.88                          awt_multiclick_time = (int)Long.parseLong(multiclick_time_query) * 100;
   72.89                      } else {
   72.90 -                        awt_multiclick_time = 200;
   72.91 -    //                 awt_multiclick_time = XtGetMultiClickTime(awt_display);
   72.92 +                        awt_multiclick_time = AWT_MULTICLICK_DEFAULT_TIME;
   72.93                      }
   72.94                  }
   72.95              } catch (NumberFormatException nf) {
   72.96 -                awt_multiclick_time = 200;
   72.97 +                awt_multiclick_time = AWT_MULTICLICK_DEFAULT_TIME;
   72.98              } catch (NullPointerException npe) {
   72.99 -                awt_multiclick_time = 200;
  72.100 +                awt_multiclick_time = AWT_MULTICLICK_DEFAULT_TIME;
  72.101              }
  72.102          } finally {
  72.103              awtUnlock();
  72.104          }
  72.105          if (awt_multiclick_time == 0) {
  72.106 -            awt_multiclick_time = 200;
  72.107 +            awt_multiclick_time = AWT_MULTICLICK_DEFAULT_TIME;
  72.108          }
  72.109      }
  72.110  
  72.111 @@ -1383,10 +1421,15 @@
  72.112          }
  72.113      }
  72.114  
  72.115 -    private int getNumMouseButtons() {
  72.116 +    public static int getNumMouseButtons() {
  72.117          awtLock();
  72.118          try {
  72.119 -            return XlibWrapper.XGetPointerMapping(XToolkit.getDisplay(), 0, 0);
  72.120 +            if (numberOfButtons == 0) {
  72.121 +                numberOfButtons = Math.min(
  72.122 +                    XlibWrapper.XGetPointerMapping(XToolkit.getDisplay(), 0, 0),
  72.123 +                    MAX_BUTTONS_SUPPORT);
  72.124 +            }
  72.125 +            return numberOfButtons;
  72.126          } finally {
  72.127              awtUnlock();
  72.128          }
  72.129 @@ -1542,6 +1585,66 @@
  72.130              awtUnlock();
  72.131          }
  72.132      }
  72.133 +    static boolean getModifierState( int jkc ) {
  72.134 +        int iKeyMask = 0;
  72.135 +        long ks = XKeysym.javaKeycode2Keysym( jkc );
  72.136 +        int  kc = XlibWrapper.XKeysymToKeycode(getDisplay(), ks);
  72.137 +        if (kc == 0) {
  72.138 +            return false;
  72.139 +        }
  72.140 +        awtLock();
  72.141 +        try {
  72.142 +            XModifierKeymap modmap = new XModifierKeymap(
  72.143 +                 XlibWrapper.XGetModifierMapping(getDisplay()));
  72.144 +
  72.145 +            int nkeys = modmap.get_max_keypermod();
  72.146 +
  72.147 +            long map_ptr = modmap.get_modifiermap();
  72.148 +            for( int k = 0; k < 8; k++ ) {
  72.149 +                for (int i = 0; i < nkeys; ++i) {
  72.150 +                    int keycode = Native.getUByte(map_ptr, k * nkeys + i);
  72.151 +                    if (keycode == 0) {
  72.152 +                        continue; // ignore zero keycode
  72.153 +                    }
  72.154 +                    if (kc == keycode) {
  72.155 +                        iKeyMask = 1 << k;
  72.156 +                        break;
  72.157 +                    }
  72.158 +                }
  72.159 +                if( iKeyMask != 0 ) {
  72.160 +                    break;
  72.161 +                }
  72.162 +            }
  72.163 +            XlibWrapper.XFreeModifiermap(modmap.pData);
  72.164 +            if (iKeyMask == 0 ) {
  72.165 +                return false;
  72.166 +            }
  72.167 +            // Now we know to which modifier is assigned the keycode
  72.168 +            // correspondent to the keysym correspondent to the java
  72.169 +            // keycode. We are going to check a state of this modifier.
  72.170 +            // If a modifier is a weird one, we cannot help it.
  72.171 +            long window = 0;
  72.172 +            try{
  72.173 +                // get any application window
  72.174 +                window = ((Long)(winMap.firstKey())).longValue();
  72.175 +            }catch(NoSuchElementException nex) {
  72.176 +                // get root window
  72.177 +                window = getDefaultRootWindow();
  72.178 +            }
  72.179 +            boolean res = XlibWrapper.XQueryPointer(getDisplay(), window,
  72.180 +                                            XlibWrapper.larg1, //root
  72.181 +                                            XlibWrapper.larg2, //child
  72.182 +                                            XlibWrapper.larg3, //root_x
  72.183 +                                            XlibWrapper.larg4, //root_y
  72.184 +                                            XlibWrapper.larg5, //child_x
  72.185 +                                            XlibWrapper.larg6, //child_y
  72.186 +                                            XlibWrapper.larg7);//mask
  72.187 +            int mask = Native.getInt(XlibWrapper.larg7);
  72.188 +            return ((mask & iKeyMask) != 0);
  72.189 +        } finally {
  72.190 +            awtUnlock();
  72.191 +        }
  72.192 +    }
  72.193  
  72.194      /* Assign meaning - alt, meta, etc. - to X modifiers mod1 ... mod5.
  72.195       * Only consider primary symbols on keycodes attached to modifiers.
  72.196 @@ -2166,4 +2269,8 @@
  72.197      }
  72.198  
  72.199      public static native void setNoisyXErrorHandler();
  72.200 +
  72.201 +    public boolean areExtraMouseButtonsEnabled() throws HeadlessException {
  72.202 +        return areExtraMouseButtonsEnabled;
  72.203 +    }
  72.204  }
    73.1 --- a/src/solaris/classes/sun/awt/X11/XWindow.java	Tue Feb 17 09:06:16 2009 -0800
    73.2 +++ b/src/solaris/classes/sun/awt/X11/XWindow.java	Wed Feb 18 10:05:41 2009 -0800
    73.3 @@ -553,6 +553,10 @@
    73.4      }
    73.5  
    73.6      static int getModifiers(int state, int button, int keyCode) {
    73.7 +        return getModifiers(state, button, keyCode, 0,  false);
    73.8 +    }
    73.9 +
   73.10 +    static int getModifiers(int state, int button, int keyCode, int type, boolean wheel_mouse) {
   73.11          int modifiers = 0;
   73.12  
   73.13          if (((state & XConstants.ShiftMask) != 0) ^ (keyCode == KeyEvent.VK_SHIFT)) {
   73.14 @@ -570,14 +574,23 @@
   73.15          if (((state & XToolkit.modeSwitchMask) != 0) ^ (keyCode == KeyEvent.VK_ALT_GRAPH)) {
   73.16              modifiers |= InputEvent.ALT_GRAPH_DOWN_MASK;
   73.17          }
   73.18 -        if (((state & XConstants.Button1Mask) != 0) ^ (button == MouseEvent.BUTTON1)) {
   73.19 -            modifiers |= InputEvent.BUTTON1_DOWN_MASK;
   73.20 -        }
   73.21 -        if (((state & XConstants.Button2Mask) != 0) ^ (button == MouseEvent.BUTTON2)) {
   73.22 -            modifiers |= InputEvent.BUTTON2_DOWN_MASK;
   73.23 -        }
   73.24 -        if (((state & XConstants.Button3Mask) != 0) ^ (button == MouseEvent.BUTTON3)) {
   73.25 -            modifiers |= InputEvent.BUTTON3_DOWN_MASK;
   73.26 +        //InputEvent.BUTTON_DOWN_MASK array is starting from BUTTON1_DOWN_MASK on index == 0.
   73.27 +        // button currently reflects a real button number and starts from 1. (except NOBUTTON which is zero )
   73.28 +
   73.29 +        /* this is an attempt to refactor button IDs in : MouseEvent, InputEvent, XlibWrapper and XWindow.*/
   73.30 +
   73.31 +        //reflects a button number similar to MouseEvent.BUTTON1, 2, 3 etc.
   73.32 +        for (int i = 0; i < XConstants.buttonsMask.length; i ++){
   73.33 +            //modifier should be added if :
   73.34 +            // 1) current button is now still in PRESSED state (means that user just pressed mouse but not released yet) or
   73.35 +            // 2) if Xsystem reports that "state" represents that button was just released. This only happens on RELEASE with 1,2,3 buttons.
   73.36 +            // ONLY one of these conditions should be TRUE to add that modifier.
   73.37 +            if (((state & XConstants.buttonsMask[i]) != 0) != (button == XConstants.buttons[i])){
   73.38 +                //exclude wheel buttons from adding their numbers as modifiers
   73.39 +                if (!wheel_mouse) {
   73.40 +                    modifiers |= InputEvent.getMaskForButton(i+1);
   73.41 +                }
   73.42 +            }
   73.43          }
   73.44          return modifiers;
   73.45      }
   73.46 @@ -603,17 +616,6 @@
   73.47          return res;
   73.48      }
   73.49  
   73.50 -    private static int getButtonMask(long mouseButton) {
   73.51 -        if (mouseButton == XConstants.Button1) {
   73.52 -            return XConstants.Button1Mask;
   73.53 -        } else if (mouseButton == XConstants.Button2) {
   73.54 -            return XConstants.Button2Mask;
   73.55 -        } else if (mouseButton == XConstants.Button3) {
   73.56 -            return XConstants.Button3Mask;
   73.57 -        }
   73.58 -        return 0;
   73.59 -    }
   73.60 -
   73.61      /**
   73.62       * Returns true if this event is disabled and shouldn't be passed to Java.
   73.63       * Default implementation returns false for all events.
   73.64 @@ -648,7 +650,7 @@
   73.65          boolean popupTrigger = false;
   73.66          int button=0;
   73.67          boolean wheel_mouse = false;
   73.68 -        long lbutton = xbe.get_button();
   73.69 +        int lbutton = xbe.get_button();
   73.70          int type = xev.get_type();
   73.71          when = xbe.get_time();
   73.72          long jWhen = XToolkit.nowMillisUTC_offset(when);
   73.73 @@ -663,7 +665,7 @@
   73.74  
   73.75          if (type == XConstants.ButtonPress) {
   73.76              //Allow this mouse button to generate CLICK event on next ButtonRelease
   73.77 -            mouseButtonClickAllowed |= getButtonMask(lbutton);
   73.78 +            mouseButtonClickAllowed |= XConstants.buttonsMask[lbutton];
   73.79              XWindow lastWindow = (lastWindowRef != null) ? ((XWindow)lastWindowRef.get()):(null);
   73.80              /*
   73.81                 multiclick checking
   73.82 @@ -693,21 +695,22 @@
   73.83              }
   73.84          }
   73.85  
   73.86 -        if (lbutton == XConstants.Button1)
   73.87 -            button = MouseEvent.BUTTON1;
   73.88 -        else if (lbutton ==  XConstants.Button2 )
   73.89 -            button = MouseEvent.BUTTON2;
   73.90 -        else if (lbutton == XConstants.Button3)
   73.91 -            button = MouseEvent.BUTTON3;
   73.92 -        else if (lbutton == XConstants.Button4) {
   73.93 -            button = 4;
   73.94 -            wheel_mouse = true;
   73.95 -        } else if (lbutton == XConstants.Button5) {
   73.96 -            button = 5;
   73.97 +        button = XConstants.buttons[lbutton - 1];
   73.98 +        // 4 and 5 buttons are usually considered assigned to a first wheel
   73.99 +        if (lbutton == XConstants.buttons[3] ||
  73.100 +            lbutton == XConstants.buttons[4]) {
  73.101              wheel_mouse = true;
  73.102          }
  73.103  
  73.104 -        modifiers = getModifiers(xbe.get_state(),button,0);
  73.105 +        // mapping extra buttons to numbers starting from 4.
  73.106 +        if ((button > XConstants.buttons[4]) && (!Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled())){
  73.107 +            return;
  73.108 +        }
  73.109 +
  73.110 +        if (button > XConstants.buttons[4]){
  73.111 +            button -= 2;
  73.112 +        }
  73.113 +        modifiers = getModifiers(xbe.get_state(),button,0, type, wheel_mouse);
  73.114  
  73.115          if (!wheel_mouse) {
  73.116              MouseEvent me = new MouseEvent((Component)getEventSource(),
  73.117 @@ -720,7 +723,7 @@
  73.118              postEventToEventQueue(me);
  73.119  
  73.120              if ((type == XConstants.ButtonRelease) &&
  73.121 -                ((mouseButtonClickAllowed & getButtonMask(lbutton)) != 0) ) // No up-button in the drag-state
  73.122 +                ((mouseButtonClickAllowed & XConstants.buttonsMask[lbutton]) != 0) ) // No up-button in the drag-state
  73.123              {
  73.124                  postEventToEventQueue(me = new MouseEvent((Component)getEventSource(),
  73.125                                                       MouseEvent.MOUSE_CLICKED,
  73.126 @@ -750,7 +753,7 @@
  73.127          /* Update the state variable AFTER the CLICKED event post. */
  73.128          if (type == XConstants.ButtonRelease) {
  73.129              /* Exclude this mouse button from allowed list.*/
  73.130 -            mouseButtonClickAllowed &= ~getButtonMask(lbutton);
  73.131 +            mouseButtonClickAllowed &= ~XConstants.buttonsMask[lbutton];
  73.132          }
  73.133      }
  73.134  
  73.135 @@ -761,7 +764,19 @@
  73.136              return;
  73.137          }
  73.138  
  73.139 -        int mouseKeyState = (xme.get_state() & (XConstants.Button1Mask | XConstants.Button2Mask | XConstants.Button3Mask));
  73.140 +        int mouseKeyState = 0; //(xme.get_state() & (XConstants.buttonsMask[0] | XConstants.buttonsMask[1] | XConstants.buttonsMask[2]));
  73.141 +
  73.142 +        //this doesn't work for extra buttons because Xsystem is sending state==0 for every extra button event.
  73.143 +        // we can't correct it in MouseEvent class as we done it with modifiers, because exact type (DRAG|MOVE)
  73.144 +        // should be passed from XWindow.
  73.145 +        //TODO: eliminate it with some other value obtained w/o AWTLock.
  73.146 +        for (int i = 0; i < XToolkit.getNumMouseButtons(); i++){
  73.147 +            // TODO : here is the bug in WM: extra buttons doesn't have state!=0 as they should.
  73.148 +            if ((i != 4) && (i != 5)) {
  73.149 +                mouseKeyState = mouseKeyState | (xme.get_state() & XConstants.buttonsMask[i]);
  73.150 +            }
  73.151 +        }
  73.152 +
  73.153          boolean isDragging = (mouseKeyState != 0);
  73.154          int mouseEventType = 0;
  73.155  
    74.1 --- a/src/solaris/classes/sun/awt/X11/XWindowPeer.java	Tue Feb 17 09:06:16 2009 -0800
    74.2 +++ b/src/solaris/classes/sun/awt/X11/XWindowPeer.java	Wed Feb 18 10:05:41 2009 -0800
    74.3 @@ -1936,7 +1936,13 @@
    74.4                          new Object[] {xme, isGrabbed(), containsGlobal(xme.get_x_root(), xme.get_y_root())});
    74.5          }
    74.6          if (isGrabbed()) {
    74.7 -            boolean dragging = (xme.get_state() & (XConstants.Button1Mask | XConstants.Button2Mask | XConstants.Button3Mask)) != 0;
    74.8 +            boolean dragging = false;
    74.9 +            for (int i = 0; i<XToolkit.getNumMouseButtons(); i++){
   74.10 +                // here is the bug in WM: extra buttons doesn't have state!=0 as they should.
   74.11 +                if ((i != 4) && (i != 5)){
   74.12 +                    dragging = dragging || ((xme.get_state() & XConstants.buttonsMask[i]) != 0);
   74.13 +                }
   74.14 +            }
   74.15              // When window is grabbed, all events are dispatched to
   74.16              // it.  Retarget them to the corresponding windows (notice
   74.17              // that XBaseWindow.dispatchEvent does the opposite
   74.18 @@ -1990,12 +1996,12 @@
   74.19              try {
   74.20                  grabLog.log(Level.FINER, "  -  Grab event target {0} (press target {1})", new Object[] {target, pressTarget});
   74.21                  if (xbe.get_type() == XConstants.ButtonPress
   74.22 -                    && xbe.get_button() == XConstants.Button1)
   74.23 +                    && xbe.get_button() == XConstants.buttons[0])
   74.24                  {
   74.25                      // need to keep it to retarget mouse release
   74.26                      pressTarget = target;
   74.27                  } else if (xbe.get_type() == XConstants.ButtonRelease
   74.28 -                           && xbe.get_button() == XConstants.Button1
   74.29 +                           && xbe.get_button() == XConstants.buttons[0]
   74.30                             && pressTarget != target)
   74.31                  {
   74.32                      // during grab we do receive mouse release on different component (not on the source
    75.1 --- a/src/solaris/classes/sun/awt/X11/XlibWrapper.java	Tue Feb 17 09:06:16 2009 -0800
    75.2 +++ b/src/solaris/classes/sun/awt/X11/XlibWrapper.java	Wed Feb 18 10:05:41 2009 -0800
    75.3 @@ -485,6 +485,7 @@
    75.4      static native int XdbeEndIdiom(long display);
    75.5      static native int XdbeSwapBuffers(long display, long swap_info, int num_windows);
    75.6  
    75.7 +    static native void XQueryKeymap(long display, long vector);
    75.8      static native long XKeycodeToKeysym(long display, int keycode, int index);
    75.9  
   75.10      static native int XKeysymToKeycode(long display, long keysym);
    76.1 --- a/src/solaris/classes/sun/awt/X11/keysym2ucs.h	Tue Feb 17 09:06:16 2009 -0800
    76.2 +++ b/src/solaris/classes/sun/awt/X11/keysym2ucs.h	Wed Feb 18 10:05:41 2009 -0800
    76.3 @@ -101,6 +101,8 @@
    76.4  tojava     // TODO: or not to do: add reverse lookup javakeycode2keysym,
    76.5  tojava     // for robot only it seems to me. After that, we can remove lookup table
    76.6  tojava     // from XWindow.c altogether.
    76.7 +tojava     // Another use for reverse lookup: query keyboard state, for some keys.
    76.8 +tojava     static Hashtable<Integer, Long> javaKeycode2KeysymHash = new Hashtable<Integer, Long>();
    76.9  tojava     static long keysym_lowercase = unsafe.allocateMemory(Native.getLongSize());
   76.10  tojava     static long keysym_uppercase = unsafe.allocateMemory(Native.getLongSize());
   76.11  tojava     public static char convertKeysym( long ks, int state ) {
   76.12 @@ -234,6 +236,10 @@
   76.13  tojava         Keysym2JavaKeycode jkc = getJavaKeycode( ev );
   76.14  tojava         return jkc == null ? java.awt.event.KeyEvent.VK_UNDEFINED : jkc.getJavaKeycode();
   76.15  tojava     }
   76.16 +tojava     static long javaKeycode2Keysym( int jkey ) {
   76.17 +tojava         Long ks = javaKeycode2KeysymHash.get( jkey );
   76.18 +tojava         return  (ks == null ? 0 : ks.longValue());
   76.19 +tojava     }
   76.20  tojava     /**
   76.21  tojava         Return keysym derived from a keycode and modifiers.
   76.22  tojava         Usually an input method does this. However non-system input methods (e.g. Java IMs) do not.
   76.23 @@ -2634,6 +2640,14 @@
   76.24  tojava         keysym2JavaKeycodeHash.put( Long.valueOf(XKeySymConstants.hpXK_mute_asciitilde),     new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_DEAD_TILDE, java.awt.event.KeyEvent.KEY_LOCATION_STANDARD));
   76.25  tojava
   76.26  tojava         keysym2JavaKeycodeHash.put( Long.valueOf(XConstants.NoSymbol),     new Keysym2JavaKeycode(java.awt.event.KeyEvent.VK_UNDEFINED, java.awt.event.KeyEvent.KEY_LOCATION_UNKNOWN));
   76.27 +tojava
   76.28 +tojava         /* Reverse search of keysym by keycode. */
   76.29 +tojava
   76.30 +tojava         /* Add keyboard locking codes. */
   76.31 +tojava         javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_CAPS_LOCK, XKeySymConstants.XK_Caps_Lock);
   76.32 +tojava         javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_NUM_LOCK, XKeySymConstants.XK_Num_Lock);
   76.33 +tojava         javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_SCROLL_LOCK, XKeySymConstants.XK_Scroll_Lock);
   76.34 +tojava         javaKeycode2KeysymHash.put( java.awt.event.KeyEvent.VK_KANA_LOCK, XKeySymConstants.XK_Kana_Lock);
   76.35  tojava     };
   76.36  tojava
   76.37  tojava }
    77.1 --- a/src/solaris/native/sun/awt/awt_Robot.c	Tue Feb 17 09:06:16 2009 -0800
    77.2 +++ b/src/solaris/native/sun/awt/awt_Robot.c	Wed Feb 18 10:05:41 2009 -0800
    77.3 @@ -1,5 +1,5 @@
    77.4  /*
    77.5 - * Copyright 1999-2006 Sun Microsystems, Inc.  All Rights Reserved.
    77.6 + * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
    77.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    77.8   *
    77.9   * This code is free software; you can redistribute it and/or modify it
   77.10 @@ -54,6 +54,7 @@
   77.11  // 2 would be more correct, however that's how Robot originally worked
   77.12  // and tests start to fail if this value is changed
   77.13  static int32_t num_buttons = 3;
   77.14 +static jint * masks;
   77.15  
   77.16  static int32_t isXTestAvailable() {
   77.17      int32_t major_opcode, first_event, first_error;
   77.18 @@ -208,6 +209,26 @@
   77.19  Java_sun_awt_X11_XRobotPeer_setup (JNIEnv * env, jclass cls) {
   77.20      int32_t xtestAvailable;
   77.21  
   77.22 +// this should be called from XRobotPeer constructor
   77.23 +    jclass inputEventClazz = (*env)->FindClass(env, "java/awt/event/InputEvent");
   77.24 +    jmethodID getButtonDownMasksID = (*env)->GetStaticMethodID(env, inputEventClazz, "getButtonDownMasks", "()[I");
   77.25 +    jintArray obj = (jintArray)(*env)->CallStaticObjectMethod(env, inputEventClazz, getButtonDownMasksID);
   77.26 +    jsize len = (*env)->GetArrayLength(env, obj);
   77.27 +    jint * tmp = (*env)->GetIntArrayElements(env, obj, JNI_FALSE);
   77.28 +
   77.29 +    masks  = (jint *)malloc(sizeof(jint)*len);
   77.30 +    if (masks == (jint *) NULL) {
   77.31 +        JNU_ThrowOutOfMemoryError((JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2), NULL);
   77.32 +        goto finally;
   77.33 +    }
   77.34 +
   77.35 +    int i;
   77.36 +    for (i = 0; i < len; i++) {
   77.37 +        masks[i] = tmp[i];
   77.38 +    }
   77.39 +    (*env)->ReleaseIntArrayElements(env, obj, tmp, 0);
   77.40 +    (*env)->DeleteLocalRef(env, obj);
   77.41 +
   77.42      DTRACE_PRINTLN("RobotPeer: setup()");
   77.43  
   77.44      AWT_LOCK();
   77.45 @@ -221,8 +242,15 @@
   77.46      }
   77.47  
   77.48      getNumButtons();
   77.49 +    finally:
   77.50 +    AWT_UNLOCK();
   77.51 +}
   77.52  
   77.53 -    AWT_UNLOCK();
   77.54 +JNIEXPORT jint JNICALL
   77.55 +Java_sun_awt_X11_XRobotPeer_getNumberOfButtonsImpl(JNIEnv *env,
   77.56 +                                                   jclass cls) {
   77.57 +    // At the moment this routine being called we already should have an initialized num_buttons variable.
   77.58 +    return num_buttons;
   77.59  }
   77.60  
   77.61  JNIEXPORT void JNICALL
   77.62 @@ -348,52 +376,65 @@
   77.63      AWT_UNLOCK();
   77.64  }
   77.65  
   77.66 +/*
   77.67 +  * Function joining the code of mousePressImpl and mouseReleaseImpl
   77.68 +  */
   77.69 +void mouseAction(JNIEnv *env,
   77.70 +                 jclass cls,
   77.71 +                 jint buttonMask,
   77.72 +                 Bool isMousePress)
   77.73 +{
   77.74 +    AWT_LOCK();
   77.75 +
   77.76 +    DTRACE_PRINTLN1("RobotPeer: mouseAction(%i)", buttonMask);
   77.77 +    DTRACE_PRINTLN1("RobotPeer: mouseAction, press = %d", isMousePress);
   77.78 +
   77.79 +    if (buttonMask & java_awt_event_InputEvent_BUTTON1_MASK ||
   77.80 +        buttonMask & java_awt_event_InputEvent_BUTTON1_DOWN_MASK )
   77.81 +    {
   77.82 +        XTestFakeButtonEvent(awt_display, 1, isMousePress, CurrentTime);
   77.83 +    }
   77.84 +    if ((buttonMask & java_awt_event_InputEvent_BUTTON2_MASK ||
   77.85 +         buttonMask & java_awt_event_InputEvent_BUTTON2_DOWN_MASK) &&
   77.86 +        (num_buttons >= 2)) {
   77.87 +        XTestFakeButtonEvent(awt_display, 2, isMousePress, CurrentTime);
   77.88 +    }
   77.89 +    if ((buttonMask & java_awt_event_InputEvent_BUTTON3_MASK ||
   77.90 +         buttonMask & java_awt_event_InputEvent_BUTTON3_DOWN_MASK) &&
   77.91 +        (num_buttons >= 3)) {
   77.92 +        XTestFakeButtonEvent(awt_display, 3, isMousePress, CurrentTime);
   77.93 +    }
   77.94 +
   77.95 +    if (num_buttons > 3){
   77.96 +        int32_t i;
   77.97 +        int32_t button = 0;
   77.98 +        for (i = 3; i<num_buttons; i++){
   77.99 +            if ((buttonMask & masks[i])) {
  77.100 +                // arrays starts from zero index => +1
  77.101 +                // users wants to affect 4 or 5 button but they are assigned
  77.102 +                // to the wheel so => we have to shift it to the right by 2.
  77.103 +                button = i + 3;
  77.104 +                XTestFakeButtonEvent(awt_display, button, isMousePress, CurrentTime);
  77.105 +            }
  77.106 +        }
  77.107 +    }
  77.108 +
  77.109 +    XSync(awt_display, False);
  77.110 +    AWT_UNLOCK();
  77.111 +}
  77.112 +
  77.113  JNIEXPORT void JNICALL
  77.114  Java_sun_awt_X11_XRobotPeer_mousePressImpl (JNIEnv *env,
  77.115                             jclass cls,
  77.116                             jint buttonMask) {
  77.117 -    AWT_LOCK();
  77.118 -
  77.119 -    DTRACE_PRINTLN1("RobotPeer: mousePressImpl(%i)", buttonMask);
  77.120 -
  77.121 -    if (buttonMask & java_awt_event_InputEvent_BUTTON1_MASK) {
  77.122 -        XTestFakeButtonEvent(awt_display, 1, True, CurrentTime);
  77.123 -    }
  77.124 -    if ((buttonMask & java_awt_event_InputEvent_BUTTON2_MASK) &&
  77.125 -        (num_buttons >= 2)) {
  77.126 -        XTestFakeButtonEvent(awt_display, 2, True, CurrentTime);
  77.127 -    }
  77.128 -    if ((buttonMask & java_awt_event_InputEvent_BUTTON3_MASK) &&
  77.129 -        (num_buttons >= 3)) {
  77.130 -        XTestFakeButtonEvent(awt_display, 3, True, CurrentTime);
  77.131 -    }
  77.132 -    XSync(awt_display, False);
  77.133 -
  77.134 -    AWT_UNLOCK();
  77.135 +    mouseAction(env, cls, buttonMask, True);
  77.136  }
  77.137  
  77.138  JNIEXPORT void JNICALL
  77.139  Java_sun_awt_X11_XRobotPeer_mouseReleaseImpl (JNIEnv *env,
  77.140                               jclass cls,
  77.141                               jint buttonMask) {
  77.142 -    AWT_LOCK();
  77.143 -
  77.144 -    DTRACE_PRINTLN1("RobotPeer: mouseReleaseImpl(%i)", buttonMask);
  77.145 -
  77.146 -    if (buttonMask & java_awt_event_InputEvent_BUTTON1_MASK) {
  77.147 -        XTestFakeButtonEvent(awt_display, 1, False, CurrentTime);
  77.148 -    }
  77.149 -    if ((buttonMask & java_awt_event_InputEvent_BUTTON2_MASK) &&
  77.150 -        (num_buttons >= 2)) {
  77.151 -        XTestFakeButtonEvent(awt_display, 2, False, CurrentTime);
  77.152 -    }
  77.153 -    if ((buttonMask & java_awt_event_InputEvent_BUTTON3_MASK) &&
  77.154 -        (num_buttons >= 3)) {
  77.155 -        XTestFakeButtonEvent(awt_display, 3, False, CurrentTime);
  77.156 -    }
  77.157 -    XSync(awt_display, False);
  77.158 -
  77.159 -    AWT_UNLOCK();
  77.160 +    mouseAction(env, cls, buttonMask, False);
  77.161  }
  77.162  
  77.163  JNIEXPORT void JNICALL
    78.1 --- a/src/solaris/native/sun/xawt/XlibWrapper.c	Tue Feb 17 09:06:16 2009 -0800
    78.2 +++ b/src/solaris/native/sun/xawt/XlibWrapper.c	Wed Feb 18 10:05:41 2009 -0800
    78.3 @@ -1641,6 +1641,13 @@
    78.4      AWT_CHECK_HAVE_LOCK();
    78.5      return XdbeSwapBuffers((Display*) jlong_to_ptr(display), (XdbeSwapInfo *) jlong_to_ptr(swap_info), num_windows);
    78.6  }
    78.7 +JNIEXPORT void JNICALL Java_sun_awt_X11_XlibWrapper_XQueryKeymap
    78.8 +(JNIEnv *env, jclass clazz, jlong display, jlong vector)
    78.9 +{
   78.10 +
   78.11 +    AWT_CHECK_HAVE_LOCK();
   78.12 +    XQueryKeymap( (Display *) jlong_to_ptr(display), (char *) jlong_to_ptr(vector));
   78.13 +}
   78.14  
   78.15  JNIEXPORT jlong JNICALL
   78.16  Java_sun_awt_X11_XlibWrapper_XKeycodeToKeysym(JNIEnv *env, jclass clazz,
   78.17 @@ -1911,19 +1918,30 @@
   78.18   jint x1, jint y1, jint x2, jint y2,
   78.19   jobject region)
   78.20  {
   78.21 -    XRectangle rects[256];
   78.22 -    XRectangle *pRect = rects;
   78.23 -    int numrects;
   78.24 -
   78.25      AWT_CHECK_HAVE_LOCK();
   78.26  
   78.27 -    numrects = RegionToYXBandedRectangles(env, x1, y1, x2, y2, region,
   78.28 -            &pRect, 256);
   78.29 +    // If all the params are zeros, the shape must be simply reset.
   78.30 +    // Otherwise, the shape may be not rectangular.
   78.31 +    if (region || x1 || x2 || y1 || y2) {
   78.32 +        XRectangle rects[256];
   78.33 +        XRectangle *pRect = rects;
   78.34  
   78.35 -    XShapeCombineRectangles((Display *)jlong_to_ptr(display), (Window)jlong_to_ptr(window),
   78.36 +        int numrects = RegionToYXBandedRectangles(env, x1, y1, x2, y2, region,
   78.37 +                &pRect, 256);
   78.38 +
   78.39 +        XShapeCombineRectangles((Display *)jlong_to_ptr(display), (Window)jlong_to_ptr(window),
   78.40 +                ShapeClip, 0, 0, pRect, numrects, ShapeSet, YXBanded);
   78.41 +        XShapeCombineRectangles((Display *)jlong_to_ptr(display), (Window)jlong_to_ptr(window),
   78.42                  ShapeBounding, 0, 0, pRect, numrects, ShapeSet, YXBanded);
   78.43  
   78.44 -    if (pRect != rects) {
   78.45 -        free(pRect);
   78.46 +        if (pRect != rects) {
   78.47 +            free(pRect);
   78.48 +        }
   78.49 +    } else {
   78.50 +        // Reset the shape to a rectangular form.
   78.51 +        XShapeCombineMask((Display *)jlong_to_ptr(display), (Window)jlong_to_ptr(window),
   78.52 +                ShapeClip, 0, 0, None, ShapeSet);
   78.53 +        XShapeCombineMask((Display *)jlong_to_ptr(display), (Window)jlong_to_ptr(window),
   78.54 +                ShapeBounding, 0, 0, None, ShapeSet);
   78.55      }
   78.56  }
    79.1 --- a/src/windows/classes/sun/awt/windows/WComponentPeer.java	Tue Feb 17 09:06:16 2009 -0800
    79.2 +++ b/src/windows/classes/sun/awt/windows/WComponentPeer.java	Wed Feb 18 10:05:41 2009 -0800
    79.3 @@ -68,13 +68,6 @@
    79.4      private static final Logger log = Logger.getLogger("sun.awt.windows.WComponentPeer");
    79.5      private static final Logger shapeLog = Logger.getLogger("sun.awt.windows.shape.WComponentPeer");
    79.6  
    79.7 -    static {
    79.8 -        wheelInit();
    79.9 -    }
   79.10 -
   79.11 -    // Only actually does stuff if running on 95
   79.12 -    native static void wheelInit();
   79.13 -
   79.14      // ComponentPeer implementation
   79.15      SurfaceData surfaceData;
   79.16  
   79.17 @@ -964,8 +957,12 @@
   79.18                      + "; SHAPE: " + shape);
   79.19          }
   79.20  
   79.21 -        setRectangularShape(shape.getLoX(), shape.getLoY(), shape.getHiX(), shape.getHiY(),
   79.22 -                (shape.isRectangular() ? null : shape));
   79.23 +        if (shape != null) {
   79.24 +            setRectangularShape(shape.getLoX(), shape.getLoY(), shape.getHiX(), shape.getHiY(),
   79.25 +                    (shape.isRectangular() ? null : shape));
   79.26 +        } else {
   79.27 +            setRectangularShape(0, 0, 0, 0, null);
   79.28 +        }
   79.29      }
   79.30  
   79.31  }
    80.1 --- a/src/windows/classes/sun/awt/windows/WInputMethod.java	Tue Feb 17 09:06:16 2009 -0800
    80.2 +++ b/src/windows/classes/sun/awt/windows/WInputMethod.java	Wed Feb 18 10:05:41 2009 -0800
    80.3 @@ -548,11 +548,15 @@
    80.4  
    80.5      public void inquireCandidatePosition()
    80.6      {
    80.7 +        Component source = getClientComponent();
    80.8 +        if (source == null) {
    80.9 +            return;
   80.10 +        }
   80.11          // This call should return immediately just to cause
   80.12          // InputMethodRequests.getTextLocation be called within
   80.13          // AWT Event thread.  Otherwise, a potential deadlock
   80.14          // could happen.
   80.15 -        java.awt.EventQueue.invokeLater(new Runnable() {
   80.16 +        Runnable r = new Runnable() {
   80.17              public void run() {
   80.18                  int x = 0;
   80.19                  int y = 0;
   80.20 @@ -573,7 +577,9 @@
   80.21  
   80.22                  openCandidateWindow(awtFocussedComponentPeer, x, y);
   80.23              }
   80.24 -        });
   80.25 +        };
   80.26 +        WToolkit.postEvent(WToolkit.targetToAppContext(source),
   80.27 +                           new InvocationEvent(source, r));
   80.28      }
   80.29  
   80.30      // java.awt.Toolkit#getNativeContainer() is not available
    81.1 --- a/src/windows/classes/sun/awt/windows/WRobotPeer.java	Tue Feb 17 09:06:16 2009 -0800
    81.2 +++ b/src/windows/classes/sun/awt/windows/WRobotPeer.java	Wed Feb 18 10:05:41 2009 -0800
    81.3 @@ -1,5 +1,5 @@
    81.4  /*
    81.5 - * Copyright 1998-2006 Sun Microsystems, Inc.  All Rights Reserved.
    81.6 + * Copyright 1998-2008 Sun Microsystems, Inc.  All Rights Reserved.
    81.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    81.8   *
    81.9   * This code is free software; you can redistribute it and/or modify it
   81.10 @@ -60,6 +60,8 @@
   81.11      }
   81.12      public native int getRGBPixelImpl(int x, int y);
   81.13  
   81.14 +    public native int getNumberOfButtons();
   81.15 +
   81.16      public int [] getRGBPixels(Rectangle bounds) {
   81.17          int pixelArray[] = new int[bounds.width*bounds.height];
   81.18          getRGBPixels(bounds.x, bounds.y, bounds.width, bounds.height, pixelArray);
    82.1 --- a/src/windows/classes/sun/awt/windows/WToolkit.java	Tue Feb 17 09:06:16 2009 -0800
    82.2 +++ b/src/windows/classes/sun/awt/windows/WToolkit.java	Wed Feb 18 10:05:41 2009 -0800
    82.3 @@ -80,6 +80,10 @@
    82.4      // Dynamic Layout Resize client code setting
    82.5      protected boolean dynamicLayoutSetting = false;
    82.6  
    82.7 +    //Is it allowed to generate events assigned to extra mouse buttons.
    82.8 +    //Set to true by default.
    82.9 +    private static boolean areExtraMouseButtonsEnabled = true;
   82.10 +
   82.11      /**
   82.12       * Initialize JNI field and method IDs
   82.13       */
   82.14 @@ -249,6 +253,11 @@
   82.15          // Enabled "live resizing" by default.  It remains controlled
   82.16          // by the native system though.
   82.17          setDynamicLayout(true);
   82.18 +
   82.19 +        areExtraMouseButtonsEnabled = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons", "true"));
   82.20 +        //set system property if not yet assigned
   82.21 +        System.setProperty("sun.awt.enableExtraMouseButtons", ""+areExtraMouseButtonsEnabled);
   82.22 +        setExtraMouseButtonsEnabledNative(areExtraMouseButtonsEnabled);
   82.23      }
   82.24  
   82.25      public void run() {
   82.26 @@ -961,4 +970,9 @@
   82.27          return new WDesktopPeer();
   82.28      }
   82.29  
   82.30 +    public static native void setExtraMouseButtonsEnabledNative(boolean enable);
   82.31 +
   82.32 +    public boolean areExtraMouseButtonsEnabled() throws HeadlessException {
   82.33 +        return areExtraMouseButtonsEnabled;
   82.34 +    }
   82.35  }
    83.1 --- a/src/windows/native/sun/awt/splashscreen/splashscreen_sys.c	Tue Feb 17 09:06:16 2009 -0800
    83.2 +++ b/src/windows/native/sun/awt/splashscreen/splashscreen_sys.c	Wed Feb 18 10:05:41 2009 -0800
    83.3 @@ -1,5 +1,5 @@
    83.4  /*
    83.5 - * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
    83.6 + * Copyright 2005-2008 Sun Microsystems, Inc.  All Rights Reserved.
    83.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    83.8   *
    83.9   * This code is free software; you can redistribute it and/or modify it
   83.10 @@ -23,24 +23,21 @@
   83.11   * have any questions.
   83.12   */
   83.13  
   83.14 +// copy from awt.h
   83.15 +#ifndef _WIN32_WINNT
   83.16 +#define _WIN32_WINNT 0x0600
   83.17 +#endif
   83.18 +
   83.19 +// copy from awt.h
   83.20 +#ifndef _WIN32_IE
   83.21 +#define _WIN32_IE 0x0600
   83.22 +#endif
   83.23 +
   83.24  #include "splashscreen_impl.h"
   83.25  #include <windowsx.h>
   83.26  #include <windows.h>
   83.27  #include <winuser.h>
   83.28  
   83.29 -/* layered windows api prototypes. wouldn't be needed if we could use an updated version of the MS PSDK. */
   83.30 -
   83.31 -typedef BOOL WINAPI UpdateLayeredWindowT(HWND hwnd,     // handle to layered window
   83.32 -                                         HDC hdcDst,    // handle to screen DC
   83.33 -                                         POINT * pptDst,        // new screen position
   83.34 -                                         SIZE * psize,  // new size of the layered window
   83.35 -                                         HDC hdcSrc,    // handle to surface DC
   83.36 -                                         POINT * pptSrc,        // layer position
   83.37 -                                         COLORREF crKey,        // color key
   83.38 -                                         BLENDFUNCTION * pblend,        // blend function
   83.39 -                                         DWORD dwFlags  // options
   83.40 -    );
   83.41 -
   83.42  #ifndef WS_EX_LAYERED
   83.43  #define WS_EX_LAYERED 0x80000
   83.44  #endif
   83.45 @@ -57,21 +54,6 @@
   83.46  #define AC_SRC_ALPHA                0x01
   83.47  #endif
   83.48  
   83.49 -static UpdateLayeredWindowT *UpdateLayeredWindow = NULL;
   83.50 -
   83.51 -/*      Get/SetWindowLongPtr prototypes, for the case we're compiling with old headers for a 32-bit platform
   83.52 -        copied from Component.cpp
   83.53 -        FIXME: remove this as soon as the build process is using up-to-date headers */
   83.54 -#if !defined(__int3264)
   83.55 -#define GetWindowLongPtr GetWindowLong
   83.56 -#define SetWindowLongPtr SetWindowLong
   83.57 -#define GWLP_USERDATA GWL_USERDATA
   83.58 -#define GWLP_WNDPROC  GWL_WNDPROC
   83.59 -typedef __int32 LONG_PTR;
   83.60 -typedef unsigned __int32 ULONG_PTR;
   83.61 -#endif // __int3264
   83.62 -
   83.63 -
   83.64  #define WM_SPLASHUPDATE         WM_USER+1
   83.65  #define WM_SPLASHRECONFIGURE    WM_USER+2
   83.66  
   83.67 @@ -436,16 +418,11 @@
   83.68  void
   83.69  SplashInitPlatform(Splash * splash)
   83.70  {
   83.71 -    HMODULE user32 = LoadLibrary("user32.dll");
   83.72      HDC hdc;
   83.73      int paletteMode;
   83.74  
   83.75      InitializeCriticalSection(&splash->lock);
   83.76      splash->isLayered = FALSE;
   83.77 -    if (user32) {
   83.78 -        UpdateLayeredWindow = (UpdateLayeredWindowT *)
   83.79 -            GetProcAddress(user32, "UpdateLayeredWindow");
   83.80 -    }
   83.81      hdc = GetDC(NULL);
   83.82      paletteMode = (GetDeviceCaps(hdc, RASTERCAPS) & RC_PALETTE) != 0;
   83.83      if (UpdateLayeredWindow && !paletteMode) {
    84.1 --- a/src/windows/native/sun/java2d/d3d/D3DPipelineManager.cpp	Tue Feb 17 09:06:16 2009 -0800
    84.2 +++ b/src/windows/native/sun/java2d/d3d/D3DPipelineManager.cpp	Wed Feb 18 10:05:41 2009 -0800
    84.3 @@ -184,7 +184,7 @@
    84.4      pMgr = D3DPipelineManager::GetInstance();
    84.5      RETURN_IF_NULL(pMgr);
    84.6      hMon = pMgr->pd3d9->GetAdapterMonitor(adapter);
    84.7 -    gdiScreen = AwtWin32GraphicsDevice::GetScreenFromMHND((MHND)hMon);
    84.8 +    gdiScreen = AwtWin32GraphicsDevice::GetScreenFromHMONITOR(hMon);
    84.9  
   84.10      JNU_CallStaticMethodByName(env, NULL,
   84.11          "sun/java2d/pipe/hw/AccelDeviceEventNotifier",
   84.12 @@ -194,21 +194,21 @@
   84.13  
   84.14  UINT D3DPipelineManager::GetAdapterOrdinalForScreen(jint gdiScreen)
   84.15  {
   84.16 -    MHND mHnd = AwtWin32GraphicsDevice::GetMonitor(gdiScreen);
   84.17 -    if (mHnd == (MHND)0) {
   84.18 +    HMONITOR mHnd = AwtWin32GraphicsDevice::GetMonitor(gdiScreen);
   84.19 +    if (mHnd == (HMONITOR)0) {
   84.20          return D3DADAPTER_DEFAULT;
   84.21      }
   84.22      return GetAdapterOrdinalByHmon((HMONITOR)mHnd);
   84.23  }
   84.24  
   84.25  // static
   84.26 -HRESULT D3DPipelineManager::HandleAdaptersChange(HMONITOR *pMHNDs, UINT monNum)
   84.27 +HRESULT D3DPipelineManager::HandleAdaptersChange(HMONITOR *pHMONITORs, UINT monNum)
   84.28  {
   84.29      HRESULT res = S_OK;
   84.30      BOOL bResetD3D = FALSE, bFound;
   84.31  
   84.32      D3DPipelineManager *pMgr = D3DPipelineManager::GetInstance();
   84.33 -    RETURN_STATUS_IF_NULL(pMHNDs, E_FAIL);
   84.34 +    RETURN_STATUS_IF_NULL(pHMONITORs, E_FAIL);
   84.35      if (pMgr == NULL) {
   84.36          // NULL pMgr is valid when the pipeline is not enabled or if it hasn't
   84.37          // been created yet
   84.38 @@ -234,7 +234,7 @@
   84.39              }
   84.40              bFound = FALSE;
   84.41              for (UINT mon = 0; mon < monNum; mon++) {
   84.42 -                if (pMHNDs[mon] == hMon) {
   84.43 +                if (pHMONITORs[mon] == hMon) {
   84.44                      J2dTraceLn3(J2D_TRACE_VERBOSE,
   84.45                              "  adapter %d: found hmnd[%d]=0x%x", i, mon, hMon);
   84.46                      bFound = TRUE;
   84.47 @@ -364,8 +364,8 @@
   84.48  HRESULT
   84.49  D3DPipelineManager::GDICheckForBadHardware()
   84.50  {
   84.51 -    _DISPLAY_DEVICE dd;
   84.52 -    dd.dwSize = sizeof(DISPLAY_DEVICE);
   84.53 +    DISPLAY_DEVICE dd;
   84.54 +    dd.cb = sizeof(DISPLAY_DEVICE);
   84.55  
   84.56      int failedDevices = 0;
   84.57      int attachedDevices = 0;
   84.58 @@ -379,9 +379,9 @@
   84.59  
   84.60      // i<20 is to guard against buggy drivers
   84.61      while (EnumDisplayDevices(NULL, i, &dd, 0) && i < 20) {
   84.62 -        if (dd.dwFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP) {
   84.63 +        if (dd.StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP) {
   84.64              attachedDevices++;
   84.65 -            id = dd.deviceID;
   84.66 +            id = dd.DeviceID;
   84.67              if (wcslen(id) > 21) {
   84.68                  // get vendor ID
   84.69                  wcsncpy(vendorId, id+8, 4);
   84.70 @@ -796,7 +796,7 @@
   84.71      ZeroMemory(&mi, sizeof(MONITORINFO));
   84.72      mi.cbSize = sizeof(MONITORINFO);
   84.73      HMONITOR hMon = pd3d9->GetAdapterMonitor(adapterOrdinal);
   84.74 -    if (hMon == 0 || !GetMonitorInfo(hMon, (PMONITOR_INFO)&mi)) {
   84.75 +    if (hMon == 0 || !GetMonitorInfo(hMon, (LPMONITORINFO)&mi)) {
   84.76          J2dRlsTraceLn1(J2D_TRACE_ERROR,
   84.77              "D3DPPLM::CreateDefaultFocusWindow: "\
   84.78              "error getting monitor info for adapter=%d", adapterOrdinal);
    85.1 --- a/src/windows/native/sun/java2d/d3d/D3DRenderQueue.cpp	Tue Feb 17 09:06:16 2009 -0800
    85.2 +++ b/src/windows/native/sun/java2d/d3d/D3DRenderQueue.cpp	Wed Feb 18 10:05:41 2009 -0800
    85.3 @@ -23,8 +23,8 @@
    85.4   * have any questions.
    85.5   */
    85.6  
    85.7 +#include "D3DPipeline.h"
    85.8  #include <malloc.h>
    85.9 -#include <jni.h>
   85.10  #include "sun_java2d_pipe_BufferedOpCodes.h"
   85.11  
   85.12  #include "jlong.h"
    86.1 --- a/src/windows/native/sun/java2d/d3d/D3DRenderer.cpp	Tue Feb 17 09:06:16 2009 -0800
    86.2 +++ b/src/windows/native/sun/java2d/d3d/D3DRenderer.cpp	Wed Feb 18 10:05:41 2009 -0800
    86.3 @@ -23,6 +23,8 @@
    86.4   * have any questions.
    86.5   */
    86.6  
    86.7 +#include "D3DPipeline.h"
    86.8 +
    86.9  #include "sun_java2d_d3d_D3DRenderer.h"
   86.10  
   86.11  #include "D3DContext.h"
    87.1 --- a/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp	Tue Feb 17 09:06:16 2009 -0800
    87.2 +++ b/src/windows/native/sun/java2d/d3d/D3DSurfaceData.cpp	Wed Feb 18 10:05:41 2009 -0800
    87.3 @@ -23,8 +23,7 @@
    87.4   * have any questions.
    87.5   */
    87.6  
    87.7 -#include <jni.h>
    87.8 -#include <jni_util.h>
    87.9 +#include "D3DPipeline.h"
   87.10  #include <jlong.h>
   87.11  #include "D3DSurfaceData.h"
   87.12  #include "D3DPipelineManager.h"
    88.1 --- a/src/windows/native/sun/java2d/windows/GDIBlitLoops.cpp	Tue Feb 17 09:06:16 2009 -0800
    88.2 +++ b/src/windows/native/sun/java2d/windows/GDIBlitLoops.cpp	Wed Feb 18 10:05:41 2009 -0800
    88.3 @@ -23,6 +23,7 @@
    88.4   * have any questions.
    88.5   */
    88.6  
    88.7 +#include "awt.h"
    88.8  #include <sun_java2d_windows_GDIBlitLoops.h>
    88.9  #include "gdefs.h"
   88.10  #include "Trace.h"
    89.1 --- a/src/windows/native/sun/java2d/windows/GDIRenderer.cpp	Tue Feb 17 09:06:16 2009 -0800
    89.2 +++ b/src/windows/native/sun/java2d/windows/GDIRenderer.cpp	Wed Feb 18 10:05:41 2009 -0800
    89.3 @@ -23,6 +23,7 @@
    89.4   * have any questions.
    89.5   */
    89.6  
    89.7 +#include "awt.h"
    89.8  #include "sun_java2d_windows_GDIRenderer.h"
    89.9  #include "java_awt_geom_PathIterator.h"
   89.10  
   89.11 @@ -31,11 +32,8 @@
   89.12  #include "awt_Pen.h"
   89.13  #include "awt_Brush.h"
   89.14  
   89.15 -#include "jni.h"
   89.16 -
   89.17  #include "GraphicsPrimitiveMgr.h"
   89.18  
   89.19 -#include <windows.h>
   89.20  #include <math.h>                /* for cos(), sin(), etc */
   89.21  
   89.22  #define MAX_CLAMP_BND (1<<26)
    90.1 --- a/src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.cpp	Tue Feb 17 09:06:16 2009 -0800
    90.2 +++ b/src/windows/native/sun/java2d/windows/GDIWindowSurfaceData.cpp	Wed Feb 18 10:05:41 2009 -0800
    90.3 @@ -246,7 +246,7 @@
    90.4      }
    90.5      if( numScreens > 1 ) {
    90.6  
    90.7 -        MONITOR_INFO *miInfo;
    90.8 +        LPMONITORINFO miInfo;
    90.9          RECT rSect ={0,0,0,0};
   90.10          RECT rView ={bounds->x1, bounds->y1, bounds->x2, bounds->y2};
   90.11          retCode = FALSE;
   90.12 @@ -258,7 +258,7 @@
   90.13          ::OffsetRect(&rView,
   90.14              (ptOrig.x), (ptOrig.y));
   90.15  
   90.16 -        ::IntersectRect(&rSect,&rView,&(miInfo->rMonitor));
   90.17 +        ::IntersectRect(&rSect,&rView,&(miInfo->rcMonitor));
   90.18  
   90.19          if( FALSE == ::IsRectEmpty(&rSect) ) {
   90.20              if( TRUE == ::EqualRect(&rSect,&rView) ) {
    91.1 --- a/src/windows/native/sun/java2d/windows/WindowsFlags.cpp	Tue Feb 17 09:06:16 2009 -0800
    91.2 +++ b/src/windows/native/sun/java2d/windows/WindowsFlags.cpp	Wed Feb 18 10:05:41 2009 -0800
    91.3 @@ -23,8 +23,6 @@
    91.4   * have any questions.
    91.5   */
    91.6  
    91.7 -
    91.8 -#include <jni.h>
    91.9  #include <awt.h>
   91.10  #include "Trace.h"
   91.11  #include "WindowsFlags.h"
    92.1 --- a/src/windows/native/sun/windows/ComCtl32Util.cpp	Tue Feb 17 09:06:16 2009 -0800
    92.2 +++ b/src/windows/native/sun/windows/ComCtl32Util.cpp	Wed Feb 18 10:05:41 2009 -0800
    92.3 @@ -23,54 +23,26 @@
    92.4   * have any questions.
    92.5   */
    92.6  
    92.7 +#include "awt.h"
    92.8  #include "ComCtl32Util.h"
    92.9  
   92.10  ComCtl32Util::ComCtl32Util() {
   92.11 -    hModComCtl32 = NULL;
   92.12 -    m_bNewSubclassing = FALSE;
   92.13 -
   92.14 -    m_lpfnSetWindowSubclass = NULL;
   92.15 -    m_lpfnRemoveWindowSubclass = NULL;
   92.16 -    m_lpfnDefSubclassProc = NULL;
   92.17  }
   92.18  
   92.19  ComCtl32Util::~ComCtl32Util() {
   92.20 -  DASSERT(hModComCtl32 == NULL);
   92.21  }
   92.22  
   92.23  void ComCtl32Util::InitLibraries() {
   92.24 -    if (hModComCtl32 == NULL) {
   92.25 -        hModComCtl32 = ::LoadLibrary(TEXT("comctl32.dll"));
   92.26 -        if (hModComCtl32 != NULL) {
   92.27 -            m_lpfnSetWindowSubclass = (PFNSETWINDOWSUBCLASS)::GetProcAddress(hModComCtl32, "SetWindowSubclass");
   92.28 -            m_lpfnRemoveWindowSubclass = (PFNREMOVEWINDOWSUBCLASS)::GetProcAddress(hModComCtl32, "RemoveWindowSubclass");
   92.29 -            m_lpfnDefSubclassProc = (PFNDEFSUBCLASSPROC)::GetProcAddress(hModComCtl32, "DefSubclassProc");
   92.30 -
   92.31 -            m_bNewSubclassing = (m_lpfnSetWindowSubclass != NULL) &&
   92.32 -                                (m_lpfnRemoveWindowSubclass != NULL) &&
   92.33 -                                (m_lpfnDefSubclassProc != NULL);
   92.34 -
   92.35 -            fn_InitCommonControlsEx = (ComCtl32Util::InitCommonControlsExType)::GetProcAddress(hModComCtl32, "InitCommonControlsEx");
   92.36 -            InitCommonControls();
   92.37 -        }
   92.38 -    }
   92.39 -}
   92.40 -
   92.41 -void ComCtl32Util::FreeLibraries() {
   92.42 -    if (hModComCtl32 != NULL) {
   92.43 -        m_lpfnSetWindowSubclass = NULL;
   92.44 -        m_lpfnRemoveWindowSubclass = NULL;
   92.45 -        m_lpfnDefSubclassProc = NULL;
   92.46 -        ::FreeLibrary(hModComCtl32);
   92.47 -        hModComCtl32 = NULL;
   92.48 -    }
   92.49 +    INITCOMMONCONTROLSEX iccex;
   92.50 +    memset(&iccex, 0, sizeof(INITCOMMONCONTROLSEX));
   92.51 +    iccex.dwSize = sizeof(INITCOMMONCONTROLSEX);
   92.52 +    ::InitCommonControlsEx(&iccex);
   92.53  }
   92.54  
   92.55  WNDPROC ComCtl32Util::SubclassHWND(HWND hwnd, WNDPROC _WindowProc) {
   92.56 -    if (m_bNewSubclassing) {
   92.57 -        DASSERT(hModComCtl32 != NULL);
   92.58 +    if (IS_WINXP) {
   92.59          const SUBCLASSPROC p = SharedWindowProc; // let compiler check type of SharedWindowProc
   92.60 -        m_lpfnSetWindowSubclass(hwnd, p, (UINT_PTR)_WindowProc, NULL); // _WindowProc is used as subclass ID
   92.61 +        ::SetWindowSubclass(hwnd, p, (UINT_PTR)_WindowProc, NULL); // _WindowProc is used as subclass ID
   92.62          return NULL;
   92.63      } else {
   92.64          return (WNDPROC)::SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR)_WindowProc);
   92.65 @@ -78,21 +50,17 @@
   92.66  }
   92.67  
   92.68  void ComCtl32Util::UnsubclassHWND(HWND hwnd, WNDPROC _WindowProc, WNDPROC _DefWindowProc) {
   92.69 -    if (m_bNewSubclassing) {
   92.70 -        DASSERT(hModComCtl32 != NULL);
   92.71 -        DASSERT(_DefWindowProc == NULL);
   92.72 +    if (IS_WINXP) {
   92.73          const SUBCLASSPROC p = SharedWindowProc; // let compiler check type of SharedWindowProc
   92.74 -        m_lpfnRemoveWindowSubclass(hwnd, p, (UINT_PTR)_WindowProc); // _WindowProc is used as subclass ID
   92.75 +        ::RemoveWindowSubclass(hwnd, p, (UINT_PTR)_WindowProc); // _WindowProc is used as subclass ID
   92.76      } else {
   92.77          ::SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR)_DefWindowProc);
   92.78      }
   92.79  }
   92.80  
   92.81  LRESULT ComCtl32Util::DefWindowProc(WNDPROC _DefWindowProc, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
   92.82 -    if (m_bNewSubclassing) {
   92.83 -        DASSERT(hModComCtl32 != NULL);
   92.84 -        DASSERT(_DefWindowProc == NULL);
   92.85 -        return m_lpfnDefSubclassProc(hwnd, msg, wParam, lParam);
   92.86 +    if (IS_WINXP) {
   92.87 +        return ::DefSubclassProc(hwnd, msg, wParam, lParam);
   92.88      } else if (_DefWindowProc != NULL) {
   92.89          return ::CallWindowProc(_DefWindowProc, hwnd, msg, wParam, lParam);
   92.90      } else {
   92.91 @@ -111,15 +79,3 @@
   92.92  
   92.93      CATCH_BAD_ALLOC_RET(0);
   92.94  }
   92.95 -
   92.96 -void ComCtl32Util::InitCommonControls()
   92.97 -{
   92.98 -    if (fn_InitCommonControlsEx == NULL) {
   92.99 -        return;
  92.100 -    }
  92.101 -
  92.102 -    INITCOMMONCONTROLSEX iccex;
  92.103 -    memset(&iccex, 0, sizeof(INITCOMMONCONTROLSEX));
  92.104 -    iccex.dwSize = sizeof(INITCOMMONCONTROLSEX);
  92.105 -    fn_InitCommonControlsEx(&iccex);
  92.106 -}
    93.1 --- a/src/windows/native/sun/windows/ComCtl32Util.h	Tue Feb 17 09:06:16 2009 -0800
    93.2 +++ b/src/windows/native/sun/windows/ComCtl32Util.h	Wed Feb 18 10:05:41 2009 -0800
    93.3 @@ -30,20 +30,6 @@
    93.4  #ifndef _COMCTL32UTIL_H
    93.5  #define _COMCTL32UTIL_H
    93.6  
    93.7 -
    93.8 -/*
    93.9 - * comctl32.dll version 6 subclassing - taken from PlatformSDK/Include/commctrl.h
   93.10 - */
   93.11 -typedef LRESULT (CALLBACK *SUBCLASSPROC)(HWND hWnd, UINT uMsg, WPARAM wParam, \
   93.12 -    LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData);
   93.13 -
   93.14 -typedef BOOL (WINAPI *PFNSETWINDOWSUBCLASS)(HWND hWnd, SUBCLASSPROC pfnSubclass, UINT_PTR uIdSubclass, \
   93.15 -    DWORD_PTR dwRefData);
   93.16 -typedef BOOL (WINAPI *PFNREMOVEWINDOWSUBCLASS)(HWND hWnd, SUBCLASSPROC pfnSubclass, \
   93.17 -    UINT_PTR uIdSubclass);
   93.18 -
   93.19 -typedef LRESULT (WINAPI *PFNDEFSUBCLASSPROC)(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
   93.20 -
   93.21  class ComCtl32Util
   93.22  {
   93.23      public:
   93.24 @@ -52,21 +38,8 @@
   93.25              return theInstance;
   93.26          }
   93.27  
   93.28 -        // loads comctl32.dll and checks if required routines are available
   93.29 -        // called from AwtToolkit::AwtToolkit()
   93.30          void InitLibraries();
   93.31 -        // unloads comctl32.dll
   93.32 -        // called from AwtToolkit::Dispose()
   93.33 -        void FreeLibraries();
   93.34  
   93.35 -        //-- comctl32.dll version 6 subclassing API --//
   93.36 -
   93.37 -        INLINE BOOL IsNewSubclassing() {
   93.38 -            return m_bNewSubclassing;
   93.39 -        }
   93.40 -
   93.41 -        // if comctl32.dll version 6 is used returns NULL, otherwise
   93.42 -        // returns default window proc
   93.43          WNDPROC SubclassHWND(HWND hwnd, WNDPROC _WindowProc);
   93.44          // DefWindowProc is the same as returned from SubclassHWND
   93.45          void UnsubclassHWND(HWND hwnd, WNDPROC _WindowProc, WNDPROC _DefWindowProc);
   93.46 @@ -77,19 +50,6 @@
   93.47          ComCtl32Util();
   93.48          ~ComCtl32Util();
   93.49  
   93.50 -        HMODULE hModComCtl32;
   93.51 -
   93.52 -        PFNSETWINDOWSUBCLASS m_lpfnSetWindowSubclass;
   93.53 -        PFNREMOVEWINDOWSUBCLASS m_lpfnRemoveWindowSubclass;
   93.54 -        PFNDEFSUBCLASSPROC m_lpfnDefSubclassProc;
   93.55 -
   93.56 -        typedef BOOL (WINAPI * InitCommonControlsExType)(const LPINITCOMMONCONTROLSEX lpInitCtrls);
   93.57 -        InitCommonControlsExType fn_InitCommonControlsEx;
   93.58 -
   93.59 -        void InitCommonControls();
   93.60 -
   93.61 -        BOOL m_bNewSubclassing;
   93.62 -
   93.63          // comctl32.dll version 6 window proc
   93.64          static LRESULT CALLBACK SharedWindowProc(HWND hwnd, UINT message,
   93.65                                                   WPARAM wParam, LPARAM lParam,
    94.1 --- a/src/windows/native/sun/windows/Devices.cpp	Tue Feb 17 09:06:16 2009 -0800
    94.2 +++ b/src/windows/native/sun/windows/Devices.cpp	Wed Feb 18 10:05:41 2009 -0800
    94.3 @@ -83,9 +83,83 @@
    94.4  
    94.5  #include "Devices.h"
    94.6  #include "Trace.h"
    94.7 -#include "awt_Multimon.h"
    94.8  #include "D3DPipelineManager.h"
    94.9  
   94.10 +
   94.11 +/* Some helper functions (from awt_MMStub.h/cpp) */
   94.12 +
   94.13 +int g_nMonitorCounter;
   94.14 +int g_nMonitorLimit;
   94.15 +HMONITOR* g_hmpMonitors;
   94.16 +
   94.17 +// Callback for CountMonitors below
   94.18 +BOOL WINAPI clb_fCountMonitors(HMONITOR hMon, HDC hDC, LPRECT rRect, LPARAM lP)
   94.19 +{
   94.20 +    g_nMonitorCounter ++;
   94.21 +    return TRUE;
   94.22 +}
   94.23 +
   94.24 +int WINAPI CountMonitors(void)
   94.25 +{
   94.26 +    g_nMonitorCounter = 0;
   94.27 +    ::EnumDisplayMonitors(NULL, NULL, clb_fCountMonitors, 0L);
   94.28 +    return g_nMonitorCounter;
   94.29 +
   94.30 +}
   94.31 +
   94.32 +// Callback for CollectMonitors below
   94.33 +BOOL WINAPI clb_fCollectMonitors(HMONITOR hMon, HDC hDC, LPRECT rRect, LPARAM lP)
   94.34 +{
   94.35 +
   94.36 +    if ((g_nMonitorCounter < g_nMonitorLimit) && (NULL != g_hmpMonitors)) {
   94.37 +        g_hmpMonitors[g_nMonitorCounter] = hMon;
   94.38 +        g_nMonitorCounter ++;
   94.39 +    }
   94.40 +
   94.41 +    return TRUE;
   94.42 +}
   94.43 +
   94.44 +int WINAPI CollectMonitors(HMONITOR* hmpMonitors, int nNum)
   94.45 +{
   94.46 +    int retCode = 0;
   94.47 +
   94.48 +    if (NULL != hmpMonitors) {
   94.49 +
   94.50 +        g_nMonitorCounter   = 0;
   94.51 +        g_nMonitorLimit     = nNum;
   94.52 +        g_hmpMonitors       = hmpMonitors;
   94.53 +
   94.54 +        ::EnumDisplayMonitors(NULL, NULL, clb_fCollectMonitors, 0L);
   94.55 +
   94.56 +        retCode             = g_nMonitorCounter;
   94.57 +
   94.58 +        g_nMonitorCounter   = 0;
   94.59 +        g_nMonitorLimit     = 0;
   94.60 +        g_hmpMonitors       = NULL;
   94.61 +
   94.62 +    }
   94.63 +    return retCode;
   94.64 +}
   94.65 +
   94.66 +BOOL WINAPI MonitorBounds(HMONITOR hmMonitor, RECT* rpBounds)
   94.67 +{
   94.68 +    BOOL retCode = FALSE;
   94.69 +
   94.70 +    if ((NULL != hmMonitor) && (NULL != rpBounds)) {
   94.71 +        MONITORINFOEX miInfo;
   94.72 +
   94.73 +        memset((void*)(&miInfo), 0, sizeof(MONITORINFOEX));
   94.74 +        miInfo.cbSize = sizeof(MONITORINFOEX);
   94.75 +
   94.76 +        if (TRUE == (retCode = ::GetMonitorInfo(hmMonitor, &miInfo))) {
   94.77 +            (*rpBounds) = miInfo.rcMonitor;
   94.78 +        }
   94.79 +    }
   94.80 +    return retCode;
   94.81 +}
   94.82 +
   94.83 +/* End of helper functions */
   94.84 +
   94.85  Devices* Devices::theInstance = NULL;
   94.86  CriticalSection Devices::arrayLock;
   94.87  
   94.88 @@ -113,9 +187,9 @@
   94.89  {
   94.90      J2dTraceLn(J2D_TRACE_INFO, "Devices::UpdateInstance");
   94.91  
   94.92 -    int numScreens = ::CountMonitors();
   94.93 -    MHND *monHds = (MHND *)safe_Malloc(numScreens * sizeof(MHND));
   94.94 -    if (numScreens != ::CollectMonitors(monHds, numScreens)) {
   94.95 +    int numScreens = CountMonitors();
   94.96 +    HMONITOR *monHds = (HMONITOR *)safe_Malloc(numScreens * sizeof(HMONITOR));
   94.97 +    if (numScreens != CollectMonitors(monHds, numScreens)) {
   94.98          J2dRlsTraceLn(J2D_TRACE_ERROR,
   94.99                        "Devices::UpdateInstance: Failed to get all "\
  94.100                        "monitor handles.");
    95.1 --- a/src/windows/native/sun/windows/Devices.h	Tue Feb 17 09:06:16 2009 -0800
    95.2 +++ b/src/windows/native/sun/windows/Devices.h	Wed Feb 18 10:05:41 2009 -0800
    95.3 @@ -1,5 +1,5 @@
    95.4  /*
    95.5 - * Copyright 2001-2006 Sun Microsystems, Inc.  All Rights Reserved.
    95.6 + * Copyright 2001-2008 Sun Microsystems, Inc.  All Rights Reserved.
    95.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    95.8   *
    95.9   * This code is free software; you can redistribute it and/or modify it
   95.10 @@ -70,4 +70,8 @@
   95.11  
   95.12  };
   95.13  
   95.14 +// Some helper functions (from awt_MMStub.h/cpp)
   95.15 +
   95.16 +BOOL WINAPI MonitorBounds (HMONITOR, RECT*);
   95.17 +
   95.18  #endif _DEVICES_H_
    96.1 --- a/src/windows/native/sun/windows/GDIHashtable.cpp	Tue Feb 17 09:06:16 2009 -0800
    96.2 +++ b/src/windows/native/sun/windows/GDIHashtable.cpp	Wed Feb 18 10:05:41 2009 -0800
    96.3 @@ -1,5 +1,5 @@
    96.4  /*
    96.5 - * Copyright 1999-2005 Sun Microsystems, Inc.  All Rights Reserved.
    96.6 + * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
    96.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    96.8   *
    96.9   * This code is free software; you can redistribute it and/or modify it
   96.10 @@ -25,7 +25,6 @@
   96.11  
   96.12  #include "GDIHashtable.h"
   96.13  #include "awt_GDIObject.h"
   96.14 -#include "awt_dlls.h"
   96.15  
   96.16  GDIHashtable::BatchDestructionManager GDIHashtable::manager;
   96.17  
   96.18 @@ -46,7 +45,6 @@
   96.19          DASSERT(value != NULL);
   96.20          m_deleteProc(value);
   96.21      }
   96.22 -    manager.update();
   96.23  }
   96.24  
   96.25  void GDIHashtable::flush() {
   96.26 @@ -128,9 +126,6 @@
   96.27      }
   96.28  }
   96.29  
   96.30 -#undef GFSR_GDIRESOURCES
   96.31 -#define GFSR_GDIRESOURCES     0x0001
   96.32 -
   96.33  GDIHashtable::BatchDestructionManager::BatchDestructionManager(UINT nFirstThreshold,
   96.34                                                                 UINT nSecondThreshold,
   96.35                                                                 UINT nDestroyPeriod) :
   96.36 @@ -138,48 +133,6 @@
   96.37    m_nSecondThreshold(nSecondThreshold),
   96.38    m_nDestroyPeriod(nDestroyPeriod),
   96.39    m_nCounter(0),
   96.40 -  m_bBatchingEnabled(TRUE) {
   96.41 -    load_rsrc32_procs();
   96.42 +  m_bBatchingEnabled(TRUE)
   96.43 +{
   96.44  }
   96.45 -
   96.46 -void GDIHashtable::BatchDestructionManager::update() {
   96.47 -
   96.48 -    if (get_free_system_resources != NULL) {
   96.49 -
   96.50 -        CriticalSection::Lock l(m_managerLock);
   96.51 -
   96.52 -        if (m_nCounter < 0) {
   96.53 -            UINT nFreeResources = (*get_free_system_resources)(GFSR_GDIRESOURCES);
   96.54 -            /*
   96.55 -             * If m_bBatchingEnabled is FALSE there is no need
   96.56 -             * to flush since we have been destroying all
   96.57 -             * GDI resources as soon as they were released.
   96.58 -             */
   96.59 -            if (m_bBatchingEnabled) {
   96.60 -                if (nFreeResources < m_nFirstThreshold) {
   96.61 -                    flushAll();
   96.62 -                    nFreeResources = (*get_free_system_resources)(GFSR_GDIRESOURCES);
   96.63 -                }
   96.64 -            }
   96.65 -            if (nFreeResources < m_nSecondThreshold) {
   96.66 -                m_bBatchingEnabled = FALSE;
   96.67 -                m_nCounter = m_nDestroyPeriod;
   96.68 -            } else {
   96.69 -                m_bBatchingEnabled = TRUE;
   96.70 -                /*
   96.71 -                 * The frequency of checks must depend on the currect amount
   96.72 -                 * of free space in GDI heaps. Otherwise we can run into the
   96.73 -                 * Resource Meter warning dialog when GDI resources are low.
   96.74 -                 * This is a heuristic rule that provides this dependency.
   96.75 -                 * These numbers have been chosen because:
   96.76 -                 * Resource Meter posts a warning dialog when less than 10%
   96.77 -                 * of GDI resources are free.
   96.78 -                 * 5 pens/brushes take 1%. So 3 is the upper bound.
   96.79 -                 * When changing this rule you should check that performance
   96.80 -                 * isn't affected (with Caffeine Mark and JMark).
   96.81 -                 */
   96.82 -                m_nCounter = (nFreeResources - 10) * 3;
   96.83 -            }
   96.84 -        }
   96.85 -    }
   96.86 -}
    97.1 --- a/src/windows/native/sun/windows/GDIHashtable.h	Tue Feb 17 09:06:16 2009 -0800
    97.2 +++ b/src/windows/native/sun/windows/GDIHashtable.h	Wed Feb 18 10:05:41 2009 -0800
    97.3 @@ -1,5 +1,5 @@
    97.4  /*
    97.5 - * Copyright 1999 Sun Microsystems, Inc.  All Rights Reserved.
    97.6 + * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
    97.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    97.8   *
    97.9   * This code is free software; you can redistribute it and/or modify it
   97.10 @@ -151,12 +151,6 @@
   97.11           */
   97.12          INLINE void decrementCounter() { m_nCounter--; }
   97.13  
   97.14 -        /**
   97.15 -         * Depending on the amount of free space in GDI heaps flushes
   97.16 -         * all GDIHashtables and sets the initial counter value.
   97.17 -         */
   97.18 -        void update();
   97.19 -
   97.20          INLINE CriticalSection& getLock() { return m_managerLock; }
   97.21      };
   97.22  
    98.1 --- a/src/windows/native/sun/windows/ShellFolder2.cpp	Tue Feb 17 09:06:16 2009 -0800
    98.2 +++ b/src/windows/native/sun/windows/ShellFolder2.cpp	Wed Feb 18 10:05:41 2009 -0800
    98.3 @@ -1,5 +1,5 @@
    98.4  /*
    98.5 - * Copyright 2003-2006 Sun Microsystems, Inc.  All Rights Reserved.
    98.6 + * Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
    98.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    98.8   *
    98.9   * This code is free software; you can redistribute it and/or modify it
   98.10 @@ -31,17 +31,27 @@
   98.11  // This file should stand independent of AWT and should ultimately be
   98.12  // put into its own DLL.
   98.13  #include <awt.h>
   98.14 -#endif
   98.15 +#else
   98.16 +// Include jni_util.h first, so JNU_* macros can be redefined
   98.17 +#include "jni_util.h"
   98.18 +// Borrow some macros from awt.h
   98.19 +#define JNU_NewStringPlatform(env, x) env->NewString(reinterpret_cast<jchar*>(x), static_cast<jsize>(_tcslen(x)))
   98.20 +#define JNU_GetStringPlatformChars(env, x, y) reinterpret_cast<LPCWSTR>(env->GetStringChars(x, y))
   98.21 +#define JNU_ReleaseStringPlatformChars(env, x, y) env->ReleaseStringChars(x, reinterpret_cast<const jchar*>(y))
   98.22 +#endif // DEBUG
   98.23  
   98.24  #include <windows.h>
   98.25  #include <shlobj.h>
   98.26  #include <shellapi.h>
   98.27 -#include "jni_util.h"
   98.28  #include "jlong.h"
   98.29  #include "alloc.h"
   98.30  
   98.31  #include "stdhdrs.h"
   98.32 -#include "UnicowsLoader.h"
   98.33 +
   98.34 +// Copy from shlguid.h which is no longer in PlatformSDK
   98.35 +#ifndef DEFINE_SHLGUID
   98.36 +#define DEFINE_SHLGUID(name, l, w1, w2) DEFINE_GUID(name, l, w1, w2, 0xC0, 0, 0, 0, 0, 0, 0, 0x46)
   98.37 +#endif
   98.38  
   98.39  // {93F2F68C-1D1B-11d3-A30E-00C04F79ABD1}
   98.40  DEFINE_GUID(IID_IShellFolder2, 0x93f2f68c, 0x1d1b, 0x11d3, 0xa3, 0xe, 0x0, 0xc0, 0x4f, 0x79, 0xab, 0xd1);
   98.41 @@ -86,13 +96,15 @@
   98.42  static IMalloc* pMalloc;
   98.43  static IShellFolder* pDesktop;
   98.44  
   98.45 -static BOOL isXP;
   98.46 -
   98.47 -// copied from awt.h, because it is not included in release
   98.48 -#if defined (WIN32)
   98.49 -    #define IS_WINVISTA (!(::GetVersion() & 0x80000000) && LOBYTE(LOWORD(::GetVersion())) >= 6)
   98.50 -#else
   98.51 -    #define IS_WINVISTA FALSE
   98.52 +// Some macros from awt.h, because it is not included in release
   98.53 +#ifndef IS_WIN2000
   98.54 +#define IS_WIN2000 (LOBYTE(LOWORD(::GetVersion())) >= 5)
   98.55 +#endif
   98.56 +#ifndef IS_WINXP
   98.57 +#define IS_WINXP ((IS_WIN2000 && HIBYTE(LOWORD(::GetVersion())) >= 1) || LOBYTE(LOWORD(::GetVersion())) > 5)
   98.58 +#endif
   98.59 +#ifndef IS_WINVISTA
   98.60 +#define IS_WINVISTA (!(::GetVersion() & 0x80000000) && LOBYTE(LOWORD(::GetVersion())) >= 6)
   98.61  #endif
   98.62  
   98.63  
   98.64 @@ -103,7 +115,6 @@
   98.65      static HMODULE libShell32 = NULL;
   98.66      static HMODULE libUser32 = NULL;
   98.67      static HMODULE libComCtl32 = NULL;
   98.68 -    static HMODULE libUnicows = UnicowsLoader::GetModuleHandle();
   98.69      // If already initialized, return TRUE
   98.70      if (libShell32 != NULL && libUser32 != NULL) {
   98.71          return TRUE;
   98.72 @@ -130,7 +141,7 @@
   98.73  
   98.74      // Set up procs - libShell32
   98.75          fn_FindExecutable = (FindExecutableType)GetProcAddress(
   98.76 -                (libUnicows ? libUnicows : libShell32), "FindExecutableW");
   98.77 +                libShell32, "FindExecutableW");
   98.78      if (fn_FindExecutable == NULL) {
   98.79          return FALSE;
   98.80      }
   98.81 @@ -140,7 +151,7 @@
   98.82          return FALSE;
   98.83      }
   98.84          fn_SHGetFileInfo = (SHGetFileInfoType)GetProcAddress(
   98.85 -                (libUnicows ? libUnicows : libShell32), "SHGetFileInfoW");
   98.86 +                libShell32, "SHGetFileInfoW");
   98.87      if (fn_SHGetFileInfo == NULL) {
   98.88          return FALSE;
   98.89      }
   98.90 @@ -154,7 +165,7 @@
   98.91          return FALSE;
   98.92      }
   98.93          fn_SHGetPathFromIDList = (SHGetPathFromIDListType)GetProcAddress(
   98.94 -                (libUnicows ? libUnicows : libShell32), "SHGetPathFromIDListW");
   98.95 +                libShell32, "SHGetPathFromIDListW");
   98.96      if (fn_SHGetPathFromIDList == NULL) {
   98.97          return FALSE;
   98.98      }
   98.99 @@ -181,19 +192,19 @@
  98.100  static jstring jstringFromSTRRET(JNIEnv* env, LPITEMIDLIST pidl, STRRET* pStrret) {
  98.101      switch (pStrret->uType) {
  98.102          case STRRET_CSTR :
  98.103 -            return JNU_NewStringPlatform(env, pStrret->cStr);
  98.104 +            return JNU_NewStringPlatform(env, reinterpret_cast<const char*>(pStrret->cStr));
  98.105          case STRRET_OFFSET :
  98.106              // Note : this may need to be WCHAR instead
  98.107              return JNU_NewStringPlatform(env,
  98.108                                           (CHAR*)pidl + pStrret->uOffset);
  98.109          case STRRET_WSTR :
  98.110 -            return env->NewString(pStrret->pOleStr,
  98.111 +            return env->NewString(reinterpret_cast<const jchar*>(pStrret->pOleStr),
  98.112                  static_cast<jsize>(wcslen(pStrret->pOleStr)));
  98.113      }
  98.114      return NULL;
  98.115  }
  98.116  // restoring the original definition
  98.117 -#define JNU_NewStringPlatform(env, x) env->NewString(x, static_cast<jsize>(_tcslen(x)))
  98.118 +#define JNU_NewStringPlatform(env, x) env->NewString(reinterpret_cast<jchar*>(x), static_cast<jsize>(_tcslen(x)))
  98.119  
  98.120  /*
  98.121   * Class:     sun_awt_shell_Win32ShellFolder2
  98.122 @@ -212,13 +223,6 @@
  98.123      MID_relativePIDL = env->GetMethodID(cls, "setRelativePIDL", "(J)V");
  98.124      FID_displayName = env->GetFieldID(cls, "displayName", "Ljava/lang/String;");
  98.125      FID_folderType = env->GetFieldID(cls, "folderType", "Ljava/lang/String;");
  98.126 -
  98.127 -    // Find out if we are on XP or later
  98.128 -    long version = GetVersion();
  98.129 -    isXP = (!(version & 0x80000000) &&
  98.130 -            (LOBYTE(LOWORD(version)) == 5 &&
  98.131 -             HIBYTE(LOWORD(version)) >= 1) ||
  98.132 -            LOBYTE(LOWORD(version)) > 5);
  98.133  }
  98.134  
  98.135  static IShellIcon* getIShellIcon(IShellFolder* pIShellFolder) {
  98.136 @@ -669,46 +673,24 @@
  98.137      if (!CoInit(doCoUninit)) {
  98.138          return 0;
  98.139      }
  98.140 -    if (IS_NT) {
  98.141 -        IShellLinkW* psl;
  98.142 -        hres = ::CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLinkW, (LPVOID *)&psl);
  98.143 +    IShellLinkW* psl;
  98.144 +    hres = ::CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLinkW, (LPVOID *)&psl);
  98.145 +    if (SUCCEEDED(hres)) {
  98.146 +        IPersistFile* ppf;
  98.147 +        hres = psl->QueryInterface(IID_IPersistFile, (void**)&ppf);
  98.148          if (SUCCEEDED(hres)) {
  98.149 -            IPersistFile* ppf;
  98.150 -            hres = psl->QueryInterface(IID_IPersistFile, (void**)&ppf);
  98.151 +            hres = ppf->Load(wstr, STGM_READ);
  98.152              if (SUCCEEDED(hres)) {
  98.153 -                hres = ppf->Load(wstr, STGM_READ);
  98.154 -                if (SUCCEEDED(hres)) {
  98.155 -                    if (resolve) {
  98.156 -                        hres = psl->Resolve(NULL, 0);
  98.157 -                        // Ignore failure
  98.158 -                    }
  98.159 -                    pidl = (LPITEMIDLIST)NULL;
  98.160 -                    hres = psl->GetIDList(&pidl);
  98.161 +                if (resolve) {
  98.162 +                    hres = psl->Resolve(NULL, 0);
  98.163 +                    // Ignore failure
  98.164                  }
  98.165 -                ppf->Release();
  98.166 +                pidl = (LPITEMIDLIST)NULL;
  98.167 +                hres = psl->GetIDList(&pidl);
  98.168              }
  98.169 -            psl->Release();
  98.170 +            ppf->Release();
  98.171          }
  98.172 -    } else {
  98.173 -        IShellLinkA* psl;
  98.174 -        hres = ::CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLinkA, (LPVOID *)&psl);
  98.175 -        if (SUCCEEDED(hres)) {
  98.176 -            IPersistFile* ppf;
  98.177 -            hres = psl->QueryInterface(IID_IPersistFile, (void**)&ppf);
  98.178 -            if (SUCCEEDED(hres)) {
  98.179 -                hres = ppf->Load(wstr, STGM_READ);
  98.180 -                if (SUCCEEDED(hres)) {
  98.181 -                    if (resolve) {
  98.182 -                        hres = psl->Resolve(NULL, 0);
  98.183 -                        // Ignore failure
  98.184 -                    }
  98.185 -                    pidl = (LPITEMIDLIST)NULL;
  98.186 -                    hres = psl->GetIDList(&pidl);
  98.187 -                }
  98.188 -                ppf->Release();
  98.189 -            }
  98.190 -            psl->Release();
  98.191 -        }
  98.192 +        psl->Release();
  98.193      }
  98.194      if (doCoUninit) {
  98.195          ::CoUninitialize();
  98.196 @@ -742,10 +724,10 @@
  98.197      int nLength = env->GetStringLength(jname);
  98.198      jchar* wszPath = new jchar[nLength + 1];
  98.199      const jchar* strPath = env->GetStringChars(jname, NULL);
  98.200 -    wcsncpy(wszPath, strPath, nLength);
  98.201 +    wcsncpy(reinterpret_cast<LPWSTR>(wszPath), reinterpret_cast<LPCWSTR>(strPath), nLength);
  98.202      wszPath[nLength] = 0;
  98.203      HRESULT res = pIShellFolder->ParseDisplayName(NULL, NULL,
  98.204 -                        const_cast<jchar*>(wszPath), NULL, &pIDL, NULL);
  98.205 +                        reinterpret_cast<LPWSTR>(wszPath), NULL, &pIDL, NULL);
  98.206      if (res != S_OK) {
  98.207          JNU_ThrowIOException(env, "Could not parse name");
  98.208          pIDL = 0;
  98.209 @@ -804,7 +786,7 @@
  98.210      (JNIEnv* env, jobject folder, jstring path)
  98.211  {
  98.212      TCHAR szBuf[MAX_PATH];
  98.213 -    LPCTSTR szPath = (LPCTSTR)JNU_GetStringPlatformChars(env, path, NULL);
  98.214 +    LPCTSTR szPath = JNU_GetStringPlatformChars(env, path, NULL);
  98.215      if (szPath == NULL) {
  98.216          return NULL;
  98.217      }
  98.218 @@ -827,7 +809,7 @@
  98.219  {
  98.220      HICON hIcon = NULL;
  98.221      SHFILEINFO fileInfo;
  98.222 -    LPCTSTR pathStr = (LPCTSTR)JNU_GetStringPlatformChars(env, absolutePath, NULL);
  98.223 +    LPCTSTR pathStr = JNU_GetStringPlatformChars(env, absolutePath, NULL);
  98.224      if (fn_SHGetFileInfo(pathStr, 0L, &fileInfo, sizeof(fileInfo),
  98.225                           SHGFI_ICON | (getLargeIcon ? 0 : SHGFI_SMALLICON)) != 0) {
  98.226          hIcon = fileInfo.hIcon;
  98.227 @@ -890,52 +872,27 @@
  98.228      }
  98.229  
  98.230      HRESULT hres;
  98.231 -    if (IS_NT) {
  98.232 -        IExtractIconW* pIcon;
  98.233 -        hres = pIShellFolder->GetUIObjectOf(NULL, 1, const_cast<LPCITEMIDLIST*>(&pidl),
  98.234 +    IExtractIconW* pIcon;
  98.235 +    hres = pIShellFolder->GetUIObjectOf(NULL, 1, const_cast<LPCITEMIDLIST*>(&pidl),
  98.236                                          IID_IExtractIconW, NULL, (void**)&pIcon);
  98.237 +    if (SUCCEEDED(hres)) {
  98.238 +        WCHAR szBuf[MAX_PATH];
  98.239 +        INT index;
  98.240 +        UINT flags;
  98.241 +        hres = pIcon->GetIconLocation(GIL_FORSHELL, szBuf, MAX_PATH, &index, &flags);
  98.242          if (SUCCEEDED(hres)) {
  98.243 -            WCHAR szBuf[MAX_PATH];
  98.244 -            INT index;
  98.245 -            UINT flags;
  98.246 -            hres = pIcon->GetIconLocation(GIL_FORSHELL, szBuf, MAX_PATH, &index, &flags);
  98.247 +            HICON hIconLarge;
  98.248 +            hres = pIcon->Extract(szBuf, index, &hIconLarge, &hIcon, (16 << 16) + 32);
  98.249              if (SUCCEEDED(hres)) {
  98.250 -                HICON hIconLarge;
  98.251 -                hres = pIcon->Extract(szBuf, index, &hIconLarge, &hIcon, (16 << 16) + 32);
  98.252 -                if (SUCCEEDED(hres)) {
  98.253 -                    if (getLargeIcon) {
  98.254 -                        fn_DestroyIcon((HICON)hIcon);
  98.255 -                        hIcon = hIconLarge;
  98.256 -                    } else {
  98.257 -                        fn_DestroyIcon((HICON)hIconLarge);
  98.258 -                    }
  98.259 +                if (getLargeIcon) {
  98.260 +                    fn_DestroyIcon((HICON)hIcon);
  98.261 +                    hIcon = hIconLarge;
  98.262 +                } else {
  98.263 +                    fn_DestroyIcon((HICON)hIconLarge);
  98.264                  }
  98.265              }
  98.266 -            pIcon->Release();
  98.267          }
  98.268 -    } else {
  98.269 -        IExtractIconA* pIcon;
  98.270 -        hres = pIShellFolder->GetUIObjectOf(NULL, 1, const_cast<LPCITEMIDLIST*>(&pidl),
  98.271 -                                        IID_IExtractIconA, NULL, (void**)&pIcon);
  98.272 -        if (SUCCEEDED(hres)) {
  98.273 -            CHAR szBuf[MAX_PATH];
  98.274 -            INT index;
  98.275 -            UINT flags;
  98.276 -            hres = pIcon->GetIconLocation(GIL_FORSHELL, szBuf, MAX_PATH, &index, &flags);
  98.277 -            if (SUCCEEDED(hres)) {
  98.278 -                HICON hIconLarge;
  98.279 -                hres = pIcon->Extract(szBuf, index, &hIconLarge, &hIcon, (16 << 16) + 32);
  98.280 -                if (SUCCEEDED(hres)) {
  98.281 -                    if (getLargeIcon) {
  98.282 -                        fn_DestroyIcon((HICON)hIcon);
  98.283 -                        hIcon = hIconLarge;
  98.284 -                    } else {
  98.285 -                        fn_DestroyIcon((HICON)hIconLarge);
  98.286 -                    }
  98.287 -                }
  98.288 -            }
  98.289 -            pIcon->Release();
  98.290 -        }
  98.291 +        pIcon->Release();
  98.292      }
  98.293      if (doCoUninit) {
  98.294          ::CoUninitialize();
  98.295 @@ -987,7 +944,7 @@
  98.296              // XP supports alpha in some icons, and depending on device.
  98.297              // This should take precedence over the icon mask bits.
  98.298              BOOL hasAlpha = FALSE;
  98.299 -            if (isXP) {
  98.300 +            if (IS_WINXP) {
  98.301                  for (int i = 0; i < nBits; i++) {
  98.302                      if ((colorBits[i] & 0xff000000) != 0) {
  98.303                          hasAlpha = TRUE;
  98.304 @@ -1127,9 +1084,9 @@
  98.305      (JNIEnv* env, jclass cls, jstring libName, jint iconID,
  98.306       jint cxDesired, jint cyDesired, jboolean useVGAColors)
  98.307  {
  98.308 -    HINSTANCE libHandle = LoadLibrary(env->GetStringChars(libName, NULL));
  98.309 +    HINSTANCE libHandle = LoadLibrary(JNU_GetStringPlatformChars(env, libName, NULL));
  98.310      if (libHandle != NULL) {
  98.311 -        UINT fuLoad = (useVGAColors && !isXP) ? LR_VGACOLOR : 0;
  98.312 +        UINT fuLoad = (useVGAColors && !IS_WINXP) ? LR_VGACOLOR : 0;
  98.313          return ptr_to_jlong(LoadImage(libHandle, MAKEINTRESOURCE(iconID),
  98.314                                        IMAGE_ICON, cxDesired, cyDesired,
  98.315                                        fuLoad));
    99.1 --- a/src/windows/native/sun/windows/UnicowsLoader.cpp	Tue Feb 17 09:06:16 2009 -0800
    99.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    99.3 @@ -1,430 +0,0 @@
    99.4 -/*
    99.5 - * Copyright 2003-2005 Sun Microsystems, Inc.  All Rights Reserved.
    99.6 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    99.7 - *
    99.8 - * This code is free software; you can redistribute it and/or modify it
    99.9 - * under the terms of the GNU General Public License version 2 only, as
   99.10 - * published by the Free Software Foundation.  Sun designates this
   99.11 - * particular file as subject to the "Classpath" exception as provided
   99.12 - * by Sun in the LICENSE file that accompanied this code.
   99.13 - *
   99.14 - * This code is distributed in the hope that it will be useful, but WITHOUT
   99.15 - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   99.16 - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   99.17 - * version 2 for more details (a copy is included in the LICENSE file that
   99.18 - * accompanied this code).
   99.19 - *
   99.20 - * You should have received a copy of the GNU General Public License version
   99.21 - * 2 along with this work; if not, write to the Free Software Foundation,
   99.22 - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   99.23 - *
   99.24 - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   99.25 - * CA 95054 USA or visit www.sun.com if you need additional information or
   99.26 - * have any questions.
   99.27 - */
   99.28 -
   99.29 -#include <float.h>
   99.30 -#include "alloc.h"
   99.31 -#include "UnicowsLoader.h"
   99.32 -
   99.33 -/*
   99.34 - * Support functions for the Microsoft Layer for Unicode (MSLU).
   99.35 - *
   99.36 - * The MSLU maps the wide char version of Windows APIs with strings
   99.37 - * to their ANSI version equivalent on Win98/ME platforms.
   99.38 - *
   99.39 - * For more details on the MSLU, please refer to the MSDN webpage at:
   99.40 - * http://msdn.microsoft.com/library/default.asp?url=/library/en-us/mslu/winprog/microsoft_layer_for_unicode_on_windows_95_98_me_systems.asp
   99.41 - */
   99.42 -
   99.43 -// The MSLU module handle.  Only initialized on Win9x/ME.
   99.44 -HMODULE UnicowsLoader::hmodUnicows = NULL;
   99.45 -
   99.46 -// MSLU loader entry point, which is called when the module
   99.47 -// is initialized.
   99.48 -extern "C" HMODULE (__stdcall *_PfnLoadUnicows)(void) =
   99.49 -        &UnicowsLoader::LoadUnicows;
   99.50 -
   99.51 -// Overriede APIs that are not supported by MSLU.
   99.52 -extern "C" FARPROC Unicows_GetPrinterW =
   99.53 -        (FARPROC)&UnicowsLoader::GetPrinterWImpl;
   99.54 -extern "C" FARPROC Unicows_EnumPrintersW =
   99.55 -        (FARPROC)&UnicowsLoader::EnumPrintersWImpl;
   99.56 -
   99.57 -HMODULE __stdcall UnicowsLoader::LoadUnicows(void)
   99.58 -{
   99.59 -    if (hmodUnicows != NULL) {
   99.60 -        return hmodUnicows;
   99.61 -    }
   99.62 -
   99.63 -    // Unfortunately, some DLLs that are loaded in conjunction with
   99.64 -    // unicows.dll may blow the FPU's control word.  So save it here.
   99.65 -    unsigned int fpu_cw = _CW_DEFAULT;
   99.66 -    fpu_cw = _control87(0, 0);
   99.67 -
   99.68 -    // Loads the DLL, assuming that the DLL resides in the same directory
   99.69 -    // as the AWT(_G).DLL.  We cannot use "sun.boot.library.path" system
   99.70 -    // property since there is no way to issue JNI calls at this point
   99.71 -    // (JNI_OnLoad is not yet called so it cannot obtain JavaVM structure)
   99.72 -    //
   99.73 -    // To obtain the AWT module handle, call GetModuleHandleA() directly,
   99.74 -    // instead of AwtToolkit.GetModuleHandle().  Otherwise it could cause
   99.75 -    // an infinite loop if some W call were made inside AwtToolkit class
   99.76 -    // initialization.
   99.77 -    HMODULE hmodAWT = GetModuleHandleA("awt");
   99.78 -    LPSTR abspath = (LPSTR)safe_Malloc(MAX_PATH);
   99.79 -    if (abspath != NULL) {
   99.80 -        GetModuleFileNameA(hmodAWT, abspath, MAX_PATH);
   99.81 -        *strrchr(abspath, '\\') = '\0';
   99.82 -        strcat(abspath, "\\unicows.dll");
   99.83 -        hmodUnicows = LoadLibraryA(abspath);
   99.84 -        free(abspath);
   99.85 -    }
   99.86 -
   99.87 -    // Restore the FPU control word if needed.
   99.88 -    if ( _control87(0, 0) != fpu_cw) {
   99.89 -        _control87(fpu_cw, 0xfffff);
   99.90 -    }
   99.91 -
   99.92 -    return hmodUnicows;
   99.93 -}
   99.94 -
   99.95 -HMODULE UnicowsLoader::GetModuleHandle(void)
   99.96 -{
   99.97 -    return hmodUnicows;
   99.98 -}
   99.99 -
  99.100 -
  99.101 -// Convenient functions to convert DEVMODEA -> DEVMODEW
  99.102 -void UnicowsLoader::DevModeA2DevModeW(
  99.103 -    const DEVMODEA * dma,
  99.104 -    DEVMODEW * dmw)
  99.105 -{
  99.106 -    // convert string portions
  99.107 -    ::MultiByteToWideChar(CP_ACP, 0, (CHAR *)dma->dmDeviceName, CCHDEVICENAME,
  99.108 -        dmw->dmDeviceName, CCHDEVICENAME);
  99.109 -    ::MultiByteToWideChar(CP_ACP, 0, (CHAR *)dma->dmFormName, CCHDEVICENAME,
  99.110 -        dmw->dmFormName, CCHDEVICENAME);
  99.111 -
  99.112 -    // copy driver specific data if exists
  99.113 -    if (dma->dmDriverExtra != 0) {
  99.114 -        PBYTE pExtraA = (PBYTE)(dma + 1);
  99.115 -        PBYTE pExtraW = (PBYTE)(dmw + 1);
  99.116 -        memcpy(pExtraW, pExtraA, dma->dmDriverExtra);
  99.117 -    }
  99.118 -
  99.119 -    // copy normal struct members
  99.120 -    dmw->dmSpecVersion = dma->dmSpecVersion;
  99.121 -    dmw->dmDriverVersion = dma->dmDriverVersion;
  99.122 -    dmw->dmSize = dma->dmSize;
  99.123 -    dmw->dmDriverExtra = dma->dmDriverExtra;
  99.124 -    dmw->dmFields = dma->dmFields;
  99.125 -    dmw->dmPosition = dma->dmPosition;
  99.126 -    dmw->dmScale = dma->dmScale;
  99.127 -    dmw->dmCopies = dma->dmCopies;
  99.128 -    dmw->dmDefaultSource = dma->dmDefaultSource;
  99.129 -    dmw->dmPrintQuality = dma->dmPrintQuality;
  99.130 -    dmw->dmColor = dma->dmColor;
  99.131 -    dmw->dmDuplex = dma->dmDuplex;
  99.132 -    dmw->dmYResolution = dma->dmYResolution;
  99.133 -    dmw->dmTTOption = dma->dmTTOption;
  99.134 -    dmw->dmCollate = dma->dmCollate;
  99.135 -    dmw->dmLogPixels = dma->dmLogPixels;
  99.136 -    dmw->dmBitsPerPel = dma->dmBitsPerPel;
  99.137 -    dmw->dmPelsWidth = dma->dmPelsWidth;
  99.138 -    dmw->dmPelsHeight = dma->dmPelsHeight;
  99.139 -    dmw->dmDisplayFlags = dma->dmDisplayFlags;
  99.140 -    dmw->dmDisplayFrequency = dma->dmDisplayFrequency;
  99.141 -#if(WINVER >= 0x0400)
  99.142 -    dmw->dmICMMethod = dma->dmICMMethod;
  99.143 -    dmw->dmICMIntent = dma->dmICMIntent;
  99.144 -    dmw->dmMediaType = dma->dmMediaType;
  99.145 -    dmw->dmDitherType = dma->dmDitherType;
  99.146 -    dmw->dmReserved1 = dma->dmReserved1;
  99.147 -    dmw->dmReserved2 = dma->dmReserved2;
  99.148 -#if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
  99.149 -    dmw->dmPanningWidth = dma->dmPanningWidth;
  99.150 -    dmw->dmPanningHeight = dma->dmPanningHeight;
  99.151 -#endif
  99.152 -#endif /* WINVER >= 0x0400 */
  99.153 -}
  99.154 -
  99.155 -// PRINTER_INFO_1 struct converter
  99.156 -void UnicowsLoader::PrinterInfo1A2W(
  99.157 -    const LPPRINTER_INFO_1A pi1A,
  99.158 -    LPPRINTER_INFO_1W pi1W,
  99.159 -    const DWORD num)
  99.160 -{
  99.161 -    LPWSTR pwstrbuf = (LPWSTR)(pi1W + num);
  99.162 -    DWORD current;
  99.163 -
  99.164 -    // loop through all structures
  99.165 -    for (current = 0; current < num; current ++) {
  99.166 -        LPPRINTER_INFO_1A curPi1A = pi1A + current;
  99.167 -        LPPRINTER_INFO_1W curPi1W = pi1W + current;
  99.168 -
  99.169 -        // copy the structure itself
  99.170 -        memcpy(curPi1W, curPi1A, sizeof(_PRINTER_INFO_1W));
  99.171 -
  99.172 -        // copy string members
  99.173 -        StringA2W(curPi1A->pDescription, &(curPi1W->pDescription), &pwstrbuf);
  99.174 -        StringA2W(curPi1A->pName, &(curPi1W->pName), &pwstrbuf);
  99.175 -        StringA2W(curPi1A->pComment, &(curPi1W->pComment), &pwstrbuf);
  99.176 -    }
  99.177 -}
  99.178 -
  99.179 -// PRINTER_INFO_2 struct converter
  99.180 -void UnicowsLoader::PrinterInfo2A2W(
  99.181 -    const LPPRINTER_INFO_2A pi2A,
  99.182 -    LPPRINTER_INFO_2W pi2W,
  99.183 -    const DWORD num)
  99.184 -{
  99.185 -    PBYTE pbytebuf = (PBYTE)(pi2W + num);
  99.186 -    DWORD current;
  99.187 -
  99.188 -    // loop through all structures
  99.189 -    for (current = 0; current < num; current ++) {
  99.190 -        LPPRINTER_INFO_2A curPi2A = pi2A + current;
  99.191 -        LPPRINTER_INFO_2W curPi2W = pi2W + current;
  99.192 -        // copy the structure itself
  99.193 -        memcpy(curPi2W, curPi2A, sizeof(_PRINTER_INFO_2W));
  99.194 -
  99.195 -        // copy string members
  99.196 -        StringA2W(curPi2A->pServerName, &(curPi2W->pServerName), (LPWSTR *)&pbytebuf);
  99.197 -        StringA2W(curPi2A->pPrinterName, &(curPi2W->pPrinterName), (LPWSTR *)&pbytebuf);
  99.198 -        StringA2W(curPi2A->pShareName, &(curPi2W->pShareName), (LPWSTR *)&pbytebuf);
  99.199 -        StringA2W(curPi2A->pPortName, &(curPi2W->pPortName), (LPWSTR *)&pbytebuf);
  99.200 -        StringA2W(curPi2A->pDriverName, &(curPi2W->pDriverName), (LPWSTR *)&pbytebuf);
  99.201 -        StringA2W(curPi2A->pComment, &(curPi2W->pComment), (LPWSTR *)&pbytebuf);
  99.202 -        StringA2W(curPi2A->pLocation, &(curPi2W->pLocation), (LPWSTR *)&pbytebuf);
  99.203 -        StringA2W(curPi2A->pSepFile, &(curPi2W->pSepFile), (LPWSTR *)&pbytebuf);
  99.204 -        StringA2W(curPi2A->pPrintProcessor, &(curPi2W->pPrintProcessor), (LPWSTR *)&pbytebuf);
  99.205 -        StringA2W(curPi2A->pDatatype, &(curPi2W->pDatatype), (LPWSTR *)&pbytebuf);
  99.206 -        StringA2W(curPi2A->pParameters, &(curPi2W->pParameters), (LPWSTR *)&pbytebuf);
  99.207 -
  99.208 -        // copy DEVMODE structure
  99.209 -        if (curPi2A->pDevMode != NULL) {
  99.210 -            curPi2W->pDevMode = (LPDEVMODEW)pbytebuf;
  99.211 -            DevModeA2DevModeW(curPi2A->pDevMode, curPi2W->pDevMode);
  99.212 -            pbytebuf += sizeof(DEVMODEW) + curPi2A->pDevMode->dmDriverExtra;
  99.213 -        }
  99.214 -    }
  99.215 -}
  99.216 -
  99.217 -// PRINTER_INFO_5 struct converter
  99.218 -void UnicowsLoader::PrinterInfo5A2W(
  99.219 -    const LPPRINTER_INFO_5A pi5A,
  99.220 -    LPPRINTER_INFO_5W pi5W,
  99.221 -    const DWORD num)
  99.222 -{
  99.223 -    LPWSTR pbuf = (LPWSTR)(pi5W + num);
  99.224 -    DWORD current;
  99.225 -
  99.226 -    // loop through all structures
  99.227 -    for (current = 0; current < num; current ++) {
  99.228 -        LPPRINTER_INFO_5A curPi5A = pi5A + current;
  99.229 -        LPPRINTER_INFO_5W curPi5W = pi5W + current;
  99.230 -
  99.231 -        // copy the structure itself
  99.232 -        memcpy(curPi5W, curPi5A, sizeof(_PRINTER_INFO_5W));
  99.233 -
  99.234 -        // copy string members
  99.235 -        StringA2W(curPi5A->pPrinterName, &(curPi5W->pPrinterName), &pbuf);
  99.236 -        StringA2W(curPi5A->pPortName, &(curPi5W->pPortName), &pbuf);
  99.237 -    }
  99.238 -}
  99.239 -
  99.240 -// PRINTER_INFO_* struct converter.  Supported levels are 1, 2, and 5.
  99.241 -void UnicowsLoader::PrinterInfoA2W(
  99.242 -    const PVOID piA,
  99.243 -    PVOID piW,
  99.244 -    const DWORD Level,
  99.245 -    const DWORD num)
  99.246 -{
  99.247 -    switch (Level) {
  99.248 -    case 1:
  99.249 -        PrinterInfo1A2W((LPPRINTER_INFO_1A)piA, (LPPRINTER_INFO_1W)piW, num);
  99.250 -        break;
  99.251 -
  99.252 -    case 2:
  99.253 -        PrinterInfo2A2W((LPPRINTER_INFO_2A)piA, (LPPRINTER_INFO_2W)piW, num);
  99.254 -        break;
  99.255 -
  99.256 -    case 5:
  99.257 -        PrinterInfo5A2W((LPPRINTER_INFO_5A)piA, (LPPRINTER_INFO_5W)piW, num);
  99.258 -        break;
  99.259 -    }
  99.260 -}
  99.261 -
  99.262 -// converts string members in PRINTER_INFO_* struct.
  99.263 -void UnicowsLoader::StringA2W(
  99.264 -    LPCSTR pSrcA,
  99.265 -    LPWSTR * ppwstrDest,
  99.266 -    LPWSTR * ppwstrbuf)
  99.267 -{
  99.268 -    if (pSrcA != NULL) {
  99.269 -        DWORD cchWideChar = ::MultiByteToWideChar(CP_ACP, 0, pSrcA, -1, NULL, 0);
  99.270 -        *ppwstrDest = *ppwstrbuf;
  99.271 -        ::MultiByteToWideChar(CP_ACP, 0, pSrcA, -1, *ppwstrbuf, cchWideChar);
  99.272 -        *ppwstrbuf += cchWideChar;
  99.273 -    } else {
  99.274 -        *ppwstrDest = NULL;
  99.275 -    }
  99.276 -}
  99.277 -
  99.278 -// GetPrinterW implementation.  Level 1, 2, and 5 are the only supported levels.
  99.279 -BOOL __stdcall UnicowsLoader::GetPrinterWImpl(
  99.280 -    HANDLE  hPrinter,
  99.281 -    DWORD   Level,
  99.282 -    LPBYTE  pPrinter,
  99.283 -    DWORD   cbBuf,
  99.284 -    LPDWORD pcbNeeded)
  99.285 -{
  99.286 -    if ((Level != 1) && (Level != 2) && (Level != 5)) {
  99.287 -        SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
  99.288 -        return FALSE;
  99.289 -    }
  99.290 -
  99.291 -    DWORD cbBufA = (cbBuf != 0 ? cbBuf / 2 : 0); // dirty estimation...
  99.292 -    LPBYTE pPrinterA = NULL;
  99.293 -    DWORD cbNeededA = 0;
  99.294 -    BOOL ret;
  99.295 -
  99.296 -    if (cbBufA != 0) {
  99.297 -        pPrinterA = (LPBYTE)safe_Malloc(cbBufA);
  99.298 -        memset(pPrinterA, 0, cbBufA);
  99.299 -    }
  99.300 -
  99.301 -    ret = ::GetPrinterA(hPrinter, Level, pPrinterA, cbBufA, &cbNeededA);
  99.302 -    *pcbNeeded = cbNeededA * 2; // dirty estimation...
  99.303 -
  99.304 -    if (pPrinterA != NULL) {
  99.305 -        if (ret) {
  99.306 -            PrinterInfoA2W(pPrinterA, pPrinter, Level, 1);
  99.307 -        }
  99.308 -        free(pPrinterA);
  99.309 -    }
  99.310 -
  99.311 -    return ret;
  99.312 -}
  99.313 -
  99.314 -// EnumPrintersW implementation.  Level 1, 2, and 5 are the only supported levels.
  99.315 -BOOL __stdcall UnicowsLoader::EnumPrintersWImpl(
  99.316 -    DWORD   Flags,
  99.317 -    LPWSTR Name,
  99.318 -    DWORD   Level,
  99.319 -    LPBYTE  pPrinterEnum,
  99.320 -    DWORD   cbBuf,
  99.321 -    LPDWORD pcbNeeded,
  99.322 -    LPDWORD pcReturned)
  99.323 -{
  99.324 -    if ((Level != 1) && (Level != 2) && (Level != 5)) {
  99.325 -        SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
  99.326 -        return FALSE;
  99.327 -    }
  99.328 -
  99.329 -    LPSTR pNameA = NULL;
  99.330 -    DWORD cbBufA = (cbBuf != 0 ? cbBuf / 2 : 0); // dirty estimation...
  99.331 -    LPBYTE pPrinterEnumA = NULL;
  99.332 -    DWORD cbNeededA = 0;
  99.333 -    BOOL ret;
  99.334 -
  99.335 -    if (Name != NULL) {
  99.336 -        DWORD len = static_cast<DWORD>(wcslen(Name)) + 1;
  99.337 -        pNameA = (LPSTR)safe_Malloc(len);
  99.338 -        ::WideCharToMultiByte(CP_ACP, 0, Name, -1, pNameA, len, NULL, NULL);
  99.339 -    }
  99.340 -
  99.341 -    if (cbBufA != 0) {
  99.342 -        pPrinterEnumA = (LPBYTE)safe_Malloc(cbBufA);
  99.343 -        memset(pPrinterEnumA, 0, cbBufA);
  99.344 -    }
  99.345 -
  99.346 -    ret = ::EnumPrintersA(Flags, pNameA, Level, pPrinterEnumA,
  99.347 -                        cbBufA, &cbNeededA, pcReturned);
  99.348 -    *pcbNeeded = cbNeededA * 2; // dirty estimation...
  99.349 -
  99.350 -    if (pPrinterEnumA != NULL) {
  99.351 -        if (ret) {
  99.352 -            PrinterInfoA2W(pPrinterEnumA, pPrinterEnum, Level, *pcReturned);
  99.353 -        }
  99.354 -        free(pPrinterEnumA);
  99.355 -    }
  99.356 -
  99.357 -    if (pNameA != NULL) {
  99.358 -        free(pNameA);
  99.359 -    }
  99.360 -
  99.361 -    return ret;
  99.362 -}
  99.363 -
  99.364 -// wchar CRT implementations that VC6 does not support on Win9x.
  99.365 -// These implementations are used on both Win9x/ME *and* WinNT/2K/XP.
  99.366 -#undef _waccess
  99.367 -#undef _wchmod
  99.368 -#undef _wfullpath
  99.369 -#undef _wremove
  99.370 -#undef _wrename
  99.371 -#undef _wstat
  99.372 -#undef _wstati64
  99.373 -#undef _wstat64
  99.374 -#undef _wunlink
  99.375 -#undef _wfopen
  99.376 -#undef _wfreopen
  99.377 -#undef _wfsopen
  99.378 -#undef _wcreat
  99.379 -#undef _wopen
  99.380 -#undef _wsopen
  99.381 -#undef _wfindfirst
  99.382 -#undef _wfindfirst64
  99.383 -#undef _wfindnext
  99.384 -#undef _wfindnext64
  99.385 -#undef _wsystem
  99.386 -#undef _wexcel
  99.387 -#undef _wexcele
  99.388 -#undef _wexelp
  99.389 -#undef _wexelpe
  99.390 -#undef _wexecv
  99.391 -#undef _wexecve
  99.392 -#undef _wexecvp
  99.393 -#undef _wexecvpe
  99.394 -#undef _wpopen
  99.395 -#undef _wputenv
  99.396 -#undef _wspawnl
  99.397 -#undef _wspawnle
  99.398 -#undef _wspawnlp
  99.399 -#undef _wspawnlpe
  99.400 -#undef _wspawnv
  99.401 -#undef _wspawnve
  99.402 -#undef _wspawnvp
  99.403 -#undef _wspawnvpe
  99.404 -
  99.405 -// _wfullpath implementation
  99.406 -wchar_t * __cdecl UnicowsLoader::_wfullpathImpl(
  99.407 -    wchar_t * absPath,
  99.408 -    const wchar_t * relPath,
  99.409 -    size_t maxLength)
  99.410 -{
  99.411 -    if (IS_NT) {
  99.412 -        return _wfullpath(absPath, relPath, maxLength);
  99.413 -    } else {
  99.414 -        wchar_t * ret = NULL;
  99.415 -        char * absPathA = (char *)safe_Malloc(maxLength);
  99.416 -        char * relPathA = (char *)safe_Malloc(maxLength);
  99.417 -        ::WideCharToMultiByte(CP_ACP, 0, relPath, -1, relPathA,
  99.418 -            static_cast<DWORD>(maxLength), NULL, NULL);
  99.419 -
  99.420 -        char * retA = _fullpath(absPathA, relPathA, maxLength);
  99.421 -
  99.422 -        if (retA != NULL) {
  99.423 -            ::MultiByteToWideChar(CP_ACP, 0, absPathA, -1,
  99.424 -                absPath, static_cast<DWORD>(maxLength));
  99.425 -            ret = absPath;
  99.426 -        }
  99.427 -
  99.428 -        free(absPathA);
  99.429 -        free(relPathA);
  99.430 -
  99.431 -        return ret;
  99.432 -    }
  99.433 -}
   100.1 --- a/src/windows/native/sun/windows/UnicowsLoader.h	Tue Feb 17 09:06:16 2009 -0800
   100.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   100.3 @@ -1,198 +0,0 @@
   100.4 -/*
   100.5 - * Copyright 2003-2004 Sun Microsystems, Inc.  All Rights Reserved.
   100.6 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   100.7 - *
   100.8 - * This code is free software; you can redistribute it and/or modify it
   100.9 - * under the terms of the GNU General Public License version 2 only, as
  100.10 - * published by the Free Software Foundation.  Sun designates this
  100.11 - * particular file as subject to the "Classpath" exception as provided
  100.12 - * by Sun in the LICENSE file that accompanied this code.
  100.13 - *
  100.14 - * This code is distributed in the hope that it will be useful, but WITHOUT
  100.15 - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  100.16 - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  100.17 - * version 2 for more details (a copy is included in the LICENSE file that
  100.18 - * accompanied this code).
  100.19 - *
  100.20 - * You should have received a copy of the GNU General Public License version
  100.21 - * 2 along with this work; if not, write to the Free Software Foundation,
  100.22 - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  100.23 - *
  100.24 - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  100.25 - * CA 95054 USA or visit www.sun.com if you need additional information or
  100.26 - * have any questions.
  100.27 - */
  100.28 -
  100.29 -#ifndef UNICOWSLOADER_H
  100.30 -#define UNICOWSLOADER_H
  100.31 -
  100.32 -#if !defined(UNICODE) || !defined(_UNICODE)
  100.33 -#error UnicowsLoader module needs UNICODE and _UNICODE flags to be set on compiling
  100.34 -#endif
  100.35 -
  100.36 -#include <winspool.h>
  100.37 -
  100.38 -// A class to load the Microsoft Layer for Unicode (unicows.dll)
  100.39 -class UnicowsLoader {
  100.40 -public:
  100.41 -    // this is called when the client DLL (this case, AWT) is loaded
  100.42 -    static HMODULE __stdcall LoadUnicows(void);
  100.43 -
  100.44 -    // this is provided to pass the MSLU module handle
  100.45 -    static HMODULE GetModuleHandle(void);
  100.46 -
  100.47 -    // member functions that implements functions that MSLU does not support
  100.48 -    static BOOL __stdcall GetPrinterWImpl(HANDLE, DWORD, LPBYTE, DWORD, LPDWORD);
  100.49 -    static BOOL __stdcall EnumPrintersWImpl(DWORD, LPWSTR, DWORD, LPBYTE,
  100.50 -                        DWORD, LPDWORD, LPDWORD);
  100.51 -
  100.52 -    // member functions that implements functions that VC6 CRT does not support
  100.53 -    // on Win9x
  100.54 -    static wchar_t * __cdecl _wfullpathImpl(wchar_t *, const wchar_t *, size_t);
  100.55 -
  100.56 -private:
  100.57 -    // The module handle
  100.58 -    static HMODULE hmodUnicows;
  100.59 -
  100.60 -    // utility member functions
  100.61 -    static void DevModeA2DevModeW(const DEVMODEA *, DEVMODEW *);
  100.62 -    static void PrinterInfo1A2W(const LPPRINTER_INFO_1A, LPPRINTER_INFO_1W, const DWORD);
  100.63 -    static void PrinterInfo2A2W(const LPPRINTER_INFO_2A, LPPRINTER_INFO_2W, const DWORD);
  100.64 -    static void PrinterInfo5A2W(const LPPRINTER_INFO_5A, LPPRINTER_INFO_5W, const DWORD);
  100.65 -    static void PrinterInfoA2W(const PVOID, PVOID, DWORD, DWORD);
  100.66 -    static void StringA2W(LPCSTR, LPWSTR *, LPWSTR *);
  100.67 -};
  100.68 -
  100.69 -#ifndef AWT_H
  100.70 -// copied from awt.h
  100.71 -#if defined (WIN32)
  100.72 -    #define IS_WIN32 TRUE
  100.73 -#else
  100.74 -    #define IS_WIN32 FALSE
  100.75 -#endif
  100.76 -#define IS_NT      (IS_WIN32 && !(::GetVersion() & 0x80000000))
  100.77 -#endif // AWT_H
  100.78 -
  100.79 -// Now the platform encoding is Unicode (UTF-16), re-define JNU_ functions
  100.80 -// to proper JNI functions.
  100.81 -#define JNU_NewStringPlatform(env, x) env->NewString(x, static_cast<jsize>(_tcslen(x)))
  100.82 -#define JNU_GetStringPlatformChars(env, x, y) (LPWSTR)env->GetStringChars(x, y)
  100.83 -#define JNU_ReleaseStringPlatformChars(env, x, y) env->ReleaseStringChars(x, y)
  100.84 -
  100.85 -// The following Windows W-APIs are not supported by the MSLU.
  100.86 -// You need to implement a stub to use these APIs. Or, if it is
  100.87 -// apparent that the API is used only on WindowsNT/2K/XP, wrap
  100.88 -// the call site with #undef - #define, e.g:
  100.89 -//
  100.90 -// #undef SomeFunctionW
  100.91 -// call SomeFunctionW
  100.92 -// #define SomeFunctionW NotSupportedByMSLU
  100.93 -
  100.94 -#define AcquireCredentialsHandleW               NotSupportedByMSLU
  100.95 -#define CreateNamedPipeW                        NotSupportedByMSLU
  100.96 -#define CryptAcquireContextW                    NotSupportedByMSLU
  100.97 -#define CryptEnumProvidersW                     NotSupportedByMSLU
  100.98 -#define CryptEnumProviderTypesW                 NotSupportedByMSLU
  100.99 -#define CryptGetDefaultProviderW                NotSupportedByMSLU
 100.100 -#define CryptSetProviderW                       NotSupportedByMSLU
 100.101 -#define CryptSetProviderExW                     NotSupportedByMSLU
 100.102 -#define CryptSignHashW                          NotSupportedByMSLU
 100.103 -#define CryptVerifySignatureW                   NotSupportedByMSLU
 100.104 -#define EnumerateSecurityPackagesW              NotSupportedByMSLU
 100.105 -#define EnumMonitorsW                           NotSupportedByMSLU
 100.106 -#define EnumPortsW                              NotSupportedByMSLU
 100.107 -#define EnumPrinterDriversW                     NotSupportedByMSLU
 100.108 -//#define EnumPrintersW                         NotSupportedByMSLU
 100.109 -#define EnumPrintProcessorDatatypesW            NotSupportedByMSLU
 100.110 -#define EnumPrintProcessorsW                    NotSupportedByMSLU
 100.111 -#define FreeContextBufferW                      NotSupportedByMSLU
 100.112 -#define GetCharABCWidthsFloatW                  NotSupportedByMSLU
 100.113 -#define GetJobW                                 NotSupportedByMSLU
 100.114 -#define GetOpenFileNamePreviewW                 NotSupportedByMSLU
 100.115 -//#define GetPrinterW                           NotSupportedByMSLU
 100.116 -#define GetPrinterDataW                         NotSupportedByMSLU
 100.117 -#define GetPrinterDriverW                       NotSupportedByMSLU
 100.118 -#define GetSaveFileNamePreviewW                 NotSupportedByMSLU
 100.119 -#define InitializeSecurityContextW              NotSupportedByMSLU
 100.120 -#define mciSendCommandW                         NotSupportedByMSLU
 100.121 -#define mixerGetControlDetailsW                 NotSupportedByMSLU
 100.122 -#define mixerGetLineControlsW                   NotSupportedByMSLU
 100.123 -#define mixerGetLineInfoW                       NotSupportedByMSLU
 100.124 -#define mmioInstallIOProcW                      NotSupportedByMSLU
 100.125 -#define OleUIChangeSourceW                      NotSupportedByMSLU
 100.126 -#define OleUIConvertW                           NotSupportedByMSLU
 100.127 -#define OleUIEditLinksW                         NotSupportedByMSLU
 100.128 -#define OleUIInsertObjectW                      NotSupportedByMSLU
 100.129 -#define OleUIObjectPropertiesW                  NotSupportedByMSLU
 100.130 -#define OleUIPasteSpecialW                      NotSupportedByMSLU
 100.131 -#define OleUIPromptUserW                        NotSupportedByMSLU
 100.132 -#define OleUIUpdateLinksW                       NotSupportedByMSLU
 100.133 -#define PolyTextOutW                            NotSupportedByMSLU
 100.134 -#define QueryContextAttributesW                 NotSupportedByMSLU
 100.135 -#define QueryCredentialsAttributesW             NotSupportedByMSLU
 100.136 -#define QuerySecurityPackageInfoW               NotSupportedByMSLU
 100.137 -#define RasDeleteSubEntryW                      NotSupportedByMSLU
 100.138 -#define RasSetSubEntryPropertiesW               NotSupportedByMSLU
 100.139 -#define ResetPrinterW                           NotSupportedByMSLU
 100.140 -
 100.141 -// The following Shell COM interfaces are not supported by the MSLU.
 100.142 -// See ShellFolder2.cpp
 100.143 -#define IID_IFileViewerW                        NotSupportedByMSLU
 100.144 -#define IID_IShellLinkW                         NotSupportedByMSLU
 100.145 -#define IID_IExtractIconW                       NotSupportedByMSLU
 100.146 -#define IID_IShellCopyHookW                     NotSupportedByMSLU
 100.147 -#define IID_IShellExecuteHookW                  NotSupportedByMSLU
 100.148 -#define IID_INewShortcutHookW                   NotSupportedByMSLU
 100.149 -
 100.150 -// The following CRT functions should fail on compiling, as it does not work on
 100.151 -// Win9x/ME platform.  If you need these CRTs, write a wrapper for ANSI version
 100.152 -// equivalents, in which it converts to/from Unicode using WideCharToMultiByte.
 100.153 -//
 100.154 -// Or, if it is apparent that the function is used only on WindowsNT/2K/XP, wrap
 100.155 -// the call site with #undef - #define, e.g:
 100.156 -//
 100.157 -// #undef _wsomefunc
 100.158 -// call _wsomefunc
 100.159 -// #define _wsomefunc NotSupportedOnWin9X
 100.160 -
 100.161 -#define _waccess        NotSupportedOnWin9X
 100.162 -#define _wchmod         NotSupportedOnWin9X
 100.163 -#define _wfullpath      UnicowsLoader::_wfullpathImpl
 100.164 -#define _wremove        NotSupportedOnWin9X
 100.165 -#define _wrename        NotSupportedOnWin9X
 100.166 -#define _wstat          NotSupportedOnWin9X
 100.167 -#define _wstati64       NotSupportedOnWin9X
 100.168 -#define _wstat64        NotSupportedOnWin9X
 100.169 -#define _wunlink        NotSupportedOnWin9X
 100.170 -#define _wfopen         NotSupportedOnWin9X
 100.171 -#define _wfreopen       NotSupportedOnWin9X
 100.172 -#define _wfsopen        NotSupportedOnWin9X
 100.173 -#define _wcreat         NotSupportedOnWin9X
 100.174 -#define _wopen          NotSupportedOnWin9X
 100.175 -#define _wsopen         NotSupportedOnWin9X
 100.176 -#define _wfindfirst     NotSupportedOnWin9X
 100.177 -#define _wfindfirst64   NotSupportedOnWin9X
 100.178 -#define _wfindnext      NotSupportedOnWin9X
 100.179 -#define _wfindnext64    NotSupportedOnWin9X
 100.180 -#define _wsystem        NotSupportedOnWin9X
 100.181 -#define _wexcel         NotSupportedOnWin9X
 100.182 -#define _wexcele        NotSupportedOnWin9X
 100.183 -#define _wexelp         NotSupportedOnWin9X
 100.184 -#define _wexelpe        NotSupportedOnWin9X
 100.185 -#define _wexecv         NotSupportedOnWin9X
 100.186 -#define _wexecve        NotSupportedOnWin9X
 100.187 -#define _wexecvp        NotSupportedOnWin9X
 100.188 -#define _wexecvpe       NotSupportedOnWin9X
 100.189 -#define _wpopen         NotSupportedOnWin9X
 100.190 -#define _wputenv        NotSupportedOnWin9X
 100.191 -#define _wspawnl        NotSupportedOnWin9X
 100.192 -#define _wspawnle       NotSupportedOnWin9X
 100.193 -#define _wspawnlp       NotSupportedOnWin9X
 100.194 -#define _wspawnlpe      NotSupportedOnWin9X
 100.195 -#define _wspawnv        NotSupportedOnWin9X
 100.196 -#define _wspawnve       NotSupportedOnWin9X
 100.197 -#define _wspawnvp       NotSupportedOnWin9X
 100.198 -#define _wspawnvpe      NotSupportedOnWin9X
 100.199 -
 100.200 -
 100.201 -#endif // UNICOWSLOADER_H
   101.1 --- a/src/windows/native/sun/windows/WPrinterJob.cpp	Tue Feb 17 09:06:16 2009 -0800
   101.2 +++ b/src/windows/native/sun/windows/WPrinterJob.cpp	Wed Feb 18 10:05:41 2009 -0800
   101.3 @@ -1,5 +1,5 @@
   101.4  /*
   101.5 - * Copyright 2000-2007 Sun Microsystems, Inc.  All Rights Reserved.
   101.6 + * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
   101.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   101.8   *
   101.9   * This code is free software; you can redistribute it and/or modify it
  101.10 @@ -23,14 +23,14 @@
  101.11   * have any questions.
  101.12   */
  101.13  
  101.14 +#include "awt.h"
  101.15 +
  101.16  #include "stdhdrs.h"
  101.17  #include <commdlg.h>
  101.18  #include <winspool.h>
  101.19  #include <limits.h>
  101.20  #include <float.h>
  101.21  
  101.22 -#include "awt.h"
  101.23 -#include "awt_dlls.h"
  101.24  #include "awt_Toolkit.h"
  101.25  #include "awt_PrintControl.h"
  101.26  
  101.27 @@ -74,7 +74,6 @@
  101.28      TRY;
  101.29  
  101.30      TCHAR cBuffer[250];
  101.31 -    BOOL bFlag;
  101.32      OSVERSIONINFO osv;
  101.33      PRINTER_INFO_2 *ppi2 = NULL;
  101.34      DWORD dwNeeded = 0;
  101.35 @@ -86,39 +85,8 @@
  101.36      osv.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
  101.37      GetVersionEx(&osv);
  101.38  
  101.39 -    // If Windows 95 or 98, use EnumPrinters...
  101.40 -    if (osv.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) {
  101.41 -
  101.42 -        // The first EnumPrinters() tells you how big our buffer should
  101.43 -        // be in order to hold ALL of PRINTER_INFO_2. Note that this will
  101.44 -        // usually return FALSE. This only means that the buffer (the 4th
  101.45 -        // parameter) was not filled in. You don't want it filled in here...
  101.46 -
  101.47 -        EnumPrinters(PRINTER_ENUM_DEFAULT, NULL, 2,
  101.48 -                     NULL, 0, &dwNeeded, &dwReturned);
  101.49 -        if (dwNeeded == 0) {
  101.50 -            return NULL;
  101.51 -        }
  101.52 -
  101.53 -        // Allocate enough space for PRINTER_INFO_2...
  101.54 -        ppi2 = (PRINTER_INFO_2 *)GlobalAlloc(GPTR, dwNeeded);
  101.55 -        if (!ppi2) {
  101.56 -           return NULL;
  101.57 -        }
  101.58 -
  101.59 -        // The second EnumPrinters() will fill in all the current information.
  101.60 -        bFlag = EnumPrinters(PRINTER_ENUM_DEFAULT, NULL, 2,
  101.61 -                             (LPBYTE)ppi2, dwNeeded, &dwNeeded, &dwReturned);
  101.62 -        if (!bFlag) {
  101.63 -            GlobalFree(ppi2);
  101.64 -            return NULL;
  101.65 -        }
  101.66 -
  101.67 -        jPrinterName = JNU_NewStringPlatform(env, ppi2->pPrinterName);
  101.68 -        GlobalFree(ppi2);
  101.69 -        return jPrinterName;
  101.70 -
  101.71 -   } else if (osv.dwPlatformId == VER_PLATFORM_WIN32_NT) {
  101.72 +    // If Windows 2000, XP, Vista
  101.73 +    if (osv.dwPlatformId == VER_PLATFORM_WIN32_NT) {
  101.74  
  101.75         // Retrieve the default string from Win.ini (the registry).
  101.76         // String will be in form "printername,drivername,portname".
  101.77 @@ -165,62 +133,32 @@
  101.78      jobjectArray nameArray;
  101.79  
  101.80      try {
  101.81 -        if (IS_NT) {
  101.82 -            ::EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS,
  101.83 -                           NULL, 4, NULL, 0, &cbNeeded, &cReturned);
  101.84 -            pPrinterEnum = new BYTE[cbNeeded];
  101.85 -            ::EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS,
  101.86 -                           NULL, 4, pPrinterEnum, cbNeeded, &cbNeeded,
  101.87 -                           &cReturned);
  101.88 +        ::EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS,
  101.89 +                       NULL, 4, NULL, 0, &cbNeeded, &cReturned);
  101.90 +        pPrinterEnum = new BYTE[cbNeeded];
  101.91 +        ::EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS,
  101.92 +                       NULL, 4, pPrinterEnum, cbNeeded, &cbNeeded,
  101.93 +                       &cReturned);
  101.94  
  101.95 -            if (cReturned > 0) {
  101.96 -                nameArray = env->NewObjectArray(cReturned, clazz, NULL);
  101.97 -                if (nameArray == NULL) {
  101.98 -                    throw std::bad_alloc();
  101.99 -                }
 101.100 -            } else {
 101.101 -                nameArray = NULL;
 101.102 -            }
 101.103 -
 101.104 -
 101.105 -            for (DWORD i = 0; i < cReturned; i++) {
 101.106 -                PRINTER_INFO_4 *info4 = (PRINTER_INFO_4 *)
 101.107 -                    (pPrinterEnum + i * sizeof(PRINTER_INFO_4));
 101.108 -                utf_str = JNU_NewStringPlatform(env, info4->pPrinterName);
 101.109 -                if (utf_str == NULL) {
 101.110 -                    throw std::bad_alloc();
 101.111 -                }
 101.112 -                env->SetObjectArrayElement(nameArray, i, utf_str);
 101.113 -                env->DeleteLocalRef(utf_str);
 101.114 +        if (cReturned > 0) {
 101.115 +            nameArray = env->NewObjectArray(cReturned, clazz, NULL);
 101.116 +            if (nameArray == NULL) {
 101.117 +                throw std::bad_alloc();
 101.118              }
 101.119          } else {
 101.120 -            ::EnumPrinters(PRINTER_ENUM_LOCAL,
 101.121 -                           NULL, 5, NULL, 0, &cbNeeded, &cReturned);
 101.122 -            pPrinterEnum = new BYTE[cbNeeded];
 101.123 -            ::EnumPrinters(PRINTER_ENUM_LOCAL,
 101.124 -                           NULL, 5, pPrinterEnum, cbNeeded, &cbNeeded,
 101.125 -                           &cReturned);
 101.126 +            nameArray = NULL;
 101.127 +        }
 101.128  
 101.129 -            if (cReturned > 0) {
 101.130 -                nameArray = env->NewObjectArray(cReturned, clazz, NULL);
 101.131 -                if (nameArray == NULL) {
 101.132 -                    throw std::bad_alloc();
 101.133 -                }
 101.134 -            } else {
 101.135 -                nameArray = NULL;
 101.136 +
 101.137 +        for (DWORD i = 0; i < cReturned; i++) {
 101.138 +            PRINTER_INFO_4 *info4 = (PRINTER_INFO_4 *)
 101.139 +                (pPrinterEnum + i * sizeof(PRINTER_INFO_4));
 101.140 +            utf_str = JNU_NewStringPlatform(env, info4->pPrinterName);
 101.141 +            if (utf_str == NULL) {
 101.142 +                throw std::bad_alloc();
 101.143              }
 101.144 -
 101.145 -
 101.146 -            for (DWORD i = 0; i < cReturned; i++) {
 101.147 -                PRINTER_INFO_5 *info5 = (PRINTER_INFO_5 *)
 101.148 -                    (pPrinterEnum + i * sizeof(PRINTER_INFO_5));
 101.149 -                utf_str = JNU_NewStringPlatform(env, info5->pPrinterName);
 101.150 -                if (utf_str == NULL) {
 101.151 -                    throw std::bad_alloc();
 101.152 -                }
 101.153 -                env->SetObjectArrayElement(nameArray, i, utf_str);
 101.154 -                env->DeleteLocalRef(utf_str);
 101.155 -            }
 101.156 +            env->SetObjectArrayElement(nameArray, i, utf_str);
 101.157 +            env->DeleteLocalRef(utf_str);
 101.158          }
 101.159      } catch (std::bad_alloc&) {
 101.160          delete [] pPrinterEnum;
 101.161 @@ -872,7 +810,7 @@
 101.162        int numSizes = ::DeviceCapabilities(printerName, printerPort,
 101.163                                            DC_PAPERS, NULL, NULL);
 101.164        if (numSizes > 0) {
 101.165 -          LPWORD papers = (LPWORD)safe_Malloc(numSizes * sizeof(WORD));
 101.166 +          LPTSTR papers = (LPTSTR)safe_Malloc(numSizes * sizeof(WORD));
 101.167            if (papers != NULL &&
 101.168                ::DeviceCapabilities(printerName, printerPort,
 101.169                                     DC_PAPERS, papers, NULL) != -1) {
   102.1 --- a/src/windows/native/sun/windows/awt.h	Tue Feb 17 09:06:16 2009 -0800
   102.2 +++ b/src/windows/native/sun/windows/awt.h	Wed Feb 18 10:05:41 2009 -0800
   102.3 @@ -26,10 +26,21 @@
   102.4  #ifndef _AWT_H_
   102.5  #define _AWT_H_
   102.6  
   102.7 +#ifndef _WIN32_WINNT
   102.8 +#define _WIN32_WINNT 0x0600
   102.9 +#endif
  102.10 +
  102.11 +#ifndef _WIN32_IE
  102.12 +#define _WIN32_IE 0x0600
  102.13 +#endif
  102.14 +
  102.15 +//#ifndef NTDDI_VERSION
  102.16 +//#define NTDDI_VERSION NTDDI_LONGHORN
  102.17 +//#endif
  102.18 +
  102.19  #include "stdhdrs.h"
  102.20  #include "alloc.h"
  102.21  #include "awt_Debug.h"
  102.22 -#include "UnicowsLoader.h"
  102.23  
  102.24  extern COLORREF DesktopColor2RGB(int colorIndex);
  102.25  
  102.26 @@ -129,40 +140,23 @@
  102.27  /*  /NEW JNI */
  102.28  
  102.29  /*
  102.30 - * IS_NT returns TRUE on NT, 2000, XP
  102.31 - * IS_WIN2000 returns TRUE on 2000, XP
  102.32 - * IS_WINXP returns TRUE on XP
  102.33 - * IS_WIN95 returns TRUE on 95, 98, ME
  102.34 - * IS_WIN98 returns TRUE on 98, ME
  102.35 - * IS_WINME returns TRUE on ME
  102.36 - * IS_WIN32 returns TRUE on 32-bit Pentium and
  102.37 - * 64-bit Itanium.
  102.38   * IS_WIN64 returns TRUE on 64-bit Itanium
  102.39 - *
  102.40 - * uname -s returns Windows_95 on 95
  102.41 - * uname -s returns Windows_98 on 98 and ME
  102.42 - * uname -s returns Windows_NT on NT and 2000 and XP
  102.43   */
  102.44 -#if defined (WIN32)
  102.45 -    #define IS_WIN32 TRUE
  102.46 -#else
  102.47 -    #define IS_WIN32 FALSE
  102.48 -#endif
  102.49  #if defined (_WIN64)
  102.50      #define IS_WIN64 TRUE
  102.51  #else
  102.52      #define IS_WIN64 FALSE
  102.53  #endif
  102.54 -#define IS_NT      (IS_WIN32 && !(::GetVersion() & 0x80000000))
  102.55 -#define IS_WIN2000 (IS_NT && LOBYTE(LOWORD(::GetVersion())) >= 5)
  102.56 -#define IS_WIN2003 (IS_NT && LOBYTE(LOWORD(::GetVersion())) == 5 && HIBYTE(LOWORD(::GetVersion())) >= 2)
  102.57 -#define IS_WINXP   (IS_NT && (IS_WIN2000 && HIBYTE(LOWORD(::GetVersion())) >= 1) || LOBYTE(LOWORD(::GetVersion())) > 5)
  102.58 -#define IS_WINVISTA (IS_NT && LOBYTE(LOWORD(::GetVersion())) >= 6)
  102.59 -#define IS_WIN32S  (IS_WIN32 && !IS_NT && LOBYTE(LOWORD(::GetVersion())) < 4)
  102.60 -#define IS_WIN95   (IS_WIN32 && !IS_NT && LOBYTE(LOWORD(::GetVersion())) >= 4)
  102.61 -#define IS_WIN98   (IS_WIN95 && HIBYTE(LOWORD(::GetVersion())) >= 10)
  102.62 -#define IS_WINME   (IS_WIN95 && HIBYTE(LOWORD(::GetVersion())) >= 90)
  102.63 -#define IS_WIN4X   (IS_WIN32 && LOBYTE(::GetVersion()) >= 4)
  102.64 +
  102.65 +/*
  102.66 + * IS_WIN2000 returns TRUE on 2000, XP and Vista
  102.67 + * IS_WINXP returns TRUE on XP and Vista
  102.68 + * IS_WINVISTA returns TRUE on Vista
  102.69 + */
  102.70 +#define IS_WIN2000 (LOBYTE(LOWORD(::GetVersion())) >= 5)
  102.71 +#define IS_WINXP ((IS_WIN2000 && HIBYTE(LOWORD(::GetVersion())) >= 1) || LOBYTE(LOWORD(::GetVersion())) > 5)
  102.72 +#define IS_WINVISTA (LOBYTE(LOWORD(::GetVersion())) >= 6)
  102.73 +
  102.74  #define IS_WINVER_ATLEAST(maj, min) \
  102.75                     ((maj) < LOBYTE(LOWORD(::GetVersion())) || \
  102.76                        (maj) == LOBYTE(LOWORD(::GetVersion())) && \
  102.77 @@ -177,6 +171,12 @@
  102.78  
  102.79  extern JavaVM *jvm;
  102.80  
  102.81 +// Platform encoding is Unicode (UTF-16), re-define JNU_ functions
  102.82 +// to proper JNI functions.
  102.83 +#define JNU_NewStringPlatform(env, x) env->NewString(reinterpret_cast<jchar*>(x), static_cast<jsize>(_tcslen(x)))
  102.84 +#define JNU_GetStringPlatformChars(env, x, y) reinterpret_cast<LPCWSTR>(env->GetStringChars(x, y))
  102.85 +#define JNU_ReleaseStringPlatformChars(env, x, y) env->ReleaseStringChars(x, reinterpret_cast<const jchar*>(y))
  102.86 +
  102.87  /*
  102.88   * Itanium symbols needed for 64-bit compilation.
  102.89   * These are defined in winuser.h in the August 2001 MSDN update.
  102.90 @@ -211,17 +211,12 @@
  102.91   * NOTE: float.h must be defined if using these macros
  102.92   */
  102.93  #define SAVE_CONTROLWORD  \
  102.94 -   unsigned int fpu_cw = _CW_DEFAULT;   \
  102.95 -   if (IS_WIN95) {  \
  102.96 -       fpu_cw = _control87(0, 0);  \
  102.97 -   }
  102.98 +  unsigned int fpu_cw = _control87(0, 0);
  102.99  
 102.100 -#define RESTORE_CONTROLWORD   \
 102.101 -   if (IS_WIN95) { \
 102.102 -       if ( _control87(0, 0) != fpu_cw) {  \
 102.103 -              _control87(fpu_cw, 0xfffff);   \
 102.104 -       }   \
 102.105 -   }
 102.106 +#define RESTORE_CONTROLWORD  \
 102.107 +  if (_control87(0, 0) != fpu_cw) {  \
 102.108 +    _control87(fpu_cw, 0xffffffff);  \
 102.109 +  }
 102.110  
 102.111  /*
 102.112   * checks if the current thread is/isn't the toolkit thread
   103.1 --- a/src/windows/native/sun/windows/awt_Button.cpp	Tue Feb 17 09:06:16 2009 -0800
   103.2 +++ b/src/windows/native/sun/windows/awt_Button.cpp	Wed Feb 18 10:05:41 2009 -0800
   103.3 @@ -1,5 +1,5 @@
   103.4  /*
   103.5 - * Copyright 1996-2007 Sun Microsystems, Inc.  All Rights Reserved.
   103.6 + * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   103.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   103.8   *
   103.9   * This code is free software; you can redistribute it and/or modify it
  103.10 @@ -23,7 +23,7 @@
  103.11   * have any questions.
  103.12   */
  103.13  
  103.14 -#include <jni.h>
  103.15 +#include "awt.h"
  103.16  
  103.17  #include "awt_Object.h"    /* wop_pDataID */
  103.18  #include "awt_Toolkit.h"
  103.19 @@ -106,7 +106,7 @@
  103.20          if (label == NULL) {
  103.21              labelStr = L"";
  103.22          } else {
  103.23 -            labelStr = env->GetStringChars(label, JNI_FALSE);
  103.24 +            labelStr = JNU_GetStringPlatformChars(env, label, JNI_FALSE);
  103.25          }
  103.26          style = 0;
  103.27  
  103.28 @@ -128,7 +128,7 @@
  103.29          c->m_backgroundColorSet = TRUE;  // suppress inheriting parent's color
  103.30          c->UpdateBackground(env, target);
  103.31          if (label != NULL)
  103.32 -            env->ReleaseStringChars(label, labelStr);
  103.33 +            JNU_ReleaseStringPlatformChars(env, label, labelStr);
  103.34      } catch (...) {
  103.35          env->DeleteLocalRef(target);
  103.36          if (label != NULL)
   104.1 --- a/src/windows/native/sun/windows/awt_Checkbox.cpp	Tue Feb 17 09:06:16 2009 -0800
   104.2 +++ b/src/windows/native/sun/windows/awt_Checkbox.cpp	Wed Feb 18 10:05:41 2009 -0800
   104.3 @@ -23,6 +23,7 @@
   104.4   * have any questions.
   104.5   */
   104.6  
   104.7 +#include "awt.h"
   104.8  #include "awt_Toolkit.h"
   104.9  #include "awt_Checkbox.h"
  104.10  #include "awt_KeyboardFocusManager.h"
  104.11 @@ -106,7 +107,7 @@
  104.12  
  104.13              label = (jstring)env->GetObjectField(target, AwtCheckbox::labelID);
  104.14              if (label != NULL) {
  104.15 -                labelStr = env->GetStringChars(label, 0);
  104.16 +                labelStr = JNU_GetStringPlatformChars(env, label, 0);
  104.17              }
  104.18              if (labelStr != 0) {
  104.19                  jint x = env->GetIntField(target, AwtComponent::xID);
  104.20 @@ -123,7 +124,7 @@
  104.21                                       peer);
  104.22  
  104.23                  if (labelStr != defaultLabelStr) {
  104.24 -                    env->ReleaseStringChars(label, labelStr);
  104.25 +                    JNU_ReleaseStringPlatformChars(env, label, labelStr);
  104.26                  }
  104.27              } else {
  104.28                  throw std::bad_alloc();
   105.1 --- a/src/windows/native/sun/windows/awt_Choice.cpp	Tue Feb 17 09:06:16 2009 -0800
   105.2 +++ b/src/windows/native/sun/windows/awt_Choice.cpp	Wed Feb 18 10:05:41 2009 -0800
   105.3 @@ -1,5 +1,5 @@
   105.4  /*
   105.5 - * Copyright 1996-2007 Sun Microsystems, Inc.  All Rights Reserved.
   105.6 + * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   105.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   105.8   *
   105.9   * This code is free software; you can redistribute it and/or modify it
  105.10 @@ -206,7 +206,7 @@
  105.11      fieldHeight =(int)::SendMessage(GetHWnd(), CB_GETITEMHEIGHT, (UINT)-1, 0);
  105.12      // add top and bottom border lines; border size is different for
  105.13      // Win 4.x (3d edge) vs 3.x (1 pixel line)
  105.14 -    borderHeight = ::GetSystemMetrics(IS_WIN4X ? SM_CYEDGE : SM_CYBORDER);
  105.15 +    borderHeight = ::GetSystemMetrics(SM_CYEDGE);
  105.16      fieldHeight += borderHeight*2;
  105.17      return fieldHeight;
  105.18  }
  105.19 @@ -424,6 +424,9 @@
  105.20      case mrPassAlong:
  105.21          return AwtComponent::WmKillFocus(hWndGotFocus);
  105.22      }
  105.23 +
  105.24 +    DASSERT(false); // must never reach here
  105.25 +    return mrDoDefault;
  105.26  }
  105.27  
  105.28  MsgRouting
   106.1 --- a/src/windows/native/sun/windows/awt_Color.cpp	Tue Feb 17 09:06:16 2009 -0800
   106.2 +++ b/src/windows/native/sun/windows/awt_Color.cpp	Wed Feb 18 10:05:41 2009 -0800
   106.3 @@ -1,5 +1,5 @@
   106.4  /*
   106.5 - * Copyright 1996-1999 Sun Microsystems, Inc.  All Rights Reserved.
   106.6 + * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   106.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   106.8   *
   106.9   * This code is free software; you can redistribute it and/or modify it
  106.10 @@ -97,7 +97,7 @@
  106.11          iColor = COLOR_MENUTEXT;
  106.12          break;
  106.13      case sun_awt_windows_WColor_BUTTON_BKGND:
  106.14 -        iColor = (IS_NT) ? COLOR_BTNFACE : COLOR_3DFACE;
  106.15 +        iColor = COLOR_BTNFACE;
  106.16          break;
  106.17      case sun_awt_windows_WColor_BUTTON_TEXT:
  106.18          iColor = COLOR_BTNTEXT;
   107.1 --- a/src/windows/native/sun/windows/awt_Component.cpp	Tue Feb 17 09:06:16 2009 -0800
   107.2 +++ b/src/windows/native/sun/windows/awt_Component.cpp	Wed Feb 18 10:05:41 2009 -0800
   107.3 @@ -23,7 +23,8 @@
   107.4   * have any questions.
   107.5   */
   107.6  
   107.7 -#include "windows.h"
   107.8 +#include "awt.h"
   107.9 +
  107.10  #include <windowsx.h>
  107.11  #include <zmouse.h>
  107.12  
  107.13 @@ -42,7 +43,6 @@
  107.14  #include "awt_MouseEvent.h"
  107.15  #include "awt_Palette.h"
  107.16  #include "awt_Toolkit.h"
  107.17 -#include "awt_Unicode.h"
  107.18  #include "awt_Window.h"
  107.19  #include "awt_Win32GraphicsDevice.h"
  107.20  #include "Hashtable.h"
  107.21 @@ -67,30 +67,10 @@
  107.22  #include <java_awt_event_MouseWheelEvent.h>
  107.23  
  107.24  // Begin -- Win32 SDK include files
  107.25 -#include <tchar.h>
  107.26  #include <imm.h>
  107.27  #include <ime.h>
  107.28  // End -- Win32 SDK include files
  107.29  
  107.30 -#ifndef GET_KEYSTATE_WPARAM     // defined for (_WIN32_WINNT >= 0x0400)
  107.31 -#define GET_KEYSTATE_WPARAM(wParam)     (LOWORD(wParam))
  107.32 -#endif
  107.33 -
  107.34 -#ifndef GET_WHEEL_DELTA_WPARAM  // defined for (_WIN32_WINNT >= 0x0500)
  107.35 -#define GET_WHEEL_DELTA_WPARAM(wParam)  ((short)HIWORD(wParam))
  107.36 -#endif
  107.37 -
  107.38 -// <XXX> <!-- TEMPORARY HACK TO TEST AGAINST OLD VC INLCUDES -->
  107.39 -#if !defined(__int3264)
  107.40 -#define GetWindowLongPtr GetWindowLong
  107.41 -#define SetWindowLongPtr SetWindowLong
  107.42 -#define GWLP_USERDATA GWL_USERDATA
  107.43 -#define GWLP_WNDPROC  GWL_WNDPROC
  107.44 -typedef __int32 LONG_PTR;
  107.45 -typedef unsigned __int32 ULONG_PTR;
  107.46 -#endif // __int3264
  107.47 -// </XXX>
  107.48 -
  107.49  #include <awt_DnDDT.h>
  107.50  
  107.51  LPCTSTR szAwtComponentClassName = TEXT("SunAwtComponent");
  107.52 @@ -207,9 +187,7 @@
  107.53  UINT   AwtComponent::m_CodePage
  107.54                         = AwtComponent::LangToCodePage(m_idLang);
  107.55  
  107.56 -BOOL AwtComponent::m_isWin95 = IS_WIN95;
  107.57 -BOOL AwtComponent::m_isWin2000 = IS_WIN2000;
  107.58 -BOOL AwtComponent::m_isWinNT = IS_NT;
  107.59 +jint *AwtComponent::masks;
  107.60  
  107.61  static BOOL bLeftShiftIsDown = false;
  107.62  static BOOL bRightShiftIsDown = false;
  107.63 @@ -544,7 +522,7 @@
  107.64          jobject createError = NULL;
  107.65          if (dw == ERROR_OUTOFMEMORY)
  107.66          {
  107.67 -            jstring errorMsg = env->NewStringUTF("too many window handles");
  107.68 +            jstring errorMsg = JNU_NewStringPlatform(env, L"too many window handles");
  107.69              createError = JNU_NewObjectByName(env, "java/lang/OutOfMemoryError",
  107.70                                                        "(Ljava/lang/String;)V",
  107.71                                                        errorMsg);
  107.72 @@ -1201,6 +1179,9 @@
  107.73          WIN_MSG(WM_MBUTTONDOWN)
  107.74          WIN_MSG(WM_MBUTTONUP)
  107.75          WIN_MSG(WM_MBUTTONDBLCLK)
  107.76 +        WIN_MSG(WM_XBUTTONDBLCLK)
  107.77 +        WIN_MSG(WM_XBUTTONDOWN)
  107.78 +        WIN_MSG(WM_XBUTTONUP)
  107.79          WIN_MSG(WM_MOUSEWHEEL)
  107.80          WIN_MSG(WM_PARENTNOTIFY)
  107.81          WIN_MSG(WM_ENTERMENULOOP)
  107.82 @@ -1347,17 +1328,9 @@
  107.83          return (LRESULT)TRUE;
  107.84      }
  107.85  
  107.86 -    UINT switchMessage;
  107.87 -    if (IS_WIN95 && !IS_WIN98 && message == Wheel95GetMsg()) {
  107.88 -        // Wheel message is generated dynamically on 95.  A quick swap and
  107.89 -        // we're good to go.
  107.90 -        DTRACE_PRINTLN1("got wheel event on 95.  msg is %i\n", message);
  107.91 -        switchMessage = WM_MOUSEWHEEL;
  107.92 -    }
  107.93 -    else {
  107.94 -        switchMessage = message;
  107.95 -    }
  107.96 -
  107.97 +    DWORD curPos = 0;
  107.98 +
  107.99 +    UINT switchMessage = message;
 107.100      switch (switchMessage) {
 107.101        case WM_AWT_GETDC:
 107.102        {
 107.103 @@ -1644,67 +1617,87 @@
 107.104        case WM_MBUTTONDOWN:
 107.105        case WM_MBUTTONDBLCLK:
 107.106        case WM_MBUTTONUP:
 107.107 +      case WM_XBUTTONDBLCLK:
 107.108 +      case WM_XBUTTONDOWN:
 107.109 +      case WM_XBUTTONUP:
 107.110        case WM_MOUSEMOVE:
 107.111        case WM_MOUSEWHEEL:
 107.112        case WM_AWT_MOUSEENTER:
 107.113        case WM_AWT_MOUSEEXIT:
 107.114 -      {
 107.115 -          DWORD curPos = ::GetMessagePos();
 107.116 +          curPos = ::GetMessagePos();
 107.117            POINT myPos;
 107.118            myPos.x = GET_X_LPARAM(curPos);
 107.119            myPos.y = GET_Y_LPARAM(curPos);
 107.120            ::ScreenToClient(GetHWnd(), &myPos);
 107.121            switch(switchMessage) {
 107.122            case WM_AWT_MOUSEENTER:
 107.123 -              mr = WmMouseEnter(static_cast<UINT>(wParam), myPos.x, myPos.y); break;
 107.124 +              mr = WmMouseEnter(static_cast<UINT>(wParam), myPos.x, myPos.y);
 107.125 +              break;
 107.126            case WM_LBUTTONDOWN:
 107.127            case WM_LBUTTONDBLCLK:
 107.128 -                mr = WmMouseDown(static_cast<UINT>(wParam), myPos.x, myPos.y,
 107.129 -                           LEFT_BUTTON); break;
 107.130 -            case WM_LBUTTONUP:
 107.131 -                mr = WmMouseUp(static_cast<UINT>(wParam), myPos.x, myPos.y,
 107.132 -                               LEFT_BUTTON); break;
 107.133 -            case WM_MOUSEMOVE:
 107.134 -                mr = WmMouseMove(static_cast<UINT>(wParam), myPos.x, myPos.y); break;
 107.135 -      case WM_MBUTTONDOWN:
 107.136 -      case WM_MBUTTONDBLCLK:
 107.137 -                mr = WmMouseDown(static_cast<UINT>(wParam), myPos.x, myPos.y,
 107.138 -                           MIDDLE_BUTTON); break;
 107.139 -      case WM_RBUTTONDOWN:
 107.140 -      case WM_RBUTTONDBLCLK:
 107.141 -                mr = WmMouseDown(static_cast<UINT>(wParam), myPos.x, myPos.y,
 107.142 -                           RIGHT_BUTTON); break;
 107.143 -      case WM_RBUTTONUP:
 107.144 -                mr = WmMouseUp(static_cast<UINT>(wParam), myPos.x, myPos.y,
 107.145 -                         RIGHT_BUTTON);
 107.146 -          break;
 107.147 -      case WM_MBUTTONUP:
 107.148 -                mr = WmMouseUp(static_cast<UINT>(wParam), myPos.x, myPos.y,
 107.149 -                         MIDDLE_BUTTON);
 107.150 -          break;
 107.151 -      case WM_AWT_MOUSEEXIT:
 107.152 -                mr = WmMouseExit(static_cast<UINT>(wParam), myPos.x, myPos.y);
 107.153 -          break;
 107.154 -      case  WM_MOUSEWHEEL:
 107.155 -          if (IS_WIN95 && !IS_WIN98) {
 107.156 -              // On 95, the wParam doesn't contain the keystate flags, just
 107.157 -              // the wheel rotation.  The keystates are fetched in WmMouseWheel
 107.158 -              // using GetJavaModifiers().
 107.159 -              mr = WmMouseWheel(0,
 107.160 -                                GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam),
 107.161 -                                (int)wParam);
 107.162 -              return FALSE;
 107.163 -          }
 107.164 -          else {
 107.165 +              mr = WmMouseDown(static_cast<UINT>(wParam), myPos.x, myPos.y,
 107.166 +                               LEFT_BUTTON);
 107.167 +              break;
 107.168 +          case WM_LBUTTONUP:
 107.169 +              mr = WmMouseUp(static_cast<UINT>(wParam), myPos.x, myPos.y,
 107.170 +                             LEFT_BUTTON);
 107.171 +              break;
 107.172 +          case WM_MOUSEMOVE:
 107.173 +              mr = WmMouseMove(static_cast<UINT>(wParam), myPos.x, myPos.y);
 107.174 +              break;
 107.175 +          case WM_MBUTTONDOWN:
 107.176 +          case WM_MBUTTONDBLCLK:
 107.177 +              mr = WmMouseDown(static_cast<UINT>(wParam), myPos.x, myPos.y,
 107.178 +                               MIDDLE_BUTTON);
 107.179 +              break;
 107.180 +          case WM_XBUTTONDOWN:
 107.181 +          case WM_XBUTTONDBLCLK:
 107.182 +              if (AwtToolkit::GetInstance().areExtraMouseButtonsEnabled()) {
 107.183 +                  if (HIWORD(wParam) == 1) {
 107.184 +                      mr = WmMouseDown(static_cast<UINT>(wParam), myPos.x, myPos.y,
 107.185 +                                       X1_BUTTON);
 107.186 +                  }
 107.187 +                  if (HIWORD(wParam) == 2) {
 107.188 +                      mr = WmMouseDown(static_cast<UINT>(wParam), myPos.x, myPos.y,
 107.189 +                                       X2_BUTTON);
 107.190 +                  }
 107.191 +              }
 107.192 +              break;
 107.193 +          case WM_XBUTTONUP:
 107.194 +              if (AwtToolkit::GetInstance().areExtraMouseButtonsEnabled()) {
 107.195 +                  if (HIWORD(wParam) == 1) {
 107.196 +                      mr = WmMouseUp(static_cast<UINT>(wParam), myPos.x, myPos.y,
 107.197 +                                     X1_BUTTON);
 107.198 +                  }
 107.199 +                  if (HIWORD(wParam) == 2) {
 107.200 +                      mr = WmMouseUp(static_cast<UINT>(wParam), myPos.x, myPos.y,
 107.201 +                                     X2_BUTTON);
 107.202 +                  }
 107.203 +              }
 107.204 +              break;
 107.205 +          case WM_RBUTTONDOWN:
 107.206 +          case WM_RBUTTONDBLCLK:
 107.207 +              mr = WmMouseDown(static_cast<UINT>(wParam), myPos.x, myPos.y,
 107.208 +                               RIGHT_BUTTON);
 107.209 +              break;
 107.210 +          case WM_RBUTTONUP:
 107.211 +              mr = WmMouseUp(static_cast<UINT>(wParam), myPos.x, myPos.y,
 107.212 +                             RIGHT_BUTTON);
 107.213 +              break;
 107.214 +          case WM_MBUTTONUP:
 107.215 +              mr = WmMouseUp(static_cast<UINT>(wParam), myPos.x, myPos.y,
 107.216 +                             MIDDLE_BUTTON);
 107.217 +              break;
 107.218 +          case WM_AWT_MOUSEEXIT:
 107.219 +              mr = WmMouseExit(static_cast<UINT>(wParam), myPos.x, myPos.y);
 107.220 +              break;
 107.221 +          case  WM_MOUSEWHEEL:
 107.222                mr = WmMouseWheel(GET_KEYSTATE_WPARAM(wParam),
 107.223                                  GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam),
 107.224                                  GET_WHEEL_DELTA_WPARAM(wParam));
 107.225 +              break;
 107.226            }
 107.227            break;
 107.228 -          }
 107.229 -      }
 107.230 -          break;
 107.231 -
 107.232        case WM_SETCURSOR:
 107.233            mr = mrDoDefault;
 107.234            if (LOWORD(lParam) == HTCLIENT) {
 107.235 @@ -2589,8 +2582,12 @@
 107.236          lastComp = this;
 107.237          lastX = x;
 107.238          lastY = y;
 107.239 -
 107.240 -        if ( (flags & ALL_MK_BUTTONS) != 0 ) {
 107.241 +        BOOL extraButtonsEnabled = AwtToolkit::GetInstance().areExtraMouseButtonsEnabled();
 107.242 +        if (((flags & (ALL_MK_BUTTONS)) != 0) ||
 107.243 +            (extraButtonsEnabled && (flags & (X_BUTTONS)) != 0))
 107.244 +//        if (( extraButtonsEnabled && ( (flags & (ALL_MK_BUTTONS | X_BUTTONS)) != 0 )) ||
 107.245 +//            ( !extraButtonsEnabled && (((flags & (ALL_MK_BUTTONS)) != 0 )) && ((flags & (X_BUTTONS)) == 0) ))
 107.246 +        {
 107.247              // 6404008 : if Dragged event fired we shouldn't fire
 107.248              // Clicked event: m_firstDragSent set to TRUE.
 107.249              // This is a partial backout of 5039416 fix.
 107.250 @@ -2649,21 +2646,10 @@
 107.251      jdouble preciseWheelRotation = (jdouble) wheelRotation / (-1 * WHEEL_DELTA);
 107.252  
 107.253      MSG msg;
 107.254 -
 107.255 -    if (IS_WIN95 && !IS_WIN98) {
 107.256 -        // 95 doesn't understand the SPI_GETWHEELSCROLLLINES - get the user
 107.257 -        // preference by other means
 107.258 -        DTRACE_PRINTLN("WmMouseWheel: using 95 branch");
 107.259 -        platformLines = Wheel95GetScrLines();
 107.260 -        result = true;
 107.261 -        InitMessage(&msg, lastMessage, wheelRotation, MAKELPARAM(x, y));
 107.262 -    }
 107.263 -    else {
 107.264 -        result = ::SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0,
 107.265 -                                        &platformLines, 0);
 107.266 -        InitMessage(&msg, lastMessage, MAKEWPARAM(flags, wheelRotation),
 107.267 -                            MAKELPARAM(x, y));
 107.268 -    }
 107.269 +    result = ::SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0,
 107.270 +                                    &platformLines, 0);
 107.271 +    InitMessage(&msg, lastMessage, MAKEWPARAM(flags, wheelRotation),
 107.272 +                MAKELPARAM(x, y));
 107.273  
 107.274      if (result) {
 107.275          if (platformLines == WHEEL_PAGESCROLL) {
 107.276 @@ -2743,156 +2729,21 @@
 107.277        "AwtComponent::GetShiftKeyLocation  vkey = %d = 0x%x  scan = %d",
 107.278        vkey, vkey, keyScanCode);
 107.279  
 107.280 -    if (m_isWinNT) {
 107.281 -        leftShiftScancode = ::MapVirtualKey(VK_LSHIFT, 0);
 107.282 -        rightShiftScancode = ::MapVirtualKey(VK_RSHIFT, 0);
 107.283 -
 107.284 -        if (keyScanCode == leftShiftScancode) {
 107.285 -            return java_awt_event_KeyEvent_KEY_LOCATION_LEFT;
 107.286 -        }
 107.287 -        if (keyScanCode == rightShiftScancode) {
 107.288 -            return java_awt_event_KeyEvent_KEY_LOCATION_RIGHT;
 107.289 -        }
 107.290 -
 107.291 -        DASSERT(false);
 107.292 -        // Note: the above should not fail on NT (or 2000),
 107.293 -        // but just in case it does, try the more complicated method
 107.294 -        // we use for Win9x below.
 107.295 -    }
 107.296 -
 107.297 -    // "Transition" bit = 0 if keyPressed, 1 if keyReleased
 107.298 -    BOOL released = ((1<<15) & flags);
 107.299 -
 107.300 -    DTRACE_PRINTLN2(
 107.301 -      "AwtComponent::GetShiftKeyLocation  bLeftShiftIsDown = %d  bRightShiftIsDown == %d",
 107.302 -      bLeftShiftIsDown, bRightShiftIsDown);
 107.303 -    DTRACE_PRINTLN2(
 107.304 -      "AwtComponent::GetShiftKeyLocation  lastShiftKeyPressed = %d  released = %d",
 107.305 -      lastShiftKeyPressed, released);
 107.306 -
 107.307 -    jint keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_UNKNOWN;
 107.308 -
 107.309 -    // It is possible for somebody to hold down one or both
 107.310 -    // Shift keys, causing repeat key events.  We need to
 107.311 -    // handle all the cases.
 107.312 -    //
 107.313 -    // Just a side-note: if two or more keys are being held down,
 107.314 -    // and then one key is released, whether more key presses are
 107.315 -    // generated for the keys that are still held down depends on
 107.316 -    // which keys they are, and whether you released the right or
 107.317 -    // the left shift/ctrl/etc. key first.  This also differs
 107.318 -    // between Win9x and NT.  Just plain screwy.
 107.319 -    //
 107.320 -    // Note: on my PC, the repeat count is always 1.  Yup, we need
 107.321 -    // 16 bits to handle that, all right.
 107.322 -
 107.323 -    // Handle the case where only one of the Shift keys
 107.324 -    // was down before this event took place
 107.325 -    if (bLeftShiftIsDown && !bRightShiftIsDown) {
 107.326 -        if (released) {
 107.327 -            // This is a left Shift release
 107.328 -            keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_LEFT;
 107.329 -        } else {
 107.330 -            // This is a right Shift press
 107.331 -            keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_RIGHT;
 107.332 -        }
 107.333 -    } else if (!bLeftShiftIsDown && bRightShiftIsDown) {
 107.334 -        if (released) {
 107.335 -            // This is a right Shift release
 107.336 -            keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_RIGHT;
 107.337 -        } else {
 107.338 -            // This is a left Shift press
 107.339 -            keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_LEFT;
 107.340 -        }
 107.341 -    }
 107.342 -
 107.343 -    // Handle the case where neither of the Shift keys
 107.344 -    // were down before this event took place
 107.345 -    if (!bLeftShiftIsDown && !bRightShiftIsDown) {
 107.346 -        DASSERT(!released);
 107.347 -        if (HIBYTE(::GetKeyState(VK_LSHIFT)) != 0) {
 107.348 -            // This is a left Shift press
 107.349 -            keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_LEFT;
 107.350 -        } else if (HIBYTE(::GetKeyState(VK_RSHIFT)) != 0) {
 107.351 -            // This is a right Shift press
 107.352 -            keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_RIGHT;
 107.353 -        } else {
 107.354 -            DASSERT(false);
 107.355 -        }
 107.356 -    }
 107.357 -
 107.358 -    // Handle the case where both Shift keys were down before
 107.359 -    // this event took place
 107.360 -    if (bLeftShiftIsDown && bRightShiftIsDown) {
 107.361 -        // If this is a key release event, we can just check to see
 107.362 -        // what the keyboard state is after the event
 107.363 -        if (released) {
 107.364 -            if (HIBYTE(::GetKeyState(VK_RSHIFT)) == 0) {
 107.365 -                // This is a right Shift release
 107.366 -                keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_RIGHT;
 107.367 -            } else if (HIBYTE(::GetKeyState(VK_LSHIFT)) == 0) {
 107.368 -                // This is a left Shift release
 107.369 -                keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_LEFT;
 107.370 -            } else {
 107.371 -                DASSERT(false);
 107.372 -            }
 107.373 -        } else {
 107.374 -            // If this is a key press event, and both Shift keys were
 107.375 -            // already down, this is going to be a repeat of the last
 107.376 -            // Shift press
 107.377 -            if (lastShiftKeyPressed == VK_LSHIFT) {
 107.378 -                keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_LEFT;
 107.379 -            } else if (lastShiftKeyPressed == VK_RSHIFT) {
 107.380 -                keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_RIGHT;
 107.381 -            } else {
 107.382 -                DASSERT(false);
 107.383 -            }
 107.384 -        }
 107.385 -    }
 107.386 -
 107.387 -    if (keyLocation == java_awt_event_KeyEvent_KEY_LOCATION_UNKNOWN) {
 107.388 -        // Nothing we tried above worked for some reason.  Sigh.
 107.389 -        // Make a last-ditch effort to guess what happened:
 107.390 -        // guess that the Shift scancodes are usually the same
 107.391 -        // from system to system, even though this isn't guaranteed.
 107.392 -        DTRACE_PRINTLN("Last-ditch effort at guessing Shift keyLocation");
 107.393 -
 107.394 -        // Tested on a couple of Windows keyboards: these are standard values
 107.395 -        leftShiftScancode = 42;
 107.396 -        rightShiftScancode = 54;
 107.397 -
 107.398 -        if (keyScanCode == leftShiftScancode) {
 107.399 -            keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_LEFT;
 107.400 -        } else if (keyScanCode == rightShiftScancode) {
 107.401 -            keyLocation = java_awt_event_KeyEvent_KEY_LOCATION_RIGHT;
 107.402 -        }
 107.403 -    }
 107.404 -
 107.405 -    // Set the Shift flags with the new key state.
 107.406 -    bLeftShiftIsDown = (HIBYTE(::GetKeyState(VK_LSHIFT)) != 0);
 107.407 -    bRightShiftIsDown = (HIBYTE(::GetKeyState(VK_RSHIFT)) != 0);
 107.408 -
 107.409 -    // Update lastShiftKeyPressed
 107.410 -    if (released) {
 107.411 -        // At most one shift key is down now, so just check which one
 107.412 -        if (bLeftShiftIsDown) {
 107.413 -            lastShiftKeyPressed = VK_LSHIFT;
 107.414 -            DASSERT(!bRightShiftIsDown);
 107.415 -        } else if (bRightShiftIsDown) {
 107.416 -            lastShiftKeyPressed = VK_RSHIFT;
 107.417 -        } else {
 107.418 -            lastShiftKeyPressed = 0;
 107.419 -        }
 107.420 -    } else {
 107.421 -        // It was a press, so at least one shift key is down now
 107.422 -        if (keyLocation == java_awt_event_KeyEvent_KEY_LOCATION_LEFT) {
 107.423 -            lastShiftKeyPressed = VK_LSHIFT;
 107.424 -        } else if (keyLocation == java_awt_event_KeyEvent_KEY_LOCATION_RIGHT) {
 107.425 -            lastShiftKeyPressed = VK_RSHIFT;
 107.426 -        }
 107.427 -    }
 107.428 -
 107.429 -    return keyLocation;
 107.430 +    leftShiftScancode = ::MapVirtualKey(VK_LSHIFT, 0);
 107.431 +    rightShiftScancode = ::MapVirtualKey(VK_RSHIFT, 0);
 107.432 +
 107.433 +    if (keyScanCode == leftShiftScancode) {
 107.434 +        return java_awt_event_KeyEvent_KEY_LOCATION_LEFT;
 107.435 +    }
 107.436 +    if (keyScanCode == rightShiftScancode) {
 107.437 +        return java_awt_event_KeyEvent_KEY_LOCATION_RIGHT;
 107.438 +    }
 107.439 +
 107.440 +    DASSERT(false);
 107.441 +    // Note: the above should not fail on NT (or 2000)
 107.442 +
 107.443 +    // default value
 107.444 +    return java_awt_event_KeyEvent_KEY_LOCATION_LEFT;
 107.445  }
 107.446  
 107.447  /* Returns Java extended InputEvent modifieres.
 107.448 @@ -2914,7 +2765,7 @@
 107.449          modifiers |= java_awt_event_InputEvent_ALT_DOWN_MASK;
 107.450      }
 107.451      if (HIBYTE(::GetKeyState(VK_MBUTTON)) != 0) {
 107.452 -        modifiers |= java_awt_event_InputEvent_BUTTON2_DOWN_MASK;
 107.453 +       modifiers |= java_awt_event_InputEvent_BUTTON2_DOWN_MASK;
 107.454      }
 107.455      if (HIBYTE(::GetKeyState(VK_RBUTTON)) != 0) {
 107.456          modifiers |= java_awt_event_InputEvent_BUTTON3_DOWN_MASK;
 107.457 @@ -2922,6 +2773,13 @@
 107.458      if (HIBYTE(::GetKeyState(VK_LBUTTON)) != 0) {
 107.459          modifiers |= java_awt_event_InputEvent_BUTTON1_DOWN_MASK;
 107.460      }
 107.461 +
 107.462 +    if (HIBYTE(::GetKeyState(VK_XBUTTON1)) != 0) {
 107.463 +        modifiers |= masks[3];
 107.464 +    }
 107.465 +    if (HIBYTE(::GetKeyState(VK_XBUTTON2)) != 0) {
 107.466 +        modifiers |= masks[4];
 107.467 +    }
 107.468      return modifiers;
 107.469  }
 107.470  
 107.471 @@ -2936,6 +2794,11 @@
 107.472          return java_awt_event_MouseEvent_BUTTON2;
 107.473      case RIGHT_BUTTON:
 107.474          return java_awt_event_MouseEvent_BUTTON3;
 107.475 +    case X1_BUTTON: //16 :
 107.476 +        //just assign 4 and 5 numbers because MouseEvent class doesn't contain const identifier for them now
 107.477 +        return 4;
 107.478 +    case X2_BUTTON: //32
 107.479 +        return 5;
 107.480      }
 107.481      return java_awt_event_MouseEvent_NOBUTTON;
 107.482  }
 107.483 @@ -2950,6 +2813,10 @@
 107.484          return MK_MBUTTON;
 107.485      case RIGHT_BUTTON:
 107.486          return MK_RBUTTON;
 107.487 +    case X1_BUTTON:
 107.488 +        return MK_XBUTTON1;
 107.489 +    case X2_BUTTON:
 107.490 +        return MK_XBUTTON2;
 107.491      }
 107.492      return 0;
 107.493  }
 107.494 @@ -2967,6 +2834,14 @@
 107.495  #define VK_NONCONVERT     0x1D
 107.496  #endif
 107.497  
 107.498 +#ifndef VK_XBUTTON1
 107.499 +#define VK_XBUTTON1      0x05
 107.500 +#endif
 107.501 +
 107.502 +#ifndef VK_XBUTTON2
 107.503 +#define VK_XBUTTON2      0x06
 107.504 +#endif
 107.505 +
 107.506  typedef struct {
 107.507      UINT javaKey;
 107.508      UINT windowsKey;
 107.509 @@ -3786,22 +3661,6 @@
 107.510      // via WM_AWT_FORWARD_BYTE, but the Edit classes don't seem to
 107.511      // like that.
 107.512  
 107.513 -    // Begin pollution
 107.514 -    if (!m_isWinNT && IsDBCSLeadByteEx(GetCodePage(), BYTE(character))) {
 107.515 -        if (GetDBCSEditHandle() != NULL) {
 107.516 -            return mrDoDefault;
 107.517 -        } else {
 107.518 -            // Kludge: Some Chinese IMEs, e.g. QuanPin, sends two WM_CHAR
 107.519 -            // messages for some punctuations (e.g. full stop) without sending
 107.520 -            // WM_IME_CHAR message beforehand.
 107.521 -            if (m_PendingLeadByte == 0) {
 107.522 -                m_PendingLeadByte = character;
 107.523 -                return mrConsume;
 107.524 -            }
 107.525 -        }
 107.526 -    }
 107.527 -    // End pollution
 107.528 -
 107.529      // We will simply create Java events here.
 107.530      UINT message = system ? WM_SYSCHAR : WM_CHAR;
 107.531  
 107.532 @@ -3861,43 +3720,8 @@
 107.533  MsgRouting AwtComponent::WmForwardChar(WCHAR character, LPARAM lParam,
 107.534                                         BOOL synthetic)
 107.535  {
 107.536 -    if (m_isWinNT) {
 107.537 -        // just post WM_CHAR with unicode key value
 107.538 -        DefWindowProc(WM_CHAR, (WPARAM)character, lParam);
 107.539 -        return mrConsume;
 107.540 -    }
 107.541 -
 107.542 -    // This message is sent from the Java key event handler.
 107.543 -    CHAR mbChar[2] = {'\0', '\0'};
 107.544 -
 107.545 -    int cBytes = ::WideCharToMultiByte(GetCodePage(), 0, &character, 1, mbChar, 2, NULL, NULL);
 107.546 -    if (cBytes!=1 && cBytes!=2)    return mrConsume;
 107.547 -
 107.548 -    HWND hDBCSEditHandle = GetDBCSEditHandle();
 107.549 -
 107.550 -    if (hDBCSEditHandle != NULL && cBytes==2)
 107.551 -    {
 107.552 -        // The first WM_CHAR message will get handled by the WmChar, but
 107.553 -        // the second WM_CHAR message will get picked off by the Edit class.
 107.554 -        // WmChar will never see it.
 107.555 -        // If an Edit class gets a lead byte, it immediately calls PeekMessage
 107.556 -        // and pulls the trail byte out of the message queue.
 107.557 -        ::PostMessage(hDBCSEditHandle, WM_CHAR, mbChar[0] & 0x00ff, lParam);
 107.558 -        ::PostMessage(hDBCSEditHandle, WM_CHAR, mbChar[1] & 0x00ff, lParam);
 107.559 -    }
 107.560 -    else
 107.561 -    {
 107.562 -        MSG* pMsg;
 107.563 -        pMsg = CreateMessage(WM_CHAR, mbChar[0] & 0x00ff, lParam);
 107.564 -        ::PostMessage(GetHWnd(), WM_AWT_FORWARD_BYTE, (WPARAM)synthetic,
 107.565 -                      (LPARAM)pMsg);
 107.566 -        if (mbChar[1])
 107.567 -        {
 107.568 -            pMsg = CreateMessage(WM_CHAR, mbChar[1] & 0x00ff, lParam);
 107.569 -            ::PostMessage(GetHWnd(), WM_AWT_FORWARD_BYTE, (WPARAM)synthetic,
 107.570 -                          (LPARAM)pMsg);
 107.571 -        }
 107.572 -    }
 107.573 +    // just post WM_CHAR with unicode key value
 107.574 +    DefWindowProc(WM_CHAR, (WPARAM)character, lParam);
 107.575      return mrConsume;
 107.576  }
 107.577  
 107.578 @@ -3929,7 +3753,7 @@
 107.579              SetCandidateWindow(iCandType, x-rc.left, y-rc.top);
 107.580      }
 107.581      if (m_bitsCandType != 0) {
 107.582 -        DefWindowProc(WM_IME_NOTIFY, IMN_OPENCANDIDATE, m_bitsCandType);
 107.583 +        ::DefWindowProc(GetHWnd(), WM_IME_NOTIFY, IMN_OPENCANDIDATE, m_bitsCandType);
 107.584      }
 107.585  }
 107.586  
 107.587 @@ -4543,7 +4367,7 @@
 107.588  
 107.589          // Special case for components with a sunken border. Windows does not
 107.590          // print the border correctly on PCL printers, so we have to do it ourselves.
 107.591 -        if (IS_WIN4X && (GetStyleEx() & WS_EX_CLIENTEDGE)) {
 107.592 +        if (GetStyleEx() & WS_EX_CLIENTEDGE) {
 107.593              RECT r;
 107.594              VERIFY(::GetWindowRect(GetHWnd(), &r));
 107.595              VERIFY(::OffsetRect(&r, -r.left, -r.top));
 107.596 @@ -4559,7 +4383,7 @@
 107.597           * We will first print the non-client area with the original offset,
 107.598           * then the client area with a corrected offset.
 107.599           */
 107.600 -        if (IS_WIN4X && (GetStyleEx() & WS_EX_CLIENTEDGE)) {
 107.601 +        if (GetStyleEx() & WS_EX_CLIENTEDGE) {
 107.602  
 107.603              int nEdgeWidth = ::GetSystemMetrics(SM_CXEDGE);
 107.604              int nEdgeHeight = ::GetSystemMetrics(SM_CYEDGE);
 107.605 @@ -5305,7 +5129,12 @@
 107.606            if (modifiers & java_awt_event_InputEvent_BUTTON3_DOWN_MASK) {
 107.607                wLow |= MK_MBUTTON;
 107.608            }
 107.609 -
 107.610 +          if (modifiers & X1_BUTTON) {
 107.611 +              wLow |= GetButtonMK(X1_BUTTON);
 107.612 +          }
 107.613 +          if (modifiers & X2_BUTTON) {
 107.614 +              wLow |= GetButtonMK(X2_BUTTON);
 107.615 +          }
 107.616  
 107.617            wheelAmt = (jint)JNU_CallMethodByName(env,
 107.618                                                 NULL,
 107.619 @@ -5319,18 +5148,8 @@
 107.620            // convert Java wheel amount value to Win32
 107.621            wheelAmt *= -1 * WHEEL_DELTA;
 107.622  
 107.623 -          if (IS_WIN95 && !IS_WIN98) {
 107.624 -              // 95 doesn't understand WM_MOUSEWHEEL, so plug in value of
 107.625 -              // mouse wheel event on 95
 107.626 -              DTRACE_PRINTLN("awt_C::synthmm - 95 case");
 107.627 -              DASSERT(Wheel95GetMsg() != NULL);
 107.628 -              message = Wheel95GetMsg();
 107.629 -              wParam = wheelAmt;
 107.630 -          }
 107.631 -          else {
 107.632 -              message = WM_MOUSEWHEEL;
 107.633 -              wParam = MAKEWPARAM(wLow, wheelAmt);
 107.634 -          }
 107.635 +          message = WM_MOUSEWHEEL;
 107.636 +          wParam = MAKEWPARAM(wLow, wheelAmt);
 107.637  
 107.638            break;
 107.639        default:
 107.640 @@ -5445,45 +5264,6 @@
 107.641      VerifyState();
 107.642  }
 107.643  
 107.644 -/* Initialization of MouseWheel support on Windows 95 */
 107.645 -void AwtComponent::Wheel95Init() {
 107.646 -    DASSERT(IS_WIN95 && !IS_WIN98);
 107.647 -
 107.648 -    HWND mwHWND = NULL;
 107.649 -    UINT wheelMSG = WM_NULL;
 107.650 -    UINT suppMSG = WM_NULL;
 107.651 -    UINT linesMSG = WM_NULL;
 107.652 -    BOOL wheelActive;
 107.653 -    INT lines;
 107.654 -
 107.655 -    mwHWND = HwndMSWheel(&wheelMSG, &suppMSG, &linesMSG, &wheelActive, &lines);
 107.656 -    if (mwHWND != WM_NULL) {
 107.657 -        sm_95WheelMessage = wheelMSG;
 107.658 -        sm_95WheelSupport = suppMSG;
 107.659 -    }
 107.660 -}
 107.661 -
 107.662 -/* Win95 only
 107.663 - * Return the user's preferred number of lines of test to scroll when the
 107.664 - * mouse wheel is rotated.
 107.665 - */
 107.666 -UINT AwtComponent::Wheel95GetScrLines() {
 107.667 -    DASSERT(IS_WIN95 && !IS_WIN98);
 107.668 -    DASSERT(sm_95WheelSupport != NULL);
 107.669 -
 107.670 -    HWND mwHWND = NULL;
 107.671 -    UINT linesMSG = WM_NULL;
 107.672 -    INT numLines = 3;
 107.673 -
 107.674 -    linesMSG = RegisterWindowMessage(MSH_SCROLL_LINES);
 107.675 -    mwHWND = FindWindow(MSH_WHEELMODULE_CLASS, MSH_WHEELMODULE_TITLE);
 107.676 -
 107.677 -    if (mwHWND && linesMSG) {
 107.678 -        numLines = (INT)::SendMessage(mwHWND, linesMSG, 0, 0);
 107.679 -    }
 107.680 -    return numLines;
 107.681 -}
 107.682 -
 107.683  /*
 107.684   * associate an AwtDropTarget with this AwtComponent
 107.685   */
 107.686 @@ -5983,7 +5763,7 @@
 107.687      {
 107.688          AwtFont *awtFont = (AwtFont *)env->GetLongField(font, AwtFont::pDataID);
 107.689          if (awtFont == NULL) {
 107.690 -        /*arguments of AwtFont::Create are changed for multifont component */
 107.691 +            /*arguments of AwtFont::Create are changed for multifont component */
 107.692              awtFont = AwtFont::Create(env, font);
 107.693          }
 107.694          env->SetLongField(font, AwtFont::pDataID, (jlong)awtFont);
 107.695 @@ -6334,30 +6114,36 @@
 107.696      c = (AwtComponent *)pData;
 107.697      if (::IsWindow(c->GetHWnd()))
 107.698      {
 107.699 -        RGNDATA *pRgnData = NULL;
 107.700 -        RGNDATAHEADER *pRgnHdr;
 107.701 -
 107.702 -        /* reserving memory for the worst case */
 107.703 -        size_t worstBufferSize = size_t(((x2 - x1) / 2 + 1) * (y2 - y1));
 107.704 -        pRgnData = (RGNDATA *) safe_Malloc(sizeof(RGNDATAHEADER) +
 107.705 -                sizeof(RECT_T) * worstBufferSize);
 107.706 -        pRgnHdr = (RGNDATAHEADER *) pRgnData;
 107.707 -
 107.708 -        pRgnHdr->dwSize = sizeof(RGNDATAHEADER);
 107.709 -        pRgnHdr->iType = RDH_RECTANGLES;
 107.710 -        pRgnHdr->nRgnSize = 0;
 107.711 -        pRgnHdr->rcBound.top = 0;
 107.712 -        pRgnHdr->rcBound.left = 0;
 107.713 -        pRgnHdr->rcBound.bottom = LONG(y2 - y1);
 107.714 -        pRgnHdr->rcBound.right = LONG(x2 - x1);
 107.715 -
 107.716 -        RECT_T * pRect = (RECT_T *) (((BYTE *) pRgnData) + sizeof(RGNDATAHEADER));
 107.717 -        pRgnHdr->nCount = RegionToYXBandedRectangles(env, x1, y1, x2, y2, region, &pRect, worstBufferSize);
 107.718 -
 107.719 -        HRGN hRgn = ::ExtCreateRegion(NULL,
 107.720 -                sizeof(RGNDATAHEADER) + sizeof(RECT_T) * pRgnHdr->nCount, pRgnData);
 107.721 -
 107.722 -        free(pRgnData);
 107.723 +        HRGN hRgn = NULL;
 107.724 +
 107.725 +        if (region || x1 || x2 || y1 || y2) {
 107.726 +            // If all the params are zeros, the shape must be simply reset.
 107.727 +            // Otherwise, convert it into a region.
 107.728 +            RGNDATA *pRgnData = NULL;
 107.729 +            RGNDATAHEADER *pRgnHdr;
 107.730 +
 107.731 +            /* reserving memory for the worst case */
 107.732 +            size_t worstBufferSize = size_t(((x2 - x1) / 2 + 1) * (y2 - y1));
 107.733 +            pRgnData = (RGNDATA *) safe_Malloc(sizeof(RGNDATAHEADER) +
 107.734 +                    sizeof(RECT_T) * worstBufferSize);
 107.735 +            pRgnHdr = (RGNDATAHEADER *) pRgnData;
 107.736 +
 107.737 +            pRgnHdr->dwSize = sizeof(RGNDATAHEADER);
 107.738 +            pRgnHdr->iType = RDH_RECTANGLES;
 107.739 +            pRgnHdr->nRgnSize = 0;
 107.740 +            pRgnHdr->rcBound.top = 0;
 107.741 +            pRgnHdr->rcBound.left = 0;
 107.742 +            pRgnHdr->rcBound.bottom = LONG(y2 - y1);
 107.743 +            pRgnHdr->rcBound.right = LONG(x2 - x1);
 107.744 +
 107.745 +            RECT_T * pRect = (RECT_T *) (((BYTE *) pRgnData) + sizeof(RGNDATAHEADER));
 107.746 +            pRgnHdr->nCount = RegionToYXBandedRectangles(env, x1, y1, x2, y2, region, &pRect, worstBufferSize);
 107.747 +
 107.748 +            hRgn = ::ExtCreateRegion(NULL,
 107.749 +                    sizeof(RGNDATAHEADER) + sizeof(RECT_T) * pRgnHdr->nCount, pRgnData);
 107.750 +
 107.751 +            free(pRgnData);
 107.752 +        }
 107.753  
 107.754          ::SetWindowRgn(c->GetHWnd(), hRgn, TRUE);
 107.755      }
 107.756 @@ -6451,6 +6237,18 @@
 107.757  Java_java_awt_Component_initIDs(JNIEnv *env, jclass cls)
 107.758  {
 107.759      TRY;
 107.760 +    jclass inputEventClazz = env->FindClass("java/awt/event/InputEvent");
 107.761 +    jmethodID getButtonDownMasksID = env->GetStaticMethodID(inputEventClazz, "getButtonDownMasks", "()[I");
 107.762 +    jintArray obj = (jintArray)env->CallStaticObjectMethod(inputEventClazz, getButtonDownMasksID);
 107.763 +    jint * tmp = env->GetIntArrayElements(obj, JNI_FALSE);
 107.764 +
 107.765 +    jsize len = env->GetArrayLength(obj);
 107.766 +    AwtComponent::masks = new jint[len];
 107.767 +    for (int i = 0; i < len; i++) {
 107.768 +        AwtComponent::masks[i] = tmp[i];
 107.769 +    }
 107.770 +    env->ReleaseIntArrayElements(obj, tmp, 0);
 107.771 +    env->DeleteLocalRef(obj);
 107.772  
 107.773      /* class ids */
 107.774      jclass peerCls = env->FindClass("sun/awt/windows/WComponentPeer");
 107.775 @@ -7025,20 +6823,6 @@
 107.776      CATCH_BAD_ALLOC_RET(NULL);
 107.777  }
 107.778  
 107.779 -/*
 107.780 - * Class:     sun_awt_windows_WComponentPeer
 107.781 - * Method:    wheelInit
 107.782 - * Signature: ()V
 107.783 - */
 107.784 -JNIEXPORT void JNICALL
 107.785 -Java_sun_awt_windows_WComponentPeer_wheelInit(JNIEnv *env, jclass cls)
 107.786 -{
 107.787 -    // Only necessary on Win95
 107.788 -    if (IS_WIN95 && !IS_WIN98) {
 107.789 -        AwtComponent::Wheel95Init();
 107.790 -    }
 107.791 -}
 107.792 -
 107.793  JNIEXPORT jboolean JNICALL
 107.794  Java_sun_awt_windows_WComponentPeer_processSynchronousLightweightTransfer(JNIEnv *env, jclass cls,
 107.795                                                                            jobject heavyweight,
 107.796 @@ -7217,7 +7001,9 @@
 107.797                                                "getName",
 107.798                                                "()Ljava/lang/String;").l;
 107.799              DASSERT(!safe_ExceptionOccurred(env));
 107.800 -            printf("\t%S\n", TO_WSTRING(targetStr));
 107.801 +            LPCWSTR targetStrW = JNU_GetStringPlatformChars(env, targetStr, NULL);
 107.802 +            printf("\t%S\n", targetStrW);
 107.803 +            JNU_ReleaseStringPlatformChars(env, targetStr, targetStrW);
 107.804          }
 107.805          printf("\twas:       [%d,%d,%dx%d]\n", x, y, width, height);
 107.806          if (!fSizeValid) {
   108.1 --- a/src/windows/native/sun/windows/awt_Component.h	Tue Feb 17 09:06:16 2009 -0800
   108.2 +++ b/src/windows/native/sun/windows/awt_Component.h	Wed Feb 18 10:05:41 2009 -0800
   108.3 @@ -53,6 +53,22 @@
   108.4  #define MIDDLE_BUTTON 2
   108.5  #define RIGHT_BUTTON 4
   108.6  #define DBL_CLICK 8
   108.7 +#define X1_BUTTON 16
   108.8 +#define X2_BUTTON 32
   108.9 +
  108.10 +#ifndef MK_XBUTTON1
  108.11 +#define MK_XBUTTON1         0x0020
  108.12 +#endif
  108.13 +
  108.14 +#ifndef MK_XBUTTON2
  108.15 +#define MK_XBUTTON2         0x0040
  108.16 +#endif
  108.17 +
  108.18 +// combination of standard mouse button flags
  108.19 +const int ALL_MK_BUTTONS = MK_LBUTTON|MK_MBUTTON|MK_RBUTTON;
  108.20 +const int X_BUTTONS = MK_XBUTTON1|MK_XBUTTON2;
  108.21 +
  108.22 +
  108.23  
  108.24  // Whether to check for embedded frame and adjust location
  108.25  #define CHECK_EMBEDDED 0
  108.26 @@ -81,11 +97,6 @@
  108.27  
  108.28  class AwtComponent : public AwtObject {
  108.29  public:
  108.30 -    enum {
  108.31 -        // combination of all mouse button flags
  108.32 -        ALL_MK_BUTTONS = MK_LBUTTON|MK_MBUTTON|MK_RBUTTON
  108.33 -    };
  108.34 -
  108.35      /* java.awt.Component fields and method IDs */
  108.36      static jfieldID peerID;
  108.37      static jfieldID xID;
  108.38 @@ -112,6 +123,7 @@
  108.39      static jmethodID replaceSurfaceDataLaterMID;
  108.40  
  108.41      static const UINT WmAwtIsComponent;
  108.42 +    static jint * masks; //InputEvent mask array
  108.43      AwtComponent();
  108.44      virtual ~AwtComponent();
  108.45  
  108.46 @@ -675,10 +687,6 @@
  108.47      static HWND sm_focusOwner;
  108.48      static HWND sm_focusedWindow;
  108.49  
  108.50 -    static BOOL m_isWin95;
  108.51 -    static BOOL m_isWin2000;
  108.52 -    static BOOL m_isWinNT;
  108.53 -
  108.54      static BOOL sm_bMenuLoop;
  108.55      static INLINE BOOL isMenuLoopActive() {
  108.56          return sm_bMenuLoop;
   109.1 --- a/src/windows/native/sun/windows/awt_Cursor.cpp	Tue Feb 17 09:06:16 2009 -0800
   109.2 +++ b/src/windows/native/sun/windows/awt_Cursor.cpp	Wed Feb 18 10:05:41 2009 -0800
   109.3 @@ -1,5 +1,5 @@
   109.4  /*
   109.5 - * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
   109.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
   109.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   109.8   *
   109.9   * This code is free software; you can redistribute it and/or modify it
  109.10 @@ -79,10 +79,6 @@
  109.11  
  109.12      custom = TRUE;
  109.13      dirty = FALSE;
  109.14 -
  109.15 -    if (IsWin95Cursor()) {
  109.16 -        customCursors.Add(this);
  109.17 -    }
  109.18  }
  109.19  
  109.20  AwtCursor::~AwtCursor()
  109.21 @@ -96,9 +92,6 @@
  109.22  
  109.23      if (custom) {
  109.24          ::DestroyIcon(hCursor);
  109.25 -        if (IsWin95Cursor()) {
  109.26 -            customCursors.Remove(this);
  109.27 -        }
  109.28      }
  109.29  
  109.30      JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
  109.31 @@ -256,16 +249,6 @@
  109.32      env->DeleteLocalRef(jcomp);
  109.33  }
  109.34  
  109.35 -void AwtCursor::DirtyAllCustomCursors() {
  109.36 -    if (IsWin95Cursor()) {
  109.37 -        AwtObjectListItem *cur = customCursors.m_head;
  109.38 -        while (cur != NULL) {
  109.39 -            ((AwtCursor *)(cur->obj))->dirty = TRUE;
  109.40 -            cur = cur->next;
  109.41 -        }
  109.42 -    }
  109.43 -}
  109.44 -
  109.45  void AwtCursor::Rebuild() {
  109.46      if (!dirty) {
  109.47          return;
  109.48 @@ -294,23 +277,6 @@
  109.49      dirty = FALSE;
  109.50  }
  109.51  
  109.52 -/* Bug fix for 4205805:
  109.53 -   Custom cursor on WIN95 needs more effort, the same API works fine on NT
  109.54 -   and WIN98. On Win95, DDB has to be passed in when calling createIconIndirect
  109.55 -   Since DDB depends on the DISPLAY, we have to rebuild all the custom cursors
  109.56 -   when user changes the display settings.
  109.57 -*/
  109.58 -BOOL AwtCursor::IsWin95Cursor() {
  109.59 -    static BOOL val;
  109.60 -    static BOOL known = FALSE;
  109.61 -    if (!known) {
  109.62 -        val = (IS_WIN32 && !IS_NT && LOBYTE(LOWORD(::GetVersion())) == 4 &&
  109.63 -               HIBYTE(LOWORD(::GetVersion())) == 0);
  109.64 -        known = TRUE;
  109.65 -    }
  109.66 -    return val;
  109.67 -}
  109.68 -
  109.69  extern "C" {
  109.70  
  109.71  /************************************************************************
   110.1 --- a/src/windows/native/sun/windows/awt_Cursor.h	Tue Feb 17 09:06:16 2009 -0800
   110.2 +++ b/src/windows/native/sun/windows/awt_Cursor.h	Wed Feb 18 10:05:41 2009 -0800
   110.3 @@ -1,5 +1,5 @@
   110.4  /*
   110.5 - * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
   110.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
   110.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   110.8   *
   110.9   * This code is free software; you can redistribute it and/or modify it
  110.10 @@ -66,7 +66,6 @@
  110.11      }
  110.12      static AwtCursor * CreateSystemCursor(jobject jCursor);
  110.13      static void UpdateCursor(AwtComponent *comp);
  110.14 -    static void DirtyAllCustomCursors();
  110.15      static HCURSOR  GetCursor(JNIEnv *env, AwtComponent *comp);
  110.16  
  110.17      static void setPData(jobject cursor, jlong pdata) {
  110.18 @@ -76,7 +75,6 @@
  110.19  
  110.20  private:
  110.21      void Rebuild();
  110.22 -    static BOOL IsWin95Cursor();
  110.23  
  110.24      HCURSOR hCursor;
  110.25      jweak jCursor;
   111.1 --- a/src/windows/native/sun/windows/awt_DataTransferer.cpp	Tue Feb 17 09:06:16 2009 -0800
   111.2 +++ b/src/windows/native/sun/windows/awt_DataTransferer.cpp	Wed Feb 18 10:05:41 2009 -0800
   111.3 @@ -1,5 +1,5 @@
   111.4  /*
   111.5 - * Copyright 2000-2006 Sun Microsystems, Inc.  All Rights Reserved.
   111.6 + * Copyright 2000-2008 Sun Microsystems, Inc.  All Rights Reserved.
   111.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   111.8   *
   111.9   * This code is free software; you can redistribute it and/or modify it
  111.10 @@ -24,12 +24,11 @@
  111.11   */
  111.12  
  111.13  #include "awt.h"
  111.14 -#include "awt_dlls.h"
  111.15  #include "awt_DataTransferer.h"
  111.16  #include "awt_DnDDT.h"
  111.17  #include "awt_TextComponent.h"
  111.18 -#include "awt_Unicode.h"
  111.19  #include <shlobj.h>
  111.20 +#include <shellapi.h>
  111.21  #include <sun_awt_datatransfer_DataTransferer.h>
  111.22  #include <sun_awt_windows_WDataTransferer.h>
  111.23  
  111.24 @@ -271,9 +270,7 @@
  111.25  
  111.26          hdrop = (HDROP)bBytes;
  111.27  
  111.28 -        load_shell_procs();
  111.29 -
  111.30 -        UINT nFilenames = (*do_drag_query_file)(hdrop, 0xFFFFFFFF, NULL, 0);
  111.31 +        UINT nFilenames = ::DragQueryFile(hdrop, 0xFFFFFFFF, NULL, 0);
  111.32  
  111.33          jclass str_clazz = env->FindClass("java/lang/String");
  111.34          DASSERT(str_clazz != NULL);
  111.35 @@ -287,12 +284,12 @@
  111.36          buffer = (LPTSTR)safe_Malloc(bufsize*sizeof(TCHAR));
  111.37  
  111.38          for (UINT i = 0; i < nFilenames; i++) {
  111.39 -            UINT size = (*do_drag_query_file)(hdrop, i, NULL, 0);
  111.40 +            UINT size = ::DragQueryFile(hdrop, i, NULL, 0);
  111.41              if (size > bufsize) {
  111.42                  bufsize = size;
  111.43                  buffer = (LPTSTR)safe_Realloc(buffer, bufsize*sizeof(TCHAR));
  111.44              }
  111.45 -            (*do_drag_query_file)(hdrop, i, buffer, bufsize);
  111.46 +            ::DragQueryFile(hdrop, i, buffer, bufsize);
  111.47  
  111.48              jstring name = JNU_NewStringPlatform(env, buffer);
  111.49              if (name == NULL) {
  111.50 @@ -401,7 +398,7 @@
  111.51                  case  4:
  111.52                  case  8:
  111.53                      nColorEntries = (pSrcBmih->biClrUsed != 0) ?
  111.54 -                        pSrcBmih->biClrUsed : 1 << (pSrcBmih->biBitCount - 1);
  111.55 +                        pSrcBmih->biClrUsed : (1 << pSrcBmih->biBitCount);
  111.56                      break;
  111.57                  case 16:
  111.58                  case 24:
  111.59 @@ -454,11 +451,6 @@
  111.60                  width = p.x;
  111.61                  height = -p.y;
  111.62  
  111.63 -                // Win9X supports only 16-bit signed coordinates.
  111.64 -                if (IS_WIN95) {
  111.65 -                    if (width > 0x7FFF) { width = 0x7FFF; }
  111.66 -                    if (height > 0x7FFF) { height = 0x7FFF; }
  111.67 -                }
  111.68                  free(lpemh);
  111.69              }
  111.70              break;
   112.1 --- a/src/windows/native/sun/windows/awt_Desktop.cpp	Tue Feb 17 09:06:16 2009 -0800
   112.2 +++ b/src/windows/native/sun/windows/awt_Desktop.cpp	Wed Feb 18 10:05:41 2009 -0800
   112.3 @@ -23,8 +23,8 @@
   112.4   * have any questions.
   112.5   */
   112.6  
   112.7 +#include "awt.h"
   112.8  #include <jni.h>
   112.9 -#include <Windows.h>
  112.10  #include <shellapi.h>
  112.11  #include <float.h>
  112.12  
  112.13 @@ -40,32 +40,32 @@
  112.14  JNIEXPORT jstring JNICALL Java_sun_awt_windows_WDesktopPeer_ShellExecute
  112.15    (JNIEnv *env, jclass cls, jstring uri_j, jstring verb_j)
  112.16  {
  112.17 -    const WCHAR* uri_c = env->GetStringChars(uri_j, JNI_FALSE);
  112.18 -    const WCHAR* verb_c = env->GetStringChars(verb_j, JNI_FALSE);
  112.19 +    LPCWSTR uri_c = JNU_GetStringPlatformChars(env, uri_j, JNI_FALSE);
  112.20 +    LPCWSTR verb_c = JNU_GetStringPlatformChars(env, verb_j, JNI_FALSE);
  112.21  
  112.22      // 6457572: ShellExecute possibly changes FPU control word - saving it here
  112.23      unsigned oldcontrol87 = _control87(0, 0);
  112.24 -    HINSTANCE retval = ShellExecuteW(NULL, verb_c, uri_c, NULL, NULL, SW_SHOWNORMAL);
  112.25 +    HINSTANCE retval = ::ShellExecute(NULL, verb_c, uri_c, NULL, NULL, SW_SHOWNORMAL);
  112.26      _control87(oldcontrol87, 0xffffffff);
  112.27  
  112.28 -    env->ReleaseStringChars(uri_j, uri_c);
  112.29 -    env->ReleaseStringChars(verb_j, verb_c);
  112.30 +    JNU_ReleaseStringPlatformChars(env, uri_j, uri_c);
  112.31 +    JNU_ReleaseStringPlatformChars(env, verb_j, verb_c);
  112.32  
  112.33      if ((int)retval <= 32) {
  112.34          // ShellExecute failed.
  112.35 -        LPVOID buffer;
  112.36 -        int len = FormatMessageW(
  112.37 +        LPTSTR buffer = NULL;
  112.38 +        int len = ::FormatMessage(
  112.39                      FORMAT_MESSAGE_ALLOCATE_BUFFER |
  112.40                      FORMAT_MESSAGE_FROM_SYSTEM  |
  112.41                      FORMAT_MESSAGE_IGNORE_INSERTS,
  112.42                      NULL,
  112.43                      GetLastError(),
  112.44                      MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
  112.45 -                    (LPWSTR) &buffer,
  112.46 +                    (LPTSTR)&buffer,
  112.47                      0,
  112.48                      NULL );
  112.49  
  112.50 -        jstring errmsg = env->NewString((LPCWSTR)buffer, len);
  112.51 +        jstring errmsg = JNU_NewStringPlatform(env, buffer, len);
  112.52          LocalFree(buffer);
  112.53          return errmsg;
  112.54      }
   113.1 --- a/src/windows/native/sun/windows/awt_DesktopProperties.cpp	Tue Feb 17 09:06:16 2009 -0800
   113.2 +++ b/src/windows/native/sun/windows/awt_DesktopProperties.cpp	Wed Feb 18 10:05:41 2009 -0800
   113.3 @@ -1,5 +1,5 @@
   113.4  /*
   113.5 - * Copyright 1999-2006 Sun Microsystems, Inc.  All Rights Reserved.
   113.6 + * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
   113.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   113.8   *
   113.9   * This code is free software; you can redistribute it and/or modify it
  113.10 @@ -23,17 +23,17 @@
  113.11   * have any questions.
  113.12   */
  113.13  
  113.14 -#include "stdhdrs.h"
  113.15 +#include "awt.h"
  113.16  #include "mmsystem.h"
  113.17  #include "jlong.h"
  113.18 -#include "awt.h"
  113.19  #include "awt_DesktopProperties.h"
  113.20 -#include "awt_dlls.h"
  113.21 +#include "awt_Toolkit.h"
  113.22  #include "sun_awt_windows_WDesktopProperties.h"
  113.23  #include "java_awt_Font.h"
  113.24  #include "awtmsg.h"
  113.25 -#include "Zmouse.h"
  113.26 -#include "shellapi.h"
  113.27 +#include "zmouse.h"
  113.28 +#include <shellapi.h>
  113.29 +#include <shlobj.h>
  113.30  
  113.31  // WDesktopProperties fields
  113.32  jfieldID AwtDesktopProperties::pDataID = 0;
  113.33 @@ -44,10 +44,6 @@
  113.34  jmethodID AwtDesktopProperties::setFontPropertyID = 0;
  113.35  jmethodID AwtDesktopProperties::setSoundPropertyID = 0;
  113.36  
  113.37 -typedef VOID (WINAPI *SHGetSettingsType)(LPSHELLFLAGSTATE, DWORD);
  113.38 -static HMODULE libShell32 = NULL;
  113.39 -static SHGetSettingsType fn_SHGetSettings;
  113.40 -
  113.41  AwtDesktopProperties::AwtDesktopProperties(jobject self) {
  113.42      this->self = GetEnv()->NewGlobalRef(self);
  113.43      GetEnv()->SetLongField( self, AwtDesktopProperties::pDataID,
  113.44 @@ -431,14 +427,12 @@
  113.45  
  113.46  void AwtDesktopProperties::GetColorParameters() {
  113.47  
  113.48 -    if (IS_WIN98 || IS_WIN2000) {
  113.49 -        SetColorProperty(TEXT("win.frame.activeCaptionGradientColor"),
  113.50 -                              GetSysColor(COLOR_GRADIENTACTIVECAPTION));
  113.51 -        SetColorProperty(TEXT("win.frame.inactiveCaptionGradientColor"),
  113.52 -                              GetSysColor(COLOR_GRADIENTINACTIVECAPTION));
  113.53 -        SetColorProperty(TEXT("win.item.hotTrackedColor"),
  113.54 -                              GetSysColor(COLOR_HOTLIGHT));
  113.55 -    }
  113.56 +    SetColorProperty(TEXT("win.frame.activeCaptionGradientColor"),
  113.57 +                     GetSysColor(COLOR_GRADIENTACTIVECAPTION));
  113.58 +    SetColorProperty(TEXT("win.frame.inactiveCaptionGradientColor"),
  113.59 +                     GetSysColor(COLOR_GRADIENTINACTIVECAPTION));
  113.60 +    SetColorProperty(TEXT("win.item.hotTrackedColor"),
  113.61 +                     GetSysColor(COLOR_HOTLIGHT));
  113.62      SetColorProperty(TEXT("win.3d.darkShadowColor"), GetSysColor(COLOR_3DDKSHADOW));
  113.63      SetColorProperty(TEXT("win.3d.backgroundColor"), GetSysColor(COLOR_3DFACE));
  113.64      SetColorProperty(TEXT("win.3d.highlightColor"), GetSysColor(COLOR_3DHIGHLIGHT));
  113.65 @@ -510,40 +504,18 @@
  113.66      // This property is called "win.frame.fullWindowDragsOn" above
  113.67      // This is one of the properties that don't trigger WM_SETTINGCHANGE
  113.68      SetBooleanProperty(TEXT("awt.dynamicLayoutSupported"), GetBooleanParameter(SPI_GETDRAGFULLWINDOWS));
  113.69 -
  113.70 -    // 95 MouseWheel support
  113.71 -    // More or less copied from the MSH_MOUSEWHEEL MSDN entry
  113.72 -    if (IS_WIN95 && !IS_WIN98) {
  113.73 -        HWND hdlMSHWHEEL = NULL;
  113.74 -        UINT msgMSHWheelSupported = NULL;
  113.75 -        BOOL wheelSupported = FALSE;
  113.76 -
  113.77 -        msgMSHWheelSupported = RegisterWindowMessage(MSH_WHEELSUPPORT);
  113.78 -        hdlMSHWHEEL = FindWindow(MSH_WHEELMODULE_CLASS, MSH_WHEELMODULE_TITLE);
  113.79 -        if (hdlMSHWHEEL && msgMSHWheelSupported) {
  113.80 -            wheelSupported = (BOOL)::SendMessage(hdlMSHWHEEL,
  113.81 -                                                 msgMSHWheelSupported, 0, 0);
  113.82 -        }
  113.83 -        SetBooleanProperty(TEXT("awt.wheelMousePresent"), wheelSupported);
  113.84 -    }
  113.85 -    else {
  113.86 -        SetBooleanProperty(TEXT("awt.wheelMousePresent"),
  113.87 -                           ::GetSystemMetrics(SM_MOUSEWHEELPRESENT));
  113.88 -    }
  113.89 +    SetBooleanProperty(TEXT("awt.wheelMousePresent"),
  113.90 +                       ::GetSystemMetrics(SM_MOUSEWHEELPRESENT));
  113.91  
  113.92      // END cross-platform properties
  113.93  
  113.94 -    if (IS_WIN98 || IS_WIN2000) {
  113.95 -      //DWORD   menuShowDelay;
  113.96 -        //SystemParametersInfo(SPI_GETMENUSHOWDELAY, 0, &menuShowDelay, 0);
  113.97 -        // SetIntegerProperty(TEXT("win.menu.showDelay"), menuShowDelay);
  113.98 -        SetBooleanProperty(TEXT("win.frame.captionGradientsOn"), GetBooleanParameter(SPI_GETGRADIENTCAPTIONS));
  113.99 -        SetBooleanProperty(TEXT("win.item.hotTrackingOn"), GetBooleanParameter(SPI_GETHOTTRACKING));
 113.100 -    }
 113.101 +    //DWORD   menuShowDelay;
 113.102 +    //SystemParametersInfo(SPI_GETMENUSHOWDELAY, 0, &menuShowDelay, 0);
 113.103 +    // SetIntegerProperty(TEXT("win.menu.showDelay"), menuShowDelay);
 113.104 +    SetBooleanProperty(TEXT("win.frame.captionGradientsOn"), GetBooleanParameter(SPI_GETGRADIENTCAPTIONS));
 113.105 +    SetBooleanProperty(TEXT("win.item.hotTrackingOn"), GetBooleanParameter(SPI_GETHOTTRACKING));
 113.106  
 113.107 -    if (IS_WIN2000) {
 113.108 -        SetBooleanProperty(TEXT("win.menu.keyboardCuesOn"), GetBooleanParameter(SPI_GETKEYBOARDCUES));
 113.109 -    }
 113.110 +    SetBooleanProperty(TEXT("win.menu.keyboardCuesOn"), GetBooleanParameter(SPI_GETKEYBOARDCUES));
 113.111  
 113.112      // High contrast accessibility property
 113.113      HIGHCONTRAST contrast;
 113.114 @@ -557,21 +529,19 @@
 113.115        SetBooleanProperty(TEXT("win.highContrast.on"), FALSE);
 113.116      }
 113.117  
 113.118 -    if (fn_SHGetSettings != NULL) {
 113.119 -        SHELLFLAGSTATE sfs;
 113.120 -        fn_SHGetSettings(&sfs, SSF_SHOWALLOBJECTS | SSF_SHOWATTRIBCOL);
 113.121 -        if (sfs.fShowAllObjects) {
 113.122 -            SetBooleanProperty(TEXT("awt.file.showHiddenFiles"), TRUE);
 113.123 -        }
 113.124 -        else {
 113.125 -            SetBooleanProperty(TEXT("awt.file.showHiddenFiles"), FALSE);
 113.126 -        }
 113.127 -        if (sfs.fShowAttribCol) {
 113.128 -            SetBooleanProperty(TEXT("awt.file.showAttribCol"), TRUE);
 113.129 -        }
 113.130 -        else {
 113.131 -            SetBooleanProperty(TEXT("awt.file.showAttribCol"), FALSE);
 113.132 -        }
 113.133 +    SHELLFLAGSTATE sfs;
 113.134 +    ::SHGetSettings(&sfs, SSF_SHOWALLOBJECTS | SSF_SHOWATTRIBCOL);
 113.135 +    if (sfs.fShowAllObjects) {
 113.136 +        SetBooleanProperty(TEXT("awt.file.showHiddenFiles"), TRUE);
 113.137 +    }
 113.138 +    else {
 113.139 +        SetBooleanProperty(TEXT("awt.file.showHiddenFiles"), FALSE);
 113.140 +    }
 113.141 +    if (sfs.fShowAttribCol) {
 113.142 +        SetBooleanProperty(TEXT("awt.file.showAttribCol"), TRUE);
 113.143 +    }
 113.144 +    else {
 113.145 +        SetBooleanProperty(TEXT("awt.file.showAttribCol"), FALSE);
 113.146      }
 113.147  
 113.148      LPTSTR value;
 113.149 @@ -667,7 +637,7 @@
 113.150  }
 113.151  
 113.152  void AwtDesktopProperties::SetStringProperty(LPCTSTR propName, LPTSTR value) {
 113.153 -    jstring key = JNU_NewStringPlatform(GetEnv(), propName);
 113.154 +    jstring key = JNU_NewStringPlatform(GetEnv(), const_cast<LPTSTR>(propName));
 113.155      GetEnv()->CallVoidMethod(self,
 113.156                               AwtDesktopProperties::setStringPropertyID,
 113.157                               key, JNU_NewStringPlatform(GetEnv(), value));
 113.158 @@ -675,7 +645,7 @@
 113.159  }
 113.160  
 113.161  void AwtDesktopProperties::SetIntegerProperty(LPCTSTR propName, int value) {
 113.162 -    jstring key = JNU_NewStringPlatform(GetEnv(), propName);
 113.163 +    jstring key = JNU_NewStringPlatform(GetEnv(), const_cast<LPTSTR>(propName));
 113.164      GetEnv()->CallVoidMethod(self,
 113.165                               AwtDesktopProperties::setIntegerPropertyID,
 113.166                               key, (jint)value);
 113.167 @@ -683,7 +653,7 @@
 113.168  }
 113.169  
 113.170  void AwtDesktopProperties::SetBooleanProperty(LPCTSTR propName, BOOL value) {
 113.171 -    jstring key = JNU_NewStringPlatform(GetEnv(), propName);
 113.172 +    jstring key = JNU_NewStringPlatform(GetEnv(), const_cast<LPTSTR>(propName));
 113.173      GetEnv()->CallVoidMethod(self,
 113.174                               AwtDesktopProperties::setBooleanPropertyID,
 113.175                               key, value ? JNI_TRUE : JNI_FALSE);
 113.176 @@ -691,7 +661,7 @@
 113.177  }
 113.178  
 113.179  void AwtDesktopProperties::SetColorProperty(LPCTSTR propName, DWORD value) {
 113.180 -    jstring key = JNU_NewStringPlatform(GetEnv(), propName);
 113.181 +    jstring key = JNU_NewStringPlatform(GetEnv(), const_cast<LPTSTR>(propName));
 113.182      GetEnv()->CallVoidMethod(self,
 113.183                               AwtDesktopProperties::setColorPropertyID,
 113.184                               key, GetRValue(value), GetGValue(value),
 113.185 @@ -743,7 +713,7 @@
 113.186                          style |= java_awt_Font_ITALIC;
 113.187                      }
 113.188  
 113.189 -                    jstring key = JNU_NewStringPlatform(GetEnv(), propName);
 113.190 +                    jstring key = JNU_NewStringPlatform(GetEnv(), const_cast<LPTSTR>(propName));
 113.191                      GetEnv()->CallVoidMethod(self,
 113.192                                AwtDesktopProperties::setFontPropertyID,
 113.193                                key, fontName, style, pointSize);
 113.194 @@ -761,7 +731,7 @@
 113.195      jint pointSize;
 113.196      jint style;
 113.197  
 113.198 -    fontName = JNU_NewStringPlatform(GetEnv(), font.lfFaceName);
 113.199 +    fontName = JNU_NewStringPlatform(GetEnv(), const_cast<LPWSTR>(font.lfFaceName));
 113.200  
 113.201  #if 0
 113.202      HDC         hdc;
 113.203 @@ -784,7 +754,7 @@
 113.204          style |= java_awt_Font_ITALIC;
 113.205      }
 113.206  
 113.207 -    jstring key = JNU_NewStringPlatform(GetEnv(), propName);
 113.208 +    jstring key = JNU_NewStringPlatform(GetEnv(), const_cast<LPTSTR>(propName));
 113.209      GetEnv()->CallVoidMethod(self, AwtDesktopProperties::setFontPropertyID,
 113.210                               key, fontName, style, pointSize);
 113.211  
 113.212 @@ -793,8 +763,8 @@
 113.213  }
 113.214  
 113.215  void AwtDesktopProperties::SetSoundProperty(LPCTSTR propName, LPCTSTR winEventName) {
 113.216 -    jstring key = JNU_NewStringPlatform(GetEnv(), propName);
 113.217 -    jstring event = JNU_NewStringPlatform(GetEnv(), winEventName);
 113.218 +    jstring key = JNU_NewStringPlatform(GetEnv(), const_cast<LPTSTR>(propName));
 113.219 +    jstring event = JNU_NewStringPlatform(GetEnv(), const_cast<LPTSTR>(winEventName));
 113.220      GetEnv()->CallVoidMethod(self,
 113.221                               AwtDesktopProperties::setSoundPropertyID,
 113.222                               key, event);
 113.223 @@ -805,9 +775,9 @@
 113.224  
 113.225  void AwtDesktopProperties::PlayWindowsSound(LPCTSTR event) {
 113.226      // stop any currently playing sounds
 113.227 -    AwtWinMM::PlaySoundWrapper(NULL, NULL, SND_PURGE);
 113.228 +    ::PlaySound(NULL, NULL, SND_PURGE);
 113.229      // play the sound for the given event name
 113.230 -    AwtWinMM::PlaySoundWrapper(event, NULL, SND_ASYNC|SND_ALIAS|SND_NODEFAULT);
 113.231 +    ::PlaySound(event, NULL, SND_ASYNC|SND_ALIAS|SND_NODEFAULT);
 113.232  }
 113.233  
 113.234  ///////////////////////////////////////////////////////////////////////////////////////////////////
 113.235 @@ -852,16 +822,6 @@
 113.236  Java_sun_awt_windows_WDesktopProperties_init(JNIEnv *env, jobject self) {
 113.237      TRY;
 113.238  
 113.239 -    // Open shell32.dll, get the symbol for SHGetSettings
 113.240 -    libShell32 = LoadLibrary(TEXT("shell32.dll"));
 113.241 -    if (libShell32 == NULL) {
 113.242 -        fn_SHGetSettings = NULL;
 113.243 -    }
 113.244 -    else {
 113.245 -        fn_SHGetSettings = (SHGetSettingsType)GetProcAddress(
 113.246 -                libShell32, "SHGetSettings");
 113.247 -    }
 113.248 -
 113.249      new AwtDesktopProperties(self);
 113.250  
 113.251      CATCH_BAD_ALLOC;
   114.1 --- a/src/windows/native/sun/windows/awt_Dialog.cpp	Tue Feb 17 09:06:16 2009 -0800
   114.2 +++ b/src/windows/native/sun/windows/awt_Dialog.cpp	Wed Feb 18 10:05:41 2009 -0800
   114.3 @@ -132,14 +132,13 @@
   114.4          dialog = new AwtDialog();
   114.5  
   114.6          {
   114.7 -            int colorId = IS_WIN4X ? COLOR_3DFACE : COLOR_WINDOW;
   114.8 +            int colorId = COLOR_3DFACE;
   114.9              DWORD style = WS_CAPTION | WS_SYSMENU | WS_CLIPCHILDREN;
  114.10              if (hwndParent != NULL) {
  114.11                  style |= WS_POPUP;
  114.12              }
  114.13              style &= ~(WS_MINIMIZEBOX|WS_MAXIMIZEBOX);
  114.14 -            DWORD exStyle = IS_WIN4X ? WS_EX_WINDOWEDGE | WS_EX_DLGMODALFRAME
  114.15 -                                     : 0;
  114.16 +            DWORD exStyle = WS_EX_WINDOWEDGE | WS_EX_DLGMODALFRAME;
  114.17  
  114.18              if (GetRTL()) {
  114.19                  exStyle |= WS_EX_RIGHT | WS_EX_LEFTSCROLLBAR;
  114.20 @@ -663,7 +662,7 @@
  114.21  
  114.22      int badAlloc = 0;
  114.23      LPCTSTR coption;
  114.24 -    LPTSTR empty = TEXT("InputMethod");
  114.25 +    LPCTSTR empty = TEXT("InputMethod");
  114.26      AwtDialog *d = NULL;
  114.27  
  114.28      PDATA pData;
   115.1 --- a/src/windows/native/sun/windows/awt_DnDDS.cpp	Tue Feb 17 09:06:16 2009 -0800
   115.2 +++ b/src/windows/native/sun/windows/awt_DnDDS.cpp	Wed Feb 18 10:05:41 2009 -0800
   115.3 @@ -1,5 +1,5 @@
   115.4  /*
   115.5 - * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
   115.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
   115.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   115.8   *
   115.9   * This code is free software; you can redistribute it and/or modify it
  115.10 @@ -23,6 +23,7 @@
  115.11   * have any questions.
  115.12   */
  115.13  
  115.14 +#include "awt.h"
  115.15  #include "jlong.h"
  115.16  #include "awt_DataTransferer.h"
  115.17  #include "awt_DnDDS.h"
  115.18 @@ -36,8 +37,6 @@
  115.19  #include "sun_awt_dnd_SunDragSourceContextPeer.h"
  115.20  #include "sun_awt_windows_WDragSourceContextPeer.h"
  115.21  
  115.22 -#include <stdio.h>
  115.23 -#include <stdlib.h>
  115.24  #include <memory.h>
  115.25  #include <shlobj.h>
  115.26  
   116.1 --- a/src/windows/native/sun/windows/awt_DnDDT.cpp	Tue Feb 17 09:06:16 2009 -0800
   116.2 +++ b/src/windows/native/sun/windows/awt_DnDDT.cpp	Wed Feb 18 10:05:41 2009 -0800
   116.3 @@ -1,5 +1,5 @@
   116.4  /*
   116.5 - * Copyright 1997-2006 Sun Microsystems, Inc.  All Rights Reserved.
   116.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
   116.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   116.8   *
   116.9   * This code is free software; you can redistribute it and/or modify it
  116.10 @@ -30,11 +30,8 @@
  116.11  #include "awt_Toolkit.h"
  116.12  #include "java_awt_dnd_DnDConstants.h"
  116.13  #include "sun_awt_windows_WDropTargetContextPeer.h"
  116.14 -#include "awt_dlls.h"
  116.15  #include "awt_Container.h"
  116.16  
  116.17 -#include <stdio.h>
  116.18 -#include <stdlib.h>
  116.19  #include <memory.h>
  116.20  #include <shellapi.h>
  116.21  
  116.22 @@ -555,8 +552,7 @@
  116.23              break;
  116.24          }
  116.25          case TYMED_FILE: {
  116.26 -            jobject local = JNU_NewStringPlatform(env, (LPCTSTR)
  116.27 -                                                  stgmedium.lpszFileName);
  116.28 +            jobject local = JNU_NewStringPlatform(env, stgmedium.lpszFileName);
  116.29              jstring fileName = (jstring)env->NewGlobalRef(local);
  116.30              env->DeleteLocalRef(local);
  116.31  
   117.1 --- a/src/windows/native/sun/windows/awt_DrawingSurface.cpp	Tue Feb 17 09:06:16 2009 -0800
   117.2 +++ b/src/windows/native/sun/windows/awt_DrawingSurface.cpp	Wed Feb 18 10:05:41 2009 -0800
   117.3 @@ -24,6 +24,8 @@
   117.4   */
   117.5  
   117.6  #define _JNI_IMPLEMENTATION_
   117.7 +
   117.8 +#include "awt.h"
   117.9  #include "awt_DrawingSurface.h"
  117.10  #include "awt_Component.h"
  117.11  
   118.1 --- a/src/windows/native/sun/windows/awt_FileDialog.cpp	Tue Feb 17 09:06:16 2009 -0800
   118.2 +++ b/src/windows/native/sun/windows/awt_FileDialog.cpp	Wed Feb 18 10:05:41 2009 -0800
   118.3 @@ -1,5 +1,5 @@
   118.4  /*
   118.5 - * Copyright 1996-2007 Sun Microsystems, Inc.  All Rights Reserved.
   118.6 + * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   118.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   118.8   *
   118.9   * This code is free software; you can redistribute it and/or modify it
  118.10 @@ -27,7 +27,6 @@
  118.11  #include "awt_FileDialog.h"
  118.12  #include "awt_Dialog.h"
  118.13  #include "awt_Toolkit.h"
  118.14 -#include "awt_dlls.h"
  118.15  #include "ComCtl32Util.h"
  118.16  #include <commdlg.h>
  118.17  #include <cderr.h>
  118.18 @@ -65,7 +64,7 @@
  118.19  {
  118.20      int length = env->GetStringLength(filterDescription);
  118.21      DASSERT(length + 1 < MAX_FILTER_STRING);
  118.22 -    LPCTSTR tmp = (LPTSTR)JNU_GetStringPlatformChars(env, filterDescription, NULL);
  118.23 +    LPCTSTR tmp = JNU_GetStringPlatformChars(env, filterDescription, NULL);
  118.24      _tcscpy(s_fileFilterString, tmp);
  118.25      JNU_ReleaseStringPlatformChars(env, filterDescription, tmp);
  118.26  
  118.27 @@ -156,7 +155,7 @@
  118.28                      LPITEMIDLIST pidl = (LPITEMIDLIST)notifyEx->pidl;
  118.29                      // Get the filename and directory
  118.30                      TCHAR szPath[MAX_PATH];
  118.31 -                    if (!get_path_from_idlist(pidl,szPath)) {
  118.32 +                    if (!::SHGetPathFromIDList(pidl, szPath)) {
  118.33                          return TRUE;
  118.34                      }
  118.35                      jstring strPath = JNU_NewStringPlatform(env, szPath);
  118.36 @@ -190,7 +189,7 @@
  118.37      WCHAR unicodeChar = L' ';
  118.38      LPTSTR fileBuffer = NULL;
  118.39      LPTSTR currentDirectory = NULL;
  118.40 -    AWTOPENFILENAME ofn;
  118.41 +    OPENFILENAME ofn;
  118.42      jint mode = 0;
  118.43      BOOL result = FALSE;
  118.44      DWORD dlgerr;
  118.45 @@ -222,7 +221,7 @@
  118.46          HWND hwndOwner = awtParent ? awtParent->GetHWnd() : NULL;
  118.47  
  118.48          if (title == NULL || env->GetStringLength(title)==0) {
  118.49 -            title = env->NewString(&unicodeChar, 1);
  118.50 +            title = JNU_NewStringPlatform(env, &unicodeChar);
  118.51          }
  118.52  
  118.53          JavaStringBuffer titleBuffer(env, title);
  118.54 @@ -243,14 +242,7 @@
  118.55  
  118.56          memset(&ofn, 0, sizeof(ofn));
  118.57  
  118.58 -    // According to the MSDN docs, lStructSize must be set to
  118.59 -    // OPENFILENAME_SIZE_VERSION_400 on NT4.0.
  118.60 -    if (IS_NT && !(IS_WIN2000)) {
  118.61 -        ofn.lStructSize = OPENFILENAME_SIZE_VERSION_400;
  118.62 -    }
  118.63 -    else {
  118.64          ofn.lStructSize = sizeof(ofn);
  118.65 -    }
  118.66          ofn.lpstrFilter = s_fileFilterString;
  118.67          ofn.nFilterIndex = 1;
  118.68          /*
  118.69 @@ -289,9 +281,6 @@
  118.70  
  118.71          mode = env->GetIntField(target, AwtFileDialog::modeID);
  118.72  
  118.73 -        // Fix for 4364256 : call load_shell_procs()
  118.74 -        load_shell_procs();
  118.75 -
  118.76          AwtDialog::CheckInstallModalHook();
  118.77  
  118.78          // show the Win32 file dialog
  118.79 @@ -304,7 +293,7 @@
  118.80          // If the dialog is not shown because of invalid file name
  118.81          // replace the file name by empty string.
  118.82          if (!result) {
  118.83 -            dlgerr = AwtCommDialog::CommDlgExtendedError();
  118.84 +            dlgerr = ::CommDlgExtendedError();
  118.85              if (dlgerr == FNERR_INVALIDFILENAME) {
  118.86                  _tcscpy(fileBuffer, TEXT(""));
  118.87                  if (mode == java_awt_FileDialog_LOAD) {
  118.88 @@ -326,7 +315,7 @@
  118.89          // Report result to peer.
  118.90          if (result) {
  118.91              jstring tmpJString = (_tcslen(ofn.lpstrFile) == 0 ?
  118.92 -                env->NewStringUTF("") :
  118.93 +                JNU_NewStringPlatform(env, L"") :
  118.94                  JNU_NewStringPlatform(env, ofn.lpstrFile));
  118.95              env->CallVoidMethod(peer, AwtFileDialog::handleSelectedMID, tmpJString);
  118.96              env->DeleteLocalRef(tmpJString);
  118.97 @@ -362,20 +351,18 @@
  118.98  }
  118.99  
 118.100  BOOL
 118.101 -AwtFileDialog::GetOpenFileName(LPAWTOPENFILENAME data) {
 118.102 -    AwtCommDialog::load_comdlg_procs();
 118.103 +AwtFileDialog::GetOpenFileName(LPOPENFILENAME data) {
 118.104      return static_cast<BOOL>(reinterpret_cast<INT_PTR>(
 118.105          AwtToolkit::GetInstance().InvokeFunction((void*(*)(void*))
 118.106 -                     AwtCommDialog::GetOpenFileNameWrapper, data)));
 118.107 +                     ::GetOpenFileName, data)));
 118.108  
 118.109  }
 118.110  
 118.111  BOOL
 118.112 -AwtFileDialog::GetSaveFileName(LPAWTOPENFILENAME data) {
 118.113 -    AwtCommDialog::load_comdlg_procs();
 118.114 +AwtFileDialog::GetSaveFileName(LPOPENFILENAME data) {
 118.115      return static_cast<BOOL>(reinterpret_cast<INT_PTR>(
 118.116          AwtToolkit::GetInstance().InvokeFunction((void *(*)(void *))
 118.117 -                     AwtCommDialog::GetSaveFileNameWrapper, data)));
 118.118 +                     ::GetSaveFileName, data)));
 118.119  
 118.120  }
 118.121  
   119.1 --- a/src/windows/native/sun/windows/awt_FileDialog.h	Tue Feb 17 09:06:16 2009 -0800
   119.2 +++ b/src/windows/native/sun/windows/awt_FileDialog.h	Wed Feb 18 10:05:41 2009 -0800
   119.3 @@ -1,5 +1,5 @@
   119.4  /*
   119.5 - * Copyright 1997-2007 Sun Microsystems, Inc.  All Rights Reserved.
   119.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
   119.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   119.8   *
   119.9   * This code is free software; you can redistribute it and/or modify it
  119.10 @@ -36,43 +36,6 @@
  119.11  #include "java_awt_FileDialog.h"
  119.12  #include "sun_awt_windows_WFileDialogPeer.h"
  119.13  
  119.14 -// The VC6 headers don't include this, but it's necessary for
  119.15 -// backward-compatibility with NT4.0, so we fake it.
  119.16 -#ifndef OPENFILENAME_SIZE_VERSION_400
  119.17 -    // Determined via sizeof(OPENFILENAME)
  119.18 -    #define OPENFILENAME_SIZE_VERSION_400 76
  119.19 -#endif
  119.20 -
  119.21 -// 4859390
  119.22 -// For the Places Bar to show up, we need the "full" OPENFILENAME struct
  119.23 -typedef struct tagAWTOFN {
  119.24 -  DWORD         lStructSize;
  119.25 -  HWND          hwndOwner;
  119.26 -  HINSTANCE     hInstance;
  119.27 -  LPCTSTR       lpstrFilter;
  119.28 -  LPTSTR        lpstrCustomFilter;
  119.29 -  DWORD         nMaxCustFilter;
  119.30 -  DWORD         nFilterIndex;
  119.31 -  LPTSTR        lpstrFile;
  119.32 -  DWORD         nMaxFile;
  119.33 -  LPTSTR        lpstrFileTitle;
  119.34 -  DWORD         nMaxFileTitle;
  119.35 -  LPCTSTR       lpstrInitialDir;
  119.36 -  LPCTSTR       lpstrTitle;
  119.37 -  DWORD         Flags;
  119.38 -  WORD          nFileOffset;
  119.39 -  WORD          nFileExtension;
  119.40 -  LPCTSTR       lpstrDefExt;
  119.41 -  LPARAM        lCustData;
  119.42 -  LPOFNHOOKPROC lpfnHook;
  119.43 -  LPCTSTR       lpTemplateName;
  119.44 -//#if (_WIN32_WINNT >= 0x0500)
  119.45 -  void *        pvReserved;
  119.46 -  DWORD         dwReserved;
  119.47 -  DWORD         FlagsEx;
  119.48 -//#endif // (_WIN32_WINNT >= 0x0500)
  119.49 -} AWTOPENFILENAME, *LPAWTOPENFILENAME;
  119.50 -
  119.51  /************************************************************************
  119.52   * AwtFileDialog class
  119.53   */
  119.54 @@ -96,8 +59,8 @@
  119.55      static void Initialize(JNIEnv *env, jstring filterDescription);
  119.56      static void Show(void *peer);
  119.57  
  119.58 -    static BOOL GetOpenFileName(LPAWTOPENFILENAME);
  119.59 -    static BOOL GetSaveFileName(LPAWTOPENFILENAME);
  119.60 +    static BOOL GetOpenFileName(LPOPENFILENAME);
  119.61 +    static BOOL GetSaveFileName(LPOPENFILENAME);
  119.62  
  119.63      virtual BOOL InheritsNativeMouseWheelBehavior();
  119.64  
   120.1 --- a/src/windows/native/sun/windows/awt_Font.cpp	Tue Feb 17 09:06:16 2009 -0800
   120.2 +++ b/src/windows/native/sun/windows/awt_Font.cpp	Wed Feb 18 10:05:41 2009 -0800
   120.3 @@ -1,5 +1,5 @@
   120.4  /*
   120.5 - * Copyright 1996-2006 Sun Microsystems, Inc.  All Rights Reserved.
   120.6 + * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   120.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   120.8   *
   120.9   * This code is free software; you can redistribute it and/or modify it
  120.10 @@ -23,6 +23,7 @@
  120.11   * have any questions.
  120.12   */
  120.13  
  120.14 +#include "awt.h"
  120.15  #include <math.h>
  120.16  #include "jlong.h"
  120.17  #include "awt_Font.h"
  120.18 @@ -195,7 +196,7 @@
  120.19  }
  120.20  
  120.21  // Get suitable CHARSET from charset string provided by font configuration.
  120.22 -static int GetNativeCharset(WCHAR* name)
  120.23 +static int GetNativeCharset(LPCWSTR name)
  120.24  {
  120.25      if (wcsstr(name, L"ANSI_CHARSET"))
  120.26          return ANSI_CHARSET;
  120.27 @@ -259,7 +260,7 @@
  120.28              cfnum = 0;
  120.29          }
  120.30  
  120.31 -        WCHAR* wName;
  120.32 +        LPCWSTR wName;
  120.33  
  120.34          awtFont = new AwtFont(cfnum, env, font);
  120.35  
  120.36 @@ -269,9 +270,7 @@
  120.37          if (cfnum > 0) {
  120.38              // Ask peer class for the text component font name
  120.39              jstring jTextComponentFontName = GetTextComponentFontName(env, font);
  120.40 -            WCHAR* textComponentFontName = TO_WSTRING(jTextComponentFontName);
  120.41 -
  120.42 -            env->DeleteLocalRef(jTextComponentFontName);
  120.43 +            LPCWSTR textComponentFontName = JNU_GetStringPlatformChars(env, jTextComponentFontName, NULL);
  120.44  
  120.45              awtFont->m_textInput = -1;
  120.46              for (int i = 0; i < cfnum; i++) {
  120.47 @@ -282,13 +281,13 @@
  120.48                  jstring nativeName =
  120.49                      (jstring)env->GetObjectField(fontDescriptor,
  120.50                                                   AwtFont::nativeNameID);
  120.51 -                wName = TO_WSTRING(nativeName);
  120.52 +                wName = JNU_GetStringPlatformChars(env, nativeName, NULL);
  120.53                  DASSERT(wName);
  120.54  
  120.55                  //On NT platforms, if the font is not Symbol or Dingbats
  120.56                  //use "W" version of Win32 APIs directly, info the FontDescription
  120.57                  //no need to convert characters from Unicode to locale encodings.
  120.58 -                if (IS_NT && GetNativeCharset(wName) != SYMBOL_CHARSET) {
  120.59 +                if (GetNativeCharset(wName) != SYMBOL_CHARSET) {
  120.60                      env->SetBooleanField(fontDescriptor, AwtFont::useUnicodeID, TRUE);
  120.61                  }
  120.62  
  120.63 @@ -299,10 +298,12 @@
  120.64                          (wcscmp(wName, textComponentFontName) == 0)) {
  120.65                      awtFont->m_textInput = i;
  120.66                  }
  120.67 -                HFONT hfonttmp = CreateHFont(wName, fontStyle, fontSize,
  120.68 +                HFONT hfonttmp = CreateHFont(const_cast<LPWSTR>(wName), fontStyle, fontSize,
  120.69                                               angle, awScale);
  120.70                  awtFont->m_hFont[i] = hfonttmp;
  120.71  
  120.72 +                JNU_ReleaseStringPlatformChars(env, nativeName, wName);
  120.73 +
  120.74                  env->DeleteLocalRef(fontDescriptor);
  120.75                  env->DeleteLocalRef(nativeName);
  120.76              }
  120.77 @@ -311,11 +312,14 @@
  120.78                  // to first component
  120.79                  awtFont->m_textInput = 0;
  120.80              }
  120.81 +
  120.82 +            JNU_ReleaseStringPlatformChars(env, jTextComponentFontName, textComponentFontName);
  120.83 +            env->DeleteLocalRef(jTextComponentFontName);
  120.84          } else {
  120.85              // Instantiation for English version.
  120.86              jstring fontName = (jstring)env->GetObjectField(font,
  120.87                                                              AwtFont::nameID);
  120.88 -            wName = TO_WSTRING(fontName);
  120.89 +            wName = JNU_GetStringPlatformChars(env, fontName, NULL);
  120.90  
  120.91              WCHAR* wEName;
  120.92              if (!wcscmp(wName, L"Helvetica") || !wcscmp(wName, L"SansSerif")) {
  120.93 @@ -338,6 +342,9 @@
  120.94              awtFont->m_textInput = 0;
  120.95              awtFont->m_hFont[0] = CreateHFont(wEName, fontStyle, fontSize,
  120.96                                                angle, awScale);
  120.97 +
  120.98 +            JNU_ReleaseStringPlatformChars(env, fontName, wName);
  120.99 +
 120.100              env->DeleteLocalRef(fontName);
 120.101          }
 120.102          /* The several callers of this method also set the pData field.
 120.103 @@ -381,7 +388,7 @@
 120.104  
 120.105  }
 120.106  
 120.107 -static HFONT CreateHFont_sub(WCHAR* name, int style, int height,
 120.108 +static HFONT CreateHFont_sub(LPCWSTR name, int style, int height,
 120.109                               int angle=0, float awScale=1.0f)
 120.110  {
 120.111      LOGFONTW logFont;
 120.112 @@ -420,18 +427,7 @@
 120.113      strip_tail(tmpname,L"Italic");
 120.114      strip_tail(tmpname,L"Bold");
 120.115      wcscpy(&(logFont.lfFaceName[0]), tmpname);
 120.116 -    HFONT hFont;
 120.117 -    if (IS_WIN95) {
 120.118 -#ifdef WIN32
 120.119 -        DASSERT(IS_WIN95);
 120.120 -#endif
 120.121 -        HDC hdc = ::GetDC(NULL);
 120.122 -        ::EnumFontFamiliesEx(hdc, &logFont, (FONTENUMPROC)FindFamilyName,
 120.123 -                             (LPARAM)tmpname, 0L);
 120.124 -        ::ReleaseDC(NULL, hdc);
 120.125 -        wcscpy(&logFont.lfFaceName[0], tmpname);
 120.126 -    }
 120.127 -    hFont = ::CreateFontIndirectW(&logFont);
 120.128 +    HFONT hFont = ::CreateFontIndirect(&logFont);
 120.129      DASSERT(hFont != NULL);
 120.130      // get a expanded or condensed version if its specified.
 120.131      if (awScale != 1.0f) {
 120.132 @@ -446,7 +442,7 @@
 120.133          }
 120.134          avgWidth = tm.tmAveCharWidth;
 120.135          logFont.lfWidth = (LONG)((fabs)(avgWidth*awScale));
 120.136 -        hFont = CreateFontIndirectW(&logFont);
 120.137 +        hFont = ::CreateFontIndirect(&logFont);
 120.138          DASSERT(hFont != NULL);
 120.139          VERIFY(::ReleaseDC(0, hDC));
 120.140      }
 120.141 @@ -460,15 +456,8 @@
 120.142      WCHAR longName[80];
 120.143      // 80 > (max face name(=30) + strlen("CHINESEBIG5_CHARSET"))
 120.144      // longName doesn't have to be printable.  So, it is OK not to convert.
 120.145 -    if (IS_NT) {
 120.146 -        //wsprintfW only works on NT.  See bugid 4123362
 120.147 -        wsprintfW(longName, L"%ls-%d-%d", name, style, height);
 120.148 -    } else {
 120.149 -#ifdef WIN32
 120.150 -        DASSERT(IS_WIN95);
 120.151 -#endif
 120.152 -        swprintf(longName, L"%ls-%d-%d", name, style, height);
 120.153 -    }
 120.154 +
 120.155 +    wsprintf(longName, L"%ls-%d-%d", name, style, height);
 120.156  
 120.157      HFONT hFont = NULL;
 120.158  
 120.159 @@ -682,28 +671,16 @@
 120.160  
 120.161      if (arrayLength == 0) {
 120.162          int length = env->GetStringLength(str);
 120.163 -        WCHAR* string = TO_WSTRING(str);
 120.164 +        LPCWSTR strW = JNU_GetStringPlatformChars(env, str, NULL);
 120.165          VERIFY(::SelectObject(hDC, awtFont->GetHFont()));
 120.166          if (AwtComponent::GetRTLReadingOrder()){
 120.167 -            if (IS_WIN95) {
 120.168 -                // Start of conversion Code to fix arabic shaping problems
 120.169 -                // with unicode support in win 95
 120.170 -                LPSTR buffer =  (LPSTR) alloca((wcslen(string) + 1) * 2);
 120.171 -                int count = ::WideCharToMultiByte(codePage, 0, string, length,
 120.172 -                                                  buffer,
 120.173 -                                                  static_cast<int>((wcslen(string) + 1) * 2),
 120.174 -                                                  NULL, NULL);
 120.175 -                VERIFY(!draw || ::ExtTextOutA(hDC, x, y,  ETO_RTLREADING, NULL,
 120.176 -                                              buffer, count, NULL));
 120.177 -                // End Of Conversion Code
 120.178 -            } else {
 120.179 -                VERIFY(!draw || ::ExtTextOutW(hDC, x, y, ETO_RTLREADING, NULL,
 120.180 -                                              string, length, NULL));
 120.181 -            }
 120.182 +            VERIFY(!draw || ::ExtTextOut(hDC, x, y, ETO_RTLREADING, NULL,
 120.183 +                                          strW, length, NULL));
 120.184          } else {
 120.185 -            VERIFY(!draw || ::TextOutW(hDC, x, y, string, length));
 120.186 +            VERIFY(!draw || ::TextOut(hDC, x, y, strW, length));
 120.187          }
 120.188 -        VERIFY(::GetTextExtentPoint32W(hDC, string, length, &size));
 120.189 +        VERIFY(::GetTextExtentPoint32(hDC, strW, length, &size));
 120.190 +        JNU_ReleaseStringPlatformChars(env, str, strW);
 120.191      } else {
 120.192          for (int i = 0; i < arrayLength; i = i + 2) {
 120.193              jobject fontDescriptor = env->GetObjectArrayElement(array, i);
 120.194 @@ -732,7 +709,7 @@
 120.195               * extend buflen and bad things will happen.
 120.196               */
 120.197              unsigned char* buffer = NULL;
 120.198 -            jboolean unicodeUsed = env->GetBooleanField(fontDescriptor,AwtFont::useUnicodeID);
 120.199 +            jboolean unicodeUsed = env->GetBooleanField(fontDescriptor, AwtFont::useUnicodeID);
 120.200              try {
 120.201                  buffer = (unsigned char *)
 120.202                      env->GetPrimitiveArrayCritical(convertedBytes, 0);
 120.203 @@ -1231,7 +1208,7 @@
 120.204  public:
 120.205      CSegTableComponent();
 120.206      virtual ~CSegTableComponent();
 120.207 -    virtual void Create(LPWSTR name);
 120.208 +    virtual void Create(LPCWSTR name);
 120.209      virtual BOOL In(USHORT iChar) { DASSERT(FALSE); return FALSE; };
 120.210      LPWSTR GetFontName(){
 120.211          DASSERT(m_lpszFontName != NULL); return m_lpszFontName;
 120.212 @@ -1254,7 +1231,7 @@
 120.213      }
 120.214  }
 120.215  
 120.216 -void CSegTableComponent::Create(LPWSTR name)
 120.217 +void CSegTableComponent::Create(LPCWSTR name)
 120.218  {
 120.219      if (m_lpszFontName != NULL) {
 120.220          free(m_lpszFontName);
 120.221 @@ -1453,7 +1430,7 @@
 120.222      CStdSegTable();
 120.223      virtual ~CStdSegTable();
 120.224      BOOL IsEUDC() { return FALSE; };
 120.225 -    virtual void Create(LPWSTR name);
 120.226 +    virtual void Create(LPCWSTR name);
 120.227  
 120.228  protected:
 120.229      void GetData(DWORD dwOffset, LPVOID lpData, DWORD cbData);
 120.230 @@ -1481,7 +1458,7 @@
 120.231      DASSERT(nBytes != GDI_ERROR);
 120.232  }
 120.233  
 120.234 -void CStdSegTable::Create(LPWSTR name)
 120.235 +void CStdSegTable::Create(LPCWSTR name)
 120.236  {
 120.237      CSegTableComponent::Create(name);
 120.238  
 120.239 @@ -1509,7 +1486,7 @@
 120.240      CEUDCSegTable();
 120.241      virtual ~CEUDCSegTable();
 120.242      BOOL IsEUDC() { return TRUE; };
 120.243 -    virtual void Create(LPWSTR name);
 120.244 +    virtual void Create(LPCWSTR name);
 120.245  
 120.246  protected:
 120.247      void GetData(DWORD dwOffset, LPVOID lpData, DWORD cbData);
 120.248 @@ -1543,7 +1520,7 @@
 120.249      DASSERT(dwRead == cbData);
 120.250  }
 120.251  
 120.252 -void CEUDCSegTable::Create(LPWSTR name)
 120.253 +void CEUDCSegTable::Create(LPCWSTR name)
 120.254  {
 120.255  typedef struct tagHEAD{
 120.256      FIXED   sfnt_version;
 120.257 @@ -1564,19 +1541,8 @@
 120.258  
 120.259      // create EUDC font file and make EUDCSegTable
 120.260      // after wrapper function for CreateFileW, we use only CreateFileW
 120.261 -    if (IS_NT) {
 120.262 -        m_hTmpFile = ::CreateFileW(name, GENERIC_READ,
 120.263 -            FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 120.264 -    } else {
 120.265 -#ifdef WIN32
 120.266 -        DASSERT(IS_WIN95);
 120.267 -#endif
 120.268 -        char szFileName[_MAX_PATH];
 120.269 -        ::WideCharToMultiByte(CP_ACP, 0, name, -1,
 120.270 -            szFileName, sizeof(szFileName), NULL, NULL);
 120.271 -        m_hTmpFile = ::CreateFileA(szFileName, GENERIC_READ,
 120.272 -            FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 120.273 -    }
 120.274 +    m_hTmpFile = ::CreateFile(name, GENERIC_READ,
 120.275 +                               FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 120.276      if (m_hTmpFile == INVALID_HANDLE_VALUE){
 120.277          m_hTmpFile = NULL;
 120.278          return;
 120.279 @@ -1654,10 +1620,10 @@
 120.280  class CSegTableManager : public CSegTableManagerComponent
 120.281  {
 120.282  public:
 120.283 -    CSegTable* GetTable(LPWSTR lpszFontName, BOOL fEUDC);
 120.284 +    CSegTable* GetTable(LPCWSTR lpszFontName, BOOL fEUDC);
 120.285  };
 120.286  
 120.287 -CSegTable* CSegTableManager::GetTable(LPWSTR lpszFontName, BOOL fEUDC)
 120.288 +CSegTable* CSegTableManager::GetTable(LPCWSTR lpszFontName, BOOL fEUDC)
 120.289  {
 120.290      for (int i = 0; i < m_nTable; i++) {
 120.291          if ((((CSegTable*)m_tables[i])->IsEUDC() == fEUDC) &&
 120.292 @@ -1685,7 +1651,7 @@
 120.293  {
 120.294  public:
 120.295      CCombinedSegTable();
 120.296 -    void Create(LPWSTR name);
 120.297 +    void Create(LPCWSTR name);
 120.298      BOOL In(USHORT iChar);
 120.299  
 120.300  private:
 120.301 @@ -1807,7 +1773,7 @@
 120.302          wcscpy(m_szDefaultEUDCFile, lpszFileName);
 120.303  }
 120.304  
 120.305 -void CCombinedSegTable::Create(LPWSTR name)
 120.306 +void CCombinedSegTable::Create(LPCWSTR name)
 120.307  {
 120.308      CSegTableComponent::Create(name);
 120.309  
 120.310 @@ -1840,10 +1806,10 @@
 120.311  class CCombinedSegTableManager : public CSegTableManagerComponent
 120.312  {
 120.313  public:
 120.314 -    CCombinedSegTable* GetTable(LPWSTR lpszFontName);
 120.315 +    CCombinedSegTable* GetTable(LPCWSTR lpszFontName);
 120.316  };
 120.317  
 120.318 -CCombinedSegTable* CCombinedSegTableManager::GetTable(LPWSTR lpszFontName)
 120.319 +CCombinedSegTable* CCombinedSegTableManager::GetTable(LPCWSTR lpszFontName)
 120.320  {
 120.321      for (int i = 0; i < m_nTable; i++) {
 120.322          if (wcscmp(m_tables[i]->GetFontName(),lpszFontName) == 0)
 120.323 @@ -1901,8 +1867,9 @@
 120.324  
 120.325      jstring fontName = (jstring)env->GetObjectField(self, AwtFont::fontNameID);
 120.326      DASSERT(fontName != NULL);
 120.327 -    LPWSTR fontNameWStr = TO_WSTRING(fontName);
 120.328 -    CCombinedSegTable* pTable = tableManager.GetTable(fontNameWStr);
 120.329 +    LPCWSTR fontNameW = JNU_GetStringPlatformChars(env, fontName, NULL);
 120.330 +    CCombinedSegTable* pTable = tableManager.GetTable(fontNameW);
 120.331 +    JNU_ReleaseStringPlatformChars(env, fontName, fontNameW);
 120.332      return (pTable->In((USHORT) ch) ? JNI_TRUE : JNI_FALSE);
 120.333  
 120.334      CATCH_BAD_ALLOC_RET(FALSE);
   121.1 --- a/src/windows/native/sun/windows/awt_Font.h	Tue Feb 17 09:06:16 2009 -0800
   121.2 +++ b/src/windows/native/sun/windows/awt_Font.h	Wed Feb 18 10:05:41 2009 -0800
   121.3 @@ -28,7 +28,6 @@
   121.4  
   121.5  #include "awt.h"
   121.6  #include "awt_Object.h"
   121.7 -#include "awt_Unicode.h"
   121.8  
   121.9  #include "java_awt_Font.h"
  121.10  #include "sun_awt_windows_WFontMetrics.h"
   122.1 --- a/src/windows/native/sun/windows/awt_Frame.cpp	Tue Feb 17 09:06:16 2009 -0800
   122.2 +++ b/src/windows/native/sun/windows/awt_Frame.cpp	Wed Feb 18 10:05:41 2009 -0800
   122.3 @@ -1472,7 +1472,7 @@
   122.4  
   122.5      int badAlloc = 0;
   122.6      LPCTSTR coption;
   122.7 -    LPTSTR empty = TEXT("InputMethod");
   122.8 +    LPCTSTR empty = TEXT("InputMethod");
   122.9      AwtFrame *f = NULL;
  122.10  
  122.11      PDATA pData;
   123.1 --- a/src/windows/native/sun/windows/awt_InputMethod.cpp	Tue Feb 17 09:06:16 2009 -0800
   123.2 +++ b/src/windows/native/sun/windows/awt_InputMethod.cpp	Wed Feb 18 10:05:41 2009 -0800
   123.3 @@ -1,5 +1,5 @@
   123.4  /*
   123.5 - * Copyright 1997-2005 Sun Microsystems, Inc.  All Rights Reserved.
   123.6 + * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
   123.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   123.8   *
   123.9   * This code is free software; you can redistribute it and/or modify it
  123.10 @@ -580,18 +580,10 @@
  123.11      DWORD cbHKL = 16;
  123.12      LPTSTR end;
  123.13  
  123.14 -    if (IS_NT) {
  123.15 -        ret = ::RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Keyboard Layout\\Preload"), NULL, KEY_READ, &hKey);
  123.16 -    } else {
  123.17 -        ret = ::RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("keyboard layout\\preload\\1"), NULL, KEY_READ, &hKey);
  123.18 -    }
  123.19 +    ret = ::RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Keyboard Layout\\Preload"), NULL, KEY_READ, &hKey);
  123.20  
  123.21      if (ret == ERROR_SUCCESS) {
  123.22 -        if (IS_NT) {
  123.23 -            ret = ::RegQueryValueEx(hKey, TEXT("1"), 0, 0, szHKL, &cbHKL);
  123.24 -        } else {
  123.25 -            ret = ::RegQueryValueEx(hKey, NULL, 0, 0, szHKL, &cbHKL);
  123.26 -        }
  123.27 +        ret = ::RegQueryValueEx(hKey, TEXT("1"), 0, 0, szHKL, &cbHKL);
  123.28  
  123.29          if (ret == ERROR_SUCCESS) {
  123.30              hkl = reinterpret_cast<HKL>(static_cast<INT_PTR>(
   124.1 --- a/src/windows/native/sun/windows/awt_InputTextInfor.cpp	Tue Feb 17 09:06:16 2009 -0800
   124.2 +++ b/src/windows/native/sun/windows/awt_InputTextInfor.cpp	Wed Feb 18 10:05:41 2009 -0800
   124.3 @@ -1,5 +1,5 @@
   124.4  /*
   124.5 - * Copyright 2005-2006 Sun Microsystems, Inc.  All Rights Reserved.
   124.6 + * Copyright 2005-2008 Sun Microsystems, Inc.  All Rights Reserved.
   124.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   124.8   *
   124.9   * This code is free software; you can redistribute it and/or modify it
  124.10 @@ -22,10 +22,9 @@
  124.11   * CA 95054 USA or visit www.sun.com if you need additional information or
  124.12   * have any questions.
  124.13   */
  124.14 -#include <windows.h>
  124.15 -#include <jni.h>
  124.16 +
  124.17 +#include "awt.h"
  124.18  #include <imm.h>
  124.19 -#include "awt.h"
  124.20  #include "awt_Component.h"
  124.21  #include "awt_InputTextInfor.h"
  124.22  
  124.23 @@ -91,12 +90,12 @@
  124.24      LONG   cbData[5] = {0};
  124.25      LPVOID lpData[5] = {NULL};
  124.26      for (int i = startIndex, j = 0; i <= endIndex; i++, j++) {
  124.27 -        cbData[j] = ImmGetCompositionStringW(hIMC, GCS_INDEX[i], NULL, 0);
  124.28 +        cbData[j] = ::ImmGetCompositionString(hIMC, GCS_INDEX[i], NULL, 0);
  124.29          if (cbData[j] == 0) {
  124.30              lpData[j] = NULL;
  124.31          } else {
  124.32              LPBYTE lpTemp = new BYTE[cbData[j]];
  124.33 -            cbData[j] = ImmGetCompositionStringW(hIMC, GCS_INDEX[i], lpTemp, cbData[j]);
  124.34 +            cbData[j] = ::ImmGetCompositionString(hIMC, GCS_INDEX[i], lpTemp, cbData[j]);
  124.35              if (IMM_ERROR_GENERAL != cbData[j]) {
  124.36                  lpData[j] = (LPVOID)lpTemp;
  124.37              } else {
  124.38 @@ -126,7 +125,7 @@
  124.39  
  124.40      // Get the cursor position
  124.41      if (flags & GCS_COMPSTR) {
  124.42 -        m_cursorPosW = ImmGetCompositionStringW(hIMC, GCS_CURSORPOS,
  124.43 +        m_cursorPosW = ::ImmGetCompositionString(hIMC, GCS_CURSORPOS,
  124.44                                                  NULL, 0);
  124.45      }
  124.46  
  124.47 @@ -185,9 +184,11 @@
  124.48  
  124.49  jstring AwtInputTextInfor::MakeJavaString(JNIEnv* env, LPWSTR lpStrW, int cStrW) {
  124.50  
  124.51 -    if (env == NULL || lpStrW == NULL || cStrW == 0) return NULL;
  124.52 -
  124.53 -    return env->NewString(lpStrW, cStrW);
  124.54 +    if (env == NULL || lpStrW == NULL || cStrW == 0) {
  124.55 +        return NULL;
  124.56 +    } else {
  124.57 +        return env->NewString(reinterpret_cast<jchar*>(lpStrW), cStrW);
  124.58 +    }
  124.59  }
  124.60  
  124.61  //
  124.62 @@ -232,7 +233,7 @@
  124.63                  LCID lcJPN = MAKELCID(MAKELANGID(LANG_JAPANESE,SUBLANG_DEFAULT),SORT_DEFAULT);
  124.64                  // Reading string is given in half width katakana in Japanese Windows
  124.65                  //  Convert it to full width katakana.
  124.66 -                int cFWStrW = LCMapStringW( lcJPN, LCMAP_FULLWIDTH, lpHWStrW, cHWStrW, NULL, 0 );
  124.67 +                int cFWStrW = ::LCMapString(lcJPN, LCMAP_FULLWIDTH, lpHWStrW, cHWStrW, NULL, 0);
  124.68                  LPWSTR lpFWStrW;
  124.69                  try {
  124.70                      lpFWStrW = new WCHAR[cFWStrW];
  124.71 @@ -244,7 +245,7 @@
  124.72                      throw;
  124.73                  }
  124.74  
  124.75 -                LCMapStringW( lcJPN, LCMAP_FULLWIDTH, lpHWStrW, cHWStrW, lpFWStrW, cFWStrW );
  124.76 +                ::LCMapString(lcJPN, LCMAP_FULLWIDTH, lpHWStrW, cHWStrW, lpFWStrW, cFWStrW);
  124.77                  readingClauseW[cls] = MakeJavaString(env, lpFWStrW, cFWStrW);
  124.78                  delete [] lpFWStrW;
  124.79              } else {
  124.80 @@ -252,7 +253,7 @@
  124.81              }
  124.82          }
  124.83          else {
  124.84 -            readingClauseW[cls] = MakeJavaString(env, (LPWSTR)NULL, 0);
  124.85 +            readingClauseW[cls] = NULL;
  124.86          }
  124.87      }
  124.88  
   125.1 --- a/src/windows/native/sun/windows/awt_List.cpp	Tue Feb 17 09:06:16 2009 -0800
   125.2 +++ b/src/windows/native/sun/windows/awt_List.cpp	Wed Feb 18 10:05:41 2009 -0800
   125.3 @@ -1,5 +1,5 @@
   125.4  /*
   125.5 - * Copyright 1996-2007 Sun Microsystems, Inc.  All Rights Reserved.
   125.6 + * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   125.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   125.8   *
   125.9   * This code is free software; you can redistribute it and/or modify it
  125.10 @@ -27,7 +27,6 @@
  125.11  #include "awt_KeyboardFocusManager.h"
  125.12  #include "awt_Canvas.h"
  125.13  #include "awt_Dimension.h"
  125.14 -#include "awt_Unicode.h"
  125.15  #include "awt_Toolkit.h"
  125.16  #include "awt_Window.h"
  125.17  
  125.18 @@ -112,9 +111,8 @@
  125.19              DWORD wrapExStyle = 0;
  125.20  
  125.21              DWORD style = WS_CHILD | WS_CLIPSIBLINGS | WS_VSCROLL | WS_HSCROLL |
  125.22 -                LBS_NOINTEGRALHEIGHT | LBS_NOTIFY | LBS_OWNERDRAWFIXED |
  125.23 -                (IS_WIN4X ? 0 : WS_BORDER);
  125.24 -            DWORD exStyle = IS_WIN4X ? WS_EX_CLIENTEDGE : 0;
  125.25 +                LBS_NOINTEGRALHEIGHT | LBS_NOTIFY | LBS_OWNERDRAWFIXED;
  125.26 +            DWORD exStyle = WS_EX_CLIENTEDGE;
  125.27  
  125.28              /*
  125.29               * NOTE: WS_VISIBLE is always set for the listbox. Listbox
  125.30 @@ -571,10 +569,10 @@
  125.31  // operate WM_PRINT to be compatible with the "smooth scrolling" feature.
  125.32  MsgRouting AwtList::WmPrint(HDC hDC, LPARAM flags)
  125.33  {
  125.34 -    if (!isWrapperPrint && IS_WIN4X
  125.35 -            && (flags & PRF_CLIENT)
  125.36 -            && (GetStyleEx() & WS_EX_CLIENTEDGE)) {
  125.37 -
  125.38 +    if (!isWrapperPrint &&
  125.39 +        (flags & PRF_CLIENT) &&
  125.40 +        (GetStyleEx() & WS_EX_CLIENTEDGE))
  125.41 +    {
  125.42          int nOriginalDC = ::SaveDC(hDC);
  125.43          DASSERT(nOriginalDC != 0);
  125.44          // Save a copy of the DC for WmPrintClient
   126.1 --- a/src/windows/native/sun/windows/awt_MMStub.cpp	Tue Feb 17 09:06:16 2009 -0800
   126.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   126.3 @@ -1,573 +0,0 @@
   126.4 -/*
   126.5 - * Copyright 1999-2003 Sun Microsystems, Inc.  All Rights Reserved.
   126.6 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   126.7 - *
   126.8 - * This code is free software; you can redistribute it and/or modify it
   126.9 - * under the terms of the GNU General Public License version 2 only, as
  126.10 - * published by the Free Software Foundation.  Sun designates this
  126.11 - * particular file as subject to the "Classpath" exception as provided
  126.12 - * by Sun in the LICENSE file that accompanied this code.
  126.13 - *
  126.14 - * This code is distributed in the hope that it will be useful, but WITHOUT
  126.15 - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  126.16 - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  126.17 - * version 2 for more details (a copy is included in the LICENSE file that
  126.18 - * accompanied this code).
  126.19 - *
  126.20 - * You should have received a copy of the GNU General Public License version
  126.21 - * 2 along with this work; if not, write to the Free Software Foundation,
  126.22 - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  126.23 - *
  126.24 - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  126.25 - * CA 95054 USA or visit www.sun.com if you need additional information or
  126.26 - * have any questions.
  126.27 - */
  126.28 -
  126.29 -#include    "awt_MMStub.h"
  126.30 -
  126.31 -//---------------------------------------------------------------------------
  126.32 -//  Basic API
  126.33 -//---------------------------------------------------------------------------
  126.34 -
  126.35 -int      (WINAPI* g_pfnGetSystemMetrics)        (int);
  126.36 -MHND     (WINAPI* g_pfnMonitorFromWindow)       (HWND,BOOL);
  126.37 -MHND     (WINAPI* g_pfnMonitorFromRect)         (LPCRECT,BOOL);
  126.38 -MHND     (WINAPI* g_pfnMonitorFromPoint)        (POINT,BOOL);
  126.39 -BOOL     (WINAPI* g_pfnGetMonitorInfo)          (MHND,PMONITOR_INFO);
  126.40 -BOOL     (WINAPI* g_pfnEnumDisplayMonitors)     (HDC,LPCRECT,MON_ENUM_CALLBACK_PROC,LPARAM);
  126.41 -BOOL     (WINAPI* g_pfnEnumDisplayDevices)      (LPVOID,int,P_DISPLAY_DEVICE,DWORD);
  126.42 -
  126.43 -BOOL __initMultipleMonitorStubs(void);
  126.44 -BOOL __initMultipleMonitorStubs(void)
  126.45 -{
  126.46 -    static BOOL fInitDone;
  126.47 -    HMODULE     hUser32;
  126.48 -    HMODULE     hUnicows = UnicowsLoader::GetModuleHandle();
  126.49 -    BOOL        retCode = FALSE;
  126.50 -
  126.51 -    if (fInitDone)
  126.52 -    {
  126.53 -      retCode = g_pfnGetMonitorInfo != NULL;
  126.54 -        goto _RET_;
  126.55 -    }
  126.56 -
  126.57 -    if ((hUser32 = GetModuleHandle(TEXT("USER32"))) &&
  126.58 -        (*(FARPROC*)&g_pfnGetSystemMetrics    = GetProcAddress(hUser32,"GetSystemMetrics")) &&
  126.59 -        (*(FARPROC*)&g_pfnMonitorFromWindow   = GetProcAddress(hUser32,"MonitorFromWindow")) &&
  126.60 -        (*(FARPROC*)&g_pfnMonitorFromRect     = GetProcAddress(hUser32,"MonitorFromRect")) &&
  126.61 -        (*(FARPROC*)&g_pfnMonitorFromPoint    = GetProcAddress(hUser32,"MonitorFromPoint")) &&
  126.62 -        (*(FARPROC*)&g_pfnEnumDisplayMonitors = GetProcAddress(hUser32,"EnumDisplayMonitors")) &&
  126.63 -        (*(FARPROC*)&g_pfnGetMonitorInfo      = GetProcAddress(IS_WIN95 ? hUnicows : hUser32,"GetMonitorInfoW")) &&
  126.64 -        (*(FARPROC*)&g_pfnEnumDisplayDevices  = GetProcAddress(IS_WIN95 ? hUnicows : hUser32,"EnumDisplayDevicesW")) &&
  126.65 -        (GetSystemMetrics(SM_CXVSCREEN) >= GetSystemMetrics(SM_CXSCREEN)) &&
  126.66 -        (GetSystemMetrics(SM_CYVSCREEN) >= GetSystemMetrics(SM_CYSCREEN)) )
  126.67 -    {
  126.68 -        fInitDone = TRUE;
  126.69 -        retCode = TRUE;
  126.70 -        goto _RET_;
  126.71 -    }
  126.72 -    g_pfnGetSystemMetrics    = NULL;
  126.73 -    g_pfnMonitorFromWindow   = NULL;
  126.74 -    g_pfnMonitorFromRect     = NULL;
  126.75 -    g_pfnMonitorFromPoint    = NULL;
  126.76 -    g_pfnGetMonitorInfo      = NULL;
  126.77 -    g_pfnEnumDisplayMonitors = NULL;
  126.78 -    g_pfnEnumDisplayDevices  = NULL;
  126.79 -
  126.80 -    fInitDone = TRUE;
  126.81 -    retCode = FALSE;
  126.82 -
  126.83 -_RET_:
  126.84 -    return retCode;
  126.85 -}
  126.86 -
  126.87 -int WINAPI _getSystemMetrics(int nCode)
  126.88 -{
  126.89 -   int     retCode;
  126.90 -    if( __initMultipleMonitorStubs() )
  126.91 -    {
  126.92 -        retCode = g_pfnGetSystemMetrics(nCode);
  126.93 -        goto _RET_;
  126.94 -    }
  126.95 -
  126.96 -    switch( nCode )
  126.97 -    {
  126.98 -        case SM_CMONITORS:
  126.99 -        case SM_SAMEDSPLFORMAT:
 126.100 -            return 1;
 126.101 -
 126.102 -        case SM_XVSCREEN:
 126.103 -        case SM_YVSCREEN:
 126.104 -            return 0;
 126.105 -
 126.106 -        case SM_CXVSCREEN:
 126.107 -            nCode = SM_CXSCREEN;
 126.108 -            break;
 126.109 -
 126.110 -        case SM_CYVSCREEN:
 126.111 -            nCode = SM_CYSCREEN;
 126.112 -            break;
 126.113 -    }
 126.114 -
 126.115 -    retCode = GetSystemMetrics(nCode);
 126.116 -_RET_:
 126.117 -    return retCode;
 126.118 -}
 126.119 -
 126.120 -
 126.121 -MHND WINAPI _monitorFromRect(LPCRECT prScreen, UINT nFlags)
 126.122 -{
 126.123 -    MHND    retCode = NULL;
 126.124 -    if( __initMultipleMonitorStubs() )
 126.125 -    {
 126.126 -        retCode = g_pfnMonitorFromRect(prScreen, nFlags);
 126.127 -        goto _RET_;
 126.128 -    }
 126.129 -
 126.130 -    if( (prScreen->right < 0) || (prScreen->bottom < 0) )
 126.131 -    {
 126.132 -        goto _RET_;
 126.133 -    }
 126.134 -    {
 126.135 -        POINT   pP = {0,0};
 126.136 -
 126.137 -        pP.x = prScreen->left;
 126.138 -        pP.y = prScreen->top;
 126.139 -
 126.140 -        retCode = _monitorFromPoint(pP,nFlags);
 126.141 -    }
 126.142 -
 126.143 -_RET_:
 126.144 -    return retCode;
 126.145 -}
 126.146 -
 126.147 -MHND WINAPI _monitorFromWindow(HWND hwProbe, UINT nFlags)
 126.148 -{
 126.149 -    RECT    rR;
 126.150 -    MHND    retCode = NULL;
 126.151 -
 126.152 -    if( __initMultipleMonitorStubs() )
 126.153 -    {
 126.154 -        retCode = g_pfnMonitorFromWindow(hwProbe, nFlags);
 126.155 -        goto _RET_;
 126.156 -    }
 126.157 -
 126.158 -    if( nFlags & (MONITOR_DEFAULT_TO_PRIMARY | MONITOR_DEFAULT_TO_NEAR) )
 126.159 -    {
 126.160 -        retCode = PRIMARY_MONITOR;
 126.161 -        goto _RET_;
 126.162 -    }
 126.163 -
 126.164 -    if( GetWindowRect(hwProbe, &rR) )
 126.165 -    {
 126.166 -        retCode = _monitorFromRect(&rR, nFlags);
 126.167 -        goto _RET_;
 126.168 -    }
 126.169 -
 126.170 -_RET_:
 126.171 -    return retCode;
 126.172 -}
 126.173 -
 126.174 -MHND WINAPI _monitorFromPoint(POINT ptProbe, UINT nFlags)
 126.175 -{
 126.176 -    MHND    retCode = NULL;
 126.177 -    if( __initMultipleMonitorStubs() )
 126.178 -    {
 126.179 -        retCode = g_pfnMonitorFromPoint(ptProbe,nFlags);
 126.180 -        goto _RET_;
 126.181 -    }
 126.182 -
 126.183 -    if( nFlags & (MONITOR_DEFAULT_TO_PRIMARY | MONITOR_DEFAULT_TO_NEAR) )
 126.184 -    {
 126.185 -        goto _ASSIGN_;
 126.186 -    }
 126.187 -
 126.188 -    if( (ptProbe.x <= 0) || (ptProbe.x > GetSystemMetrics(SM_CXSCREEN)) )
 126.189 -    {
 126.190 -        goto _RET_;
 126.191 -    }
 126.192 -
 126.193 -    if( (ptProbe.y <= 0) || (ptProbe.y < GetSystemMetrics(SM_CYSCREEN)) )
 126.194 -    {
 126.195 -        goto _RET_;
 126.196 -    }
 126.197 -_ASSIGN_:
 126.198 -    retCode = PRIMARY_MONITOR;
 126.199 -
 126.200 -_RET_:
 126.201 -    return retCode;
 126.202 -}
 126.203 -
 126.204 -BOOL WINAPI _getMonitorInfo(MHND mhMon, PMONITOR_INFO pmMonInfo)
 126.205 -{
 126.206 -    RECT    rArea;
 126.207 -    BOOL    retCode = FALSE;
 126.208 -
 126.209 -    if( __initMultipleMonitorStubs() )
 126.210 -    {
 126.211 -        retCode = g_pfnGetMonitorInfo(mhMon, pmMonInfo);
 126.212 -        goto _RET_;
 126.213 -    }
 126.214 -
 126.215 -    if( mhMon != PRIMARY_MONITOR )
 126.216 -    {
 126.217 -        goto _RET_;
 126.218 -    }
 126.219 -
 126.220 -    if( NULL == pmMonInfo )
 126.221 -    {
 126.222 -        goto _RET_;
 126.223 -    }
 126.224 -
 126.225 -    if( FALSE == SystemParametersInfo(SPI_GETWORKAREA,0,&rArea,0) )
 126.226 -    {
 126.227 -        goto _RET_;
 126.228 -    }
 126.229 -
 126.230 -    if( pmMonInfo->dwSize >= sizeof(MONITOR_INFO) )
 126.231 -    {
 126.232 -        pmMonInfo->rMonitor.left = 0;
 126.233 -        pmMonInfo->rMonitor.top  = 0;
 126.234 -        pmMonInfo->rMonitor.right  = GetSystemMetrics(SM_CXSCREEN);
 126.235 -        pmMonInfo->rMonitor.bottom = GetSystemMetrics(SM_CYSCREEN);
 126.236 -        pmMonInfo->rWork    = rArea;
 126.237 -        pmMonInfo->dwFlags  = MONITOR_INFO_FLAG_PRIMARY;
 126.238 -
 126.239 -        if( pmMonInfo->dwSize >= sizeof(MONITOR_INFO_EXTENDED))
 126.240 -        {
 126.241 -            lstrcpy(((PMONITOR_INFO_EXTENDED)pmMonInfo)->strDevice,
 126.242 -            TEXT("DISPLAY") );
 126.243 -        }
 126.244 -
 126.245 -        retCode = TRUE;
 126.246 -    }
 126.247 -
 126.248 -_RET_:
 126.249 -    return retCode;
 126.250 -}
 126.251 -
 126.252 -BOOL WINAPI _enumDisplayMonitors(
 126.253 -                                    HDC hDC,LPCRECT lrcSect,
 126.254 -                                    MON_ENUM_CALLBACK_PROC lpfnEnumProc,
 126.255 -                                    LPARAM lData
 126.256 -                                )
 126.257 -{
 126.258 -    BOOL    retCode     = FALSE;
 126.259 -    RECT    rToPass     = {0,0,0,0};
 126.260 -    RECT    rBorder     = {0,0,0,0};
 126.261 -
 126.262 -    if( __initMultipleMonitorStubs() )
 126.263 -    {
 126.264 -        retCode = g_pfnEnumDisplayMonitors  (
 126.265 -                                                hDC, lrcSect,
 126.266 -                                                lpfnEnumProc,lData
 126.267 -                                            );
 126.268 -        goto _RET_;
 126.269 -    }
 126.270 -
 126.271 -    if( !lpfnEnumProc )
 126.272 -    {
 126.273 -        goto _RET_;
 126.274 -    }
 126.275 -
 126.276 -    rBorder.left   = 0;
 126.277 -    rBorder.top    = 0;
 126.278 -    rBorder.right  = GetSystemMetrics(SM_CXSCREEN);
 126.279 -    rBorder.bottom = GetSystemMetrics(SM_CYSCREEN);
 126.280 -
 126.281 -    if( hDC )
 126.282 -    {
 126.283 -        RECT rSect = {0,0,0,0};
 126.284 -        HWND hWnd  = NULL;
 126.285 -
 126.286 -        if( NULL == (hWnd = WindowFromDC(hDC)) )
 126.287 -        {
 126.288 -            goto _RET_;
 126.289 -        }
 126.290 -
 126.291 -        switch( GetClipBox(hDC,&rSect) )
 126.292 -        {
 126.293 -            case NULLREGION:
 126.294 -                 goto _ASSIGN_;
 126.295 -            case ERROR:
 126.296 -                 goto _RET_;
 126.297 -            default:
 126.298 -                MapWindowPoints(NULL, hWnd, (LPPOINT)&rBorder, 2);
 126.299 -                if( TRUE == IntersectRect(&rToPass,&rSect,&rBorder) )
 126.300 -                {
 126.301 -                   break;
 126.302 -                }
 126.303 -        }
 126.304 -
 126.305 -        rBorder = rToPass;
 126.306 -    }
 126.307 -
 126.308 -    if( (NULL == lrcSect) || (TRUE == IntersectRect(&rToPass,lrcSect,&rBorder)) )
 126.309 -    {
 126.310 -        lpfnEnumProc(PRIMARY_MONITOR,hDC,&rToPass,lData);
 126.311 -    }
 126.312 -_ASSIGN_:
 126.313 -    retCode = TRUE;
 126.314 -_RET_:
 126.315 -    return retCode;
 126.316 -}
 126.317 -
 126.318 -BOOL WINAPI _enumDisplayDevices (
 126.319 -                                    LPVOID lpReserved, int iDeviceNum,
 126.320 -                                    _DISPLAY_DEVICE * pDisplayDevice, DWORD dwFlags
 126.321 -                                )
 126.322 -{
 126.323 -    BOOL retCode = FALSE;
 126.324 -    if( __initMultipleMonitorStubs() )
 126.325 -    {
 126.326 -        retCode = g_pfnEnumDisplayDevices(lpReserved,iDeviceNum,pDisplayDevice,dwFlags);
 126.327 -    }
 126.328 -
 126.329 -    return retCode;
 126.330 -}
 126.331 -
 126.332 -
 126.333 -//---------------------------------------------------------------------------
 126.334 -// Extended API.
 126.335 -//---------------------------------------------------------------------------
 126.336 -//  Globais
 126.337 -int         g_nMonitorCounter;
 126.338 -int         g_nMonitorLimit;
 126.339 -MHND*       g_hmpMonitors;
 126.340 -//  Callbacks
 126.341 -BOOL WINAPI clb_fCountMonitors(MHND,HDC,LPRECT,LPARAM);
 126.342 -BOOL WINAPI clb_fCountMonitors(MHND hMon,HDC hDC,LPRECT rRect,LPARAM lP)
 126.343 -{
 126.344 -    g_nMonitorCounter ++;
 126.345 -    return TRUE;
 126.346 -}
 126.347 -BOOL WINAPI clb_fCollectMonitors(MHND,HDC,LPRECT,LPARAM);
 126.348 -BOOL WINAPI clb_fCollectMonitors(MHND hMon,HDC hDC,LPRECT rRect,LPARAM lP)
 126.349 -{
 126.350 -
 126.351 -    if( (g_nMonitorCounter < g_nMonitorLimit) && (NULL != g_hmpMonitors) )
 126.352 -    {
 126.353 -        g_hmpMonitors[g_nMonitorCounter] = hMon;
 126.354 -        g_nMonitorCounter ++;
 126.355 -    }
 126.356 -
 126.357 -    return TRUE;
 126.358 -}
 126.359 -//  Tools
 126.360 -void __normaRectPos(RECT*,RECT,RECT);
 126.361 -HWND __createWindow0(MHND,LPCTSTR,LPCTSTR,DWORD,int,int,int,int,HWND,HMENU,HANDLE,LPVOID);
 126.362 -HWND __createWindow1(MHND,LPCTSTR,LPCTSTR,DWORD,int,int,int,int,HWND,HMENU,HANDLE,LPVOID);
 126.363 -void __normaRectPos(RECT* rDest,RECT rSrc,RECT rNorma)
 126.364 -{
 126.365 -    int nDX = rSrc.right - rSrc.left;
 126.366 -    int nDY = rSrc.bottom - rSrc.top;
 126.367 -
 126.368 -    rDest->left  = rSrc.left + rNorma.left;
 126.369 -    rDest->top   = rSrc.top + rNorma.top;
 126.370 -
 126.371 -    rDest->right     = rDest->left + nDX;
 126.372 -    rDest->bottom    = rDest->top + nDY;
 126.373 -}
 126.374 -HWND __createWindow0(   MHND hmMonitor,LPCTSTR lpClassName,LPCTSTR lpWindowName,
 126.375 -                        DWORD dwStyle,int x,int y,int nWidth,
 126.376 -                        int nHeight,HWND hWndParent,HMENU hMenu,
 126.377 -                        HANDLE hInstance,LPVOID lpParam )
 126.378 -{
 126.379 -    HWND    retCode = NULL;
 126.380 -
 126.381 -    if( (NULL != hmMonitor) && (NULL != lpClassName) &&
 126.382 -        (NULL != lpWindowName) && (NULL != hInstance) )
 126.383 -    {
 126.384 -        RECT    rRW     = {0,0,0,0};
 126.385 -        RECT    rRM     = {0,0,0,0};
 126.386 -        RECT    rSect   = {0,0,0,0};
 126.387 -
 126.388 -        SetRect(&rRW,x,y,x+nWidth,y+nHeight);
 126.389 -
 126.390 -        if( TRUE == _monitorBounds(hmMonitor,&rRM) )
 126.391 -        {
 126.392 -            __normaRectPos(&rRW,rRW,rRM);
 126.393 -
 126.394 -            IntersectRect(&rSect,&rRM,&rRW);
 126.395 -
 126.396 -            if( TRUE == EqualRect(&rSect,&rRW) )
 126.397 -            {
 126.398 -                x = rSect.left;
 126.399 -                y = rSect.top;
 126.400 -                nWidth = rSect.right - rSect.left;
 126.401 -                nHeight = rSect.bottom - rSect.top;
 126.402 -                retCode = CreateWindow(
 126.403 -                                            lpClassName,lpWindowName,
 126.404 -                                            dwStyle,x,y,nWidth,
 126.405 -                                            nHeight,hWndParent,hMenu,
 126.406 -                                            (HINSTANCE)hInstance,lpParam
 126.407 -                                        );
 126.408 -            } else  {
 126.409 -                    //  A coisa indefinida. Nao tenho sabdoria o que
 126.410 -                    //  fazer aqui mesmo
 126.411 -                    //  E necessario perguntar Jeannette
 126.412 -                    }
 126.413 -        }
 126.414 -    }
 126.415 -
 126.416 -    return retCode;
 126.417 -}
 126.418 -HWND __createWindow1(   MHND hmMonitor,LPCTSTR lpClassName,LPCTSTR lpWindowName,
 126.419 -                        DWORD dwStyle,int x,int y,int nWidth,
 126.420 -                        int nHeight,HWND hWndParent,HMENU hMenu,
 126.421 -                        HANDLE hInstance,LPVOID lpParam )
 126.422 -{
 126.423 -    HWND    retCode = NULL;
 126.424 -
 126.425 -    if( (NULL != hmMonitor) && (NULL != lpClassName) &&
 126.426 -        (NULL != lpWindowName) && (NULL != hInstance) )
 126.427 -    {
 126.428 -        RECT    rRM     = {0,0,0,0};
 126.429 -
 126.430 -        if( TRUE == _monitorBounds(hmMonitor,&rRM) )
 126.431 -        {
 126.432 -            HWND    wW          = NULL;
 126.433 -            BOOL    wasVisible  = (0 != (dwStyle & WS_VISIBLE));
 126.434 -
 126.435 -            if( TRUE == wasVisible )
 126.436 -            {
 126.437 -                dwStyle &= ~WS_VISIBLE;
 126.438 -            }
 126.439 -
 126.440 -            if( NULL != (wW = CreateWindow(
 126.441 -                                                lpClassName,lpWindowName,
 126.442 -                                                dwStyle,x,y,nWidth,
 126.443 -                                                nHeight,hWndParent,hMenu,
 126.444 -                                                (HINSTANCE)hInstance,lpParam
 126.445 -                                            )) )
 126.446 -            {
 126.447 -                RECT    rRW     = {0,0,0,0};
 126.448 -                RECT    rSect   = {0,0,0,0};
 126.449 -
 126.450 -                GetWindowRect(wW,&rRW);
 126.451 -
 126.452 -                __normaRectPos(&rRW,rRW,rRM);
 126.453 -
 126.454 -                IntersectRect(&rSect,&rRM,&rRW);
 126.455 -
 126.456 -                if( TRUE == EqualRect(&rSect,&rRW) )
 126.457 -                {
 126.458 -                    x = rSect.left;
 126.459 -                    y = rSect.top;
 126.460 -                    nWidth = rSect.right - rSect.left;
 126.461 -                    nHeight = rSect.bottom - rSect.top;
 126.462 -
 126.463 -                    MoveWindow(wW,x,y,nWidth,nHeight,FALSE);
 126.464 -
 126.465 -                    if( TRUE == wasVisible )
 126.466 -                    {
 126.467 -                        UpdateWindow(wW);
 126.468 -                        ShowWindow(wW,SW_SHOW);
 126.469 -                    }
 126.470 -
 126.471 -                    retCode = wW;
 126.472 -                } else  {
 126.473 -                        //  A coisa indefinida. Nao sei o que
 126.474 -                        //  fazer aqui. E necessario perguntar Jeannette
 126.475 -                            DestroyWindow(wW);
 126.476 -                        }
 126.477 -            }
 126.478 -        }
 126.479 -    }
 126.480 -
 126.481 -    return retCode;
 126.482 -}
 126.483 -
 126.484 -//  Implementations
 126.485 -int WINAPI _countMonitors(void)
 126.486 -{
 126.487 -    g_nMonitorCounter = 0;
 126.488 -
 126.489 -    _enumDisplayMonitors(NULL,NULL,clb_fCountMonitors,0L);
 126.490 -
 126.491 -    return g_nMonitorCounter;
 126.492 -
 126.493 -}
 126.494 -int WINAPI _collectMonitors(MHND* hmpMonitors,int nNum)
 126.495 -{
 126.496 -    int     retCode = 0;
 126.497 -
 126.498 -    if( NULL != hmpMonitors )
 126.499 -    {
 126.500 -        g_nMonitorCounter   = 0;
 126.501 -        g_nMonitorLimit     = nNum;
 126.502 -        g_hmpMonitors       = hmpMonitors;
 126.503 -
 126.504 -        _enumDisplayMonitors(NULL,NULL,clb_fCollectMonitors,0L);
 126.505 -
 126.506 -        retCode             = g_nMonitorCounter;
 126.507 -
 126.508 -        g_nMonitorCounter   = 0;
 126.509 -        g_nMonitorLimit     = 0;
 126.510 -        g_hmpMonitors       = NULL;
 126.511 -
 126.512 -    }
 126.513 -    return retCode;
 126.514 -}
 126.515 -BOOL WINAPI _monitorBounds(MHND hmMonitor,RECT* rpBounds)
 126.516 -{
 126.517 -    BOOL retCode = FALSE;
 126.518 -
 126.519 -    if( (NULL != hmMonitor) && (NULL != rpBounds)  )
 126.520 -    {
 126.521 -        MONITOR_INFO miInfo;
 126.522 -
 126.523 -        memset((void*)(&miInfo),0,sizeof(MONITOR_INFO));
 126.524 -        miInfo.dwSize = sizeof(MONITOR_INFO);
 126.525 -
 126.526 -        if( TRUE == (retCode = _getMonitorInfo(hmMonitor,&(miInfo))) )
 126.527 -        {
 126.528 -            (*rpBounds) = miInfo.rMonitor;
 126.529 -        }
 126.530 -    }
 126.531 -    return retCode;
 126.532 -}
 126.533 -
 126.534 -HDC WINAPI _makeDCFromMonitor(MHND hmMonitor) {
 126.535 -    HDC retCode = NULL;
 126.536 -
 126.537 -    if( NULL != hmMonitor ) {
 126.538 -
 126.539 -        MONITOR_INFO_EXTENDED mieInfo;
 126.540 -
 126.541 -        memset((void*)(&mieInfo),0,sizeof(MONITOR_INFO_EXTENDED));
 126.542 -        mieInfo.dwSize = sizeof(MONITOR_INFO_EXTENDED);
 126.543 -
 126.544 -        if( TRUE == _getMonitorInfo(hmMonitor,(PMONITOR_INFO)(&mieInfo)) ) {
 126.545 -            HDC hDC = CreateDC(mieInfo.strDevice,NULL,NULL,NULL);
 126.546 -
 126.547 -            if( NULL != hDC ) {
 126.548 -                retCode = hDC;
 126.549 -            }
 126.550 -        }
 126.551 -    }
 126.552 -    return retCode;
 126.553 -}
 126.554 -
 126.555 -HWND WINAPI _createWindowOM( MHND hmMonitor,LPCTSTR lpClassName,LPCTSTR lpWindowName,
 126.556 -                    DWORD dwStyle,int x,int y,int nWidth,
 126.557 -                    int nHeight,HWND hWndParent,HMENU hMenu,
 126.558 -                    HANDLE hInstance,LPVOID lpParam )
 126.559 -{
 126.560 -    if( (CW_USEDEFAULT == x) || (CW_USEDEFAULT == y) ||
 126.561 -        (CW_USEDEFAULT == nWidth) || (CW_USEDEFAULT == nHeight) )
 126.562 -    {
 126.563 -        return __createWindow1   (
 126.564 -                                    hmMonitor,lpClassName,lpWindowName,
 126.565 -                                    dwStyle,x,y,nWidth,
 126.566 -                                    nHeight,hWndParent,hMenu,
 126.567 -                                    hInstance,lpParam
 126.568 -                                );
 126.569 -    }
 126.570 -    return __createWindow0   (
 126.571 -                                hmMonitor,lpClassName,lpWindowName,
 126.572 -                                dwStyle,x,y,nWidth,
 126.573 -                                nHeight,hWndParent,hMenu,
 126.574 -                                hInstance,lpParam
 126.575 -                            );
 126.576 -}
   127.1 --- a/src/windows/native/sun/windows/awt_MMStub.h	Tue Feb 17 09:06:16 2009 -0800
   127.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   127.3 @@ -1,131 +0,0 @@
   127.4 -/*
   127.5 - * Copyright 1999-2003 Sun Microsystems, Inc.  All Rights Reserved.
   127.6 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   127.7 - *
   127.8 - * This code is free software; you can redistribute it and/or modify it
   127.9 - * under the terms of the GNU General Public License version 2 only, as
  127.10 - * published by the Free Software Foundation.  Sun designates this
  127.11 - * particular file as subject to the "Classpath" exception as provided
  127.12 - * by Sun in the LICENSE file that accompanied this code.
  127.13 - *
  127.14 - * This code is distributed in the hope that it will be useful, but WITHOUT
  127.15 - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  127.16 - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  127.17 - * version 2 for more details (a copy is included in the LICENSE file that
  127.18 - * accompanied this code).
  127.19 - *
  127.20 - * You should have received a copy of the GNU General Public License version
  127.21 - * 2 along with this work; if not, write to the Free Software Foundation,
  127.22 - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  127.23 - *
  127.24 - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  127.25 - * CA 95054 USA or visit www.sun.com if you need additional information or
  127.26 - * have any questions.
  127.27 - */
  127.28 -#ifndef _INC_MMSTUB
  127.29 -#define _INC_MMSTUB
  127.30 -
  127.31 -#ifndef     _WINDOWS_
  127.32 -#include    "windows.h"
  127.33 -#endif
  127.34 -
  127.35 -#ifndef _AWT_H_
  127.36 -#include "awt.h"
  127.37 -#endif
  127.38 -
  127.39 -#if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0500)
  127.40 -
  127.41 -/*  Cdecl for C++               */
  127.42 -#ifdef __cplusplus
  127.43 -extern "C" {
  127.44 -#endif
  127.45 -
  127.46 -/*  Constants                   */
  127.47 -#define SM_XVSCREEN                         76
  127.48 -#define SM_YVSCREEN                         77
  127.49 -#define SM_CXVSCREEN                        78
  127.50 -#define SM_CYVSCREEN                        79
  127.51 -#define SM_CMONITORS                        80
  127.52 -#define SM_SAMEDSPLFORMAT                   81
  127.53 -
  127.54 -#define MONITOR_DEFAULT_TO_NULL             0x00000000
  127.55 -#define MONITOR_DEFAULT_TO_PRIMARY          0x00000001
  127.56 -#define MONITOR_DEFAULT_TO_NEAR             0x00000002
  127.57 -
  127.58 -
  127.59 -
  127.60 -#define MONITOR_INFO_FLAG_PRIMARY           0x00000001
  127.61 -
  127.62 -#define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP  0x00000001
  127.63 -#define DISPLAY_DEVICE_MULTY_DRIVER         0x00000002
  127.64 -#define DISPLAY_DEVICE_PRIMARY_DEVICE       0x00000004
  127.65 -#define DISPLAY_DEVICE_MIRRORING_DRIVER     0x00000008
  127.66 -
  127.67 -
  127.68 -#define DISPLAY_DEVICE_VGA                  0x00000010
  127.69 -
  127.70 -#define ENUM_CURRENT_SETTINGS               ((DWORD)-1)
  127.71 -#define ENUM_REGISTRY_SETTINGS              ((DWORD)-2)
  127.72 -
  127.73 -#define PRIMARY_MONITOR                     ((MHND)0x42)
  127.74 -
  127.75 -
  127.76 -#define DEV_NAME_LEN                        32
  127.77 -#define DEV_STR_LEN                         128
  127.78 -
  127.79 -
  127.80 -//  Datatypes
  127.81 -typedef HANDLE                              MHND;
  127.82 -typedef BOOL (CALLBACK* MON_ENUM_CALLBACK_PROC)(MHND,HDC,LPRECT,LPARAM);
  127.83 -
  127.84 -typedef struct  tagMONITOR_INFO
  127.85 -{
  127.86 -    DWORD       dwSize;
  127.87 -    RECT        rMonitor;
  127.88 -    RECT        rWork;
  127.89 -    DWORD       dwFlags;
  127.90 -} MONITOR_INFO, *PMONITOR_INFO;
  127.91 -
  127.92 -typedef struct tagMONITOR_INFO_EXTENDED
  127.93 -{
  127.94 -   DWORD       dwSize;
  127.95 -    RECT        rMonitor;
  127.96 -    RECT        rWork;
  127.97 -    DWORD       dwFlags;
  127.98 -    TCHAR       strDevice[DEV_NAME_LEN];
  127.99 -} MONITOR_INFO_EXTENDED, *PMONITOR_INFO_EXTENDED;
 127.100 -
 127.101 -typedef struct tagDISPLAY_DEVICE
 127.102 -{
 127.103 -    DWORD       dwSize;
 127.104 -    WCHAR        strDevName[DEV_NAME_LEN];
 127.105 -    WCHAR        strDevString[DEV_STR_LEN];
 127.106 -    DWORD       dwFlags;
 127.107 -    WCHAR       deviceID[128];
 127.108 -    WCHAR       deviceKey[128];
 127.109 -} _DISPLAY_DEVICE, *P_DISPLAY_DEVICE;
 127.110 -
 127.111 -/*  Basic API's  */
 127.112 -BOOL WINAPI                     _enumDisplayMonitors(HDC,LPCRECT,MON_ENUM_CALLBACK_PROC,LPARAM);
 127.113 -BOOL WINAPI                     _enumDisplayDevices (LPVOID,int,P_DISPLAY_DEVICE,DWORD);
 127.114 -BOOL WINAPI                     _getMonitorInfo     (MHND,PMONITOR_INFO);
 127.115 -MHND WINAPI                     _monitorFromPoint   (POINT,UINT);
 127.116 -MHND WINAPI                      _monitorFromWindow  (HWND,UINT);
 127.117 -MHND WINAPI                     _monitorFromRect    (LPCRECT,UINT);
 127.118 -int WINAPI                      _getSystemMetrics   (int);
 127.119 -
 127.120 -/*  Additional API's */
 127.121 -int WINAPI                      _countMonitors      (void);
 127.122 -int WINAPI                      _collectMonitors    (MHND*,int);
 127.123 -BOOL WINAPI                     _monitorBounds      (MHND,RECT*);
 127.124 -HDC WINAPI                      _makeDCFromMonitor  (MHND);
 127.125 -HWND WINAPI                     _createWindowOM     (MHND,LPCTSTR,LPCTSTR,DWORD,int,int,int,
 127.126 -                                                     int,HWND,HMENU,HANDLE,LPVOID);
 127.127 -
 127.128 -#ifdef __cplusplus
 127.129 -}
 127.130 -#endif  /* __cplusplus */
 127.131 -
 127.132 -#endif  /* !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0500) */
 127.133 -
 127.134 -#endif  /* _INC_MMSTUB */
   128.1 --- a/src/windows/native/sun/windows/awt_MenuItem.cpp	Tue Feb 17 09:06:16 2009 -0800
   128.2 +++ b/src/windows/native/sun/windows/awt_MenuItem.cpp	Wed Feb 18 10:05:41 2009 -0800
   128.3 @@ -1,5 +1,5 @@
   128.4  /*
   128.5 - * Copyright 1996-2007 Sun Microsystems, Inc.  All Rights Reserved.
   128.6 + * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   128.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   128.8   *
   128.9   * This code is free software; you can redistribute it and/or modify it
  128.10 @@ -23,6 +23,7 @@
  128.11   * have any questions.
  128.12   */
  128.13  
  128.14 +#include "awt.h"
  128.15  #include "awt_MenuItem.h"
  128.16  #include "awt_Menu.h"
  128.17  #include "awt_MenuBar.h"
  128.18 @@ -70,7 +71,6 @@
  128.19  LANGID AwtMenuItem::m_idLang = LOWORD(GetKeyboardLayout(0));
  128.20  UINT AwtMenuItem::m_CodePage =
  128.21      AwtMenuItem::LangToCodePage(AwtMenuItem::m_idLang);
  128.22 -BOOL AwtMenuItem::m_isWin95 = IS_WIN95;
  128.23  BOOL AwtMenuItem::sm_rtl = PRIMARYLANGID(GetInputLanguage()) == LANG_ARABIC ||
  128.24                             PRIMARYLANGID(GetInputLanguage()) == LANG_HEBREW;
  128.25  BOOL AwtMenuItem::sm_rtlReadingOrder =
  128.26 @@ -150,7 +150,7 @@
  128.27          jobject createError = NULL;
  128.28          if (dw == ERROR_OUTOFMEMORY)
  128.29          {
  128.30 -            jstring errorMsg = env->NewStringUTF("too many menu handles");
  128.31 +            jstring errorMsg = JNU_NewStringPlatform(env, L"too many menu handles");
  128.32              createError = JNU_NewObjectByName(env, "java/lang/OutOfMemoryError",
  128.33                                                     "(Ljava/lang/String;)V",
  128.34                                                     errorMsg);
  128.35 @@ -435,16 +435,7 @@
  128.36      if (drawInfo.itemID != m_Id)
  128.37          return;
  128.38  
  128.39 -    /* Fixed bug 4349969. Since the problem occurs on Windows 98 and not on
  128.40 -       Windows NT, the fix is to check for Windows 95/98 and to check if the
  128.41 -       handle to the menu of the item to be drawn is the same as the handle to the
  128.42 -       menu of the menu object. If they're not the same, just return and don't do
  128.43 -       the drawing.
  128.44 -    */
  128.45 -    if ( IS_WIN95 && drawInfo.hwndItem != (HWND)this->m_menuContainer->GetHMenu()) {
  128.46 -        return;
  128.47 -    } else
  128.48 -        DrawSelf(drawInfo);
  128.49 +    DrawSelf(drawInfo);
  128.50  }
  128.51  
  128.52  void AwtMenuItem::MeasureSelf(HDC hDC, MEASUREITEMSTRUCT& measureInfo)
  128.53 @@ -802,8 +793,9 @@
  128.54      jobject jitem = GetTarget(env);
  128.55      jstring label  =
  128.56          (jstring)(env)->GetObjectField(jitem, AwtMenuItem::labelID);
  128.57 -    LPWSTR labelW = TO_WSTRING(label);
  128.58 +    LPCWSTR labelW = JNU_GetStringPlatformChars(env, label, NULL);
  128.59      BOOL isSeparator = (labelW && (wcscmp(labelW, L"-") == 0));
  128.60 +    JNU_ReleaseStringPlatformChars(env, label, labelW);
  128.61  
  128.62      env->DeleteLocalRef(label);
  128.63      env->DeleteLocalRef(jitem);
   129.1 --- a/src/windows/native/sun/windows/awt_Multimon.h	Tue Feb 17 09:06:16 2009 -0800
   129.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   129.3 @@ -1,54 +0,0 @@
   129.4 -/*
   129.5 - * Copyright 1999-2001 Sun Microsystems, Inc.  All Rights Reserved.
   129.6 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   129.7 - *
   129.8 - * This code is free software; you can redistribute it and/or modify it
   129.9 - * under the terms of the GNU General Public License version 2 only, as
  129.10 - * published by the Free Software Foundation.  Sun designates this
  129.11 - * particular file as subject to the "Classpath" exception as provided
  129.12 - * by Sun in the LICENSE file that accompanied this code.
  129.13 - *
  129.14 - * This code is distributed in the hope that it will be useful, but WITHOUT
  129.15 - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  129.16 - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  129.17 - * version 2 for more details (a copy is included in the LICENSE file that
  129.18 - * accompanied this code).
  129.19 - *
  129.20 - * You should have received a copy of the GNU General Public License version
  129.21 - * 2 along with this work; if not, write to the Free Software Foundation,
  129.22 - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  129.23 - *
  129.24 - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  129.25 - * CA 95054 USA or visit www.sun.com if you need additional information or
  129.26 - * have any questions.
  129.27 - */
  129.28 -#ifndef     _INC_MULTIMON_
  129.29 -#define     _INC_MULTIMON_
  129.30 -#endif
  129.31 -//
  129.32 -// build defines that replace the regular APIs with our versions
  129.33 -//
  129.34 -#undef GetMonitorInfo
  129.35 -#undef GetSystemMetrics
  129.36 -#undef MonitorFromWindow
  129.37 -#undef MonitorFromRect
  129.38 -#undef MonitorFromPoint
  129.39 -#undef EnumDisplayMonitors
  129.40 -#undef EnumDisplayDevices
  129.41 -
  129.42 -#include    "awt_MMStub.h"
  129.43 -
  129.44 -#define GetSystemMetricsMM      _getSystemMetrics
  129.45 -#define MonitorFromWindow       _monitorFromWindow
  129.46 -#define MonitorFromRect         _monitorFromRect
  129.47 -#define MonitorFromPoint        _monitorFromPoint
  129.48 -#define GetMonitorInfo          _getMonitorInfo
  129.49 -#define EnumDisplayMonitors     _enumDisplayMonitors
  129.50 -#define EnumDisplayDevices      _enumDisplayDevices
  129.51 -
  129.52 -
  129.53 -#define CountMonitors           _countMonitors
  129.54 -#define CollectMonitors         _collectMonitors
  129.55 -#define MonitorBounds           _monitorBounds
  129.56 -#define MakeDCFromMonitor       _makeDCFromMonitor
  129.57 -#define CreateWindowOnMonitor   _createWindowOM
   130.1 --- a/src/windows/native/sun/windows/awt_Object.cpp	Tue Feb 17 09:06:16 2009 -0800
   130.2 +++ b/src/windows/native/sun/windows/awt_Object.cpp	Wed Feb 18 10:05:41 2009 -0800
   130.3 @@ -25,9 +25,6 @@
   130.4  
   130.5  #include "awt_Object.h"
   130.6  #include "ObjectList.h"
   130.7 -#ifdef DEBUG
   130.8 -#include "awt_Unicode.h"
   130.9 -#endif
  130.10  
  130.11  #ifdef DEBUG
  130.12  static BOOL reportEvents = FALSE;
  130.13 @@ -116,8 +113,9 @@
  130.14                                                "getName",
  130.15                                                "()Ljava/lang/String;").l;
  130.16              DASSERT(!safe_ExceptionOccurred(env));
  130.17 -            printf("Posting %s%s method to %S\n", methodName, methodSig,
  130.18 -                   TO_WSTRING(targetStr));
  130.19 +            LPCWSTR targetStrW = JNU_GetStringPlatformChars(env, targetStr, NULL);
  130.20 +            printf("Posting %s%s method to %S\n", methodName, methodSig, targetStrW);
  130.21 +            JNU_ReleaseStringPlatformChars(env, targetStr, targetStrW);
  130.22          }
  130.23  #endif
  130.24          /* caching would do much good here */
  130.25 @@ -148,8 +146,11 @@
  130.26              (jstring)JNU_CallMethodByName(env, NULL, GetTarget(env),"getName",
  130.27                                            "()Ljava/lang/String;").l;
  130.28          DASSERT(!safe_ExceptionOccurred(env));
  130.29 -        printf("Posting %S to %S\n", TO_WSTRING(eventStr),
  130.30 -               TO_WSTRING(targetStr));
  130.31 +        LPCWSTR eventStrW = JNU_GetStringPlatformChars(env, eventStr, NULL);
  130.32 +        LPCWSTR targetStrW = JNU_GetStringPlatformChars(env, targetStr, NULL);
  130.33 +        printf("Posting %S to %S\n", eventStrW, targetStrW);
  130.34 +        JNU_ReleaseStringPlatformChars(env, eventStr, eventStrW);
  130.35 +        JNU_ReleaseStringPlatformChars(env, targetStr, targetStrW);
  130.36      }
  130.37  #endif
  130.38      /* Post event to the system EventQueue. */
   131.1 --- a/src/windows/native/sun/windows/awt_Palette.cpp	Tue Feb 17 09:06:16 2009 -0800
   131.2 +++ b/src/windows/native/sun/windows/awt_Palette.cpp	Wed Feb 18 10:05:41 2009 -0800
   131.3 @@ -1,5 +1,5 @@
   131.4  /*
   131.5 - * Copyright 2001-2004 Sun Microsystems, Inc.  All Rights Reserved.
   131.6 + * Copyright 2001-2008 Sun Microsystems, Inc.  All Rights Reserved.
   131.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   131.8   *
   131.9   * This code is free software; you can redistribute it and/or modify it
  131.10 @@ -23,7 +23,7 @@
  131.11   * have any questions.
  131.12   */
  131.13  
  131.14 -#include <windows.h>
  131.15 +#include "awt.h"
  131.16  #include "awt_Palette.h"
  131.17  #include "awt_Component.h"
  131.18  #include "img_util_md.h"
   132.1 --- a/src/windows/native/sun/windows/awt_PopupMenu.cpp	Tue Feb 17 09:06:16 2009 -0800
   132.2 +++ b/src/windows/native/sun/windows/awt_PopupMenu.cpp	Wed Feb 18 10:05:41 2009 -0800
   132.3 @@ -234,11 +234,13 @@
   132.4          jobject jitem = item->GetTarget(env);
   132.5          BOOL bItemEnabled = isEnabled && (jboolean)env->GetBooleanField(jitem,
   132.6              AwtMenuItem::enabledID);
   132.7 -        LPWSTR labelW = TO_WSTRING((jstring)env->GetObjectField(jitem,
   132.8 -            AwtMenuItem::labelID));
   132.9 -        if (labelW != NULL && wcscmp(labelW,L"-") != 0) {
  132.10 +        jstring labelStr = static_cast<jstring>(env->GetObjectField(jitem, AwtMenuItem::labelID));
  132.11 +        LPCWSTR labelStrW = JNU_GetStringPlatformChars(env, labelStr, NULL);
  132.12 +        if (labelStrW  && wcscmp(labelStrW, L"-") != 0) {
  132.13              item->Enable(bItemEnabled);
  132.14          }
  132.15 +        JNU_ReleaseStringPlatformChars(env, labelStr, labelStrW);
  132.16 +        env->DeleteLocalRef(labelStr);
  132.17          env->DeleteLocalRef(jitem);
  132.18      }
  132.19      env->DeleteLocalRef(target);
   133.1 --- a/src/windows/native/sun/windows/awt_PrintControl.cpp	Tue Feb 17 09:06:16 2009 -0800
   133.2 +++ b/src/windows/native/sun/windows/awt_PrintControl.cpp	Wed Feb 18 10:05:41 2009 -0800
   133.3 @@ -1,5 +1,5 @@
   133.4  /*
   133.5 - * Copyright 1999-2007 Sun Microsystems, Inc.  All Rights Reserved.
   133.6 + * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
   133.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   133.8   *
   133.9   * This code is free software; you can redistribute it and/or modify it
  133.10 @@ -108,16 +108,13 @@
  133.11  {
  133.12      JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
  133.13  
  133.14 -    BOOL nt = IS_NT;
  133.15      DWORD cReturned = 0;
  133.16  
  133.17      if (pPrinterEnum == NULL) {
  133.18          // Compute size of buffer
  133.19          DWORD cbNeeded = 0;
  133.20 -        if (nt) {
  133.21 -            ::EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS,
  133.22 +        ::EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS,
  133.23                             NULL, 2, NULL, 0, &cbNeeded, &cReturned);
  133.24 -        }
  133.25          ::EnumPrinters(PRINTER_ENUM_LOCAL,
  133.26                         NULL, 5, NULL, 0, pcbBuf, &cReturned);
  133.27          if (cbNeeded > (*pcbBuf)) {
  133.28 @@ -139,65 +136,63 @@
  133.29      // doesn't support port searches. So, if the user has specified the
  133.30      // printer name as "LPT1:" (even though this is actually a port
  133.31      // name), we won't find the printer here.
  133.32 -    if (nt) {
  133.33 -        if (!::EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS,
  133.34 -                            NULL, 4, pPrinterEnum, cbBuf, &dummyWord, &cReturned)) {
  133.35 -            return FALSE;
  133.36 -        }
  133.37 +    if (!::EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS,
  133.38 +                        NULL, 4, pPrinterEnum, cbBuf, &dummyWord, &cReturned)) {
  133.39 +        return FALSE;
  133.40 +    }
  133.41  
  133.42 -        for (DWORD i = 0; i < cReturned; i++) {
  133.43 -            PRINTER_INFO_4 *info4 = (PRINTER_INFO_4 *)
  133.44 -                (pPrinterEnum + i * sizeof(PRINTER_INFO_4));
  133.45 -            if (info4->pPrinterName != NULL &&
  133.46 -                _tcsicmp(lpcPrinterName, info4->pPrinterName) == 0) {
  133.47 +    for (DWORD i = 0; i < cReturned; i++) {
  133.48 +        PRINTER_INFO_4 *info4 = (PRINTER_INFO_4 *)
  133.49 +            (pPrinterEnum + i * sizeof(PRINTER_INFO_4));
  133.50 +        if (info4->pPrinterName != NULL &&
  133.51 +            _tcsicmp(lpcPrinterName, info4->pPrinterName) == 0) {
  133.52  
  133.53 -                // Fix for BugTraq Id 4281380.
  133.54 -                // Get the port name since some drivers may require
  133.55 -                // this name to be passed to ::DeviceCapabilities().
  133.56 -                HANDLE hPrinter = NULL;
  133.57 -                if (::OpenPrinter(info4->pPrinterName, &hPrinter, NULL)) {
  133.58 -                    // Fix for BugTraq Id 4286812.
  133.59 -                    // Some drivers don't support PRINTER_INFO_5.
  133.60 -                    // In this case we try PRINTER_INFO_2, and if that
  133.61 -                    // isn't supported as well return NULL port name.
  133.62 -                    try {
  133.63 -                        if (AwtPrintControl::IsSupportedLevel(hPrinter, 5)) {
  133.64 -                            VERIFY(::GetPrinter(hPrinter, 5, pPrinterEnum, cbBuf,
  133.65 -                                                &dummyWord));
  133.66 -                            PRINTER_INFO_5 *info5 = (PRINTER_INFO_5 *)pPrinterEnum;
  133.67 -                            *foundPrinter = info5->pPrinterName;
  133.68 -                            // pPortName may specify multiple ports. We only want one.
  133.69 -                            *foundPort = (info5->pPortName != NULL)
  133.70 -                                ? _tcstok(info5->pPortName, TEXT(",")) : NULL;
  133.71 -                        } else if (AwtPrintControl::IsSupportedLevel(hPrinter, 2)) {
  133.72 -                            VERIFY(::GetPrinter(hPrinter, 2, pPrinterEnum, cbBuf,
  133.73 -                                                &dummyWord));
  133.74 -                            PRINTER_INFO_2 *info2 = (PRINTER_INFO_2 *)pPrinterEnum;
  133.75 -                            *foundPrinter = info2->pPrinterName;
  133.76 -                            // pPortName may specify multiple ports. We only want one.
  133.77 -                            *foundPort = (info2->pPortName != NULL)
  133.78 -                                ? _tcstok(info2->pPortName, TEXT(",")) : NULL;
  133.79 -                        } else {
  133.80 -                            *foundPrinter = info4->pPrinterName;
  133.81 -                            // We failed to determine port name for the found printer.
  133.82 -                            *foundPort = NULL;
  133.83 -                        }
  133.84 -                    } catch (std::bad_alloc&) {
  133.85 -                        VERIFY(::ClosePrinter(hPrinter));
  133.86 -                        throw;
  133.87 +            // Fix for BugTraq Id 4281380.
  133.88 +            // Get the port name since some drivers may require
  133.89 +            // this name to be passed to ::DeviceCapabilities().
  133.90 +            HANDLE hPrinter = NULL;
  133.91 +            if (::OpenPrinter(info4->pPrinterName, &hPrinter, NULL)) {
  133.92 +                // Fix for BugTraq Id 4286812.
  133.93 +                // Some drivers don't support PRINTER_INFO_5.
  133.94 +                // In this case we try PRINTER_INFO_2, and if that
  133.95 +                // isn't supported as well return NULL port name.
  133.96 +                try {
  133.97 +                    if (AwtPrintControl::IsSupportedLevel(hPrinter, 5)) {
  133.98 +                        VERIFY(::GetPrinter(hPrinter, 5, pPrinterEnum, cbBuf,
  133.99 +                                            &dummyWord));
 133.100 +                        PRINTER_INFO_5 *info5 = (PRINTER_INFO_5 *)pPrinterEnum;
 133.101 +                        *foundPrinter = info5->pPrinterName;
 133.102 +                        // pPortName may specify multiple ports. We only want one.
 133.103 +                        *foundPort = (info5->pPortName != NULL)
 133.104 +                            ? _tcstok(info5->pPortName, TEXT(",")) : NULL;
 133.105 +                    } else if (AwtPrintControl::IsSupportedLevel(hPrinter, 2)) {
 133.106 +                        VERIFY(::GetPrinter(hPrinter, 2, pPrinterEnum, cbBuf,
 133.107 +                                            &dummyWord));
 133.108 +                        PRINTER_INFO_2 *info2 = (PRINTER_INFO_2 *)pPrinterEnum;
 133.109 +                        *foundPrinter = info2->pPrinterName;
 133.110 +                        // pPortName may specify multiple ports. We only want one.
 133.111 +                        *foundPort = (info2->pPortName != NULL)
 133.112 +                            ? _tcstok(info2->pPortName, TEXT(",")) : NULL;
 133.113 +                    } else {
 133.114 +                        *foundPrinter = info4->pPrinterName;
 133.115 +                        // We failed to determine port name for the found printer.
 133.116 +                        *foundPort = NULL;
 133.117                      }
 133.118 -
 133.119 +                } catch (std::bad_alloc&) {
 133.120                      VERIFY(::ClosePrinter(hPrinter));
 133.121 -
 133.122 -                    return TRUE;
 133.123 +                    throw;
 133.124                  }
 133.125  
 133.126 -                return FALSE;
 133.127 +                VERIFY(::ClosePrinter(hPrinter));
 133.128 +
 133.129 +                return TRUE;
 133.130              }
 133.131 +
 133.132 +            return FALSE;
 133.133          }
 133.134      }
 133.135  
 133.136 -    // We still haven't found the printer, or we're using 95/98.
 133.137 +    // We still haven't found the printer, /* or we're using 95/98. */
 133.138      // PRINTER_INFO_5 supports both printer name and port name, so
 133.139      // we'll test both. On NT, PRINTER_ENUM_LOCAL means just local
 133.140      // printers. This is what we want, because we already tested all
 133.141 @@ -213,28 +208,17 @@
 133.142      for (DWORD i = 0; i < cReturned; i++) {
 133.143          PRINTER_INFO_5 *info5 = (PRINTER_INFO_5 *)
 133.144              (pPrinterEnum + i * sizeof(PRINTER_INFO_5));
 133.145 -        if (nt) {
 133.146 -            // pPortName can specify multiple ports. Test them one at
 133.147 -            // a time.
 133.148 -            if (info5->pPortName != NULL) {
 133.149 -                LPTSTR port = _tcstok(info5->pPortName, TEXT(","));
 133.150 -                while (port != NULL) {
 133.151 -                    if (_tcsicmp(lpcPrinterName, port) == 0) {
 133.152 -                        *foundPrinter = info5->pPrinterName;
 133.153 -                        *foundPort = port;
 133.154 -                        return TRUE;
 133.155 -                    }
 133.156 -                    port = _tcstok(NULL, TEXT(","));
 133.157 +        // pPortName can specify multiple ports. Test them one at
 133.158 +        // a time.
 133.159 +        if (info5->pPortName != NULL) {
 133.160 +            LPTSTR port = _tcstok(info5->pPortName, TEXT(","));
 133.161 +            while (port != NULL) {
 133.162 +                if (_tcsicmp(lpcPrinterName, port) == 0) {
 133.163 +                    *foundPrinter = info5->pPrinterName;
 133.164 +                    *foundPort = port;
 133.165 +                    return TRUE;
 133.166                  }
 133.167 -            }
 133.168 -        } else {
 133.169 -            if ((info5->pPrinterName != NULL &&
 133.170 -                 _tcsicmp(lpcPrinterName, info5->pPrinterName) == 0) ||
 133.171 -                (info5->pPortName != NULL &&
 133.172 -                 _tcsicmp(lpcPrinterName, info5->pPortName) == 0)) {
 133.173 -                *foundPrinter = info5->pPrinterName;
 133.174 -                *foundPort = info5->pPortName;
 133.175 -                return TRUE;
 133.176 +                port = _tcstok(NULL, TEXT(","));
 133.177              }
 133.178          }
 133.179      }
 133.180 @@ -400,13 +384,11 @@
 133.181          }
 133.182  
 133.183          // Create DEVNAMES.
 133.184 -        if (IS_NT) {
 133.185 -            if (pPortName != NULL) {
 133.186 -                info2->pPortName = pPortName;
 133.187 -            } else if (info2->pPortName != NULL) {
 133.188 -                // pPortName may specify multiple ports. We only want one.
 133.189 -                info2->pPortName = _tcstok(info2->pPortName, TEXT(","));
 133.190 -            }
 133.191 +        if (pPortName != NULL) {
 133.192 +            info2->pPortName = pPortName;
 133.193 +        } else if (info2->pPortName != NULL) {
 133.194 +            // pPortName may specify multiple ports. We only want one.
 133.195 +            info2->pPortName = _tcstok(info2->pPortName, TEXT(","));
 133.196          }
 133.197  
 133.198          size_t lenDriverName = ((info2->pDriverName != NULL)
   134.1 --- a/src/windows/native/sun/windows/awt_PrintDialog.cpp	Tue Feb 17 09:06:16 2009 -0800
   134.2 +++ b/src/windows/native/sun/windows/awt_PrintDialog.cpp	Wed Feb 18 10:05:41 2009 -0800
   134.3 @@ -1,5 +1,5 @@
   134.4  /*
   134.5 - * Copyright 1999-2007 Sun Microsystems, Inc.  All Rights Reserved.
   134.6 + * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
   134.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   134.8   *
   134.9   * This code is free software; you can redistribute it and/or modify it
  134.10 @@ -23,10 +23,10 @@
  134.11   * have any questions.
  134.12   */
  134.13  
  134.14 +#include "awt.h"
  134.15  #include "awt_PrintDialog.h"
  134.16  #include "awt_Dialog.h"
  134.17  #include "awt_PrintControl.h"
  134.18 -#include "awt_dlls.h"
  134.19  #include "awt_Window.h"
  134.20  #include "ComCtl32Util.h"
  134.21  #include <sun_awt_windows_WPrintDialog.h>
  134.22 @@ -39,11 +39,9 @@
  134.23  
  134.24  BOOL
  134.25  AwtPrintDialog::PrintDlg(LPPRINTDLG data) {
  134.26 -    AwtCommDialog::load_comdlg_procs();
  134.27      return static_cast<BOOL>(reinterpret_cast<INT_PTR>(
  134.28          AwtToolkit::GetInstance().InvokeFunction(
  134.29 -            reinterpret_cast<void *(*)(void *)>(AwtCommDialog::PrintDlgWrapper),
  134.30 -            data)));
  134.31 +            reinterpret_cast<void *(*)(void *)>(::PrintDlg), data)));
  134.32  }
  134.33  
  134.34  LRESULT CALLBACK PrintDialogWndProc(HWND hWnd, UINT message,
   135.1 --- a/src/windows/native/sun/windows/awt_PrintJob.cpp	Tue Feb 17 09:06:16 2009 -0800
   135.2 +++ b/src/windows/native/sun/windows/awt_PrintJob.cpp	Wed Feb 18 10:05:41 2009 -0800
   135.3 @@ -1,5 +1,5 @@
   135.4  /*
   135.5 - * Copyright 1996-2007 Sun Microsystems, Inc.  All Rights Reserved.
   135.6 + * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   135.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   135.8   *
   135.9   * This code is free software; you can redistribute it and/or modify it
  135.10 @@ -23,6 +23,7 @@
  135.11   * have any questions.
  135.12   */
  135.13  
  135.14 +#include "awt.h"
  135.15  #include <math.h>
  135.16  #include <windef.h>
  135.17  #include <wtypes.h>
  135.18 @@ -30,10 +31,9 @@
  135.19  #include <commdlg.h>
  135.20  #include <winspool.h>
  135.21  
  135.22 -#include "awt.h"
  135.23 -#include "awt_dlls.h"
  135.24  #include "awt_Toolkit.h"
  135.25  #include "awt_Component.h"
  135.26 +#include "awt_Dialog.h"
  135.27  #include "awt_Font.h"
  135.28  #include "awt_PrintDialog.h"
  135.29  #include "awt_PrintControl.h"
  135.30 @@ -422,7 +422,7 @@
  135.31       */
  135.32      if (AwtPrintControl::getPrintHDMode(env, self) == NULL ||
  135.33          AwtPrintControl::getPrintHDName(env,self) == NULL) {
  135.34 -        (void)AwtCommDialog::PageSetupDlg(&setup);
  135.35 +        (void)::PageSetupDlg(&setup);
  135.36          /* check if hDevMode and hDevNames are set.
  135.37           * If both are null, then there is no default printer.
  135.38           */
  135.39 @@ -460,7 +460,7 @@
  135.40  
  135.41      AwtDialog::CheckInstallModalHook();
  135.42  
  135.43 -    BOOL ret = AwtCommDialog::PageSetupDlg(&setup);
  135.44 +    BOOL ret = ::PageSetupDlg(&setup);
  135.45      if (ret) {
  135.46  
  135.47          jobject paper = getPaper(env, page);
  135.48 @@ -733,7 +733,7 @@
  135.49          pd.lStructSize = sizeof(PRINTDLG);
  135.50          pd.Flags = PD_RETURNDEFAULT | PD_RETURNDC;
  135.51  
  135.52 -        if (AwtCommDialog::PrintDlg(&pd)) {
  135.53 +        if (::PrintDlg(&pd)) {
  135.54              printDC = pd.hDC;
  135.55              hDevMode = pd.hDevMode;
  135.56              hDevNames = pd.hDevNames;
  135.57 @@ -1838,10 +1838,6 @@
  135.58  (JNIEnv *env, jobject self, jlong printDC, jlong cap, jlong join, jfloat width,
  135.59   jint red, jint green, jint blue) {
  135.60  
  135.61 -  /* End cap and line join styles are not supported in Win 9x. */
  135.62 -  if (IS_WIN95)
  135.63 -    return JNI_FALSE;
  135.64 -
  135.65    TRY;
  135.66  
  135.67    LOGBRUSH logBrush;
  135.68 @@ -1879,23 +1875,13 @@
  135.69  {
  135.70      jboolean didSetFont = JNI_FALSE;
  135.71  
  135.72 -    if (IS_NT) {
  135.73 -        didSetFont = jFontToWFontW(env, (HDC)printDC,
  135.74 +    didSetFont = jFontToWFontW(env, (HDC)printDC,
  135.75                                 fontName,
  135.76                                 fontSize,
  135.77                                 isBold,
  135.78                                 isItalic,
  135.79                                 rotation,
  135.80                                 awScale);
  135.81 -    } else {
  135.82 -        didSetFont = jFontToWFontA(env, (HDC)printDC,
  135.83 -                               fontName,
  135.84 -                               fontSize,
  135.85 -                               isBold,
  135.86 -                               isItalic,
  135.87 -                               rotation,
  135.88 -                               awScale);
  135.89 -    }
  135.90  
  135.91      return didSetFont;
  135.92  }
  135.93 @@ -1919,7 +1905,7 @@
  135.94  
  135.95      memset(&matchedLogFont, 0, sizeof(matchedLogFont));
  135.96  
  135.97 -    WCHAR* name = TO_WSTRING(fontName);
  135.98 +    LPCWSTR fontNameW = JNU_GetStringPlatformChars(env, fontName, NULL);
  135.99  
 135.100  
 135.101      /* Some fontnames of Non-ASCII fonts like 'MS Minchou' are themselves
 135.102 @@ -1928,14 +1914,14 @@
 135.103       */
 135.104      int maxlen = static_cast<int>(sizeof(lf.lfFaceName)) - 1;
 135.105      // maxlen is int due to cbMultiByte parameter is int
 135.106 -    int destLen = WideCharToMultiByte(CP_ACP,   // convert to ASCII code page
 135.107 -                                      0,        // flags
 135.108 -                                      name,     // Unicode string
 135.109 -                                      -1,  // Unicode length is calculated automatically
 135.110 +    int destLen = WideCharToMultiByte(CP_ACP,        // convert to ASCII code page
 135.111 +                                      0,             // flags
 135.112 +                                      fontNameW,     // Unicode string
 135.113 +                                      -1,            // Unicode length is calculated automatically
 135.114                                        lf.lfFaceName, // Put ASCII string here
 135.115 -                                      maxlen, // max len
 135.116 -                                      NULL, // default handling of unmappables
 135.117 -                                      NULL);// do not care if def char is used
 135.118 +                                      maxlen,        // max len
 135.119 +                                      NULL,          // default handling of unmappables
 135.120 +                                      NULL);         // do not care if def char is used
 135.121  
 135.122      /* If WideCharToMultiByte succeeded then the number
 135.123       * of bytes it copied into the face name buffer will
 135.124 @@ -2018,9 +2004,10 @@
 135.125          } else {
 135.126              foundFont = false;
 135.127          }
 135.128 -
 135.129      }
 135.130  
 135.131 +    JNU_ReleaseStringPlatformChars(env, fontName, fontNameW);
 135.132 +
 135.133      return foundFont ? JNI_TRUE : JNI_FALSE;
 135.134  }
 135.135  
 135.136 @@ -2043,27 +2030,29 @@
 135.137  
 135.138      memset(&matchedLogFont, 0, sizeof(matchedLogFont));
 135.139  
 135.140 +    LPCWSTR fontNameW = JNU_GetStringPlatformChars(env, fontName, NULL);
 135.141 +
 135.142      /* Describe the GDI fonts we want enumerated. We
 135.143       * simply supply the java font name and let GDI
 135.144       * do the matching. If the java font name is
 135.145       * longer than the GDI maximum font lenght then
 135.146       * we can't convert the font.
 135.147       */
 135.148 -    WCHAR* name = TO_WSTRING(fontName);
 135.149 -    size_t nameLen = wcslen(name);
 135.150 -
 135.151 +    size_t nameLen = wcslen(fontNameW);
 135.152      if (nameLen < (sizeof(lf.lfFaceName) / sizeof(lf.lfFaceName[0]))) {
 135.153  
 135.154 -        wcscpy(lf.lfFaceName, name);
 135.155 +        wcscpy(lf.lfFaceName, fontNameW);
 135.156  
 135.157          lf.lfCharSet = DEFAULT_CHARSET;
 135.158          lf.lfPitchAndFamily = 0;
 135.159  
 135.160 -        foundFont = !EnumFontFamiliesExW((HDC)printDC, &lf,
 135.161 +        foundFont = !::EnumFontFamiliesEx((HDC)printDC, &lf,
 135.162                                          (FONTENUMPROCW) fontEnumProcW,
 135.163                                          (LPARAM) &matchedLogFont, 0);
 135.164      }
 135.165  
 135.166 +    JNU_ReleaseStringPlatformChars(env, fontName, fontNameW);
 135.167 +
 135.168      if (!foundFont) {
 135.169          return JNI_FALSE;
 135.170      }
 135.171 @@ -2100,7 +2089,7 @@
 135.172  
 135.173      //Debug: dumpLogFont(&matchedLogFont);
 135.174  
 135.175 -    HFONT font = CreateFontIndirectW(&matchedLogFont);
 135.176 +    HFONT font = ::CreateFontIndirect(&matchedLogFont);
 135.177      if (font == NULL) {
 135.178          return JNI_FALSE;
 135.179      }
 135.180 @@ -2123,7 +2112,7 @@
 135.181          GetTextMetrics(printDC, &tm);
 135.182          avgWidth = tm.tmAveCharWidth;
 135.183          matchedLogFont.lfWidth = (LONG)((fabs)(avgWidth*awScale));
 135.184 -        font = CreateFontIndirectW(&matchedLogFont);
 135.185 +        font = ::CreateFontIndirect(&matchedLogFont);
 135.186          if (font == NULL) {
 135.187              return JNI_FALSE;
 135.188          }
 135.189 @@ -2230,14 +2219,11 @@
 135.190      (JNIEnv *env, jobject self, jlong printDC, jstring text)
 135.191  {
 135.192      SIZE size;
 135.193 -    LPWSTR wText = TO_WSTRING(text);
 135.194 +    LPCWSTR wText = JNU_GetStringPlatformChars(env, text, NULL);
 135.195      size_t strLen = wcslen(wText);
 135.196      BOOL ok = GetTextExtentPoint32((HDC)printDC, wText, (int)strLen, &size);
 135.197 -    if (ok) {
 135.198 -        return size.cx;
 135.199 -    } else {
 135.200 -        return 0;
 135.201 -    }
 135.202 +    JNU_ReleaseStringPlatformChars(env, text, wText);
 135.203 +    return ok ? size.cx : 0;
 135.204  }
 135.205  
 135.206  
 135.207 @@ -2288,7 +2274,7 @@
 135.208      long posX = ROUND_TO_LONG(x);
 135.209      long posY = ROUND_TO_LONG(y);
 135.210      int flags = (glyphCodes !=0) ? ETO_GLYPH_INDEX : 0;
 135.211 -    LPWSTR wText = TO_WSTRING(text);
 135.212 +    LPCWSTR wText = JNU_GetStringPlatformChars(env, text, NULL);
 135.213  
 135.214      int *advances = NULL, *xadvances = NULL, *xyadvances = NULL;
 135.215      BOOL useYAdvances = FALSE;
 135.216 @@ -2359,7 +2345,7 @@
 135.217          *inxyAdvances = 0;
 135.218      }
 135.219  
 135.220 -    if (useYAdvances && IS_WIN2000) {
 135.221 +    if (useYAdvances) {
 135.222          advances = xyadvances;
 135.223          flags |= J2D_ETO_PDY;
 135.224      } else {
 135.225 @@ -2371,7 +2357,7 @@
 135.226          env->ReleaseFloatArrayElements(positions, glyphPos, JNI_ABORT);
 135.227      }
 135.228  
 135.229 -    BOOL drawn = ::ExtTextOutW( (HDC)printDC,
 135.230 +    BOOL drawn = ::ExtTextOut((HDC)printDC,
 135.231                      posX, posY,     // starting position for the text
 135.232                      flags,          // glyphCodes?, y advances?
 135.233                      NULL,           // optional clipping-opaquing rectangle
 135.234 @@ -2385,6 +2371,8 @@
 135.235      if (xyadvances != NULL) {
 135.236          free(xyadvances);
 135.237      }
 135.238 +
 135.239 +    JNU_ReleaseStringPlatformChars(env, text, wText);
 135.240  }
 135.241  
 135.242  /**
 135.243 @@ -2968,7 +2956,7 @@
 135.244      pd.lStructSize = sizeof(PRINTDLG);
 135.245      pd.Flags = PD_RETURNDEFAULT | PD_RETURNDC;
 135.246  
 135.247 -    if (AwtCommDialog::PrintDlg(&pd)) {
 135.248 +    if (::PrintDlg(&pd)) {
 135.249          printDC = pd.hDC;
 135.250  
 135.251          /* Find out how many copies the driver can do, and use driver's
   136.1 --- a/src/windows/native/sun/windows/awt_Robot.cpp	Tue Feb 17 09:06:16 2009 -0800
   136.2 +++ b/src/windows/native/sun/windows/awt_Robot.cpp	Wed Feb 18 10:05:41 2009 -0800
   136.3 @@ -1,5 +1,5 @@
   136.4  /*
   136.5 - * Copyright 1998-2006 Sun Microsystems, Inc.  All Rights Reserved.
   136.6 + * Copyright 1998-2008 Sun Microsystems, Inc.  All Rights Reserved.
   136.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   136.8   *
   136.9   * This code is free software; you can redistribute it and/or modify it
  136.10 @@ -23,6 +23,7 @@
  136.11   * have any questions.
  136.12   */
  136.13  
  136.14 +#include "awt.h"
  136.15  #include "awt_Toolkit.h"
  136.16  #include "awt_Component.h"
  136.17  #include "awt_Robot.h"
  136.18 @@ -30,8 +31,6 @@
  136.19  #include "java_awt_event_InputEvent.h"
  136.20  #include <winuser.h>
  136.21  
  136.22 -static const int MOUSE_MAX = 65535;
  136.23 -
  136.24  AwtRobot::AwtRobot( jobject peer )
  136.25  {
  136.26      JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
  136.27 @@ -44,11 +43,11 @@
  136.28  }
  136.29  
  136.30  #ifndef SPI_GETMOUSESPEED
  136.31 -#define SPI_GETMOUSESPEED   112
  136.32 +#define SPI_GETMOUSESPEED 112
  136.33  #endif
  136.34  
  136.35  #ifndef SPI_SETMOUSESPEED
  136.36 -#define   SPI_SETMOUSESPEED   113
  136.37 +#define SPI_SETMOUSESPEED 113
  136.38  #endif
  136.39  
  136.40  void AwtRobot::MouseMove( jint x, jint y)
  136.41 @@ -102,19 +101,38 @@
  136.42      // left handed mouse setup
  136.43      BOOL bSwap = ::GetSystemMetrics(SM_SWAPBUTTON);
  136.44  
  136.45 -    if ( buttonMask & java_awt_event_InputEvent_BUTTON1_MASK ) {
  136.46 +    if ( buttonMask & java_awt_event_InputEvent_BUTTON1_MASK ||
  136.47 +        buttonMask & java_awt_event_InputEvent_BUTTON1_DOWN_MASK)
  136.48 +    {
  136.49          dwFlags |= !bSwap ? MOUSEEVENTF_LEFTDOWN : MOUSEEVENTF_RIGHTDOWN;
  136.50      }
  136.51  
  136.52 -    if ( buttonMask & java_awt_event_InputEvent_BUTTON3_MASK ) {
  136.53 +    if ( buttonMask & java_awt_event_InputEvent_BUTTON3_MASK ||
  136.54 +         buttonMask & java_awt_event_InputEvent_BUTTON3_DOWN_MASK)
  136.55 +    {
  136.56          dwFlags |= !bSwap ? MOUSEEVENTF_RIGHTDOWN : MOUSEEVENTF_LEFTDOWN;
  136.57      }
  136.58  
  136.59 -    if ( buttonMask & java_awt_event_InputEvent_BUTTON2_MASK ) {
  136.60 +    if ( buttonMask & java_awt_event_InputEvent_BUTTON2_MASK ||
  136.61 +         buttonMask & java_awt_event_InputEvent_BUTTON2_DOWN_MASK)
  136.62 +    {
  136.63          dwFlags |= MOUSEEVENTF_MIDDLEDOWN;
  136.64      }
  136.65  
  136.66 -    mouse_event(dwFlags, 0, 0, 0, 0 );
  136.67 +    INPUT mouseInput = {0};
  136.68 +    mouseInput.type = INPUT_MOUSE;
  136.69 +    mouseInput.mi.time = 0;
  136.70 +    mouseInput.mi.dwFlags = dwFlags;
  136.71 +    if ( buttonMask & AwtComponent::masks[3] ) {
  136.72 +        mouseInput.mi.dwFlags = mouseInput.mi.dwFlags | MOUSEEVENTF_XDOWN;
  136.73 +        mouseInput.mi.mouseData = XBUTTON1;
  136.74 +    }
  136.75 +
  136.76 +    if ( buttonMask & AwtComponent::masks[4] ) {
  136.77 +        mouseInput.mi.dwFlags = mouseInput.mi.dwFlags | MOUSEEVENTF_XDOWN;
  136.78 +        mouseInput.mi.mouseData = XBUTTON2;
  136.79 +    }
  136.80 +    ::SendInput(1, &mouseInput, sizeof(mouseInput));
  136.81  }
  136.82  
  136.83  void AwtRobot::MouseRelease( jint buttonMask )
  136.84 @@ -125,61 +143,43 @@
  136.85      // left handed mouse setup
  136.86      BOOL bSwap = ::GetSystemMetrics(SM_SWAPBUTTON);
  136.87  
  136.88 -    if ( buttonMask & java_awt_event_InputEvent_BUTTON1_MASK ) {
  136.89 +    if ( buttonMask & java_awt_event_InputEvent_BUTTON1_MASK ||
  136.90 +        buttonMask & java_awt_event_InputEvent_BUTTON1_DOWN_MASK)
  136.91 +    {
  136.92          dwFlags |= !bSwap ? MOUSEEVENTF_LEFTUP : MOUSEEVENTF_RIGHTUP;
  136.93      }
  136.94  
  136.95 -    if ( buttonMask & java_awt_event_InputEvent_BUTTON3_MASK ) {
  136.96 +    if ( buttonMask & java_awt_event_InputEvent_BUTTON3_MASK ||
  136.97 +         buttonMask & java_awt_event_InputEvent_BUTTON3_DOWN_MASK)
  136.98 +    {
  136.99          dwFlags |= !bSwap ? MOUSEEVENTF_RIGHTUP : MOUSEEVENTF_LEFTUP;
 136.100      }
 136.101  
 136.102 -    if ( buttonMask & java_awt_event_InputEvent_BUTTON2_MASK ) {
 136.103 +    if ( buttonMask & java_awt_event_InputEvent_BUTTON2_MASK ||
 136.104 +        buttonMask & java_awt_event_InputEvent_BUTTON2_DOWN_MASK)
 136.105 +    {
 136.106          dwFlags |= MOUSEEVENTF_MIDDLEUP;
 136.107      }
 136.108  
 136.109 -    mouse_event(dwFlags, 0, 0, 0, 0 );
 136.110 +    INPUT mouseInput = {0};
 136.111 +    mouseInput.type = INPUT_MOUSE;
 136.112 +    mouseInput.mi.time = 0;
 136.113 +    mouseInput.mi.dwFlags = dwFlags;
 136.114 +
 136.115 +    if ( buttonMask & AwtComponent::masks[3] ) {
 136.116 +        mouseInput.mi.dwFlags = mouseInput.mi.dwFlags | MOUSEEVENTF_XUP;
 136.117 +        mouseInput.mi.mouseData = XBUTTON1;
 136.118 +    }
 136.119 +
 136.120 +    if ( buttonMask & AwtComponent::masks[4] ) {
 136.121 +        mouseInput.mi.dwFlags = mouseInput.mi.dwFlags | MOUSEEVENTF_XUP;
 136.122 +        mouseInput.mi.mouseData = XBUTTON2;
 136.123 +    }
 136.124 +    ::SendInput(1, &mouseInput, sizeof(mouseInput));
 136.125  }
 136.126  
 136.127  void AwtRobot::MouseWheel (jint wheelAmt) {
 136.128 -    if (IS_WIN95 && !IS_WIN98) {
 136.129 -        // Other win32 platforms do nothing for mouse_event(0), so
 136.130 -        // do nothing on 95, too.
 136.131 -        if (wheelAmt == 0) {
 136.132 -            return;
 136.133 -        }
 136.134 -
 136.135 -        // Win95 doesn't understand MOUSEEVENTF_WHEEL, so use PostEvent
 136.136 -        POINT curPos;
 136.137 -        HWND mouseOver = NULL;
 136.138 -        HWND topLevel = NULL;
 136.139 -        UINT wheelMsg = NULL;
 136.140 -
 136.141 -        if (::GetCursorPos((LPPOINT)&curPos) == 0) {
 136.142 -            return;
 136.143 -        }
 136.144 -        // get hwnd of top-level container
 136.145 -        mouseOver = ::WindowFromPoint(curPos);
 136.146 -        DASSERT(mouseOver);
 136.147 -        topLevel = AwtComponent::GetTopLevelParentForWindow(mouseOver);
 136.148 -        DASSERT(topLevel);
 136.149 -
 136.150 -        if (::ScreenToClient(topLevel, (LPPOINT)&curPos) == 0) {
 136.151 -            return;
 136.152 -        }
 136.153 -        wheelMsg = AwtComponent::Wheel95GetMsg();
 136.154 -
 136.155 -        if (wheelMsg == NULL) {
 136.156 -            return;
 136.157 -        }
 136.158 -
 136.159 -        ::PostMessage(topLevel,
 136.160 -                      wheelMsg,
 136.161 -                      wheelAmt * -1 * WHEEL_DELTA,
 136.162 -                      MAKELPARAM((WORD)curPos.x, (WORD)curPos.y));
 136.163 -    }
 136.164 -    else {
 136.165 -        mouse_event(MOUSEEVENTF_WHEEL, 0, 0, wheelAmt * -1 * WHEEL_DELTA, 0);
 136.166 -    }
 136.167 +    mouse_event(MOUSEEVENTF_WHEEL, 0, 0, wheelAmt * -1 * WHEEL_DELTA, 0);
 136.168  }
 136.169  
 136.170  inline jint AwtRobot::WinToJavaPixel(USHORT r, USHORT g, USHORT b)
 136.171 @@ -437,3 +437,9 @@
 136.172  
 136.173      CATCH_BAD_ALLOC;
 136.174  }
 136.175 +
 136.176 +JNIEXPORT jint JNICALL Java_sun_awt_windows_WRobotPeer_getNumberOfButtons(
 136.177 +  JNIEnv *, jobject self)
 136.178 +{
 136.179 +    return GetSystemMetrics(SM_CMOUSEBUTTONS);
 136.180 +}
   137.1 --- a/src/windows/native/sun/windows/awt_Robot.h	Tue Feb 17 09:06:16 2009 -0800
   137.2 +++ b/src/windows/native/sun/windows/awt_Robot.h	Wed Feb 18 10:05:41 2009 -0800
   137.3 @@ -1,5 +1,5 @@
   137.4  /*
   137.5 - * Copyright 1998-2006 Sun Microsystems, Inc.  All Rights Reserved.
   137.6 + * Copyright 1998-2008 Sun Microsystems, Inc.  All Rights Reserved.
   137.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   137.8   *
   137.9   * This code is free software; you can redistribute it and/or modify it
  137.10 @@ -42,13 +42,13 @@
  137.11          void MouseRelease( jint buttonMask );
  137.12  
  137.13          void MouseWheel(jint wheelAmt);
  137.14 +        jint getNumberOfButtons();
  137.15  
  137.16          jint GetRGBPixel( jint x, jint y);
  137.17          void GetRGBPixels(jint x, jint y, jint width, jint height, jintArray pixelArray);
  137.18  
  137.19          void KeyPress( jint key );
  137.20          void KeyRelease( jint key );
  137.21 -
  137.22          static AwtRobot * GetRobot( jobject self );
  137.23  
  137.24      private:
   138.1 --- a/src/windows/native/sun/windows/awt_ScrollPane.cpp	Tue Feb 17 09:06:16 2009 -0800
   138.2 +++ b/src/windows/native/sun/windows/awt_ScrollPane.cpp	Wed Feb 18 10:05:41 2009 -0800
   138.3 @@ -1,5 +1,5 @@
   138.4  /*
   138.5 - * Copyright 1996-2006 Sun Microsystems, Inc.  All Rights Reserved.
   138.6 + * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   138.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   138.8   *
   138.9   * This code is free software; you can redistribute it and/or modify it
  138.10 @@ -108,13 +108,6 @@
  138.11  
  138.12          {
  138.13              DWORD style = WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS;
  138.14 -            if (!IS_WIN4X) {
  138.15 -                /*
  138.16 -                 * It's been decided by the UI folks that 3.X ScrollPanes
  138.17 -                 * should have borders...
  138.18 -                 */
  138.19 -                style |= WS_BORDER;
  138.20 -            }
  138.21              jint scrollbarDisplayPolicy =
  138.22                  env->GetIntField(target, scrollbarDisplayPolicyID);
  138.23  
  138.24 @@ -122,7 +115,7 @@
  138.25                      == java_awt_ScrollPane_SCROLLBARS_ALWAYS) {
  138.26                  style |= WS_HSCROLL | WS_VSCROLL;
  138.27              }
  138.28 -            DWORD exStyle = IS_WIN4X ? WS_EX_CLIENTEDGE : 0;
  138.29 +            DWORD exStyle = WS_EX_CLIENTEDGE;
  138.30  
  138.31              if (GetRTL()) {
  138.32                  exStyle |= WS_EX_RIGHT | WS_EX_LEFTSCROLLBAR;
  138.33 @@ -225,15 +218,8 @@
  138.34      }
  138.35  
  138.36      /* Determine border width without scrollbars. */
  138.37 -    int horzBorder;
  138.38 -    int vertBorder;
  138.39 -    if (IS_WIN4X) {
  138.40 -        horzBorder = ::GetSystemMetrics(SM_CXEDGE);
  138.41 -        vertBorder = ::GetSystemMetrics(SM_CYEDGE);
  138.42 -    } else {
  138.43 -        horzBorder = ::GetSystemMetrics(SM_CXBORDER);
  138.44 -        vertBorder = ::GetSystemMetrics(SM_CYBORDER);
  138.45 -    }
  138.46 +    int horzBorder = ::GetSystemMetrics(SM_CXEDGE);;
  138.47 +    int vertBorder = ::GetSystemMetrics(SM_CYEDGE);;
  138.48  
  138.49      parentWidth -= (horzBorder * 2);
  138.50      parentHeight -= (vertBorder * 2);
   139.1 --- a/src/windows/native/sun/windows/awt_TextArea.cpp	Tue Feb 17 09:06:16 2009 -0800
   139.2 +++ b/src/windows/native/sun/windows/awt_TextArea.cpp	Wed Feb 18 10:05:41 2009 -0800
   139.3 @@ -26,10 +26,8 @@
   139.4  #include "awt_Toolkit.h"
   139.5  #include "awt_TextArea.h"
   139.6  #include "awt_TextComponent.h"
   139.7 -#include "awt_dlls.h"
   139.8  #include "awt_KeyboardFocusManager.h"
   139.9  #include "awt_Canvas.h"
  139.10 -#include "awt_Unicode.h"
  139.11  #include "awt_Window.h"
  139.12  
  139.13  /* IMPORTANT! Read the README.JNI file for notes on JNI converted AWT code.
  139.14 @@ -50,7 +48,6 @@
  139.15  jfieldID AwtTextArea::scrollbarVisibilityID;
  139.16  
  139.17  WNDPROC AwtTextArea::sm_pDefWindowProc = NULL;
  139.18 -BOOL AwtTextArea::sm_RichEdit20 = (IS_WIN98 || IS_NT);
  139.19  
  139.20  /************************************************************************
  139.21   * AwtTextArea methods
  139.22 @@ -78,8 +75,12 @@
  139.23  }
  139.24  
  139.25  LPCTSTR AwtTextArea::GetClassName() {
  139.26 -    load_rich_edit_library();
  139.27 -    return sm_RichEdit20 ? RICHEDIT_CLASS : TEXT("RICHEDIT");
  139.28 +    static BOOL richedLibraryLoaded = FALSE;
  139.29 +    if (!richedLibraryLoaded) {
  139.30 +        ::LoadLibrary(TEXT("RICHED20.DLL"));
  139.31 +        richedLibraryLoaded = TRUE;
  139.32 +    }
  139.33 +    return RICHEDIT_CLASS;
  139.34  }
  139.35  
  139.36  /* Create a new AwtTextArea object and window.   */
  139.37 @@ -134,9 +135,8 @@
  139.38             * scrollbars instead of hiding them when not needed.
  139.39             */
  139.40            DWORD style = WS_CHILD | WS_CLIPSIBLINGS | ES_LEFT | ES_MULTILINE |
  139.41 -              ES_WANTRETURN | scroll_style |
  139.42 -              (IS_WIN4X ? 0 : WS_BORDER) | ES_DISABLENOSCROLL;
  139.43 -          DWORD exStyle = IS_WIN4X ? WS_EX_CLIENTEDGE : 0;
  139.44 +              ES_WANTRETURN | scroll_style | ES_DISABLENOSCROLL;
  139.45 +          DWORD exStyle = WS_EX_CLIENTEDGE;
  139.46            if (GetRTL()) {
  139.47                exStyle |= WS_EX_RIGHT | WS_EX_LEFTSCROLLBAR;
  139.48                if (GetRTLReadingOrder())
  139.49 @@ -169,9 +169,7 @@
  139.50            //    end-of-document marker or carriage return,
  139.51            //    to format paragraphs.
  139.52            // kdm@sparc.spb.su
  139.53 -          if (sm_RichEdit20) {
  139.54 -              c->SendMessage(EM_SETTEXTMODE, TM_PLAINTEXT, 0);
  139.55 -          }
  139.56 +          c->SendMessage(EM_SETTEXTMODE, TM_PLAINTEXT, 0);
  139.57  
  139.58            c->m_backgroundColorSet = TRUE;
  139.59            /* suppress inheriting parent's color. */
  139.60 @@ -242,7 +240,7 @@
  139.61       */
  139.62      size_t length = env->GetStringLength(jStr) + 1;
  139.63      WCHAR *string = new WCHAR[length];
  139.64 -    env->GetStringRegion(jStr, 0, static_cast<jsize>(length - 1), string);
  139.65 +    env->GetStringRegion(jStr, 0, static_cast<jsize>(length - 1), reinterpret_cast<jchar*>(string));
  139.66      string[length-1] = '\0';
  139.67      for (size_t i = 0; i < maxlen && i < length - 1; i++) {
  139.68          if (string[i] == L'\n') {
  139.69 @@ -461,12 +459,7 @@
  139.70              /* Check if all the text is selected. */
  139.71              if (cr.cpMin == 0) {
  139.72  
  139.73 -                int len = 0;
  139.74 -                if (m_isWin95) {
  139.75 -                    len = ::GetWindowTextLengthA(GetHWnd());
  139.76 -                } else {
  139.77 -                    len = ::GetWindowTextLengthW(GetHWnd());
  139.78 -                }
  139.79 +                int len = ::GetWindowTextLength(GetHWnd());
  139.80                  if (cr.cpMin == 0 && cr.cpMax >= len) {
  139.81                      /*
  139.82                       * All the text is selected in RichEdit - select all the
  139.83 @@ -738,14 +731,8 @@
  139.84          // kdm@sparc.spb.su
  139.85          UINT platfScrollLines = 3;
  139.86          // Retrieve a number of scroll lines.
  139.87 -        if (!sm_RichEdit20) {
  139.88 -            // 95 doesn't understand the SPI_GETWHEELSCROLLLINES - get the user
  139.89 -            // preference by other means
  139.90 -            platfScrollLines = Wheel95GetScrLines();
  139.91 -        } else {
  139.92 -            ::SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0,
  139.93 -                                   &platfScrollLines, 0);
  139.94 -        }
  139.95 +        ::SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0,
  139.96 +                               &platfScrollLines, 0);
  139.97  
  139.98          if (platfScrollLines > 0) {
  139.99              HWND hWnd = GetHWnd();
 139.100 @@ -838,23 +825,6 @@
 139.101      return returnVal;
 139.102  }
 139.103  
 139.104 -int AwtTextArea::GetText(LPTSTR buffer, int size)
 139.105 -{
 139.106 -    // Due to a known limitation of the MSLU, GetWindowText cannot be
 139.107 -    // issued for the Unicode RichEdit control on Win9x. Use EM_GETTEXTEX instead.
 139.108 -    if (sm_RichEdit20 && !IS_NT) {
 139.109 -        GETTEXTEX gte;
 139.110 -        gte.cb            = size * sizeof(TCHAR);
 139.111 -        gte.flags         = GT_USECRLF;
 139.112 -        gte.codepage      = 1200; // implies Unicode
 139.113 -        gte.lpDefaultChar = NULL;
 139.114 -        gte.lpUsedDefChar = NULL;
 139.115 -        return (int)SendMessage(EM_GETTEXTEX, (WPARAM)&gte, (LPARAM)buffer);
 139.116 -    } else {
 139.117 -        return ::GetWindowText(GetHWnd(), buffer, size);
 139.118 -    }
 139.119 -}
 139.120 -
 139.121  /*
 139.122   * WM_CTLCOLOR is not sent by rich edit controls.
 139.123   * Use EM_SETCHARFORMAT and EM_SETBKGNDCOLOR to set
 139.124 @@ -984,16 +954,16 @@
 139.125        jsize length = env->GetStringLength(text) + 1;
 139.126        // Bugid 4141477 - Can't use TO_WSTRING here because it uses alloca
 139.127        // WCHAR* buffer = TO_WSTRING(text);
 139.128 -      WCHAR *buffer = new WCHAR[length];
 139.129 -      env->GetStringRegion(text, 0, length-1, buffer);
 139.130 +      TCHAR *buffer = new TCHAR[length];
 139.131 +      env->GetStringRegion(text, 0, length-1, reinterpret_cast<jchar*>(buffer));
 139.132        buffer[length-1] = '\0';
 139.133  
 139.134        c->CheckLineSeparator(buffer);
 139.135        c->RemoveCR(buffer);
 139.136        // Fix for 5003402: added restoring/hiding selection to enable automatic scrolling
 139.137        c->SendMessage(EM_HIDESELECTION, FALSE, TRUE);
 139.138 -      c->SendMessageW(EM_SETSEL, start, end);
 139.139 -      c->SendMessageW(EM_REPLACESEL, FALSE, (LPARAM)buffer);
 139.140 +      c->SendMessage(EM_SETSEL, start, end);
 139.141 +      c->SendMessage(EM_REPLACESEL, FALSE, (LPARAM)buffer);
 139.142        c->SendMessage(EM_HIDESELECTION, TRUE, TRUE);
 139.143  
 139.144        delete[] buffer;
 139.145 @@ -1187,12 +1157,11 @@
 139.146                                                 HGLOBAL hMetaPict) {
 139.147      if (reco == RECO_PASTE) {
 139.148          // If CF_TEXT format is available edit controls will select it,
 139.149 -        // otherwise if it is WinNT or Win2000 and CF_UNICODETEXT is
 139.150 -        // available it will be selected, otherwise if CF_OEMTEXT is
 139.151 -        // available it will be selected.
 139.152 +        // otherwise if it is CF_UNICODETEXT is available it will be
 139.153 +        // selected, otherwise if CF_OEMTEXT is available it will be selected.
 139.154          if (::IsClipboardFormatAvailable(CF_TEXT)) {
 139.155              *pcfFormat = CF_TEXT;
 139.156 -        } else if (!m_isWin95 && ::IsClipboardFormatAvailable(CF_UNICODETEXT)) {
 139.157 +        } else if (::IsClipboardFormatAvailable(CF_UNICODETEXT)) {
 139.158              *pcfFormat = CF_UNICODETEXT;
 139.159          } else if (::IsClipboardFormatAvailable(CF_OEMTEXT)) {
 139.160              *pcfFormat = CF_OEMTEXT;
   140.1 --- a/src/windows/native/sun/windows/awt_TextArea.h	Tue Feb 17 09:06:16 2009 -0800
   140.2 +++ b/src/windows/native/sun/windows/awt_TextArea.h	Wed Feb 18 10:05:41 2009 -0800
   140.3 @@ -1,5 +1,5 @@
   140.4  /*
   140.5 - * Copyright 1996-2006 Sun Microsystems, Inc.  All Rights Reserved.
   140.6 + * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   140.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   140.8   *
   140.9   * This code is free software; you can redistribute it and/or modify it
  140.10 @@ -73,8 +73,6 @@
  140.11      MsgRouting WmNcHitTest(UINT x, UINT y, LRESULT &retVal);
  140.12      MsgRouting HandleEvent(MSG *msg, BOOL synthetic);
  140.13  
  140.14 -    INLINE virtual int GetText(LPTSTR buffer, int size);
  140.15 -
  140.16      INLINE void SetIgnoreEnChange(BOOL b) { m_bIgnoreEnChange = b; }
  140.17  
  140.18      virtual void SetColor(COLORREF c);
  140.19 @@ -96,10 +94,6 @@
  140.20      void EditGetSel(CHARRANGE &cr);
  140.21      LONG EditGetCharFromPos(POINT& pt);
  140.22    private:
  140.23 -
  140.24 -    // TRUE if the rich edit version is 2.0
  140.25 -    static BOOL    sm_RichEdit20;
  140.26 -
  140.27      // RichEdit 1.0 control generates EN_CHANGE notifications not only
  140.28      // on text changes, but also on any character formatting change.
  140.29      // This flag is true when the latter case is detected.
   141.1 --- a/src/windows/native/sun/windows/awt_TextComponent.cpp	Tue Feb 17 09:06:16 2009 -0800
   141.2 +++ b/src/windows/native/sun/windows/awt_TextComponent.cpp	Wed Feb 18 10:05:41 2009 -0800
   141.3 @@ -1,5 +1,5 @@
   141.4  /*
   141.5 - * Copyright 1996-2005 Sun Microsystems, Inc.  All Rights Reserved.
   141.6 + * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   141.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   141.8   *
   141.9   * This code is free software; you can redistribute it and/or modify it
  141.10 @@ -326,7 +326,7 @@
  141.11              WCHAR* buf = new WCHAR[len + 1];
  141.12              c->GetText(buf, len + 1);
  141.13              c->RemoveCR(buf);
  141.14 -            result = env->NewString(buf, static_cast<jsize>(wcslen(buf)));
  141.15 +            result = JNU_NewStringPlatform(env, buf);
  141.16              delete [] buf;
  141.17          }
  141.18      }
  141.19 @@ -362,7 +362,7 @@
  141.20      {
  141.21          int length = env->GetStringLength(text);
  141.22          WCHAR* buffer = new WCHAR[length + 1];
  141.23 -        env->GetStringRegion(text, 0, length, buffer);
  141.24 +        env->GetStringRegion(text, 0, length, reinterpret_cast<jchar*>(buffer));
  141.25          buffer[length] = 0;
  141.26          c->CheckLineSeparator(buffer);
  141.27          c->RemoveCR(buffer);
   142.1 --- a/src/windows/native/sun/windows/awt_TextComponent.h	Tue Feb 17 09:06:16 2009 -0800
   142.2 +++ b/src/windows/native/sun/windows/awt_TextComponent.h	Wed Feb 18 10:05:41 2009 -0800
   142.3 @@ -1,5 +1,5 @@
   142.4  /*
   142.5 - * Copyright 1996-2005 Sun Microsystems, Inc.  All Rights Reserved.
   142.6 + * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   142.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   142.8   *
   142.9   * This code is free software; you can redistribute it and/or modify it
  142.10 @@ -70,15 +70,6 @@
  142.11      static jstring _GetText(void *param);
  142.12  
  142.13      BOOL ActMouseMessage(MSG* pMsg);
  142.14 -    /*
  142.15 -     * For TextComponents that contains WCHAR strings or messages with
  142.16 -     * WCHAR parameters.
  142.17 -     */
  142.18 -    INLINE LRESULT SendMessageW(UINT msg, WPARAM wParam = 0, LPARAM lParam = 0)
  142.19 -    {
  142.20 -        DASSERT(GetHWnd());
  142.21 -        return ::SendMessageW(GetHWnd(), msg, wParam, lParam);
  142.22 -    }
  142.23  
  142.24      void SetFont(AwtFont* font);
  142.25  
   143.1 --- a/src/windows/native/sun/windows/awt_TextField.cpp	Tue Feb 17 09:06:16 2009 -0800
   143.2 +++ b/src/windows/native/sun/windows/awt_TextField.cpp	Wed Feb 18 10:05:41 2009 -0800
   143.3 @@ -1,5 +1,5 @@
   143.4  /*
   143.5 - * Copyright 1996-2005 Sun Microsystems, Inc.  All Rights Reserved.
   143.6 + * Copyright 1996-2008 Sun Microsystems, Inc.  All Rights Reserved.
   143.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   143.8   *
   143.9   * This code is free software; you can redistribute it and/or modify it
  143.10 @@ -26,7 +26,6 @@
  143.11  #include "awt_Toolkit.h"
  143.12  #include "awt_TextField.h"
  143.13  #include "awt_TextComponent.h"
  143.14 -#include "awt_dlls.h"
  143.15  #include "awt_KeyboardFocusManager.h"
  143.16  #include "awt_Canvas.h"
  143.17  
  143.18 @@ -69,9 +68,8 @@
  143.19  
  143.20          {
  143.21              DWORD style = WS_CHILD | WS_CLIPSIBLINGS |
  143.22 -                ES_LEFT | ES_AUTOHSCROLL |
  143.23 -                (IS_WIN4X ? 0 : WS_BORDER);
  143.24 -            DWORD exStyle = IS_WIN4X ? WS_EX_CLIENTEDGE : 0;
  143.25 +                ES_LEFT | ES_AUTOHSCROLL;
  143.26 +            DWORD exStyle = WS_EX_CLIENTEDGE;
  143.27              if (GetRTL()) {
  143.28                  exStyle |= WS_EX_RIGHT | WS_EX_LEFTSCROLLBAR;
  143.29                  if (GetRTLReadingOrder())
   144.1 --- a/src/windows/native/sun/windows/awt_Toolkit.cpp	Tue Feb 17 09:06:16 2009 -0800
   144.2 +++ b/src/windows/native/sun/windows/awt_Toolkit.cpp	Wed Feb 18 10:05:41 2009 -0800
   144.3 @@ -23,15 +23,16 @@
   144.4   * have any questions.
   144.5   */
   144.6  
   144.7 +#include "awt.h"
   144.8  #include <signal.h>
   144.9  #include <windowsx.h>
  144.10  
  144.11 -#if defined(_DEBUG) && defined(_MSC_VER) && _MSC_VER >= 1000
  144.12 -#include <crtdbg.h>
  144.13 -#endif
  144.14 +//#if defined(_DEBUG) && defined(_MSC_VER) && _MSC_VER >= 1000
  144.15 +//#include <crtdbg.h>
  144.16 +//#endif
  144.17  
  144.18  #define _JNI_IMPLEMENTATION_
  144.19 -#include "stdhdrs.h"
  144.20 +
  144.21  #include "awt_DrawingSurface.h"
  144.22  #include "awt_AWTEvent.h"
  144.23  #include "awt_Component.h"
  144.24 @@ -51,7 +52,6 @@
  144.25  #include "awt_FileDialog.h"
  144.26  #include "CmdIDList.h"
  144.27  #include "awt_new.h"
  144.28 -#include "awt_Unicode.h"
  144.29  #include "debug_trace.h"
  144.30  #include "debug_mem.h"
  144.31  
  144.32 @@ -225,8 +225,7 @@
  144.33      HKL prev = ::ActivateKeyboardLayout(hkl, 0);
  144.34  
  144.35      // If the above call fails, try loading the layout in case of NT
  144.36 -    if ((prev == 0) && IS_NT) {
  144.37 -
  144.38 +    if (!prev) {
  144.39          // create input locale string, e.g., "00000409", from hkl.
  144.40          TCHAR inputLocale[9];
  144.41          TCHAR buf[9];
  144.42 @@ -297,7 +296,7 @@
  144.43      if (jstr != NULL) {
  144.44          int length = env->GetStringLength(jstr);
  144.45          buffer = new TCHAR[length + 1];
  144.46 -        LPCTSTR tmp = (LPCTSTR)JNU_GetStringPlatformChars(env, jstr, NULL);
  144.47 +        LPCTSTR tmp = JNU_GetStringPlatformChars(env, jstr, NULL);
  144.48          _tcscpy(buffer, tmp);
  144.49          JNU_ReleaseStringPlatformChars(env, jstr, tmp);
  144.50      } else {
  144.51 @@ -323,6 +322,7 @@
  144.52      m_vmSignalled = FALSE;
  144.53  
  144.54      m_isDynamicLayoutSet = FALSE;
  144.55 +    m_areExtraMouseButtonsEnabled = TRUE;
  144.56  
  144.57      m_verifyComponents = FALSE;
  144.58      m_breakOnError = FALSE;
  144.59 @@ -490,8 +490,6 @@
  144.60  
  144.61      ::CloseHandle(m_waitEvent);
  144.62  
  144.63 -    ComCtl32Util::GetInstance().FreeLibraries();
  144.64 -
  144.65      tk.m_isDisposed = TRUE;
  144.66  
  144.67      return TRUE;
  144.68 @@ -886,8 +884,6 @@
  144.69            return (DWORD)ImmGetOpenStatus((HIMC)wParam);
  144.70        }
  144.71        case WM_DISPLAYCHANGE: {
  144.72 -          AwtCursor::DirtyAllCustomCursors();
  144.73 -
  144.74            // Reinitialize screens
  144.75            initScreens(env);
  144.76  
  144.77 @@ -1161,9 +1157,7 @@
  144.78      if (p && p->PreProcessMsg(msg) == mrConsume)
  144.79          return TRUE;
  144.80  
  144.81 -    if ((msg.message >= WM_MOUSEFIRST && msg.message <= WM_AWT_MOUSELAST) ||
  144.82 -        (IS_WIN95 && !IS_WIN98 &&
  144.83 -                                msg.message == AwtComponent::Wheel95GetMsg()) ||
  144.84 +    if ((msg.message >= WM_MOUSEFIRST && msg.message <= WM_MOUSELAST) ||
  144.85          (msg.message >= WM_NCMOUSEMOVE && msg.message <= WM_NCMBUTTONDBLCLK)) {
  144.86          if (PreProcessMouseMsg(p, msg)) {
  144.87              return TRUE;
  144.88 @@ -1190,9 +1184,7 @@
  144.89          return FALSE;
  144.90      }
  144.91  
  144.92 -    if (msg.message >= WM_MOUSEFIRST && msg.message <= WM_AWT_MOUSELAST ||
  144.93 -        (IS_WIN95 && !IS_WIN98 && msg.message == AwtComponent::Wheel95GetMsg()))
  144.94 -    {
  144.95 +    if (msg.message >= WM_MOUSEFIRST && msg.message <= WM_MOUSELAST) {
  144.96          mouseWParam = msg.wParam;
  144.97          mouseLParam = msg.lParam;
  144.98      } else {
  144.99 @@ -1287,21 +1279,6 @@
 144.100                                    //window
 144.101          msg.hwnd = hWndForWheel;
 144.102      }
 144.103 -    else if (IS_WIN95 && !IS_WIN98 &&
 144.104 -             msg.message == AwtComponent::Wheel95GetMsg() &&
 144.105 -             mouseWheelComp != NULL) {
 144.106 -
 144.107 -        // On Win95, mouse wheels are _always_ delivered to the top level
 144.108 -        // Frame.  Default behavior only takes place if the message's hwnd
 144.109 -        // remains that of the Frame.  We only want to change the hwnd if
 144.110 -        // we're changing it to a Component that DOESN'T handle the
 144.111 -        // mousewheel natively.
 144.112 -
 144.113 -        if (!mouseWheelComp->InheritsNativeMouseWheelBehavior()) {
 144.114 -            DTRACE_PRINTLN("AwtT::PPMM: changing hwnd on 95");
 144.115 -            msg.hwnd = hWndForWheel;
 144.116 -        }
 144.117 -    }
 144.118  
 144.119      /*
 144.120       * Make sure we get at least one last chance to check for transitions
 144.121 @@ -1792,7 +1769,7 @@
 144.122  {
 144.123      jobject insets = NULL;
 144.124      RECT rRW;
 144.125 -    MONITOR_INFO *miInfo;
 144.126 +    LPMONITORINFO miInfo;
 144.127  
 144.128      TRY;
 144.129  
 144.130 @@ -1814,10 +1791,10 @@
 144.131          if (miInfo) {
 144.132              insets = env->NewObject(env->FindClass("java/awt/Insets"),
 144.133                  AwtToolkit::insetsMID,
 144.134 -                miInfo->rWork.top    - miInfo->rMonitor.top,
 144.135 -                miInfo->rWork.left   - miInfo->rMonitor.left,
 144.136 -                miInfo->rMonitor.bottom - miInfo->rWork.bottom,
 144.137 -                miInfo->rMonitor.right - miInfo->rWork.right);
 144.138 +                miInfo->rcWork.top - miInfo->rcMonitor.top,
 144.139 +                miInfo->rcWork.left - miInfo->rcMonitor.left,
 144.140 +                miInfo->rcMonitor.bottom - miInfo->rcWork.bottom,
 144.141 +                miInfo->rcMonitor.right - miInfo->rcWork.right);
 144.142          }
 144.143      }
 144.144  
 144.145 @@ -2057,29 +2034,15 @@
 144.146      swprintf(szVer, L"0x%x = %ld", version, version);
 144.147      int l = lstrlen(szVer);
 144.148  
 144.149 -    if (IS_WIN95) {
 144.150 -        if (IS_WIN98) {
 144.151 -            if (IS_WINME) {
 144.152 -                swprintf(szVer + l, L" (Windows ME)");
 144.153 +    if (IS_WIN2000) {
 144.154 +        if (IS_WINXP) {
 144.155 +            if (IS_WINVISTA) {
 144.156 +                swprintf(szVer + l, L" (Windows Vista)");
 144.157              } else {
 144.158 -                swprintf(szVer + l, L" (Windows 98)");
 144.159 +                swprintf(szVer + l, L" (Windows XP)");
 144.160              }
 144.161          } else {
 144.162 -            swprintf(szVer + l, L" (Windows 95)");
 144.163 -        }
 144.164 -    } else if (IS_NT) {
 144.165 -        if (IS_WIN2000) {
 144.166 -            if (IS_WINXP) {
 144.167 -                if (IS_WINVISTA) {
 144.168 -                    swprintf(szVer + l, L" (Windows Vista)");
 144.169 -                } else {
 144.170 -                    swprintf(szVer + l, L" (Windows XP)");
 144.171 -                }
 144.172 -            } else {
 144.173 -                swprintf(szVer + l, L" (Windows 2000)");
 144.174 -            }
 144.175 -        } else {
 144.176 -            swprintf(szVer + l, L" (Windows NT)");
 144.177 +            swprintf(szVer + l, L" (Windows 2000)");
 144.178          }
 144.179      } else {
 144.180          swprintf(szVer + l, L" (Unknown)");
 144.181 @@ -2130,3 +2093,26 @@
 144.182          splashClose();
 144.183      }
 144.184  }
 144.185 +
 144.186 +/*
 144.187 + * accessible from awt_Component
 144.188 + */
 144.189 +BOOL AwtToolkit::areExtraMouseButtonsEnabled() {
 144.190 +    return m_areExtraMouseButtonsEnabled;
 144.191 +}
 144.192 +
 144.193 +/*
 144.194 + * Class:     sun_awt_windows_WToolkit
 144.195 + * Method:    setExtraMouseButtonsEnabledNative
 144.196 + * Signature: (Z)V
 144.197 + */
 144.198 +extern "C" JNIEXPORT void JNICALL Java_sun_awt_windows_WToolkit_setExtraMouseButtonsEnabledNative
 144.199 +(JNIEnv *env, jclass self, jboolean enable){
 144.200 +    TRY;
 144.201 +    AwtToolkit::GetInstance().setExtraMouseButtonsEnabled(enable);
 144.202 +    CATCH_BAD_ALLOC;
 144.203 +}
 144.204 +
 144.205 +void AwtToolkit::setExtraMouseButtonsEnabled(BOOL enable) {
 144.206 +    m_areExtraMouseButtonsEnabled = enable;
 144.207 +}
   145.1 --- a/src/windows/native/sun/windows/awt_Toolkit.h	Tue Feb 17 09:06:16 2009 -0800
   145.2 +++ b/src/windows/native/sun/windows/awt_Toolkit.h	Wed Feb 18 10:05:41 2009 -0800
   145.3 @@ -50,7 +50,6 @@
   145.4  
   145.5  #include "awt.h"
   145.6  #include "awtmsg.h"
   145.7 -#include "awt_Multimon.h"
   145.8  #include "Trace.h"
   145.9  
  145.10  #include "sun_awt_windows_WToolkit.h"
  145.11 @@ -89,11 +88,8 @@
  145.12   */
  145.13  class CriticalSection {
  145.14    public:
  145.15 -    INLINE  CriticalSection() { ::InitializeCriticalSection(&rep);
  145.16 -                                ::InitializeCriticalSection(&tryrep);
  145.17 -                                tryEntered = 0; }
  145.18 -    INLINE ~CriticalSection() { ::DeleteCriticalSection(&rep);
  145.19 -                                ::DeleteCriticalSection(&tryrep); }
  145.20 +    INLINE  CriticalSection() { ::InitializeCriticalSection(&rep); }
  145.21 +    INLINE ~CriticalSection() { ::DeleteCriticalSection(&rep); }
  145.22  
  145.23      class Lock {
  145.24        public:
  145.25 @@ -111,50 +107,18 @@
  145.26    private:
  145.27      CRITICAL_SECTION rep;
  145.28  
  145.29 -    CRITICAL_SECTION tryrep;
  145.30 -    long tryEntered;
  145.31 -
  145.32      CriticalSection(const CriticalSection&);
  145.33      const CriticalSection& operator =(const CriticalSection&);
  145.34  
  145.35    public:
  145.36 -    virtual void    Enter           (void)
  145.37 -    {
  145.38 -        ::EnterCriticalSection(&tryrep);
  145.39 -        tryEntered++;
  145.40 -        if (tryEntered == 1) {
  145.41 -            ::EnterCriticalSection(&rep);
  145.42 -            ::LeaveCriticalSection(&tryrep);
  145.43 -        } else {
  145.44 -            ::LeaveCriticalSection(&tryrep);
  145.45 -            ::EnterCriticalSection(&rep);
  145.46 -        }
  145.47 +    virtual void Enter() {
  145.48 +        ::EnterCriticalSection(&rep);
  145.49      }
  145.50 -    // we cannot use ::TryEnterCriticalSection as it is not supported on Win9x/Me
  145.51 -    virtual BOOL    TryEnter        (void)
  145.52 -    {
  145.53 -        BOOL result = FALSE;
  145.54 -        ::EnterCriticalSection(&tryrep);
  145.55 -        if (tryEntered == 0) {
  145.56 -            ::EnterCriticalSection(&rep);
  145.57 -            tryEntered++;
  145.58 -            result = TRUE;
  145.59 -        }
  145.60 -        ::LeaveCriticalSection(&tryrep);
  145.61 -        return result;
  145.62 +    virtual BOOL TryEnter() {
  145.63 +        return ::TryEnterCriticalSection(&rep);
  145.64      }
  145.65 -    virtual void    Leave           (void)
  145.66 -    {
  145.67 -        ::EnterCriticalSection(&tryrep);
  145.68 -        if (tryEntered > 0) {
  145.69 -            tryEntered--;
  145.70 -        } else {
  145.71 -            // this may happen only if we call to Leave() before
  145.72 -            // Enter() so this is definitely a bug
  145.73 -            DASSERT(FALSE);
  145.74 -        }
  145.75 +    virtual void Leave() {
  145.76          ::LeaveCriticalSection(&rep);
  145.77 -        ::LeaveCriticalSection(&tryrep);
  145.78      }
  145.79  };
  145.80  
  145.81 @@ -211,6 +175,8 @@
  145.82      BOOL IsDynamicLayoutSet();
  145.83      BOOL IsDynamicLayoutSupported();
  145.84      BOOL IsDynamicLayoutActive();
  145.85 +    BOOL areExtraMouseButtonsEnabled();
  145.86 +    void setExtraMouseButtonsEnabled(BOOL enable);
  145.87  
  145.88      INLINE BOOL localPump() { return m_localPump; }
  145.89      INLINE BOOL VerifyComponents() { return FALSE; } // TODO: Use new DebugHelper class to set this flag
  145.90 @@ -387,6 +353,7 @@
  145.91      BOOL m_verbose;
  145.92      BOOL m_isActive; // set to FALSE at beginning of Dispose
  145.93      BOOL m_isDisposed; // set to TRUE at end of Dispose
  145.94 +    BOOL m_areExtraMouseButtonsEnabled;
  145.95  
  145.96      BOOL m_vmSignalled; // set to TRUE if QUERYENDSESSION has successfully
  145.97                          // raised SIGTERM
   146.1 --- a/src/windows/native/sun/windows/awt_TrayIcon.cpp	Tue Feb 17 09:06:16 2009 -0800
   146.2 +++ b/src/windows/native/sun/windows/awt_TrayIcon.cpp	Wed Feb 18 10:05:41 2009 -0800
   146.3 @@ -23,9 +23,10 @@
   146.4   * have any questions.
   146.5   */
   146.6  
   146.7 -#include <windows.h>
   146.8 +#include "awt.h"
   146.9  #include <windowsx.h>
  146.10  #include <shellapi.h>
  146.11 +#include <shlwapi.h>
  146.12  
  146.13  #include "awt_Toolkit.h"
  146.14  #include "awt_TrayIcon.h"
  146.15 @@ -173,27 +174,20 @@
  146.16      env->DeleteLocalRef(target);
  146.17      return awtTrayIcon;
  146.18  }
  146.19 -typedef struct _SDLLVERSIONINFO
  146.20 -{
  146.21 -    DWORD cbSize;
  146.22 -    DWORD dwMajorVersion;                   // Major version
  146.23 -    DWORD dwMinorVersion;                   // Minor version
  146.24 -    DWORD dwBuildNumber;                    // Build number
  146.25 -    DWORD dwPlatformID;                     // DLLVER_PLATFORM_*
  146.26 -} SDLLVERSIONINFO;
  146.27 -typedef HRESULT (CALLBACK* SDLLGETVERSIONPROC)(SDLLVERSIONINFO *);
  146.28  
  146.29  void AwtTrayIcon::InitNID(UINT uID)
  146.30  {
  146.31      // fix for 6271589: we MUST set the size of the structure to match
  146.32      // the shell version, otherwise some errors may occur (like missing
  146.33      // balloon messages on win2k)
  146.34 -    SDLLVERSIONINFO dllVersionInfo;
  146.35 -    dllVersionInfo.cbSize = sizeof(SDLLVERSIONINFO);
  146.36 -    int shellVersion = 4; // WIN_98
  146.37 +    DLLVERSIONINFO dllVersionInfo;
  146.38 +    dllVersionInfo.cbSize = sizeof(DLLVERSIONINFO);
  146.39 +    int shellVersion = 5; // WIN_2000
  146.40 +    // MSDN: DllGetVersion should not be implicitly called, but rather
  146.41 +    // loaded using GetProcAddress
  146.42      HMODULE hShell = LoadLibrary(TEXT("Shell32.dll"));
  146.43      if (hShell != NULL) {
  146.44 -        SDLLGETVERSIONPROC proc = (SDLLGETVERSIONPROC)GetProcAddress(hShell, "DllGetVersion");
  146.45 +        DLLGETVERSIONPROC proc = (DLLGETVERSIONPROC)GetProcAddress(hShell, "DllGetVersion");
  146.46          if (proc != NULL) {
  146.47              if (proc(&dllVersionInfo) == NOERROR) {
  146.48                  shellVersion = dllVersionInfo.dwMajorVersion;
  146.49 @@ -202,14 +196,16 @@
  146.50      }
  146.51      FreeLibrary(hShell);
  146.52      switch (shellVersion) {
  146.53 -        case 5: // WIN_2000, WIN_ME
  146.54 +        case 5: // WIN_2000
  146.55              m_nid.cbSize = (BYTE *)(&m_nid.guidItem) - (BYTE *)(&m_nid.cbSize);
  146.56              break;
  146.57          case 6: // WIN_XP
  146.58 +            // Uncomment these two lines when moving to VS2008
  146.59 +//            m_nid.cbSize = (BYTE *)(&m_nid.hBalloonIcon) - (BYTE *)(&m_nid.cbSize);
  146.60 +//            break;
  146.61 +        default: // WIN_VISTA?
  146.62              m_nid.cbSize = sizeof(m_nid);
  146.63              break;
  146.64 -        default: // WIN_98, WIN_NT
  146.65 -            m_nid.cbSize = (BYTE *)(&m_nid.szTip) - (BYTE *)(&m_nid.cbSize) + sizeof(m_nid.szTip) / 2;
  146.66      }
  146.67      m_nid.hWnd = AwtTrayIcon::sm_msgWindow;
  146.68      m_nid.uID = uID;
  146.69 @@ -217,7 +213,7 @@
  146.70      m_nid.uCallbackMessage = WM_AWT_TRAY_NOTIFY;
  146.71      m_nid.hIcon = AwtToolkit::GetInstance().GetAwtIcon();
  146.72      m_nid.szTip[0] = '\0';
  146.73 -    m_nid.uVersion = IS_WIN2000 ? AWT_NOTIFYICON_VERSION : 0;
  146.74 +    m_nid.uVersion = NOTIFYICON_VERSION;
  146.75  }
  146.76  
  146.77  BOOL AwtTrayIcon::SendTrayMessage(DWORD dwMessage)
  146.78 @@ -304,13 +300,13 @@
  146.79          case WM_CONTEXTMENU:
  146.80              mr = WmContextMenu(0, pos.x, pos.y);
  146.81              break;
  146.82 -        case AWT_NIN_KEYSELECT:
  146.83 +        case NIN_KEYSELECT:
  146.84              mr = WmKeySelect(0, pos.x, pos.y);
  146.85              break;
  146.86 -        case AWT_NIN_SELECT:
  146.87 +        case NIN_SELECT:
  146.88              mr = WmSelect(0, pos.x, pos.y);
  146.89              break;
  146.90 -        case AWT_NIN_BALLOONUSERCLICK:
  146.91 +        case NIN_BALLOONUSERCLICK:
  146.92              mr = WmBalloonUserClick(0, pos.x, pos.y);
  146.93              break;
  146.94      }
  146.95 @@ -371,7 +367,7 @@
  146.96                     (AwtComponent::GetButton(button) == java_awt_event_MouseEvent_BUTTON3 ?
  146.97                      TRUE : FALSE), AwtComponent::GetButton(button), &msg);
  146.98  
  146.99 -    if ((m_mouseButtonClickAllowed & AwtComponent::GetButtonMK(button)) != 1) { // No up-button in the drag-state
 146.100 +    if ((m_mouseButtonClickAllowed & AwtComponent::GetButtonMK(button)) != 0) { // No up-button in the drag-state
 146.101          SendMouseEvent(java_awt_event_MouseEvent_MOUSE_CLICKED,
 146.102                         TimeHelper::windowsToUTC(::GetTickCount()), x, y, AwtComponent::GetJavaModifiers(),
 146.103                         clickCount, JNI_FALSE, AwtComponent::GetButton(button));
 146.104 @@ -397,7 +393,7 @@
 146.105          lastX = x;
 146.106          lastY = y;
 146.107          AwtComponent::InitMessage(&msg, lastMessage, flags, MAKELPARAM(x, y), x, y);
 146.108 -        if ((flags & AwtComponent::ALL_MK_BUTTONS) != 0) {
 146.109 +        if ((flags & ALL_MK_BUTTONS) != 0) {
 146.110              m_mouseButtonClickAllowed = 0;
 146.111          } else {
 146.112              SendMouseEvent(java_awt_event_MouseEvent_MOUSE_MOVED, TimeHelper::windowsToUTC(::GetTickCount()), x, y,
 146.113 @@ -473,7 +469,7 @@
 146.114          BOOL result = item->m_trayIcon->SendTrayMessage(NIM_ADD);
 146.115          // 6270114: Instructs the taskbar to behave according to the Shell version 5.0
 146.116          if (result) {
 146.117 -            item->m_trayIcon->SendTrayMessage(AWT_NIM_SETVERSION);
 146.118 +            item->m_trayIcon->SendTrayMessage(NIM_SETVERSION);
 146.119          }
 146.120      }
 146.121      return mrDoDefault;
 146.122 @@ -733,9 +729,9 @@
 146.123          goto ret;
 146.124      }
 146.125  
 146.126 -    tooltipStr = env->GetStringChars(jtooltip, (jboolean *)NULL);
 146.127 +    tooltipStr = JNU_GetStringPlatformChars(env, jtooltip, (jboolean *)NULL);
 146.128      trayIcon->SetToolTip(tooltipStr);
 146.129 -    env->ReleaseStringChars(jtooltip, tooltipStr);
 146.130 +    JNU_ReleaseStringPlatformChars(env, jtooltip, tooltipStr);
 146.131  ret:
 146.132      env->DeleteGlobalRef(self);
 146.133      env->DeleteGlobalRef(jtooltip);
 146.134 @@ -782,7 +778,7 @@
 146.135      BOOL result = trayIcon->SendTrayMessage(jupdate == JNI_TRUE ? NIM_MODIFY : NIM_ADD);
 146.136      // 6270114: Instructs the taskbar to behave according to the Shell version 5.0
 146.137      if (result && jupdate == JNI_FALSE) {
 146.138 -        trayIcon->SendTrayMessage(AWT_NIM_SETVERSION);
 146.139 +        trayIcon->SendTrayMessage(NIM_SETVERSION);
 146.140      }
 146.141  ret:
 146.142      env->DeleteGlobalRef(self);
 146.143 @@ -791,22 +787,19 @@
 146.144  
 146.145  void AwtTrayIcon::DisplayMessage(LPCTSTR caption, LPCTSTR text, LPCTSTR msgType)
 146.146  {
 146.147 -    if (!IS_WIN2000)
 146.148 -        return;
 146.149 -
 146.150 -    m_nid.uFlags |= AWT_NIF_INFO;
 146.151 +    m_nid.uFlags |= NIF_INFO;
 146.152      m_nid.uTimeout = 10000;
 146.153  
 146.154      if (lstrcmp(msgType, TEXT("ERROR")) == 0) {
 146.155 -        m_nid.dwInfoFlags = AWT_NIIF_ERROR;
 146.156 +        m_nid.dwInfoFlags = NIIF_ERROR;
 146.157      } else if (lstrcmp(msgType, TEXT("WARNING")) == 0) {
 146.158 -        m_nid.dwInfoFlags = AWT_NIIF_WARNING;
 146.159 +        m_nid.dwInfoFlags = NIIF_WARNING;
 146.160      } else if (lstrcmp(msgType, TEXT("INFO")) == 0) {
 146.161 -        m_nid.dwInfoFlags = AWT_NIIF_INFO;
 146.162 +        m_nid.dwInfoFlags = NIIF_INFO;
 146.163      } else if (lstrcmp(msgType, TEXT("NONE")) == 0) {
 146.164 -        m_nid.dwInfoFlags = AWT_NIIF_NONE;
 146.165 +        m_nid.dwInfoFlags = NIIF_NONE;
 146.166      } else {
 146.167 -        m_nid.dwInfoFlags = AWT_NIIF_NONE;
 146.168 +        m_nid.dwInfoFlags = NIIF_NONE;
 146.169      }
 146.170  
 146.171      if (caption[0] == '\0') {
 146.172 @@ -835,7 +828,7 @@
 146.173      }
 146.174  
 146.175      SendTrayMessage(NIM_MODIFY);
 146.176 -    m_nid.uFlags &= ~AWT_NIF_INFO;
 146.177 +    m_nid.uFlags &= ~NIF_INFO;
 146.178  }
 146.179  
 146.180  void AwtTrayIcon::_DisplayMessage(void *param)
 146.181 @@ -855,15 +848,15 @@
 146.182      JNI_CHECK_PEER_GOTO(self, ret);
 146.183      trayIcon = (AwtTrayIcon *)pData;
 146.184  
 146.185 -    captionStr = env->GetStringChars(jcaption, (jboolean *)NULL);
 146.186 -    textStr = env->GetStringChars(jtext, (jboolean *)NULL);
 146.187 -    msgTypeStr = env->GetStringChars(jmsgType, (jboolean *)NULL);
 146.188 +    captionStr = JNU_GetStringPlatformChars(env, jcaption, (jboolean *)NULL);
 146.189 +    textStr = JNU_GetStringPlatformChars(env, jtext, (jboolean *)NULL);
 146.190 +    msgTypeStr = JNU_GetStringPlatformChars(env, jmsgType, (jboolean *)NULL);
 146.191  
 146.192      trayIcon->DisplayMessage(captionStr, textStr, msgTypeStr);
 146.193  
 146.194 -    env->ReleaseStringChars(jcaption, captionStr);
 146.195 -    env->ReleaseStringChars(jtext, textStr);
 146.196 -    env->ReleaseStringChars(jmsgType, msgTypeStr);
 146.197 +    JNU_ReleaseStringPlatformChars(env, jcaption, captionStr);
 146.198 +    JNU_ReleaseStringPlatformChars(env, jtext, textStr);
 146.199 +    JNU_ReleaseStringPlatformChars(env, jmsgType, msgTypeStr);
 146.200  ret:
 146.201      env->DeleteGlobalRef(self);
 146.202      env->DeleteGlobalRef(jcaption);
 146.203 @@ -1057,16 +1050,14 @@
 146.204  {
 146.205      TRY;
 146.206  
 146.207 -    if (IS_WIN2000) {
 146.208 -        DisplayMessageStruct *dms = new DisplayMessageStruct;
 146.209 -        dms->trayIcon = env->NewGlobalRef(self);
 146.210 -        dms->caption = (jstring)env->NewGlobalRef(caption);
 146.211 -        dms->text = (jstring)env->NewGlobalRef(text);
 146.212 -        dms->msgType = (jstring)env->NewGlobalRef(msgType);
 146.213 +    DisplayMessageStruct *dms = new DisplayMessageStruct;
 146.214 +    dms->trayIcon = env->NewGlobalRef(self);
 146.215 +    dms->caption = (jstring)env->NewGlobalRef(caption);
 146.216 +    dms->text = (jstring)env->NewGlobalRef(text);
 146.217 +    dms->msgType = (jstring)env->NewGlobalRef(msgType);
 146.218  
 146.219 -        AwtToolkit::GetInstance().SyncCall(AwtTrayIcon::_DisplayMessage, dms);
 146.220 -        // global ref is deleted in _DisplayMessage
 146.221 -    }
 146.222 +    AwtToolkit::GetInstance().SyncCall(AwtTrayIcon::_DisplayMessage, dms);
 146.223 +    // global ref is deleted in _DisplayMessage
 146.224  
 146.225      CATCH_BAD_ALLOC(NULL);
 146.226  }
   147.1 --- a/src/windows/native/sun/windows/awt_TrayIcon.h	Tue Feb 17 09:06:16 2009 -0800
   147.2 +++ b/src/windows/native/sun/windows/awt_TrayIcon.h	Wed Feb 18 10:05:41 2009 -0800
   147.3 @@ -36,57 +36,11 @@
   147.4  #define TRAY_ICON_X_HOTSPOT 0
   147.5  #define TRAY_ICON_Y_HOTSPOT 0
   147.6  
   147.7 -#define TRAY_ICON_TOOLTIP_MAX_SIZE (IS_WIN2000 ? 128 : 64)
   147.8 +#define TRAY_ICON_TOOLTIP_MAX_SIZE 128
   147.9  
  147.10  #define TRAY_ICON_BALLOON_TITLE_MAX_SIZE 64
  147.11  #define TRAY_ICON_BALLOON_INFO_MAX_SIZE  256
  147.12  
  147.13 -// **********************************************************************
  147.14 -// The following definitions are duplicates for those from the shellapi.h
  147.15 -// **********************************************************************
  147.16 -
  147.17 -#define AWT_NOTIFYICON_VERSION 3
  147.18 -
  147.19 -#define AWT_NIM_SETVERSION  0x00000004
  147.20 -
  147.21 -#define AWT_NIN_SELECT          (WM_USER + 0)
  147.22 -#define AWT_NINF_KEY            0x1
  147.23 -#define AWT_NIN_KEYSELECT       (AWT_NIN_SELECT | AWT_NINF_KEY)
  147.24 -#define AWT_NIN_BALLOONSHOW     (WM_USER + 2)
  147.25 -#define AWT_NIN_BALLOONHIDE     (WM_USER + 3)
  147.26 -#define AWT_NIN_BALLOONTIMEOUT  (WM_USER + 4)
  147.27 -#define AWT_NIN_BALLOONUSERCLICK (WM_USER + 5)
  147.28 -
  147.29 -#define AWT_NIIF_NONE       0x00000000
  147.30 -#define AWT_NIIF_INFO       0x00000001
  147.31 -#define AWT_NIIF_WARNING    0x00000002
  147.32 -#define AWT_NIIF_ERROR      0x00000003
  147.33 -
  147.34 -#define AWT_NIF_INFO        0x00000010
  147.35 -
  147.36 -typedef struct _AWT_NOTIFYICONDATA {
  147.37 -    DWORD cbSize;
  147.38 -    HWND hWnd;
  147.39 -    UINT uID;
  147.40 -    UINT uFlags;
  147.41 -    UINT uCallbackMessage;
  147.42 -    HICON hIcon;
  147.43 -    TCHAR szTip[128];
  147.44 -
  147.45 -    DWORD dwState;        // _WIN32_IE >= 0x0500
  147.46 -    DWORD dwStateMask;
  147.47 -    TCHAR szInfo[256];
  147.48 -    union {
  147.49 -        UINT  uTimeout;
  147.50 -        UINT  uVersion;
  147.51 -    } DUMMYUNIONNAME;
  147.52 -    TCHAR szInfoTitle[64];
  147.53 -    DWORD dwInfoFlags;
  147.54 -
  147.55 -    GUID guidItem;        // _WIN32_IE >= 0x600
  147.56 -} AWT_NOTIFYICONDATA, *PAWT_NOTIFYICONDATA;
  147.57 -
  147.58 -
  147.59  /************************************************************************
  147.60   * AwtTrayIcon class
  147.61   */
  147.62 @@ -174,7 +128,7 @@
  147.63      static int sm_instCount;
  147.64  
  147.65  private:
  147.66 -    AWT_NOTIFYICONDATA m_nid;
  147.67 +    NOTIFYICONDATA m_nid;
  147.68  
  147.69      /* A bitmask keeps the button's numbers as MK_LBUTTON, MK_MBUTTON, MK_RBUTTON
  147.70       * which are allowed to
   148.1 --- a/src/windows/native/sun/windows/awt_Unicode.cpp	Tue Feb 17 09:06:16 2009 -0800
   148.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   148.3 @@ -1,46 +0,0 @@
   148.4 -/*
   148.5 - * Copyright 1996-2003 Sun Microsystems, Inc.  All Rights Reserved.
   148.6 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   148.7 - *
   148.8 - * This code is free software; you can redistribute it and/or modify it
   148.9 - * under the terms of the GNU General Public License version 2 only, as
  148.10 - * published by the Free Software Foundation.  Sun designates this
  148.11 - * particular file as subject to the "Classpath" exception as provided
  148.12 - * by Sun in the LICENSE file that accompanied this code.
  148.13 - *
  148.14 - * This code is distributed in the hope that it will be useful, but WITHOUT
  148.15 - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  148.16 - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  148.17 - * version 2 for more details (a copy is included in the LICENSE file that
  148.18 - * accompanied this code).
  148.19 - *
  148.20 - * You should have received a copy of the GNU General Public License version
  148.21 - * 2 along with this work; if not, write to the Free Software Foundation,
  148.22 - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  148.23 - *
  148.24 - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  148.25 - * CA 95054 USA or visit www.sun.com if you need additional information or
  148.26 - * have any questions.
  148.27 - */
  148.28 -
  148.29 -#include "awt.h"
  148.30 -
  148.31 -LPWSTR J2WHelper1(LPWSTR lpw, LPWSTR lpj, int offset, int nChars) {
  148.32 -    memcpy(lpw, lpj + offset, nChars*2);
  148.33 -    lpw[nChars] = '\0';
  148.34 -    return lpw;
  148.35 -}
  148.36 -
  148.37 -LPWSTR JNI_J2WHelper1(JNIEnv *env, LPWSTR lpwstr, jstring jstr) {
  148.38 -
  148.39 -    int len = env->GetStringLength(jstr);
  148.40 -
  148.41 -    env->GetStringRegion(jstr, 0, len, lpwstr);
  148.42 -    lpwstr[len] = '\0';
  148.43 -
  148.44 -    return lpwstr;
  148.45 -}
  148.46 -
  148.47 -LPWSTR J2WHelper(LPWSTR lpw, LPWSTR lpj,  int nChars) {
  148.48 -    return J2WHelper1(lpw, lpj, 0, nChars);
  148.49 -}
   149.1 --- a/src/windows/native/sun/windows/awt_Unicode.h	Tue Feb 17 09:06:16 2009 -0800
   149.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   149.3 @@ -1,50 +0,0 @@
   149.4 -/*
   149.5 - * Copyright 1996-2003 Sun Microsystems, Inc.  All Rights Reserved.
   149.6 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   149.7 - *
   149.8 - * This code is free software; you can redistribute it and/or modify it
   149.9 - * under the terms of the GNU General Public License version 2 only, as
  149.10 - * published by the Free Software Foundation.  Sun designates this
  149.11 - * particular file as subject to the "Classpath" exception as provided
  149.12 - * by Sun in the LICENSE file that accompanied this code.
  149.13 - *
  149.14 - * This code is distributed in the hope that it will be useful, but WITHOUT
  149.15 - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  149.16 - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  149.17 - * version 2 for more details (a copy is included in the LICENSE file that
  149.18 - * accompanied this code).
  149.19 - *
  149.20 - * You should have received a copy of the GNU General Public License version
  149.21 - * 2 along with this work; if not, write to the Free Software Foundation,
  149.22 - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  149.23 - *
  149.24 - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  149.25 - * CA 95054 USA or visit www.sun.com if you need additional information or
  149.26 - * have any questions.
  149.27 - */
  149.28 -
  149.29 -/*
  149.30 - * Unicode to ANSI string conversion macros, based on a slide from a
  149.31 - * presentation by Asmus Freytag.  These must be macros, since the
  149.32 - * alloca() has to be in the caller's stack space.
  149.33 - */
  149.34 -
  149.35 -#ifndef AWT_UNICODE_H
  149.36 -#define AWT_UNICODE_H
  149.37 -
  149.38 -#include <malloc.h>
  149.39 -
  149.40 -// Get a Unicode string copy of a Java String object (Java String aren't
  149.41 -// null-terminated).
  149.42 -extern LPWSTR J2WHelper(LPWSTR lpw, LPWSTR lpj, int nChars);
  149.43 -extern LPWSTR J2WHelper1(LPWSTR lpw, LPWSTR lpj, int offset, int nChars);
  149.44 -
  149.45 -extern LPWSTR JNI_J2WHelper1(JNIEnv *env, LPWSTR lpw, jstring jstr);
  149.46 -
  149.47 -#define TO_WSTRING(jstr) \
  149.48 -   ((jstr == NULL) ? NULL : \
  149.49 -     (JNI_J2WHelper1(env, (LPWSTR) alloca((env->GetStringLength(jstr)+1)*2), \
  149.50 -                     jstr) \
  149.51 -    ))
  149.52 -
  149.53 -#endif // AWT_UNICODE_H
   150.1 --- a/src/windows/native/sun/windows/awt_Win32GraphicsConfig.cpp	Tue Feb 17 09:06:16 2009 -0800
   150.2 +++ b/src/windows/native/sun/windows/awt_Win32GraphicsConfig.cpp	Wed Feb 18 10:05:41 2009 -0800
   150.3 @@ -1,5 +1,5 @@
   150.4  /*
   150.5 - * Copyright 1999-2003 Sun Microsystems, Inc.  All Rights Reserved.
   150.6 + * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
   150.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   150.8   *
   150.9   * This code is free software; you can redistribute it and/or modify it
  150.10 @@ -23,12 +23,12 @@
  150.11   * have any questions.
  150.12   */
  150.13  
  150.14 -#include <windows.h>
  150.15  #include "awt.h"
  150.16  #include <sun_awt_Win32GraphicsConfig.h>
  150.17  #include "awt_Win32GraphicsConfig.h"
  150.18  #include "awt_Canvas.h"
  150.19  #include "awt_Win32GraphicsDevice.h"
  150.20 +#include "Devices.h"
  150.21  
  150.22  //Info for building a ColorModel
  150.23  #include "java_awt_image_DataBuffer.h"
  150.24 @@ -93,8 +93,8 @@
  150.25      clazz = env->FindClass("java/awt/Rectangle");
  150.26      mid = env->GetMethodID(clazz, "<init>", "(IIII)V");
  150.27      if (mid != 0) {
  150.28 -        RECT    rRW     = {0,0,0,0};
  150.29 -        if( TRUE == ::MonitorBounds(AwtWin32GraphicsDevice::GetMonitor(screen), &rRW) ) {
  150.30 +        RECT rRW = {0, 0, 0, 0};
  150.31 +        if (TRUE == MonitorBounds(AwtWin32GraphicsDevice::GetMonitor(screen), &rRW)) {
  150.32              bounds = env->NewObject(clazz, mid,
  150.33                                      rRW.left, rRW.top,
  150.34                                      rRW.right - rRW.left,
   151.1 --- a/src/windows/native/sun/windows/awt_Win32GraphicsDevice.cpp	Tue Feb 17 09:06:16 2009 -0800
   151.2 +++ b/src/windows/native/sun/windows/awt_Win32GraphicsDevice.cpp	Wed Feb 18 10:05:41 2009 -0800
   151.3 @@ -37,19 +37,17 @@
   151.4   * array index.
   151.5   */
   151.6  
   151.7 -#include <windows.h>
   151.8 -#include <jni.h>
   151.9  #include <awt.h>
  151.10  #include <sun_awt_Win32GraphicsDevice.h>
  151.11  #include "awt_Canvas.h"
  151.12  #include "awt_Win32GraphicsDevice.h"
  151.13 +#include "awt_Window.h"
  151.14  #include "java_awt_Transparency.h"
  151.15  #include "java_awt_color_ColorSpace.h"
  151.16  #include "sun_awt_Win32GraphicsDevice.h"
  151.17  #include "java_awt_image_DataBuffer.h"
  151.18  #include "dither.h"
  151.19  #include "img_util_md.h"
  151.20 -#include "awt_dlls.h"
  151.21  #include "Devices.h"
  151.22  
  151.23  uns_ordered_dither_array img_oda_alpha;
  151.24 @@ -72,7 +70,7 @@
  151.25   * device, and information on whether the primary device is palettized.
  151.26   */
  151.27  AwtWin32GraphicsDevice::AwtWin32GraphicsDevice(int screen,
  151.28 -                                               MHND mhnd, Devices *arr)
  151.29 +                                               HMONITOR mhnd, Devices *arr)
  151.30  {
  151.31      this->screen  = screen;
  151.32      this->devicesArray = arr;
  151.33 @@ -83,8 +81,8 @@
  151.34      cData = NULL;
  151.35      gpBitmapInfo = NULL;
  151.36      monitor = mhnd;
  151.37 -    pMonitorInfo = (PMONITOR_INFO)new MONITOR_INFO_EXTENDED;
  151.38 -    pMonitorInfo->dwSize = sizeof(MONITOR_INFO_EXTENDED);
  151.39 +    pMonitorInfo = new MONITORINFOEX;
  151.40 +    pMonitorInfo->cbSize = sizeof(MONITORINFOEX);
  151.41      ::GetMonitorInfo(monitor, pMonitorInfo);
  151.42  
  151.43      // Set primary device info: other devices will need to know
  151.44 @@ -93,7 +91,7 @@
  151.45      HDC hDC = this->GetDC();
  151.46      colorData->bitsperpixel = ::GetDeviceCaps(hDC, BITSPIXEL);
  151.47      this->ReleaseDC(hDC);
  151.48 -    if (MONITOR_INFO_FLAG_PRIMARY & pMonitorInfo->dwFlags) {
  151.49 +    if (MONITORINFOF_PRIMARY & pMonitorInfo->dwFlags) {
  151.50          primaryIndex = screen;
  151.51          if (colorData->bitsperpixel > 8) {
  151.52              primaryPalettized = FALSE;
  151.53 @@ -124,6 +122,24 @@
  151.54      }
  151.55  }
  151.56  
  151.57 +HDC AwtWin32GraphicsDevice::MakeDCFromMonitor(HMONITOR hmMonitor) {
  151.58 +    HDC retCode = NULL;
  151.59 +    if (NULL != hmMonitor) {
  151.60 +        MONITORINFOEX mieInfo;
  151.61 +
  151.62 +        memset((void*)(&mieInfo), 0, sizeof(MONITORINFOEX));
  151.63 +        mieInfo.cbSize = sizeof(MONITORINFOEX);
  151.64 +
  151.65 +        if (TRUE == ::GetMonitorInfo(hmMonitor, (LPMONITORINFOEX)(&mieInfo))) {
  151.66 +            HDC hDC = CreateDC(mieInfo.szDevice, NULL, NULL, NULL);
  151.67 +            if (NULL != hDC) {
  151.68 +                retCode = hDC;
  151.69 +            }
  151.70 +        }
  151.71 +    }
  151.72 +    return retCode;
  151.73 +}
  151.74 +
  151.75  HDC AwtWin32GraphicsDevice::GetDC()
  151.76  {
  151.77      return MakeDCFromMonitor(monitor);
  151.78 @@ -164,7 +180,7 @@
  151.79      VERIFY(::GetDIBits(hBMDC, hBM, 0, 1, NULL, gpBitmapInfo, DIB_RGB_COLORS));
  151.80  
  151.81      if (colorData->bitsperpixel > 8) {
  151.82 -        if (MONITOR_INFO_FLAG_PRIMARY & pMonitorInfo->dwFlags) {
  151.83 +        if (MONITORINFOF_PRIMARY & pMonitorInfo->dwFlags) {
  151.84              primaryPalettized = FALSE;
  151.85          }
  151.86          if (colorData->bitsperpixel != 24) { // 15, 16, or 32 bpp
  151.87 @@ -250,7 +266,7 @@
  151.88              ((int *)gpBitmapInfo->bmiColors)[2] = 0xff0000;
  151.89          }
  151.90      } else {
  151.91 -        if (MONITOR_INFO_FLAG_PRIMARY & pMonitorInfo->dwFlags) {
  151.92 +        if (MONITORINFOF_PRIMARY & pMonitorInfo->dwFlags) {
  151.93              primaryPalettized = TRUE;
  151.94          }
  151.95          gpBitmapInfo->bmiHeader.biBitCount = 8;
  151.96 @@ -565,8 +581,8 @@
  151.97   */
  151.98  int AwtWin32GraphicsDevice::DeviceIndexForWindow(HWND hWnd)
  151.99  {
 151.100 -    MHND mon = MonitorFromWindow(hWnd, MONITOR_DEFAULT_TO_NEAR);
 151.101 -    int screen = AwtWin32GraphicsDevice::GetScreenFromMHND(mon);
 151.102 +    HMONITOR mon = MonitorFromWindow(hWnd, MONITOR_DEFAULTTONEAREST);
 151.103 +    int screen = AwtWin32GraphicsDevice::GetScreenFromHMONITOR(mon);
 151.104      return screen;
 151.105  }
 151.106  
 151.107 @@ -645,14 +661,14 @@
 151.108      return devices->GetDevice(deviceIndex)->GetColorModel(env, dynamic);
 151.109  }
 151.110  
 151.111 -MONITOR_INFO *AwtWin32GraphicsDevice::GetMonitorInfo(int deviceIndex)
 151.112 +LPMONITORINFO AwtWin32GraphicsDevice::GetMonitorInfo(int deviceIndex)
 151.113  {
 151.114      Devices::InstanceAccess devices;
 151.115      return devices->GetDevice(deviceIndex)->GetMonitorInfo();
 151.116  }
 151.117  
 151.118  /**
 151.119 - * This function updates the data in the MONITOR_INFO structure pointed to by
 151.120 + * This function updates the data in the MONITORINFOEX structure pointed to by
 151.121   * pMonitorInfo for all monitors on the system.  Added for 4654713.
 151.122   */
 151.123  void AwtWin32GraphicsDevice::ResetAllMonitorInfo()
 151.124 @@ -660,14 +676,14 @@
 151.125      Devices::InstanceAccess devices;
 151.126      int devicesNum = devices->GetNumDevices();
 151.127      for (int deviceIndex = 0; deviceIndex < devicesNum; deviceIndex++) {
 151.128 -        MHND monitor = devices->GetDevice(deviceIndex)->GetMonitor();
 151.129 +        HMONITOR monitor = devices->GetDevice(deviceIndex)->GetMonitor();
 151.130          ::GetMonitorInfo(monitor,
 151.131                           devices->GetDevice(deviceIndex)->pMonitorInfo);
 151.132      }
 151.133  }
 151.134  
 151.135  void AwtWin32GraphicsDevice::DisableOffscreenAccelerationForDevice(
 151.136 -    MHND hMonitor)
 151.137 +    HMONITOR hMonitor)
 151.138  {
 151.139      Devices::InstanceAccess devices;
 151.140      if (hMonitor == NULL) {
 151.141 @@ -682,7 +698,7 @@
 151.142      }
 151.143  }
 151.144  
 151.145 -MHND AwtWin32GraphicsDevice::GetMonitor(int deviceIndex)
 151.146 +HMONITOR AwtWin32GraphicsDevice::GetMonitor(int deviceIndex)
 151.147  {
 151.148      Devices::InstanceAccess devices;
 151.149      return devices->GetDevice(deviceIndex)->GetMonitor();
 151.150 @@ -741,30 +757,31 @@
 151.151      return MakeDCFromMonitor(dev->GetMonitor());
 151.152  }
 151.153  
 151.154 -/** Compare elements of MONITOR_INFO structures for the given MHNDs.
 151.155 +/** Compare elements of MONITORINFOEX structures for the given HMONITORs.
 151.156   * If equal, return TRUE
 151.157   */
 151.158 -BOOL AwtWin32GraphicsDevice::AreSameMonitors(MHND mon1, MHND mon2) {
 151.159 +BOOL AwtWin32GraphicsDevice::AreSameMonitors(HMONITOR mon1, HMONITOR mon2) {
 151.160      J2dTraceLn2(J2D_TRACE_INFO,
 151.161                  "AwtWin32GraphicsDevice::AreSameMonitors mhnd1=%x mhnd2=%x",
 151.162                  mon1, mon2);
 151.163      DASSERT(mon1 != NULL);
 151.164      DASSERT(mon2 != NULL);
 151.165  
 151.166 -    MONITOR_INFO mi1;
 151.167 -    MONITOR_INFO mi2;
 151.168 +    MONITORINFOEX mi1;
 151.169 +    MONITORINFOEX mi2;
 151.170  
 151.171 -    memset((void*)(&mi1),0,sizeof(MONITOR_INFO));
 151.172 -    mi1.dwSize = sizeof(MONITOR_INFO);
 151.173 -    memset((void*)(&mi2),0,sizeof(MONITOR_INFO));
 151.174 -    mi2.dwSize = sizeof(MONITOR_INFO);
 151.175 +    memset((void*)(&mi1), 0, sizeof(MONITORINFOEX));
 151.176 +    mi1.cbSize = sizeof(MONITORINFOEX);
 151.177 +    memset((void*)(&mi2), 0, sizeof(MONITORINFOEX));
 151.178 +    mi2.cbSize = sizeof(MONITORINFOEX);
 151.179  
 151.180 -    if (::GetMonitorInfo(mon1,&mi1) != 0 &&
 151.181 -        ::GetMonitorInfo(mon2,&mi2) != 0 ) {
 151.182 -
 151.183 -        if (::EqualRect(&mi1.rMonitor,&mi2.rMonitor) &&
 151.184 -            ::EqualRect(&mi1.rWork,&mi2.rWork) &&
 151.185 -            mi1.dwFlags  == mi1.dwFlags) {
 151.186 +    if (::GetMonitorInfo(mon1, &mi1) != 0 &&
 151.187 +        ::GetMonitorInfo(mon2, &mi2) != 0 )
 151.188 +    {
 151.189 +        if (::EqualRect(&mi1.rcMonitor, &mi2.rcMonitor) &&
 151.190 +            ::EqualRect(&mi1.rcWork, &mi2.rcWork) &&
 151.191 +            (mi1.dwFlags  == mi1.dwFlags))
 151.192 +        {
 151.193  
 151.194              J2dTraceLn(J2D_TRACE_VERBOSE, "  the monitors are the same");
 151.195              return TRUE;
 151.196 @@ -774,15 +791,15 @@
 151.197      return FALSE;
 151.198  }
 151.199  
 151.200 -int AwtWin32GraphicsDevice::GetScreenFromMHND(MHND mon) {
 151.201 +int AwtWin32GraphicsDevice::GetScreenFromHMONITOR(HMONITOR mon) {
 151.202      J2dTraceLn1(J2D_TRACE_INFO,
 151.203 -                "AwtWin32GraphicsDevice::GetScreenFromMHND mhnd=%x", mon);
 151.204 +                "AwtWin32GraphicsDevice::GetScreenFromHMONITOR mhnd=%x", mon);
 151.205  
 151.206      DASSERT(mon != NULL);
 151.207      Devices::InstanceAccess devices;
 151.208  
 151.209      for (int i = 0; i < devices->GetNumDevices(); i++) {
 151.210 -        MHND mhnd = devices->GetDevice(i)->GetMonitor();
 151.211 +        HMONITOR mhnd = devices->GetDevice(i)->GetMonitor();
 151.212          if (AreSameMonitors(mon, mhnd)) {
 151.213              J2dTraceLn1(J2D_TRACE_VERBOSE, "  Found device: %d", i);
 151.214              return i;
 151.215 @@ -790,8 +807,8 @@
 151.216      }
 151.217  
 151.218      J2dTraceLn1(J2D_TRACE_WARNING,
 151.219 -                "AwtWin32GraphicsDevice::GetScreenFromMHND(): "\
 151.220 -                "couldn't find screen for MHND %x, returning default", mon);
 151.221 +                "AwtWin32GraphicsDevice::GetScreenFromHMONITOR(): "\
 151.222 +                "couldn't find screen for HMONITOR %x, returning default", mon);
 151.223      return AwtWin32GraphicsDevice::GetDefaultDeviceIndex();
 151.224  }
 151.225  
 151.226 @@ -1076,19 +1093,19 @@
 151.227   * of the structure pointed to by lpDisplayDevice is undefined.
 151.228   */
 151.229  static BOOL
 151.230 -GetAttachedDisplayDevice(int screen, _DISPLAY_DEVICE *lpDisplayDevice)
 151.231 +GetAttachedDisplayDevice(int screen, DISPLAY_DEVICE *lpDisplayDevice)
 151.232  {
 151.233      DWORD dwDeviceNum = 0;
 151.234 -    lpDisplayDevice->dwSize = sizeof(_DISPLAY_DEVICE);
 151.235 +    lpDisplayDevice->cb = sizeof(DISPLAY_DEVICE);
 151.236      while (EnumDisplayDevices(NULL, dwDeviceNum, lpDisplayDevice, 0) &&
 151.237             dwDeviceNum < 20) // avoid infinite loop with buggy drivers
 151.238      {
 151.239 -        if (lpDisplayDevice->dwFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP) {
 151.240 +        if (lpDisplayDevice->StateFlags & DISPLAY_DEVICE_ATTACHED_TO_DESKTOP) {
 151.241              Devices::InstanceAccess devices;
 151.242 -            MONITOR_INFO_EXTENDED *pMonInfo =
 151.243 -                (PMONITOR_INFO_EXTENDED) devices->GetDevice(screen)->GetMonitorInfo();
 151.244 +            MONITORINFOEX *pMonInfo =
 151.245 +                (LPMONITORINFOEX)devices->GetDevice(screen)->GetMonitorInfo();
 151.246              // make sure the device names match
 151.247 -            if (wcscmp(pMonInfo->strDevice, lpDisplayDevice->strDevName) == 0) {
 151.248 +            if (wcscmp(pMonInfo->szDevice, lpDisplayDevice->DeviceName) == 0) {
 151.249                  return TRUE;
 151.250              }
 151.251          }
 151.252 @@ -1114,9 +1131,9 @@
 151.253      dm.dmSize = sizeof(dm);
 151.254      dm.dmDriverExtra = 0;
 151.255  
 151.256 -    _DISPLAY_DEVICE displayDevice;
 151.257 +    DISPLAY_DEVICE displayDevice;
 151.258      if (GetAttachedDisplayDevice(screen, &displayDevice)) {
 151.259 -        pName = displayDevice.strDevName;
 151.260 +        pName = displayDevice.DeviceName;
 151.261      }
 151.262      if (!EnumDisplaySettings(pName, ENUM_CURRENT_SETTINGS, &dm))
 151.263      {
 151.264 @@ -1156,7 +1173,7 @@
 151.265      // ChangeDisplaySettingsEx is not available on NT,
 151.266      // so it'd be nice not to break it if we can help it.
 151.267      if (screen == AwtWin32GraphicsDevice::GetDefaultDeviceIndex()) {
 151.268 -        if (ChangeDisplaySettings(&dm, CDS_FULLSCREEN) !=
 151.269 +        if (::ChangeDisplaySettings(&dm, CDS_FULLSCREEN) !=
 151.270              DISP_CHANGE_SUCCESSFUL)
 151.271          {
 151.272              JNU_ThrowInternalError(env,
 151.273 @@ -1165,15 +1182,9 @@
 151.274          return;
 151.275      }
 151.276  
 151.277 -    // make sure the function pointer for fn_change_display_settings_ex
 151.278 -    // is initialized
 151.279 -    load_user_procs();
 151.280 -
 151.281 -    _DISPLAY_DEVICE displayDevice;
 151.282 -    if (fn_change_display_settings_ex == NULL ||
 151.283 -        !GetAttachedDisplayDevice(screen, &displayDevice) ||
 151.284 -        ((*fn_change_display_settings_ex)
 151.285 -             (displayDevice.strDevName, &dm, NULL, CDS_FULLSCREEN, NULL) !=
 151.286 +    DISPLAY_DEVICE displayDevice;
 151.287 +    if (!GetAttachedDisplayDevice(screen, &displayDevice) ||
 151.288 +        (::ChangeDisplaySettingsEx(displayDevice.DeviceName, &dm, NULL, CDS_FULLSCREEN, NULL) !=
 151.289            DISP_CHANGE_SUCCESSFUL))
 151.290      {
 151.291          JNU_ThrowInternalError(env,
 151.292 @@ -1231,11 +1242,11 @@
 151.293  
 151.294      DEVMODE dm;
 151.295      LPTSTR pName = NULL;
 151.296 -    _DISPLAY_DEVICE displayDevice;
 151.297 +    DISPLAY_DEVICE displayDevice;
 151.298  
 151.299  
 151.300      if (GetAttachedDisplayDevice(screen, &displayDevice)) {
 151.301 -        pName = displayDevice.strDevName;
 151.302 +        pName = displayDevice.DeviceName;
 151.303      }
 151.304  
 151.305      dm.dmSize = sizeof(dm);
   152.1 --- a/src/windows/native/sun/windows/awt_Win32GraphicsDevice.h	Tue Feb 17 09:06:16 2009 -0800
   152.2 +++ b/src/windows/native/sun/windows/awt_Win32GraphicsDevice.h	Wed Feb 18 10:05:41 2009 -0800
   152.3 @@ -32,7 +32,6 @@
   152.4  } // extern "C"
   152.5  #include "colordata.h"
   152.6  #include "awt_Palette.h"
   152.7 -#include "awt_MMStub.h"
   152.8  #include "Devices.h"
   152.9  
  152.10  class AwtPalette;
  152.11 @@ -40,7 +39,7 @@
  152.12  
  152.13  class AwtWin32GraphicsDevice {
  152.14  public:
  152.15 -                            AwtWin32GraphicsDevice(int screen, MHND mhnd, Devices *arr);
  152.16 +                            AwtWin32GraphicsDevice(int screen, HMONITOR mhnd, Devices *arr);
  152.17                              ~AwtWin32GraphicsDevice();
  152.18      void                    UpdateDeviceColorState();
  152.19      void                    SetGrayness(int grayValue);
  152.20 @@ -60,8 +59,8 @@
  152.21      HPALETTE                GetPalette();
  152.22      ColorData               *GetColorData() { return cData; }
  152.23      int                     GetBitDepth() { return colorData->bitsperpixel; }
  152.24 -    MHND                    GetMonitor() { return monitor; }
  152.25 -    MONITOR_INFO            *GetMonitorInfo() { return pMonitorInfo; }
  152.26 +    HMONITOR                GetMonitor() { return monitor; }
  152.27 +    LPMONITORINFO           GetMonitorInfo() { return pMonitorInfo; }
  152.28      jobject                 GetJavaDevice() { return javaDevice; }
  152.29      int                     GetDeviceIndex() { return screen; }
  152.30      void                    Release();
  152.31 @@ -78,14 +77,14 @@
  152.32      static void             UpdateDynamicColorModel(int deviceIndex);
  152.33      static BOOL             UpdateSystemPalette(int deviceIndex);
  152.34      static HPALETTE         GetPalette(int deviceIndex);
  152.35 -    static MHND             GetMonitor(int deviceIndex);
  152.36 -    static MONITOR_INFO     *GetMonitorInfo(int deviceIndex);
  152.37 +    static HMONITOR         GetMonitor(int deviceIndex);
  152.38 +    static LPMONITORINFO    GetMonitorInfo(int deviceIndex);
  152.39      static void             ResetAllMonitorInfo();
  152.40      static BOOL             IsPrimaryPalettized() { return primaryPalettized; }
  152.41      static int              GetDefaultDeviceIndex() { return primaryIndex; }
  152.42 -    static void             DisableOffscreenAccelerationForDevice(MHND hMonitor);
  152.43 +    static void             DisableOffscreenAccelerationForDevice(HMONITOR hMonitor);
  152.44      static HDC              GetDCFromScreen(int screen);
  152.45 -    static int              GetScreenFromMHND(MHND mon);
  152.46 +    static int              GetScreenFromHMONITOR(HMONITOR mon);
  152.47  
  152.48      static int              primaryIndex;
  152.49      static BOOL             primaryPalettized;
  152.50 @@ -97,17 +96,19 @@
  152.51      static jmethodID        paletteChangedMID;
  152.52  
  152.53  private:
  152.54 -    static BOOL             AreSameMonitors(MHND mon1, MHND mon2);
  152.55 +    static BOOL             AreSameMonitors(HMONITOR mon1, HMONITOR mon2);
  152.56      ImgColorData            *colorData;
  152.57      AwtPalette              *palette;
  152.58      ColorData               *cData;     // Could be static, but may sometime
  152.59                                          // have per-device info in this structure
  152.60      BITMAPINFO              *gpBitmapInfo;
  152.61      int                     screen;
  152.62 -    MHND                    monitor;
  152.63 -    MONITOR_INFO            *pMonitorInfo;
  152.64 +    HMONITOR                monitor;
  152.65 +    LPMONITORINFO           pMonitorInfo;
  152.66      jobject                 javaDevice;
  152.67      Devices                 *devicesArray;
  152.68 +
  152.69 +    static HDC              MakeDCFromMonitor(HMONITOR);
  152.70  };
  152.71  
  152.72  #endif AWT_WIN32GRAPHICSDEVICE_H
   153.1 --- a/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp	Tue Feb 17 09:06:16 2009 -0800
   153.2 +++ b/src/windows/native/sun/windows/awt_Win32GraphicsEnv.cpp	Wed Feb 18 10:05:41 2009 -0800
   153.3 @@ -23,8 +23,6 @@
   153.4   * have any questions.
   153.5   */
   153.6  
   153.7 -#include <windows.h>
   153.8 -#include <jni.h>
   153.9  #include <awt.h>
  153.10  #include <sun_awt_Win32GraphicsEnvironment.h>
  153.11  #include "awt_Canvas.h"
  153.12 @@ -188,44 +186,6 @@
  153.13      return AwtWin32GraphicsDevice::GetDefaultDeviceIndex();
  153.14  }
  153.15  
  153.16 -#define FR_PRIVATE 0x10 /* from wingdi.h */
  153.17 -typedef int (WINAPI *AddFontResourceExType)(LPCTSTR,DWORD,VOID*);
  153.18 -typedef int (WINAPI *RemoveFontResourceExType)(LPCTSTR,DWORD,VOID*);
  153.19 -
  153.20 -static AddFontResourceExType procAddFontResourceEx = NULL;
  153.21 -static RemoveFontResourceExType procRemoveFontResourceEx = NULL;
  153.22 -
  153.23 -static int winVer = -1;
  153.24 -
  153.25 -static int getWinVer() {
  153.26 -    if (winVer == -1) {
  153.27 -        OSVERSIONINFO osvi;
  153.28 -        osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
  153.29 -        GetVersionEx(&osvi);
  153.30 -        winVer = osvi.dwMajorVersion;
  153.31 -        if (winVer >= 5) {
  153.32 -          // REMIND verify on 64 bit windows
  153.33 -          HMODULE hGDI = LoadLibrary(TEXT("gdi32.dll"));
  153.34 -          if (hGDI != NULL) {
  153.35 -            procAddFontResourceEx =
  153.36 -              (AddFontResourceExType)GetProcAddress(hGDI,"AddFontResourceExW");
  153.37 -            if (procAddFontResourceEx == NULL) {
  153.38 -              winVer = 0;
  153.39 -            }
  153.40 -            procRemoveFontResourceEx =
  153.41 -              (RemoveFontResourceExType)GetProcAddress(hGDI,
  153.42 -                                                      "RemoveFontResourceExW");
  153.43 -            if (procRemoveFontResourceEx == NULL) {
  153.44 -              winVer = 0;
  153.45 -            }
  153.46 -            FreeLibrary(hGDI);
  153.47 -          }
  153.48 -        }
  153.49 -    }
  153.50 -
  153.51 -    return winVer;
  153.52 -}
  153.53 -
  153.54  /*
  153.55   * Class:     sun_awt_Win32GraphicsEnvironment
  153.56   * Method:    registerFontWithPlatform
  153.57 @@ -236,9 +196,10 @@
  153.58                                                                jclass cl,
  153.59                                                                jstring fontName)
  153.60  {
  153.61 -    if (getWinVer() >= 5 && procAddFontResourceEx != NULL) {
  153.62 -      LPTSTR file = (LPTSTR)JNU_GetStringPlatformChars(env, fontName, NULL);
  153.63 -      (*procAddFontResourceEx)(file, FR_PRIVATE, NULL);
  153.64 +    LPTSTR file = (LPTSTR)JNU_GetStringPlatformChars(env, fontName, JNI_FALSE);
  153.65 +    if (file) {
  153.66 +        ::AddFontResourceEx(file, FR_PRIVATE, NULL);
  153.67 +        JNU_ReleaseStringPlatformChars(env, fontName, file);
  153.68      }
  153.69  }
  153.70  
  153.71 @@ -255,9 +216,10 @@
  153.72                                                                jclass cl,
  153.73                                                                jstring fontName)
  153.74  {
  153.75 -    if (getWinVer() >= 5 && procRemoveFontResourceEx != NULL) {
  153.76 -      LPTSTR file = (LPTSTR)JNU_GetStringPlatformChars(env, fontName, NULL);
  153.77 -      (*procRemoveFontResourceEx)(file, FR_PRIVATE, NULL);
  153.78 +    LPTSTR file = (LPTSTR)JNU_GetStringPlatformChars(env, fontName, JNI_FALSE);
  153.79 +    if (file) {
  153.80 +        ::RemoveFontResourceEx(file, FR_PRIVATE, NULL);
  153.81 +        JNU_ReleaseStringPlatformChars(env, fontName, file);
  153.82      }
  153.83  }
  153.84  
   154.1 --- a/src/windows/native/sun/windows/awt_Window.cpp	Tue Feb 17 09:06:16 2009 -0800
   154.2 +++ b/src/windows/native/sun/windows/awt_Window.cpp	Wed Feb 18 10:05:41 2009 -0800
   154.3 @@ -23,7 +23,7 @@
   154.4   * have any questions.
   154.5   */
   154.6  
   154.7 -#include <windowsx.h>
   154.8 +#include "awt.h"
   154.9  
  154.10  #include "awt_Component.h"
  154.11  #include "awt_Container.h"
  154.12 @@ -32,7 +32,6 @@
  154.13  #include "awt_Panel.h"
  154.14  #include "awt_Toolkit.h"
  154.15  #include "awt_Window.h"
  154.16 -#include "awt_dlls.h"
  154.17  #include "awt_Win32GraphicsDevice.h"
  154.18  #include "awt_BitmapUtil.h"
  154.19  #include "awt_IconCursor.h"
  154.20 @@ -42,6 +41,8 @@
  154.21  #include <java_awt_event_ComponentEvent.h>
  154.22  #include "sun_awt_windows_WCanvasPeer.h"
  154.23  
  154.24 +#include <windowsx.h>
  154.25 +
  154.26  #if !defined(__int3264)
  154.27  typedef __int32 LONG_PTR;
  154.28  #endif // __int3264
  154.29 @@ -501,8 +502,7 @@
  154.30      // which might involve tagging java.awt.Window instances with a semantic
  154.31      // property so platforms can animate/decorate/etc accordingly.
  154.32      //
  154.33 -    if ((IS_WIN98 || IS_WIN2000) &&
  154.34 -        JNU_IsInstanceOfByName(env, target, "com/sun/java/swing/plaf/windows/WindowsPopupWindow") > 0)
  154.35 +    if (JNU_IsInstanceOfByName(env, target, "com/sun/java/swing/plaf/windows/WindowsPopupWindow") > 0)
  154.36      {
  154.37          // need this global ref to make the class unloadable (see 6500204)
  154.38          static jclass windowsPopupWindowCls;
  154.39 @@ -535,13 +535,8 @@
  154.40          windowType = env->GetIntField(target, windowTypeFID);
  154.41  
  154.42          if (windowType == windowTYPES[TOOLTIP]) {
  154.43 -            if (IS_WIN2000) {
  154.44 -                SystemParametersInfo(SPI_GETTOOLTIPANIMATION, 0, &animateflag, 0);
  154.45 -                SystemParametersInfo(SPI_GETTOOLTIPFADE, 0, &fadeflag, 0);
  154.46 -            } else {
  154.47 -                // use same setting as menus
  154.48 -                SystemParametersInfo(SPI_GETMENUANIMATION, 0, &animateflag, 0);
  154.49 -            }
  154.50 +            SystemParametersInfo(SPI_GETTOOLTIPANIMATION, 0, &animateflag, 0);
  154.51 +            SystemParametersInfo(SPI_GETTOOLTIPFADE, 0, &fadeflag, 0);
  154.52              if (animateflag) {
  154.53                // AW_BLEND currently produces runtime parameter error
  154.54                // animateStyle = fadeflag? AW_BLEND : AW_SLIDE | AW_VER_POSITIVE;
  154.55 @@ -551,13 +546,10 @@
  154.56                     windowType == windowTYPES[POPUPMENU]) {
  154.57              SystemParametersInfo(SPI_GETMENUANIMATION, 0, &animateflag, 0);
  154.58              if (animateflag) {
  154.59 -
  154.60 -                if (IS_WIN2000) {
  154.61 -                    SystemParametersInfo(SPI_GETMENUFADE, 0, &fadeflag, 0);
  154.62 -                    if (fadeflag) {
  154.63 -                      // AW_BLEND currently produces runtime parameter error
  154.64 -                      //animateStyle = AW_BLEND;
  154.65 -                    }
  154.66 +                SystemParametersInfo(SPI_GETMENUFADE, 0, &fadeflag, 0);
  154.67 +                if (fadeflag) {
  154.68 +                    // AW_BLEND currently produces runtime parameter error
  154.69 +                    //animateStyle = AW_BLEND;
  154.70                  }
  154.71                  if (animateStyle == 0 && !fadeflag) {
  154.72                      animateStyle = AW_SLIDE;
  154.73 @@ -578,38 +570,18 @@
  154.74          }
  154.75  
  154.76          if (animateStyle != 0) {
  154.77 -            load_user_procs();
  154.78 -
  154.79 -            if (fn_animate_window != NULL) {
  154.80 -                BOOL result = (*fn_animate_window)(hWnd, (DWORD)200, animateStyle);
  154.81 -                if (result == 0) {
  154.82 -                    LPTSTR      msgBuffer = NULL;
  154.83 -                    FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
  154.84 -                      FORMAT_MESSAGE_FROM_SYSTEM |
  154.85 -                      FORMAT_MESSAGE_IGNORE_INSERTS,
  154.86 -                      NULL,
  154.87 -                      GetLastError(),
  154.88 -                      MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
  154.89 -                      (LPTSTR)&msgBuffer, // it's an output parameter when allocate buffer is used
  154.90 -                      0,
  154.91 -                      NULL);
  154.92 -
  154.93 -                    if (msgBuffer == NULL) {
  154.94 -                        msgBuffer = TEXT("<Could not get GetLastError() message text>");
  154.95 -                    }
  154.96 -                    _ftprintf(stderr,TEXT("AwtWindow::Show: AnimateWindow: "));
  154.97 -                    _ftprintf(stderr,msgBuffer);
  154.98 -                    LocalFree(msgBuffer);
  154.99 -                } else {
 154.100 -                  // WM_PAINT is not automatically sent when invoking AnimateWindow,
 154.101 -                  // so force an expose event
 154.102 -                    RECT rect;
 154.103 -                    ::GetWindowRect(hWnd,&rect);
 154.104 -                    ::ScreenToClient(hWnd, (LPPOINT)&rect);
 154.105 -                    ::InvalidateRect(hWnd,&rect,TRUE);
 154.106 -                    ::UpdateWindow(hWnd);
 154.107 -                    done = TRUE;
 154.108 -                }
 154.109 +            BOOL result = ::AnimateWindow(hWnd, (DWORD)200, animateStyle);
 154.110 +            if (!result) {
 154.111 +                // TODO: log message
 154.112 +            } else {
 154.113 +                // WM_PAINT is not automatically sent when invoking AnimateWindow,
 154.114 +                // so force an expose event
 154.115 +                RECT rect;
 154.116 +                ::GetWindowRect(hWnd,&rect);
 154.117 +                ::ScreenToClient(hWnd, (LPPOINT)&rect);
 154.118 +                ::InvalidateRect(hWnd, &rect, TRUE);
 154.119 +                ::UpdateWindow(hWnd);
 154.120 +                done = TRUE;
 154.121              }
 154.122          }
 154.123      }
 154.124 @@ -1205,16 +1177,17 @@
 154.125          }
 154.126  
 154.127          /* draw warning text */
 154.128 -        LPWSTR text = TO_WSTRING(warningString);
 154.129 +        LPCWSTR text = JNU_GetStringPlatformChars(env, warningString, NULL);
 154.130          VERIFY(::SetBkColor(hDC, ::GetSysColor(COLOR_BTNFACE)) != CLR_INVALID);
 154.131          VERIFY(::SetTextColor(hDC, ::GetSysColor(COLOR_BTNTEXT)) != CLR_INVALID);
 154.132          VERIFY(::SelectObject(hDC, ::GetStockObject(DEFAULT_GUI_FONT)) != NULL);
 154.133          VERIFY(::SetTextAlign(hDC, TA_LEFT | TA_BOTTOM) != GDI_ERROR);
 154.134 -        VERIFY(::ExtTextOutW(hDC, r.left+2, r.bottom-1,
 154.135 +        VERIFY(::ExtTextOut(hDC, r.left+2, r.bottom-1,
 154.136                               ETO_CLIPPED | ETO_OPAQUE,
 154.137                               &r, text, static_cast<UINT>(wcslen(text)), NULL));
 154.138          VERIFY(::RestoreDC(hDC, iSaveDC));
 154.139          ::ReleaseDC(GetHWnd(), hDC);
 154.140 +        JNU_ReleaseStringPlatformChars(env, warningString, text);
 154.141      }
 154.142  
 154.143      env->DeleteLocalRef(target);
 154.144 @@ -1360,13 +1333,13 @@
 154.145  }
 154.146  
 154.147  int AwtWindow::GetScreenImOn() {
 154.148 -    MHND hmon;
 154.149 +    HMONITOR hmon;
 154.150      int scrnNum;
 154.151  
 154.152 -    hmon = ::MonitorFromWindow(GetHWnd(), MONITOR_DEFAULT_TO_PRIMARY);
 154.153 +    hmon = ::MonitorFromWindow(GetHWnd(), MONITOR_DEFAULTTOPRIMARY);
 154.154      DASSERT(hmon != NULL);
 154.155  
 154.156 -    scrnNum = AwtWin32GraphicsDevice::GetScreenFromMHND(hmon);
 154.157 +    scrnNum = AwtWin32GraphicsDevice::GetScreenFromHMONITOR(hmon);
 154.158      DASSERT(scrnNum > -1);
 154.159  
 154.160      return scrnNum;
 154.161 @@ -1619,10 +1592,10 @@
 154.162      if (::IsWindow(w->GetHWnd()))
 154.163      {
 154.164          int length = env->GetStringLength(title);
 154.165 -        WCHAR *buffer = new WCHAR[length + 1];
 154.166 -        env->GetStringRegion(title, 0, length, buffer);
 154.167 +        TCHAR *buffer = new TCHAR[length + 1];
 154.168 +        env->GetStringRegion(title, 0, length, reinterpret_cast<jchar*>(buffer));
 154.169          buffer[length] = L'\0';
 154.170 -        VERIFY(::SetWindowTextW(w->GetHWnd(), buffer));
 154.171 +        VERIFY(::SetWindowText(w->GetHWnd(), buffer));
 154.172          delete[] buffer;
 154.173      }
 154.174  ret:
 154.175 @@ -1967,13 +1940,11 @@
 154.176  
 154.177      window->m_isFocusableWindow = isFocusableWindow;
 154.178  
 154.179 -    if (IS_WIN2000) {
 154.180 -        if (!window->m_isFocusableWindow) {
 154.181 -            LONG isPopup = window->GetStyle() & WS_POPUP;
 154.182 -            window->SetStyleEx(window->GetStyleEx() | (isPopup ? 0 : WS_EX_APPWINDOW) | AWT_WS_EX_NOACTIVATE);
 154.183 -        } else {
 154.184 -            window->SetStyleEx(window->GetStyleEx() & ~WS_EX_APPWINDOW & ~AWT_WS_EX_NOACTIVATE);
 154.185 -        }
 154.186 +    if (!window->m_isFocusableWindow) {
 154.187 +        LONG isPopup = window->GetStyle() & WS_POPUP;
 154.188 +        window->SetStyleEx(window->GetStyleEx() | (isPopup ? 0 : WS_EX_APPWINDOW) | AWT_WS_EX_NOACTIVATE);
 154.189 +    } else {
 154.190 +        window->SetStyleEx(window->GetStyleEx() & ~WS_EX_APPWINDOW & ~AWT_WS_EX_NOACTIVATE);
 154.191      }
 154.192  
 154.193    ret:
   155.1 --- a/src/windows/native/sun/windows/awt_dlls.cpp	Tue Feb 17 09:06:16 2009 -0800
   155.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   155.3 @@ -1,422 +0,0 @@
   155.4 -/*
   155.5 - * Copyright 1999-2003 Sun Microsystems, Inc.  All Rights Reserved.
   155.6 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   155.7 - *
   155.8 - * This code is free software; you can redistribute it and/or modify it
   155.9 - * under the terms of the GNU General Public License version 2 only, as
  155.10 - * published by the Free Software Foundation.  Sun designates this
  155.11 - * particular file as subject to the "Classpath" exception as provided
  155.12 - * by Sun in the LICENSE file that accompanied this code.
  155.13 - *
  155.14 - * This code is distributed in the hope that it will be useful, but WITHOUT
  155.15 - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  155.16 - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  155.17 - * version 2 for more details (a copy is included in the LICENSE file that
  155.18 - * accompanied this code).
  155.19 - *
  155.20 - * You should have received a copy of the GNU General Public License version
  155.21 - * 2 along with this work; if not, write to the Free Software Foundation,
  155.22 - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  155.23 - *
  155.24 - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  155.25 - * CA 95054 USA or visit www.sun.com if you need additional information or
  155.26 - * have any questions.
  155.27 - */
  155.28 -
  155.29 -#include "awt.h"
  155.30 -#include "awt_dlls.h"
  155.31 -
  155.32 -/*
  155.33 - * To reduce memory footprint we don't statically link to COMDLG32.DLL
  155.34 - * and SHELL32.  Instead we programatically load them only when they are
  155.35 - * needed.
  155.36 - */
  155.37 -
  155.38 -PrintDlgType AwtCommDialog::do_print_dlg;
  155.39 -PageSetupDlgType AwtCommDialog::do_page_setup_dlg;
  155.40 -GetOpenFileNameType AwtCommDialog::get_open_file_name;
  155.41 -GetSaveFileNameType AwtCommDialog::get_save_file_name;
  155.42 -GetExtendedErrorType AwtCommDialog::get_dlg_extended_error;
  155.43 -
  155.44 -/***********************************************************************/
  155.45 -
  155.46 -DWORD
  155.47 -AwtCommDialog::CommDlgExtendedError(VOID) {
  155.48 -    AwtCommDialog::load_comdlg_procs();
  155.49 -    return static_cast<DWORD>(reinterpret_cast<INT_PTR>(
  155.50 -        AwtToolkit::GetInstance().
  155.51 -        InvokeFunction(reinterpret_cast<void *(*)(void)>
  155.52 -            (AwtCommDialog::GetExtendedErrorWrapper))));
  155.53 -}
  155.54 -
  155.55 -BOOL
  155.56 -AwtCommDialog::PrintDlg(LPPRINTDLG data) {
  155.57 -    AwtCommDialog::load_comdlg_procs();
  155.58 -    return static_cast<BOOL>(reinterpret_cast<INT_PTR>(
  155.59 -        AwtToolkit::GetInstance().
  155.60 -        InvokeFunction(reinterpret_cast<void *(*)(void *)>
  155.61 -            (AwtCommDialog::PrintDlgWrapper), data)));
  155.62 -}
  155.63 -
  155.64 -BOOL
  155.65 -AwtCommDialog::PageSetupDlg(LPPAGESETUPDLG data) {
  155.66 -    AwtCommDialog::load_comdlg_procs();
  155.67 -    return static_cast<BOOL>(reinterpret_cast<INT_PTR>(
  155.68 -        AwtToolkit::GetInstance().
  155.69 -        InvokeFunction(reinterpret_cast<void *(*)(void *)>
  155.70 -            (AwtCommDialog::PageSetupDlgWrapper), data)));
  155.71 -}
  155.72 -
  155.73 -/*
  155.74 - * Load the COMDLG32.dll and get pointers to various procedures.
  155.75 - */
  155.76 -
  155.77 -void
  155.78 -AwtCommDialog::load_comdlg_procs()
  155.79 -{
  155.80 -    static int initialized = 0;
  155.81 -    HMODULE lib = NULL;
  155.82 -    if (initialized) {
  155.83 -        return;
  155.84 -    }
  155.85 -    lib = LoadLibrary(TEXT("COMDLG32.DLL"));
  155.86 -    HMODULE libUnicows = UnicowsLoader::GetModuleHandle();
  155.87 -    do_print_dlg = (PrintDlgType)GetProcAddress(IS_WIN95 ? libUnicows : lib, "PrintDlgW");
  155.88 -    do_page_setup_dlg = (PageSetupDlgType)GetProcAddress(IS_WIN95 ? libUnicows : lib, "PageSetupDlgW");
  155.89 -    get_open_file_name = (GetOpenFileNameType)GetProcAddress(IS_WIN95 ? libUnicows : lib, "GetOpenFileNameW");
  155.90 -    get_save_file_name = (GetSaveFileNameType)GetProcAddress(IS_WIN95 ? libUnicows : lib, "GetSaveFileNameW");
  155.91 -    get_dlg_extended_error = (GetExtendedErrorType)GetProcAddress(lib, "CommDlgExtendedError");
  155.92 -    initialized = 1;
  155.93 -}
  155.94 -
  155.95 -/***********************************************************************/
  155.96 -
  155.97 -DragQueryFileType do_drag_query_file;
  155.98 -GetPathFromIDListType get_path_from_idlist;
  155.99 -
 155.100 -/*
 155.101 - * Load the SHELL32.dll and get pointers to various procedures.
 155.102 - */
 155.103 -
 155.104 -void
 155.105 -load_shell_procs()
 155.106 -{
 155.107 -    static int initialized = 0;
 155.108 -    HMODULE lib = NULL;
 155.109 -    if (initialized) {
 155.110 -        return;
 155.111 -    }
 155.112 -
 155.113 -    if (IS_WIN95) {
 155.114 -        lib = UnicowsLoader::GetModuleHandle();
 155.115 -    } else {
 155.116 -        lib = LoadLibrary(TEXT("SHELL32.DLL"));
 155.117 -    }
 155.118 -
 155.119 -    do_drag_query_file = (DragQueryFileType)GetProcAddress(lib, "DragQueryFileW");
 155.120 -    get_path_from_idlist = (GetPathFromIDListType)GetProcAddress(lib,
 155.121 -                "SHGetPathFromIDListW");
 155.122 -    initialized = 1;
 155.123 -}
 155.124 -
 155.125 -/***********************************************************************/
 155.126 -
 155.127 -AnimateWindowType fn_animate_window;
 155.128 -ChangeDisplaySettingsExType fn_change_display_settings_ex;
 155.129 -
 155.130 -/*
 155.131 - * Load the USER32.dll and get pointers to various procedures.
 155.132 - */
 155.133 -
 155.134 -void
 155.135 -load_user_procs()
 155.136 -{
 155.137 -    static int initialized = 0;
 155.138 -    HMODULE lib = NULL;
 155.139 -    if (initialized) {
 155.140 -        return;
 155.141 -    }
 155.142 -    lib = LoadLibrary(TEXT("USER32.DLL"));
 155.143 -    HMODULE libUnicows = UnicowsLoader::GetModuleHandle();
 155.144 -    fn_animate_window = (AnimateWindowType)GetProcAddress(lib, "AnimateWindow");
 155.145 -    fn_change_display_settings_ex = (ChangeDisplaySettingsExType)
 155.146 -        GetProcAddress(IS_WIN95 ? libUnicows : lib, "ChangeDisplaySettingsExW");
 155.147 -    initialized = 1;
 155.148 -}
 155.149 -
 155.150 -/***********************************************************************/
 155.151 -
 155.152 -GetFileVersionInfoSizeType get_file_version_info_size;
 155.153 -GetFileVersionInfoType get_file_version_info;
 155.154 -VerQueryValueType do_ver_query_value;
 155.155 -
 155.156 -/*
 155.157 - * Load the VERSION.dll and get pointers to various procedures.
 155.158 - */
 155.159 -
 155.160 -void
 155.161 -load_version_procs()
 155.162 -{
 155.163 -    static int initialized = 0;
 155.164 -    HMODULE lib = NULL;
 155.165 -    if (initialized) {
 155.166 -        return;
 155.167 -    }
 155.168 -
 155.169 -    if (IS_WIN95) {
 155.170 -        lib = UnicowsLoader::GetModuleHandle();
 155.171 -    } else {
 155.172 -        lib = LoadLibrary(TEXT("VERSION.DLL"));
 155.173 -    }
 155.174 -
 155.175 -    get_file_version_info_size =
 155.176 -        (GetFileVersionInfoSizeType)GetProcAddress(lib, "GetFileVersionInfoSizeW");
 155.177 -    get_file_version_info =
 155.178 -        (GetFileVersionInfoType)GetProcAddress(lib, "GetFileVersionInfoW");
 155.179 -    do_ver_query_value =
 155.180 -        (VerQueryValueType)GetProcAddress(lib, "VerQueryValueW");
 155.181 -    initialized = 1;
 155.182 -}
 155.183 -
 155.184 -/***********************************************************************/
 155.185 -
 155.186 -#define MAX_KNOWN_VERSION 4
 155.187 -
 155.188 -/*
 155.189 - * We are going to use an undocumented procedure RSRC32.DLL.
 155.190 - * The safest will be to use it only for a finite set of known versions.
 155.191 - */
 155.192 -
 155.193 -DWORD known_versions[MAX_KNOWN_VERSION][2] = {
 155.194 -    { 0x00040000, 0x000003B6 },    // WIN95\RETAIL
 155.195 -                                   // WIN95\RETAIL\UPGRADE
 155.196 -                                   // WIN95\OSR2
 155.197 -                                   // WIN95\OSR25
 155.198 -                                   // WIN95\international\RETAIL
 155.199 -                                   // WIN95\international\OSR2
 155.200 -
 155.201 -    { 0x0004000A, 0x00000672 },    // WIN98\international\win98beta3
 155.202 -
 155.203 -    { 0x0004000A, 0x000007CE },    // WIN98\RETAIL
 155.204 -                                   // WIN98\international\RETAIL
 155.205 -                                   // WIN98\SE
 155.206 -
 155.207 -    { 0x0004005A, 0x00000BB8 }     // WIN98ME
 155.208 -};
 155.209 -
 155.210 -GetFreeSystemResourcesType get_free_system_resources = NULL;
 155.211 -
 155.212 -/*
 155.213 - * Load the RSRC32.dll, check that it is a known version
 155.214 - * and get the pointer to the undocumented procedure.
 155.215 - */
 155.216 -
 155.217 -void
 155.218 -load_rsrc32_procs()
 155.219 -{
 155.220 -    static int initialized = 0;
 155.221 -    if (initialized) {
 155.222 -        return;
 155.223 -    }
 155.224 -    if (IS_NT) {
 155.225 -        // 4310028: Only load library on non-NT systems. The load
 155.226 -        // will always fail anyways. However, if a Win 9x OS is
 155.227 -        // also installed on the system, and the user's path
 155.228 -        // includes C:\WINDOWS\SYSTEM, or the equivalent, a really
 155.229 -        // ugly and annoying warning dialog will appear.
 155.230 -        initialized = 1;
 155.231 -        return;
 155.232 -    }
 155.233 -    HMODULE lib = LoadLibrary(TEXT("RSRC32.DLL"));
 155.234 -    if (lib != NULL) {
 155.235 -        TCHAR     szFullPath[_MAX_PATH];
 155.236 -        DWORD     dwVerHnd = 0;
 155.237 -        DWORD     dwVersionInfoSize;
 155.238 -        LPBYTE    lpVersionInfo;
 155.239 -        LPVOID    lpBuffer;
 155.240 -        UINT      uLength = 0;
 155.241 -
 155.242 -        /*
 155.243 -         * We use undocumented procedure exported by RSRC32.DLL, so the
 155.244 -         * safest will be to check the library's version and only attempt
 155.245 -         * to get the procedure address if it's a known version.
 155.246 -         */
 155.247 -        if (::GetModuleFileName(lib, szFullPath, sizeof(szFullPath))) {
 155.248 -            load_version_procs();
 155.249 -            dwVersionInfoSize = (*get_file_version_info_size)(szFullPath, &dwVerHnd);
 155.250 -            if (dwVersionInfoSize) {
 155.251 -                lpVersionInfo = new BYTE[dwVersionInfoSize];
 155.252 -                (*get_file_version_info)(szFullPath, dwVerHnd,
 155.253 -                                         dwVersionInfoSize, lpVersionInfo);
 155.254 -                if ((*do_ver_query_value)(lpVersionInfo, TEXT("\\"), &lpBuffer, &uLength)) {
 155.255 -                    VS_FIXEDFILEINFO *lpvsFixedFileInfo = (VS_FIXEDFILEINFO *)lpBuffer;
 155.256 -                    DWORD dwFileVersionMS = lpvsFixedFileInfo->dwFileVersionMS;
 155.257 -                    DWORD dwFileVersionLS = lpvsFixedFileInfo->dwFileVersionLS;
 155.258 -                    for (int i = 0; i < MAX_KNOWN_VERSION; i++) {
 155.259 -                        if ((known_versions[i][0] == dwFileVersionMS) &&
 155.260 -                            (known_versions[i][1] == dwFileVersionLS)) {
 155.261 -                            get_free_system_resources =
 155.262 -                                (GetFreeSystemResourcesType)
 155.263 -                                ::GetProcAddress(lib, "_MyGetFreeSystemResources32@4");
 155.264 -                            break;
 155.265 -                        }
 155.266 -                    }
 155.267 -                }
 155.268 -                delete[] lpVersionInfo;
 155.269 -            }
 155.270 -        }
 155.271 -    }
 155.272 -    initialized = 1;
 155.273 -}
 155.274 -
 155.275 -void
 155.276 -load_rich_edit_library() {
 155.277 -    static int initialized = 0;
 155.278 -    BOOL isRichEdit32Needed = IS_WIN95 && !IS_WIN98;
 155.279 -
 155.280 -    if (initialized) {
 155.281 -        return;
 155.282 -    }
 155.283 -
 155.284 -    HMODULE lib = NULL;
 155.285 -    if (isRichEdit32Needed) {
 155.286 -        lib = ::LoadLibrary(TEXT("RICHED32.DLL"));
 155.287 -    } else {
 155.288 -        lib = ::LoadLibrary(TEXT("RICHED20.DLL"));
 155.289 -    }
 155.290 -    if (lib == NULL) {
 155.291 -        JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 155.292 -        JNU_ThrowInternalError(env, "Can't load a rich edit DLL");
 155.293 -    } else if (isRichEdit32Needed) {
 155.294 -        // Richedit language checking logic is needed for RICHED32.DLL only.
 155.295 -        LPTSTR    szFullPath = new TCHAR[_MAX_PATH];
 155.296 -        DWORD     dwVerHnd = 0;
 155.297 -        DWORD     dwVersionInfoSize;
 155.298 -        LPVOID    lpVersionInfo;
 155.299 -        UINT      uLength = 0;
 155.300 -        struct LANGANDCODEPAGE {
 155.301 -            WORD wLanguage;
 155.302 -            WORD wCodePage;
 155.303 -        } *lpTranslate;
 155.304 -
 155.305 -        try {
 155.306 -            if (!IS_WIN2000 && ::GetModuleFileName(lib, szFullPath, _MAX_PATH)) {
 155.307 -                load_version_procs();
 155.308 -                dwVersionInfoSize = (*get_file_version_info_size)(szFullPath, &dwVerHnd);
 155.309 -                if (dwVersionInfoSize) {
 155.310 -                    lpVersionInfo = new BYTE[dwVersionInfoSize];
 155.311 -                    try {
 155.312 -                        if ((*get_file_version_info)(szFullPath,
 155.313 -                                                     dwVerHnd,
 155.314 -                                                     dwVersionInfoSize,
 155.315 -                                                     lpVersionInfo)
 155.316 -                            && (*do_ver_query_value)(lpVersionInfo,
 155.317 -                                                     TEXT("\\VarFileInfo\\Translation"),
 155.318 -                                                     (LPVOID*)&lpTranslate,
 155.319 -                                                     &uLength)) {
 155.320 -
 155.321 -                            if (::GetSystemMetrics(SM_DBCSENABLED)
 155.322 -                                && LANGIDFROMLCID(::GetThreadLocale()) != lpTranslate[0].wLanguage) {
 155.323 -
 155.324 -                                JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
 155.325 -                                if (env->PushLocalFrame(6) >= 0) {
 155.326 -                                    jstring keystr = env->NewStringUTF("AWT.InconsistentDLLsWarning");
 155.327 -                                    jstring defstr = env->NewStringUTF(
 155.328 -"Text based operations may not work correctly due to \
 155.329 -an inconsistent set of dynamic linking libraries (DLLs) installed on your \
 155.330 -system. For more information on this problem and a suggested workaround \
 155.331 -please see the Java(TM) 2 SDK, Standard Edition Release Notes \
 155.332 -on java.sun.com.");
 155.333 -
 155.334 -                                    jstring retstr =
 155.335 -                                        (jstring) JNU_CallStaticMethodByName(
 155.336 -                                            env,
 155.337 -                                            NULL,
 155.338 -                                            "java/awt/Toolkit",
 155.339 -                                            "getProperty",
 155.340 -                                            "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;",
 155.341 -                                            keystr,
 155.342 -                                            defstr).l;
 155.343 -
 155.344 -                                    jboolean exception;
 155.345 -                                    jstring pkgstr = env->NewStringUTF("java.awt");
 155.346 -                                    jobject logger =
 155.347 -                                        (jobject) JNU_CallStaticMethodByName(
 155.348 -                                            env,
 155.349 -                                            &exception,
 155.350 -                                            "java/util/logging/Logger",
 155.351 -                                            "getLogger",
 155.352 -                                            "(Ljava/lang/String;)Ljava/util/logging/Logger;",
 155.353 -                                            pkgstr).l;
 155.354 -
 155.355 -                                    jstring msgstr = (retstr) ? retstr : defstr;
 155.356 -                                    if (!exception) {
 155.357 -                                        JNU_CallMethodByName(
 155.358 -                                            env,
 155.359 -                                            NULL,
 155.360 -                                            logger,
 155.361 -                                            "warning",
 155.362 -                                            "(Ljava/lang/String;)V",
 155.363 -                                            msgstr);
 155.364 -                                    } else {
 155.365 -                                        LPCTSTR outstr = JNU_GetStringPlatformChars(env, msgstr, NULL);
 155.366 -                                        _ftprintf(stdout, TEXT("\nWARNING: %s\n"), outstr);
 155.367 -                                        fflush(stdout);
 155.368 -                                        JNU_ReleaseStringPlatformChars(env, msgstr, outstr);
 155.369 -                                    }
 155.370 -
 155.371 -                                    env->PopLocalFrame(NULL);
 155.372 -                                }
 155.373 -                            }
 155.374 -                        }
 155.375 -                    } catch (...) {
 155.376 -                        delete[] lpVersionInfo;
 155.377 -                        throw;
 155.378 -                    }
 155.379 -                    delete[] lpVersionInfo;
 155.380 -                }
 155.381 -            }
 155.382 -        } catch (...) {
 155.383 -            delete[] szFullPath;
 155.384 -            throw;
 155.385 -        }
 155.386 -        delete[] szFullPath;
 155.387 -    }
 155.388 -    initialized = 1;
 155.389 -}
 155.390 -
 155.391 -/***********************************************************************/
 155.392 -
 155.393 -bool AwtWinMM::initialized = false;
 155.394 -AwtWinMM::PlaySoundWFunc* AwtWinMM::playSoundFunc = NULL;
 155.395 -
 155.396 -BOOL AwtWinMM::PlaySoundWrapper(LPCTSTR pszSound, HMODULE hmod, DWORD fdwSound) {
 155.397 -    load_winmm_procs();
 155.398 -    if (playSoundFunc == NULL) {
 155.399 -        return FALSE;
 155.400 -    }
 155.401 -    return (*playSoundFunc)(pszSound, hmod, fdwSound);
 155.402 -}
 155.403 -
 155.404 -void AwtWinMM::load_winmm_procs() {
 155.405 -    if (initialized) {
 155.406 -        return;
 155.407 -    }
 155.408 -    HMODULE dll = NULL;
 155.409 -
 155.410 -    if (IS_WIN95) {
 155.411 -        dll = UnicowsLoader::GetModuleHandle();
 155.412 -    } else {
 155.413 -        dll = ::LoadLibrary(TEXT("winmm.dll"));
 155.414 -    }
 155.415 -
 155.416 -    if (dll == NULL) {
 155.417 -        return;
 155.418 -    }
 155.419 -    playSoundFunc =
 155.420 -        (PlaySoundWFunc*) GetProcAddress(dll, "PlaySoundW");
 155.421 -    if (playSoundFunc == NULL) {
 155.422 -        return;
 155.423 -    }
 155.424 -    initialized = true;
 155.425 -}
   156.1 --- a/src/windows/native/sun/windows/awt_dlls.h	Tue Feb 17 09:06:16 2009 -0800
   156.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   156.3 @@ -1,173 +0,0 @@
   156.4 -/*
   156.5 - * Copyright 1999-2003 Sun Microsystems, Inc.  All Rights Reserved.
   156.6 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   156.7 - *
   156.8 - * This code is free software; you can redistribute it and/or modify it
   156.9 - * under the terms of the GNU General Public License version 2 only, as
  156.10 - * published by the Free Software Foundation.  Sun designates this
  156.11 - * particular file as subject to the "Classpath" exception as provided
  156.12 - * by Sun in the LICENSE file that accompanied this code.
  156.13 - *
  156.14 - * This code is distributed in the hope that it will be useful, but WITHOUT
  156.15 - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  156.16 - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  156.17 - * version 2 for more details (a copy is included in the LICENSE file that
  156.18 - * accompanied this code).
  156.19 - *
  156.20 - * You should have received a copy of the GNU General Public License version
  156.21 - * 2 along with this work; if not, write to the Free Software Foundation,
  156.22 - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  156.23 - *
  156.24 - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  156.25 - * CA 95054 USA or visit www.sun.com if you need additional information or
  156.26 - * have any questions.
  156.27 - */
  156.28 -
  156.29 -#ifndef AWT_DLLS_H
  156.30 -#define AWT_DLLS_H
  156.31 -
  156.32 -#include <commdlg.h>
  156.33 -#include <shellapi.h>
  156.34 -#include <shlobj.h>
  156.35 -#include "awt_FileDialog.h"
  156.36 -#include "awt_PrintDialog.h"
  156.37 -
  156.38 -/*
  156.39 - * To reduce memory footprint we don't statically link to COMDLG32.DLL
  156.40 - * and SHELL32.  Instead we programatically load them only when they are
  156.41 - * needed.
  156.42 - */
  156.43 -
  156.44 -//---------------------------------------------------------------------------
  156.45 -
  156.46 -typedef BOOL (APIENTRY *PrintDlgType)(LPPRINTDLGW);
  156.47 -typedef BOOL (APIENTRY *PageSetupDlgType)(LPPAGESETUPDLGW);
  156.48 -typedef BOOL (APIENTRY *GetOpenFileNameType)(LPOPENFILENAMEW);
  156.49 -typedef BOOL (APIENTRY *GetSaveFileNameType)(LPOPENFILENAMEW);
  156.50 -typedef DWORD (APIENTRY *GetExtendedErrorType)(VOID);
  156.51 -
  156.52 -class AwtCommDialog {
  156.53 -public:
  156.54 -    static DWORD CommDlgExtendedError(VOID);
  156.55 -
  156.56 -    static BOOL PrintDlg(LPPRINTDLG data);
  156.57 -
  156.58 -    static BOOL PageSetupDlg(LPPAGESETUPDLG data);
  156.59 -
  156.60 -private:
  156.61 -    static void load_comdlg_procs();
  156.62 -
  156.63 -    // Use wrapper functions with default calling convention. If the
  156.64 -    // default isn't __stdcall, accessing the Win32 functions directly
  156.65 -    // will cause stack corruption if we cast away __stdcall.
  156.66 -    static BOOL PrintDlgWrapper(LPPRINTDLG data) {
  156.67 -        return (*do_print_dlg)(data);
  156.68 -    }
  156.69 -    static BOOL PageSetupDlgWrapper(LPPAGESETUPDLG data) {
  156.70 -        return (*do_page_setup_dlg)(data);
  156.71 -    }
  156.72 -    static BOOL GetOpenFileNameWrapper(LPOPENFILENAME data) {
  156.73 -        return (*get_open_file_name)(data);
  156.74 -    }
  156.75 -    static BOOL GetSaveFileNameWrapper(LPOPENFILENAME data) {
  156.76 -        return (*get_save_file_name)(data);
  156.77 -    }
  156.78 -    static DWORD GetExtendedErrorWrapper(VOID) {
  156.79 -        return (*get_dlg_extended_error)();
  156.80 -    }
  156.81 -
  156.82 -    friend BOOL AwtFileDialog::GetOpenFileName(LPAWTOPENFILENAME);
  156.83 -    friend BOOL AwtFileDialog::GetSaveFileName(LPAWTOPENFILENAME);
  156.84 -    friend BOOL AwtPrintDialog::PrintDlg(LPPRINTDLG);
  156.85 -
  156.86 -    static PrintDlgType do_print_dlg;
  156.87 -    static PageSetupDlgType do_page_setup_dlg;
  156.88 -    static GetOpenFileNameType get_open_file_name;
  156.89 -    static GetSaveFileNameType get_save_file_name;
  156.90 -    static GetExtendedErrorType get_dlg_extended_error;
  156.91 -};
  156.92 -
  156.93 -//---------------------------------------------------------------------------
  156.94 -
  156.95 -// Dynamically load in SHELL32.DLL and define the procedure pointers listed below.
  156.96 -extern void load_shell_procs();
  156.97 -
  156.98 -// Procedure pointers obtained from SHELL32.DLL
  156.99 -// You must call load_shell_procs() before using any of these.
 156.100 -typedef UINT (APIENTRY *DragQueryFileType)(HDROP,UINT,LPTSTR,UINT);
 156.101 -typedef BOOL (APIENTRY *GetPathFromIDListType)(LPCITEMIDLIST,LPTSTR);
 156.102 -extern DragQueryFileType do_drag_query_file;
 156.103 -extern GetPathFromIDListType get_path_from_idlist;
 156.104 -
 156.105 -//---------------------------------------------------------------------------
 156.106 -
 156.107 -// Dynamically load in USER32.DLL and define the procedure pointers listed below.
 156.108 -extern void load_user_procs();
 156.109 -
 156.110 -// Procedure pointers obtained from USER32.DLL
 156.111 -// You must call load_user_procs() before using any of these.
 156.112 -typedef BOOL (WINAPI *AnimateWindowType)(HWND,DWORD,DWORD);
 156.113 -typedef LONG (WINAPI *ChangeDisplaySettingsExType)(LPCTSTR,LPDEVMODE,HWND,DWORD,LPVOID lParam);
 156.114 -extern AnimateWindowType fn_animate_window;
 156.115 -extern ChangeDisplaySettingsExType fn_change_display_settings_ex;
 156.116 -
 156.117 -//---------------------------------------------------------------------------
 156.118 -
 156.119 -// Dynamically load in VERSION.DLL and define the procedure pointers listed below.
 156.120 -extern void load_version_procs();
 156.121 -
 156.122 -// Procedure pointers obtained from VERSION.DLL
 156.123 -// You must call load_version_procs() before using any of these.
 156.124 -typedef DWORD (APIENTRY *GetFileVersionInfoSizeType)(LPTSTR,LPDWORD);
 156.125 -typedef BOOL  (APIENTRY *GetFileVersionInfoType)(LPTSTR,DWORD,DWORD,LPVOID);
 156.126 -typedef BOOL  (APIENTRY *VerQueryValueType)(const LPVOID,LPTSTR,LPVOID*,PUINT);
 156.127 -extern GetFileVersionInfoSizeType get_file_version_info_size;
 156.128 -extern GetFileVersionInfoType get_file_version_info;
 156.129 -extern VerQueryValueType do_ver_query_value;
 156.130 -
 156.131 -//---------------------------------------------------------------------------
 156.132 -
 156.133 -// Dynamically load in RSRC32.DLL and define the procedure pointers listed below.
 156.134 -extern void load_rsrc32_procs();
 156.135 -
 156.136 -// Procedure pointers obtained from RSRC32.DLL
 156.137 -// You must call load_rsrc32_procs() before using this procedure.
 156.138 -
 156.139 -/*
 156.140 - * NOTE: even after load_rsrc32_procs() you must check that
 156.141 - * the function pointer is valid before use.
 156.142 - * It will be NULL in three cases:
 156.143 - *  1.RSRC32.DLL not found. This means that Resource Meter
 156.144 - *    isn't installed.
 156.145 - *  2.RSRC32.DLL can't be loaded. This happens on WinNT.
 156.146 - *  3.Unknown version of RSRC32.DLL. This is undocumented
 156.147 - *    procedure, so the safest will be to use it only for
 156.148 - *    a finite set of known versions.
 156.149 - */
 156.150 -typedef UINT (APIENTRY *GetFreeSystemResourcesType)(UINT);
 156.151 -
 156.152 -extern GetFreeSystemResourcesType get_free_system_resources;
 156.153 -
 156.154 -extern void load_rich_edit_library();
 156.155 -
 156.156 -//---------------------------------------------------------------------------
 156.157 -
 156.158 -/*
 156.159 - * Loading WINMM.DLL (the Windows MultiMedia library) is extremely
 156.160 - * expensive. The AWT only uses it to play certain Windows sounds
 156.161 - * (which are off by default) so we dynamically load it upon demand
 156.162 - * instead of statically linking to it.
 156.163 - */
 156.164 -
 156.165 -class AwtWinMM {
 156.166 -public:
 156.167 -    static BOOL PlaySoundWrapper(LPCTSTR pszSound, HMODULE hmod, DWORD fdwSound);
 156.168 -
 156.169 -private:
 156.170 -    static void load_winmm_procs();
 156.171 -    static bool initialized;
 156.172 -    typedef BOOL WINAPI PlaySoundWFunc(LPCTSTR pszSound, HMODULE hmod, DWORD fdwSound);
 156.173 -    static PlaySoundWFunc* playSoundFunc;
 156.174 -};
 156.175 -
 156.176 -#endif /* AWT_DLLS_H */
   157.1 --- a/src/windows/native/sun/windows/awtmsg.h	Tue Feb 17 09:06:16 2009 -0800
   157.2 +++ b/src/windows/native/sun/windows/awtmsg.h	Wed Feb 18 10:05:41 2009 -0800
   157.3 @@ -182,18 +182,6 @@
   157.4  #endif //AW_BLEND
   157.5  
   157.6  
   157.7 -
   157.8 -
   157.9 -// WM_MOUSEWHEEL should be WM_MOUSELAST, but
  157.10 -// is not being defined.  See winuser.h
  157.11 -#ifdef WM_MOUSELAST
  157.12 -#if WM_MOUSELAST <= 0x020A
  157.13 -#define WM_AWT_MOUSELAST                0x020A
  157.14 -#else
  157.15 -#error Unexpected value of WM_MOUSELAST
  157.16 -#endif //WM_MOUSELAST <= 0x0209
  157.17 -#endif //WM_MOUSELAST
  157.18 -
  157.19  // AwtComponent messages
  157.20  enum {
  157.21      // 6427323: unfortunately WM_APP+nnn conflicts with edit control messages
   158.1 --- a/src/windows/native/sun/windows/jawt.cpp	Tue Feb 17 09:06:16 2009 -0800
   158.2 +++ b/src/windows/native/sun/windows/jawt.cpp	Wed Feb 18 10:05:41 2009 -0800
   158.3 @@ -1,5 +1,5 @@
   158.4  /*
   158.5 - * Copyright 1999-2001 Sun Microsystems, Inc.  All Rights Reserved.
   158.6 + * Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
   158.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   158.8   *
   158.9   * This code is free software; you can redistribute it and/or modify it
  158.10 @@ -26,6 +26,7 @@
  158.11  #define _JNI_IMPLEMENTATION_
  158.12  #include <jawt.h>
  158.13  
  158.14 +#include "awt.h"
  158.15  #include "awt_DrawingSurface.h"
  158.16  
  158.17  /*
   159.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   159.2 +++ b/test/java/awt/EventDispatchThread/HandleExceptionOnEDT/HandleExceptionOnEDT.java	Wed Feb 18 10:05:41 2009 -0800
   159.3 @@ -0,0 +1,136 @@
   159.4 +/*
   159.5 +  @test
   159.6 +  @bug 6304473 6727884
   159.7 +  @summary Tests that an exception on EDT is handled with ThreadGroup.uncaughtException()
   159.8 +  @author artem.ananiev: area=awt.eventdispatching
   159.9 +  @library ../../regtesthelpers
  159.10 +  @build Util
  159.11 +  @run main HandleExceptionOnEDT
  159.12 +*/
  159.13 +
  159.14 +import java.awt.*;
  159.15 +import java.awt.event.*;
  159.16 +
  159.17 +import test.java.awt.regtesthelpers.Util;
  159.18 +
  159.19 +public class HandleExceptionOnEDT
  159.20 +{
  159.21 +    private final static String EXCEPTION_MESSAGE = "A1234567890";
  159.22 +
  159.23 +    private static volatile boolean exceptionHandled = false;
  159.24 +    private static volatile boolean mousePressed = false;
  159.25 +
  159.26 +    public static void main(String[] args)
  159.27 +    {
  159.28 +        final Thread.UncaughtExceptionHandler eh = new Thread.UncaughtExceptionHandler()
  159.29 +        {
  159.30 +            @Override
  159.31 +            public void uncaughtException(Thread t, Throwable e)
  159.32 +            {
  159.33 +                if (e.getMessage().equals(EXCEPTION_MESSAGE))
  159.34 +                {
  159.35 +                    exceptionHandled = true;
  159.36 +                }
  159.37 +            }
  159.38 +        };
  159.39 +
  159.40 +        Frame f = new Frame("F");
  159.41 +        f.setBounds(100, 100, 400, 300);
  159.42 +        // set exception handler for EDT
  159.43 +        f.addWindowListener(new WindowAdapter()
  159.44 +        {
  159.45 +            @Override
  159.46 +            public void windowOpened(WindowEvent we)
  159.47 +            {
  159.48 +                Thread edt = Thread.currentThread();
  159.49 +                edt.setUncaughtExceptionHandler(eh);
  159.50 +            }
  159.51 +        });
  159.52 +        f.setVisible(true);
  159.53 +
  159.54 +        Robot r = Util.createRobot();
  159.55 +        Util.waitForIdle(r);
  159.56 +
  159.57 +        // check exception without modal dialog
  159.58 +        MouseListener exceptionListener = new MouseAdapter()
  159.59 +        {
  159.60 +            @Override
  159.61 +            public void mousePressed(MouseEvent me)
  159.62 +            {
  159.63 +                throw new RuntimeException(EXCEPTION_MESSAGE);
  159.64 +            }
  159.65 +        };
  159.66 +        f.addMouseListener(exceptionListener);
  159.67 +
  159.68 +        exceptionHandled = false;
  159.69 +        Point fp = f.getLocationOnScreen();
  159.70 +        r.mouseMove(fp.x + f.getWidth() / 2, fp.y + f.getHeight() / 2);
  159.71 +        Util.waitForIdle(r);
  159.72 +        r.mousePress(InputEvent.BUTTON1_MASK);
  159.73 +        Util.waitForIdle(r);
  159.74 +        r.mouseRelease(InputEvent.BUTTON2_MASK);
  159.75 +        f.removeMouseListener(exceptionListener);
  159.76 +
  159.77 +        if (!exceptionHandled)
  159.78 +        {
  159.79 +            throw new RuntimeException("Test FAILED: exception is not handled for frame");
  159.80 +        }
  159.81 +
  159.82 +        // check exception with modal dialog
  159.83 +        final Dialog d = new Dialog(f, "D", true);
  159.84 +        d.setBounds(fp.x + 100, fp.y + 100, 400, 300);
  159.85 +        d.addMouseListener(exceptionListener);
  159.86 +        EventQueue.invokeLater(new Runnable()
  159.87 +        {
  159.88 +            @Override
  159.89 +            public void run()
  159.90 +            {
  159.91 +                d.setVisible(true);
  159.92 +            }
  159.93 +        });
  159.94 +        Util.waitForIdle(r);
  159.95 +
  159.96 +        exceptionHandled = false;
  159.97 +        Point dp = d.getLocationOnScreen();
  159.98 +        r.mouseMove(dp.x + d.getWidth() / 2, dp.y + d.getHeight() / 2);
  159.99 +        Util.waitForIdle(r);
 159.100 +        r.mousePress(InputEvent.BUTTON1_MASK);
 159.101 +        Util.waitForIdle(r);
 159.102 +        r.mouseRelease(InputEvent.BUTTON2_MASK);
 159.103 +        d.removeMouseListener(exceptionListener);
 159.104 +
 159.105 +        if (!exceptionHandled)
 159.106 +        {
 159.107 +            throw new RuntimeException("Test FAILED: exception is not handled for modal dialog");
 159.108 +        }
 159.109 +
 159.110 +        // check the dialog is still modal
 159.111 +        MouseListener pressedListener = new MouseAdapter()
 159.112 +        {
 159.113 +            @Override
 159.114 +            public void mousePressed(MouseEvent me)
 159.115 +            {
 159.116 +                mousePressed = true;
 159.117 +            }
 159.118 +        };
 159.119 +        f.addMouseListener(pressedListener);
 159.120 +
 159.121 +        mousePressed = false;
 159.122 +        r.mouseMove(fp.x + 50, fp.y + 50);
 159.123 +        Util.waitForIdle(r);
 159.124 +        r.mousePress(InputEvent.BUTTON1_MASK);
 159.125 +        Util.waitForIdle(r);
 159.126 +        r.mouseRelease(InputEvent.BUTTON1_MASK);
 159.127 +        Util.waitForIdle(r);
 159.128 +        f.removeMouseListener(pressedListener);
 159.129 +
 159.130 +        if (mousePressed)
 159.131 +        {
 159.132 +            throw new RuntimeException("Test FAILED: modal dialog is not modal or visible after exception");
 159.133 +        }
 159.134 +
 159.135 +        // test is passed
 159.136 +        d.dispose();
 159.137 +        f.dispose();
 159.138 +    }
 159.139 +}
   160.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   160.2 +++ b/test/java/awt/Frame/FrameSize/TestFrameSize.java	Wed Feb 18 10:05:41 2009 -0800
   160.3 @@ -0,0 +1,67 @@
   160.4 +/*
   160.5 + * Copyright 2009 Red Hat, Inc.  All Rights Reserved.
   160.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   160.7 + *
   160.8 + * This code is free software; you can redistribute it and/or modify it
   160.9 + * under the terms of the GNU General Public License version 2 only, as
  160.10 + * published by the Free Software Foundation.
  160.11 + *
  160.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  160.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  160.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  160.15 + * version 2 for more details (a copy is included in the LICENSE file that
  160.16 + * accompanied this code).
  160.17 + *
  160.18 + * You should have received a copy of the GNU General Public License version
  160.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  160.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  160.21 + */
  160.22 +
  160.23 +/*
  160.24 +  @test
  160.25 +  @bug 6721088
  160.26 +  @summary X11 Window sizes should be what we set them to
  160.27 +  @author Omair Majid <omajid@redhat.com>: area=awt.toplevel
  160.28 +  @run main TestFrameSize
  160.29 + */
  160.30 +
  160.31 +/**
  160.32 + * TestFrameSize.java
  160.33 + *
  160.34 + * Summary: test that X11 Awt windows are drawn with correct sizes
  160.35 + *
  160.36 + * Test fails if size of window is wrong
  160.37 + */
  160.38 +
  160.39 +import java.awt.Dimension;
  160.40 +import java.awt.Frame;
  160.41 +
  160.42 +public class TestFrameSize {
  160.43 +
  160.44 +        static Dimension desiredDimensions = new Dimension(200, 200);
  160.45 +        static int ERROR_MARGIN = 15;
  160.46 +        static Frame mainWindow;
  160.47 +
  160.48 +        public static void drawGui() {
  160.49 +                mainWindow = new Frame("");
  160.50 +                mainWindow.setPreferredSize(desiredDimensions);
  160.51 +                mainWindow.pack();
  160.52 +
  160.53 +                Dimension actualDimensions = mainWindow.getSize();
  160.54 +                System.out.println("Desired dimensions: " + desiredDimensions.toString());
  160.55 +                System.out.println("Actual dimensions:  " + actualDimensions.toString());
  160.56 +                if (Math.abs(actualDimensions.height - desiredDimensions.height) > ERROR_MARGIN) {
  160.57 +                        throw new RuntimeException("Incorrect widow size");
  160.58 +                }
  160.59 +        }
  160.60 +
  160.61 +        public static void main(String[] args) {
  160.62 +                try {
  160.63 +                        drawGui();
  160.64 +                } finally {
  160.65 +                        if (mainWindow != null) {
  160.66 +                                mainWindow.dispose();
  160.67 +                        }
  160.68 +                }
  160.69 +        }
  160.70 +}
   161.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   161.2 +++ b/test/java/awt/Mixing/HWDisappear.java	Wed Feb 18 10:05:41 2009 -0800
   161.3 @@ -0,0 +1,426 @@
   161.4 +/*
   161.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
   161.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   161.7 + *
   161.8 + * This code is free software; you can redistribute it and/or modify it
   161.9 + * under the terms of the GNU General Public License version 2 only, as
  161.10 + * published by the Free Software Foundation.
  161.11 + *
  161.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  161.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  161.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  161.15 + * version 2 for more details (a copy is included in the LICENSE file that
  161.16 + * accompanied this code).
  161.17 + *
  161.18 + * You should have received a copy of the GNU General Public License version
  161.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  161.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  161.21 + *
  161.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  161.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  161.24 + * have any questions.
  161.25 + */
  161.26 +
  161.27 +/*
  161.28 +  @test %W% %E%
  161.29 +  @bug 6769511
  161.30 +  @summary AWT components are invisible for a while after frame is moved & menu items are visible
  161.31 +  @author anthony.petrov@...: area=awt.mixing
  161.32 +  @library ../regtesthelpers
  161.33 +  @build Util
  161.34 +  @run main HWDisappear
  161.35 +*/
  161.36 +
  161.37 +/**
  161.38 + * HWDisappear.java
  161.39 + *
  161.40 + * summary:  AWT components are invisible for a while after frame is moved & menu items are visible
  161.41 + */
  161.42 +
  161.43 +import java.awt.*;
  161.44 +import java.awt.event.*;
  161.45 +import javax.swing.*;
  161.46 +import test.java.awt.regtesthelpers.Util;
  161.47 +
  161.48 +public class HWDisappear
  161.49 +{
  161.50 +
  161.51 +    static volatile boolean clickPassed = false;
  161.52 +
  161.53 +    private static void init()
  161.54 +    {
  161.55 +        //*** Create instructions for the user here ***
  161.56 +
  161.57 +        String[] instructions =
  161.58 +        {
  161.59 +            "This is an AUTOMATIC test, simply wait until it is done.",
  161.60 +            "The result (passed or failed) will be shown in the",
  161.61 +            "message window below."
  161.62 +        };
  161.63 +        Sysout.createDialog( );
  161.64 +        Sysout.printInstructions( instructions );
  161.65 +
  161.66 +
  161.67 +        // Create the frame and the button
  161.68 +        JFrame f = new JFrame();
  161.69 +        f.setBounds(100, 100, 400, 300);
  161.70 +
  161.71 +        JMenuBar menubar = new JMenuBar();
  161.72 +        f.setJMenuBar(menubar);
  161.73 +
  161.74 +        // Create lightweight-enabled menu
  161.75 +        JMenu lmenu = new JMenu("Lite Menu");
  161.76 +        lmenu.add("Salad");
  161.77 +        lmenu.add("Fruit Plate");
  161.78 +        lmenu.add("Water");
  161.79 +        menubar.add(lmenu);
  161.80 +
  161.81 +        Button b = new Button("OK");
  161.82 +
  161.83 +        f.setLayout(null);
  161.84 +        f.add(b);
  161.85 +        b.setBounds(50, 50, 200, 50);
  161.86 +
  161.87 +        b.addActionListener(new java.awt.event.ActionListener() {
  161.88 +            public void actionPerformed(java.awt.event.ActionEvent e) {
  161.89 +                clickPassed = true;
  161.90 +            }
  161.91 +        });
  161.92 +
  161.93 +        f.setVisible(true);
  161.94 +
  161.95 +        Robot robot = Util.createRobot();
  161.96 +        robot.setAutoDelay(20);
  161.97 +
  161.98 +        Util.waitForIdle(robot);
  161.99 +
 161.100 +        // Move quite far to ensure the button is hidden completely
 161.101 +        f.setLocation(500, 200);
 161.102 +
 161.103 +        Util.waitForIdle(robot);
 161.104 +
 161.105 +        // Activate the menu
 161.106 +        Point lLoc = lmenu.getLocationOnScreen();
 161.107 +        robot.mouseMove(lLoc.x + 5, lLoc.y + 5);
 161.108 +
 161.109 +        robot.mousePress(InputEvent.BUTTON1_MASK);
 161.110 +        robot.mouseRelease(InputEvent.BUTTON1_MASK);
 161.111 +        Util.waitForIdle(robot);
 161.112 +
 161.113 +        // Click on the button.
 161.114 +        Point bLoc = b.getLocationOnScreen();
 161.115 +        robot.mouseMove(bLoc.x + b.getWidth() / 2, bLoc.y + 5);
 161.116 +
 161.117 +        robot.mousePress(InputEvent.BUTTON1_MASK);
 161.118 +        robot.mouseRelease(InputEvent.BUTTON1_MASK);
 161.119 +        Util.waitForIdle(robot);
 161.120 +
 161.121 +        if (clickPassed) {
 161.122 +            pass();
 161.123 +        } else {
 161.124 +            fail("The button cannot be clicked.");
 161.125 +        }
 161.126 +    }//End  init()
 161.127 +
 161.128 +
 161.129 +
 161.130 +    /*****************************************************
 161.131 +     * Standard Test Machinery Section
 161.132 +     * DO NOT modify anything in this section -- it's a
 161.133 +     * standard chunk of code which has all of the
 161.134 +     * synchronisation necessary for the test harness.
 161.135 +     * By keeping it the same in all tests, it is easier
 161.136 +     * to read and understand someone else's test, as
 161.137 +     * well as insuring that all tests behave correctly
 161.138 +     * with the test harness.
 161.139 +     * There is a section following this for test-
 161.140 +     * classes
 161.141 +     ******************************************************/
 161.142 +    private static boolean theTestPassed = false;
 161.143 +    private static boolean testGeneratedInterrupt = false;
 161.144 +    private static String failureMessage = "";
 161.145 +
 161.146 +    private static Thread mainThread = null;
 161.147 +
 161.148 +    private static int sleepTime = 300000;
 161.149 +
 161.150 +    // Not sure about what happens if multiple of this test are
 161.151 +    //  instantiated in the same VM.  Being static (and using
 161.152 +    //  static vars), it aint gonna work.  Not worrying about
 161.153 +    //  it for now.
 161.154 +    public static void main( String args[] ) throws InterruptedException
 161.155 +    {
 161.156 +        mainThread = Thread.currentThread();
 161.157 +        try
 161.158 +        {
 161.159 +            init();
 161.160 +        }
 161.161 +        catch( TestPassedException e )
 161.162 +        {
 161.163 +            //The test passed, so just return from main and harness will
 161.164 +            // interepret this return as a pass
 161.165 +            return;
 161.166 +        }
 161.167 +        //At this point, neither test pass nor test fail has been
 161.168 +        // called -- either would have thrown an exception and ended the
 161.169 +        // test, so we know we have multiple threads.
 161.170 +
 161.171 +        //Test involves other threads, so sleep and wait for them to
 161.172 +        // called pass() or fail()
 161.173 +        try
 161.174 +        {
 161.175 +            Thread.sleep( sleepTime );
 161.176 +            //Timed out, so fail the test
 161.177 +            throw new RuntimeException( "Timed out after " + sleepTime/1000 + " seconds" );
 161.178 +        }
 161.179 +        catch (InterruptedException e)
 161.180 +        {
 161.181 +            //The test harness may have interrupted the test.  If so, rethrow the exception
 161.182 +            // so that the harness gets it and deals with it.
 161.183 +            if( ! testGeneratedInterrupt ) throw e;
 161.184 +
 161.185 +            //reset flag in case hit this code more than once for some reason (just safety)
 161.186 +            testGeneratedInterrupt = false;
 161.187 +
 161.188 +            if ( theTestPassed == false )
 161.189 +            {
 161.190 +                throw new RuntimeException( failureMessage );
 161.191 +            }
 161.192 +        }
 161.193 +
 161.194 +    }//main
 161.195 +
 161.196 +    public static synchronized void setTimeoutTo( int seconds )
 161.197 +    {
 161.198 +        sleepTime = seconds * 1000;
 161.199 +    }
 161.200 +
 161.201 +    public static synchronized void pass()
 161.202 +    {
 161.203 +        Sysout.println( "The test passed." );
 161.204 +        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
 161.205 +        //first check if this is executing in main thread
 161.206 +        if ( mainThread == Thread.currentThread() )
 161.207 +        {
 161.208 +            //Still in the main thread, so set the flag just for kicks,
 161.209 +            // and throw a test passed exception which will be caught
 161.210 +            // and end the test.
 161.211 +            theTestPassed = true;
 161.212 +            throw new TestPassedException();
 161.213 +        }
 161.214 +        theTestPassed = true;
 161.215 +        testGeneratedInterrupt = true;
 161.216 +        mainThread.interrupt();
 161.217 +    }//pass()
 161.218 +
 161.219 +    public static synchronized void fail()
 161.220 +    {
 161.221 +        //test writer didn't specify why test failed, so give generic
 161.222 +        fail( "it just plain failed! :-)" );
 161.223 +    }
 161.224 +
 161.225 +    public static synchronized void fail( String whyFailed )
 161.226 +    {
 161.227 +        Sysout.println( "The test failed: " + whyFailed );
 161.228 +        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
 161.229 +        //check if this called from main thread
 161.230 +        if ( mainThread == Thread.currentThread() )
 161.231 +        {
 161.232 +            //If main thread, fail now 'cause not sleeping
 161.233 +            throw new RuntimeException( whyFailed );
 161.234 +        }
 161.235 +        theTestPassed = false;
 161.236 +        testGeneratedInterrupt = true;
 161.237 +        failureMessage = whyFailed;
 161.238 +        mainThread.interrupt();
 161.239 +    }//fail()
 161.240 +
 161.241 +}// class HWDisappear
 161.242 +
 161.243 +//This exception is used to exit from any level of call nesting
 161.244 +// when it's determined that the test has passed, and immediately
 161.245 +// end the test.
 161.246 +class TestPassedException extends RuntimeException
 161.247 +{
 161.248 +}
 161.249 +
 161.250 +//*********** End Standard Test Machinery Section **********
 161.251 +
 161.252 +
 161.253 +//************ Begin classes defined for the test ****************
 161.254 +
 161.255 +// if want to make listeners, here is the recommended place for them, then instantiate
 161.256 +//  them in init()
 161.257 +
 161.258 +/* Example of a class which may be written as part of a test
 161.259 +class NewClass implements anInterface
 161.260 + {
 161.261 +   static int newVar = 0;
 161.262 +
 161.263 +   public void eventDispatched(AWTEvent e)
 161.264 +    {
 161.265 +      //Counting events to see if we get enough
 161.266 +      eventCount++;
 161.267 +
 161.268 +      if( eventCount == 20 )
 161.269 +       {
 161.270 +         //got enough events, so pass
 161.271 +
 161.272 +         HWDisappear.pass();
 161.273 +       }
 161.274 +      else if( tries == 20 )
 161.275 +       {
 161.276 +         //tried too many times without getting enough events so fail
 161.277 +
 161.278 +         HWDisappear.fail();
 161.279 +       }
 161.280 +
 161.281 +    }// eventDispatched()
 161.282 +
 161.283 + }// NewClass class
 161.284 +
 161.285 +*/
 161.286 +
 161.287 +
 161.288 +//************** End classes defined for the test *******************
 161.289 +
 161.290 +
 161.291 +
 161.292 +
 161.293 +/****************************************************
 161.294 + Standard Test Machinery
 161.295 + DO NOT modify anything below -- it's a standard
 161.296 +  chunk of code whose purpose is to make user
 161.297 +  interaction uniform, and thereby make it simpler
 161.298 +  to read and understand someone else's test.
 161.299 + ****************************************************/
 161.300 +
 161.301 +/**
 161.302 + This is part of the standard test machinery.
 161.303 + It creates a dialog (with the instructions), and is the interface
 161.304 +  for sending text messages to the user.
 161.305 + To print the instructions, send an array of strings to Sysout.createDialog
 161.306 +  WithInstructions method.  Put one line of instructions per array entry.
 161.307 + To display a message for the tester to see, simply call Sysout.println
 161.308 +  with the string to be displayed.
 161.309 + This mimics System.out.println but works within the test harness as well
 161.310 +  as standalone.
 161.311 + */
 161.312 +
 161.313 +class Sysout
 161.314 +{
 161.315 +    private static TestDialog dialog;
 161.316 +
 161.317 +    public static void createDialogWithInstructions( String[] instructions )
 161.318 +    {
 161.319 +        dialog = new TestDialog( new Frame(), "Instructions" );
 161.320 +        dialog.printInstructions( instructions );
 161.321 +        dialog.setVisible(true);
 161.322 +        println( "Any messages for the tester will display here." );
 161.323 +    }
 161.324 +
 161.325 +    public static void createDialog( )
 161.326 +    {
 161.327 +        dialog = new TestDialog( new Frame(), "Instructions" );
 161.328 +        String[] defInstr = { "Instructions will appear here. ", "" } ;
 161.329 +        dialog.printInstructions( defInstr );
 161.330 +        dialog.setVisible(true);
 161.331 +        println( "Any messages for the tester will display here." );
 161.332 +    }
 161.333 +
 161.334 +
 161.335 +    public static void printInstructions( String[] instructions )
 161.336 +    {
 161.337 +        dialog.printInstructions( instructions );
 161.338 +    }
 161.339 +
 161.340 +
 161.341 +    public static void println( String messageIn )
 161.342 +    {
 161.343 +        dialog.displayMessage( messageIn );
 161.344 +        System.out.println(messageIn);
 161.345 +    }
 161.346 +
 161.347 +}// Sysout  class
 161.348 +
 161.349 +/**
 161.350 +  This is part of the standard test machinery.  It provides a place for the
 161.351 +   test instructions to be displayed, and a place for interactive messages
 161.352 +   to the user to be displayed.
 161.353 +  To have the test instructions displayed, see Sysout.
 161.354 +  To have a message to the user be displayed, see Sysout.
 161.355 +  Do not call anything in this dialog directly.
 161.356 +  */
 161.357 +class TestDialog extends Dialog
 161.358 +{
 161.359 +
 161.360 +    TextArea instructionsText;
 161.361 +    TextArea messageText;
 161.362 +    int maxStringLength = 80;
 161.363 +
 161.364 +    //DO NOT call this directly, go through Sysout
 161.365 +    public TestDialog( Frame frame, String name )
 161.366 +    {
 161.367 +        super( frame, name );
 161.368 +        int scrollBoth = TextArea.SCROLLBARS_BOTH;
 161.369 +        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
 161.370 +        add( "North", instructionsText );
 161.371 +
 161.372 +        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
 161.373 +        add("Center", messageText);
 161.374 +
 161.375 +        pack();
 161.376 +
 161.377 +        setVisible(true);
 161.378 +    }// TestDialog()
 161.379 +
 161.380 +    //DO NOT call this directly, go through Sysout
 161.381 +    public void printInstructions( String[] instructions )
 161.382 +    {
 161.383 +        //Clear out any current instructions
 161.384 +        instructionsText.setText( "" );
 161.385 +
 161.386 +        //Go down array of instruction strings
 161.387 +
 161.388 +        String printStr, remainingStr;
 161.389 +        for( int i=0; i < instructions.length; i++ )
 161.390 +        {
 161.391 +            //chop up each into pieces maxSringLength long
 161.392 +            remainingStr = instructions[ i ];
 161.393 +            while( remainingStr.length() > 0 )
 161.394 +            {
 161.395 +                //if longer than max then chop off first max chars to print
 161.396 +                if( remainingStr.length() >= maxStringLength )
 161.397 +                {
 161.398 +                    //Try to chop on a word boundary
 161.399 +                    int posOfSpace = remainingStr.
 161.400 +                        lastIndexOf( ' ', maxStringLength - 1 );
 161.401 +
 161.402 +                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
 161.403 +
 161.404 +                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
 161.405 +                    remainingStr = remainingStr.substring( posOfSpace + 1 );
 161.406 +                }
 161.407 +                //else just print
 161.408 +                else
 161.409 +                {
 161.410 +                    printStr = remainingStr;
 161.411 +                    remainingStr = "";
 161.412 +                }
 161.413 +
 161.414 +                instructionsText.append( printStr + "\n" );
 161.415 +
 161.416 +            }// while
 161.417 +
 161.418 +        }// for
 161.419 +
 161.420 +    }//printInstructions()
 161.421 +
 161.422 +    //DO NOT call this directly, go through Sysout
 161.423 +    public void displayMessage( String messageIn )
 161.424 +    {
 161.425 +        messageText.append( messageIn + "\n" );
 161.426 +        System.out.println(messageIn);
 161.427 +    }
 161.428 +
 161.429 +}// TestDialog  class
   162.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   162.2 +++ b/test/java/awt/Mixing/JButtonInGlassPane.java	Wed Feb 18 10:05:41 2009 -0800
   162.3 @@ -0,0 +1,430 @@
   162.4 +/*
   162.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
   162.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   162.7 + *
   162.8 + * This code is free software; you can redistribute it and/or modify it
   162.9 + * under the terms of the GNU General Public License version 2 only, as
  162.10 + * published by the Free Software Foundation.
  162.11 + *
  162.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  162.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  162.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  162.15 + * version 2 for more details (a copy is included in the LICENSE file that
  162.16 + * accompanied this code).
  162.17 + *
  162.18 + * You should have received a copy of the GNU General Public License version
  162.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  162.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  162.21 + *
  162.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  162.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  162.24 + * have any questions.
  162.25 + */
  162.26 +
  162.27 +/*
  162.28 +  @test %W% %E%
  162.29 +  @bug 6779670
  162.30 +  @summary Tests if a LW components in the glass pane affects HW in the content pane
  162.31 +  @author anthony.petrov@...: area=awt.mixing
  162.32 +  @library ../regtesthelpers
  162.33 +  @build Util
  162.34 +  @run main JButtonInGlassPane
  162.35 +*/
  162.36 +
  162.37 +
  162.38 +/**
  162.39 + * JButtonInGlassPane.java
  162.40 + *
  162.41 + * summary:  Tests whether a LW menu correctly overlaps a HW button
  162.42 + */
  162.43 +
  162.44 +import java.awt.*;
  162.45 +import java.awt.event.*;
  162.46 +import javax.swing.*;
  162.47 +import test.java.awt.regtesthelpers.Util;
  162.48 +
  162.49 +
  162.50 +
  162.51 +public class JButtonInGlassPane
  162.52 +{
  162.53 +    static volatile boolean failed = false;
  162.54 +
  162.55 +    private static void init()
  162.56 +    {
  162.57 +        //*** Create instructions for the user here ***
  162.58 +
  162.59 +        String[] instructions =
  162.60 +        {
  162.61 +            "This is an AUTOMATIC test, simply wait until it is done.",
  162.62 +            "The result (passed or failed) will be shown in the",
  162.63 +            "message window below."
  162.64 +        };
  162.65 +        Sysout.createDialog( );
  162.66 +        Sysout.printInstructions( instructions );
  162.67 +
  162.68 +        JFrame frame = new JFrame("Glass Pane children test");
  162.69 +        frame.setLayout(null);
  162.70 +
  162.71 +        final Button button = new Button("AWT Button");
  162.72 +        button.setBounds(100,100,100,100);
  162.73 +        frame.add(button);
  162.74 +
  162.75 +        button.addActionListener(new ActionListener() {
  162.76 +            public void actionPerformed(ActionEvent e) {
  162.77 +                failed = true;
  162.78 +            }
  162.79 +        });
  162.80 +
  162.81 +        frame.getGlassPane().setVisible(true);
  162.82 +        Container glassPane = (Container) frame.getGlassPane();
  162.83 +        glassPane.setLayout(null);
  162.84 +
  162.85 +        final JButton jbutton = new JButton("JButton");
  162.86 +        jbutton.setBounds(50,50,100,100);
  162.87 +        glassPane.add(jbutton);
  162.88 +
  162.89 +        jbutton.setVisible(false);
  162.90 +
  162.91 +        frame.setSize(400, 400);
  162.92 +        frame.setLocationRelativeTo(null);
  162.93 +        frame.setVisible(true);
  162.94 +
  162.95 +        Robot robot = Util.createRobot();
  162.96 +        robot.setAutoDelay(20);
  162.97 +
  162.98 +        Util.waitForIdle(robot);
  162.99 +
 162.100 +        jbutton.setVisible(true);
 162.101 +        Util.waitForIdle(robot);
 162.102 +
 162.103 +        // Click the LW button - in the area that intersects with
 162.104 +        // the HW button.
 162.105 +        Point lLoc = jbutton.getLocationOnScreen();
 162.106 +        robot.mouseMove(lLoc.x + jbutton.getWidth() - 5, lLoc.y + jbutton.getHeight() - 5);
 162.107 +
 162.108 +        robot.mousePress(InputEvent.BUTTON1_MASK);
 162.109 +        robot.mouseRelease(InputEvent.BUTTON1_MASK);
 162.110 +        Util.waitForIdle(robot);
 162.111 +
 162.112 +        jbutton.setBounds(50,50,120,120);
 162.113 +        Util.waitForIdle(robot);
 162.114 +
 162.115 +        // Now click on the 'added' area of the LW button that again
 162.116 +        // intersects with the HW.
 162.117 +        robot.mouseMove(lLoc.x + jbutton.getWidth() - 5, lLoc.y + jbutton.getHeight() - 5);
 162.118 +
 162.119 +        robot.mousePress(InputEvent.BUTTON1_MASK);
 162.120 +        robot.mouseRelease(InputEvent.BUTTON1_MASK);
 162.121 +        Util.waitForIdle(robot);
 162.122 +
 162.123 +        if (failed) {
 162.124 +            JButtonInGlassPane.fail("The LW button did not receive the click.");
 162.125 +        } else {
 162.126 +            JButtonInGlassPane.pass();
 162.127 +        }
 162.128 +    }//End  init()
 162.129 +
 162.130 +
 162.131 +
 162.132 +    /*****************************************************
 162.133 +     * Standard Test Machinery Section
 162.134 +     * DO NOT modify anything in this section -- it's a
 162.135 +     * standard chunk of code which has all of the
 162.136 +     * synchronisation necessary for the test harness.
 162.137 +     * By keeping it the same in all tests, it is easier
 162.138 +     * to read and understand someone else's test, as
 162.139 +     * well as insuring that all tests behave correctly
 162.140 +     * with the test harness.
 162.141 +     * There is a section following this for test-
 162.142 +     * classes
 162.143 +     ******************************************************/
 162.144 +    private static boolean theTestPassed = false;
 162.145 +    private static boolean testGeneratedInterrupt = false;
 162.146 +    private static String failureMessage = "";
 162.147 +
 162.148 +    private static Thread mainThread = null;
 162.149 +
 162.150 +    private static int sleepTime = 300000;
 162.151 +
 162.152 +    // Not sure about what happens if multiple of this test are
 162.153 +    //  instantiated in the same VM.  Being static (and using
 162.154 +    //  static vars), it aint gonna work.  Not worrying about
 162.155 +    //  it for now.
 162.156 +    public static void main( String args[] ) throws InterruptedException
 162.157 +    {
 162.158 +        mainThread = Thread.currentThread();
 162.159 +        try
 162.160 +        {
 162.161 +            init();
 162.162 +        }
 162.163 +        catch( TestPassedException e )
 162.164 +        {
 162.165 +            //The test passed, so just return from main and harness will
 162.166 +            // interepret this return as a pass
 162.167 +            return;
 162.168 +        }
 162.169 +        //At this point, neither test pass nor test fail has been
 162.170 +        // called -- either would have thrown an exception and ended the
 162.171 +        // test, so we know we have multiple threads.
 162.172 +
 162.173 +        //Test involves other threads, so sleep and wait for them to
 162.174 +        // called pass() or fail()
 162.175 +        try
 162.176 +        {
 162.177 +            Thread.sleep( sleepTime );
 162.178 +            //Timed out, so fail the test
 162.179 +            throw new RuntimeException( "Timed out after " + sleepTime/1000 + " seconds" );
 162.180 +        }
 162.181 +        catch (InterruptedException e)
 162.182 +        {
 162.183 +            //The test harness may have interrupted the test.  If so, rethrow the exception
 162.184 +            // so that the harness gets it and deals with it.
 162.185 +            if( ! testGeneratedInterrupt ) throw e;
 162.186 +
 162.187 +            //reset flag in case hit this code more than once for some reason (just safety)
 162.188 +            testGeneratedInterrupt = false;
 162.189 +
 162.190 +            if ( theTestPassed == false )
 162.191 +            {
 162.192 +                throw new RuntimeException( failureMessage );
 162.193 +            }
 162.194 +        }
 162.195 +
 162.196 +    }//main
 162.197 +
 162.198 +    public static synchronized void setTimeoutTo( int seconds )
 162.199 +    {
 162.200 +        sleepTime = seconds * 1000;
 162.201 +    }
 162.202 +
 162.203 +    public static synchronized void pass()
 162.204 +    {
 162.205 +        Sysout.println( "The test passed." );
 162.206 +        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
 162.207 +        //first check if this is executing in main thread
 162.208 +        if ( mainThread == Thread.currentThread() )
 162.209 +        {
 162.210 +            //Still in the main thread, so set the flag just for kicks,
 162.211 +            // and throw a test passed exception which will be caught
 162.212 +            // and end the test.
 162.213 +            theTestPassed = true;
 162.214 +            throw new TestPassedException();
 162.215 +        }
 162.216 +        theTestPassed = true;
 162.217 +        testGeneratedInterrupt = true;
 162.218 +        mainThread.interrupt();
 162.219 +    }//pass()
 162.220 +
 162.221 +    public static synchronized void fail()
 162.222 +    {
 162.223 +        //test writer didn't specify why test failed, so give generic
 162.224 +        fail( "it just plain failed! :-)" );
 162.225 +    }
 162.226 +
 162.227 +    public static synchronized void fail( String whyFailed )
 162.228 +    {
 162.229 +        Sysout.println( "The test failed: " + whyFailed );
 162.230 +        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
 162.231 +        //check if this called from main thread
 162.232 +        if ( mainThread == Thread.currentThread() )
 162.233 +        {
 162.234 +            //If main thread, fail now 'cause not sleeping
 162.235 +            throw new RuntimeException( whyFailed );
 162.236 +        }
 162.237 +        theTestPassed = false;
 162.238 +        testGeneratedInterrupt = true;
 162.239 +        failureMessage = whyFailed;
 162.240 +        mainThread.interrupt();
 162.241 +    }//fail()
 162.242 +
 162.243 +}// class JButtonInGlassPane
 162.244 +
 162.245 +//This exception is used to exit from any level of call nesting
 162.246 +// when it's determined that the test has passed, and immediately
 162.247 +// end the test.
 162.248 +class TestPassedException extends RuntimeException
 162.249 +{
 162.250 +}
 162.251 +
 162.252 +//*********** End Standard Test Machinery Section **********
 162.253 +
 162.254 +
 162.255 +//************ Begin classes defined for the test ****************
 162.256 +
 162.257 +// if want to make listeners, here is the recommended place for them, then instantiate
 162.258 +//  them in init()
 162.259 +
 162.260 +/* Example of a class which may be written as part of a test
 162.261 +class NewClass implements anInterface
 162.262 + {
 162.263 +   static int newVar = 0;
 162.264 +
 162.265 +   public void eventDispatched(AWTEvent e)
 162.266 +    {
 162.267 +      //Counting events to see if we get enough
 162.268 +      eventCount++;
 162.269 +
 162.270 +      if( eventCount == 20 )
 162.271 +       {
 162.272 +         //got enough events, so pass
 162.273 +
 162.274 +         JButtonInGlassPane.pass();
 162.275 +       }
 162.276 +      else if( tries == 20 )
 162.277 +       {
 162.278 +         //tried too many times without getting enough events so fail
 162.279 +
 162.280 +         JButtonInGlassPane.fail();
 162.281 +       }
 162.282 +
 162.283 +    }// eventDispatched()
 162.284 +
 162.285 + }// NewClass class
 162.286 +
 162.287 +*/
 162.288 +
 162.289 +
 162.290 +//************** End classes defined for the test *******************
 162.291 +
 162.292 +
 162.293 +
 162.294 +
 162.295 +/****************************************************
 162.296 + Standard Test Machinery
 162.297 + DO NOT modify anything below -- it's a standard
 162.298 +  chunk of code whose purpose is to make user
 162.299 +  interaction uniform, and thereby make it simpler
 162.300 +  to read and understand someone else's test.
 162.301 + ****************************************************/
 162.302 +
 162.303 +/**
 162.304 + This is part of the standard test machinery.
 162.305 + It creates a dialog (with the instructions), and is the interface
 162.306 +  for sending text messages to the user.
 162.307 + To print the instructions, send an array of strings to Sysout.createDialog
 162.308 +  WithInstructions method.  Put one line of instructions per array entry.
 162.309 + To display a message for the tester to see, simply call Sysout.println
 162.310 +  with the string to be displayed.
 162.311 + This mimics System.out.println but works within the test harness as well
 162.312 +  as standalone.
 162.313 + */
 162.314 +
 162.315 +class Sysout
 162.316 +{
 162.317 +    private static TestDialog dialog;
 162.318 +
 162.319 +    public static void createDialogWithInstructions( String[] instructions )
 162.320 +    {
 162.321 +        dialog = new TestDialog( new Frame(), "Instructions" );
 162.322 +        dialog.printInstructions( instructions );
 162.323 +        dialog.setVisible(true);
 162.324 +        println( "Any messages for the tester will display here." );
 162.325 +    }
 162.326 +
 162.327 +    public static void createDialog( )
 162.328 +    {
 162.329 +        dialog = new TestDialog( new Frame(), "Instructions" );
 162.330 +        String[] defInstr = { "Instructions will appear here. ", "" } ;
 162.331 +        dialog.printInstructions( defInstr );
 162.332 +        dialog.setVisible(true);
 162.333 +        println( "Any messages for the tester will display here." );
 162.334 +    }
 162.335 +
 162.336 +
 162.337 +    public static void printInstructions( String[] instructions )
 162.338 +    {
 162.339 +        dialog.printInstructions( instructions );
 162.340 +    }
 162.341 +
 162.342 +
 162.343 +    public static void println( String messageIn )
 162.344 +    {
 162.345 +        dialog.displayMessage( messageIn );
 162.346 +        System.out.println(messageIn);
 162.347 +    }
 162.348 +
 162.349 +}// Sysout  class
 162.350 +
 162.351 +/**
 162.352 +  This is part of the standard test machinery.  It provides a place for the
 162.353 +   test instructions to be displayed, and a place for interactive messages
 162.354 +   to the user to be displayed.
 162.355 +  To have the test instructions displayed, see Sysout.
 162.356 +  To have a message to the user be displayed, see Sysout.
 162.357 +  Do not call anything in this dialog directly.
 162.358 +  */
 162.359 +class TestDialog extends Dialog
 162.360 +{
 162.361 +
 162.362 +    TextArea instructionsText;
 162.363 +    TextArea messageText;
 162.364 +    int maxStringLength = 80;
 162.365 +
 162.366 +    //DO NOT call this directly, go through Sysout
 162.367 +    public TestDialog( Frame frame, String name )
 162.368 +    {
 162.369 +        super( frame, name );
 162.370 +        int scrollBoth = TextArea.SCROLLBARS_BOTH;
 162.371 +        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
 162.372 +        add( "North", instructionsText );
 162.373 +
 162.374 +        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
 162.375 +        add("Center", messageText);
 162.376 +
 162.377 +        pack();
 162.378 +
 162.379 +        setVisible(true);
 162.380 +    }// TestDialog()
 162.381 +
 162.382 +    //DO NOT call this directly, go through Sysout
 162.383 +    public void printInstructions( String[] instructions )
 162.384 +    {
 162.385 +        //Clear out any current instructions
 162.386 +        instructionsText.setText( "" );
 162.387 +
 162.388 +        //Go down array of instruction strings
 162.389 +
 162.390 +        String printStr, remainingStr;
 162.391 +        for( int i=0; i < instructions.length; i++ )
 162.392 +        {
 162.393 +            //chop up each into pieces maxSringLength long
 162.394 +            remainingStr = instructions[ i ];
 162.395 +            while( remainingStr.length() > 0 )
 162.396 +            {
 162.397 +                //if longer than max then chop off first max chars to print
 162.398 +                if( remainingStr.length() >= maxStringLength )
 162.399 +                {
 162.400 +                    //Try to chop on a word boundary
 162.401 +                    int posOfSpace = remainingStr.
 162.402 +                        lastIndexOf( ' ', maxStringLength - 1 );
 162.403 +
 162.404 +                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
 162.405 +
 162.406 +                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
 162.407 +                    remainingStr = remainingStr.substring( posOfSpace + 1 );
 162.408 +                }
 162.409 +                //else just print
 162.410 +                else
 162.411 +                {
 162.412 +                    printStr = remainingStr;
 162.413 +                    remainingStr = "";
 162.414 +                }
 162.415 +
 162.416 +                instructionsText.append( printStr + "\n" );
 162.417 +
 162.418 +            }// while
 162.419 +
 162.420 +        }// for
 162.421 +
 162.422 +    }//printInstructions()
 162.423 +
 162.424 +    //DO NOT call this directly, go through Sysout
 162.425 +    public void displayMessage( String messageIn )
 162.426 +    {
 162.427 +        messageText.append( messageIn + "\n" );
 162.428 +        System.out.println(messageIn);
 162.429 +    }
 162.430 +
 162.431 +}// TestDialog  class
 162.432 +
 162.433 +
   163.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   163.2 +++ b/test/java/awt/Mixing/LWComboBox.java	Wed Feb 18 10:05:41 2009 -0800
   163.3 @@ -0,0 +1,425 @@
   163.4 +/*
   163.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
   163.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   163.7 + *
   163.8 + * This code is free software; you can redistribute it and/or modify it
   163.9 + * under the terms of the GNU General Public License version 2 only, as
  163.10 + * published by the Free Software Foundation.
  163.11 + *
  163.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  163.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  163.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  163.15 + * version 2 for more details (a copy is included in the LICENSE file that
  163.16 + * accompanied this code).
  163.17 + *
  163.18 + * You should have received a copy of the GNU General Public License version
  163.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  163.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  163.21 + *
  163.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  163.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  163.24 + * have any questions.
  163.25 + */
  163.26 +
  163.27 +/*
  163.28 +  @test %W% %E%
  163.29 +  @bug 6637655
  163.30 +  @summary Tests whether a LW combobox correctly overlaps a HW button
  163.31 +  @author anthony.petrov@...: area=awt.mixing
  163.32 +  @library ../regtesthelpers
  163.33 +  @build Util
  163.34 +  @run main LWComboBox
  163.35 +*/
  163.36 +
  163.37 +
  163.38 +/**
  163.39 + * LWComboBox.java
  163.40 + *
  163.41 + * summary:  Tests whether a LW combobox correctly overlaps a HW button
  163.42 + */
  163.43 +
  163.44 +import java.awt.*;
  163.45 +import java.awt.event.*;
  163.46 +import javax.swing.*;
  163.47 +import java.util.Vector;
  163.48 +import test.java.awt.regtesthelpers.Util;
  163.49 +
  163.50 +
  163.51 +
  163.52 +public class LWComboBox
  163.53 +{
  163.54 +    static volatile boolean failed = false;
  163.55 +
  163.56 +    private static void init()
  163.57 +    {
  163.58 +        //*** Create instructions for the user here ***
  163.59 +
  163.60 +        String[] instructions =
  163.61 +        {
  163.62 +            "This is an AUTOMATIC test, simply wait until it is done.",
  163.63 +            "The result (passed or failed) will be shown in the",
  163.64 +            "message window below."
  163.65 +        };
  163.66 +        Sysout.createDialog( );
  163.67 +        Sysout.printInstructions( instructions );
  163.68 +
  163.69 +        JFrame f = new JFrame("LW menu test");
  163.70 +
  163.71 +        JComboBox ch;
  163.72 +        Button b;
  163.73 +
  163.74 +        Vector v = new Vector();
  163.75 +        for(int i = 1 ; i <=20;i++){
  163.76 +            v.add("Item # "+i);
  163.77 +        }
  163.78 +        ch = new JComboBox(v);
  163.79 +
  163.80 +
  163.81 +        b = new Button("AWT Button");
  163.82 +        b.addActionListener(new ActionListener() {
  163.83 +            public void actionPerformed(ActionEvent e) {
  163.84 +                failed = true;
  163.85 +            }
  163.86 +        });
  163.87 +
  163.88 +        f.add(ch,BorderLayout.NORTH);
  163.89 +        f.add(b,BorderLayout.CENTER);
  163.90 +        f.setSize(300,300);
  163.91 +        f.setVisible(true);
  163.92 +
  163.93 +        Robot robot = Util.createRobot();
  163.94 +        robot.setAutoDelay(20);
  163.95 +
  163.96 +        Util.waitForIdle(robot);
  163.97 +
  163.98 +        // Pop up the combobox
  163.99 +        Point lLoc = ch.getLocationOnScreen();
 163.100 +        System.err.println("lLoc: " + lLoc);
 163.101 +        robot.mouseMove(lLoc.x + 5, lLoc.y + 5);
 163.102 +
 163.103 +        robot.mousePress(InputEvent.BUTTON1_MASK);
 163.104 +        robot.mouseRelease(InputEvent.BUTTON1_MASK);
 163.105 +        Util.waitForIdle(robot);
 163.106 +
 163.107 +        // Click on the combo popup.
 163.108 +        //    It's assumed that the popup item is located
 163.109 +        //    above the heavyweight button.
 163.110 +        Point bLoc = b.getLocationOnScreen();
 163.111 +        System.err.println("bLoc: " + bLoc);
 163.112 +        robot.mouseMove(bLoc.x + 10, bLoc.y + 10);
 163.113 +
 163.114 +        robot.mousePress(InputEvent.BUTTON1_MASK);
 163.115 +        robot.mouseRelease(InputEvent.BUTTON1_MASK);
 163.116 +        Util.waitForIdle(robot);
 163.117 +
 163.118 +        if (failed) {
 163.119 +            fail("The LW popup did not received the click.");
 163.120 +        } else {
 163.121 +            pass();
 163.122 +        }
 163.123 +    }//End  init()
 163.124 +
 163.125 +
 163.126 +
 163.127 +    /*****************************************************
 163.128 +     * Standard Test Machinery Section
 163.129 +     * DO NOT modify anything in this section -- it's a
 163.130 +     * standard chunk of code which has all of the
 163.131 +     * synchronisation necessary for the test harness.
 163.132 +     * By keeping it the same in all tests, it is easier
 163.133 +     * to read and understand someone else's test, as
 163.134 +     * well as insuring that all tests behave correctly
 163.135 +     * with the test harness.
 163.136 +     * There is a section following this for test-
 163.137 +     * classes
 163.138 +     ******************************************************/
 163.139 +    private static boolean theTestPassed = false;
 163.140 +    private static boolean testGeneratedInterrupt = false;
 163.141 +    private static String failureMessage = "";
 163.142 +
 163.143 +    private static Thread mainThread = null;
 163.144 +
 163.145 +    private static int sleepTime = 300000;
 163.146 +
 163.147 +    // Not sure about what happens if multiple of this test are
 163.148 +    //  instantiated in the same VM.  Being static (and using
 163.149 +    //  static vars), it aint gonna work.  Not worrying about
 163.150 +    //  it for now.
 163.151 +    public static void main( String args[] ) throws InterruptedException
 163.152 +    {
 163.153 +        mainThread = Thread.currentThread();
 163.154 +        try
 163.155 +        {
 163.156 +            init();
 163.157 +        }
 163.158 +        catch( TestPassedException e )
 163.159 +        {
 163.160 +            //The test passed, so just return from main and harness will
 163.161 +            // interepret this return as a pass
 163.162 +            return;
 163.163 +        }
 163.164 +        //At this point, neither test pass nor test fail has been
 163.165 +        // called -- either would have thrown an exception and ended the
 163.166 +        // test, so we know we have multiple threads.
 163.167 +
 163.168 +        //Test involves other threads, so sleep and wait for them to
 163.169 +        // called pass() or fail()
 163.170 +        try
 163.171 +        {
 163.172 +            Thread.sleep( sleepTime );
 163.173 +            //Timed out, so fail the test
 163.174 +            throw new RuntimeException( "Timed out after " + sleepTime/1000 + " seconds" );
 163.175 +        }
 163.176 +        catch (InterruptedException e)
 163.177 +        {
 163.178 +            //The test harness may have interrupted the test.  If so, rethrow the exception
 163.179 +            // so that the harness gets it and deals with it.
 163.180 +            if( ! testGeneratedInterrupt ) throw e;
 163.181 +
 163.182 +            //reset flag in case hit this code more than once for some reason (just safety)
 163.183 +            testGeneratedInterrupt = false;
 163.184 +
 163.185 +            if ( theTestPassed == false )
 163.186 +            {
 163.187 +                throw new RuntimeException( failureMessage );
 163.188 +            }
 163.189 +        }
 163.190 +
 163.191 +    }//main
 163.192 +
 163.193 +    public static synchronized void setTimeoutTo( int seconds )
 163.194 +    {
 163.195 +        sleepTime = seconds * 1000;
 163.196 +    }
 163.197 +
 163.198 +    public static synchronized void pass()
 163.199 +    {
 163.200 +        Sysout.println( "The test passed." );
 163.201 +        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
 163.202 +        //first check if this is executing in main thread
 163.203 +        if ( mainThread == Thread.currentThread() )
 163.204 +        {
 163.205 +            //Still in the main thread, so set the flag just for kicks,
 163.206 +            // and throw a test passed exception which will be caught
 163.207 +            // and end the test.
 163.208 +            theTestPassed = true;
 163.209 +            throw new TestPassedException();
 163.210 +        }
 163.211 +        theTestPassed = true;
 163.212 +        testGeneratedInterrupt = true;
 163.213 +        mainThread.interrupt();
 163.214 +    }//pass()
 163.215 +
 163.216 +    public static synchronized void fail()
 163.217 +    {
 163.218 +        //test writer didn't specify why test failed, so give generic
 163.219 +        fail( "it just plain failed! :-)" );
 163.220 +    }
 163.221 +
 163.222 +    public static synchronized void fail( String whyFailed )
 163.223 +    {
 163.224 +        Sysout.println( "The test failed: " + whyFailed );
 163.225 +        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
 163.226 +        //check if this called from main thread
 163.227 +        if ( mainThread == Thread.currentThread() )
 163.228 +        {
 163.229 +            //If main thread, fail now 'cause not sleeping
 163.230 +            throw new RuntimeException( whyFailed );
 163.231 +        }
 163.232 +        theTestPassed = false;
 163.233 +        testGeneratedInterrupt = true;
 163.234 +        failureMessage = whyFailed;
 163.235 +        mainThread.interrupt();
 163.236 +    }//fail()
 163.237 +
 163.238 +}// class LWComboBox
 163.239 +
 163.240 +//This exception is used to exit from any level of call nesting
 163.241 +// when it's determined that the test has passed, and immediately
 163.242 +// end the test.
 163.243 +class TestPassedException extends RuntimeException
 163.244 +{
 163.245 +}
 163.246 +
 163.247 +//*********** End Standard Test Machinery Section **********
 163.248 +
 163.249 +
 163.250 +//************ Begin classes defined for the test ****************
 163.251 +
 163.252 +// if want to make listeners, here is the recommended place for them, then instantiate
 163.253 +//  them in init()
 163.254 +
 163.255 +/* Example of a class which may be written as part of a test
 163.256 +class NewClass implements anInterface
 163.257 + {
 163.258 +   static int newVar = 0;
 163.259 +
 163.260 +   public void eventDispatched(AWTEvent e)
 163.261 +    {
 163.262 +      //Counting events to see if we get enough
 163.263 +      eventCount++;
 163.264 +
 163.265 +      if( eventCount == 20 )
 163.266 +       {
 163.267 +         //got enough events, so pass
 163.268 +
 163.269 +         LWComboBox.pass();
 163.270 +       }
 163.271 +      else if( tries == 20 )
 163.272 +       {
 163.273 +         //tried too many times without getting enough events so fail
 163.274 +
 163.275 +         LWComboBox.fail();
 163.276 +       }
 163.277 +
 163.278 +    }// eventDispatched()
 163.279 +
 163.280 + }// NewClass class
 163.281 +
 163.282 +*/
 163.283 +
 163.284 +
 163.285 +//************** End classes defined for the test *******************
 163.286 +
 163.287 +
 163.288 +
 163.289 +
 163.290 +/****************************************************
 163.291 + Standard Test Machinery
 163.292 + DO NOT modify anything below -- it's a standard
 163.293 +  chunk of code whose purpose is to make user
 163.294 +  interaction uniform, and thereby make it simpler
 163.295 +  to read and understand someone else's test.
 163.296 + ****************************************************/
 163.297 +
 163.298 +/**
 163.299 + This is part of the standard test machinery.
 163.300 + It creates a dialog (with the instructions), and is the interface
 163.301 +  for sending text messages to the user.
 163.302 + To print the instructions, send an array of strings to Sysout.createDialog
 163.303 +  WithInstructions method.  Put one line of instructions per array entry.
 163.304 + To display a message for the tester to see, simply call Sysout.println
 163.305 +  with the string to be displayed.
 163.306 + This mimics System.out.println but works within the test harness as well
 163.307 +  as standalone.
 163.308 + */
 163.309 +
 163.310 +class Sysout
 163.311 +{
 163.312 +    private static TestDialog dialog;
 163.313 +
 163.314 +    public static void createDialogWithInstructions( String[] instructions )
 163.315 +    {
 163.316 +        dialog = new TestDialog( new Frame(), "Instructions" );
 163.317 +        dialog.printInstructions( instructions );
 163.318 +        dialog.setVisible(true);
 163.319 +        println( "Any messages for the tester will display here." );
 163.320 +    }
 163.321 +
 163.322 +    public static void createDialog( )
 163.323 +    {
 163.324 +        dialog = new TestDialog( new Frame(), "Instructions" );
 163.325 +        String[] defInstr = { "Instructions will appear here. ", "" } ;
 163.326 +        dialog.printInstructions( defInstr );
 163.327 +        dialog.setVisible(true);
 163.328 +        println( "Any messages for the tester will display here." );
 163.329 +    }
 163.330 +
 163.331 +
 163.332 +    public static void printInstructions( String[] instructions )
 163.333 +    {
 163.334 +        dialog.printInstructions( instructions );
 163.335 +    }
 163.336 +
 163.337 +
 163.338 +    public static void println( String messageIn )
 163.339 +    {
 163.340 +        dialog.displayMessage( messageIn );
 163.341 +        System.out.println(messageIn);
 163.342 +    }
 163.343 +
 163.344 +}// Sysout  class
 163.345 +
 163.346 +/**
 163.347 +  This is part of the standard test machinery.  It provides a place for the
 163.348 +   test instructions to be displayed, and a place for interactive messages
 163.349 +   to the user to be displayed.
 163.350 +  To have the test instructions displayed, see Sysout.
 163.351 +  To have a message to the user be displayed, see Sysout.
 163.352 +  Do not call anything in this dialog directly.
 163.353 +  */
 163.354 +class TestDialog extends Dialog
 163.355 +{
 163.356 +
 163.357 +    TextArea instructionsText;
 163.358 +    TextArea messageText;
 163.359 +    int maxStringLength = 80;
 163.360 +
 163.361 +    //DO NOT call this directly, go through Sysout
 163.362 +    public TestDialog( Frame frame, String name )
 163.363 +    {
 163.364 +        super( frame, name );
 163.365 +        int scrollBoth = TextArea.SCROLLBARS_BOTH;
 163.366 +        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
 163.367 +        add( "North", instructionsText );
 163.368 +
 163.369 +        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
 163.370 +        add("Center", messageText);
 163.371 +
 163.372 +        pack();
 163.373 +
 163.374 +        setVisible(true);
 163.375 +    }// TestDialog()
 163.376 +
 163.377 +    //DO NOT call this directly, go through Sysout
 163.378 +    public void printInstructions( String[] instructions )
 163.379 +    {
 163.380 +        //Clear out any current instructions
 163.381 +        instructionsText.setText( "" );
 163.382 +
 163.383 +        //Go down array of instruction strings
 163.384 +
 163.385 +        String printStr, remainingStr;
 163.386 +        for( int i=0; i < instructions.length; i++ )
 163.387 +        {
 163.388 +            //chop up each into pieces maxSringLength long
 163.389 +            remainingStr = instructions[ i ];
 163.390 +            while( remainingStr.length() > 0 )
 163.391 +            {
 163.392 +                //if longer than max then chop off first max chars to print
 163.393 +                if( remainingStr.length() >= maxStringLength )
 163.394 +                {
 163.395 +                    //Try to chop on a word boundary
 163.396 +                    int posOfSpace = remainingStr.
 163.397 +                        lastIndexOf( ' ', maxStringLength - 1 );
 163.398 +
 163.399 +                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
 163.400 +
 163.401 +                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
 163.402 +                    remainingStr = remainingStr.substring( posOfSpace + 1 );
 163.403 +                }
 163.404 +                //else just print
 163.405 +                else
 163.406 +                {
 163.407 +                    printStr = remainingStr;
 163.408 +                    remainingStr = "";
 163.409 +                }
 163.410 +
 163.411 +                instructionsText.append( printStr + "\n" );
 163.412 +
 163.413 +            }// while
 163.414 +
 163.415 +        }// for
 163.416 +
 163.417 +    }//printInstructions()
 163.418 +
 163.419 +    //DO NOT call this directly, go through Sysout
 163.420 +    public void displayMessage( String messageIn )
 163.421 +    {
 163.422 +        messageText.append( messageIn + "\n" );
 163.423 +        System.out.println(messageIn);
 163.424 +    }
 163.425 +
 163.426 +}// TestDialog  class
 163.427 +
 163.428 +
   164.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   164.2 +++ b/test/java/awt/Mixing/MixingOnShrinkingHWButton.java	Wed Feb 18 10:05:41 2009 -0800
   164.3 @@ -0,0 +1,429 @@
   164.4 +/*
   164.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
   164.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   164.7 + *
   164.8 + * This code is free software; you can redistribute it and/or modify it
   164.9 + * under the terms of the GNU General Public License version 2 only, as
  164.10 + * published by the Free Software Foundation.
  164.11 + *
  164.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  164.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  164.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  164.15 + * version 2 for more details (a copy is included in the LICENSE file that
  164.16 + * accompanied this code).
  164.17 + *
  164.18 + * You should have received a copy of the GNU General Public License version
  164.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  164.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  164.21 + *
  164.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  164.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  164.24 + * have any questions.
  164.25 + */
  164.26 +
  164.27 +/*
  164.28 +  @test %W% %E%
  164.29 +  @bug 6777320
  164.30 +  @summary PIT : Canvas is not fully painted on the internal frame & internal frame goes behind the canvas
  164.31 +  @author dmitry.cherepanov@...: area=awt.mixing
  164.32 +  @library ../regtesthelpers
  164.33 +  @build Util
  164.34 +  @run main MixingOnShrinkingHWButton
  164.35 +*/
  164.36 +
  164.37 +
  164.38 +/**
  164.39 + * MixingOnDialog.java
  164.40 + *
  164.41 + * summary:  Tests whether awt.Button and swing.JButton mix correctly
  164.42 + *           when awt.Button's width got shrinked
  164.43 + */
  164.44 +
  164.45 +import java.awt.*;
  164.46 +import java.awt.event.*;
  164.47 +import javax.swing.*;
  164.48 +import test.java.awt.regtesthelpers.Util;
  164.49 +
  164.50 +
  164.51 +
  164.52 +public class MixingOnShrinkingHWButton
  164.53 +{
  164.54 +    static volatile boolean heavyClicked = false;
  164.55 +    static volatile boolean lightClicked = false;
  164.56 +
  164.57 +    private static void init()
  164.58 +    {
  164.59 +        //*** Create instructions for the user here ***
  164.60 +
  164.61 +        String[] instructions =
  164.62 +        {
  164.63 +            "This is an AUTOMATIC test, simply wait until it is done.",
  164.64 +            "The result (passed or failed) will be shown in the",
  164.65 +            "message window below."
  164.66 +        };
  164.67 +        Sysout.createDialog( );
  164.68 +        Sysout.printInstructions( instructions );
  164.69 +
  164.70 +
  164.71 +        // Create components
  164.72 +        final Dialog d = new Dialog((Frame)null, "Button-JButton mix test");
  164.73 +        final Button heavy = new Button("  Heavyweight Button  ");
  164.74 +        final JButton light = new JButton("  LW Button  ");
  164.75 +
  164.76 +        // Actions for the buttons add appropriate number to the test sequence
  164.77 +        heavy.addActionListener(new java.awt.event.ActionListener()
  164.78 +                {
  164.79 +                    public void actionPerformed(java.awt.event.ActionEvent e) {
  164.80 +                        heavyClicked = true;
  164.81 +                    }
  164.82 +                }
  164.83 +                );
  164.84 +
  164.85 +        light.addActionListener(new java.awt.event.ActionListener()
  164.86 +                {
  164.87 +                    public void actionPerformed(java.awt.event.ActionEvent e) {
  164.88 +                        lightClicked = true;
  164.89 +                    }
  164.90 +                }
  164.91 +                );
  164.92 +
  164.93 +        // Shrink the HW button under LW button
  164.94 +        heavy.setBounds(30, 30, 100, 100);
  164.95 +        light.setBounds(40, 30, 100, 100);
  164.96 +
  164.97 +        // Put the components into the frame
  164.98 +        d.setLayout(null);
  164.99 +        d.add(light);
 164.100 +        d.add(heavy);
 164.101 +        d.setBounds(50, 50, 400, 400);
 164.102 +        d.setVisible(true);
 164.103 +
 164.104 +
 164.105 +        Robot robot = Util.createRobot();
 164.106 +        robot.setAutoDelay(20);
 164.107 +
 164.108 +        Util.waitForIdle(robot);
 164.109 +
 164.110 +        // Move the mouse pointer to the position where both
 164.111 +        //    buttons overlap
 164.112 +        Point heavyLoc = heavy.getLocationOnScreen();
 164.113 +        robot.mouseMove(heavyLoc.x + 20, heavyLoc.y + 20);
 164.114 +
 164.115 +        // Now perform the click at this point
 164.116 +        robot.mousePress(InputEvent.BUTTON1_MASK);
 164.117 +        robot.mouseRelease(InputEvent.BUTTON1_MASK);
 164.118 +        Util.waitForIdle(robot);
 164.119 +
 164.120 +        // If the buttons are correctly mixed, the test sequence
 164.121 +        // is equal to the check sequence.
 164.122 +        if (lightClicked == true) {
 164.123 +            MixingOnShrinkingHWButton.pass();
 164.124 +        } else {
 164.125 +            MixingOnShrinkingHWButton.fail("The lightweight component left behind the heavyweight one.");
 164.126 +        }
 164.127 +    }//End  init()
 164.128 +
 164.129 +
 164.130 +
 164.131 +    /*****************************************************
 164.132 +     * Standard Test Machinery Section
 164.133 +     * DO NOT modify anything in this section -- it's a
 164.134 +     * standard chunk of code which has all of the
 164.135 +     * synchronisation necessary for the test harness.
 164.136 +     * By keeping it the same in all tests, it is easier
 164.137 +     * to read and understand someone else's test, as
 164.138 +     * well as insuring that all tests behave correctly
 164.139 +     * with the test harness.
 164.140 +     * There is a section following this for test-
 164.141 +     * classes
 164.142 +     ******************************************************/
 164.143 +    private static boolean theTestPassed = false;
 164.144 +    private static boolean testGeneratedInterrupt = false;
 164.145 +    private static String failureMessage = "";
 164.146 +
 164.147 +    private static Thread mainThread = null;
 164.148 +
 164.149 +    private static int sleepTime = 300000;
 164.150 +
 164.151 +    // Not sure about what happens if multiple of this test are
 164.152 +    //  instantiated in the same VM.  Being static (and using
 164.153 +    //  static vars), it aint gonna work.  Not worrying about
 164.154 +    //  it for now.
 164.155 +    public static void main( String args[] ) throws InterruptedException
 164.156 +    {
 164.157 +        mainThread = Thread.currentThread();
 164.158 +        try
 164.159 +        {
 164.160 +            init();
 164.161 +        }
 164.162 +        catch( TestPassedException e )
 164.163 +        {
 164.164 +            //The test passed, so just return from main and harness will
 164.165 +            // interepret this return as a pass
 164.166 +            return;
 164.167 +        }
 164.168 +        //At this point, neither test pass nor test fail has been
 164.169 +        // called -- either would have thrown an exception and ended the
 164.170 +        // test, so we know we have multiple threads.
 164.171 +
 164.172 +        //Test involves other threads, so sleep and wait for them to
 164.173 +        // called pass() or fail()
 164.174 +        try
 164.175 +        {
 164.176 +            Thread.sleep( sleepTime );
 164.177 +            //Timed out, so fail the test
 164.178 +            throw new RuntimeException( "Timed out after " + sleepTime/1000 + " seconds" );
 164.179 +        }
 164.180 +        catch (InterruptedException e)
 164.181 +        {
 164.182 +            //The test harness may have interrupted the test.  If so, rethrow the exception
 164.183 +            // so that the harness gets it and deals with it.
 164.184 +            if( ! testGeneratedInterrupt ) throw e;
 164.185 +
 164.186 +            //reset flag in case hit this code more than once for some reason (just safety)
 164.187 +            testGeneratedInterrupt = false;
 164.188 +
 164.189 +            if ( theTestPassed == false )
 164.190 +            {
 164.191 +                throw new RuntimeException( failureMessage );
 164.192 +            }
 164.193 +        }
 164.194 +
 164.195 +    }//main
 164.196 +
 164.197 +    public static synchronized void setTimeoutTo( int seconds )
 164.198 +    {
 164.199 +        sleepTime = seconds * 1000;
 164.200 +    }
 164.201 +
 164.202 +    public static synchronized void pass()
 164.203 +    {
 164.204 +        Sysout.println( "The test passed." );
 164.205 +        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
 164.206 +        //first check if this is executing in main thread
 164.207 +        if ( mainThread == Thread.currentThread() )
 164.208 +        {
 164.209 +            //Still in the main thread, so set the flag just for kicks,
 164.210 +            // and throw a test passed exception which will be caught
 164.211 +            // and end the test.
 164.212 +            theTestPassed = true;
 164.213 +            throw new TestPassedException();
 164.214 +        }
 164.215 +        theTestPassed = true;
 164.216 +        testGeneratedInterrupt = true;
 164.217 +        mainThread.interrupt();
 164.218 +    }//pass()
 164.219 +
 164.220 +    public static synchronized void fail()
 164.221 +    {
 164.222 +        //test writer didn't specify why test failed, so give generic
 164.223 +        fail( "it just plain failed! :-)" );
 164.224 +    }
 164.225 +
 164.226 +    public static synchronized void fail( String whyFailed )
 164.227 +    {
 164.228 +        Sysout.println( "The test failed: " + whyFailed );
 164.229 +        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
 164.230 +        //check if this called from main thread
 164.231 +        if ( mainThread == Thread.currentThread() )
 164.232 +        {
 164.233 +            //If main thread, fail now 'cause not sleeping
 164.234 +            throw new RuntimeException( whyFailed );
 164.235 +        }
 164.236 +        theTestPassed = false;
 164.237 +        testGeneratedInterrupt = true;
 164.238 +        failureMessage = whyFailed;
 164.239 +        mainThread.interrupt();
 164.240 +    }//fail()
 164.241 +
 164.242 +}// class MixingOnDialog
 164.243 +
 164.244 +//This exception is used to exit from any level of call nesting
 164.245 +// when it's determined that the test has passed, and immediately
 164.246 +// end the test.
 164.247 +class TestPassedException extends RuntimeException
 164.248 +{
 164.249 +}
 164.250 +
 164.251 +//*********** End Standard Test Machinery Section **********
 164.252 +
 164.253 +
 164.254 +//************ Begin classes defined for the test ****************
 164.255 +
 164.256 +// if want to make listeners, here is the recommended place for them, then instantiate
 164.257 +//  them in init()
 164.258 +
 164.259 +/* Example of a class which may be written as part of a test
 164.260 +class NewClass implements anInterface
 164.261 + {
 164.262 +   static int newVar = 0;
 164.263 +
 164.264 +   public void eventDispatched(AWTEvent e)
 164.265 +    {
 164.266 +      //Counting events to see if we get enough
 164.267 +      eventCount++;
 164.268 +
 164.269 +      if( eventCount == 20 )
 164.270 +       {
 164.271 +         //got enough events, so pass
 164.272 +
 164.273 +         MixingOnDialog.pass();
 164.274 +       }
 164.275 +      else if( tries == 20 )
 164.276 +       {
 164.277 +         //tried too many times without getting enough events so fail
 164.278 +
 164.279 +         MixingOnDialog.fail();
 164.280 +       }
 164.281 +
 164.282 +    }// eventDispatched()
 164.283 +
 164.284 + }// NewClass class
 164.285 +
 164.286 +*/
 164.287 +
 164.288 +
 164.289 +//************** End classes defined for the test *******************
 164.290 +
 164.291 +
 164.292 +
 164.293 +
 164.294 +/****************************************************
 164.295 + Standard Test Machinery
 164.296 + DO NOT modify anything below -- it's a standard
 164.297 +  chunk of code whose purpose is to make user
 164.298 +  interaction uniform, and thereby make it simpler
 164.299 +  to read and understand someone else's test.
 164.300 + ****************************************************/
 164.301 +
 164.302 +/**
 164.303 + This is part of the standard test machinery.
 164.304 + It creates a dialog (with the instructions), and is the interface
 164.305 +  for sending text messages to the user.
 164.306 + To print the instructions, send an array of strings to Sysout.createDialog
 164.307 +  WithInstructions method.  Put one line of instructions per array entry.
 164.308 + To display a message for the tester to see, simply call Sysout.println
 164.309 +  with the string to be displayed.
 164.310 + This mimics System.out.println but works within the test harness as well
 164.311 +  as standalone.
 164.312 + */
 164.313 +
 164.314 +class Sysout
 164.315 +{
 164.316 +    private static TestDialog dialog;
 164.317 +
 164.318 +    public static void createDialogWithInstructions( String[] instructions )
 164.319 +    {
 164.320 +        dialog = new TestDialog( new Frame(), "Instructions" );
 164.321 +        dialog.printInstructions( instructions );
 164.322 +        dialog.setVisible(true);
 164.323 +        println( "Any messages for the tester will display here." );
 164.324 +    }
 164.325 +
 164.326 +    public static void createDialog( )
 164.327 +    {
 164.328 +        dialog = new TestDialog( new Frame(), "Instructions" );
 164.329 +        String[] defInstr = { "Instructions will appear here. ", "" } ;
 164.330 +        dialog.printInstructions( defInstr );
 164.331 +        dialog.setVisible(true);
 164.332 +        println( "Any messages for the tester will display here." );
 164.333 +    }
 164.334 +
 164.335 +
 164.336 +    public static void printInstructions( String[] instructions )
 164.337 +    {
 164.338 +        dialog.printInstructions( instructions );
 164.339 +    }
 164.340 +
 164.341 +
 164.342 +    public static void println( String messageIn )
 164.343 +    {
 164.344 +        dialog.displayMessage( messageIn );
 164.345 +        System.out.println(messageIn);
 164.346 +    }
 164.347 +
 164.348 +}// Sysout  class
 164.349 +
 164.350 +/**
 164.351 +  This is part of the standard test machinery.  It provides a place for the
 164.352 +   test instructions to be displayed, and a place for interactive messages
 164.353 +   to the user to be displayed.
 164.354 +  To have the test instructions displayed, see Sysout.
 164.355 +  To have a message to the user be displayed, see Sysout.
 164.356 +  Do not call anything in this dialog directly.
 164.357 +  */
 164.358 +class TestDialog extends Dialog
 164.359 +{
 164.360 +
 164.361 +    TextArea instructionsText;
 164.362 +    TextArea messageText;
 164.363 +    int maxStringLength = 80;
 164.364 +
 164.365 +    //DO NOT call this directly, go through Sysout
 164.366 +    public TestDialog( Frame frame, String name )
 164.367 +    {
 164.368 +        super( frame, name );
 164.369 +        int scrollBoth = TextArea.SCROLLBARS_BOTH;
 164.370 +        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
 164.371 +        add( "North", instructionsText );
 164.372 +
 164.373 +        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
 164.374 +        add("Center", messageText);
 164.375 +
 164.376 +        pack();
 164.377 +
 164.378 +        setVisible(true);
 164.379 +    }// TestDialog()
 164.380 +
 164.381 +    //DO NOT call this directly, go through Sysout
 164.382 +    public void printInstructions( String[] instructions )
 164.383 +    {
 164.384 +        //Clear out any current instructions
 164.385 +        instructionsText.setText( "" );
 164.386 +
 164.387 +        //Go down array of instruction strings
 164.388 +
 164.389 +        String printStr, remainingStr;
 164.390 +        for( int i=0; i < instructions.length; i++ )
 164.391 +        {
 164.392 +            //chop up each into pieces maxSringLength long
 164.393 +            remainingStr = instructions[ i ];
 164.394 +            while( remainingStr.length() > 0 )
 164.395 +            {
 164.396 +                //if longer than max then chop off first max chars to print
 164.397 +                if( remainingStr.length() >= maxStringLength )
 164.398 +                {
 164.399 +                    //Try to chop on a word boundary
 164.400 +                    int posOfSpace = remainingStr.
 164.401 +                        lastIndexOf( ' ', maxStringLength - 1 );
 164.402 +
 164.403 +                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
 164.404 +
 164.405 +                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
 164.406 +                    remainingStr = remainingStr.substring( posOfSpace + 1 );
 164.407 +                }
 164.408 +                //else just print
 164.409 +                else
 164.410 +                {
 164.411 +                    printStr = remainingStr;
 164.412 +                    remainingStr = "";
 164.413 +                }
 164.414 +
 164.415 +                instructionsText.append( printStr + "\n" );
 164.416 +
 164.417 +            }// while
 164.418 +
 164.419 +        }// for
 164.420 +
 164.421 +    }//printInstructions()
 164.422 +
 164.423 +    //DO NOT call this directly, go through Sysout
 164.424 +    public void displayMessage( String messageIn )
 164.425 +    {
 164.426 +        messageText.append( messageIn + "\n" );
 164.427 +        System.out.println(messageIn);
 164.428 +    }
 164.429 +
 164.430 +}// TestDialog  class
 164.431 +
 164.432 +
   165.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   165.2 +++ b/test/java/awt/Mixing/NonOpaqueInternalFrame.java	Wed Feb 18 10:05:41 2009 -0800
   165.3 @@ -0,0 +1,434 @@
   165.4 +/*
   165.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
   165.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   165.7 + *
   165.8 + * This code is free software; you can redistribute it and/or modify it
   165.9 + * under the terms of the GNU General Public License version 2 only, as
  165.10 + * published by the Free Software Foundation.
  165.11 + *
  165.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  165.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  165.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  165.15 + * version 2 for more details (a copy is included in the LICENSE file that
  165.16 + * accompanied this code).
  165.17 + *
  165.18 + * You should have received a copy of the GNU General Public License version
  165.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  165.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  165.21 + *
  165.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  165.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  165.24 + * have any questions.
  165.25 + */
  165.26 +
  165.27 +/*
  165.28 +  @test %W% %E%
  165.29 +  @bug 6768332
  165.30 +  @summary Tests whether internal frames are always considered opaque
  165.31 +  @author anthony.petrov@...: area=awt.mixing
  165.32 +  @library ../regtesthelpers
  165.33 +  @build Util
  165.34 +  @run main NonOpaqueInternalFrame
  165.35 +*/
  165.36 +
  165.37 +
  165.38 +/**
  165.39 + * NonOpaqueInternalFrame.java
  165.40 + *
  165.41 + * summary:  Tests whether internal frames are always considered opaque
  165.42 + */
  165.43 +
  165.44 +import java.awt.*;
  165.45 +import java.awt.event.*;
  165.46 +import java.beans.PropertyVetoException;
  165.47 +import javax.swing.*;
  165.48 +import java.util.Vector;
  165.49 +import test.java.awt.regtesthelpers.Util;
  165.50 +
  165.51 +
  165.52 +
  165.53 +public class NonOpaqueInternalFrame
  165.54 +{
  165.55 +    static volatile boolean failed = false;
  165.56 +
  165.57 +    private static final class MyButton extends Button
  165.58 +            implements ActionListener
  165.59 +        {
  165.60 +            public MyButton() {
  165.61 +                setPreferredSize(new Dimension(100, 100));
  165.62 +                addActionListener(this);
  165.63 +            }
  165.64 +
  165.65 +            public void actionPerformed(ActionEvent e) {
  165.66 +                failed = true;
  165.67 +            }
  165.68 +        }
  165.69 +
  165.70 +    private static void init()
  165.71 +    {
  165.72 +        String[] instructions =
  165.73 +        {
  165.74 +            "This is an AUTOMATIC test, simply wait until it is done.",
  165.75 +            "The result (passed or failed) will be shown in the",
  165.76 +            "message window below."
  165.77 +        };
  165.78 +        Sysout.createDialog( );
  165.79 +        Sysout.printInstructions( instructions );
  165.80 +
  165.81 +
  165.82 +        // Create a frame with two non-opaque JInternalFrame's containing
  165.83 +        // heavyweight buttons.
  165.84 +        JFrame jframe = new JFrame("mixing test");
  165.85 +        JDesktopPane desktop = new JDesktopPane();
  165.86 +        jframe.setContentPane(desktop);
  165.87 +        JInternalFrame iframe1 = new JInternalFrame("iframe 1");
  165.88 +        iframe1.setIconifiable(true);
  165.89 +        iframe1.add(new MyButton());
  165.90 +        iframe1.setBounds(10, 10, 100, 100);
  165.91 +        iframe1.setOpaque(false);
  165.92 +        iframe1.setVisible(true);
  165.93 +        desktop.add(iframe1);
  165.94 +        JInternalFrame iframe2 = new JInternalFrame("iframe 2");
  165.95 +        iframe2.setIconifiable(true);
  165.96 +        iframe2.add(new MyButton());
  165.97 +        iframe2.setBounds(50, 50, 100, 100);
  165.98 +        iframe2.setOpaque(false);
  165.99 +        iframe2.setVisible(true);
 165.100 +        desktop.add(iframe2);
 165.101 +        jframe.setSize(300, 300);
 165.102 +        jframe.setVisible(true);
 165.103 +
 165.104 +        Robot robot = Util.createRobot();
 165.105 +        robot.setAutoDelay(20);
 165.106 +
 165.107 +        Util.waitForIdle(robot);
 165.108 +
 165.109 +        // Try selecting the bottommost frame
 165.110 +        try {
 165.111 +            iframe2.setSelected(true);
 165.112 +        } catch (PropertyVetoException ex) {
 165.113 +            ex.printStackTrace();
 165.114 +        }
 165.115 +
 165.116 +        // Click the title bar of the internal frame
 165.117 +        Point lLoc = iframe2.getLocationOnScreen();
 165.118 +        System.err.println("lLoc: " + lLoc);
 165.119 +        robot.mouseMove(lLoc.x + 10, lLoc.y + 10);
 165.120 +        Util.waitForIdle(robot);
 165.121 +
 165.122 +        robot.mousePress(InputEvent.BUTTON1_MASK);
 165.123 +        robot.mouseRelease(InputEvent.BUTTON1_MASK);
 165.124 +        Util.waitForIdle(robot);
 165.125 +
 165.126 +
 165.127 +        if (failed) {
 165.128 +            fail("The JInternalFrame is considered non-opaque.");
 165.129 +        } else {
 165.130 +            pass();
 165.131 +        }
 165.132 +    }//End  init()
 165.133 +
 165.134 +
 165.135 +
 165.136 +    /*****************************************************
 165.137 +     * Standard Test Machinery Section
 165.138 +     * DO NOT modify anything in this section -- it's a
 165.139 +     * standard chunk of code which has all of the
 165.140 +     * synchronisation necessary for the test harness.
 165.141 +     * By keeping it the same in all tests, it is easier
 165.142 +     * to read and understand someone else's test, as
 165.143 +     * well as insuring that all tests behave correctly
 165.144 +     * with the test harness.
 165.145 +     * There is a section following this for test-
 165.146 +     * classes
 165.147 +     ******************************************************/
 165.148 +    private static boolean theTestPassed = false;
 165.149 +    private static boolean testGeneratedInterrupt = false;
 165.150 +    private static String failureMessage = "";
 165.151 +
 165.152 +    private static Thread mainThread = null;
 165.153 +
 165.154 +    private static int sleepTime = 300000;
 165.155 +
 165.156 +    // Not sure about what happens if multiple of this test are
 165.157 +    //  instantiated in the same VM.  Being static (and using
 165.158 +    //  static vars), it aint gonna work.  Not worrying about
 165.159 +    //  it for now.
 165.160 +    public static void main( String args[] ) throws InterruptedException
 165.161 +    {
 165.162 +        mainThread = Thread.currentThread();
 165.163 +        try
 165.164 +        {
 165.165 +            init();
 165.166 +        }
 165.167 +        catch( TestPassedException e )
 165.168 +        {
 165.169 +            //The test passed, so just return from main and harness will
 165.170 +            // interepret this return as a pass
 165.171 +            return;
 165.172 +        }
 165.173 +        //At this point, neither test pass nor test fail has been
 165.174 +        // called -- either would have thrown an exception and ended the
 165.175 +        // test, so we know we have multiple threads.
 165.176 +
 165.177 +        //Test involves other threads, so sleep and wait for them to
 165.178 +        // called pass() or fail()
 165.179 +        try
 165.180 +        {
 165.181 +            Thread.sleep( sleepTime );
 165.182 +            //Timed out, so fail the test
 165.183 +            throw new RuntimeException( "Timed out after " + sleepTime/1000 + " seconds" );
 165.184 +        }
 165.185 +        catch (InterruptedException e)
 165.186 +        {
 165.187 +            //The test harness may have interrupted the test.  If so, rethrow the exception
 165.188 +            // so that the harness gets it and deals with it.
 165.189 +            if( ! testGeneratedInterrupt ) throw e;
 165.190 +
 165.191 +            //reset flag in case hit this code more than once for some reason (just safety)
 165.192 +            testGeneratedInterrupt = false;
 165.193 +
 165.194 +            if ( theTestPassed == false )
 165.195 +            {
 165.196 +                throw new RuntimeException( failureMessage );
 165.197 +            }
 165.198 +        }
 165.199 +
 165.200 +    }//main
 165.201 +
 165.202 +    public static synchronized void setTimeoutTo( int seconds )
 165.203 +    {
 165.204 +        sleepTime = seconds * 1000;
 165.205 +    }
 165.206 +
 165.207 +    public static synchronized void pass()
 165.208 +    {
 165.209 +        Sysout.println( "The test passed." );
 165.210 +        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
 165.211 +        //first check if this is executing in main thread
 165.212 +        if ( mainThread == Thread.currentThread() )
 165.213 +        {
 165.214 +            //Still in the main thread, so set the flag just for kicks,
 165.215 +            // and throw a test passed exception which will be caught
 165.216 +            // and end the test.
 165.217 +            theTestPassed = true;
 165.218 +            throw new TestPassedException();
 165.219 +        }
 165.220 +        theTestPassed = true;
 165.221 +        testGeneratedInterrupt = true;
 165.222 +        mainThread.interrupt();
 165.223 +    }//pass()
 165.224 +
 165.225 +    public static synchronized void fail()
 165.226 +    {
 165.227 +        //test writer didn't specify why test failed, so give generic
 165.228 +        fail( "it just plain failed! :-)" );
 165.229 +    }
 165.230 +
 165.231 +    public static synchronized void fail( String whyFailed )
 165.232 +    {
 165.233 +        Sysout.println( "The test failed: " + whyFailed );
 165.234 +        Sysout.println( "The test is over, hit  Ctl-C to stop Java VM" );
 165.235 +        //check if this called from main thread
 165.236 +        if ( mainThread == Thread.currentThread() )
 165.237 +        {
 165.238 +            //If main thread, fail now 'cause not sleeping
 165.239 +            throw new RuntimeException( whyFailed );
 165.240 +        }
 165.241 +        theTestPassed = false;
 165.242 +        testGeneratedInterrupt = true;
 165.243 +        failureMessage = whyFailed;
 165.244 +        mainThread.interrupt();
 165.245 +    }//fail()
 165.246 +
 165.247 +}// class NonOpaqueInternalFrame
 165.248 +
 165.249 +//This exception is used to exit from any level of call nesting
 165.250 +// when it's determined that the test has passed, and immediately
 165.251 +// end the test.
 165.252 +class TestPassedException extends RuntimeException
 165.253 +{
 165.254 +}
 165.255 +
 165.256 +//*********** End Standard Test Machinery Section **********
 165.257 +
 165.258 +
 165.259 +//************ Begin classes defined for the test ****************
 165.260 +
 165.261 +// if want to make listeners, here is the recommended place for them, then instantiate
 165.262 +//  them in init()
 165.263 +
 165.264 +/* Example of a class which may be written as part of a test
 165.265 +class NewClass implements anInterface
 165.266 + {
 165.267 +   static int newVar = 0;
 165.268 +
 165.269 +   public void eventDispatched(AWTEvent e)
 165.270 +    {
 165.271 +      //Counting events to see if we get enough
 165.272 +      eventCount++;
 165.273 +
 165.274 +      if( eventCount == 20 )
 165.275 +       {
 165.276 +         //got enough events, so pass
 165.277 +
 165.278 +         NonOpaqueInternalFrame.pass();
 165.279 +       }
 165.280 +      else if( tries == 20 )
 165.281 +       {
 165.282 +         //tried too many times without getting enough events so fail
 165.283 +
 165.284 +         NonOpaqueInternalFrame.fail();
 165.285 +       }
 165.286 +
 165.287 +    }// eventDispatched()
 165.288 +
 165.289 + }// NewClass class
 165.290 +
 165.291 +*/
 165.292 +
 165.293 +
 165.294 +//************** End classes defined for the test *******************
 165.295 +
 165.296 +
 165.297 +
 165.298 +
 165.299 +/****************************************************
 165.300 + Standard Test Machinery
 165.301 + DO NOT modify anything below -- it's a standard
 165.302 +  chunk of code whose purpose is to make user
 165.303 +  interaction uniform, and thereby make it simpler
 165.304 +  to read and understand someone else's test.
 165.305 + ****************************************************/
 165.306 +
 165.307 +/**
 165.308 + This is part of the standard test machinery.
 165.309 + It creates a dialog (with the instructions), and is the interface
 165.310 +  for sending text messages to the user.
 165.311 + To print the instructions, send an array of strings to Sysout.createDialog
 165.312 +  WithInstructions method.  Put one line of instructions per array entry.
 165.313 + To display a message for the tester to see, simply call Sysout.println
 165.314 +  with the string to be displayed.
 165.315 + This mimics System.out.println but works within the test harness as well
 165.316 +  as standalone.
 165.317 + */
 165.318 +
 165.319 +class Sysout
 165.320 +{
 165.321 +    private static TestDialog dialog;
 165.322 +
 165.323 +    public static void createDialogWithInstructions( String[] instructions )
 165.324 +    {
 165.325 +        dialog = new TestDialog( new Frame(), "Instructions" );
 165.326 +        dialog.printInstructions( instructions );
 165.327 +        dialog.setVisible(true);
 165.328 +        println( "Any messages for the tester will display here." );
 165.329 +    }
 165.330 +
 165.331 +    public static void createDialog( )
 165.332 +    {
 165.333 +        dialog = new TestDialog( new Frame(), "Instructions" );
 165.334 +        String[] defInstr = { "Instructions will appear here. ", "" } ;
 165.335 +        dialog.printInstructions( defInstr );
 165.336 +        dialog.setVisible(true);
 165.337 +        println( "Any messages for the tester will display here." );
 165.338 +    }
 165.339 +
 165.340 +
 165.341 +    public static void printInstructions( String[] instructions )
 165.342 +    {
 165.343 +        dialog.printInstructions( instructions );
 165.344 +    }
 165.345 +
 165.346 +
 165.347 +    public static void println( String messageIn )
 165.348 +    {
 165.349 +        dialog.displayMessage( messageIn );
 165.350 +        System.out.println(messageIn);
 165.351 +    }
 165.352 +
 165.353 +}// Sysout  class
 165.354 +
 165.355 +/**
 165.356 +  This is part of the standard test machinery.  It provides a place for the
 165.357 +   test instructions to be displayed, and a place for interactive messages
 165.358 +   to the user to be displayed.
 165.359 +  To have the test instructions displayed, see Sysout.
 165.360 +  To have a message to the user be displayed, see Sysout.
 165.361 +  Do not call anything in this dialog directly.
 165.362 +  */
 165.363 +class TestDialog extends Dialog
 165.364 +{
 165.365 +
 165.366 +    TextArea instructionsText;
 165.367 +    TextArea messageText;
 165.368 +    int maxStringLength = 80;
 165.369 +
 165.370 +    //DO NOT call this directly, go through Sysout
 165.371 +    public TestDialog( Frame frame, String name )
 165.372 +    {
 165.373 +        super( frame, name );
 165.374 +        int scrollBoth = TextArea.SCROLLBARS_BOTH;
 165.375 +        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
 165.376 +        add( "North", instructionsText );
 165.377 +
 165.378 +        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
 165.379 +        add("Center", messageText);
 165.380 +
 165.381 +        pack();
 165.382 +
 165.383 +        setVisible(true);
 165.384 +    }// TestDialog()
 165.385 +
 165.386 +    //DO NOT call this directly, go through Sysout
 165.387 +    public void printInstructions( String[] instructions )
 165.388 +    {
 165.389 +        //Clear out any current instructions
 165.390 +        instructionsText.setText( "" );
 165.391 +
 165.392 +        //Go down array of instruction strings
 165.393 +
 165.394 +        String printStr, remainingStr;
 165.395 +        for( int i=0; i < instructions.length; i++ )
 165.396 +        {
 165.397 +            //chop up each into pieces maxSringLength long
 165.398 +            remainingStr = instructions[ i ];
 165.399 +            while( remainingStr.length() > 0 )
 165.400 +            {
 165.401 +                //if longer than max then chop off first max chars to print
 165.402 +                if( remainingStr.length() >= maxStringLength )
 165.403 +                {
 165.404 +                    //Try to chop on a word boundary
 165.405 +                    int posOfSpace = remainingStr.
 165.406 +                        lastIndexOf( ' ', maxStringLength - 1 );
 165.407 +
 165.408 +                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
 165.409 +
 165.410 +                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
 165.411 +                    remainingStr = remainingStr.substring( posOfSpace + 1 );
 165.412 +                }
 165.413 +                //else just print
 165.414 +                else
 165.415 +                {
 165.416 +                    printStr = remainingStr;
 165.417 +                    remainingStr = "";
 165.418 +                }
 165.419 +
 165.420 +                instructionsText.append( printStr + "\n" );
 165.421 +
 165.422 +            }// while
 165.423 +
 165.424 +        }// for
 165.425 +
 165.426 +    }//printInstructions()
 165.427 +
 165.428 +    //DO NOT call this directly, go through Sysout
 165.429 +    public void displayMessage( String messageIn )
 165.430 +    {
 165.431 +        messageText.append( messageIn + "\n" );
 165.432 +        System.out.println(messageIn);
 165.433 +    }
 165.434 +
 165.435 +}// TestDialog  class
 165.436 +
 165.437 +
   166.1 --- a/test/java/awt/Mixing/OpaqueTest.java	Tue Feb 17 09:06:16 2009 -0800
   166.2 +++ b/test/java/awt/Mixing/OpaqueTest.java	Wed Feb 18 10:05:41 2009 -0800
   166.3 @@ -42,6 +42,7 @@
   166.4  import java.awt.event.*;
   166.5  import javax.swing.*;
   166.6  import test.java.awt.regtesthelpers.Util;
   166.7 +import com.sun.awt.AWTUtilities;
   166.8  
   166.9  
  166.10  
  166.11 @@ -78,6 +79,7 @@
  166.12                  {
  166.13                      public void actionPerformed(java.awt.event.ActionEvent e) {
  166.14                          p.setComponentZOrder(light, 0);
  166.15 +                        f.validate();
  166.16                          testSeq = testSeq + "0";
  166.17                      }
  166.18                  }
  166.19 @@ -87,6 +89,7 @@
  166.20                  {
  166.21                      public void actionPerformed(java.awt.event.ActionEvent e) {
  166.22                          p.setComponentZOrder(heavy, 0);
  166.23 +                        f.validate();
  166.24                          testSeq = testSeq + "1";
  166.25                      }
  166.26                  }
  166.27 @@ -120,10 +123,12 @@
  166.28          // flag value.
  166.29          for (int i = 0; i < 9; ++i) {
  166.30              if (i == 3) {
  166.31 -                light.setOpaque(false);
  166.32 +                AWTUtilities.setComponentMixingCutoutShape(light,
  166.33 +                        new Rectangle());
  166.34              }
  166.35              if (i == 6) {
  166.36 -                light.setOpaque(true);
  166.37 +                AWTUtilities.setComponentMixingCutoutShape(light,
  166.38 +                        null);
  166.39              }
  166.40  
  166.41              robot.mousePress(InputEvent.BUTTON1_MASK);
   167.1 --- a/test/java/awt/Mixing/OverlappingButtons.java	Tue Feb 17 09:06:16 2009 -0800
   167.2 +++ b/test/java/awt/Mixing/OverlappingButtons.java	Wed Feb 18 10:05:41 2009 -0800
   167.3 @@ -78,6 +78,7 @@
   167.4                  {
   167.5                      public void actionPerformed(java.awt.event.ActionEvent e) {
   167.6                          p.setComponentZOrder(light, 0);
   167.7 +                        f.validate();
   167.8                          testSeq = testSeq + "0";
   167.9                      }
  167.10                  }
  167.11 @@ -87,6 +88,7 @@
  167.12                  {
  167.13                      public void actionPerformed(java.awt.event.ActionEvent e) {
  167.14                          p.setComponentZOrder(heavy, 0);
  167.15 +                        f.validate();
  167.16                          testSeq = testSeq + "1";
  167.17                      }
  167.18                  }
   168.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   168.2 +++ b/test/java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.html	Wed Feb 18 10:05:41 2009 -0800
   168.3 @@ -0,0 +1,42 @@
   168.4 +/*
   168.5 + * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
   168.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   168.7 + *
   168.8 + * This code is free software; you can redistribute it and/or modify it
   168.9 + * under the terms of the GNU General Public License version 2 only, as
  168.10 + * published by the Free Software Foundation.
  168.11 + *
  168.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  168.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  168.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  168.15 + * version 2 for more details (a copy is included in the LICENSE file that
  168.16 + * accompanied this code).
  168.17 + *
  168.18 + * You should have received a copy of the GNU General Public License version
  168.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  168.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  168.21 + *
  168.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  168.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  168.24 + * have any questions.
  168.25 + */
  168.26 +
  168.27 +<!--
  168.28 +  @test
  168.29 +  @bug 6176814
  168.30 +  @summary Metalworks frame maximizes after the move
  168.31 +  @author Andrei.Dmitriev.Com area=Event
  168.32 +  @run applet MaximizedFrameTest.html
  168.33 +  -->
  168.34 +<head>
  168.35 +<title>  </title>
  168.36 +</head>
  168.37 +<body>
  168.38 +
  168.39 +<h1>bug 6176814<br>Bug ID:  6176814 </h1>
  168.40 +
  168.41 +<p> This is an AUTOMATIC test, simply wait for completion </p>
  168.42 +
  168.43 +<APPLET CODE="MaximizedFrameTest.class" WIDTH=200 HEIGHT=200></APPLET>
  168.44 +</body>
  168.45 +</html>
   169.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   169.2 +++ b/test/java/awt/Mouse/MaximizedFrameTest/MaximizedFrameTest.java	Wed Feb 18 10:05:41 2009 -0800
   169.3 @@ -0,0 +1,112 @@
   169.4 +/*
   169.5 + * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
   169.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   169.7 + *
   169.8 + * This code is free software; you can redistribute it and/or modify it
   169.9 + * under the terms of the GNU General Public License version 2 only, as
  169.10 + * published by the Free Software Foundation.
  169.11 + *
  169.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  169.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  169.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  169.15 + * version 2 for more details (a copy is included in the LICENSE file that
  169.16 + * accompanied this code).
  169.17 + *
  169.18 + * You should have received a copy of the GNU General Public License version
  169.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  169.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  169.21 + *
  169.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  169.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  169.24 + * have any questions.
  169.25 + */
  169.26 +
  169.27 +/*
  169.28 +  test
  169.29 +  @bug 6176814
  169.30 +  @summary  Metalworks frame maximizes after the move
  169.31 +  @author Andrei.Dmitriev area=Event
  169.32 +  @run applet MaximizedFrameTest.html
  169.33 +*/
  169.34 +
  169.35 +import java.applet.Applet;
  169.36 +import javax.swing.*;
  169.37 +import java.awt.event.*;
  169.38 +import java.awt.*;
  169.39 +
  169.40 +public class MaximizedFrameTest extends Applet
  169.41 +{
  169.42 +    final int ITERATIONS_COUNT = 20;
  169.43 +    Robot robot;
  169.44 +    Point framePosition;
  169.45 +    Point newFrameLocation;
  169.46 +    JFrame  frame;
  169.47 +    Rectangle gcBounds;
  169.48 +    public static Object LOCK = new Object();
  169.49 +
  169.50 +    public void init()
  169.51 +    {
  169.52 +        String[] instructions =
  169.53 +        {
  169.54 +            "This is an AUTOMATIC test",
  169.55 +            "simply wait until it is done"
  169.56 +        };
  169.57 +        JFrame.setDefaultLookAndFeelDecorated(true);
  169.58 +        frame = new JFrame("JFrame Maximization Test");
  169.59 +        frame.pack();
  169.60 +        frame.setSize(450, 260);
  169.61 +    }//End  init()
  169.62 +
  169.63 +    public void start ()
  169.64 +    {
  169.65 +        frame.setVisible(true);
  169.66 +        validate();
  169.67 +        JLayeredPane lPane = frame.getLayeredPane();
  169.68 +        //        System.out.println("JFrame's LayeredPane " + lPane );
  169.69 +        Component titleComponent = null;
  169.70 +        boolean titleFound = false;
  169.71 +        for (int j=0; j < lPane.getComponentsInLayer(JLayeredPane.FRAME_CONTENT_LAYER.intValue()).length; j++){
  169.72 +            titleComponent = lPane.getComponentsInLayer(JLayeredPane.FRAME_CONTENT_LAYER.intValue())[j];
  169.73 +            if (titleComponent.getClass().getName().equals("javax.swing.plaf.metal.MetalTitlePane")){
  169.74 +                titleFound = true;
  169.75 +                break;
  169.76 +            }
  169.77 +        }
  169.78 +        if ( !titleFound ){
  169.79 +            throw new RuntimeException("Test Failed. Unable to determine title's size.");
  169.80 +        }
  169.81 +        //--------------------------------
  169.82 +        // it is sufficient to get maximized Frame only once.
  169.83 +        Point tempMousePosition;
  169.84 +        framePosition = frame.getLocationOnScreen();
  169.85 +        try {
  169.86 +            robot = new Robot();
  169.87 +            tempMousePosition = new Point(framePosition.x +
  169.88 +                                          frame.getWidth()/2,
  169.89 +                                          framePosition.y +
  169.90 +                                          titleComponent.getHeight()/2);
  169.91 +            robot.mouseMove(tempMousePosition.x, tempMousePosition.y);
  169.92 +            for (int iteration=0; iteration < ITERATIONS_COUNT; iteration++){
  169.93 +                robot.mousePress(InputEvent.BUTTON1_MASK);
  169.94 +                gcBounds =
  169.95 +                    GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0].getConfigurations()[0].getBounds();
  169.96 +                //Moving a mouse pointer less than a few pixels
  169.97 +                //leads to rising a double click event.
  169.98 +                //We have to use exceeded the AWT_MULTICLICK_SMUDGE
  169.99 +                //const value (which is 4 by default on GNOME) to test that.
 169.100 +                tempMousePosition.x += 5;
 169.101 +                robot.mouseMove(tempMousePosition.x, tempMousePosition.y);
 169.102 +                robot.delay(70);
 169.103 +                robot.mouseRelease(InputEvent.BUTTON1_MASK);
 169.104 +                if ( frame.getExtendedState() != 0 ){
 169.105 +                    throw new RuntimeException ("Test failed. JFrame was maximized. ExtendedState is : "+frame.getExtendedState());
 169.106 +                }
 169.107 +                robot.delay(500);
 169.108 +            } //for iteration
 169.109 +
 169.110 +            }catch(AWTException e) {
 169.111 +                throw new RuntimeException("Test Failed. AWTException thrown.");
 169.112 +            }
 169.113 +        System.out.println("Test passed.");
 169.114 +    }// start()
 169.115 +}// class
   170.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   170.2 +++ b/test/java/awt/Mouse/MouseModifiersUnitTest/ExtraButtonDrag.java	Wed Feb 18 10:05:41 2009 -0800
   170.3 @@ -0,0 +1,131 @@
   170.4 +/*
   170.5 +  @test %I% %E%
   170.6 +  @bug 6315717
   170.7 +  @summary verifies that drag events are coming for every button if the property is set to true
   170.8 +  @author Andrei Dmitriev : area=awt.mouse
   170.9 +  @run main ExtraButtonDrag
  170.10 + */
  170.11 +
  170.12 +//events from standard should also come
  170.13 +
  170.14 +import java.awt.*;
  170.15 +import java.awt.event.*;
  170.16 +
  170.17 +public class ExtraButtonDrag extends Frame {
  170.18 +    static String tk = Toolkit.getDefaultToolkit().getClass().getName();
  170.19 +    static Robot robot;
  170.20 +    static int [] buttonsPressed;
  170.21 +    static int [] buttonsReleased;
  170.22 +    static int [] buttonsClicked;
  170.23 +    volatile static boolean dragged = false;
  170.24 +    volatile static boolean moved = false;
  170.25 +
  170.26 +    public ExtraButtonDrag(){
  170.27 +        super("ExtraButtonDrag");
  170.28 +    }
  170.29 +
  170.30 +    public static void main(String []s){
  170.31 +        Frame frame = new ExtraButtonDrag();
  170.32 +
  170.33 +        MouseAdapter ma = new MouseAdapter() {
  170.34 +                public void mouseDragged(MouseEvent e) {
  170.35 +                    System.out.println("Dragged "+e);// +" : "+ e.getButton() + " : " +e.getButtonState(e.getButton()));
  170.36 +                    dragged = true;
  170.37 +                }
  170.38 +                public void mouseMoved(MouseEvent e) {
  170.39 +                    System.out.println("Moved "+e);
  170.40 +                    moved = true;
  170.41 +                }
  170.42 +                public void mousePressed(MouseEvent e) {
  170.43 +                    System.out.println(">>> "+e);
  170.44 +                }
  170.45 +                public void mouseReleased(MouseEvent e) {
  170.46 +                    System.out.println(">>> "+e);
  170.47 +                }
  170.48 +
  170.49 +            };
  170.50 +
  170.51 +        frame.addMouseMotionListener(ma);
  170.52 +        frame.addMouseListener(ma);
  170.53 +
  170.54 +        frame.setSize(300, 300);
  170.55 +        frame.setVisible(true);
  170.56 +
  170.57 +        int [] buttonMask = new int [MouseInfo.getNumberOfButtons()]; //InputEvent.getButtonMasks();
  170.58 +
  170.59 +        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
  170.60 +            buttonMask[i] = InputEvent.getMaskForButton(i+1);
  170.61 +            //            System.out.println("TEST: "+tmp[i]);
  170.62 +        }
  170.63 +
  170.64 +        try {
  170.65 +            robot = new Robot();
  170.66 +            robot.delay(1000);
  170.67 +            Point centerFrame = new Point(frame.getLocationOnScreen().x + frame.getWidth()/2, frame.getLocationOnScreen().y + frame.getHeight()/2);
  170.68 +            Point outboundsFrame = new Point(frame.getLocationOnScreen().x + frame.getWidth()*3/2, frame.getLocationOnScreen().y + frame.getHeight()/2);
  170.69 +
  170.70 +            System.out.println("areExtraMouseButtonsEnabled() == " + Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled() );
  170.71 +
  170.72 +            for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
  170.73 +                System.out.println("button to drag = " +(i+1) + " : value passed to robot = " +buttonMask[i]);
  170.74 +
  170.75 +                try {
  170.76 +                    dragMouse(buttonMask[i], centerFrame.x, centerFrame.y, outboundsFrame.x, outboundsFrame.y);
  170.77 +                } catch (IllegalArgumentException e){
  170.78 +                    throw new RuntimeException("Test failed. Exception occured.", e);
  170.79 +                }
  170.80 +
  170.81 +                robot.delay(500);
  170.82 +                //this is a choice-case for X protocol issue: native events from extra buttons doesn't contain
  170.83 +                // the correct state so it's unable to decide if there is a drag or move. By default we send MOVED event.
  170.84 +                //XToolkit: extra buttons should report MOVED events only
  170.85 +                //WToolkit: extra buttons should report DRAGGED events only
  170.86 +                if (i > 2){ //extra buttons only
  170.87 +                    if (tk.equals("sun.awt.X11.XToolkit") || tk.equals("sun.awt.motif.MToolkit")) {
  170.88 +                        if (!moved || dragged) {
  170.89 +                            throw new RuntimeException("Test failed."+ tk +" Button = " +(i+1) + " moved = "+moved +" : dragged = " +dragged);
  170.90 +                        }
  170.91 +                    } else { //WToolkit
  170.92 +                        if (moved || !dragged) {
  170.93 +                            throw new RuntimeException("Test failed."+ tk +" Button = " +(i+1) + " moved = "+moved +" : dragged = " +dragged);
  170.94 +                        }
  170.95 +                    }
  170.96 +                } else {
  170.97 +                    if (moved || !dragged){
  170.98 +                        throw new RuntimeException("Test failed. Button = " +(i+1) + " not dragged.");
  170.99 +                    }
 170.100 +                }
 170.101 +            }
 170.102 +        } catch (Exception e){
 170.103 +            throw new RuntimeException("", e);
 170.104 +        }
 170.105 +    }
 170.106 +
 170.107 +    public static void dragMouse(int button, int x0, int y0, int x1, int y1){
 170.108 +        int curX = x0;
 170.109 +        int curY = y0;
 170.110 +        int dx = x0 < x1 ? 1 : -1;
 170.111 +        int dy = y0 < y1 ? 1 : -1;
 170.112 +        robot.mouseMove(x0, y0);
 170.113 +
 170.114 +        robot.delay(200);
 170.115 +        dragged = false;
 170.116 +        moved = false;
 170.117 +
 170.118 +        robot.mousePress(button);
 170.119 +
 170.120 +        while (curX != x1){
 170.121 +            curX += dx;
 170.122 +            robot.mouseMove(curX, curY);
 170.123 +            robot.delay(5);
 170.124 +        }
 170.125 +        while (curY != y1 ){
 170.126 +            curY += dy;
 170.127 +            robot.mouseMove(curX, curY);
 170.128 +            robot.delay(5);
 170.129 +        }
 170.130 +        robot.mouseRelease(button);
 170.131 +    }
 170.132 +
 170.133 +}
 170.134 +
   171.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   171.2 +++ b/test/java/awt/Mouse/MouseModifiersUnitTest/ModifierPermutation.java	Wed Feb 18 10:05:41 2009 -0800
   171.3 @@ -0,0 +1,320 @@
   171.4 +/*
   171.5 +  test %I% %E%
   171.6 +  @bug 6315717
   171.7 +  @summary presses buttons in all permutations and verifies modifiers
   171.8 +  @author Andrei Dmitriev : area=awt.mouse
   171.9 +  @run main ModifierPermutation
  171.10 + */
  171.11 +//package modifierpermutation;
  171.12 +
  171.13 +/*
  171.14 +The test will try to press-release every button present on the mouse in different order.
  171.15 +Here are some abbreviations:
  171.16 + BUTTON1 press = P1
  171.17 + BUTTON2 press = P2 etc.
  171.18 + BUTTON1 release = R1
  171.19 + BUTTON2 release = R2 etc.
  171.20 +Only sequences alike below are possible : <P1, P2, R2, R1>.
  171.21 +Sequences like <P1, P2, R1, R2> will not be covered by this test due to its probable complexity.
  171.22 + */
  171.23 +
  171.24 +import java.awt.*;
  171.25 +import sun.awt.SunToolkit;
  171.26 +import java.awt.event.*;
  171.27 +import java.util.Arrays;
  171.28 +
  171.29 +public class ModifierPermutation {
  171.30 +    static boolean failed = false;
  171.31 +    final static int BUTTONSNUMBER = MouseInfo.getNumberOfButtons();
  171.32 +
  171.33 +/*
  171.34 + * Because of some problems with BUTTONx_MASK
  171.35 + * (they are not ordered. Instead, their values are: 16 8 4)
  171.36 + * We have to use array [1..n] and make every permutation on its
  171.37 + * containment. After each permutation, make the same thing with
  171.38 + * array of buttons and array of expected modifiers.
  171.39 + */
  171.40 +    static SunToolkit st = (SunToolkit)(Toolkit.getDefaultToolkit());
  171.41 +    //all button masks
  171.42 +    static int [] mouseButtons = new int [BUTTONSNUMBER]; //BUTTONx_MASK
  171.43 +    static int [] mouseButtonsDown = new int [BUTTONSNUMBER]; //BUTTONx_DOWN_MASK
  171.44 +
  171.45 +    //used to store mouse buttons sequences to press/to release
  171.46 +    static int [] affectedButtonsToPressRelease;
  171.47 +//    static int [] buttonsToRelease;
  171.48 +//    static int [] modifiersToVerifyOnPressRelease;
  171.49 +
  171.50 +    static Robot robot;
  171.51 +    static CheckingAdapter adapterTest1;
  171.52 +    static Frame f;
  171.53 +
  171.54 +    static {
  171.55 +        for (int i = 0; i < BUTTONSNUMBER; i++){
  171.56 +            mouseButtons[i] = InputEvent.getMaskForButton(i+1); //then change first three elements here to BUTTONx_MASK
  171.57 +            mouseButtonsDown[i] = InputEvent.getMaskForButton(i+1);
  171.58 +        }
  171.59 +        //mouseButtons initially has following values : 16 8 4.
  171.60 +/*        mouseButtons[0] = InputEvent.BUTTON1_MASK;
  171.61 +        mouseButtons[1] = InputEvent.BUTTON2_MASK;
  171.62 +        mouseButtons[2] = InputEvent.BUTTON3_MASK;
  171.63 + */
  171.64 +    }
  171.65 +
  171.66 +    public static void main(String s[]){
  171.67 +        init();
  171.68 +
  171.69 +        try {
  171.70 +            robot = new Robot();
  171.71 +        } catch (Exception e){
  171.72 +            e.printStackTrace();
  171.73 +            throw new RuntimeException("Test failed.", e);
  171.74 +        }
  171.75 +        robot.delay(500);
  171.76 +        robot.mouseMove(f.getLocationOnScreen().x + f.getWidth()/2, f.getLocationOnScreen().y + f.getHeight()/2);
  171.77 +        robot.delay(500);
  171.78 +        //Top limit is the factorial of the number of existing buttons
  171.79 +        for (int k = 0; k < factorial(mouseButtons.length)-1; k++){
  171.80 +            //now we will press 2 up to maximum buttons and release them in different order and listen for
  171.81 +            // PRESSED events and check it's ExModifiers
  171.82 +            for (int buttonsToPressNumber = 2; buttonsToPressNumber <= BUTTONSNUMBER; buttonsToPressNumber++ ){
  171.83 +                System.out.println(">>>");
  171.84 +
  171.85 +                //Now get the slice of affected buttons
  171.86 +                affectedButtonsToPressRelease = Arrays.copyOf(mouseButtons, buttonsToPressNumber);
  171.87 +//                modifiersToVerifyOnPressRelease = Arrays.copyOf(mouseButtons, buttonsToPressNumber);
  171.88 +
  171.89 +                //Now press all these buttons in the order as they are in array affectedButtonsToPressRelease
  171.90 +                //And release all these buttons in back order.
  171.91 +
  171.92 +                dumpArray("Affected Buttons ", affectedButtonsToPressRelease);
  171.93 +                pressAllButtons(affectedButtonsToPressRelease);
  171.94 +                releaseAllButtonsForwardOrder(affectedButtonsToPressRelease);
  171.95 +//                    nextPermutation(i, buttonsToRelease);
  171.96 +                //TODO: press buttons and release them backward
  171.97 +                //All I have to add is :
  171.98 +//                pressAllButtons(affectedButtonsToPressRelease);
  171.99 +//                releaseAllButtonsBackwardOrder(affectedButtonsToPressRelease);
 171.100 +
 171.101 +                System.out.println("<<<");
 171.102 +            }
 171.103 +            nextPermutation(k, mouseButtons);
 171.104 +//            PermutationGenerator.nextPermutation(k, mouseButtonsDown);
 171.105 +            dumpArray("mouseButtons (step="+k+")", mouseButtons);
 171.106 +//            dumpArray("mouseButtonsDown (step="+k+")", mouseButtonsDown);
 171.107 +        }
 171.108 +    }
 171.109 +
 171.110 +    private static void init(){
 171.111 +        adapterTest1 = new CheckingAdapter();
 171.112 +        f = new Frame("Robot presses mouse here");
 171.113 +        f.setSize(300, 300);
 171.114 +        f.setVisible(true);
 171.115 +        f.addMouseListener(adapterTest1);
 171.116 +    }
 171.117 +    public static int factorial(int t){
 171.118 +        if (t <=1 ) {
 171.119 +            return 1;
 171.120 +        } else {
 171.121 +            return t*factorial(t-1);
 171.122 +        }
 171.123 +    }
 171.124 +
 171.125 +    // use this variable to get current button on EDT in checkModifiers()
 171.126 +    static volatile int currentButtonIndexUnderAction;
 171.127 +
 171.128 +    public static void pressAllButtons(int []array){
 171.129 +        for (int i = 0; i <array.length; i ++){
 171.130 +            if (failed) {
 171.131 +                throw new RuntimeException("PRESSED_EVENT is not filled with correct values. Review messaage above.");
 171.132 +            }
 171.133 +            System.out.println("Pressing button = " + array[i]);
 171.134 +            currentButtonIndexUnderAction = i;
 171.135 +            robot.mousePress(array[i]);
 171.136 +            System.out.println("currentButtonIndexUnderAction ="+currentButtonIndexUnderAction);
 171.137 +            st.realSync();
 171.138 +            //            robot.delay(100);
 171.139 +        }
 171.140 +    }
 171.141 +
 171.142 +    public static void releaseAllButtonsForwardOrder(int []array){
 171.143 +        for (int i = 0; i <array.length; i ++){
 171.144 +            System.out.println("Releasing button = " + array[i]);
 171.145 +            currentButtonIndexUnderAction = i;
 171.146 +            robot.mouseRelease(array[i]);
 171.147 +            System.out.println("currentButtonIndexUnderAction ="+currentButtonIndexUnderAction);
 171.148 +            st.realSync();
 171.149 +            //            robot.delay(100);
 171.150 +        }
 171.151 +    }
 171.152 +
 171.153 +    public static void checkModifiersOnPress(MouseEvent e){
 171.154 +        System.out.println("checkModifiers. currentButtonIndexUnderAction ="+currentButtonIndexUnderAction);
 171.155 +        for (int i = 0; i<= currentButtonIndexUnderAction; i++){
 171.156 +            if ((e.getModifiersEx() & affectedButtonsToPressRelease[i]) == 0){
 171.157 +                System.out.println("ERROR["+i+"]: PRESSED_EVENT is not filled with correct values. affectedButtonsToPressRelease[i]= "+affectedButtonsToPressRelease[i] +" Event = "+e);
 171.158 +                ModifierPermutation.failed = true;
 171.159 +            } else {
 171.160 +                System.out.println("CORRECT["+i+"]: affectedButtonsToPressRelease[i]= "+affectedButtonsToPressRelease[i]+ " Event = "+e);
 171.161 +            }
 171.162 +        }
 171.163 +    }
 171.164 +
 171.165 +    /*======================================================================*/
 171.166 +    public static void dumpValues(int button, int modifiers, int modifiersStandard, int modifiersEx, int modifiersExStandard){
 171.167 +        System.out.println("Button = "+button + "Modifiers = "+ modifiers + " standard = "+ modifiersStandard);
 171.168 +        System.out.println("                   ModifiersEx = "+ modifiersEx + " standardEx = "+ modifiersExStandard);
 171.169 +    }
 171.170 +
 171.171 +    public static void dumpArray(String id, int [] array){
 171.172 +        System.out.print(id);
 171.173 +        for (int i = 0; i < array.length; i++){
 171.174 +            System.out.print(array[i]+" ");
 171.175 +        }
 171.176 +        System.out.println();
 171.177 +    }
 171.178 +    public static void nextPermutation(int step, int []array){
 171.179 +        int i;
 171.180 +        int leftEl = 0;
 171.181 +        int rightEl = 0;
 171.182 +
 171.183 +        i = array.length - 2;
 171.184 +        while (i>=0) {
 171.185 +            if (array[i] < array[i+1]){
 171.186 +                leftEl = i;
 171.187 +                //                        System.out.println("leftEl = "+leftEl);
 171.188 +                break;
 171.189 +            }
 171.190 +            i--;
 171.191 +        }
 171.192 +
 171.193 +        i = array.length - 1;
 171.194 +        while (i>=0) {
 171.195 +            if (array[i] > array[leftEl]) {
 171.196 +                rightEl = i;
 171.197 +                //                        System.out.println("rightEl = "+rightEl);
 171.198 +                break;
 171.199 +            }
 171.200 +            i--;
 171.201 +        }
 171.202 +        swapElements(array, leftEl, rightEl);
 171.203 +        if (leftEl + 2 <  array.length){
 171.204 +            //                    System.out.println("sort");
 171.205 +            Arrays.sort(array, leftEl + 1 , array.length);
 171.206 +        }
 171.207 +    }
 171.208 +
 171.209 +    public static void swapElements(int [] array, int leftEl, int rightEl){
 171.210 +        int tmp = array[leftEl];
 171.211 +        array[leftEl] = array[rightEl];
 171.212 +        array[rightEl] = tmp;
 171.213 +    }
 171.214 +
 171.215 +    public static void checkModifiersOnRelease(MouseEvent e){
 171.216 +        System.out.println("CheckModifiersOnRelease. currentButtonIndexUnderAction ="+currentButtonIndexUnderAction);
 171.217 +        for (int i = currentButtonIndexUnderAction+1; i<affectedButtonsToPressRelease.length; i++){
 171.218 +            if ((e.getModifiersEx() & affectedButtonsToPressRelease[i]) == 0){
 171.219 +                System.out.println("ERROR["+i+"]: RELEASED_EVENT is not filled with correct values. affectedButtonsToPressRelease[i]= "+affectedButtonsToPressRelease[i] +" Event = "+e);
 171.220 +                ModifierPermutation.failed = true;
 171.221 +            } else {
 171.222 +                System.out.println("CORRECT["+i+"]: affectedButtonsToPressRelease[i]= "+affectedButtonsToPressRelease[i]+ " Event = "+e);
 171.223 +            }
 171.224 +        }
 171.225 +    }
 171.226 +
 171.227 +    public static void checkModifiersOnClick(MouseEvent e){
 171.228 +        System.out.println("CheckModifiersOnClick. currentButtonIndexUnderAction ="+currentButtonIndexUnderAction);
 171.229 +//Actually the same as in checkModifiersOnRelease()
 171.230 +        for (int i = currentButtonIndexUnderAction+1; i<affectedButtonsToPressRelease.length; i++){
 171.231 +            if ((e.getModifiersEx() & affectedButtonsToPressRelease[i]) == 0){
 171.232 +                System.out.println("ERROR["+i+"]: CLICK_EVENT is not filled with correct values. affectedButtonsToPressRelease[i]= "+affectedButtonsToPressRelease[i] +" Event = "+e);
 171.233 +                ModifierPermutation.failed = true;
 171.234 +            } else {
 171.235 +                System.out.println("CORRECT["+i+"]: affectedButtonsToPressRelease[i]= "+affectedButtonsToPressRelease[i]+ " Event = "+e);
 171.236 +            }
 171.237 +        }
 171.238 +    }
 171.239 +}
 171.240 +///~ ModifierPermutation clas
 171.241 +
 171.242 +/* A class that invoke appropriate verification
 171.243 + * routine with current modifier.
 171.244 + */
 171.245 +class CheckingAdapter extends MouseAdapter{
 171.246 +    public CheckingAdapter(){}
 171.247 +
 171.248 +    public void mousePressed(MouseEvent e) {
 171.249 +        System.out.println("PRESSED "+e);
 171.250 +        ModifierPermutation.checkModifiersOnPress(e);
 171.251 +    }
 171.252 +    public void mouseReleased(MouseEvent e) {
 171.253 +        System.out.println("RELEASED "+e);
 171.254 +        ModifierPermutation.checkModifiersOnRelease(e);
 171.255 +
 171.256 +    }
 171.257 +    public void mouseClicked(MouseEvent e) {
 171.258 +        System.out.println("CLICKED "+e);
 171.259 +        ModifierPermutation.checkModifiersOnClick(e);
 171.260 +    }
 171.261 +}
 171.262 +
 171.263 +// A class that could make a standard permutation with no regard to the
 171.264 +// values of array passed in.
 171.265 +// It uses a buttonIndicesToPermutate array with [1..N] values to perform
 171.266 +// these permutations.
 171.267 +//Note that nextPermutation is a static method and you can't keep track
 171.268 +// of more the single permutation sequence.
 171.269 +/*
 171.270 +class PermutationGenerator{
 171.271 +    final static int BUTTONSNUMBER = MouseInfo.getNumberOfButtons();
 171.272 +    static int [] buttonIndicesToPermutate = new int [BUTTONSNUMBER];;
 171.273 +    public PermutationGenerator(){
 171.274 +        for (int i = 0; i < BUTTONSNUMBER; i++){
 171.275 +            buttonIndicesToPermutate[i] = i+1; //fill it with [1..N] values
 171.276 +        }
 171.277 +    }
 171.278 +
 171.279 +    public static void nextPermutation(int step, int []array){
 171.280 +        if (array.length != buttonIndicesToPermutate.length) {
 171.281 +            throw new IllegalArgumentException("Array should have length equals to mouse buttons number.");
 171.282 +        }
 171.283 +        int i;
 171.284 +        int leftEl = 0;
 171.285 +        int rightEl = 0;
 171.286 +
 171.287 +        i = array.length - 2;
 171.288 +        while (i>=0) {
 171.289 +            if (buttonIndicesToPermutate[i] < buttonIndicesToPermutate[i+1]){
 171.290 +                leftEl = i;
 171.291 +                //                        System.out.println("leftEl = "+leftEl);
 171.292 +                break;
 171.293 +            }
 171.294 +            i--;
 171.295 +        }
 171.296 +
 171.297 +        i = array.length - 1;
 171.298 +        while (i>=0) {
 171.299 +            if (buttonIndicesToPermutate[i] >buttonIndicesToPermutate[leftEl]) {
 171.300 +                rightEl = i;
 171.301 +                //                        System.out.println("rightEl = "+rightEl);
 171.302 +                break;
 171.303 +            }
 171.304 +            i--;
 171.305 +        }
 171.306 +        swapElements(array, leftEl, rightEl);
 171.307 +        swapElements(buttonIndicesToPermutate, leftEl, rightEl);
 171.308 +
 171.309 +        if (leftEl + 2 <  array.length){
 171.310 +            //                    System.out.println("sort");
 171.311 +//need to make our own sorting because arraysort makes this on actual values in array...
 171.312 +            Arrays.sort(array, leftEl + 1 , array.length);
 171.313 +            Arrays.sort(buttonIndicesToPermutate, leftEl + 1 , buttonIndicesToPermutate.length);
 171.314 +//            sortArray(array, leftEl + 1 , array.length);
 171.315 +        }
 171.316 +    }
 171.317 +    public static void swapElements(int [] array, int leftEl, int rightEl){
 171.318 +        int tmp = array[leftEl];
 171.319 +        array[leftEl] = array[rightEl];
 171.320 +        array[rightEl] = tmp;
 171.321 +    }
 171.322 +}
 171.323 +*/
   172.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   172.2 +++ b/test/java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Extra.java	Wed Feb 18 10:05:41 2009 -0800
   172.3 @@ -0,0 +1,490 @@
   172.4 +/*
   172.5 +  @test %I% %E%
   172.6 +  @bug 6315717
   172.7 +  @summary verifies that modifiers are correct for extra buttons
   172.8 +  @author Andrei Dmitriev : area=awt.mouse
   172.9 +  @run main MouseModifiersUnitTest_Extra
  172.10 + */
  172.11 +
  172.12 +import java.awt.*;
  172.13 +import java.awt.event.*;
  172.14 +import java.util.Arrays;
  172.15 +import java.util.HashMap;
  172.16 +import java.util.StringTokenizer;
  172.17 +import java.util.Vector;
  172.18 +
  172.19 +// will process extra buttons only
  172.20 +// asking parameters from CMD: manual/automatic, modifier to test
  172.21 +
  172.22 +public class MouseModifiersUnitTest_Extra extends Frame {
  172.23 +    static final int NONE = 0;
  172.24 +    static final int SHIFT = 1;
  172.25 +    static final int CTRL = 2;
  172.26 +    static final int ALT = 3;
  172.27 +    static CheckingModifierAdapter adapterTest1;
  172.28 +    static CheckingModifierAdapter adapterTest2;
  172.29 +    static CheckingModifierAdapter adapterTest3;
  172.30 +    static CheckingModifierAdapter adapterTest4;
  172.31 +
  172.32 +    static boolean debug = true; //dump all errors (debug) or throw first(under jtreg) exception
  172.33 +    static boolean autorun = false; //use robot or manual run
  172.34 +    static int testModifier = NONE;
  172.35 +
  172.36 +    static int [] mouseButtons;
  172.37 +    static int [] mouseButtonDownMasks;
  172.38 +
  172.39 +    //an arrays representing a modifiersEx of extra mouse buttons while using ALT/CTRL/SHIFT or none of them
  172.40 +    static int [] modifiersExStandard;
  172.41 +    static int [] modifiersExStandardSHIFT;
  172.42 +    static int [] modifiersExStandardCTRL;
  172.43 +    static int [] modifiersExStandardALT;
  172.44 +
  172.45 +    //    final static int [] mouseButtons = new int [] {MouseEvent.BUTTON1_MASK, MouseEvent.BUTTON2_MASK, MouseEvent.BUTTON3_MASK};
  172.46 +    // BUTTON1, 2, 3 press-release.
  172.47 +    final static int  modifiersStandard = 0; //InputEvent.BUTTON_DOWN_MASK;
  172.48 +
  172.49 +    public static void checkPressedModifiersTest(int testModifier, MouseEvent event){
  172.50 +        int [] curStandardExModifiers = getStandardExArray(testModifier);
  172.51 +        int button = event.getButton();
  172.52 +        int modifiers = event.getModifiers();
  172.53 +        int modifiersEx = event.getModifiersEx();
  172.54 +        int index = (button - 4)*3;
  172.55 +        dumpValues(button, modifiers, modifiersStandard, modifiersEx, curStandardExModifiers[index]);
  172.56 +        if (modifiers != modifiersStandard){
  172.57 +            MessageLogger.reportError("Test failed :  Pressed. modifiers != modifiersStandard");
  172.58 +        }
  172.59 +
  172.60 +        if (modifiersEx != curStandardExModifiers[index]){
  172.61 +//            System.out.println(">>>>>>>>>>>>>>> Pressed. modifiersEx "+modifiersEx +" : "+!= curStandardExModifiers");
  172.62 +            MessageLogger.reportError("Test failed :  Pressed. modifiersEx != curStandardExModifiers");
  172.63 +        }
  172.64 +
  172.65 +     //check event.paramString() output
  172.66 +        HashMap <String, String> paramStringElements = tokenizeParamString(event.paramString());
  172.67 +        System.out.println(event.paramString());
  172.68 +        checkButton(paramStringElements, button);
  172.69 +        checkModifiers(testModifier, paramStringElements, button);
  172.70 +        checkExtModifiersOnPress(testModifier, paramStringElements, button);
  172.71 +    }
  172.72 +
  172.73 +    public static void checkExtModifiersOnReleaseClick(int testModifier, HashMap h, int button){
  172.74 +        String ethalon = "";
  172.75 +        switch (testModifier){
  172.76 +            case SHIFT:{
  172.77 +                ethalon = "Shift";
  172.78 +                break;
  172.79 +            }
  172.80 +            case ALT:{
  172.81 +                ethalon = "Alt";
  172.82 +                break;
  172.83 +            }
  172.84 +            case CTRL:{
  172.85 +                ethalon = "Ctrl";
  172.86 +                break;
  172.87 +            }
  172.88 +        }
  172.89 +        //
  172.90 +        if (h.get("extModifiers") == null){
  172.91 +            h.put("extModifiers", "");
  172.92 +        }
  172.93 +        if (!ethalon.equals(h.get("extModifiers"))) {
  172.94 +            MessageLogger.reportError("Test failed :  Released/Clicked. extModifiers = " +h.get("extModifiers")+" instead of : "+ethalon);
  172.95 +        }
  172.96 +    }
  172.97 +
  172.98 +    public static void checkExtModifiersOnPress(int testModifier, HashMap h, int button){
  172.99 +        String ethalon = "";
 172.100 +        switch (testModifier){
 172.101 +            case SHIFT:{
 172.102 +                ethalon = "Shift+";
 172.103 +                break;
 172.104 +            }
 172.105 +            case ALT:{
 172.106 +                ethalon = "Alt+";
 172.107 +                break;
 172.108 +            }
 172.109 +            case CTRL:{
 172.110 +                ethalon = "Ctrl+";
 172.111 +                break;
 172.112 +            }
 172.113 +        }
 172.114 +        ethalon = ethalon + "Button" +button;
 172.115 +
 172.116 +        if (!h.get("extModifiers").equals(ethalon)) {
 172.117 +            MessageLogger.reportError("Test failed :  Pressed. extModifiers = " +h.get("extModifiers")+" instead of : "+ethalon);
 172.118 +        }
 172.119 +    }
 172.120 +
 172.121 +    public static void checkModifiers(int testModifier, HashMap<String, String> h, int button){
 172.122 +        // none of modifiers for extra button should be null
 172.123 +        if (h.get("modifiers") != null) {
 172.124 +            MessageLogger.reportError("Test failed : modifiers != null");
 172.125 +        }
 172.126 +    }
 172.127 +
 172.128 +    public static void checkButton(HashMap<String, String> h, int button){
 172.129 +        if (h.get("button") == null) {
 172.130 +            MessageLogger.reportError("Test failed :  checkButton(). button is absent in paramString()");
 172.131 +        }
 172.132 +        if (Integer.parseInt(h.get("button")) != button) {
 172.133 +            MessageLogger.reportError("Test failed :  checkButton. button in paramString() doesn't equal to button being pressed.");
 172.134 +        }
 172.135 +    }
 172.136 +    public static HashMap<String, String> tokenizeParamString(String param){
 172.137 +        HashMap <String, String> params = new HashMap<String, String>();
 172.138 +        StringTokenizer st = new StringTokenizer(param, ",=");
 172.139 +        while (st.hasMoreTokens()){
 172.140 +            String tmp = st.nextToken();
 172.141 +//            System.out.println("PARSER : "+tmp);
 172.142 +            if (tmp.equals("button") ||
 172.143 +                    tmp.equals("modifiers") ||
 172.144 +                    tmp.equals("extModifiers")) {
 172.145 +                params.put(tmp, st.nextToken());
 172.146 +            }
 172.147 +        }
 172.148 +        return params;
 172.149 +    }
 172.150 +
 172.151 +    public static Vector<String> tokenizeModifiers(String modifierList){
 172.152 +        Vector<String> modifiers = new Vector<String>();
 172.153 +        StringTokenizer st = new StringTokenizer(modifierList, "+");
 172.154 +        while (st.hasMoreTokens()){
 172.155 +            String tmp = st.nextToken();
 172.156 +            modifiers.addElement(tmp);
 172.157 +            System.out.println("MODIFIER PARSER : "+tmp);
 172.158 +        }
 172.159 +        return modifiers;
 172.160 +    }
 172.161 +
 172.162 +    public static void checkReleasedModifiersTest(int testModifier, MouseEvent event){
 172.163 +        int [] curStandardExModifiers = getStandardExArray(testModifier);
 172.164 +        int button = event.getButton();
 172.165 +        int modifiers = event.getModifiers();
 172.166 +        int modifiersEx = event.getModifiersEx();
 172.167 +        int index = (button - 4)*3 + 1;
 172.168 +        dumpValues(button, modifiers, modifiersStandard, modifiersEx, curStandardExModifiers[index]);
 172.169 +        if (modifiers != modifiersStandard){
 172.170 +            MessageLogger.reportError("Test failed :  Released. modifiers != modifiersStandard");
 172.171 +        }
 172.172 +
 172.173 +        if (modifiersEx != curStandardExModifiers[index]){
 172.174 +            MessageLogger.reportError("Test failed :  Released. modifiersEx != curStandardExModifiers");
 172.175 +        }
 172.176 +
 172.177 +     //check event.paramString() output
 172.178 +        HashMap <String, String> paramStringElements = tokenizeParamString(event.paramString());
 172.179 +        checkButton(paramStringElements, button);
 172.180 +        checkModifiers(testModifier, paramStringElements, button);
 172.181 +        System.out.println("paramStringElements = "+paramStringElements);
 172.182 +        checkExtModifiersOnReleaseClick(testModifier, paramStringElements, button);
 172.183 +    }
 172.184 +
 172.185 +    public static void checkClickedModifiersTest(int testModifier, MouseEvent event){
 172.186 +        int [] curStandardExModifiers = getStandardExArray(testModifier);
 172.187 +        int button = event.getButton();
 172.188 +        int modifiers = event.getModifiers();
 172.189 +        int modifiersEx = event.getModifiersEx();
 172.190 +        int index = (button - 4)*3 + 2;
 172.191 +        dumpValues(button, modifiers, modifiersStandard, modifiersEx, curStandardExModifiers[index]);
 172.192 +        if (modifiers != modifiersStandard){
 172.193 +            MessageLogger.reportError("Test failed :  Clicked. modifiers != modifiersStandard");
 172.194 +        }
 172.195 +
 172.196 +        if (modifiersEx != curStandardExModifiers[index]){
 172.197 +            MessageLogger.reportError("Test failed :  Clicked. modifiersEx != curStandardExModifiers");
 172.198 +        }
 172.199 +
 172.200 +     //check event.paramString() output
 172.201 +        HashMap <String, String> paramStringElements = tokenizeParamString(event.paramString());
 172.202 +        checkButton(paramStringElements, button);
 172.203 +        checkModifiers(testModifier, paramStringElements, button);
 172.204 +        checkExtModifiersOnReleaseClick(testModifier, paramStringElements, button);
 172.205 +    }
 172.206 +
 172.207 +    private static int[] getStandardExArray(int testModifier) {
 172.208 +        int [] curStandardExModifiers;
 172.209 +        switch (testModifier){
 172.210 +            case SHIFT:
 172.211 +                curStandardExModifiers = modifiersExStandardSHIFT;
 172.212 +                break;
 172.213 +            case CTRL:
 172.214 +                curStandardExModifiers = modifiersExStandardCTRL;
 172.215 +                break;
 172.216 +            case ALT:
 172.217 +                curStandardExModifiers = modifiersExStandardALT;
 172.218 +                break;
 172.219 +            default: //NONE by default
 172.220 +                curStandardExModifiers = modifiersExStandard;
 172.221 +        }
 172.222 +        return curStandardExModifiers;
 172.223 +    }
 172.224 +
 172.225 +    static Robot robot;
 172.226 +    public void init() {
 172.227 +        this.setLayout(new BorderLayout());
 172.228 +
 172.229 +        String[] instructions =
 172.230 +        {
 172.231 +            "This test should be used with the mouse having more then three buttons.",
 172.232 +            "Currently, " + MouseInfo.getNumberOfButtons() +" buttons are available.",
 172.233 +            "If there are less then three buttons, press PASS.",
 172.234 +            "1. Press each extra mouse button.",
 172.235 +            "2. For each mouse event its modifiers and ExModifiers will be printed.",
 172.236 +            "3. Verify that they are correct.",
 172.237 +            "4. Press Pass or Fail accordingly."
 172.238 +        };
 172.239 +//        Sysout.createDialogWithInstructions( instructions );
 172.240 +
 172.241 +//        addMouseListener(adapterTest1);
 172.242 +        try {
 172.243 +            robot  = new Robot();
 172.244 +        } catch (Exception e) {
 172.245 +            MessageLogger.reportError("Test failed. "+e);
 172.246 +        }
 172.247 +    }//End  init()
 172.248 +
 172.249 +    public void start() {
 172.250 +        //Get things going.  Request focus, set size, et cetera
 172.251 +        setSize(200,200);
 172.252 +        setVisible(true);
 172.253 +        validate();
 172.254 +        if (autorun) {
 172.255 +            testNONE();
 172.256 +            testSHIFT();
 172.257 +            testCTRL();
 172.258 +            testALT();
 172.259 +        } else {
 172.260 +            switch (testModifier){
 172.261 +                case SHIFT:
 172.262 +                    this.addMouseListener(adapterTest2);
 172.263 +                    break;
 172.264 +                case CTRL:
 172.265 +                    this.addMouseListener(adapterTest3);
 172.266 +                    break;
 172.267 +                case ALT:
 172.268 +                    this.addMouseListener(adapterTest4);
 172.269 +                    break;
 172.270 +                default:  //NONE by default
 172.271 +                    this.addMouseListener(adapterTest1);
 172.272 +            }
 172.273 +        }
 172.274 +    }// start()
 172.275 +
 172.276 +    //000000000000000000000000000000000000000000000000000000000000000
 172.277 +    public void testNONE(){
 172.278 +        this.addMouseListener(adapterTest1);
 172.279 +        robot.delay(1000);
 172.280 +        robot.mouseMove(getLocationOnScreen().x + getWidth()/2, getLocationOnScreen().y + getHeight()/2);
 172.281 +        for (int i = 3; i< mouseButtons.length; i++){
 172.282 +            System.out.println("testNONE() => " +mouseButtons[i] );
 172.283 +            robot.mousePress(mouseButtons[i]);
 172.284 +            robot.delay(100);
 172.285 +            robot.mouseRelease(mouseButtons[i]);
 172.286 +        }
 172.287 +        robot.delay(1000);
 172.288 +        this.removeMouseListener(adapterTest1);
 172.289 +    }
 172.290 +
 172.291 +    public void testSHIFT(){
 172.292 +        this.addMouseListener(adapterTest2);
 172.293 +        robot.delay(1000);
 172.294 +        robot.mouseMove(getLocationOnScreen().x + getWidth()/2, getLocationOnScreen().y + getHeight()/2);
 172.295 +        for (int i = 3; i< mouseButtons.length; i++){
 172.296 +            robot.keyPress(KeyEvent.VK_SHIFT);
 172.297 +            System.out.println("testSHIFT() => " +mouseButtons[i] );
 172.298 +            robot.mousePress(mouseButtons[i]);
 172.299 +            robot.delay(100);
 172.300 +            robot.mouseRelease(mouseButtons[i]);
 172.301 +            robot.keyRelease(KeyEvent.VK_SHIFT);
 172.302 +        }
 172.303 +        robot.delay(1000);
 172.304 +        this.removeMouseListener(adapterTest2);
 172.305 +    }
 172.306 +
 172.307 +    public void testCTRL(){
 172.308 +        this.addMouseListener(adapterTest3);
 172.309 +        robot.delay(1000);
 172.310 +        robot.mouseMove(getLocationOnScreen().x + getWidth()/2, getLocationOnScreen().y + getHeight()/2);
 172.311 +        for (int i = 3; i< mouseButtons.length; i++){
 172.312 +            robot.keyPress(KeyEvent.VK_CONTROL);
 172.313 +            System.out.println("testCTRL() => " +mouseButtons[i] );
 172.314 +            robot.mousePress(mouseButtons[i]);
 172.315 +            robot.delay(100);
 172.316 +            robot.mouseRelease(mouseButtons[i]);
 172.317 +            robot.keyRelease(KeyEvent.VK_CONTROL);
 172.318 +        }
 172.319 +        robot.delay(1000);
 172.320 +        this.removeMouseListener(adapterTest3);
 172.321 +    }
 172.322 +
 172.323 +    public void testALT(){
 172.324 +        this.addMouseListener(adapterTest4);
 172.325 +        robot.delay(1000);
 172.326 +        robot.mouseMove(getLocationOnScreen().x + getWidth()/2, getLocationOnScreen().y + getHeight()/2);
 172.327 +        for (int i = 3; i< mouseButtons.length; i++){
 172.328 +            robot.keyPress(KeyEvent.VK_ALT);
 172.329 +            System.out.println("testALT() => " +mouseButtons[i] );
 172.330 +            robot.mousePress(mouseButtons[i]);
 172.331 +            robot.delay(100);
 172.332 +            robot.mouseRelease(mouseButtons[i]);
 172.333 +            robot.keyRelease(KeyEvent.VK_ALT);
 172.334 +        }
 172.335 +        robot.delay(1000);
 172.336 +        this.removeMouseListener(adapterTest4);
 172.337 +    }
 172.338 +
 172.339 +    //**************************************************************************************************
 172.340 +    public static void dumpValues(int button, int modifiers, int modifiersStandard, int modifiersEx, int modifiersExStandard){
 172.341 +        System.out.println("Button = "+button + "Modifiers = "+ modifiers + "standard = "+ modifiersStandard);
 172.342 +        System.out.println("Button = "+button + "ModifiersEx = "+ modifiersEx + "standardEx = "+ modifiersExStandard);
 172.343 +    }
 172.344 +
 172.345 +    public static void initParams(String []s){
 172.346 +        if (s.length != 3){
 172.347 +            autorun = true;
 172.348 +            debug = false;
 172.349 +            testModifier = NONE;
 172.350 +        } else {
 172.351 +            autorun = Boolean.valueOf(s[0]);
 172.352 +            debug = Boolean.valueOf(s[1]);
 172.353 +
 172.354 +            if (s[2].equals("NONE")){
 172.355 +                testModifier = NONE;
 172.356 +            }
 172.357 +            if (s[2].equals("SHIFT")){
 172.358 +                testModifier = SHIFT;
 172.359 +            }
 172.360 +            if (s[2].equals("CTRL")){
 172.361 +                testModifier = CTRL;
 172.362 +            }
 172.363 +            if (s[2].equals("ALT")){
 172.364 +                testModifier = ALT;
 172.365 +            }
 172.366 +        }
 172.367 +        MessageLogger.setDebug(debug);
 172.368 +        System.out.println("Autorun : " +autorun);
 172.369 +        System.out.println("Debug mode : " +debug);
 172.370 +        System.out.println("Modifier to verify : " + testModifier);
 172.371 +    }
 172.372 +
 172.373 +    public static void initAdapters(){
 172.374 +        adapterTest1 = new CheckingModifierAdapter(NONE);
 172.375 +        adapterTest2 = new CheckingModifierAdapter(SHIFT);
 172.376 +        adapterTest3 = new CheckingModifierAdapter(CTRL);
 172.377 +        adapterTest4 = new CheckingModifierAdapter(ALT);
 172.378 +    }
 172.379 +
 172.380 +    public static void initVars(){
 172.381 +        int [] tmp = new int [MouseInfo.getNumberOfButtons()];
 172.382 +        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
 172.383 +            tmp[i] = InputEvent.getMaskForButton(i+1);
 172.384 +            //            System.out.println("TEST: "+tmp[i]);
 172.385 +        }
 172.386 +
 172.387 +        mouseButtons = Arrays.copyOf(tmp, tmp.length);
 172.388 +
 172.389 +        for (int i = 0; i < mouseButtons.length; i++){
 172.390 +            System.out.println("MouseArray [i] == "+mouseButtons[i]);
 172.391 +        }
 172.392 +
 172.393 +        mouseButtonDownMasks = Arrays.copyOf(tmp, tmp.length);
 172.394 +
 172.395 +        // So we need to get the number of extra buttons on the mouse:  "MouseInfo.getNumberOfButtons() - 3"
 172.396 +        // and multyply on 3 because each button will generate three events : PRESS, RELEASE and CLICK.
 172.397 +        tmp = new int [(MouseInfo.getNumberOfButtons()-3)*3];
 172.398 +        Arrays.fill(tmp, 0);
 172.399 +
 172.400 +        for (int i = 0, j = 3; i < tmp.length; i = i + 3, j++){
 172.401 +            tmp[i] = mouseButtonDownMasks[j];
 172.402 +        }
 172.403 +        modifiersExStandard = Arrays.copyOf(tmp, tmp.length);
 172.404 +
 172.405 +        Arrays.fill(tmp, InputEvent.SHIFT_DOWN_MASK);
 172.406 +        for (int i = 0, j = 3; i < MouseInfo.getNumberOfButtons(); i = i + 3, j++){
 172.407 +            tmp[i] = tmp[j] | mouseButtonDownMasks[j];
 172.408 +        }
 172.409 +        modifiersExStandardSHIFT = Arrays.copyOf(tmp, tmp.length);
 172.410 +
 172.411 +        Arrays.fill(tmp, InputEvent.CTRL_DOWN_MASK);
 172.412 +        for (int i = 0, j = 3; i < MouseInfo.getNumberOfButtons(); i = i + 3, j++){
 172.413 +            tmp[i] = tmp[j] | mouseButtonDownMasks[j];
 172.414 +        }
 172.415 +        modifiersExStandardCTRL = Arrays.copyOf(tmp, tmp.length);
 172.416 +
 172.417 +        Arrays.fill(tmp, InputEvent.ALT_DOWN_MASK);
 172.418 +        for (int i = 0, j = 3; i < MouseInfo.getNumberOfButtons(); i = i + 3, j++){
 172.419 +            tmp[i] = tmp[j] | mouseButtonDownMasks[j];
 172.420 +        }
 172.421 +        modifiersExStandardALT = Arrays.copyOf(tmp, tmp.length);
 172.422 +    }
 172.423 +
 172.424 +    public static void main(String []s){
 172.425 +        if (MouseInfo.getNumberOfButtons() < 4){
 172.426 +            System.out.println("There are less then 4 buttons on the mouse. The test may not be accomplished. Skipping.");
 172.427 +            return;
 172.428 +        }
 172.429 +        initVars();
 172.430 +        MouseModifiersUnitTest_Extra frame = new MouseModifiersUnitTest_Extra();
 172.431 +        frame.initParams(s);
 172.432 +        frame.init();
 172.433 +        initAdapters();
 172.434 +        frame.start();
 172.435 +    }
 172.436 +
 172.437 +}// class
 172.438 +
 172.439 +/* A class that invoke appropriate verification
 172.440 + * routine with current modifier.
 172.441 + */
 172.442 +class CheckingModifierAdapter extends MouseAdapter{
 172.443 +    int modifier;
 172.444 +    public CheckingModifierAdapter(int modifier){
 172.445 +        this.modifier = modifier;
 172.446 +    }
 172.447 +
 172.448 +    public void mousePressed(MouseEvent e) {
 172.449 +        System.out.println("PRESSED "+e);
 172.450 +        if (e.getButton() <= MouseEvent.BUTTON3) {
 172.451 +            System.out.println("Standard button affected. Skip.");
 172.452 +        } else {
 172.453 +            MouseModifiersUnitTest_Extra.checkPressedModifiersTest(modifier, e);
 172.454 +        }
 172.455 +    }
 172.456 +    public void mouseReleased(MouseEvent e) {
 172.457 +        System.out.println("RELEASED "+e);
 172.458 +        if (e.getButton() <= MouseEvent.BUTTON3) {
 172.459 +            System.out.println("Standard button affected. Skip.");
 172.460 +        } else {
 172.461 +            MouseModifiersUnitTest_Extra.checkReleasedModifiersTest(modifier, e);
 172.462 +        }
 172.463 +    }
 172.464 +    public void mouseClicked(MouseEvent e) {
 172.465 +        System.out.println("CLICKED "+e);
 172.466 +        if (e.getButton() <= MouseEvent.BUTTON3) {
 172.467 +            System.out.println("Standard button affected. Skip.");
 172.468 +        } else {
 172.469 +            MouseModifiersUnitTest_Extra.checkClickedModifiersTest(modifier, e);
 172.470 +        }
 172.471 +    }
 172.472 +}
 172.473 +//Utility class that could report a message depending on current purpose of the test run
 172.474 +class MessageLogger{
 172.475 +    private static boolean debug;
 172.476 +
 172.477 +    public static void setDebug(boolean d){
 172.478 +        debug = d;
 172.479 +        log("Switch to "+ ((debug)?"debug":"trial") +" mode");
 172.480 +    }
 172.481 +
 172.482 +    public static void log(String message){
 172.483 +        System.out.println(message);
 172.484 +    }
 172.485 +
 172.486 +    public static void reportError(String message){
 172.487 +        if (debug){
 172.488 +            System.out.println(message);
 172.489 +        } else {
 172.490 +            throw new RuntimeException(message);
 172.491 +        }
 172.492 +    }
 172.493 +}
   173.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   173.2 +++ b/test/java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java	Wed Feb 18 10:05:41 2009 -0800
   173.3 @@ -0,0 +1,598 @@
   173.4 +/*
   173.5 +  @test %I% %E%
   173.6 +  @bug 6315717
   173.7 +  @summary verifies that modifiers are correct for standard (1, 2, 3, wheel) mouse buttons
   173.8 +  @author Andrei Dmitriev : area=awt.mouse
   173.9 +  @run main MouseModifiersUnitTest_Standard
  173.10 + */
  173.11 +
  173.12 +import java.awt.*;
  173.13 +import java.awt.event.*;
  173.14 +import java.util.HashMap;
  173.15 +import java.util.StringTokenizer;
  173.16 +import java.util.Vector;
  173.17 +
  173.18 +//the test verifies:
  173.19 +// 1) verifies that modifiers are correct for standard (1, 2, 3) mouse buttons
  173.20 +// TODO: 2) verifies that modifiers are correct for wheel
  173.21 +// TODO: 3)
  173.22 +// Case1. the test posts BUTTONx_MASK and verifies that paramString() contains correct modifiers and exModifiers
  173.23 +// Case2. the test posts BUTTONx_DOWN_MASK and verifies that paramString() contains correct modifiers and exModifiers
  173.24 +// Case3. the test posts getMaskForButton(n) and verifies that paramString() contains correct modifiers and exModifiers
  173.25 +// repeat all cases with SHIFT/ALT/CTRL modifiers verify that paramString() contains correct modifiers and exModifiers
  173.26 +// I'm verifying button, modifiers and extModifiers for now.
  173.27 +
  173.28 +public class MouseModifiersUnitTest_Standard {
  173.29 +    static final int NONE = 0;
  173.30 +    static final int SHIFT = 1;
  173.31 +    static final int CTRL = 2;
  173.32 +    static final int ALT = 3;
  173.33 +    static boolean debug = true; //dump all errors (debug) or throw first(under jtreg) exception
  173.34 +    static boolean autorun = false; //use robot or manual run
  173.35 +    static int testModifier = NONE;
  173.36 +    //    static String testModifier = "NONE";
  173.37 +    static CheckingModifierAdapter adapterTest1;
  173.38 +    static CheckingModifierAdapter adapterTest2;
  173.39 +    static CheckingModifierAdapter adapterTest3;
  173.40 +    static CheckingModifierAdapter adapterTest4;
  173.41 +    static Frame f;
  173.42 +    final static int [] mouseButtons = new int [] {MouseEvent.BUTTON1_MASK, MouseEvent.BUTTON2_MASK, MouseEvent.BUTTON3_MASK};
  173.43 +    // BUTTON1, 2, 3 press-release.
  173.44 +    final static int [] modifiersStandardTestNONE = new int[] {MouseEvent.BUTTON1_MASK, MouseEvent.BUTTON1_MASK, MouseEvent.BUTTON1_MASK,
  173.45 +    MouseEvent.BUTTON2_MASK, MouseEvent.BUTTON2_MASK, MouseEvent.BUTTON2_MASK,
  173.46 +    MouseEvent.BUTTON3_MASK, MouseEvent.BUTTON3_MASK, MouseEvent.BUTTON3_MASK };
  173.47 +    final static int [] modifiersExStandardTestNONE = new int[] {MouseEvent.BUTTON1_DOWN_MASK, 0, 0,
  173.48 +    MouseEvent.BUTTON2_DOWN_MASK, 0, 0,
  173.49 +    MouseEvent.BUTTON3_DOWN_MASK, 0, 0};
  173.50 +    // BUTTON1, 2, 3 press-release with shift modifier
  173.51 +    final static int [] modifiersStandardTestSHIFT = new int[] {MouseEvent.BUTTON1_MASK|InputEvent.SHIFT_MASK, MouseEvent.BUTTON1_MASK|InputEvent.SHIFT_MASK, MouseEvent.BUTTON1_MASK|InputEvent.SHIFT_MASK,
  173.52 +    MouseEvent.BUTTON2_MASK|InputEvent.SHIFT_MASK, MouseEvent.BUTTON2_MASK|InputEvent.SHIFT_MASK, MouseEvent.BUTTON2_MASK|InputEvent.SHIFT_MASK,
  173.53 +    MouseEvent.BUTTON3_MASK|InputEvent.SHIFT_MASK, MouseEvent.BUTTON3_MASK|InputEvent.SHIFT_MASK, MouseEvent.BUTTON3_MASK|InputEvent.SHIFT_MASK };
  173.54 +    final static int [] modifiersExStandardTestSHIFT = new int[] {MouseEvent.BUTTON1_DOWN_MASK|InputEvent.SHIFT_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK,
  173.55 +    MouseEvent.BUTTON2_DOWN_MASK|InputEvent.SHIFT_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK,
  173.56 +    MouseEvent.BUTTON3_DOWN_MASK|InputEvent.SHIFT_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK, InputEvent.SHIFT_DOWN_MASK};
  173.57 +    // BUTTON1, 2, 3 press-release with CTRL modifier
  173.58 +    final static int [] modifiersStandardTestCTRL = new int[] {MouseEvent.BUTTON1_MASK|InputEvent.CTRL_MASK, MouseEvent.BUTTON1_MASK|InputEvent.CTRL_MASK, MouseEvent.BUTTON1_MASK|InputEvent.CTRL_MASK,
  173.59 +    MouseEvent.BUTTON2_MASK|InputEvent.CTRL_MASK, MouseEvent.BUTTON2_MASK|InputEvent.CTRL_MASK, MouseEvent.BUTTON2_MASK|InputEvent.CTRL_MASK,
  173.60 +    MouseEvent.BUTTON3_MASK|InputEvent.CTRL_MASK, MouseEvent.BUTTON3_MASK|InputEvent.CTRL_MASK, MouseEvent.BUTTON3_MASK|InputEvent.CTRL_MASK };
  173.61 +    final static int [] modifiersExStandardTestCTRL = new int[] {MouseEvent.BUTTON1_DOWN_MASK|InputEvent.CTRL_DOWN_MASK, InputEvent.CTRL_DOWN_MASK, InputEvent.CTRL_DOWN_MASK,
  173.62 +    MouseEvent.BUTTON2_DOWN_MASK|InputEvent.CTRL_DOWN_MASK, InputEvent.CTRL_DOWN_MASK, InputEvent.CTRL_DOWN_MASK,
  173.63 +    MouseEvent.BUTTON3_DOWN_MASK|InputEvent.CTRL_DOWN_MASK, InputEvent.CTRL_DOWN_MASK, InputEvent.CTRL_DOWN_MASK};
  173.64 +
  173.65 +    // BUTTON1, 2, 3 press-release with ALT modifier
  173.66 +    final static int [] modifiersStandardTestALT = new int[] {MouseEvent.BUTTON1_MASK|InputEvent.ALT_MASK, MouseEvent.BUTTON1_MASK|InputEvent.ALT_MASK, MouseEvent.BUTTON1_MASK|InputEvent.ALT_MASK,
  173.67 +    MouseEvent.BUTTON2_MASK|InputEvent.ALT_MASK, MouseEvent.BUTTON2_MASK|InputEvent.ALT_MASK, MouseEvent.BUTTON2_MASK|InputEvent.ALT_MASK,
  173.68 +    MouseEvent.BUTTON3_MASK|InputEvent.ALT_MASK, MouseEvent.BUTTON3_MASK|InputEvent.ALT_MASK, MouseEvent.BUTTON3_MASK|InputEvent.ALT_MASK };
  173.69 +    final static int [] modifiersExStandardTestALT = new int[] {MouseEvent.BUTTON1_DOWN_MASK|InputEvent.ALT_DOWN_MASK, InputEvent.ALT_DOWN_MASK, InputEvent.ALT_DOWN_MASK,
  173.70 +    MouseEvent.BUTTON2_DOWN_MASK|InputEvent.ALT_DOWN_MASK, InputEvent.ALT_DOWN_MASK, InputEvent.ALT_DOWN_MASK,
  173.71 +    MouseEvent.BUTTON3_DOWN_MASK|InputEvent.ALT_DOWN_MASK, InputEvent.ALT_DOWN_MASK, InputEvent.ALT_DOWN_MASK};
  173.72 +
  173.73 +    static Robot robot;
  173.74 +
  173.75 +    public static void main(String s[]){
  173.76 +        initParams(s);
  173.77 +        initAdapters();
  173.78 +        f = new Frame();
  173.79 +        final int [] modifiers = {InputEvent.SHIFT_MASK, InputEvent.CTRL_MASK};
  173.80 +        final String [] modifierNames = {"InputEvent.SHIFT_MASK", "InputEvent.CTRL_MASK"};
  173.81 +        f.setLayout(new FlowLayout());
  173.82 +        f.addMouseWheelListener(new MouseWheelListener() {
  173.83 +            public void mouseWheelMoved(MouseWheelEvent e) {
  173.84 +                System.out.println("WHEEL "+e);
  173.85 +            }
  173.86 +        });
  173.87 +        f.setSize(300, 300);
  173.88 +        f.setVisible(true);
  173.89 +
  173.90 +        try {
  173.91 +            robot = new Robot();
  173.92 +            robot.delay(500);
  173.93 +            robot.mouseMove(f.getLocationOnScreen().x + f.getWidth()/2, f.getLocationOnScreen().y + f.getHeight()/2);
  173.94 +            if (autorun) {
  173.95 +                //testing buttons 1, 2, 3 only
  173.96 +                testPlainButtons();
  173.97 +                robot.delay(500);
  173.98 +
  173.99 +                //testing buttons 1, 2, 3 with SHIFT, CTRL, ALT keyboard modifiers
 173.100 +                testButtonsWithShift();
 173.101 +                robot.delay(500);
 173.102 +
 173.103 +                testButtonsWithControl();
 173.104 +                robot.delay(500);
 173.105 +
 173.106 +                testButtonsWithAlt();
 173.107 +                robot.delay(500);
 173.108 +            } else {
 173.109 +                switch (testModifier){
 173.110 +                    case SHIFT:
 173.111 +                        f.addMouseListener(adapterTest2);
 173.112 +                        break;
 173.113 +                    case CTRL:
 173.114 +                        f.addMouseListener(adapterTest3);
 173.115 +                        break;
 173.116 +                    case ALT:
 173.117 +                        f.addMouseListener(adapterTest4);
 173.118 +                        break;
 173.119 +                    default:  //NONE inclusive
 173.120 +                        f.addMouseListener(adapterTest1);
 173.121 +                }
 173.122 +            }
 173.123 +        } catch (Exception e){
 173.124 +            throw new RuntimeException("Test failed.");
 173.125 +        }
 173.126 +
 173.127 +    }
 173.128 +
 173.129 +    public static void initAdapters(){
 173.130 +        adapterTest1 = new CheckingModifierAdapter(NONE);
 173.131 +        adapterTest2 = new CheckingModifierAdapter(SHIFT);
 173.132 +        adapterTest3 = new CheckingModifierAdapter(CTRL);
 173.133 +        adapterTest4 = new CheckingModifierAdapter(ALT);
 173.134 +    }
 173.135 +
 173.136 +    /*======================================================================*/
 173.137 +    public static void checkPressedModifiersTest(int testModifier, MouseEvent event){
 173.138 +        int [] curStandardModifiers = getStandardArray(testModifier);
 173.139 +        int [] curStandardExModifiers = getStandardExArray(testModifier);
 173.140 +        int button = event.getButton();
 173.141 +        int modifiers = event.getModifiers();
 173.142 +        int modifiersEx = event.getModifiersEx();
 173.143 +        int index = (button - 1)*3;
 173.144 +        //        int index = (button - 4)*3;
 173.145 +        dumpValues(button, modifiers, curStandardModifiers[index], modifiersEx, curStandardExModifiers[index]);
 173.146 +        if (modifiers != curStandardModifiers[index]){
 173.147 +            if (debug){
 173.148 +                System.out.println("Test failed :  Pressed. modifiers != modifiersStandard");
 173.149 +            } else {
 173.150 +                throw new RuntimeException("Test failed :  Pressed. modifiers != modifiersStandard");
 173.151 +            }
 173.152 +        }
 173.153 +
 173.154 +        if (modifiersEx != curStandardExModifiers[index]){
 173.155 +//            System.out.println(">>>>>>>>>>>>>>> Pressed. modifiersEx "+modifiersEx +" : "+!= curStandardExModifiers");
 173.156 +            if (debug){
 173.157 +                System.out.println("Test failed :  Pressed. modifiersEx != curStandardExModifiers");
 173.158 +            } else {
 173.159 +                throw new RuntimeException("Test failed :  Pressed. modifiersEx != curStandardExModifiers");
 173.160 +            }
 173.161 +        }
 173.162 +        HashMap <String, String> paramStringElements = tokenizeParamString(event.paramString());
 173.163 +        System.out.println(event.paramString());
 173.164 +        checkButton(paramStringElements, button);
 173.165 +        checkModifiers(testModifier, paramStringElements, button);
 173.166 +        checkExtModifiersOnPress(testModifier, paramStringElements, button);
 173.167 +    }
 173.168 +
 173.169 +    public static void checkButton(HashMap<String, String> h, int button){
 173.170 +        if (h.get("button") == null) {
 173.171 +            throw new RuntimeException("Test failed :  Clicked. button is absent in paramString()");
 173.172 +        }
 173.173 +        if (Integer.parseInt(h.get("button")) != button) {
 173.174 +            throw new RuntimeException("Test failed :  Clicked. button in paramString() doesn't equal to button being pressed.");
 173.175 +        }
 173.176 +    }
 173.177 +
 173.178 +    public static void checkExtModifiersOnPress(int testModifier, HashMap h, int button){
 173.179 +        String ethalon = "";
 173.180 +        if (h.get("extModifiers") == null) {
 173.181 +            System.out.println("Test failed :  Pressed. extModifiers == null");
 173.182 +            throw new RuntimeException("Test failed :  Pressed. extModifiers == null");
 173.183 +        }
 173.184 +        switch (testModifier){
 173.185 +            case SHIFT:{
 173.186 +                ethalon = "Shift+";
 173.187 +                break;
 173.188 +            }
 173.189 +            case ALT:{
 173.190 +                ethalon = "Alt+";
 173.191 +                break;
 173.192 +            }
 173.193 +            case CTRL:{
 173.194 +                ethalon = "Ctrl+";
 173.195 +                break;
 173.196 +            }
 173.197 +            default: {
 173.198 +                ethalon = "";
 173.199 +            }
 173.200 +            ethalon = ethalon + "Button" +button;
 173.201 +
 173.202 +            if (!h.get("extModifiers").equals(ethalon)) {
 173.203 +                System.out.println("Test failed :  Pressed. extModifiers = " +h.get("extModifiers")+" instead of : "+ethalon);
 173.204 +                throw new RuntimeException("Test failed :  Pressed. extModifiers = " +h.get("extModifiers")+" instead of : "+ethalon);
 173.205 +            }
 173.206 +        }
 173.207 +    }
 173.208 +
 173.209 +
 173.210 +
 173.211 +    public static void checkModifiers(int testModifier, HashMap<String, String> h, int button){
 173.212 +        // none of modifiers should be null
 173.213 +        if (h.get("modifiers") == null) {
 173.214 +            System.out.println("Test failed : modifiers == null");
 173.215 +            throw new RuntimeException("Test failed :  modifiers == null");
 173.216 +        }
 173.217 +        Vector <String> modifierElements = tokenizeModifiers(h.get("modifiers"));
 173.218 +        //check that ButtonX is there
 173.219 +        String buttonEthalon = "Button" + button;
 173.220 +        if (modifierElements.contains(buttonEthalon)){
 173.221 +            modifierElements.remove(buttonEthalon);
 173.222 +        } else {
 173.223 +            System.out.println("Test failed :  modifiers doesn't contain Button "+h.get("modifiers"));
 173.224 +            throw new RuntimeException("Test failed :  modifiers doesn't contain Button "+h.get("modifiers"));
 173.225 +        }
 173.226 +
 173.227 +
 173.228 +        //Check all explicitly pressed modifires
 173.229 +//        boolean altIncluded = false; //don't duplicate Alt when ALT is pressed and BUTTON2_MASK.
 173.230 +        String excplicitModifier = "";
 173.231 +        boolean altIncluded = false;
 173.232 +        switch (testModifier){
 173.233 +            case SHIFT:{
 173.234 +                excplicitModifier = "Shift";
 173.235 +                break;
 173.236 +            }
 173.237 +            case ALT:{
 173.238 +                excplicitModifier = "Alt";
 173.239 +                altIncluded = true; //there should be only on "Alt" for two modifiers. So check it.
 173.240 +                break;
 173.241 +            }
 173.242 +            case CTRL:{
 173.243 +                excplicitModifier = "Ctrl";
 173.244 +                break;
 173.245 +            }
 173.246 +        }
 173.247 +        if (!excplicitModifier.equals("")){
 173.248 +            if (modifierElements.contains(excplicitModifier)){
 173.249 +                modifierElements.remove(excplicitModifier);
 173.250 +            } else {
 173.251 +                System.out.println("Test failed :  modifiers doesn't contain explicit modifier "+excplicitModifier + " in "+ h.get("modifiers"));
 173.252 +                throw new RuntimeException("Test failed :  modifiers doesn't contain explicit modifier "+excplicitModifier + " in "+ h.get("modifiers"));
 173.253 +            }
 173.254 +        }
 173.255 +
 173.256 +        //Button 2 and 3 reports about Alt+Button2 and Meta+Button3 respectively.
 173.257 +        //Check these values too
 173.258 +        String extraModifiers = "";
 173.259 +        String extraModifiersButton3 = "";
 173.260 +        switch (button){
 173.261 +            //BUTTON1 with ALT reports about Alt+Button1+Button2.
 173.262 +            //We should fix this but I would not change this.
 173.263 +            case 1: {
 173.264 +                //Alt+Button1+Button2:
 173.265 +                // 1) we already handled "Alt" in excplicitModifier
 173.266 +                // 2) we already took "Button1" in buttonEthalon
 173.267 +                // 3) so "Button2" is only remained.
 173.268 +                // This should only happen when ALT+Button1 is pressed
 173.269 +                if (altIncluded){
 173.270 +                    extraModifiers = "Button2";
 173.271 +                }
 173.272 +                break;
 173.273 +            }
 173.274 +            case 2: {
 173.275 +                //Alt+Button2 report about "Alt+Button2".
 173.276 +                extraModifiers = "Alt";
 173.277 +                break;
 173.278 +            }
 173.279 +            case 3: {
 173.280 +                //ALT+BUTTON3 reports about "Alt+Meta+Button2+Button3"
 173.281 +                // This should only happen when ALT+Button3 is pressed
 173.282 +                extraModifiers = "Meta";
 173.283 +                if (altIncluded){
 173.284 +                    extraModifiersButton3 = "Button2";
 173.285 +                }
 173.286 +                break;
 173.287 +            }
 173.288 +        }//switch
 173.289 +
 173.290 +        if (!extraModifiers.equals("")){
 173.291 +            if (modifierElements.contains(extraModifiers)){
 173.292 +                modifierElements.remove(extraModifiers);
 173.293 +            } else {
 173.294 +                //we may already removed "Alt" when filtered explicit modifiers.
 173.295 +                //Here is no failure in this case.
 173.296 +                if (!altIncluded) {
 173.297 +                    System.out.println("Test failed :  modifiers doesn't contain a modifier from BUTTON2 or BUTTON3 "+extraModifiers + " in "+ h.get("modifiers"));
 173.298 +                    throw new RuntimeException("Test failed :  modifiers doesn't contain a modifier from BUTTON2 or BUTTON3 "+extraModifiers + " in "+ h.get("modifiers"));
 173.299 +                }
 173.300 +            }
 173.301 +        }
 173.302 +
 173.303 +        if (!extraModifiersButton3.equals("")){
 173.304 +            if (modifierElements.contains(extraModifiersButton3)){
 173.305 +                modifierElements.remove(extraModifiersButton3);
 173.306 +            } else {
 173.307 +                System.out.println("Test failed :  modifiers doesn't contain a modifier from BUTTON2 or BUTTON3 "+extraModifiersButton3 + " in "+ h.get("modifiers"));
 173.308 +                throw new RuntimeException("Test failed :  modifiers doesn't contain a modifier from BUTTON2 or BUTTON3 "+extraModifiersButton3 + " in "+ h.get("modifiers"));
 173.309 +            }
 173.310 +        }
 173.311 +
 173.312 +        //the length of vector should now be zero
 173.313 +        if (!modifierElements.isEmpty()){
 173.314 +            System.out.println("Test failed :  there is some more elements in modifiers that shouldn't be there: "+h.get("modifiers"));
 173.315 +            throw new RuntimeException("Test failed :  there is some more elements in modifiers that shouldn't be there: "+h.get("modifiers"));
 173.316 +        }
 173.317 +    }
 173.318 +
 173.319 +    public static void checkExtModifiersOnReleaseClick(int testModifier, HashMap h, int button){
 173.320 +        String ethalon = "";
 173.321 +        switch (testModifier){
 173.322 +            case SHIFT:{
 173.323 +                ethalon = "Shift+";
 173.324 +                break;
 173.325 +            }
 173.326 +            case ALT:{
 173.327 +                ethalon = "Alt+";
 173.328 +                break;
 173.329 +            }
 173.330 +            case CTRL:{
 173.331 +                ethalon = "Ctrl+";
 173.332 +                break;
 173.333 +            }
 173.334 +            default: {
 173.335 +                if (h.get("extModifiers") != null) {
 173.336 +                    System.out.println("Test failed :  Released. extModifiers != null but no modifiers keys are pressed");
 173.337 +                    throw new RuntimeException("Test failed :  Released. extModifiers != null but no modifiers keys are pressed");
 173.338 +                } else {
 173.339 +                    //no modifiers
 173.340 +                    return;
 173.341 +                }
 173.342 +            }
 173.343 +        }
 173.344 +        if (h.get("extModifiers").equals(ethalon)) {
 173.345 +            System.out.println("Test failed :  Released. extModifiers = "+ h.get("extModifiers") +" instead of : "+ethalon);
 173.346 +            throw new RuntimeException("Test failed :  Released. extModifiers = "+ h.get("extModifiers") +" instead of : "+ethalon);
 173.347 +        }
 173.348 +    }
 173.349 +
 173.350 +    public static void checkReleasedModifiersTest(int testModifier, MouseEvent event){
 173.351 +        int [] curStandardModifiers = getStandardArray(testModifier);
 173.352 +        int [] curStandardExModifiers = getStandardExArray(testModifier);
 173.353 +        //        int index = (button - 4)*3 + 1;
 173.354 +        int button = event.getButton();
 173.355 +        int modifiers = event.getModifiers();
 173.356 +        int modifiersEx = event.getModifiersEx();
 173.357 +        int index = (button - 1)*3 + 1;
 173.358 +        dumpValues(button, modifiers, curStandardModifiers[index], modifiersEx, curStandardExModifiers[index]);
 173.359 +        if (modifiers != curStandardModifiers[index]){
 173.360 +            if (debug){
 173.361 +                System.out.println("Test failed :  Released. modifiers != modifiersStandard");
 173.362 +            } else {
 173.363 +                throw new RuntimeException("Test failed :  Released. modifiers != modifiersStandard");
 173.364 +            }
 173.365 +        }
 173.366 +        if (modifiersEx != curStandardExModifiers[index]){
 173.367 +            if (debug){
 173.368 +                System.out.println("Test failed :  Released. modifiersEx != curStandardExModifiers");
 173.369 +            } else {
 173.370 +                throw new RuntimeException("Test failed :  Released. modifiersEx != curStandardExModifiers");
 173.371 +            }
 173.372 +        }
 173.373 +        HashMap <String, String> paramStringElements = tokenizeParamString(event.paramString());
 173.374 +        System.out.println(event.paramString());
 173.375 +        checkButton(paramStringElements, button);
 173.376 +        checkModifiers(testModifier, paramStringElements, button);
 173.377 +        checkExtModifiersOnReleaseClick(testModifier, paramStringElements, button);
 173.378 +    }
 173.379 +
 173.380 +    public static void checkClickedModifiersTest(int testModifier, MouseEvent event){
 173.381 +        int [] curStandardModifiers = getStandardArray(testModifier);
 173.382 +        int [] curStandardExModifiers = getStandardExArray(testModifier);
 173.383 +        //        int index = (button - 4)*3 + 2;
 173.384 +        int button = event.getButton();
 173.385 +        int modifiers = event.getModifiers();
 173.386 +        int modifiersEx = event.getModifiersEx();
 173.387 +        int index = (button - 1)*3 + 2;
 173.388 +        dumpValues(button, modifiers, curStandardModifiers[index], modifiersEx, curStandardExModifiers[index]);
 173.389 +        if (modifiers != curStandardModifiers[index]){
 173.390 +            if (debug){
 173.391 +                System.out.println("Test failed :  Clicked. modifiers != modifiersStandard");
 173.392 +            } else {
 173.393 +                throw new RuntimeException("Test failed :  Clicked. modifiers != modifiersStandard");
 173.394 +            }
 173.395 +        }
 173.396 +        if (modifiersEx != curStandardExModifiers[index]){
 173.397 +            if (debug){
 173.398 +                System.out.println("Test failed :  Clicked. modifiersEx != curStandardExModifiers");
 173.399 +            } else {
 173.400 +                throw new RuntimeException("Test failed :  Clicked. modifiersEx != curStandardExModifiers");
 173.401 +            }
 173.402 +        }
 173.403 +        HashMap <String, String> paramStringElements = tokenizeParamString(event.paramString());
 173.404 +        checkButton(paramStringElements, button);
 173.405 +        checkModifiers(testModifier, paramStringElements, button);
 173.406 +        checkExtModifiersOnReleaseClick(testModifier, paramStringElements, button);
 173.407 +    }
 173.408 +    /*======================================================================*/
 173.409 +
 173.410 +    public static HashMap<String, String> tokenizeParamString(String param){
 173.411 +        HashMap <String, String> params = new HashMap<String, String>();
 173.412 +        StringTokenizer st = new StringTokenizer(param, ",=");
 173.413 +        while (st.hasMoreTokens()){
 173.414 +            String tmp = st.nextToken();
 173.415 +//            System.out.println("PARSER : "+tmp);
 173.416 +            if (tmp.equals("button") ||
 173.417 +                    tmp.equals("modifiers") ||
 173.418 +                    tmp.equals("extModifiers")) {
 173.419 +                params.put(tmp, st.nextToken());
 173.420 +            }
 173.421 +        }
 173.422 +        return params;
 173.423 +    }
 173.424 +
 173.425 +    public static Vector<String> tokenizeModifiers(String modifierList){
 173.426 +        Vector<String> modifiers = new Vector<String>();
 173.427 +        StringTokenizer st = new StringTokenizer(modifierList, "+");
 173.428 +        while (st.hasMoreTokens()){
 173.429 +            String tmp = st.nextToken();
 173.430 +            modifiers.addElement(tmp);
 173.431 +            System.out.println("MODIFIER PARSER : "+tmp);
 173.432 +        }
 173.433 +        return modifiers;
 173.434 +    }
 173.435 +
 173.436 +
 173.437 +    //test BUTTON1, 2 and 3 without any modifiers keys
 173.438 +    public static void  testPlainButtons(){
 173.439 +        System.out.println("Testing buttons without modifiers.");
 173.440 +        f.addMouseListener(adapterTest1);
 173.441 +        for (int button : mouseButtons){
 173.442 +            robot.mousePress(button);
 173.443 +            robot.delay(100);
 173.444 +            robot.mouseRelease(button);
 173.445 +        }
 173.446 +        robot.delay(1000);
 173.447 +        f.removeMouseListener(adapterTest1);
 173.448 +    }
 173.449 +
 173.450 +    //test BUTTON1, 2 and 3 with SHIFT key
 173.451 +    public static void  testButtonsWithShift(){
 173.452 +        System.out.println("Testing buttons with SHIFT modifier.");
 173.453 +        f.addMouseListener(adapterTest2);
 173.454 +
 173.455 +        for (int button : mouseButtons){
 173.456 +            robot.keyPress(KeyEvent.VK_SHIFT);
 173.457 +            robot.mousePress(button);
 173.458 +            robot.delay(100);
 173.459 +            robot.mouseRelease(button);
 173.460 +            robot.keyRelease(KeyEvent.VK_SHIFT);
 173.461 +        }
 173.462 +        robot.delay(1000);
 173.463 +        f.removeMouseListener(adapterTest2);
 173.464 +    }
 173.465 +
 173.466 +    //test BUTTON1, 2 and 3 with CTRL key
 173.467 +    public static void  testButtonsWithControl(){
 173.468 +        System.out.println("Testing buttons with CONTROL modifier.");
 173.469 +        f.addMouseListener(adapterTest3);
 173.470 +        for (int button : mouseButtons){
 173.471 +            robot.keyPress(KeyEvent.VK_CONTROL);
 173.472 +            robot.mousePress(button);
 173.473 +            robot.delay(100);
 173.474 +            robot.mouseRelease(button);
 173.475 +            robot.keyRelease(KeyEvent.VK_CONTROL);
 173.476 +        }
 173.477 +        robot.delay(1000);
 173.478 +        f.removeMouseListener(adapterTest3);
 173.479 +    }
 173.480 +
 173.481 +    //test BUTTON1, 2 and 3 with ALT key
 173.482 +    public static void  testButtonsWithAlt(){
 173.483 +        System.out.println("Testing buttons with ALT modifier.");
 173.484 +        f.addMouseListener(adapterTest4);
 173.485 +        for (int button : mouseButtons){
 173.486 +            robot.keyPress(KeyEvent.VK_ALT);
 173.487 +            robot.mousePress(button);
 173.488 +            robot.delay(100);
 173.489 +            robot.mouseRelease(button);
 173.490 +            robot.keyRelease(KeyEvent.VK_ALT);
 173.491 +        }
 173.492 +        robot.delay(1000);
 173.493 +        f.removeMouseListener(adapterTest4);
 173.494 +    }
 173.495 +
 173.496 +    public static void initParams(String []s){
 173.497 +        if (s.length != 3){
 173.498 +            autorun = true;
 173.499 +            debug = false;
 173.500 +            testModifier = NONE;
 173.501 +        } else {
 173.502 +            autorun = Boolean.valueOf(s[0]);
 173.503 +            debug = Boolean.valueOf(s[1]);
 173.504 +
 173.505 +            if (s[2].equals("NONE")){
 173.506 +                testModifier = NONE;
 173.507 +            }
 173.508 +            if (s[2].equals("SHIFT")){
 173.509 +                testModifier = SHIFT;
 173.510 +            }
 173.511 +            if (s[2].equals("CTRL")){
 173.512 +                testModifier = CTRL;
 173.513 +            }
 173.514 +            if (s[2].equals("ALT")){
 173.515 +                testModifier = ALT;
 173.516 +            }
 173.517 +        }
 173.518 +        System.out.println("Autorun : " +autorun);
 173.519 +        System.out.println("Debug mode : " +debug);
 173.520 +        System.out.println("Modifier to verify : " + testModifier);
 173.521 +    }
 173.522 +
 173.523 +    public static void dumpValues(int button, int modifiers, int modifiersStandard, int modifiersEx, int modifiersExStandard){
 173.524 +        System.out.println("Button = "+button + "Modifiers = "+ modifiers + " standard = "+ modifiersStandard);
 173.525 +        System.out.println("                   ModifiersEx = "+ modifiersEx + " standardEx = "+ modifiersExStandard);
 173.526 +    }
 173.527 +
 173.528 +    private static int[] getStandardExArray(int testModifier) {
 173.529 +        int [] curStandardExModifiers;
 173.530 +        switch (testModifier){
 173.531 +            case SHIFT:
 173.532 +                curStandardExModifiers = modifiersExStandardTestSHIFT;
 173.533 +                break;
 173.534 +            case CTRL:
 173.535 +                curStandardExModifiers = modifiersExStandardTestCTRL;
 173.536 +                break;
 173.537 +            case ALT:
 173.538 +                curStandardExModifiers = modifiersExStandardTestALT;
 173.539 +                break;
 173.540 +            default: //NONE by default
 173.541 +                curStandardExModifiers = modifiersExStandardTestNONE;
 173.542 +        }
 173.543 +        return curStandardExModifiers;
 173.544 +    }
 173.545 +
 173.546 +    private static int[] getStandardArray(int testModifier) {
 173.547 +        int [] curStandardModifiers;
 173.548 +        switch (testModifier){
 173.549 +            case SHIFT:
 173.550 +                curStandardModifiers = modifiersStandardTestSHIFT;
 173.551 +                break;
 173.552 +            case CTRL:
 173.553 +                curStandardModifiers = modifiersStandardTestCTRL;
 173.554 +                break;
 173.555 +            case ALT:
 173.556 +                curStandardModifiers = modifiersStandardTestALT;
 173.557 +                break;
 173.558 +            default: //NONE by default
 173.559 +                curStandardModifiers = modifiersStandardTestNONE;
 173.560 +        }
 173.561 +        return curStandardModifiers;
 173.562 +    }
 173.563 +
 173.564 +}
 173.565 +
 173.566 +
 173.567 +/* A class that invoke appropriate verification
 173.568 + * routine with current modifier.
 173.569 + */
 173.570 +class CheckingModifierAdapter extends MouseAdapter{
 173.571 +    int modifier;
 173.572 +    public CheckingModifierAdapter(int modifier){
 173.573 +        this.modifier = modifier;
 173.574 +    }
 173.575 +
 173.576 +    public void mousePressed(MouseEvent e) {
 173.577 +        System.out.println("PRESSED "+e);
 173.578 +        if (e.getButton() > MouseEvent.BUTTON3) {
 173.579 +            System.out.println("Extra button affected. Skip.");
 173.580 +        } else {
 173.581 +            MouseModifiersUnitTest_Standard.checkPressedModifiersTest(modifier, e); // e.getButton(), e.getModifiers(), e.getModifiersEx(),
 173.582 +        }
 173.583 +    }
 173.584 +    public void mouseReleased(MouseEvent e) {
 173.585 +        System.out.println("RELEASED "+e);
 173.586 +        if (e.getButton() > MouseEvent.BUTTON3) {
 173.587 +            System.out.println("Extra button affected. Skip.");
 173.588 +        } else {
 173.589 +            MouseModifiersUnitTest_Standard.checkReleasedModifiersTest(modifier, e); // e.getButton(), e.getModifiers(), e.getModifiersEx()
 173.590 +        }
 173.591 +    }
 173.592 +    public void mouseClicked(MouseEvent e) {
 173.593 +        System.out.println("CLICKED "+e);
 173.594 +        if (e.getButton() > MouseEvent.BUTTON3) {
 173.595 +            System.out.println("Extra button affected. Skip.");
 173.596 +        } else {
 173.597 +            MouseModifiersUnitTest_Standard.checkClickedModifiersTest(modifier, e); //e.getButton(), e.getModifiers(), e.getModifiersEx()
 173.598 +        }
 173.599 +    }
 173.600 +}
 173.601 +
   174.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   174.2 +++ b/test/java/awt/Robot/AcceptExtraMouseButtons/AcceptExtraMouseButtons.java	Wed Feb 18 10:05:41 2009 -0800
   174.3 @@ -0,0 +1,118 @@
   174.4 +/*
   174.5 +  @test %I% %E%
   174.6 +  @bug 6315717
   174.7 +  @summary verifies that Robot is accepting extra mouse buttons
   174.8 +  @author Andrei Dmitriev : area=awt.mouse
   174.9 +  @library ../../regtesthelpers
  174.10 +  @build Util
  174.11 +  @run main AcceptExtraMouseButtons
  174.12 + */
  174.13 +
  174.14 +//if we do robot.mousePress(InputEvent.BUTTON1_DOWN_MASK) the test must
  174.15 +// 1) accept it (i.e. don't throw an IllegalArgumentException
  174.16 +// 2) actually post a MouseEvent
  174.17 +// Also, Robot should still accept InputEvent.BUTTONx_MASKs
  174.18 +
  174.19 +import java.awt.*;
  174.20 +import java.awt.event.*;
  174.21 +import sun.awt.SunToolkit;
  174.22 +import test.java.awt.regtesthelpers.Util;
  174.23 +
  174.24 +public class AcceptExtraMouseButtons extends Frame {
  174.25 +    static String tk = Toolkit.getDefaultToolkit().getClass().getName();
  174.26 +    static Robot robot;
  174.27 +    static int [] standardButtonMasks = {InputEvent.BUTTON1_MASK,
  174.28 +                                         InputEvent.BUTTON2_MASK,
  174.29 +                                         InputEvent.BUTTON3_MASK};
  174.30 +    static int [] buttonsPressed;
  174.31 +    static int [] buttonsReleased;
  174.32 +    static int [] buttonsClicked;
  174.33 +
  174.34 +    static int buttonsNum = MouseInfo.getNumberOfButtons();
  174.35 +
  174.36 +    public static void main(String []s){
  174.37 +
  174.38 +        //MouseInfo.getNumberOfButtons() reports two more buttons on XToolkit
  174.39 +        //as they reserved for wheel (both directions).
  174.40 +        if (tk.equals("sun.awt.X11.XToolkit") || tk.equals("sun.awt.motif.MToolkit")) {
  174.41 +            buttonsNum = buttonsNum - 2;
  174.42 +        }
  174.43 +        System.out.println("Number Of Buttons = "+ buttonsNum);
  174.44 +        if (buttonsNum < 3) {
  174.45 +            System.out.println("Linux and Windows systems should emulate three buttons if even there are only 1 or 2 are phsically available. Setting number of buttons to 3.");
  174.46 +            buttonsNum = 3;
  174.47 +        }
  174.48 +
  174.49 +        buttonsPressed = new int [buttonsNum];
  174.50 +        buttonsReleased = new int [buttonsNum];
  174.51 +        buttonsClicked = new int [buttonsNum];
  174.52 +
  174.53 +        AcceptExtraMouseButtons frame = new AcceptExtraMouseButtons();
  174.54 +
  174.55 +        MouseAdapter ma1 = new MouseAdapter() {
  174.56 +                public void mousePressed(MouseEvent e) {
  174.57 +                    buttonsPressed[e.getButton() - 1] += 1;
  174.58 +                    System.out.println("PRESSED "+e);
  174.59 +                }
  174.60 +                public void mouseReleased(MouseEvent e) {
  174.61 +                    buttonsReleased[e.getButton() - 1] += 1;
  174.62 +                    System.out.println("RELEASED "+e);
  174.63 +                }
  174.64 +                public void mouseClicked(MouseEvent e) {
  174.65 +                    buttonsClicked[e.getButton() - 1] += 1;
  174.66 +                    System.out.println("CLICKED "+e);
  174.67 +                }
  174.68 +            };
  174.69 +        frame.addMouseListener(ma1);
  174.70 +
  174.71 +        frame.setSize(300, 300);
  174.72 +        frame.setVisible(true);
  174.73 +
  174.74 +        Util.waitForIdle(robot);  //a time to show a Frame
  174.75 +
  174.76 +        try {
  174.77 +            robot = new Robot();
  174.78 +            robot.delay(1000);
  174.79 +            robot.mouseMove(frame.getLocationOnScreen().x + frame.getWidth()/2,
  174.80 +                            frame.getLocationOnScreen().y + frame.getHeight()/2);
  174.81 +
  174.82 +            //TestCase 1: verify that all BUTTONx_DOWN_MASKs are accepted by the Robot.
  174.83 +
  174.84 +            for (int i = 0; i < buttonsNum; i++){
  174.85 +                int buttonMask = InputEvent.getMaskForButton(i+1);
  174.86 +                System.out.println("button to press = " +(i+1) + " : value passed to robot = " +buttonMask);
  174.87 +                robot.mousePress(buttonMask);
  174.88 +                robot.delay(30);
  174.89 +                robot.mouseRelease(buttonMask);
  174.90 +                Util.waitForIdle(robot);
  174.91 +            }
  174.92 +            for (int i = 0; i < buttonsNum; i++){
  174.93 +                if (buttonsPressed[i] != 1 || buttonsReleased[i] != 1 || buttonsClicked[i] !=1 ) {
  174.94 +                    throw new RuntimeException("TESTCASE 1 FAILED : button " + (i+1) + " wasn't single pressed|released|clicked : "+ buttonsPressed[i] +" : "+ buttonsReleased[i] +" : "+ buttonsClicked[i]);
  174.95 +                }
  174.96 +            }
  174.97 +
  174.98 +            java.util.Arrays.fill(buttonsPressed, 0);
  174.99 +            java.util.Arrays.fill(buttonsReleased, 0);
 174.100 +            java.util.Arrays.fill(buttonsClicked, 0);
 174.101 +            //TestCase 2: verify that all BUTTONx_MASKs are accepted by the Robot.
 174.102 +            for (int i = 0; i < standardButtonMasks.length; i++){
 174.103 +                int buttonMask = standardButtonMasks[i];
 174.104 +                System.out.println("button to press = " +(i+1) + " : value passed to robot = " +buttonMask);
 174.105 +                robot.mousePress(buttonMask);
 174.106 +                robot.delay(30);
 174.107 +                robot.mouseRelease(buttonMask);
 174.108 +                Util.waitForIdle(robot);
 174.109 +            }
 174.110 +            for (int i = 0; i < standardButtonMasks.length; i++){
 174.111 +                if (buttonsPressed[i] != 1 || buttonsReleased[i] != 1 || buttonsClicked[i] !=1 ) {
 174.112 +                    throw new RuntimeException("TESTCASE 2 FAILED : button " + (i+1) + " wasn't single pressed|released|clicked : "+ buttonsPressed[i] +" : "+ buttonsReleased[i] +" : "+ buttonsClicked[i]);
 174.113 +                }
 174.114 +            }
 174.115 +
 174.116 +        } catch (Exception e){
 174.117 +            e.printStackTrace();
 174.118 +            throw new RuntimeException(e);
 174.119 +        }
 174.120 +    }
 174.121 +}
   175.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   175.2 +++ b/test/java/awt/Robot/ManualInstructions/ManualInstructions.java	Wed Feb 18 10:05:41 2009 -0800
   175.3 @@ -0,0 +1,305 @@
   175.4 +/*
   175.5 +  test %W% %E%  %I%, %G%
   175.6 +  @bug 6315717
   175.7 +  @summary  manual control over the Robot
   175.8 +  @author Andrei Dmitriev : area=awt.robot
   175.9 +  @run applet/manual=yesno ManualInstructions.html
  175.10 +*/
  175.11 +
  175.12 +import java.applet.Applet;
  175.13 +import java.awt.*;
  175.14 +import java.awt.event.*;
  175.15 +import java.util.Timer;
  175.16 +import java.util.TimerTask;
  175.17 +
  175.18 +public class ManualInstructions extends Applet
  175.19 +{
  175.20 +    final static long SEND_DELAY = 1000;
  175.21 +
  175.22 +    public static void main(String s[]){
  175.23 +        ManualInstructions mi = new ManualInstructions();
  175.24 +        mi.init();
  175.25 +        mi.start();
  175.26 +    }
  175.27 +
  175.28 +    static Robot robot;
  175.29 +    Point mouseLocation; //where mouse should be pressed each time
  175.30 +    Panel target = new Panel();
  175.31 +    Button pressOn = new Button("press on ...");
  175.32 +    Button releaseOn = new Button("release on ...");
  175.33 +    Button clickOn = new Button("click on ...");
  175.34 +    Choice buttonNumber = new Choice();
  175.35 +
  175.36 +    public void init()
  175.37 +    {
  175.38 +        try {
  175.39 +            robot = new Robot();
  175.40 +        } catch (AWTException ex) {
  175.41 +            ex.printStackTrace();
  175.42 +            throw new RuntimeException(ex);
  175.43 +        }
  175.44 +        this.setLayout (new BorderLayout ());
  175.45 +
  175.46 +        target.setBackground(Color.green);
  175.47 +        target.setName("GreenBox");//for the ease of debug
  175.48 +        target.setPreferredSize(new Dimension(100, 100));
  175.49 +        String toolkit = Toolkit.getDefaultToolkit().getClass().getName();
  175.50 +
  175.51 +        // on X systems two buttons are reserved for wheel though they are countable by MouseInfo.
  175.52 +        int buttonsNumber = toolkit.equals("sun.awt.windows.WToolkit")?MouseInfo.getNumberOfButtons():MouseInfo.getNumberOfButtons()-2;
  175.53 +
  175.54 +        for (int i = 0; i < 8; i++){
  175.55 +            buttonNumber.add("BUTTON"+(i+1)+"_MASK");
  175.56 +        }
  175.57 +
  175.58 +        pressOn.addActionListener(new ActionListener(){
  175.59 +                public void actionPerformed(ActionEvent e){
  175.60 +                    System.out.println("Now pressing : " + (buttonNumber.getSelectedIndex()+1));
  175.61 +
  175.62 +                    Timer timer = new Timer();
  175.63 +                    TimerTask robotInteraction = new TimerTask(){
  175.64 +                            public void run(){
  175.65 +                                robot.mouseMove(updateTargetLocation().x, updateTargetLocation().y);
  175.66 +                                robot.mousePress(getMask(buttonNumber.getSelectedIndex()+1));
  175.67 +                            }
  175.68 +                        };
  175.69 +                    timer.schedule(robotInteraction, SEND_DELAY);
  175.70 +                }
  175.71 +            });
  175.72 +
  175.73 +        releaseOn.addActionListener(new ActionListener(){
  175.74 +            public void actionPerformed(ActionEvent e){
  175.75 +                System.out.println("Now releasing : " + (buttonNumber.getSelectedIndex()+1));
  175.76 +                Timer timer = new Timer();
  175.77 +                TimerTask robotInteraction = new TimerTask(){
  175.78 +                        public void run(){
  175.79 +                            robot.mouseMove(updateTargetLocation().x, updateTargetLocation().y);
  175.80 +                            robot.mouseRelease(getMask(buttonNumber.getSelectedIndex()+1));
  175.81 +                        }
  175.82 +                    };
  175.83 +                timer.schedule(robotInteraction, SEND_DELAY);
  175.84 +            }
  175.85 +        });
  175.86 +
  175.87 +        clickOn.addActionListener(new ActionListener(){
  175.88 +            public void actionPerformed(ActionEvent e){
  175.89 +                System.out.println("Now clicking : " + (buttonNumber.getSelectedIndex()+1));
  175.90 +                Timer timer = new Timer();
  175.91 +                TimerTask robotInteraction = new TimerTask(){
  175.92 +                        public void run(){
  175.93 +                            robot.mouseMove(updateTargetLocation().x, updateTargetLocation().y);
  175.94 +                            robot.mousePress(getMask(buttonNumber.getSelectedIndex()+1));
  175.95 +                            robot.mouseRelease(getMask(buttonNumber.getSelectedIndex()+1));
  175.96 +                        }
  175.97 +                    };
  175.98 +                timer.schedule(robotInteraction, SEND_DELAY);
  175.99 +            }
 175.100 +
 175.101 +        });
 175.102 +        target.addMouseListener(new MouseAdapter(){
 175.103 +           public void mousePressed(MouseEvent e){
 175.104 +                Sysout.println(""+e);
 175.105 +           }
 175.106 +           public void mouseReleased(MouseEvent e){
 175.107 +                Sysout.println(""+e);
 175.108 +           }
 175.109 +           public void mouseClicked(MouseEvent e){
 175.110 +                Sysout.println(""+e);
 175.111 +           }
 175.112 +        });
 175.113 +
 175.114 +        String[] instructions =
 175.115 +        {
 175.116 +            "Do provide an instruction to the robot by",
 175.117 +            "choosing the button number to act and ",
 175.118 +            "pressing appropriate java.awt.Button on the left.",
 175.119 +            "Inspect an output in the TextArea below.",
 175.120 +            "Please don't generate non-natural sequences like Release-Release, etc.",
 175.121 +            "If you use keyboard be sure that you released the keyboard shortly.",
 175.122 +            "If events are generated well press Pass, otherwise Fail."
 175.123 +        };
 175.124 +        Sysout.createDialogWithInstructions( instructions );
 175.125 +
 175.126 +    }//End  init()
 175.127 +
 175.128 +    private int getMask(int button){
 175.129 +        return InputEvent.getMaskForButton(button);
 175.130 +
 175.131 +        /*
 175.132 +            //this only works for standard buttons and for old JDK builds
 175.133 +        int mask = 0;
 175.134 +        switch (button){
 175.135 +        case 1: {
 175.136 +            mask = InputEvent.BUTTON1_MASK;
 175.137 +            break;
 175.138 +        }
 175.139 +        case 2: {
 175.140 +            mask = InputEvent.BUTTON2_MASK;
 175.141 +            break;
 175.142 +        }
 175.143 +        case 3: {
 175.144 +            mask = InputEvent.BUTTON3_MASK;
 175.145 +            break;
 175.146 +        }
 175.147 +        }
 175.148 +        return mask;
 175.149 +        */
 175.150 +    }
 175.151 +
 175.152 +    private Point updateTargetLocation() {
 175.153 +        return new Point(target.getLocationOnScreen().x + target.getWidth()/2, target.getLocationOnScreen().y + target.getHeight()/2);
 175.154 +    }
 175.155 +
 175.156 +    public void start ()
 175.157 +    {
 175.158 +        //Get things going.  Request focus, set size, et cetera
 175.159 +        setSize (200,200);
 175.160 +        setVisible(true);
 175.161 +        validate();
 175.162 +        Frame f = new Frame ("Set action for Robot here.");
 175.163 +        f.setLayout(new FlowLayout());
 175.164 +        f.add(buttonNumber);
 175.165 +        f.add(pressOn);
 175.166 +        f.add(releaseOn);
 175.167 +        f.add(clickOn);
 175.168 +        f.add(target);
 175.169 +        f.pack();
 175.170 +        f.setVisible(true);
 175.171 +     }// start()
 175.172 +}// class
 175.173 +
 175.174 +/* Place other classes related to the test after this line */
 175.175 +
 175.176 +
 175.177 +/****************************************************
 175.178 + Standard Test Machinery
 175.179 + DO NOT modify anything below -- it's a standard
 175.180 +  chunk of code whose purpose is to make user
 175.181 +  interaction uniform, and thereby make it simpler
 175.182 +  to read and understand someone else's test.
 175.183 + ****************************************************/
 175.184 +
 175.185 +/**
 175.186 + This is part of the standard test machinery.
 175.187 + It creates a dialog (with the instructions), and is the interface
 175.188 +  for sending text messages to the user.
 175.189 + To print the instructions, send an array of strings to Sysout.createDialog
 175.190 +  WithInstructions method.  Put one line of instructions per array entry.
 175.191 + To display a message for the tester to see, simply call Sysout.println
 175.192 +  with the string to be displayed.
 175.193 + This mimics System.out.println but works within the test harness as well
 175.194 +  as standalone.
 175.195 + */
 175.196 +
 175.197 +class Sysout
 175.198 +{
 175.199 +    private static TestDialog dialog;
 175.200 +
 175.201 +    public static void createDialogWithInstructions( String[] instructions )
 175.202 +    {
 175.203 +        dialog = new TestDialog( new Frame(), "Instructions" );
 175.204 +        dialog.printInstructions( instructions );
 175.205 +        dialog.setVisible(true);
 175.206 +        println( "Any messages for the tester will display here." );
 175.207 +    }
 175.208 +
 175.209 +    public static void createDialog( )
 175.210 +    {
 175.211 +        dialog = new TestDialog( new Frame(), "Instructions" );
 175.212 +        String[] defInstr = { "Instructions will appear here. ", "" } ;
 175.213 +        dialog.printInstructions( defInstr );
 175.214 +        dialog.setVisible(true);
 175.215 +        println( "Any messages for the tester will display here." );
 175.216 +    }
 175.217 +
 175.218 +    public static void printInstructions( String[] instructions )
 175.219 +    {
 175.220 +        dialog.printInstructions( instructions );
 175.221 +    }
 175.222 +
 175.223 +
 175.224 +    public static void println( String messageIn )
 175.225 +    {
 175.226 +        dialog.displayMessage( messageIn );
 175.227 +    }
 175.228 +
 175.229 +}// Sysout  class
 175.230 +
 175.231 +/**
 175.232 +  This is part of the standard test machinery.  It provides a place for the
 175.233 +   test instructions to be displayed, and a place for interactive messages
 175.234 +   to the user to be displayed.
 175.235 +  To have the test instructions displayed, see Sysout.
 175.236 +  To have a message to the user be displayed, see Sysout.
 175.237 +  Do not call anything in this dialog directly.
 175.238 +  */
 175.239 +class TestDialog extends Dialog
 175.240 +{
 175.241 +
 175.242 +    TextArea instructionsText;
 175.243 +    TextArea messageText;
 175.244 +    int maxStringLength = 120;
 175.245 +
 175.246 +    //DO NOT call this directly, go through Sysout
 175.247 +    public TestDialog( Frame frame, String name )
 175.248 +    {
 175.249 +        super( frame, name );
 175.250 +        int scrollBoth = TextArea.SCROLLBARS_BOTH;
 175.251 +        instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth );
 175.252 +        add( "North", instructionsText );
 175.253 +
 175.254 +        messageText = new TextArea( "", 5, maxStringLength, scrollBoth );
 175.255 +        add("Center", messageText);
 175.256 +
 175.257 +        pack();
 175.258 +
 175.259 +        setVisible(true);
 175.260 +    }// TestDialog()
 175.261 +
 175.262 +    //DO NOT call this directly, go through Sysout
 175.263 +    public void printInstructions( String[] instructions )
 175.264 +    {
 175.265 +        //Clear out any current instructions
 175.266 +        instructionsText.setText( "" );
 175.267 +
 175.268 +        //Go down array of instruction strings
 175.269 +
 175.270 +        String printStr, remainingStr;
 175.271 +        for( int i=0; i < instructions.length; i++ )
 175.272 +        {
 175.273 +            //chop up each into pieces maxSringLength long
 175.274 +            remainingStr = instructions[ i ];
 175.275 +            while( remainingStr.length() > 0 )
 175.276 +            {
 175.277 +                //if longer than max then chop off first max chars to print
 175.278 +                if( remainingStr.length() >= maxStringLength )
 175.279 +                {
 175.280 +                    //Try to chop on a word boundary
 175.281 +                    int posOfSpace = remainingStr.
 175.282 +                        lastIndexOf( ' ', maxStringLength - 1 );
 175.283 +
 175.284 +                    if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1;
 175.285 +
 175.286 +                    printStr = remainingStr.substring( 0, posOfSpace + 1 );
 175.287 +                    remainingStr = remainingStr.substring( posOfSpace + 1 );
 175.288 +                }
 175.289 +                //else just print
 175.290 +                else
 175.291 +                {
 175.292 +                    printStr = remainingStr;
 175.293 +                    remainingStr = "";
 175.294 +                }
 175.295 +
 175.296 +                instructionsText.append( printStr + "\n" );
 175.297 +            }// while
 175.298 +        }// for
 175.299 +    }//printInstructions()
 175.300 +
 175.301 +    //DO NOT call this directly, go through Sysout
 175.302 +    public void displayMessage( String messageIn )
 175.303 +    {
 175.304 +        messageText.append( messageIn + "\n" );
 175.305 +        System.out.println(messageIn);
 175.306 +    }
 175.307 +
 175.308 +}// TestDialog  class
   176.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   176.2 +++ b/test/java/awt/Robot/RobotExtraButton/RobotExtraButton.java	Wed Feb 18 10:05:41 2009 -0800
   176.3 @@ -0,0 +1,79 @@
   176.4 +/*
   176.5 +  @test %I% %E%
   176.6 +  @bug 6315717
   176.7 +  @summary verifies that robot could accept extra buttons
   176.8 +  @author Andrei Dmitriev : area=awt.mouse
   176.9 +  @library ../../regtesthelpers
  176.10 +  @build Util
  176.11 +  @run main RobotExtraButton
  176.12 + */
  176.13 +
  176.14 +import java.awt.*;
  176.15 +import java.awt.event.*;
  176.16 +import test.java.awt.regtesthelpers.Util;
  176.17 +
  176.18 +public class RobotExtraButton extends Frame {
  176.19 +    static Robot robot;
  176.20 +    public static void main(String []s){
  176.21 +        RobotExtraButton frame = new RobotExtraButton();
  176.22 +        frame.setSize(300, 300);
  176.23 +        frame.setVisible(true);
  176.24 +        frame.addMouseListener(new MouseAdapter() {
  176.25 +                public void mousePressed(MouseEvent e) {
  176.26 +                    System.out.println("PRESSED "+e);
  176.27 +                }
  176.28 +                public void mouseReleased(MouseEvent e) {
  176.29 +                    System.out.println("RELEASED "+e);
  176.30 +                }
  176.31 +                public void mouseClicked(MouseEvent e) {
  176.32 +                    System.out.println("CLICKED "+e);
  176.33 +                }
  176.34 +            });
  176.35 +        Util.waitForIdle(robot);
  176.36 +        int [] buttonMask = new int[MouseInfo.getNumberOfButtons()]; // = InputEvent.getButtonDownMasks();
  176.37 +        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
  176.38 +            buttonMask[i] = InputEvent.getMaskForButton(i+1);
  176.39 +            System.out.println("TEST: "+buttonMask[i]);
  176.40 +        }
  176.41 +
  176.42 +        try {
  176.43 +            robot = new Robot();
  176.44 +            robot.mouseMove(frame.getLocationOnScreen().x + frame.getWidth()/2, frame.getLocationOnScreen().y + frame.getHeight()/2);
  176.45 +            /*
  176.46 +            if (MouseInfo.getNumberOfButtons() <= 3) {
  176.47 +                System.out.println("Number Of Buttons = "+ MouseInfo.getNumberOfButtons() +". Finish!");
  176.48 +                return;
  176.49 +                }*/
  176.50 +
  176.51 +            System.out.println("TEST: press 1");
  176.52 +            robot.mousePress(InputEvent.BUTTON1_MASK);
  176.53 +            robot.delay(50);
  176.54 +            robot.mouseRelease(InputEvent.BUTTON1_MASK);
  176.55 +            Util.waitForIdle(robot);
  176.56 +
  176.57 +            System.out.println("TEST: press 2");
  176.58 +
  176.59 +            robot.mousePress(InputEvent.BUTTON2_MASK);
  176.60 +            robot.delay(50);
  176.61 +            robot.mouseRelease(InputEvent.BUTTON2_MASK);
  176.62 +            Util.waitForIdle(robot);
  176.63 +            System.out.println("TEST: press 3");
  176.64 +
  176.65 +            robot.mousePress(InputEvent.BUTTON3_MASK);
  176.66 +            robot.delay(50);
  176.67 +            robot.mouseRelease(InputEvent.BUTTON3_MASK);
  176.68 +            Util.waitForIdle(robot);
  176.69 +            System.out.println("--------------------------------------------------");
  176.70 +            for (int i = 0; i < buttonMask.length; i++){
  176.71 +                System.out.println("button would = " +i + " : value = " +buttonMask[i]);
  176.72 +                robot.mousePress(buttonMask[i]);
  176.73 +                robot.delay(50);
  176.74 +                robot.mouseRelease(buttonMask[i]);
  176.75 +                Util.waitForIdle(robot);
  176.76 +            }
  176.77 +        } catch (Exception e){
  176.78 +            e.printStackTrace();
  176.79 +            throw new RuntimeException("Test failed.", e);
  176.80 +        }
  176.81 +    }
  176.82 +}
   177.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   177.2 +++ b/test/java/awt/Toolkit/Headless/AWTEventListener/AWTListener.java	Wed Feb 18 10:05:41 2009 -0800
   177.3 @@ -0,0 +1,48 @@
   177.4 +/*
   177.5 +  @test
   177.6 +  @bug 6738181
   177.7 +  @library ../../../regtesthelpers
   177.8 +  @build Sysout
   177.9 +  @summary Toolkit.getAWTEventListeners returns empty array
  177.10 +  @author andrei dmitriev: area=awt.headless
  177.11 +  @run main/othervm -Djava.awt.headless=true AWTListener
  177.12 +*/
  177.13 +
  177.14 +/**
  177.15 + * In a headless mode add a listener for container events.
  177.16 + * Check if a single listener is still assigned to the Toolkit class.
  177.17 + */
  177.18 +
  177.19 +import java.awt.*;
  177.20 +import java.awt.event.*;
  177.21 +import test.java.awt.regtesthelpers.Sysout;
  177.22 +
  177.23 +public class AWTListener {
  177.24 +    public static void main(String []s) {
  177.25 +        Toolkit toolkit = Toolkit.getDefaultToolkit();
  177.26 +
  177.27 +        AWTEventListener orig = new AWTEventListener() {
  177.28 +                public void eventDispatched(AWTEvent event) { }
  177.29 +            };
  177.30 +
  177.31 +        Sysout.println("Test: listener to add = " +orig);
  177.32 +        toolkit.addAWTEventListener(orig, AWTEvent.CONTAINER_EVENT_MASK);
  177.33 +
  177.34 +        for (AWTEventListener l: toolkit.getAWTEventListeners()){
  177.35 +            Sysout.println("Test: listener = " +l+" ");
  177.36 +        }
  177.37 +
  177.38 +        if ( toolkit.getAWTEventListeners().length == 0 ) {
  177.39 +            throw new RuntimeException("Case 1. An empty array returned unexpectedly");
  177.40 +        }
  177.41 +
  177.42 +        for (AWTEventListener l: toolkit.getAWTEventListeners(AWTEvent.CONTAINER_EVENT_MASK)){
  177.43 +            Sysout.println("Test: listener = " +l);
  177.44 +         }
  177.45 +
  177.46 +        if ( toolkit.getAWTEventListeners(AWTEvent.CONTAINER_EVENT_MASK).length == 0 ) {
  177.47 +            throw new RuntimeException("Case 2. An empty array returned unexpectedly");
  177.48 +        }
  177.49 +        Sysout.println("Test PASSED");
  177.50 +    }
  177.51 +}
   178.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   178.2 +++ b/test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_1.java	Wed Feb 18 10:05:41 2009 -0800
   178.3 @@ -0,0 +1,36 @@
   178.4 +/*
   178.5 +  @test %I% %E%
   178.6 +  @bug 6315717
   178.7 +  @summary verifies that system property sun.awt.enableExtraMouseButtons is true by default
   178.8 +  @author Andrei Dmitriev : area=awt.mouse
   178.9 +  @run main SystemPropTest_1
  178.10 + */
  178.11 +//1) Verifies that System.getProperty("sun.awt.enableExtraMouseButtons") returns false initially.
  178.12 +//2) Verifies that Toolkit.areExtraMouseButtonsEnabled() returns true by default.
  178.13 +// This must initlizes the Toolkit class.
  178.14 +//3) Verifies that System.getProperty("sun.awt.enableExtraMouseButtons") returns true (default).
  178.15 +import java.awt.*;
  178.16 +
  178.17 +public class SystemPropTest_1 {
  178.18 +
  178.19 +    public static void main(String []s){
  178.20 +        boolean propValue = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons"));
  178.21 +        System.out.println("1. System.getProperty = " + propValue);
  178.22 +        if (propValue){
  178.23 +            throw new RuntimeException("TEST FAILED(1) : System property sun.awt.enableExtraMouseButtons = " + propValue);
  178.24 +        }
  178.25 +        if (!Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
  178.26 +            throw new RuntimeException("TEST FAILED : Toolkit.areExtraMouseButtonsEnabled() returns false");
  178.27 +        }
  178.28 +
  178.29 +        System.getProperties().list(System.out);
  178.30 +        System.out.println("XXXX. System.getProperty = " + System.getProperty("sun.awt.enableExtraMouseButtons"));
  178.31 +
  178.32 +        propValue = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons"));
  178.33 +        System.out.println("2. System.getProperty = " + propValue);
  178.34 +        if (!propValue){
  178.35 +            throw new RuntimeException("TEST FAILED(2) : System property sun.awt.enableExtraMouseButtons = " + propValue);
  178.36 +        }
  178.37 +        System.out.println("Test passed.");
  178.38 +    }
  178.39 +}
   179.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   179.2 +++ b/test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_2.java	Wed Feb 18 10:05:41 2009 -0800
   179.3 @@ -0,0 +1,25 @@
   179.4 +/*
   179.5 +  @test %I% %E%
   179.6 +  @bug 6315717
   179.7 +  @summary verifies that system property sun.awt.enableExtraMouseButtons might be set to true by the command line
   179.8 +  @author Andrei Dmitriev : area=awt.mouse
   179.9 +  @run main/othervm -Dsun.awt.enableExtraMouseButtons=true SystemPropTest_2
  179.10 + */
  179.11 +//1) Verifies that System.getProperty("sun.awt.enableExtraMouseButtons") returns true if set through the command line.
  179.12 +//2) Verifies that Toolkit.areExtraMouseButtonsEnabled() returns true if the proprty is set through the command line.
  179.13 +import java.awt.*;
  179.14 +
  179.15 +public class SystemPropTest_2 {
  179.16 +
  179.17 +    public static void main(String []s){
  179.18 +        boolean propValue = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons"));
  179.19 +        System.out.println("System.getProperty = " + propValue);
  179.20 +        if (!propValue){
  179.21 +            throw new RuntimeException("TEST FAILED : System property sun.awt.enableExtraMouseButtons = " + propValue);
  179.22 +        }
  179.23 +        if (!Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
  179.24 +            throw new RuntimeException("TEST FAILED : Toolkit.areExtraMouseButtonsEnabled() returns false");
  179.25 +        }
  179.26 +        System.out.println("Test passed.");
  179.27 +    }
  179.28 +}
   180.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   180.2 +++ b/test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_3.java	Wed Feb 18 10:05:41 2009 -0800
   180.3 @@ -0,0 +1,26 @@
   180.4 +/*
   180.5 +  @test %I% %E%
   180.6 +  @bug 6315717
   180.7 +  @summary verifies that system property sun.awt.enableExtraMouseButtons might be set to false by the command line
   180.8 +  @author Andrei Dmitriev : area=awt.mouse
   180.9 +  @run main/othervm -Dsun.awt.enableExtraMouseButtons=false SystemPropTest_3
  180.10 + */
  180.11 +//1) Verifies that System.getProperty("sun.awt.enableExtraMouseButtons") returns false if set through the command line.
  180.12 +//2) Verifies that Toolkit.areExtraMouseButtonsEnabled() returns false if the proprty is set through the command line.
  180.13 +import java.awt.*;
  180.14 +
  180.15 +public class SystemPropTest_3 {
  180.16 +
  180.17 +    public static void main(String []s){
  180.18 +        boolean propValue = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons"));
  180.19 +        System.out.println("Test System.getProperty = " + System.getProperty("sun.awt.enableExtraMouseButtons"));
  180.20 +        System.out.println("System.getProperty = " + propValue);
  180.21 +        if (propValue){
  180.22 +            throw new RuntimeException("TEST FAILED : System property sun.awt.enableExtraMouseButtons = " + propValue);
  180.23 +        }
  180.24 +        if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
  180.25 +            throw new RuntimeException("TEST FAILED : Toolkit.areExtraMouseButtonsEnabled() returns true");
  180.26 +        }
  180.27 +        System.out.println("Test passed.");
  180.28 +    }
  180.29 +}
   181.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   181.2 +++ b/test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_4.java	Wed Feb 18 10:05:41 2009 -0800
   181.3 @@ -0,0 +1,42 @@
   181.4 +/*
   181.5 +  @test %I% %E%
   181.6 +  @bug 6315717
   181.7 +  @summary verifies that system property sun.awt.enableExtraMouseButtons might be set to true by the System class API.
   181.8 +  @author Andrei Dmitriev : area=awt.mouse
   181.9 +  @run main SystemPropTest_4
  181.10 + */
  181.11 +//1)
  181.12 +// - Use System.setProperty("sun.awt.enableExtraMouseButtons", "true")
  181.13 +// - Verifies that System.getProperty("sun.awt.enableExtraMouseButtons") returns true
  181.14 +// - Verifies that Toolkit.areExtraMouseButtonsEnabled() returns true.
  181.15 +//2)
  181.16 +// - Use System.setProperty("sun.awt.enableExtraMouseButtons", "false")
  181.17 +// - Verifies that System.getProperty("sun.awt.enableExtraMouseButtons") returns false
  181.18 +// - Verifies that Toolkit.areExtraMouseButtonsEnabled() returns true still.
  181.19 +
  181.20 +import java.awt.*;
  181.21 +
  181.22 +public class SystemPropTest_4 {
  181.23 +    public static void main(String []s){
  181.24 +        System.out.println("STAGE 1");
  181.25 +        System.setProperty("sun.awt.enableExtraMouseButtons", "true");
  181.26 +        boolean propValue = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons"));
  181.27 +        if (!propValue){
  181.28 +            throw new RuntimeException("TEST FAILED(1) : System property sun.awt.enableExtraMouseButtons = " + propValue);
  181.29 +        }
  181.30 +        if (!Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
  181.31 +            throw new RuntimeException("TEST FAILED(1) : Toolkit.areExtraMouseButtonsEnabled() returns false");
  181.32 +        }
  181.33 +
  181.34 +        System.out.println("STAGE 2");
  181.35 +        System.setProperty("sun.awt.enableExtraMouseButtons", "false");
  181.36 +        propValue = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons"));
  181.37 +        if (propValue){
  181.38 +            throw new RuntimeException("TEST FAILED(2) : System property sun.awt.enableExtraMouseButtons = " + propValue);
  181.39 +        }
  181.40 +        if (!Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
  181.41 +            throw new RuntimeException("TEST FAILED(2) : Toolkit.areExtraMouseButtonsEnabled() returns false");
  181.42 +        }
  181.43 +        System.out.println("Test passed.");
  181.44 +    }
  181.45 +}
   182.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   182.2 +++ b/test/java/awt/Toolkit/ToolkitPropertyTest/SystemPropTest_5.java	Wed Feb 18 10:05:41 2009 -0800
   182.3 @@ -0,0 +1,42 @@
   182.4 +/*
   182.5 +  @test %I% %E%
   182.6 +  @bug 6315717
   182.7 +  @summary verifies that system property sun.awt.enableExtraMouseButtons might be set to false by the System class API.
   182.8 +  @author Andrei Dmitriev : area=awt.mouse
   182.9 +  @run main SystemPropTest_5
  182.10 + */
  182.11 +//1)
  182.12 +// - Use System.setProperty("sun.awt.enableExtraMouseButtons", "false")
  182.13 +// - Verifies that System.getProperty("sun.awt.enableExtraMouseButtons") returns false
  182.14 +// - Verifies that Toolkit.areExtraMouseButtonsEnabled() returns false.
  182.15 +//2)
  182.16 +// - Use System.setProperty("sun.awt.enableExtraMouseButtons", "true")
  182.17 +// - Verifies that System.getProperty("sun.awt.enableExtraMouseButtons") returns true
  182.18 +// - Verifies that Toolkit.areExtraMouseButtonsEnabled() returns false still.
  182.19 +
  182.20 +import java.awt.*;
  182.21 +
  182.22 +public class SystemPropTest_5 {
  182.23 +    public static void main(String []s){
  182.24 +        System.out.println("STAGE 1");
  182.25 +        System.setProperty("sun.awt.enableExtraMouseButtons", "false");
  182.26 +        boolean propValue = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons"));
  182.27 +        if (propValue){
  182.28 +            throw new RuntimeException("TEST FAILED(1) : System property sun.awt.enableExtraMouseButtons = " + propValue);
  182.29 +        }
  182.30 +        if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
  182.31 +            throw new RuntimeException("TEST FAILED(1) : Toolkit.areExtraMouseButtonsEnabled() returns true");
  182.32 +        }
  182.33 +
  182.34 +        System.out.println("STAGE 2");
  182.35 +        System.setProperty("sun.awt.enableExtraMouseButtons", "true");
  182.36 +        propValue = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons"));
  182.37 +        if (!propValue){
  182.38 +            throw new RuntimeException("TEST FAILED(2) : System property sun.awt.enableExtraMouseButtons = " + propValue);
  182.39 +        }
  182.40 +        if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled()){
  182.41 +            throw new RuntimeException("TEST FAILED(2) : Toolkit.areExtraMouseButtonsEnabled() returns true");
  182.42 +        }
  182.43 +        System.out.println("Test passed.");
  182.44 +    }
  182.45 +}
   183.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   183.2 +++ b/test/java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Disable.java	Wed Feb 18 10:05:41 2009 -0800
   183.3 @@ -0,0 +1,143 @@
   183.4 +/*
   183.5 +  @test %I% %E%
   183.6 +  @bug 6315717
   183.7 +  @summary verifies that sun.awt.enableExtraMouseButtons = false consumes extra events
   183.8 +  @author Andrei Dmitriev : area=awt.mouse
   183.9 +  @run main/othervm -Dsun.awt.enableExtraMouseButtons=false ToolkitPropertyTest_Disable
  183.10 + */
  183.11 +
  183.12 +import java.awt.*;
  183.13 +import java.awt.event.*;
  183.14 +
  183.15 +// Testcase 1: set to FALSE and check
  183.16 +// Testcase 2: set to FALSE and check that extra events are not coming
  183.17 +//                              check that standard events are coming
  183.18 +
  183.19 +public class ToolkitPropertyTest_Disable extends Frame {
  183.20 +    static boolean propValue;
  183.21 +    static Robot robot;
  183.22 +    static int [] buttonsPressed;
  183.23 +    static int [] buttonsReleased;
  183.24 +    static int [] buttonsClicked;
  183.25 +
  183.26 +    static boolean lessThenFourButtons;
  183.27 +
  183.28 +    public static void main(String []s){
  183.29 +        propValue = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons"));
  183.30 +        buttonsPressed = new int [MouseInfo.getNumberOfButtons()];
  183.31 +        buttonsReleased = new int [MouseInfo.getNumberOfButtons()];
  183.32 +        buttonsClicked = new int [MouseInfo.getNumberOfButtons()];
  183.33 +
  183.34 +        ToolkitPropertyTest_Disable frame = new ToolkitPropertyTest_Disable();
  183.35 +        frame.setSize(300, 300);
  183.36 +        frame.setVisible(true);
  183.37 +
  183.38 +        MouseAdapter ma1 = new MouseAdapter() {
  183.39 +                public void mousePressed(MouseEvent e) {
  183.40 +                    buttonsPressed[e.getButton() - 1] += 1;
  183.41 +                    System.out.println("PRESSED "+e);
  183.42 +                }
  183.43 +                public void mouseReleased(MouseEvent e) {
  183.44 +                    buttonsReleased[e.getButton() - 1] += 1;
  183.45 +                    System.out.println("RELEASED "+e);
  183.46 +                }
  183.47 +                public void mouseClicked(MouseEvent e) {
  183.48 +                    buttonsClicked[e.getButton() - 1] += 1;
  183.49 +                    System.out.println("CLICKED "+e);
  183.50 +                }
  183.51 +            };
  183.52 +
  183.53 +        try {
  183.54 +            robot = new Robot();
  183.55 +            robot.delay(1000);
  183.56 +            robot.mouseMove(frame.getLocationOnScreen().x + frame.getWidth()/2, frame.getLocationOnScreen().y + frame.getHeight()/2);
  183.57 +
  183.58 +            System.out.println("Property = " + propValue);
  183.59 +            testCase0();
  183.60 +
  183.61 +            testCase1();
  183.62 +            System.out.println("Number Of Buttons = "+ MouseInfo.getNumberOfButtons());
  183.63 +
  183.64 +            lessThenFourButtons = (MouseInfo.getNumberOfButtons() <= 3);
  183.65 +            if ( !lessThenFourButtons ) {
  183.66 +                frame.addMouseListener(ma1);
  183.67 +                testCase2();
  183.68 +            }
  183.69 +        } catch (Exception e){
  183.70 +            e.printStackTrace();
  183.71 +//            throw new RuntimeException(e);
  183.72 +        } finally {
  183.73 +//            frame.removeMouseListener(ma1);
  183.74 +        }
  183.75 +    }
  183.76 +
  183.77 +    public static void testCase0(){
  183.78 +        if (propValue){
  183.79 +            throw new RuntimeException("TEST FAILED (0): System property sun.awt.enableExtraMouseButtons = " + propValue);
  183.80 +        }
  183.81 +    }
  183.82 +
  183.83 +    public static void testCase1(){
  183.84 +        if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled() == true){
  183.85 +            throw new RuntimeException("TEST FAILED (1): setting to FALSE. Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled() = " + Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled());
  183.86 +        }
  183.87 +    }
  183.88 +
  183.89 +    public static void testCase2(){
  183.90 +        emptyArrays();
  183.91 +        int [] buttonMasks = new int[MouseInfo.getNumberOfButtons()]; // = InputEvent.getButtonDownMasks();
  183.92 +        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
  183.93 +            buttonMasks[i] = InputEvent.getMaskForButton(i+1);
  183.94 +            System.out.println("TEST: "+buttonMasks[i]);
  183.95 +        }
  183.96 +
  183.97 +        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
  183.98 +            System.out.println("button to press = " +(i+1) + " : value passed to robot = " +buttonMasks[i]);
  183.99 +            try {
 183.100 +                robot.mousePress(buttonMasks[i]);
 183.101 +                robot.delay(70);
 183.102 +                robot.mouseRelease(buttonMasks[i]);
 183.103 +                robot.delay(200);
 183.104 +                //no exception is thrown
 183.105 +                if (i >= 3) {
 183.106 +                    throw new RuntimeException("TESTCASE 2 FAILED : robot accepted the extra button " + (i+1) + " instead of throwing an exception.");
 183.107 +                }
 183.108 +            } catch (IllegalArgumentException e){
 183.109 +                if (i >= 3) {
 183.110 +                    System.out.println("Passed: an exception caught for extra button.");
 183.111 +                } else {
 183.112 +                    throw new RuntimeException("TESTCASE 2 FAILED : exception happen on standard button.", e);
 183.113 +                }
 183.114 +            }
 183.115 +        }
 183.116 +        robot.delay(2000);
 183.117 +        if (MouseInfo.getNumberOfButtons() < 3) {
 183.118 +            for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
 183.119 +                if (buttonsPressed[i] != 1 || buttonsReleased[i] != 1 || buttonsClicked[i] !=1 ) {
 183.120 +                    throw new RuntimeException("TESTCASE 2 FAILED : button " + (i+1) + " wasn't single pressed.");
 183.121 +                }
 183.122 +            }
 183.123 +        } else {
 183.124 +            for (int i = 0; i < 3; i++){
 183.125 +                if (buttonsPressed[i] != 1 || buttonsReleased[i] != 1 || buttonsClicked[i] !=1 ) {
 183.126 +                    throw new RuntimeException("TESTCASE 2 FAILED : button " + (i+1) + " wasn't single pressed.");
 183.127 +                }
 183.128 +            }
 183.129 +
 183.130 +            for (int i = 3; i < MouseInfo.getNumberOfButtons(); i++){
 183.131 +                if (buttonsPressed[i] != 0 || buttonsReleased[i] != 0 || buttonsClicked[i] != 0 ) {
 183.132 +                    throw new RuntimeException("TESTCASE 2 FAILED : button " + (i+1) + " was pressed.");
 183.133 +                }
 183.134 +            }
 183.135 +        }
 183.136 +    }
 183.137 +
 183.138 +    public static void emptyArrays(){
 183.139 +        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
 183.140 +            buttonsPressed[i] = 0;
 183.141 +            buttonsReleased[i] = 0;
 183.142 +            buttonsClicked[i] = 0;
 183.143 +        }
 183.144 +    }
 183.145 +
 183.146 +}
   184.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   184.2 +++ b/test/java/awt/Toolkit/ToolkitPropertyTest/ToolkitPropertyTest_Enable.java	Wed Feb 18 10:05:41 2009 -0800
   184.3 @@ -0,0 +1,120 @@
   184.4 +/*
   184.5 +  @test %I% %E%
   184.6 +  @bug 6315717
   184.7 +  @summary verifies that sun.awt.enableExtraMouseButtons is working
   184.8 +  @author Andrei Dmitriev : area=awt.mouse
   184.9 +  @run main/othervm -Dsun.awt.enableExtraMouseButtons=true ToolkitPropertyTest_Enable
  184.10 + */
  184.11 +
  184.12 +import java.awt.*;
  184.13 +import java.awt.event.*;
  184.14 +
  184.15 +// Testcase 1: set to TRUE (via jtreg option)
  184.16 +// Testcase 2: set to TRUE and check that extra events are coming
  184.17 +//                             check that standard events are coming
  184.18 +
  184.19 +public class ToolkitPropertyTest_Enable extends Frame {
  184.20 +    static boolean propValue;
  184.21 +    static Robot robot;
  184.22 +    static int [] buttonsPressed;
  184.23 +    static int [] buttonsReleased;
  184.24 +    static int [] buttonsClicked;
  184.25 +
  184.26 +    public static void main(String []s){
  184.27 +        propValue = Boolean.parseBoolean(System.getProperty("sun.awt.enableExtraMouseButtons"));
  184.28 +        buttonsPressed = new int [MouseInfo.getNumberOfButtons()];
  184.29 +        buttonsReleased = new int [MouseInfo.getNumberOfButtons()];
  184.30 +        buttonsClicked = new int [MouseInfo.getNumberOfButtons()];
  184.31 +
  184.32 +        ToolkitPropertyTest_Enable frame = new ToolkitPropertyTest_Enable();
  184.33 +        frame.setSize(300, 300);
  184.34 +        frame.setVisible(true);
  184.35 +
  184.36 +        MouseAdapter ma1 = new MouseAdapter() {
  184.37 +                public void mousePressed(MouseEvent e) {
  184.38 +                    buttonsPressed[e.getButton() - 1] += 1;
  184.39 +                    System.out.println("PRESSED "+e);
  184.40 +                }
  184.41 +                public void mouseReleased(MouseEvent e) {
  184.42 +                    buttonsReleased[e.getButton() - 1] += 1;
  184.43 +                    System.out.println("RELEASED "+e);
  184.44 +                }
  184.45 +                public void mouseClicked(MouseEvent e) {
  184.46 +                    buttonsClicked[e.getButton() - 1] += 1;
  184.47 +                    System.out.println("CLICKED "+e);
  184.48 +                }
  184.49 +            };
  184.50 +        //        frame.addMouseListener(ma1);
  184.51 +
  184.52 +        try {
  184.53 +            robot = new Robot();
  184.54 +            robot.delay(1000);
  184.55 +            robot.mouseMove(frame.getLocationOnScreen().x + frame.getWidth()/2, frame.getLocationOnScreen().y + frame.getHeight()/2);
  184.56 +
  184.57 +            System.out.println("Property = " + propValue);
  184.58 +            testCase0();
  184.59 +
  184.60 +            testCase1();
  184.61 +            System.out.println("Number Of Buttons = "+ MouseInfo.getNumberOfButtons());
  184.62 +
  184.63 +            boolean lessThenFourButtons = (MouseInfo.getNumberOfButtons() <= 3);
  184.64 +            if ( !lessThenFourButtons ) {
  184.65 +                frame.addMouseListener(ma1);
  184.66 +                testCase2();
  184.67 +                //                testCase3();
  184.68 +                //                testCase4();
  184.69 +                frame.removeMouseListener(ma1);
  184.70 +            }
  184.71 +        } catch (Exception e){
  184.72 +            e.printStackTrace();
  184.73 +            throw new RuntimeException(e);
  184.74 +        }
  184.75 +
  184.76 +    }
  184.77 +
  184.78 +    public static void testCase0(){
  184.79 +        if (!propValue){
  184.80 +            throw new RuntimeException("TEST FAILED (0) : System property sun.awt.enableExtraMouseButtons = " + propValue);
  184.81 +        }
  184.82 +    }
  184.83 +
  184.84 +    public static void testCase1(){
  184.85 +        if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled() == false){
  184.86 +            throw new RuntimeException("TEST FAILED (1) : setting to TRUE. enabled = " + Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled());
  184.87 +        }
  184.88 +    }
  184.89 +
  184.90 +    public static void testCase2(){
  184.91 +        emptyArrays();
  184.92 +        //we can't post a message from an unexistent button
  184.93 +        int [] buttonMasks = new int[MouseInfo.getNumberOfButtons()]; // = InputEvent.getButtonDownMasks();
  184.94 +        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
  184.95 +            buttonMasks[i] = InputEvent.getMaskForButton(i+1);
  184.96 +            System.out.println("TEST: "+buttonMasks[i]);
  184.97 +        }
  184.98 +
  184.99 +        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
 184.100 +            System.out.println("button to press = " +(i+1) + " : value passed to robot = " +buttonMasks[i]);
 184.101 +            robot.mousePress(buttonMasks[i]);
 184.102 +            robot.delay(70);
 184.103 +            robot.mouseRelease(buttonMasks[i]);
 184.104 +            robot.delay(200);
 184.105 +        }
 184.106 +        robot.delay(1000);
 184.107 +
 184.108 +        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
 184.109 +            if (buttonsPressed[i] != 1 || buttonsReleased[i] != 1 || buttonsClicked[i] !=1 ) {
 184.110 +                throw new RuntimeException("TESTCASE 2 FAILED : button " + (i+1) + " wasn't single pressed|released|clicked : "+ buttonsPressed[i] +" : "+ buttonsReleased[i] +" : "+ buttonsClicked[i]);
 184.111 +            }
 184.112 +        }
 184.113 +    }
 184.114 +
 184.115 +    public static void emptyArrays(){
 184.116 +        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
 184.117 +            buttonsPressed[i] = 0;
 184.118 +            buttonsReleased[i] = 0;
 184.119 +            buttonsClicked[i] = 0;
 184.120 +        }
 184.121 +    }
 184.122 +
 184.123 +}
   185.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   185.2 +++ b/test/java/awt/Window/OwnedWindowsLeak/OwnedWindowsLeak.java	Wed Feb 18 10:05:41 2009 -0800
   185.3 @@ -0,0 +1,104 @@
   185.4 +/*
   185.5 + * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
   185.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   185.7 + *
   185.8 + * This code is free software; you can redistribute it and/or modify it
   185.9 + * under the terms of the GNU General Public License version 2 only, as
  185.10 + * published by the Free Software Foundation.
  185.11 + *
  185.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  185.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  185.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  185.15 + * version 2 for more details (a copy is included in the LICENSE file that
  185.16 + * accompanied this code).
  185.17 + *
  185.18 + * You should have received a copy of the GNU General Public License version
  185.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  185.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  185.21 + *
  185.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  185.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
  185.24 + * have any questions.
  185.25 + */
  185.26 +
  185.27 +/*
  185.28 +  @test
  185.29 +  @bug 6758673
  185.30 +  @summary Tests that windows are removed from owner's child windows list
  185.31 +  @author art: area=awt.toplevel
  185.32 +  @run main OwnedWindowsLeak
  185.33 +*/
  185.34 +
  185.35 +import java.awt.*;
  185.36 +import java.awt.event.*;
  185.37 +
  185.38 +import java.lang.ref.*;
  185.39 +import java.lang.reflect.*;
  185.40 +
  185.41 +import java.util.*;
  185.42 +
  185.43 +public class OwnedWindowsLeak
  185.44 +{
  185.45 +    public static void main(String[] args)
  185.46 +    {
  185.47 +        Frame owner = new Frame("F");
  185.48 +
  185.49 +        // First, create many windows
  185.50 +        Vector<WeakReference<Window>> children =
  185.51 +            new Vector<WeakReference<Window>>();
  185.52 +        for (int i = 0; i < 1000; i++)
  185.53 +        {
  185.54 +            Window child = new Window(owner);
  185.55 +            children.add(new WeakReference<Window>(child));
  185.56 +        }
  185.57 +
  185.58 +        // Second, make sure all the memory is allocated
  185.59 +        Vector garbage = new Vector();
  185.60 +        while (true)
  185.61 +        {
  185.62 +            try
  185.63 +            {
  185.64 +                garbage.add(new byte[1000]);
  185.65 +            }
  185.66 +            catch (OutOfMemoryError e)
  185.67 +            {
  185.68 +                break;
  185.69 +            }
  185.70 +        }
  185.71 +
  185.72 +        // Third, make sure all the weak references are null
  185.73 +        for (WeakReference<Window> ref : children)
  185.74 +        {
  185.75 +            if (ref.get() != null)
  185.76 +            {
  185.77 +                throw new RuntimeException("Test FAILED: some of child windows are not GCed");
  185.78 +            }
  185.79 +        }
  185.80 +
  185.81 +        // Fourth, make sure owner's children list contains no elements
  185.82 +        try
  185.83 +        {
  185.84 +            Field f = Window.class.getDeclaredField("ownedWindowList");
  185.85 +            f.setAccessible(true);
  185.86 +            Vector ownersChildren = (Vector)f.get(owner);
  185.87 +            if (ownersChildren.size() > 0)
  185.88 +            {
  185.89 +                throw new RuntimeException("Test FAILED: some of the child windows are not removed from owner's children list");
  185.90 +            }
  185.91 +        }
  185.92 +        catch (NoSuchFieldException z)
  185.93 +        {
  185.94 +            System.out.println("Test PASSED: no 'ownedWindowList' field in Window class");
  185.95 +            return;
  185.96 +        }
  185.97 +        catch (Exception z)
  185.98 +        {
  185.99 +            throw new RuntimeException("Test FAILED: unexpected exception", z);
 185.100 +        }
 185.101 +
 185.102 +        // Test passed
 185.103 +        System.out.println("Test PASSED");
 185.104 +
 185.105 +        owner.dispose();
 185.106 +    }
 185.107 +}
   186.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   186.2 +++ b/test/java/awt/event/InputEvent/ButtonArraysEquality/ButtonArraysEquality.java	Wed Feb 18 10:05:41 2009 -0800
   186.3 @@ -0,0 +1,83 @@
   186.4 +/*
   186.5 +  @test %I% %E%
   186.6 +  @bug 6315717
   186.7 +  @summary verifies that InputEvents button masks arrays are the same
   186.8 +  @author Andrei Dmitriev : area=awt.event
   186.9 +  @run main ButtonArraysEquality
  186.10 + */
  186.11 +
  186.12 +import java.awt.*;
  186.13 +import java.awt.event.*;
  186.14 +import java.lang.reflect.*;
  186.15 +import java.security.AccessController;
  186.16 +import java.security.PrivilegedAction;
  186.17 +
  186.18 +// get array InputEvent.BUTTON_MASK via reflection
  186.19 +// get array InputEvent.BUTTON_DOWN_MASK via reflection
  186.20 +// compare their lengths and values
  186.21 +
  186.22 +public class ButtonArraysEquality {
  186.23 +    static int [] eventDownMask = new int []{InputEvent.BUTTON1_DOWN_MASK, InputEvent.BUTTON2_DOWN_MASK, InputEvent.BUTTON3_DOWN_MASK};
  186.24 +
  186.25 +    public static void main(String []s){
  186.26 +        int [] buttonDownMasksAPI = new int [MouseInfo.getNumberOfButtons()];
  186.27 +        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
  186.28 +            buttonDownMasksAPI[i] = InputEvent.getMaskForButton(i+1);
  186.29 +            System.out.println("TEST: "+buttonDownMasksAPI[i]);
  186.30 +        }
  186.31 +
  186.32 +        // getButtonDownMasks()
  186.33 +        Object obj = AccessController.doPrivileged(
  186.34 +                                            new PrivilegedAction() {
  186.35 +                                                public Object run() {
  186.36 +                                                    try {
  186.37 +                                                        Class clazz = Class.forName("java.awt.event.InputEvent");
  186.38 +                                                        Method method  = clazz.getDeclaredMethod("getButtonDownMasks",new Class [] {});
  186.39 +                                                        if (method != null) {
  186.40 +                                                            method.setAccessible(true);
  186.41 +                                                            return method.invoke(null, (Object[])null);
  186.42 +                                                        }
  186.43 +                                                    }catch (Exception e){
  186.44 +                                                        throw new RuntimeException("Test failed. Exception occured:", e);
  186.45 +                                                    }
  186.46 +                                                    return null;
  186.47 +                                                }
  186.48 +                                            });
  186.49 +
  186.50 +        int [] buttonDownMasks = new int [Array.getLength(obj)];
  186.51 +        checkNullAndPutValuesToArray(buttonDownMasks, obj);
  186.52 +
  186.53 +        //check lengths: array shouldn't contain less elements then the number of buttons on a mouse
  186.54 +        if (buttonDownMasks.length < buttonDownMasksAPI.length){
  186.55 +            throw new RuntimeException("Test failed. The lengths array is less then the number of buttons");
  186.56 +        }
  186.57 +
  186.58 +        // verify values for first three buttons
  186.59 +        for (int i = 0; i < 3; i++) {
  186.60 +            if (eventDownMask[i] != buttonDownMasks[i])
  186.61 +            {
  186.62 +                System.out.println("Test : "+ i + " | " + " | " +eventDownMask[i] + " | "+ buttonDownMasks[i]);
  186.63 +                throw new RuntimeException("Failure: masks are not correct for standard buttons");
  186.64 +            }
  186.65 +        }
  186.66 +
  186.67 +        // verify values for extra buttons if any
  186.68 +        for (int i = 3; i < MouseInfo.getNumberOfButtons(); i++) {
  186.69 +            if (buttonDownMasksAPI[i] != buttonDownMasks[i]) {
  186.70 +                throw new RuntimeException("Failure: masks are not the same for extra buttons");
  186.71 +            }
  186.72 +        }
  186.73 +        System.out.println("Test passed.");
  186.74 +    }
  186.75 +
  186.76 +    public static void checkNullAndPutValuesToArray(int [] array, Object obj){
  186.77 +        if (obj == null){
  186.78 +            throw new RuntimeException("Test failed. The array obtained via reflection is "+obj);
  186.79 +        }
  186.80 +
  186.81 +        for (int i = 0; i < Array.getLength(obj); i++){
  186.82 +            System.out.println("Test (Reflection): "+ Array.getInt(obj, i));
  186.83 +            array[i] = Array.getInt(obj, i);
  186.84 +        }
  186.85 +    }
  186.86 +}
   187.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   187.2 +++ b/test/java/awt/event/MouseEvent/AcceptExtraButton/AcceptExtraButton.java	Wed Feb 18 10:05:41 2009 -0800
   187.3 @@ -0,0 +1,53 @@
   187.4 +/*
   187.5 +  @test %I% %E%
   187.6 +  @bug 6315717
   187.7 +  @summary verifies that MouseEvent CTOR accepts extra mouse button numbers
   187.8 +  @author Andrei Dmitriev : area=awt.event
   187.9 +  @run main AcceptExtraButton
  187.10 + */
  187.11 +
  187.12 +//package acceptextrabutton;
  187.13 +
  187.14 +import java.awt.*;
  187.15 +import java.awt.event.MouseEvent;
  187.16 +import java.awt.event.MouseAdapter;
  187.17 +
  187.18 +public class AcceptExtraButton extends Frame {
  187.19 +    static int [] eventID = new int []{MouseEvent.MOUSE_PRESSED, MouseEvent.MOUSE_RELEASED, MouseEvent.MOUSE_CLICKED};
  187.20 +
  187.21 +    public static void main(String []s){
  187.22 +        AcceptExtraButton f = new AcceptExtraButton();
  187.23 +        f.setSize(300, 300);
  187.24 +        f.setVisible(true);
  187.25 +
  187.26 +        for (int buttonId = 0; buttonId<eventID.length; buttonId++) {
  187.27 +            for (int button = 0; button <= MouseInfo.getNumberOfButtons(); button++){
  187.28 +                System.out.println("button == "+button);
  187.29 +                MouseEvent me = new MouseEvent(f,
  187.30 +                                               eventID[buttonId],
  187.31 +                                               System.currentTimeMillis(),
  187.32 +                                               0, //MouseEvent.BUTTON1_DOWN_MASK, modifiers
  187.33 +                                               100, 100, // x, y
  187.34 +                                               150, 150, // x, y on screen
  187.35 +                                               1,        //clickCount
  187.36 +                                               false,              //popupTrigger
  187.37 +                                               button );// MouseEvent.NOBUTTON : button
  187.38 +
  187.39 +                System.out.println("dispatching >>>"+me);
  187.40 +                f.dispatchEvent( ( AWTEvent )me );
  187.41 +            }
  187.42 +        }
  187.43 +        MouseAdapter ma1 = new MouseAdapter() {
  187.44 +                public void mousePressed(MouseEvent e) {
  187.45 +                    System.out.println("PRESSED "+e);
  187.46 +                }
  187.47 +                public void mouseReleased(MouseEvent e) {
  187.48 +                    System.out.println("RELEASED "+e);
  187.49 +                }
  187.50 +                public void mouseClicked(MouseEvent e) {
  187.51 +                    System.out.println("CLICKED "+e);
  187.52 +                }
  187.53 +            };
  187.54 +        f.addMouseListener(ma1);
  187.55 +    }
  187.56 +}
   188.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   188.2 +++ b/test/java/awt/event/MouseEvent/CTORRestrictions/CTORRestrictions.java	Wed Feb 18 10:05:41 2009 -0800
   188.3 @@ -0,0 +1,89 @@
   188.4 +/*
   188.5 +  test %I% %E%
   188.6 +  @bug 6315717
   188.7 +  @summary verifies that MouseEvent could be constructed correctly for mouse extra buttons in regard to sun.awt.enableExtraMouseButtons property
   188.8 +  @author Andrei Dmitriev : area=awt.event
   188.9 +  @run main CTORRestrictions
  188.10 + */
  188.11 +
  188.12 +/*
  188.13 + * verify that user can create the MouseEvent? with button1|2|3|4|5|... when property "sun.awt.enableExtraMouseButtons" is true by default
  188.14 + */
  188.15 +import java.awt.*;
  188.16 +import java.awt.event.*;
  188.17 +
  188.18 +public class CTORRestrictions{
  188.19 +    static Frame frame = new Frame("MouseEvent Test Frame");
  188.20 +    static Point mousePosition;
  188.21 +    static Point mousePositionOnScreen;
  188.22 +
  188.23 +    public static void main(String []s){
  188.24 +        Robot robot = null;
  188.25 +        try {
  188.26 +            robot = new Robot();
  188.27 +        } catch (AWTException ex) {
  188.28 +            throw new RuntimeException("Test Failed", ex);
  188.29 +        }
  188.30 +        frame.setSize (200,200);
  188.31 +        frame.setLocation (300, 400);
  188.32 +        frame.setVisible(true);
  188.33 +        robot.delay(1000);
  188.34 +        System.out.println("sun.awt.enableExtraMouseButtons = "+Toolkit.getDefaultToolkit().getDesktopProperty("sun.awt.enableExtraMouseButtons"));
  188.35 +        mousePosition = new Point(100, 100);
  188.36 +        mousePositionOnScreen = new  Point(frame.getLocationOnScreen().x + mousePosition.x,
  188.37 +                                                 frame.getLocationOnScreen().y + mousePosition.y);
  188.38 +
  188.39 +        /*
  188.40 +         * On Linux the native system count a wheel (both directions) as two more buttons on a mouse.
  188.41 +         * So, MouseInfo.getNumberOfButtons() would report 5 buttons on a three-button mouse.
  188.42 +         * On Windows it would still report that MouseInfo.getNumberOfButtons() == 3.
  188.43 +         * We should handle XToolkit case and iterate through the buttons
  188.44 +         * up to (MouseInfo.getNumberOfButtons() - 2) value.
  188.45 +         */
  188.46 +        int numberOfButtons;
  188.47 +        if (Toolkit.getDefaultToolkit().getClass().getName().equals("sun.awt.windows.WToolkit")){
  188.48 +            numberOfButtons = MouseInfo.getNumberOfButtons();
  188.49 +        } else {
  188.50 +            numberOfButtons = MouseInfo.getNumberOfButtons() - 2;
  188.51 +        }
  188.52 +        System.out.println("Stage 1. Number of buttons = "+ numberOfButtons);
  188.53 +
  188.54 +        for (int buttonId = 1; buttonId <= numberOfButtons; buttonId++){
  188.55 +            postMouseEventNewCtor(buttonId);
  188.56 +        }
  188.57 +
  188.58 +        System.out.println("Stage 2. Number of buttons = "+ numberOfButtons);
  188.59 +        for (int buttonId = 1; buttonId <= numberOfButtons; buttonId++){
  188.60 +            postMouseEventOldCtor(buttonId);
  188.61 +        }
  188.62 +        System.out.println("Test passed.");
  188.63 +    }
  188.64 +
  188.65 +    public static void postMouseEventNewCtor(int buttonId)    {
  188.66 +        MouseEvent me = new MouseEvent(frame,
  188.67 +                                       MouseEvent.MOUSE_PRESSED,
  188.68 +                                       System.currentTimeMillis(),
  188.69 +                                       MouseEvent.BUTTON1_DOWN_MASK,
  188.70 +                                       mousePosition.x, mousePosition.y,
  188.71 +                                       mousePositionOnScreen.x,
  188.72 +                                       mousePositionOnScreen.y,
  188.73 +                                       1,
  188.74 +                                       false,              //popupTrigger
  188.75 +                                       buttonId            //button
  188.76 +                                       );
  188.77 +        frame.dispatchEvent( ( AWTEvent )me );
  188.78 +    }
  188.79 +
  188.80 +    public static void postMouseEventOldCtor(int buttonId)    {
  188.81 +        MouseEvent meOld = new MouseEvent(frame,
  188.82 +                                          MouseEvent.MOUSE_PRESSED,
  188.83 +                                          System.currentTimeMillis(),
  188.84 +                                          MouseEvent.BUTTON1_DOWN_MASK,
  188.85 +                                          mousePosition.x, mousePosition.y,
  188.86 +                                          1,
  188.87 +                                          false,              //popupTrigger
  188.88 +                                          buttonId //button
  188.89 +                                          );
  188.90 +        frame.dispatchEvent( ( AWTEvent )meOld );
  188.91 +    }
  188.92 +}
   189.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   189.2 +++ b/test/java/awt/event/MouseEvent/CTORRestrictions/CTORRestrictions_Disable.java	Wed Feb 18 10:05:41 2009 -0800
   189.3 @@ -0,0 +1,101 @@
   189.4 +/*
   189.5 +  test %I% %E%
   189.6 +  @bug 6315717
   189.7 +  @summary verifies that MouseEvent could be constructed correctly for mouse extra buttons in regard to sun.awt.enableExtraMouseButtons property
   189.8 +  @author Andrei Dmitriev : area=awt.event
   189.9 +  @run main/othervm -Dsun.awt.enableExtraMouseButtons=false CTORRestrictions_Disable
  189.10 + */
  189.11 +
  189.12 +/*
  189.13 + * verify that user can't create the MouseEvent? with button4|5|... when property "sun.awt.enableExtraMouseButtons"=false
  189.14 + * verify that user can create the MouseEvent? with button1|2|3 when property "sun.awt.enableExtraMouseButtons"=false
  189.15 + */
  189.16 +
  189.17 +import java.awt.*;
  189.18 +import java.awt.event.*;
  189.19 +
  189.20 +public class CTORRestrictions_Disable {
  189.21 +    static Frame frame = new Frame("MouseEvent Test Frame");
  189.22 +    static Point mousePosition;
  189.23 +    static Point mousePositionOnScreen;
  189.24 +
  189.25 +    public static void main(String []s){
  189.26 +        Robot robot = null;
  189.27 +        try {
  189.28 +            robot = new Robot();
  189.29 +        } catch (AWTException ex) {
  189.30 +            throw new RuntimeException("Test Failed", ex);
  189.31 +        }
  189.32 +        frame.setSize (200,200);
  189.33 +        frame.setLocation (300, 400);
  189.34 +        frame.setVisible(true);
  189.35 +        robot.delay(1000);
  189.36 +        System.out.println(Toolkit.getDefaultToolkit().getDesktopProperty("sun.awt.enableExtraMouseButtons"));
  189.37 +        mousePosition = new Point(100, 100);
  189.38 +        mousePositionOnScreen = new  Point(frame.getLocationOnScreen().x + mousePosition.x,
  189.39 +                                                 frame.getLocationOnScreen().y + mousePosition.y);
  189.40 +
  189.41 +        System.out.println("Stage 1");
  189.42 +        for (int buttonId = 1; buttonId <= MouseInfo.getNumberOfButtons(); buttonId++){
  189.43 +           try {
  189.44 +               postMouseEventNewCtor(buttonId);
  189.45 +               if (buttonId > 3) {
  189.46 +                   throw new RuntimeException("Stage 1 FAILED: MouseEvent CTOR accepted the extra button " + (buttonId+1) + " instead of throwing an exception.");
  189.47 +               }
  189.48 +           } catch (IllegalArgumentException e){
  189.49 +                if (buttonId > 3) {
  189.50 +                    System.out.println("Passed: an exception caught for extra button.");
  189.51 +                } else {
  189.52 +                    throw new RuntimeException("Stage 1 FAILED : exception happen on standard button.", e);
  189.53 +                }
  189.54 +            }
  189.55 +        }
  189.56 +
  189.57 +        System.out.println("Stage 2");
  189.58 +        for (int buttonId = 1; buttonId <= MouseInfo.getNumberOfButtons(); buttonId++){
  189.59 +           try {
  189.60 +               postMouseEventOldCtor(buttonId);
  189.61 +               if (buttonId > 3) {
  189.62 +                   throw new RuntimeException("Stage 2 FAILED: MouseEvent CTOR accepted the extra button " + (buttonId+1) + " instead of throwing an exception.");
  189.63 +               }
  189.64 +           } catch (IllegalArgumentException e){
  189.65 +                if (buttonId > 3) {
  189.66 +                    System.out.println("Passed: an exception caught for extra button.");
  189.67 +                } else {
  189.68 +                    throw new RuntimeException("Stage 2 FAILED : exception happen on standard button.", e);
  189.69 +                }
  189.70 +            }
  189.71 +        }
  189.72 +        System.out.println("Test passed.");
  189.73 +    }
  189.74 +
  189.75 +    public static void postMouseEventNewCtor(int buttonId)    {
  189.76 +        MouseEvent me = new MouseEvent(frame,
  189.77 +                                       MouseEvent.MOUSE_PRESSED,
  189.78 +                                       System.currentTimeMillis(),
  189.79 +                                       MouseEvent.BUTTON1_DOWN_MASK,
  189.80 +                                       mousePosition.x, mousePosition.y,
  189.81 +                                       mousePositionOnScreen.x,
  189.82 +                                       mousePositionOnScreen.y,
  189.83 +                                       1,
  189.84 +                                       false,              //popupTrigger
  189.85 +                                       buttonId            //button
  189.86 +                                       );
  189.87 +        frame.dispatchEvent( ( AWTEvent )me );
  189.88 +    }
  189.89 +
  189.90 +    public static void postMouseEventOldCtor(int buttonId)    {
  189.91 +        MouseEvent meOld = new MouseEvent(frame,
  189.92 +                                          MouseEvent.MOUSE_PRESSED,
  189.93 +                                          System.currentTimeMillis(),
  189.94 +                                          MouseEvent.BUTTON1_DOWN_MASK,
  189.95 +                                          mousePosition.x, mousePosition.y,
  189.96 +                                          1,
  189.97 +                                          false,              //popupTrigger
  189.98 +                                          buttonId //button
  189.99 +                                          );
 189.100 +        frame.dispatchEvent( ( AWTEvent )meOld );
 189.101 +    }
 189.102 +}
 189.103 +
 189.104 +
   190.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   190.2 +++ b/test/java/awt/event/MouseEvent/CheckGetMaskForButton/CheckGetMaskForButton.java	Wed Feb 18 10:05:41 2009 -0800
   190.3 @@ -0,0 +1,65 @@
   190.4 +/*
   190.5 +  @test %I% %E%
   190.6 +  @bug 6315717
   190.7 +  @summary verifies that InputEvent.getMaskForButton() returns the same values as in InputEvent.BUTTON_DOWN_MASK
   190.8 +  @author Andrei Dmitriev : area=awt.event
   190.9 +  @run main CheckGetMaskForButton
  190.10 +*/
  190.11 +
  190.12 +import java.awt.*;
  190.13 +import java.awt.event.InputEvent;
  190.14 +import java.lang.reflect.*;
  190.15 +import java.security.AccessController;
  190.16 +import java.security.PrivilegedAction;
  190.17 +
  190.18 +public class CheckGetMaskForButton{
  190.19 +    static Robot robot;
  190.20 +
  190.21 +    public static void main(String []s){
  190.22 +        System.out.println("Number Of Buttons = "+ MouseInfo.getNumberOfButtons());
  190.23 +        CheckGetMaskForButton f = new CheckGetMaskForButton();
  190.24 +        int [] buttonMasksViaAPI = new int[MouseInfo.getNumberOfButtons()];
  190.25 +        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
  190.26 +            buttonMasksViaAPI[i] = InputEvent.getMaskForButton(i+1);
  190.27 +            System.out.println("Test (API): "+ buttonMasksViaAPI[i]);
  190.28 +        }
  190.29 +
  190.30 +        //get same array via reflection
  190.31 +        Object obj = AccessController.doPrivileged(
  190.32 +                new PrivilegedAction() {
  190.33 +            public Object run() {
  190.34 +                try {
  190.35 +                    Class clazz = Class.forName("java.awt.event.InputEvent");
  190.36 +                    Method method  = clazz.getDeclaredMethod("getButtonDownMasks",new Class [] {});
  190.37 +                    if (method != null) {
  190.38 +                        method.setAccessible(true);
  190.39 +                        return method.invoke(null, (Object[])null);
  190.40 +                    }
  190.41 +                }catch (Exception e){
  190.42 +                    throw new RuntimeException("Test failed. Exception occured:", e);
  190.43 +                }
  190.44 +                return null;
  190.45 +            }
  190.46 +        });
  190.47 +
  190.48 +        if (obj == null){
  190.49 +            throw new RuntimeException("Test failed. The value obtained via reflection is "+obj);
  190.50 +        }
  190.51 +
  190.52 +        int [] buttonDownMasksViaReflection = new int [Array.getLength(obj)];
  190.53 +        //check that length of API array greater or equals then Reflect array.
  190.54 +        if (Array.getLength(obj) < buttonMasksViaAPI.length){
  190.55 +            throw new RuntimeException("Test failed. The length of API array greater or equals then the length of  Reflect array.");
  190.56 +        }
  190.57 +
  190.58 +        //Check that the values obtained via reflection from InputEvent.BUTTON_DOWN_MASK are the
  190.59 +        // same as for standard API.
  190.60 +        for (int i = 0; i < MouseInfo.getNumberOfButtons(); i++){
  190.61 +            System.out.println("Test (Reflection): "+ Array.getInt(obj, i));
  190.62 +            if (buttonMasksViaAPI[i] != Array.getInt(obj, i)){
  190.63 +                throw new RuntimeException("Test failed. Values of InputEvent array are different for API and Reflection invocations");
  190.64 +            }
  190.65 +        }
  190.66 +        System.out.println("Test passed.");
  190.67 +    }
  190.68 +}