зеркало из https://github.com/mozilla/pjs.git
140 строки
3.4 KiB
Java
140 строки
3.4 KiB
Java
/* -*- Mode: java; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
*
|
|
* The contents of this file are subject to the Mozilla Public License
|
|
* Version 1.0 (the "License"); you may not use this file except in
|
|
* compliance with the License. You may obtain a copy of the License at
|
|
* http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS IS"
|
|
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
|
|
* the License for the specific language governing rights and limitations
|
|
* under the License.
|
|
*
|
|
* The Original Code is the Grendel mail/news client.
|
|
*
|
|
* The Initial Developer of the Original Code is Netscape Communications
|
|
* Corporation. Portions created by Netscape are Copyright (C) 1997
|
|
* Netscape Communications Corporation. All Rights Reserved.
|
|
*
|
|
* Contributors: Jeff Galyan <talisman@anamorphic.com>
|
|
*/
|
|
|
|
package grendel.composition;
|
|
|
|
import java.awt.*;
|
|
import javax.swing.JTabbedPane;
|
|
import javax.swing.plaf.basic.BasicTabbedPaneUI;
|
|
import javax.swing.*;
|
|
import javax.swing.plaf.*;
|
|
import javax.swing.plaf.metal.MetalTabbedPaneUI;
|
|
|
|
|
|
public class NSTabbedPane extends JTabbedPane {
|
|
protected Object fID = null;
|
|
protected String fName = null;
|
|
protected String fFloatingTitle = "";
|
|
|
|
public NSTabbedPane() {
|
|
super.setUI(new MyTabbedPaneUI());
|
|
setBorder(BorderFactory.createLoweredBevelBorder());
|
|
}
|
|
|
|
/**
|
|
* the toolbar is about to be docked
|
|
*/
|
|
public void dock() {
|
|
}
|
|
|
|
/**
|
|
* tells the toolbar it is about to float
|
|
*/
|
|
public void floatToolbar() {
|
|
}
|
|
|
|
/**
|
|
* sets the title to be used when the toolbar is floating
|
|
*/
|
|
public void setFloatingTitle(String aTitle) {
|
|
fFloatingTitle = aTitle;
|
|
}
|
|
|
|
/**
|
|
* gets the title used when the toolbar is floating
|
|
*/
|
|
public String getFloatingTitle() {
|
|
return fFloatingTitle;
|
|
}
|
|
|
|
/**
|
|
* adds a new tab.
|
|
*/
|
|
public void addTab(String aLabel, ImageIcon aIcon, Component mAddressList) {
|
|
super.addTab(aLabel, aIcon, mAddressList);
|
|
}
|
|
|
|
/**
|
|
* set tab selection
|
|
*/
|
|
public void setSelectedIndex(int aIndex) {
|
|
super.setSelectedIndex(aIndex);
|
|
}
|
|
|
|
/**
|
|
* sets an ID for this toolbar
|
|
*/
|
|
public void setID(Object anID) {
|
|
fID = anID;
|
|
}
|
|
|
|
/**
|
|
* gets the toolbar's id
|
|
*/
|
|
public Object getID() {
|
|
return fID;
|
|
}
|
|
|
|
/**
|
|
* sets the name of the toolbar
|
|
*/
|
|
public void setName(String aName) {
|
|
fName = aName;
|
|
}
|
|
|
|
/**
|
|
* gets the name of the toolbar
|
|
*/
|
|
public String getName() {
|
|
return fName;
|
|
}
|
|
|
|
/**
|
|
* gets the component associated with the toolbar
|
|
*/
|
|
public Component getComponent() {
|
|
return this;
|
|
}
|
|
|
|
//***************************
|
|
public class MyTabbedPaneUI extends MetalTabbedPaneUI {
|
|
public Dimension getPreferredSize(JComponent container) {
|
|
int widest = 0;
|
|
int tallest = 0;
|
|
|
|
//return the component with the largst preferred size.
|
|
Component[] comps = container.getComponents();
|
|
for (int i = 0; i < comps.length; i++) {
|
|
Dimension dim = comps[i].getPreferredSize();
|
|
|
|
if (dim.width > widest)
|
|
widest = dim.width;
|
|
|
|
if (dim.height > tallest)
|
|
tallest = dim.height;
|
|
}
|
|
|
|
return new Dimension(widest, tallest);
|
|
}
|
|
}
|
|
}
|
|
|