IDEA-127205 Specify Editor Tab Width

This commit is contained in:
Vassiliy.Kudryashov
2015-06-05 19:28:40 +03:00
parent bb5b06a329
commit 6bd2a26e4a
3 changed files with 10 additions and 8 deletions
@@ -67,6 +67,9 @@ public class JBTabsImpl extends JComponent
public static final DataKey<JBTabsImpl> NAVIGATION_ACTIONS_KEY = DataKey.create("JBTabs");
@NonNls public static final Key<Integer> SIDE_TABS_SIZE_LIMIT_KEY = Key.create("SIDE_TABS_SIZE_LIMIT_KEY");
static final int MIN_TAB_WIDTH = JBUI.scale(75);
public static final int DEFAULT_MAX_TAB_WIDTH = JBUI.scale(300);
public static final Color MAC_AQUA_BG_COLOR = Gray._200;
private static final Comparator<TabInfo> ABC_COMPARATOR = new Comparator<TabInfo>() {
@Override
@@ -19,7 +19,6 @@ import com.intellij.openapi.ui.OnePixelDivider;
import com.intellij.openapi.ui.Splittable;
import com.intellij.ui.tabs.JBTabsPosition;
import com.intellij.ui.tabs.TabInfo;
import com.intellij.util.ui.JBUI;
import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.NotNull;
@@ -30,10 +29,9 @@ import java.beans.PropertyChangeListener;
class TabsSideSplitter implements Splittable, PropertyChangeListener {
private static final int MIN_TAB_WIDTH = JBUI.scale(75);
@NotNull private final JBTabsImpl myTabs;
private int mySideTabsLimit = 0;
private int mySideTabsLimit = JBTabsImpl.DEFAULT_MAX_TAB_WIDTH;
private boolean myDragging;
private final OnePixelDivider myDivider;
@@ -50,17 +48,17 @@ class TabsSideSplitter implements Splittable, PropertyChangeListener {
@Override
public float getMinProportion(boolean first) {
return Math.min(.5F, (float)MIN_TAB_WIDTH / Math.max(1, myTabs.getWidth()));
return Math.min(.5F, (float)JBTabsImpl.MIN_TAB_WIDTH / Math.max(1, myTabs.getWidth()));
}
@Override
public void setProportion(float proportion) {
int width = myTabs.getWidth();
if (myTabs.getTabsPosition() == JBTabsPosition.left) {
setSideTabsLimit((int)Math.max(MIN_TAB_WIDTH, proportion * width));
setSideTabsLimit((int)Math.max(JBTabsImpl.MIN_TAB_WIDTH, proportion * width));
}
else if (myTabs.getTabsPosition() == JBTabsPosition.right) {
setSideTabsLimit(width - (int)Math.max(MIN_TAB_WIDTH, proportion * width));
setSideTabsLimit(width - (int)Math.max(JBTabsImpl.MIN_TAB_WIDTH, proportion * width));
}
}
@@ -113,7 +111,7 @@ class TabsSideSplitter implements Splittable, PropertyChangeListener {
public void propertyChange(PropertyChangeEvent evt) {
if (evt.getSource() != myTabs) return;
Integer limit = UIUtil.getClientProperty(myTabs, JBTabsImpl.SIDE_TABS_SIZE_LIMIT_KEY);
if (limit == null) limit = 0;
if (limit == null) limit = JBTabsImpl.DEFAULT_MAX_TAB_WIDTH;
setSideTabsLimit(limit);
}
}
@@ -854,7 +854,8 @@ public class EditorsSplitters extends IdePanePanel implements UISettingsListener
if (tabbedPane != null) {
try {
int limit =
Integer.parseInt(file.getParentElement().getAttributeValue(JBTabsImpl.SIDE_TABS_SIZE_LIMIT_KEY.toString(), "0"));
Integer.parseInt(file.getParentElement().getAttributeValue(JBTabsImpl.SIDE_TABS_SIZE_LIMIT_KEY.toString(),
String.valueOf(JBTabsImpl.DEFAULT_MAX_TAB_WIDTH)));
UIUtil.putClientProperty(tabbedPane.getComponent(), JBTabsImpl.SIDE_TABS_SIZE_LIMIT_KEY, limit);
}
catch (NumberFormatException e) {