gnu.java.awt.peer.qt

Class QtComponentPeer

Implemented Interfaces:
ComponentPeer
Known Direct Subclasses:
QtButtonPeer, QtCanvasPeer, QtCheckboxPeer, QtChoicePeer, QtContainerPeer, QtLabelPeer, QtListPeer, QtScrollbarPeer, QtTextAreaPeer, QtTextFieldPeer

public class QtComponentPeer
extends NativeWrapper
implements ComponentPeer

Field Summary

protected static int
POPUP_TRIGGER
Popup trigger button, may differ between platforms
protected QtImage
backBuffer
The component's double buffer for off-screen drawing.
protected long
qtApp
protected QtToolkit
toolkit
The toolkit which manufactured this peer.

Fields inherited from class gnu.java.awt.peer.qt.NativeWrapper

nativeObject

Method Summary

protected void
callInit()
boolean
canDetermineObscurity()
Returns true if this component peer can determine if the component has been obscured, false otherwise.
int
checkImage(Image img, int w, int h, ImageObserver o)
Returns the construction status of the specified image.
protected void
closeEvent()
Window closing event
void
coalescePaintEvent(PaintEvent e)
Coalesces the specified paint event.
void
createBuffers(int numBuffers, BufferCapabilities caps)
Create a number of image buffers that implement a buffering strategy according to the given capabilities.
Image
createImage(int width, int height)
Creates an empty image with the specified width and height.
Image
createImage(ImageProducer producer)
Creates an image by starting the specified image producer.
VolatileImage
createVolatileImage(int w, int h)
A convenience method that creates a volatile image.
void
destroyBuffers()
Destroy the resources created by createBuffers.
void
disable()
Disables the component.
void
dispose()
Disposes the component peer.
void
enable()
Enables the component.
protected void
enterEvent(int modifiers, int x, int y, int dummy)
void
finalize()
Called on an object by the Virtual Machine at most once, at some point after the Object is determined unreachable but before it is destroyed.
void
flip(BufferCapabilities.FlipContents contents)
Perform a page flip, leaving the contents of the back buffer in the specified state.
protected void
focusInEvent()
protected void
focusOutEvent()
Image
getBackBuffer()
Return the back buffer of this component.
Rectangle
getBounds()
Get the bounds of this component peer.
ColorModel
getColorModel()
Returns the color model of the component.
FontMetrics
getFontMetrics(Font font)
Returns the font metrics for the specified font.
Graphics
getGraphics()
Returns a Graphics object suitable for drawing on this component.
GraphicsConfiguration
getGraphicsConfiguration()
Get the graphics configuration of the component.
Point
getLocationOnScreen()
Returns the location of this component in screen coordinates.
Dimension
getMinimumSize()
Returns the minimum size for the component.
Dimension
getPreferredSize()
Returns the preferred size for the component.
Toolkit
getToolkit()
Returns the toolkit that created this peer.
void
handleEvent(AWTEvent e)
Handles the given event.
boolean
handlesWheelScrolling()
Returns true, if this component can handle wheel scrolling, false otherwise.
void
hide()
Makes the component invisible.
protected void
hideEvent()
protected void
init()
Init does the creation of native widgets, it is therefore called from the main thread. (the constructor waits for this to happen.)
boolean
isFocusTraversable()
Returns true if the component can receive keyboard input focus.
boolean
isFocusable()
Returns true if the component can receive keyboard input focus.
boolean
isObscured()
Returns true if this component has been obscured, false otherwise.
boolean
isReparentSupported()
Check if this component supports being reparented.
protected void
keyPressEvent(int modifiers, int code, int unicode, int dummy)
protected void
keyReleaseEvent(int modifiers, int code, int unicode, int dummy)
void
layout()
Layout this component peer.
protected void
leaveEvent(int modifiers, int x, int y, int dummy)
Dimension
minimumSize()
Returns the minimum size for the component.
protected void
mouseDoubleClickEvent(int modifiers, int x, int y, int clickCount)
protected void
mouseMoveEvent(int modifiers, int x, int y, int clickCount)
protected void
mousePressEvent(int modifiers, int x, int y, int clickCount)
protected void
mouseReleaseEvent(int modifiers, int x, int y, int clickCount)
protected void
moveEvent(int x, int y, int oldx, int oldy)
void
paint(Graphics g)
paint() is called back from the native side in response to a native repaint event.
void
paintBackBuffer()
void
paintBackBuffer(int x, int y, int w, int h)
Dimension
preferredSize()
Returns the preferred size for the component.
boolean
prepareImage(Image img, int w, int h, ImageObserver o)
Prepares an image for rendering on this component.
void
print(Graphics g)
void
repaint(long tm, int x, int y, int w, int h)
Schedules a timed repaint.
void
reparent(ContainerPeer parent)
Reparent this component under another container.
void
requestFocus()
Requests that this component receives the focus.
boolean
requestFocus(Component source, boolean bool1, boolean bool2, long x)
Requests that this component receives the focus.
boolean
requestFocus(Component lightweightChild, boolean temporary, boolean focusedWindowChangeAllowed, long time, CausedFocusEvent.Cause cause)
Requests the focus on the component.
void
reshape(int x, int y, int width, int height)
Notifies the peer that the bounds of this component have changed.
protected void
resizeEvent(int oldWidth, int oldHeight, int width, int height)
void
setBackground(Color c)
Sets the background color of the component.
void
setBounds(int x, int y, int width, int height)
Notifies the peer that the bounds of this component have changed.
void
setBounds(int x, int y, int width, int height, int z)
Set the bounds of this component peer.
void
setCursor(Cursor cursor)
Sets the cursor of the component.
void
setEnabled(boolean b)
Sets the enabled/disabled state of this component.
void
setEventMask(long x)
Classpath-specific method
void
setFont(Font f)
Sets the font of the component.
void
setForeground(Color c)
Sets the foreground color of the component.
void
setVisible(boolean b)
Sets the visibility state of the component.
protected void
setup()
void
show()
Makes the component visible.
protected void
showEvent()
void
updateCursorImmediately()
Update the cursor (note that setCursor is usually not called)

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

