XPanelPeer.java (beginLayout, [...]): New methods.
* gnu/awt/xlib/XPanelPeer.java (beginLayout, endLayout,
isPaintPending): New methods.
* gnu/awt/xlib/XFramePeer.java (getState, setState,
setMaximizedBounds): New methods.
(beginLayout, endLayout, isPaintPending): Likewise.
* gnu/awt/xlib/XCanvasPeer.java (isFocusable): New method.
(requestFocus): Likewise.
(isObscured): Likewise.
(canDetermineObscurity): Likewise.
(coalescePaintEvent): Likewise.
(updateCursorImmediately): Likewise.
(createVolatileImage): Likewise.
(handlesWheelScrolling): Likewise.
(createBuffers): Likewise.
(getBackBuffer): Likewise.
(flip): Likewise.
(destroyBuffers): Likewise.
* Makefile.in: Rebuilt.
* Makefile.am (awt_java_source_files): Added DropTargetPeer.java,
RobotPeer.java.
* gnu/java/awt/GLightweightPeer.java,
gnu/java/awt/peer/gtk/GtkChoicePeer.java,
gnu/java/awt/peer/gtk/GtkComponentPeer.java,
gnu/java/awt/peer/gtk/GtkContainerPeer.java,
gnu/java/awt/peer/gtk/GtkFramePeer.java,
gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java,
gnu/java/awt/peer/gtk/GtkTextComponentPeer.java,
java/awt/dnd/peer/DragSourceContextPeer.java,
java/awt/dnd/peer/DropTargetContextPeer.java,
java/awt/peer/ButtonPeer.java,
java/awt/peer/CheckboxMenuItemPeer.java,
java/awt/peer/CheckboxPeer.java, java/awt/peer/ChoicePeer.java,
java/awt/peer/ComponentPeer.java,
java/awt/peer/ContainerPeer.java, java/awt/peer/DialogPeer.java,
java/awt/peer/FileDialogPeer.java, java/awt/peer/FramePeer.java,
java/awt/peer/LabelPeer.java, java/awt/peer/ListPeer.java,
java/awt/peer/MenuBarPeer.java,
java/awt/peer/MenuComponentPeer.java,
java/awt/peer/MenuItemPeer.java, java/awt/peer/MenuPeer.java,
java/awt/peer/PopupMenuPeer.java,
java/awt/peer/ScrollPanePeer.java,
java/awt/peer/ScrollbarPeer.java, java/awt/peer/TextAreaPeer.java,
java/awt/peer/TextComponentPeer.java,
java/awt/peer/TextFieldPeer.java, java/awt/peer/WindowPeer.java:
New versions from Classpath.
* java/awt/dnd/peer/DropTargetPeer.java: New file from Classpath.
* java/awt/peer/RobotPeer.java: Likewise.
From-SVN: r63627
2003-03-01 22:14:21 +00:00
|
|
|
/* Copyright (C) 2000, 2002, 2003 Free Software Foundation
|
2000-10-22 19:46:09 +02:00
|
|
|
|
|
|
|
|
This file is part of libgcj.
|
|
|
|
|
|
|
|
|
|
This software is copyrighted work licensed under the terms of the
|
|
|
|
|
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
|
|
|
|
details. */
|
|
|
|
|
|
|
|
|
|
package gnu.awt.xlib;
|
|
|
|
|
|
|
|
|
|
import java.awt.*;
|
|
|
|
|
import java.awt.peer.*;
|
|
|
|
|
import java.awt.image.*;
|
|
|
|
|
import gnu.gcj.xlib.WMSizeHints;
|
|
|
|
|
import gnu.gcj.xlib.WindowAttributes;
|
|
|
|
|
import gnu.gcj.xlib.Display;
|
|
|
|
|
import gnu.gcj.xlib.Visual;
|
|
|
|
|
import gnu.gcj.xlib.Screen;
|
|
|
|
|
import gnu.gcj.xlib.XConfigureEvent;
|
|
|
|
|
|
|
|
|
|
/** FIXME: a lot of the code here should be moved down to XWindowPeer. */
|
|
|
|
|
|
|
|
|
|
public class XFramePeer extends XCanvasPeer implements FramePeer
|
|
|
|
|
{
|
2005-07-15 16:07:18 +00:00
|
|
|
private boolean processingConfigureNotify = false;
|
|
|
|
|
|
2000-10-22 19:46:09 +02:00
|
|
|
public XFramePeer(Frame frame)
|
|
|
|
|
{
|
|
|
|
|
super(frame);
|
|
|
|
|
|
|
|
|
|
// Set some defaults for a toplevel component:
|
|
|
|
|
if (frame.getFont() == null)
|
|
|
|
|
frame.setFont(new Font("helvetica", Font.PLAIN, 12));
|
|
|
|
|
|
|
|
|
|
if (frame.getBackground() == null)
|
|
|
|
|
frame.setBackground(Color.lightGray);
|
|
|
|
|
|
|
|
|
|
if (frame.getForeground() == null)
|
|
|
|
|
frame.setForeground(Color.black);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** Find parent window for toplevel window, ie. root window of
|
|
|
|
|
selected screen. Bounds are not changed. */
|
|
|
|
|
gnu.gcj.xlib.Window locateParentWindow(Rectangle bounds)
|
|
|
|
|
{
|
|
|
|
|
Screen screen = config.getVisual().getScreen();
|
|
|
|
|
return screen.getRootWindow();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void initWindowProperties()
|
|
|
|
|
{
|
|
|
|
|
Frame frame = (Frame) component;
|
|
|
|
|
setResizable(frame.isResizable());
|
|
|
|
|
String title = frame.getTitle();
|
|
|
|
|
if (!title.equals("")) setTitle(title);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
long getBasicEventMask()
|
|
|
|
|
{
|
|
|
|
|
return super.getBasicEventMask() |
|
|
|
|
|
WindowAttributes.MASK_STRUCTURE_NOTIFY;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void configureNotify(XConfigureEvent configEvent)
|
|
|
|
|
{
|
2005-07-15 16:07:18 +00:00
|
|
|
processingConfigureNotify = true; // to avoid setBounds flood
|
2000-10-22 19:46:09 +02:00
|
|
|
component.setBounds(configEvent.getBounds());
|
2005-07-15 16:07:18 +00:00
|
|
|
processingConfigureNotify = false;
|
2000-10-22 19:46:09 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Overridden to ignore request to set bounds if the request occurs
|
2005-07-15 16:07:18 +00:00
|
|
|
while processing an XConfigureNotify event, in which case the X
|
|
|
|
|
window already has the desired bounds.
|
|
|
|
|
That's what java.awt.Window.setBoundsCallback is for, but it's
|
|
|
|
|
package-private, and using our own flag eliminates the need to
|
|
|
|
|
circumvent java security.
|
|
|
|
|
*/
|
2000-10-22 19:46:09 +02:00
|
|
|
public void setBounds(int x, int y, int width, int height)
|
|
|
|
|
{
|
2005-07-15 16:07:18 +00:00
|
|
|
if (!processingConfigureNotify)
|
|
|
|
|
super.setBounds(x, y, width, height);
|
2000-10-22 19:46:09 +02:00
|
|
|
}
|
2005-07-15 16:07:18 +00:00
|
|
|
|
2000-10-22 19:46:09 +02:00
|
|
|
// Implementing ContainerPeer:
|
|
|
|
|
|
|
|
|
|
static final Insets INSETS_0_PROTOTYPE = new Insets(0, 0, 0, 0);
|
|
|
|
|
|
|
|
|
|
public Insets getInsets()
|
|
|
|
|
{
|
|
|
|
|
return (Insets) INSETS_0_PROTOTYPE.clone();
|
|
|
|
|
}
|
|
|
|
|
|
2002-01-22 22:03:04 +00:00
|
|
|
public Insets insets ()
|
|
|
|
|
{
|
|
|
|
|
return getInsets ();
|
|
|
|
|
}
|
|
|
|
|
|
2000-10-22 19:46:09 +02:00
|
|
|
public void beginValidate()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void endValidate()
|
|
|
|
|
{
|
|
|
|
|
// reassert sizing hints
|
|
|
|
|
Frame frame = (Frame) component;
|
|
|
|
|
setResizable(frame.isResizable());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Implementing WindowPeer:
|
|
|
|
|
|
|
|
|
|
public void toBack()
|
|
|
|
|
{
|
2005-07-15 16:07:18 +00:00
|
|
|
window.toBack ();
|
2000-10-22 19:46:09 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void toFront()
|
|
|
|
|
{
|
2005-07-15 16:07:18 +00:00
|
|
|
window.toFront ();
|
2000-10-22 19:46:09 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Implementing FramePeer:
|
|
|
|
|
|
|
|
|
|
public void setIconImage(Image image)
|
|
|
|
|
{
|
|
|
|
|
throw new UnsupportedOperationException("not implemented yet");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void setMenuBar(MenuBar mb)
|
|
|
|
|
{
|
|
|
|
|
throw new UnsupportedOperationException("not implemented yet");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void setTitle(String title)
|
|
|
|
|
{
|
|
|
|
|
synchronized (window.getDisplay())
|
|
|
|
|
{
|
|
|
|
|
// Oh, what a nice implementation :-)
|
|
|
|
|
window.setProperty("WM_NAME", "STRING", title);
|
|
|
|
|
|
|
|
|
|
ensureFlush();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void setResizable(boolean resizable)
|
|
|
|
|
{
|
|
|
|
|
Frame frame = (Frame) component;
|
|
|
|
|
|
|
|
|
|
WMSizeHints sizeHints = new WMSizeHints();
|
|
|
|
|
if (resizable)
|
|
|
|
|
{
|
|
|
|
|
Dimension minSize = frame.getMinimumSize();
|
|
|
|
|
sizeHints.setMinSize(minSize.width, minSize.height);
|
|
|
|
|
|
|
|
|
|
Dimension maxSize = frame.getMaximumSize();
|
|
|
|
|
|
|
|
|
|
if ((maxSize.width < Short.MAX_VALUE) ||
|
|
|
|
|
(maxSize.height < Short.MAX_VALUE))
|
|
|
|
|
{
|
|
|
|
|
maxSize.width = Math.min(maxSize.width, Short.MAX_VALUE);
|
|
|
|
|
maxSize.height = Math.min(maxSize.height, Short.MAX_VALUE);
|
|
|
|
|
sizeHints.setMaxSize(maxSize.width, maxSize.height);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
// lock resizing to current bounds
|
|
|
|
|
Dimension size = frame.getSize();
|
|
|
|
|
sizeHints.setMinSize(size.width, size.height);
|
|
|
|
|
sizeHints.setMaxSize(size.width, size.height);
|
|
|
|
|
}
|
|
|
|
|
sizeHints.applyNormalHints(window);
|
|
|
|
|
}
|
XPanelPeer.java (beginLayout, [...]): New methods.
* gnu/awt/xlib/XPanelPeer.java (beginLayout, endLayout,
isPaintPending): New methods.
* gnu/awt/xlib/XFramePeer.java (getState, setState,
setMaximizedBounds): New methods.
(beginLayout, endLayout, isPaintPending): Likewise.
* gnu/awt/xlib/XCanvasPeer.java (isFocusable): New method.
(requestFocus): Likewise.
(isObscured): Likewise.
(canDetermineObscurity): Likewise.
(coalescePaintEvent): Likewise.
(updateCursorImmediately): Likewise.
(createVolatileImage): Likewise.
(handlesWheelScrolling): Likewise.
(createBuffers): Likewise.
(getBackBuffer): Likewise.
(flip): Likewise.
(destroyBuffers): Likewise.
* Makefile.in: Rebuilt.
* Makefile.am (awt_java_source_files): Added DropTargetPeer.java,
RobotPeer.java.
* gnu/java/awt/GLightweightPeer.java,
gnu/java/awt/peer/gtk/GtkChoicePeer.java,
gnu/java/awt/peer/gtk/GtkComponentPeer.java,
gnu/java/awt/peer/gtk/GtkContainerPeer.java,
gnu/java/awt/peer/gtk/GtkFramePeer.java,
gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java,
gnu/java/awt/peer/gtk/GtkTextComponentPeer.java,
java/awt/dnd/peer/DragSourceContextPeer.java,
java/awt/dnd/peer/DropTargetContextPeer.java,
java/awt/peer/ButtonPeer.java,
java/awt/peer/CheckboxMenuItemPeer.java,
java/awt/peer/CheckboxPeer.java, java/awt/peer/ChoicePeer.java,
java/awt/peer/ComponentPeer.java,
java/awt/peer/ContainerPeer.java, java/awt/peer/DialogPeer.java,
java/awt/peer/FileDialogPeer.java, java/awt/peer/FramePeer.java,
java/awt/peer/LabelPeer.java, java/awt/peer/ListPeer.java,
java/awt/peer/MenuBarPeer.java,
java/awt/peer/MenuComponentPeer.java,
java/awt/peer/MenuItemPeer.java, java/awt/peer/MenuPeer.java,
java/awt/peer/PopupMenuPeer.java,
java/awt/peer/ScrollPanePeer.java,
java/awt/peer/ScrollbarPeer.java, java/awt/peer/TextAreaPeer.java,
java/awt/peer/TextComponentPeer.java,
java/awt/peer/TextFieldPeer.java, java/awt/peer/WindowPeer.java:
New versions from Classpath.
* java/awt/dnd/peer/DropTargetPeer.java: New file from Classpath.
* java/awt/peer/RobotPeer.java: Likewise.
From-SVN: r63627
2003-03-01 22:14:21 +00:00
|
|
|
|
|
|
|
|
public int getState ()
|
|
|
|
|
{
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void setState (int state)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void setMaximizedBounds (Rectangle r)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void beginLayout () { }
|
|
|
|
|
public void endLayout () { }
|
|
|
|
|
public boolean isPaintPending () { return false; }
|
2005-09-23 21:31:04 +00:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @since 1.5
|
|
|
|
|
*/
|
|
|
|
|
public void setBoundsPrivate (int x, int y, int width, int height)
|
|
|
|
|
{
|
Import GNU Classpath (libgcj-import-20070727).
libjava/
2007-08-04 Matthias Klose <doko@ubuntu.com>
Import GNU Classpath (libgcj-import-20070727).
* Regenerate class and header files.
* Regenerate auto* files.
* include/jvm.h:
* jni-libjvm.cc (Jv_JNI_InvokeFunctions): Rename type.
* jni.cc (_Jv_JNIFunctions, _Jv_JNI_InvokeFunctions): Likewise.
* jni.cc (_Jv_JNI_CallAnyMethodA, _Jv_JNI_CallAnyVoidMethodA,
_Jv_JNI_CallMethodA, _Jv_JNI_CallVoidMethodA,
_Jv_JNI_CallStaticMethodA, _Jv_JNI_CallStaticVoidMethodA,
_Jv_JNI_NewObjectA, _Jv_JNI_SetPrimitiveArrayRegion): Constify
jvalue parameter.
* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Likewise.
* java/lang/VMFloat.java (toString, parseFloat): New.
* gnu/awt/xlib/XToolkit.java (setAlwaysOnTop, isModalityTypeSupported,
isModalExclusionTypeSupported): New (stub only).
* gnu/awt/xlib/XCanvasPeer.java (requestFocus): Likewise.
* gnu/awt/xlib/XFramePeer.java (updateMinimumSize, updateIconImages,
updateFocusableWindowState, setModalBlocked, getBoundsPrivate,
setAlwaysOnTop): Likewise.
* gnu/awt/xlib/XFontPeer.java (canDisplay): Update signature.
* scripts/makemake.tcl: Ignore gnu/javax/sound/sampled/gstreamer,
ignore javax.sound.sampled.spi.MixerProvider, ignore .in files.
* HACKING: Mention --enable-gstreamer-peer, removal of generated files.
libjava/classpath/
2007-08-04 Matthias Klose <doko@ubuntu.com>
* java/util/EnumMap.java (clone): Add cast.
From-SVN: r127204
2007-08-04 10:53:49 +00:00
|
|
|
// TODO: Implement this.
|
|
|
|
|
throw new UnsupportedOperationException("Not yet implemented.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Rectangle getBoundsPrivate()
|
|
|
|
|
{
|
|
|
|
|
// TODO: Implement this.
|
|
|
|
|
throw new UnsupportedOperationException("Not yet implemented.");
|
2005-09-23 21:31:04 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @since 1.5
|
|
|
|
|
*/
|
|
|
|
|
public void updateAlwaysOnTop()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @since 1.5
|
|
|
|
|
*/
|
|
|
|
|
public boolean requestWindowFocus ()
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
Import GNU Classpath (libgcj-import-20070727).
libjava/
2007-08-04 Matthias Klose <doko@ubuntu.com>
Import GNU Classpath (libgcj-import-20070727).
* Regenerate class and header files.
* Regenerate auto* files.
* include/jvm.h:
* jni-libjvm.cc (Jv_JNI_InvokeFunctions): Rename type.
* jni.cc (_Jv_JNIFunctions, _Jv_JNI_InvokeFunctions): Likewise.
* jni.cc (_Jv_JNI_CallAnyMethodA, _Jv_JNI_CallAnyVoidMethodA,
_Jv_JNI_CallMethodA, _Jv_JNI_CallVoidMethodA,
_Jv_JNI_CallStaticMethodA, _Jv_JNI_CallStaticVoidMethodA,
_Jv_JNI_NewObjectA, _Jv_JNI_SetPrimitiveArrayRegion): Constify
jvalue parameter.
* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Likewise.
* java/lang/VMFloat.java (toString, parseFloat): New.
* gnu/awt/xlib/XToolkit.java (setAlwaysOnTop, isModalityTypeSupported,
isModalExclusionTypeSupported): New (stub only).
* gnu/awt/xlib/XCanvasPeer.java (requestFocus): Likewise.
* gnu/awt/xlib/XFramePeer.java (updateMinimumSize, updateIconImages,
updateFocusableWindowState, setModalBlocked, getBoundsPrivate,
setAlwaysOnTop): Likewise.
* gnu/awt/xlib/XFontPeer.java (canDisplay): Update signature.
* scripts/makemake.tcl: Ignore gnu/javax/sound/sampled/gstreamer,
ignore javax.sound.sampled.spi.MixerProvider, ignore .in files.
* HACKING: Mention --enable-gstreamer-peer, removal of generated files.
libjava/classpath/
2007-08-04 Matthias Klose <doko@ubuntu.com>
* java/util/EnumMap.java (clone): Add cast.
From-SVN: r127204
2007-08-04 10:53:49 +00:00
|
|
|
|
|
|
|
|
public void setAlwaysOnTop(boolean alwaysOnTop)
|
|
|
|
|
{
|
|
|
|
|
throw new UnsupportedOperationException("not implemented yet");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void updateFocusableWindowState()
|
|
|
|
|
{
|
|
|
|
|
throw new UnsupportedOperationException("not implemented yet");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void setModalBlocked(Dialog blocker, boolean blocked)
|
|
|
|
|
{
|
|
|
|
|
throw new UnsupportedOperationException("not implemented yet");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void updateMinimumSize()
|
|
|
|
|
{
|
|
|
|
|
throw new UnsupportedOperationException("not implemented yet");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void updateIconImages()
|
|
|
|
|
{
|
|
|
|
|
throw new UnsupportedOperationException("not implemented yet");
|
|
|
|
|
}
|
2000-10-22 19:46:09 +02:00
|
|
|
}
|