diff options
| author | Mark Wielaard <mark@klomp.org> | 2006-02-13 18:57:03 +0000 |
|---|---|---|
| committer | Mark Wielaard <mark@klomp.org> | 2006-02-13 18:57:03 +0000 |
| commit | 4feca84e51f437fade44e6ef655978ed61b4a99b (patch) | |
| tree | 73b4288f47f71f4bfbf01d011568333ada971447 /gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java | |
| parent | 79254dad990db25a776454914b67af32a89cb2f3 (diff) | |
| download | classpath-4feca84e51f437fade44e6ef655978ed61b4a99b.tar.gz | |
* gnu/java/awt/peer/gtk/GtkGenericPeer.java (awtWidget): Made field
final.
(gtkWidgetModifyFont(Font)): New protected helper method.
(gtkWidgetModifyFont(String,int,int)): Made protected and document.
* gnu/java/awt/peer/gtk/GtkButtonPeer.java (gtkWidgetModifyFont): Made
protected and document.
* gnu/java/awt/peer/gtk/GtkCheckboxPeer.java (gtkWidgetModifyFont):
Likewise.
* gnu/java/awt/peer/gtk/GtkLabelPeer.java (gtkWidgetModifyFont):
Likewise.
* gnu/java/awt/peer/gtk/GtkListPeer.java (gtkWidgetModifyFont):
Likewise.
* gnu/java/awt/peer/gtk/GtkMenuBarPeer.java (create): Made protected.
(setFont): Removed method. Done in GtkMenuComponent.
* gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java (create): Made
abstract and protected.
(setFont): Made private, add implementation.
(setFont(Font)): Implemented.
* gnu/java/awt/peer/gtk/GtkMenuItemPeer.java (gtkWidgetModifyFont):
Made protected and document.
(create): Made protected.
(setFont): Removed method. Done in GtkMenuComponent.
* gnu/java/awt/peer/gtk/GtkTextAreaPeer.java
(gtkWidgetModifyFont): Made protected and document.
* gnu/java/awt/peer/gtk/GtkTextFieldPeer.java (gtkWidgetModifyFont):
Removed, similar to GtkGenericPeer super class implementation.
* include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h: Regenerated.
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c
(Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkWidgetModifyFont):
Removed.
Diffstat (limited to 'gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java')
| -rw-r--r-- | gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java b/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java index 4c6335933..a2b993b60 100644 --- a/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java +++ b/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java @@ -1,5 +1,5 @@ /* GtkMenuComponentPeer.java -- Implements MenuComponentPeer with GTK+ - Copyright (C) 1999 Free Software Foundation, Inc. + Copyright (C) 1999, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -39,18 +39,35 @@ exception statement from your version. */ package gnu.java.awt.peer.gtk; import java.awt.Font; +import java.awt.MenuComponent; +import java.awt.MenuContainer; import java.awt.peer.MenuComponentPeer; -public class GtkMenuComponentPeer extends GtkGenericPeer +public abstract class GtkMenuComponentPeer extends GtkGenericPeer implements MenuComponentPeer { - void create () - { - throw new RuntimeException (); - } + protected abstract void create (); - void setFont () + /** + * Sets font based on MenuComponent font, or containing menu(bar) + * parent font. + */ + private void setFont() { + MenuComponent mc = ((MenuComponent) awtWidget); + Font f = mc.getFont (); + + if (f == null) + { + MenuContainer parent = mc.getParent (); + // Submenus inherit the font of their containing Menu(Bar). + if (parent instanceof MenuComponent) + f = parent.getFont (); + } + if (f != null) + { + gtkWidgetModifyFont(f); + } } public GtkMenuComponentPeer (Object awtWidget) @@ -60,10 +77,15 @@ public class GtkMenuComponentPeer extends GtkGenericPeer setFont (); } + /** + * Removes the awtWidget components from the native state tables. + * Subclasses should call <code>super.dispose()</code> if they don't + * remove these themselves. + */ public native void dispose(); public void setFont(Font font) { - // FIXME: implement + gtkWidgetModifyFont(font); } } |
