home *** CD-ROM | disk | FTP | other *** search
- package sun.awt.motif;
-
- import java.awt.Choice;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Event;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Frame;
- import java.awt.Graphics;
- import java.awt.Point;
- import java.awt.Rectangle;
- import java.awt.peer.ChoicePeer;
-
- class MTinyChoicePeer extends MCanvasPeer implements ChoicePeer {
- MChoiceMenu menu;
-
- public MTinyChoicePeer(Choice var1) {
- super(var1);
- }
-
- public Dimension minimumSize() {
- int var1 = 0;
- int var2 = 0;
- FontMetrics var3 = ((MComponentPeer)this).getFontMetrics(super.target.getFont());
- Choice var4 = (Choice)super.target;
- int var5 = 0;
-
- for(int var6 = var4.countItems(); var6-- > 0; var5 = Math.max(var1, var5)) {
- var1 = var3.stringWidth(var4.getItem(var6));
- }
-
- var2 = var3.getHeight();
- return new Dimension(var5 + 10 + 18, var2 + 10);
- }
-
- public void update(Graphics var1) {
- var1.setColor(super.target.getForeground());
- var1.setFont(super.target.getFont());
- this.paint(var1);
- }
-
- public void setFont(Font var1) {
- super.setFont(var1);
- super.target.repaint();
- }
-
- public void paint(Graphics var1) {
- Choice var2 = (Choice)super.target;
- Dimension var3 = super.target.size();
- var1.setColor(Color.lightGray);
- var1.fillRect(1, 1, var3.width - 2, var3.height - 2);
- var1.draw3DRect(0, 0, var3.width - 1, var3.height - 1, true);
- var1.draw3DRect(var3.width - 18, var3.height / 2 - 3, 12, 6, true);
- var1.setColor(Color.black);
- var1.setFont(((Component)var2).getFont());
- FontMetrics var4 = var1.getFontMetrics();
- String var5 = var2.getSelectedItem();
- var1.drawString(var5, 5, (var3.height + var4.getAscent()) / 2);
- super.target.paint(var1);
- }
-
- protected void handleMouseDown(long var1, int var3, int var4, int var5, int var6, int var7, int var8, int var9) {
- if (super.target.isEnabled()) {
- Dimension var10 = super.target.size();
- Choice var11 = (Choice)super.target;
- String[] var12 = new String[var11.countItems()];
-
- for(int var13 = 0; var13 < var12.length; ++var13) {
- var12[var13] = var11.getItem(var13);
- }
-
- Object var14;
- for(var14 = super.target; var14 != null && !(var14 instanceof Frame); var14 = ((Component)var14).getParent()) {
- }
-
- SecurityManager.enablePrivilege("UniversalTopLevelWindow");
- this.menu = new MChoiceMenu((Frame)var14, this, var6, var7, var10.width - 20, var10.height, var11.getSelectedIndex(), var12);
- this.menu.show();
- }
- }
-
- protected void handleMouseUp(long var1, int var3, int var4, int var5, int var6, int var7, int var8) {
- if (super.target.isEnabled()) {
- Choice var9 = (Choice)super.target;
- var9.select(this.menu.selected);
- this.menu.hide();
- this.menu.dispose();
- this.menu = null;
- if (super.applet != null) {
- XEvent var10 = new XEvent(new Event(super.target, 1001, var9.getSelectedItem()), this);
- super.applet.sendEvent(var10);
- } else {
- super.target.postEvent(new Event(super.target, 1001, var9.getSelectedItem()));
- }
- }
- }
-
- protected void handleMouseDrag(long var1, int var3, int var4, int var5, int var6, int var7, int var8) {
- if (super.target.isEnabled()) {
- Rectangle var9 = this.menu.bounds();
- Point var10 = new Point(var6 - var9.x, var7 - var9.y);
- this.menu.handleWindowEvent(new Event(super.target, var1, 506, var10.x, var10.y, 0, var8, (Object)null));
- }
- }
-
- public void select(int var1) {
- super.target.repaint();
- }
-
- public void addItem(String var1, int var2) {
- super.target.repaint();
- }
- }
-