POPUP_TRIGGER

protected static final int POPUP_TRIGGER
Popup trigger button, may differ between platforms
Field Value:
3

backBuffer

protected QtImage backBuffer
The component's double buffer for off-screen drawing.

qtApp

protected long qtApp

toolkit

protected QtToolkit toolkit
The toolkit which manufactured this peer.

Method Details

callInit

protected void callInit()

canDetermineObscurity

public boolean canDetermineObscurity()
Returns true if this component peer can determine if the component has been obscured, false otherwise.
Specified by:
canDetermineObscurity in interface ComponentPeer
Returns:
true if this component peer can determine if the component has been obscured, false otherwise

checkImage

public int checkImage(Image img,
                      int w,
                      int h,
                      ImageObserver o)
Returns the construction status of the specified image. This is called by Component.checkImage(Image,int,int,ImageObserver).
Specified by:
checkImage in interface ComponentPeer
Parameters:
img - the image
Returns:
a bitwise ORed set of ImageObserver flags

closeEvent

protected void closeEvent()
Window closing event

coalescePaintEvent

public void coalescePaintEvent(PaintEvent e)
Coalesces the specified paint event.
Specified by:
coalescePaintEvent in interface ComponentPeer
Parameters:
e - the paint event

createBuffers

public void createBuffers(int numBuffers,
                          BufferCapabilities caps)
            throws AWTException
Create a number of image buffers that implement a buffering strategy according to the given capabilities.
Specified by:
createBuffers in interface ComponentPeer
Parameters:
numBuffers - the number of buffers
caps - the buffering capabilities
Throws:
AWTException - if the specified buffering strategy is not implemented
Since:
1.2

createImage

public Image createImage(int width,
                         int height)
Creates an empty image with the specified width and height.
Specified by:
createImage in interface ComponentPeer
Parameters:
width - the width of the image to be created
height - the height of the image to be created
Returns:
the created image

createImage

public Image createImage(ImageProducer producer)
Creates an image by starting the specified image producer. This is called by Component.createImage(ImageProducer).
Specified by:
createImage in interface ComponentPeer
Parameters:
Returns:
the created image

createVolatileImage

public VolatileImage createVolatileImage(int w,
                                         int h)
A convenience method that creates a volatile image. The volatile image is created on the screen device on which this component is displayed, in the device's current graphics configuration.
Specified by:
createVolatileImage in interface ComponentPeer
Parameters:
Since:
1.2
See Also:
VolatileImage

