src/share/classes/com/sun/java/swing/plaf/motif/MotifScrollBarUI.java

Print this page


   1 /*
   2  * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 package com.sun.java.swing.plaf.motif;
  26 
  27 import javax.swing.*;
  28 import javax.swing.event.*;
  29 import javax.swing.plaf.*;
  30 import javax.swing.border.*;
  31 import javax.swing.plaf.basic.BasicScrollBarUI;
  32 
  33 import java.awt.Dimension;

  34 import java.awt.Insets;
  35 import java.awt.Rectangle;
  36 import java.awt.Graphics;
  37 import java.awt.Color;







  38 
  39 
  40 /**
  41  * Implementation of ScrollBarUI for the Motif Look and Feel
  42  * <p>
  43  * <strong>Warning:</strong>
  44  * Serialized objects of this class will not be compatible with
  45  * future Swing releases.  The current serialization support is appropriate
  46  * for short term storage or RMI between applications running the same
  47  * version of Swing.  A future release of Swing will provide support for
  48  * long term persistence.
  49  *
  50  * @author Rich Schiavi
  51  * @author Hans Muller
  52  */
  53 public class MotifScrollBarUI extends BasicScrollBarUI
  54 {
  55 
  56     public static ComponentUI createUI(JComponent c) {
  57         return new MotifScrollBarUI();
  58     }
  59 
  60     public Dimension getPreferredSize(JComponent c) {
  61         Insets insets = c.getInsets();
  62         int dx = insets.left + insets.right;
  63         int dy = insets.top + insets.bottom;
  64         return (scrollbar.getOrientation() == JScrollBar.VERTICAL)
  65             ? new Dimension(dx + 11, dy + 33)
  66             : new Dimension(dx + 33, dy + 11);
  67     }
  68 
  69     protected JButton createDecreaseButton(int orientation) {
  70         return new MotifScrollBarButton(orientation);
  71     }
  72 
  73     protected JButton createIncreaseButton(int orientation) {
  74         return new MotifScrollBarButton(orientation);
  75     }
  76 
  77 
  78     public void paintTrack(Graphics g, JComponent c, Rectangle trackBounds)  {
  79         g.setColor(trackColor);
  80         g.fillRect(trackBounds.x, trackBounds.y, trackBounds.width, trackBounds.height);
  81     }
  82 
  83 
  84     public void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds)
  85     {
  86 
  87         if(thumbBounds.isEmpty() || !scrollbar.isEnabled())     {
  88             return;
  89         }
  90 
  91         int w = thumbBounds.width;
  92         int h = thumbBounds.height;
  93 
  94         g.translate(thumbBounds.x, thumbBounds.y);
  95         g.setColor(thumbColor);
  96         g.fillRect(0, 0, w-1, h-1);
  97 
  98         g.setColor(thumbHighlightColor);
  99         g.drawLine(0, 0, 0, h-1);
 100         g.drawLine(1, 0, w-1, 0);
 101 
 102         g.setColor(thumbLightShadowColor);
 103         g.drawLine(1, h-1, w-1, h-1);
 104         g.drawLine(w-1, 1, w-1, h-2);
 105 
 106         g.translate(-thumbBounds.x, -thumbBounds.y);
 107     }
 108 }
   1 /*
   2  * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 package com.sun.java.swing.plaf.motif;
  26 






  27 import java.awt.Dimension;
  28 import java.awt.Graphics;
  29 import java.awt.Insets;
  30 import java.awt.Rectangle;
  31 
  32 import javax.swing.JButton;
  33 import javax.swing.JComponent;
  34 import javax.swing.JScrollBar;
  35 import javax.swing.plaf.ComponentUI;
  36 import javax.swing.plaf.basic.BasicScrollBarUI;
  37 
  38 import static sun.swing.SwingUtilities2.drawHLine;
  39 import static sun.swing.SwingUtilities2.drawVLine;
  40 
  41 
  42 /**
  43  * Implementation of ScrollBarUI for the Motif Look and Feel
  44  * <p>
  45  * <strong>Warning:</strong>
  46  * Serialized objects of this class will not be compatible with
  47  * future Swing releases.  The current serialization support is appropriate
  48  * for short term storage or RMI between applications running the same
  49  * version of Swing.  A future release of Swing will provide support for
  50  * long term persistence.
  51  *
  52  * @author Rich Schiavi
  53  * @author Hans Muller
  54  */
  55 public class MotifScrollBarUI extends BasicScrollBarUI
  56 {
  57 
  58     public static ComponentUI createUI(JComponent c) {
  59         return new MotifScrollBarUI();
  60     }
  61 
  62     public Dimension getPreferredSize(JComponent c) {
  63         Insets insets = c.getInsets();
  64         int dx = insets.left + insets.right;
  65         int dy = insets.top + insets.bottom;
  66         return (scrollbar.getOrientation() == JScrollBar.VERTICAL)
  67             ? new Dimension(dx + 11, dy + 33)
  68             : new Dimension(dx + 33, dy + 11);
  69     }
  70 
  71     protected JButton createDecreaseButton(int orientation) {
  72         return new MotifScrollBarButton(orientation);
  73     }
  74 
  75     protected JButton createIncreaseButton(int orientation) {
  76         return new MotifScrollBarButton(orientation);
  77     }
  78 

  79     public void paintTrack(Graphics g, JComponent c, Rectangle trackBounds)  {
  80         g.setColor(trackColor);
  81         g.fillRect(trackBounds.x, trackBounds.y, trackBounds.width, trackBounds.height);
  82     }
  83 
  84     public void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) {
  85         if (thumbBounds.isEmpty() || !scrollbar.isEnabled()) {



  86             return;
  87         }
  88 
  89         int w = thumbBounds.width;
  90         int h = thumbBounds.height;
  91 
  92         g.translate(thumbBounds.x, thumbBounds.y);
  93         g.setColor(thumbColor);
  94         g.fillRect(0, 0, w - 1, h - 1);
  95 
  96         g.setColor(thumbHighlightColor);
  97         drawVLine(g, 0, 0, h - 1);
  98         drawHLine(g, 1, w - 1, 0);
  99 
 100         g.setColor(thumbLightShadowColor);
 101         drawHLine(g, 1, w - 1, h - 1);
 102         drawVLine(g, w - 1, 1, h - 2);
 103 
 104         g.translate(-thumbBounds.x, -thumbBounds.y);
 105     }
 106 }