summaryrefslogtreecommitdiff
path: root/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2006-02-13 18:57:03 +0000
committerMark Wielaard <mark@klomp.org>2006-02-13 18:57:03 +0000
commit4feca84e51f437fade44e6ef655978ed61b4a99b (patch)
tree73b4288f47f71f4bfbf01d011568333ada971447 /gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java
parent79254dad990db25a776454914b67af32a89cb2f3 (diff)
downloadclasspath-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.java38
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);
}
}