destroyBuffers

public void destroyBuffers()
Destroy the resources created by createBuffers.
Specified by:
destroyBuffers in interface ComponentPeer
Since:
1.2

disable

public void disable()
Disables the component. This is called by Component.disable().
Specified by:
disable in interface ComponentPeer

dispose

public void dispose()
Disposes the component peer. This should release all resources held by the peer. This is called when the component is no longer in use.
Specified by:
dispose in interface ComponentPeer

enable

public void enable()
Enables the component. This is called by Component.enable().
Specified by:
enable in interface ComponentPeer

enterEvent

protected void enterEvent(int modifiers,
                          int x,
                          int y,
                          int dummy)

finalize

public void finalize()
Called on an object by the Virtual Machine at most once, at some point after the Object is determined unreachable but before it is destroyed. You would think that this means it eventually is called on every Object, but this is not necessarily the case. If execution terminates abnormally, garbage collection does not always happen. Thus you cannot rely on this method to always work. For finer control over garbage collection, use references from the java.lang.ref package.

Virtual Machines are free to not call this method if they can determine that it does nothing important; for example, if your class extends Object and overrides finalize to do simply super.finalize().

finalize() will be called by a Thread that has no locks on any Objects, and may be called concurrently. There are no guarantees on the order in which multiple objects are finalized. This means that finalize() is usually unsuited for performing actions that must be thread-safe, and that your implementation must be use defensive programming if it is to always work.

If an Exception is thrown from finalize() during garbage collection, it will be patently ignored and the Object will still be destroyed.

It is allowed, although not typical, for user code to call finalize() directly. User invocation does not affect whether automatic invocation will occur. It is also permitted, although not recommended, for a finalize() method to "revive" an object by making it reachable from normal code again.

Unlike constructors, finalize() does not get called for an object's superclass unless the implementation specifically calls super.finalize().

The default implementation does nothing.

Overrides:
finalize in interface Object

flip

public void flip(BufferCapabilities.FlipContents contents)
Perform a page flip, leaving the contents of the back buffer in the specified state.
Specified by:
flip in interface ComponentPeer
Parameters:
contents - the state in which to leave the back buffer
Since:
1.2

focusInEvent

protected void focusInEvent()

focusOutEvent

protected void focusOutEvent()

getBackBuffer

public Image getBackBuffer()
Return the back buffer of this component.
Specified by:
getBackBuffer in interface ComponentPeer
Returns:
the back buffer of this component.
Since:
1.2

getBounds

public Rectangle getBounds()
Get the bounds of this component peer.
Specified by:
getBounds in interface ComponentPeer
Returns:
component peer bounds
Since:
1.5

getColorModel

public ColorModel getColorModel()
Returns the color model of the component. This is currently not used.
Specified by:
getColorModel in interface ComponentPeer
Returns:
the color model of the component

getFontMetrics

public FontMetrics getFontMetrics(Font font)
Returns the font metrics for the specified font. This is called by Component.getFontMetrics(Font).
Specified by:
getFontMetrics in interface ComponentPeer
Parameters:
Returns:
the font metrics for the specified font

getGraphics

public Graphics getGraphics()
Returns a Graphics object suitable for drawing on this component. This is called by Component.getGraphics().
Specified by:
getGraphics in interface ComponentPeer
Returns:
a graphics object suitable for drawing on this component

getGraphicsConfiguration

public GraphicsConfiguration getGraphicsConfiguration()
Get the graphics configuration of the component. The color model of the component can be derived from the configuration.
Specified by:
getGraphicsConfiguration in interface ComponentPeer
Returns:
the graphics configuration of the component

getLocationOnScreen

public Point getLocationOnScreen()
Returns the location of this component in screen coordinates. This is called by Component.getLocationOnScreen().
Specified by:
getLocationOnScreen in interface ComponentPeer
Returns:
the location of this component in screen coordinates

getMinimumSize

public Dimension getMinimumSize()
Returns the minimum size for the component. This is called by Component.getMinimumSize().
Specified by:
getMinimumSize in interface ComponentPeer
Returns:
the minimum size for the component

getPreferredSize

