From 14d2249e8433d3700efad52be3a7d49606da5778 Mon Sep 17 00:00:00 2001 From: Anton Makeev Date: Tue, 16 Oct 2012 15:23:29 +0200 Subject: [PATCH] Platform: mac tabs (let's see the reaction) --- .../execution/ui/layout/impl/JBRunnerTabs.java | 11 ++--------- .../src/com/intellij/ui/tabs/TabsUtil.java | 4 +--- .../com/intellij/ui/tabs/impl/TabLabel.java | 18 +++++++----------- .../singleRow/SingleRowLayoutStrategy.java | 2 +- .../openapi/wm/impl/ToolWindowHeader.java | 4 ++-- 5 files changed, 13 insertions(+), 26 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/JBRunnerTabs.java b/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/JBRunnerTabs.java index 7092eb193c61..5ea12e0cbddd 100644 --- a/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/JBRunnerTabs.java +++ b/platform/lang-impl/src/com/intellij/execution/ui/layout/impl/JBRunnerTabs.java @@ -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(); - } } } diff --git a/platform/platform-api/src/com/intellij/ui/tabs/TabsUtil.java b/platform/platform-api/src/com/intellij/ui/tabs/TabsUtil.java index 2867db54a040..3a89a33a68ae 100644 --- a/platform/platform-api/src/com/intellij/ui/tabs/TabsUtil.java +++ b/platform/platform-api/src/com/intellij/ui/tabs/TabsUtil.java @@ -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; } } diff --git a/platform/platform-api/src/com/intellij/ui/tabs/impl/TabLabel.java b/platform/platform-api/src/com/intellij/ui/tabs/impl/TabLabel.java index 33d0e65b130b..8173e4e73353 100644 --- a/platform/platform-api/src/com/intellij/ui/tabs/impl/TabLabel.java +++ b/platform/platform-api/src/com/intellij/ui/tabs/impl/TabLabel.java @@ -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; } diff --git a/platform/platform-api/src/com/intellij/ui/tabs/impl/singleRow/SingleRowLayoutStrategy.java b/platform/platform-api/src/com/intellij/ui/tabs/impl/singleRow/SingleRowLayoutStrategy.java index ec7a2d8a7f0c..93ff65e7abd6 100644 --- a/platform/platform-api/src/com/intellij/ui/tabs/impl/singleRow/SingleRowLayoutStrategy.java +++ b/platform/platform-api/src/com/intellij/ui/tabs/impl/singleRow/SingleRowLayoutStrategy.java @@ -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; diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowHeader.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowHeader.java index be1ec8fa75de..9b0daca31f70 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowHeader.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/ToolWindowHeader.java @@ -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 {