Platform: mac tabs (let's see the reaction)

This commit is contained in:
Anton Makeev
2012-10-19 14:21:56 +02:00
parent 1993ff8239
commit 14d2249e84
5 changed files with 13 additions and 26 deletions
@@ -207,7 +207,7 @@ public class
if (label == null || point == null) {
return true;
}
final Rectangle bounds = label.getBounds();
final Rectangle bounds = label.getBounds();
return point.y <= bounds.y + bounds.height;
}
@@ -254,10 +254,8 @@ public class
@Override
public void apply(UiDecorator.UiDecoration decoration) {
setFont(UIUtil.getLabelFont(UIUtil.FontSize.SMALL));
myLabel.setFont(UIUtil.getLabelFont(UIUtil.FontSize.SMALL));
setBorder(new EmptyBorder(5, 5, 7, 5));
}
}
@Override
public void setTabActionsAutoHide(boolean autoHide) {
@@ -274,10 +272,5 @@ public class
wrapper.add(Box.createHorizontalStrut(6), BorderLayout.WEST);
}
}
@Override
protected int getSelectedOffset() {
return getNonSelectedOffset();
}
}
}
@@ -21,8 +21,6 @@ import javax.swing.*;
* @author pegov
*/
public class TabsUtil {
public static final int TAB_VERTICAL_PADDING = 2;
public static final int TABS_BORDER = 1;
@@ -32,7 +30,7 @@ public class TabsUtil {
}
public static int getTabsHeight() {
return TAB_VERTICAL_PADDING * 2 + new JLabel("XXX").getPreferredSize().height + 1 /* +1 ??? */;
return new JLabel("XXX").getPreferredSize().height + 2 + TAB_VERTICAL_PADDING * 2 + TABS_BORDER * 2;
}
}
@@ -75,6 +75,7 @@ public class TabLabel extends JPanel {
myLabel.setIconTextGap(tabs.isEditorTabs() ? 2 : new JLabel().getIconTextGap());
myLabel.setIconOpaque(false);
myLabel.setIpad(new Insets(0, 0, 0, 0));
myLabel.setFont(UIUtil.getLabelFont(UIUtil.FontSize.SMALL));
setOpaque(false);
setLayout(new BorderLayout());
@@ -233,25 +234,20 @@ public class TabLabel extends JPanel {
}
protected int getNonSelectedOffset() {
if (myTabs.isEditorTabs()) {
int offset = (TabsUtil.ACTIVE_TAB_UNDERLINE_HEIGHT / 2);
if (myTabs.isSingleRow()) {
return myTabs.getTabsPosition() == JBTabsPosition.bottom ? -(offset + 1) : -offset + 1;
} else {
return ((TableLayout)myTabs.getEffectiveLayout()).isLastRow(getInfo()) ? -offset + 1 : offset - 1;
}
if (myTabs.isEditorTabs() && (myTabs.isSingleRow() || ((TableLayout)myTabs.getEffectiveLayout()).isLastRow(getInfo()))) {
return -TabsUtil.ACTIVE_TAB_UNDERLINE_HEIGHT / 2 + 1;
}
return 2;
return 1;
}
protected int getSelectedOffset() {
return myTabs.isEditorTabs() ? -(TabsUtil.ACTIVE_TAB_UNDERLINE_HEIGHT / 2) + 1 : 1;
return getNonSelectedOffset();
}
@Override
public Dimension getPreferredSize() {
final Dimension size = super.getPreferredSize();
size.height = TabsUtil.getTabsHeight();
if (myActionPanel != null && !myActionPanel.isVisible()) {
final Dimension actionPanelSize = myActionPanel.getPreferredSize();
size.width += actionPanelSize.width;
@@ -259,7 +255,7 @@ public class TabLabel extends JPanel {
final JBTabsPosition pos = myTabs.getTabsPosition();
switch (pos) {
case top: case bottom: size.height += myTabs.isEditorTabs() ? TabsUtil.ACTIVE_TAB_UNDERLINE_HEIGHT : getSelectedOffset(); break;
case top: case bottom: size.height += TabsUtil.ACTIVE_TAB_UNDERLINE_HEIGHT - 1; break;
case left: case right: size.width += getSelectedOffset(); break;
}
@@ -25,7 +25,7 @@ import java.awt.*;
public abstract class SingleRowLayoutStrategy {
private static final int MIN_TAB_WIDTH = 120;
private static final int MIN_TAB_WIDTH = 50;
final SingleRowLayout myLayout;
final JBTabsImpl myTabs;
@@ -355,13 +355,13 @@ public abstract class ToolWindowHeader extends JPanel implements Disposable {
@Override
public Dimension getPreferredSize() {
Dimension size = super.getPreferredSize();
return new Dimension(size.width, TabsUtil.getTabsHeight() + TabsUtil.TABS_BORDER * 2);
return new Dimension(size.width, TabsUtil.getTabsHeight());
}
@Override
public Dimension getMinimumSize() {
Dimension size = super.getMinimumSize();
return new Dimension(size.width, TabsUtil.getTabsHeight() + TabsUtil.TABS_BORDER * 2);
return new Dimension(size.width, TabsUtil.getTabsHeight());
}
private class ActionButton extends Wrapper implements ActionListener, AltStateManager.AltListener {