public Dimension getPreferredSize()
Returns the preferred size for the component. This is called by Component.getPreferredSize().
Specified by:
getPreferredSize in interface ComponentPeer
Returns:
the preferred size for the component

getToolkit

public Toolkit getToolkit()
Returns the toolkit that created this peer.
Specified by:
getToolkit in interface ComponentPeer
Returns:
the toolkit that created this peer

handleEvent

public void handleEvent(AWTEvent e)
Handles the given event. This is called from Component.dispatchEvent(AWTEvent) to give the peer a chance to react to events for the component.
Specified by:
handleEvent in interface ComponentPeer
Parameters:
e - the event

handlesWheelScrolling

public boolean handlesWheelScrolling()
Returns true, if this component can handle wheel scrolling, false otherwise.
Specified by:
handlesWheelScrolling in interface ComponentPeer
Returns:
true, if this component can handle wheel scrolling, false otherwise

hide

public void hide()
Makes the component invisible. This is called from Component.hide().
Specified by:
hide in interface ComponentPeer

hideEvent

protected void hideEvent()

init

protected void init()
Init does the creation of native widgets, it is therefore called from the main thread. (the constructor waits for this to happen.)

isFocusTraversable

public boolean isFocusTraversable()
Returns true if the component can receive keyboard input focus. This is called from Component.isFocusTraversable().
Specified by:
isFocusTraversable in interface ComponentPeer

isFocusable

public boolean isFocusable()
Returns true if the component can receive keyboard input focus. This is called from Component.isFocusable().
Specified by:
isFocusable in interface ComponentPeer

isObscured

public boolean isObscured()
Returns true if this component has been obscured, false otherwise. This will only work if ComponentPeer.canDetermineObscurity() also returns true.
Specified by:
isObscured in interface ComponentPeer
Returns:
true if this component has been obscured, false otherwise.

isReparentSupported

public boolean isReparentSupported()
Check if this component supports being reparented.
Specified by:
isReparentSupported in interface ComponentPeer
Returns:
true if this component can be reparented, false otherwise.
Since:
1.5

keyPressEvent

protected void keyPressEvent(int modifiers,
                             int code,
                             int unicode,
                             int dummy)

keyReleaseEvent

protected void keyReleaseEvent(int modifiers,
                               int code,
                               int unicode,
                               int dummy)

layout

public void layout()
Layout this component peer.
Specified by:
layout in interface ComponentPeer
Since:
1.5

leaveEvent

protected void leaveEvent(int modifiers,
                          int x,
                          int y,
                          int dummy)

minimumSize

public Dimension minimumSize()
Returns the minimum size for the component. This is called by Component.minimumSize().
Specified by:
minimumSize in interface ComponentPeer
Returns:
the minimum size for the component

mouseDoubleClickEvent

protected void mouseDoubleClickEvent(int modifiers,
                                     int x,
                                     int y,
                                     int clickCount)

mouseMoveEvent

protected void mouseMoveEvent(int modifiers,
                              int x,
                              int y,
                              int clickCount)

mousePressEvent

protected void mousePressEvent(int modifiers,
                               int x,
                               int y,
                               int clickCount)

mouseReleaseEvent

protected void mouseReleaseEvent(int modifiers,
                                 int x,
                                 int y,
                                 int clickCount)

moveEvent

protected void moveEvent(int x,
                         int y,
                         int oldx,
                         int oldy)

paint

public void paint(Graphics g)
paint() is called back from the native side in response to a native repaint event.
Specified by:
paint in interface ComponentPeer

paintBackBuffer

public void paintBackBuffer()
            throws InterruptedException

paintBackBuffer

public void paintBackBuffer(int x,
                            int y,
                            int w,
                            int h)
            throws InterruptedException

preferredSize

public Dimension preferredSize()
Returns the preferred size for the component. This is called by Component.getPreferredSize().
Specified by:
preferredSize in interface ComponentPeer
Returns:
the preferred size for the component

prepareImage

public boolean prepareImage(Image img,
                            int w,
                            int h,
                            ImageObserver o)
Prepares an image for rendering on this component. This is called by Component.prepareImage(Image,int,int,ImageObserver).
Specified by:
prepareImage in interface ComponentPeer
Parameters:
img - the image to prepare
Returns:
true if the image has been fully prepared, false otherwise (in which case the image observer receives updates)

