001/* ----------------------------------------------------------------------------
002   The Kiwi Toolkit - A Java Class Library
003   Copyright (C) 1998-2004 Mark A. Lindner
004
005   This library is free software; you can redistribute it and/or
006   modify it under the terms of the GNU General Public License as
007   published by the Free Software Foundation; either version 2 of the
008   License, or (at your option) any later version.
009
010   This library is distributed in the hope that it will be useful,
011   but WITHOUT ANY WARRANTY; without even the implied warranty of
012   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
013   General Public License for more details.
014
015   You should have received a copy of the GNU General Public License
016   along with this library; if not, write to the Free Software
017   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
018   02111-1307, USA.
019 
020   The author may be contacted at: mark_a_lindner@yahoo.com
021   ----------------------------------------------------------------------------
022   $Log: KDesktopPane.java,v $
023   Revision 1.5  2004/05/12 19:16:14  markl
024   comment block updates
025
026   Revision 1.4  2003/01/19 09:50:53  markl
027   Javadoc & comment header updates.
028
029   Revision 1.3  2001/03/12 09:27:56  markl
030   Source code and Javadoc cleanup.
031
032   Revision 1.2  1999/01/10 02:25:57  markl
033   added GPL header & RCS tag
034   ----------------------------------------------------------------------------
035*/
036
037package kiwi.ui;
038
039import java.awt.*;
040import javax.swing.*;
041
042/** A trivial extension of <code>JDesktopPane</code> that supports an opacity
043  * setting.
044  *
045  * @author Mark Lindner
046  */
047
048public class KDesktopPane extends JDesktopPane
049  {
050  private boolean opaque = true;
051
052  /** Construct a new <code>KDesktopPane</code>. */
053  
054  public KDesktopPane()
055    {
056    super();
057    }
058
059  /** Paint the component. Delegates to superclass if the component is
060    * opaque.
061    */
062  
063  protected void paintComponent(Graphics gc)
064    {
065    if(opaque)
066      super.paintComponent(gc);
067    }
068
069  /** Get the opacity state of this component.
070    *
071    * @return <code>true</code> if this component is opaque, and
072    * <code>false</code> otherwise.
073    */
074  
075  public boolean isOpaque()
076    {
077    return(opaque);
078    }
079
080  /** Set the opacity state of this component.
081    *
082    * @param opaque A flag specifying whether this component will be opaque.
083    */
084  
085  public void setOpaque(boolean opaque)
086    {
087    this.opaque = opaque;
088    repaint();
089    }
090
091  }
092
093/* end of source file */