gnu.java.awt.peer.gtk

Class GtkWindowPeer

Implemented Interfaces:
ComponentPeer, ContainerPeer, WindowPeer
Known Direct Subclasses:
GtkDialogPeer, GtkFramePeer

public class GtkWindowPeer
extends GtkContainerPeer
implements WindowPeer

Field Summary

protected static int
GDK_WINDOW_TYPE_HINT_DESKTOP
protected static int
GDK_WINDOW_TYPE_HINT_DIALOG
protected static int
GDK_WINDOW_TYPE_HINT_DOCK
protected static int
GDK_WINDOW_TYPE_HINT_MENU
protected static int
GDK_WINDOW_TYPE_HINT_NORMAL
protected static int
GDK_WINDOW_TYPE_HINT_SPLASHSCREEN
protected static int
GDK_WINDOW_TYPE_HINT_TOOLBAR
protected static int
GDK_WINDOW_TYPE_HINT_UTILITY
protected int
windowState

Fields inherited from class gnu.java.awt.peer.gtk.GtkGenericPeer

awtWidget

Constructor Summary

GtkWindowPeer(Window window)

Method Summary

void
dispose()
Disposes the component peer.
Rectangle
getBounds()
Get the bounds of this component peer.
Graphics
getGraphics()
Returns a Graphics object suitable for drawing on this component.
Point
getLocationOnScreen()
Returns the location of this component in screen coordinates.
protected void
postConfigureEvent(int x, int y, int width, int height)
protected void
postExposeEvent(int x, int y, int width, int height)
protected void
postInsetsChangedEvent(int top, int left, int bottom, int right)
protected void
postMouseEvent(int id, long when, int mods, int x, int y, int clickCount, boolean popupTrigger)
boolean
requestFocus(Component request, boolean temporary, boolean allowWindowFocus, long time)
Requests that this component receives the focus.
boolean
requestWindowFocus()
Request that this window peer be given the window focus.
void
setAlwaysOnTop(boolean b)
void
setBounds(int x, int y, int width, int height)
Notifies the peer that the bounds of this component have changed.
protected void
setLocation(int x, int y)
void
setModalBlocked(Dialog d, boolean b)
void
setResizable(boolean resizable)
Needed by both GtkFramePeer and GtkDialogPeer subclasses, so implemented here.
protected void
setSize(int width, int height)
void
setTitle(String title)
void
setVisibleNative(boolean b)
void
setVisibleNativeUnlocked(boolean b)
void
show()
Makes the component visible.
void
toBack()
void
toFront()
void
updateAlwaysOnTop()
Update the always-on-top status of the native window.
void
updateFocusableWindowState()
void
updateIconImages()
void
updateMinimumSize()

Methods inherited from class gnu.java.awt.peer.gtk.GtkContainerPeer

beginLayout, beginValidate, cancelPendingPaint, endLayout, endValidate, getInsets, insets, isPaintPending, isRestackSupported, restack, setBackground, setBounds, setFont

Methods inherited from class gnu.java.awt.peer.gtk.GtkComponentPeer

canDetermineObscurity, checkImage, coalescePaintEvent, createBuffers, createImage, createImage, createVolatileImage, destroyBuffers, disable, enable, flip, getBackBuffer, getBackground, getBounds, getColorModel, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getLocationOnScreen, getMinimumSize, getPreferredSize, getToolkit, handleEvent, handlesWheelScrolling, hide, isFocusTraversable, isFocusable, isLightweightDescendant, isObscured, isReparentSupported, layout, minimumSize, paint, paintComponent, postExposeEvent, postFocusEvent, postItemEvent, postKeyEvent, postMouseEvent, postMouseWheelEvent, postTextEvent, preferredSize, prepareImage, print, repaint, reparent, requestFocus, requestFocus, requestFocus, reshape, setBackground, setBounds, setBounds, setCursor, setEnabled, setEventMask, setFont, setForeground, setVisible, setVisibleNative, setVisibleNativeUnlocked, show, toString, updateComponent, updateCursorImmediately

Methods inherited from class gnu.java.awt.peer.gtk.GtkGenericPeer

dispose, gtkWidgetModifyFont, gtkWidgetModifyFont, postActionEvent

Methods inherited from class java.lang.Object

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

Field Details

GDK_WINDOW_TYPE_HINT_DESKTOP

protected static final int GDK_WINDOW_TYPE_HINT_DESKTOP
Field Value:
7

GDK_WINDOW_TYPE_HINT_DIALOG