print

public void print(Graphics g)
Specified by:
print in interface ComponentPeer

repaint

public void repaint(long tm,
                    int x,
                    int y,
                    int w,
                    int h)
Schedules a timed repaint.
Specified by:
repaint in interface ComponentPeer

reparent

public void reparent(ContainerPeer parent)
Reparent this component under another container.
Specified by:
reparent in interface ComponentPeer
Parameters:
parent -
Since:
1.5

requestFocus

public void requestFocus()
Requests that this component receives the focus. This is called from Component.requestFocus().
Specified by:
requestFocus in interface ComponentPeer

requestFocus

public boolean requestFocus(Component source,
                            boolean bool1,
                            boolean bool2,
                            long x)
Requests that this component receives the focus. This is called from Component.requestFocus(). This method is only called for heavyweight component's peers. Lightweight components ask their nearest heavyweight component to request focus. It's up to the heavyweight peer to decide if any of it's lightweight descendants are allowed to receive keyboard input focus or not. If the focus request is finally approved, then the peer must post a FOCUS_GAINED event for the requested component.
Specified by:
requestFocus in interface ComponentPeer
Parameters:

requestFocus

public boolean requestFocus(Component lightweightChild,
                            boolean temporary,
                            boolean focusedWindowChangeAllowed,
                            long time,
                            CausedFocusEvent.Cause cause)
Requests the focus on the component.
Specified by:
requestFocus in interface ComponentPeer

reshape

public void reshape(int x,
                    int y,
                    int width,
                    int height)
Notifies the peer that the bounds of this component have changed. This is called by Component.reshape(int,int,int,int).
Specified by:
reshape in interface ComponentPeer
Parameters:
x - the X coordinate of the upper left corner of the component
y - the Y coordinate of the upper left corner of the component
width - the width of the component
height - the height of the component

resizeEvent

protected void resizeEvent(int oldWidth,
                           int oldHeight,
                           int width,
                           int height)

setBackground

public void setBackground(Color c)
Sets the background color of the component. This is called by Component.setBackground(Color).
Specified by:
setBackground in interface ComponentPeer
Parameters:

setBounds

public void setBounds(int x,
                      int y,
                      int width,
                      int height)
Notifies the peer that the bounds of this component have changed. This is called by Component.setBounds(int,int,int,int).
Specified by:
setBounds in interface ComponentPeer
Parameters:
x - the X coordinate of the upper left corner of the component
y - the Y coordinate of the upper left corner of the component
width - the width of the component
height - the height of the component

setBounds

public void setBounds(int x,
                      int y,
                      int width,
                      int height,
                      int z)
Set the bounds of this component peer.
Specified by:
setBounds in interface ComponentPeer
Parameters:
x - the new x co-ordinate
y - the new y co-ordinate
width - the new width
height - the new height
z - the new stacking level
Since:
1.5

setCursor

public void setCursor(Cursor cursor)
Sets the cursor of the component. This is called by Component.setCursor(Cursor).
Specified by:
setCursor in interface ComponentPeer

setEnabled

public void setEnabled(boolean b)
Sets the enabled/disabled state of this component. This is called by Component.setEnabled(boolean).
Specified by:
setEnabled in interface ComponentPeer
Parameters:

setEventMask

public void setEventMask(long x)
Classpath-specific method
Specified by:
setEventMask in interface ComponentPeer

setFont

public void setFont(Font f)
Sets the font of the component. This is called by Component.setFont(Font).
Specified by:
setFont in interface ComponentPeer
Parameters:

setForeground

public void setForeground(Color c)
Sets the foreground color of the component. This is called by Component.setForeground(Color).
Specified by:
setForeground in interface ComponentPeer
Parameters:

setVisible

public void setVisible(boolean b)
Sets the visibility state of the component. This is called by Component.setVisible(boolean).
Specified by:
setVisible in interface ComponentPeer
Parameters:

setup

protected void setup()

show

public void show()
Makes the component visible. This is called by Component.show().
Specified by:
show in interface ComponentPeer

showEvent

protected void showEvent()

updateCursorImmediately

public void updateCursorImmediately()
Update the cursor (note that setCursor is usually not called)
Specified by:
updateCursorImmediately in interface ComponentPeer

QtComponentPeer.java -- Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.