protected static final int GDK_WINDOW_TYPE_HINT_DIALOG
Field Value:
1

GDK_WINDOW_TYPE_HINT_DOCK

protected static final int GDK_WINDOW_TYPE_HINT_DOCK
Field Value:
6

GDK_WINDOW_TYPE_HINT_MENU

protected static final int GDK_WINDOW_TYPE_HINT_MENU
Field Value:
2

GDK_WINDOW_TYPE_HINT_NORMAL

protected static final int GDK_WINDOW_TYPE_HINT_NORMAL
Field Value:
0

GDK_WINDOW_TYPE_HINT_SPLASHSCREEN

protected static final int GDK_WINDOW_TYPE_HINT_SPLASHSCREEN
Field Value:
4

GDK_WINDOW_TYPE_HINT_TOOLBAR

protected static final int GDK_WINDOW_TYPE_HINT_TOOLBAR
Field Value:
3

GDK_WINDOW_TYPE_HINT_UTILITY

protected static final int GDK_WINDOW_TYPE_HINT_UTILITY
Field Value:
5

windowState

protected int windowState

Constructor Details

GtkWindowPeer

public GtkWindowPeer(Window window)

Method Details

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
Overrides:
dispose in interface GtkGenericPeer

getBounds

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

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
Overrides:
getGraphics in interface GtkComponentPeer
Returns:
a graphics object suitable for drawing on this 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
Overrides:
getLocationOnScreen in interface GtkComponentPeer
Returns:
the location of this component in screen coordinates

postConfigureEvent

protected void postConfigureEvent(int x,
                                  int y,
                                  int width,
                                  int height)

postExposeEvent

protected void postExposeEvent(int x,
                               int y,
                               int width,
                               int height)
Overrides:
postExposeEvent in interface GtkComponentPeer

postInsetsChangedEvent

protected void postInsetsChangedEvent(int top,
                                      int left,
                                      int bottom,
                                      int right)

postMouseEvent

protected void postMouseEvent(int id,
                              long when,
                              int mods,
                              int x,
                              int y,
                              int clickCount,
                              boolean popupTrigger)
Overrides:
postMouseEvent in interface GtkComponentPeer

requestFocus

public boolean requestFocus(Component request,
                            boolean temporary,
                            boolean allowWindowFocus,
                            long time)
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
Overrides:
requestFocus in interface GtkComponentPeer
Parameters:
request - the component for which the focus is requested
temporary - indicates if the focus change is temporary (true) or permanent (false)
allowWindowFocus - indicates if it's allowed to change window focus
time - the timestamp

requestWindowFocus

public boolean requestWindowFocus()
Request that this window peer be given the window focus.
Specified by:
requestWindowFocus in interface WindowPeer
Returns:
true if the window received focus, false otherwise
Since:
1.5

setAlwaysOnTop

public void setAlwaysOnTop(boolean b)
Specified by:
setAlwaysOnTop in interface WindowPeer

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
Overrides:
setBounds in interface GtkContainerPeer
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

setLocation

protected void setLocation(int x,
                           int y)

setModalBlocked

public void setModalBlocked(Dialog d,
                            boolean b)
Specified by:
setModalBlocked in interface WindowPeer

setResizable

public void setResizable(boolean resizable)
Needed by both GtkFramePeer and GtkDialogPeer subclasses, so implemented here. But never actually called on a GtkWindowPeer itself.

setSize

protected void setSize(int width,
                       int height)

setTitle

public void setTitle(String title)

setVisibleNative

public void setVisibleNative(boolean b)
Overrides:
setVisibleNative in interface GtkComponentPeer

setVisibleNativeUnlocked

public void setVisibleNativeUnlocked(boolean b)
Overrides:
setVisibleNativeUnlocked in interface GtkComponentPeer

show

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

toBack

public void toBack()
Specified by:
toBack in interface WindowPeer

toFront

public void toFront()
Specified by:
toFront in interface WindowPeer

updateAlwaysOnTop

public void updateAlwaysOnTop()
Update the always-on-top status of the native window.
Specified by:
updateAlwaysOnTop in interface WindowPeer

updateFocusableWindowState

public void updateFocusableWindowState()
Specified by:
updateFocusableWindowState in interface WindowPeer

updateIconImages

public void updateIconImages()
Specified by:
updateIconImages in interface WindowPeer

updateMinimumSize

public void updateMinimumSize()
Specified by:
updateMinimumSize in interface WindowPeer

GtkWindowPeer.java -- Implements WindowPeer with GTK Copyright (C) 1998, 1999, 2002, 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.