From commits-return-26696-archive-asf-public=cust-asf.ponee.io@netbeans.apache.org Mon Jan 13 17:29:07 2020 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [207.244.88.153]) by mx-eu-01.ponee.io (Postfix) with SMTP id 4647318064E for ; Mon, 13 Jan 2020 18:29:07 +0100 (CET) Received: (qmail 78779 invoked by uid 500); 13 Jan 2020 17:29:06 -0000 Mailing-List: contact commits-help@netbeans.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list commits@netbeans.apache.org Received: (qmail 78770 invoked by uid 99); 13 Jan 2020 17:29:06 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 13 Jan 2020 17:29:06 +0000 Received: by gitbox.apache.org (ASF Mail Server at gitbox.apache.org, from userid 33) id 7A8D281F11; Mon, 13 Jan 2020 17:29:06 +0000 (UTC) Date: Mon, 13 Jan 2020 17:29:06 +0000 To: "commits@netbeans.apache.org" Subject: [netbeans] branch master updated: [NETBEANS-3428] FlatLaf: multi-tabs in FlatLaf style MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Message-ID: <157893654613.19333.14736450223975174556@gitbox.apache.org> From: lkishalmi@apache.org X-Git-Host: gitbox.apache.org X-Git-Repo: netbeans X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 6b29eabcad645d2a6869f73e829d416d96178726 X-Git-Newrev: e53e002e34299ba57e85ffa1ce8e6707ea14721a X-Git-Rev: e53e002e34299ba57e85ffa1ce8e6707ea14721a X-Git-NotificationType: ref_changed_plus_diff X-Git-Multimail-Version: 1.5.dev Auto-Submitted: auto-generated This is an automated email from the ASF dual-hosted git repository. lkishalmi pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/netbeans.git The following commit(s) were added to refs/heads/master by this push: new e53e002 [NETBEANS-3428] FlatLaf: multi-tabs in FlatLaf style e53e002 is described below commit e53e002e34299ba57e85ffa1ce8e6707ea14721a Author: Karl Tauber AuthorDate: Sun Jan 12 18:09:45 2020 +0100 [NETBEANS-3428] FlatLaf: multi-tabs in FlatLaf style --- .../org/netbeans/core/multitabs/TabbedImpl.java | 12 ++++- .../core/multitabs/impl/AbstractTabDisplayer.java | 18 +++++++- .../core/multitabs/impl/ControlsToolbar.java | 1 + .../multitabs/impl/ProjectColorTabDecorator.java | 33 +++++++++----- .../core/multitabs/impl/TabDataRenderer.java | 53 +++++++++++++++++++++- .../org/netbeans/core/multitabs/impl/TabTable.java | 21 +++++++++ .../netbeans/core/multitabs/impl/TabTableUI.java | 22 ++++++++- .../org/netbeans/core/multiview/TabsComponent.java | 7 ++- .../swing/laf/flatlaf/FlatDarkLaf.properties | 19 ++++++-- .../netbeans/swing/laf/flatlaf/FlatLFCustoms.java | 6 ++- .../netbeans/swing/laf/flatlaf/FlatLaf.properties | 18 ++++++++ .../swing/laf/flatlaf/FlatLightLaf.properties | 4 +- .../src/org/netbeans/swing/plaf/LFCustoms.java | 1 + 13 files changed, 190 insertions(+), 25 deletions(-) diff --git a/platform/core.multitabs/src/org/netbeans/core/multitabs/TabbedImpl.java b/platform/core.multitabs/src/org/netbeans/core/multitabs/TabbedImpl.java index 61bb26d..03b6cf7 100644 --- a/platform/core.multitabs/src/org/netbeans/core/multitabs/TabbedImpl.java +++ b/platform/core.multitabs/src/org/netbeans/core/multitabs/TabbedImpl.java @@ -36,6 +36,7 @@ import org.netbeans.swing.tabcontrol.DefaultTabDataModel; import org.netbeans.swing.tabcontrol.TabData; import org.netbeans.swing.tabcontrol.TabDataModel; import org.netbeans.swing.tabcontrol.WinsysInfoForTabbedContainer; +import org.netbeans.swing.tabcontrol.customtabs.Tabbed; import org.netbeans.swing.tabcontrol.plaf.BusyTabsSupport; import org.openide.windows.TopComponent; @@ -53,6 +54,7 @@ public final class TabbedImpl extends AbstractTabbedImpl { private final Controller controller; private final DefaultTabDataModel tabModel; private ComponentConverter componentConverter = ComponentConverter.DEFAULT; + private boolean active; public TabbedImpl( WinsysInfoForTabbedContainer winsysInfo, int orientation ) { tabModel = new DefaultTabDataModel(); @@ -162,9 +164,17 @@ public final class TabbedImpl extends AbstractTabbedImpl { tabModel.setToolTipTextAt(index, toolTip); } + + public static boolean isActive( Component c ) { + Tabbed.Accessor acc = (Tabbed.Accessor)SwingUtilities.getAncestorOfClass(Tabbed.Accessor.class, c); + return acc != null + && acc.getTabbed() instanceof TabbedImpl + && ((TabbedImpl) acc.getTabbed()).active; + } + @Override public void setActive( boolean active ) { - //TODO implement + this.active = active; } @Override diff --git a/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/AbstractTabDisplayer.java b/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/AbstractTabDisplayer.java index 4fd4593..b89677d 100644 --- a/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/AbstractTabDisplayer.java +++ b/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/AbstractTabDisplayer.java @@ -32,8 +32,6 @@ import java.awt.event.ComponentEvent; import java.awt.event.ComponentListener; import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelListener; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; import javax.swing.BorderFactory; import javax.swing.JLabel; import javax.swing.JPanel; @@ -49,6 +47,7 @@ import org.netbeans.core.multitabs.ButtonFactory; import org.netbeans.core.multitabs.Controller; import org.netbeans.core.multitabs.Settings; import org.netbeans.core.multitabs.TabDisplayer; +import org.netbeans.core.multitabs.TabbedImpl; import org.netbeans.swing.tabcontrol.TabData; import org.netbeans.swing.tabcontrol.TabDataModel; @@ -171,6 +170,21 @@ abstract class AbstractTabDisplayer extends TabDisplayer implements MouseWheelLi } @Override + public Color getBackground() { + Color activeBackground = UIManager.getColor("nb.multitabs.activeBackground"); // NOI18N + if (activeBackground != null && TabbedImpl.isActive(this)) { + return activeBackground; + } + + Color background = UIManager.getColor("nb.multitabs.background"); // NOI18N + if (background != null) { + return background; + } + + return super.getBackground(); + } + + @Override public void attach( final Controller controller ) { this.controller = controller; controls.add( ButtonFactory.createDropDownButton( controller ) ); diff --git a/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/ControlsToolbar.java b/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/ControlsToolbar.java index d0a81f5..884b05f 100644 --- a/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/ControlsToolbar.java +++ b/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/ControlsToolbar.java @@ -58,6 +58,7 @@ final class ControlsToolbar extends JToolBar { private void configure() { setFloatable( false ); setFocusable( false ); + setOpaque( false ); setBorder( BorderFactory.createEmptyBorder() ); setBorderPainted( false ); if( TabTableUI.IS_AQUA ) { diff --git a/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/ProjectColorTabDecorator.java b/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/ProjectColorTabDecorator.java index 31da6d9..2f5fe4b 100644 --- a/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/ProjectColorTabDecorator.java +++ b/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/ProjectColorTabDecorator.java @@ -21,14 +21,13 @@ package org.netbeans.core.multitabs.impl; import java.awt.Color; import java.awt.Graphics; import java.awt.Rectangle; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.WeakHashMap; import javax.swing.Icon; +import javax.swing.UIManager; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import org.netbeans.core.multitabs.Settings; @@ -63,15 +62,27 @@ public class ProjectColorTabDecorator extends TabDecorator { static { backGroundColors = new ArrayList( 10 ); - backGroundColors.add( new Color( 216, 255, 237 ) ); - backGroundColors.add( new Color( 255, 221, 221 ) ); - backGroundColors.add( new Color( 255, 247, 214 ) ); - backGroundColors.add( new Color( 216, 239, 255 ) ); - backGroundColors.add( new Color( 241, 255, 209 ) ); - backGroundColors.add( new Color( 255, 225, 209 ) ); - backGroundColors.add( new Color( 228, 255, 216 ) ); - backGroundColors.add( new Color( 227, 255, 158 ) ); - backGroundColors.add( new Color( 238, 209, 255 ) ); + + // load background colors from UI defaults if available + if (UIManager.getColor("nb.multitabs.project.1.background") != null) { + for (int i = 1; i <= 100; i++) { + Color color = UIManager.getColor("nb.multitabs.project." + i + ".background"); + if (color == null) { + break; + } + backGroundColors.add(color); + } + } else { + backGroundColors.add( new Color( 216, 255, 237 ) ); + backGroundColors.add( new Color( 255, 221, 221 ) ); + backGroundColors.add( new Color( 255, 247, 214 ) ); + backGroundColors.add( new Color( 216, 239, 255 ) ); + backGroundColors.add( new Color( 241, 255, 209 ) ); + backGroundColors.add( new Color( 255, 225, 209 ) ); + backGroundColors.add( new Color( 228, 255, 216 ) ); + backGroundColors.add( new Color( 227, 255, 158 ) ); + backGroundColors.add( new Color( 238, 209, 255 ) ); + } ProjectSupport projects = ProjectSupport.getDefault(); if( projects.isEnabled() && Settings.getDefault().isSameProjectSameColor() ) { diff --git a/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/TabDataRenderer.java b/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/TabDataRenderer.java index eae9c1f..e6a62c2 100644 --- a/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/TabDataRenderer.java +++ b/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/TabDataRenderer.java @@ -24,6 +24,7 @@ import java.awt.Component; import java.awt.Dimension; import java.awt.EventQueue; import java.awt.Graphics; +import java.awt.Insets; import java.awt.Point; import java.awt.Rectangle; import java.util.ArrayList; @@ -33,9 +34,13 @@ import javax.swing.Icon; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.JTabbedPane; import javax.swing.JTable; +import javax.swing.UIManager; +import javax.swing.border.EmptyBorder; import javax.swing.table.TableCellRenderer; import org.netbeans.core.multitabs.TabDecorator; +import org.netbeans.core.multitabs.TabbedImpl; import org.netbeans.core.windows.view.ui.tabcontrol.Utilities; import org.netbeans.swing.tabcontrol.TabData; import org.openide.awt.CloseButtonFactory; @@ -48,6 +53,12 @@ import org.openide.windows.TopComponent; */ public class TabDataRenderer implements TableCellRenderer { + private static final Insets tabInsets = UIManager.getInsets("nb.multitabs.tabInsets"); // NOI18N + private static final int underlineHeight = UIManager.getInt("nb.multitabs.underlineHeight"); // NOI18N + private static final Color underlineColor = UIManager.getColor("nb.multitabs.underlineColor"); // NOI18N + private static final Color inactiveUnderlineColor = UIManager.getColor("nb.multitabs.inactiveUnderlineColor"); // NOI18N + private static final Color activeBackground = UIManager.getColor("nb.multitabs.activeBackground"); // NOI18N + private final RendererPanel renderer = new RendererPanel(); private final List decorators = getDecorators(); @@ -63,6 +74,12 @@ public class TabDataRenderer implements TableCellRenderer { Color colBackground = isSelected ? table.getSelectionBackground() : table.getBackground(); Color colForeground = isSelected ? table.getSelectionForeground() : table.getForeground(); + boolean isActive = (activeBackground != null || underlineColor != null) + ? TabbedImpl.isActive(table) : false; + if (!isSelected && isActive && activeBackground != null) { + colBackground = activeBackground; + } + for( TabDecorator td : decorators ) { Color c = td.getBackground( tab, isSelected ); if( null != c ) @@ -87,6 +104,8 @@ public class TabDataRenderer implements TableCellRenderer { renderer.label.setForeground( colForeground ); renderer.tabData = tab; renderer.isSelected = isSelected; + renderer.isActive = isActive; + renderer.tabsLocation = (table instanceof TabTable) ? ((TabTable)table).getTabsLocation() : JTabbedPane.TOP; if( table instanceof TabTable ) { TabTable tabTable = ( TabTable ) table; @@ -170,9 +189,15 @@ public class TabDataRenderer implements TableCellRenderer { private final JButton closeButton; private TabData tabData; private boolean isSelected; + private boolean isActive; + private int tabsLocation = JTabbedPane.TOP; public RendererPanel() { super( new BorderLayout( 0, 0 ) ); + if (tabInsets != null) { + setBorder(new EmptyBorder(tabInsets)); + } + label = new JLabel(); label.setBorder( BorderFactory.createEmptyBorder( 2, 2, 2, 3) ); add( label, BorderLayout.CENTER ); @@ -187,6 +212,8 @@ public class TabDataRenderer implements TableCellRenderer { setOpaque( true ); tabData = null; isSelected = false; + isActive = false; + tabsLocation = JTabbedPane.TOP; closeButton.getModel().setArmed( false ); closeButton.getModel().setRollover( false ); closeButton.setVisible( true ); @@ -198,6 +225,29 @@ public class TabDataRenderer implements TableCellRenderer { Rectangle rect = getBounds(); rect.x = 0; rect.y = 0; + + // paint underline selection + if (isSelected && underlineHeight > 0 && underlineColor != null) { + g.setColor(isActive || inactiveUnderlineColor == null + ? underlineColor : inactiveUnderlineColor); + switch (tabsLocation) { + default: + case JTabbedPane.TOP: + g.fillRect(0, rect.height - underlineHeight, rect.width, underlineHeight); + break; + case JTabbedPane.BOTTOM: + g.fillRect(0, 0, rect.width, underlineHeight); + break; + case JTabbedPane.LEFT: + g.fillRect(rect.width - underlineHeight, 0, underlineHeight, rect.height); + break; + case JTabbedPane.RIGHT: + g.fillRect(0, 0, underlineHeight, rect.height); + break; + } + } + + // paint tab decorators for( TabDecorator td : decorators ) { td.paintAfter( tabData, g, rect, isSelected ); } @@ -218,7 +268,8 @@ public class TabDataRenderer implements TableCellRenderer { static int getPreferredTableRowHeight() { JLabel lbl = new JLabel( "ABC" ); //NOI18N - return 2+2+Math.max( 16, lbl.getPreferredSize().height ); + int topBottomInsets = (tabInsets != null) ? tabInsets.top + tabInsets.bottom : 2 + 2; + return topBottomInsets + Math.max( 16, lbl.getPreferredSize().height ); } private static List getDecorators() { diff --git a/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/TabTable.java b/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/TabTable.java index 6b813bf..5ab3ff8 100644 --- a/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/TabTable.java +++ b/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/TabTable.java @@ -27,6 +27,7 @@ import javax.swing.JTable; import javax.swing.ListSelectionModel; import javax.swing.SwingConstants; import javax.swing.ToolTipManager; +import javax.swing.UIManager; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.plaf.TableUI; @@ -42,12 +43,14 @@ import org.openide.util.NbBundle; */ public class TabTable extends JTable { + private int tabsLocation = JTabbedPane.TOP; private final int orientation; private final TabDataRenderer renderer = new TabDataRenderer(); public TabTable( TabDataModel tabModel, int tabsLocation ) { this( TabTableModel.create(tabModel, tabsLocation), tabsLocation == JTabbedPane.TOP || tabsLocation == JTabbedPane.BOTTOM ? JTabbedPane.HORIZONTAL : JTabbedPane.VERTICAL ); + this.tabsLocation = tabsLocation; } protected TabTable( TabTableModel tableModel, int orientation ) { @@ -76,6 +79,20 @@ public class TabTable extends JTable { setFocusable( false ); ToolTipManager.sharedInstance().registerComponent( this ); setDefaultRenderer( Object.class, renderer ); + + // show/hide vertical/horizontal grid lines depending on orientation + Object showVerticalLines = UIManager.get("nb.multitabs.showVerticalLines"); //NOI18N + Object showHorizontalLines = UIManager.get("nb.multitabs.showHorizontalLines"); //NOI18N + if (showVerticalLines instanceof Boolean) { + boolean show = (Boolean) showVerticalLines && orientation == JTabbedPane.HORIZONTAL; + setShowVerticalLines(show); + setIntercellSpacing(new Dimension(show ? 1 : 0, getIntercellSpacing().height)); + } + if (showHorizontalLines instanceof Boolean) { + boolean show = (Boolean) showHorizontalLines && orientation != JTabbedPane.HORIZONTAL; + setShowHorizontalLines(show); + setIntercellSpacing(new Dimension(getIntercellSpacing().width, show ? 1 : 0)); + } } @Override @@ -84,6 +101,10 @@ public class TabTable extends JTable { setRowHeight( TabDataRenderer.getPreferredTableRowHeight() ); } + int getTabsLocation() { + return tabsLocation; + } + @Override public boolean getScrollableTracksViewportHeight() { return orientation == JTabbedPane.HORIZONTAL ? true : super.getScrollableTracksViewportHeight(); diff --git a/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/TabTableUI.java b/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/TabTableUI.java index c76b9f5..38449b7 100644 --- a/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/TabTableUI.java +++ b/platform/core.multitabs/src/org/netbeans/core/multitabs/impl/TabTableUI.java @@ -42,7 +42,7 @@ final class TabTableUI extends BasicTableUI { if( IS_AQUA ) { return BorderFactory.createMatteBorder( 1, 0, 0, 0, table.getGridColor()); } else { - if( tabsLocation != JTabbedPane.TOP ) + if( tabsLocation != JTabbedPane.TOP && !UIManager.getBoolean("nb.multitabs.noTabBorder") ) //NOI18N return BorderFactory.createMatteBorder( 1, 0, 0, 0, table.getGridColor()); } return BorderFactory.createEmptyBorder(); @@ -50,7 +50,8 @@ final class TabTableUI extends BasicTableUI { @Override protected void installDefaults() { - super.installDefaults(); //To change body of generated methods, choose Tools | Templates. + super.installDefaults(); + String lafId = UIManager.getLookAndFeel().getID(); if( "Windows".equals( lafId ) ) { //NOI18N Color background = UIManager.getColor( "TabbedPane.background"); //NOI18N @@ -100,6 +101,23 @@ final class TabTableUI extends BasicTableUI { txtFont = new Font(txtFont.getName(), Font.PLAIN, txtFont.getSize()); } table.setFont( txtFont ); + } else { + Color background = UIManager.getColor("nb.multitabs.background"); //NOI18N + Color foreground = UIManager.getColor("nb.multitabs.foreground"); //NOI18N + Color selectedBackground = UIManager.getColor("nb.multitabs.selectedBackground"); //NOI18N + Color selectedForeground = UIManager.getColor("nb.multitabs.selectedForeground"); //NOI18N + Color gridColor = UIManager.getColor("nb.multitabs.gridColor"); //NOI18N + + if (background != null) + table.setBackground(background); + if (foreground != null) + table.setForeground(foreground); + if (selectedBackground != null) + table.setSelectionBackground(selectedBackground); + if (selectedForeground != null) + table.setSelectionForeground(selectedForeground); + if (gridColor != null) + table.setGridColor(gridColor); } } diff --git a/platform/core.multiview/src/org/netbeans/core/multiview/TabsComponent.java b/platform/core.multiview/src/org/netbeans/core/multiview/TabsComponent.java index cebfdd7..c227a12 100644 --- a/platform/core.multiview/src/org/netbeans/core/multiview/TabsComponent.java +++ b/platform/core.multiview/src/org/netbeans/core/multiview/TabsComponent.java @@ -79,9 +79,12 @@ class TabsComponent extends JPanel { /** Creates a new instance of TabsComponent */ public TabsComponent(boolean toolVis) { super(); + Border border = UIManager.getBorder("Nb.Editor.TabsComponent.border"); //NOI18N + if (border != null) + setBorder(border); + bar = new JToolBar(); - Border b = (Border)UIManager.get("Nb.Editor.Toolbar.border"); //NOI18N - bar.setBorder(b); + bar.setBorder(UIManager.getBorder("Nb.Editor.Toolbar.border")); //NOI18N bar.setFloatable(false); bar.setFocusable(true); if( "Windows".equals( UIManager.getLookAndFeel().getID()) diff --git a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatDarkLaf.properties b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatDarkLaf.properties index 21de0ae..11be6ac 100644 --- a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatDarkLaf.properties +++ b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatDarkLaf.properties @@ -29,14 +29,14 @@ EditorTab.background=@background #EditorTab.foreground=#f00 EditorTab.activeBackground=#3B4754 #EditorTab.activeForeground=#f00 -EditorTab.selectedBackground=#4E5254 -#EditorTab.selectedForeground=#0f0 +EditorTab.selectedBackground=#5c6164 +EditorTab.selectedForeground=lighten(@foreground,10%) EditorTab.hoverBackground=$TabbedPane.hoverColor #EditorTab.hoverForeground=#f00 EditorTab.attentionBackground=#E6C840 EditorTab.attentionForeground=#000 EditorTab.underlineColor=$TabbedPane.underlineColor -EditorTab.inactiveUnderlineColor=#747A80 +EditorTab.inactiveUnderlineColor=lighten($TabbedPane.disabledUnderlineColor,5%) #---- ViewTab ---- @@ -63,6 +63,19 @@ SlidingButton.attentionBackground=$ViewTab.attentionBackground SlidingButton.attentionForeground=$ViewTab.attentionForeground +#---- Multi-tabs ---- + +nb.multitabs.project.1.background=rgb(96, 135, 117) +nb.multitabs.project.2.background=rgb(135, 101, 101) +nb.multitabs.project.3.background=rgb(135, 127, 94) +nb.multitabs.project.4.background=rgb(96, 119, 135) +nb.multitabs.project.5.background=rgb(121, 135, 89) +nb.multitabs.project.6.background=rgb(135, 105, 89) +nb.multitabs.project.7.background=rgb(108, 135, 96) +nb.multitabs.project.8.background=rgb(107, 135, 38) +nb.multitabs.project.9.background=rgb(118, 89, 135) + + #---- PropSheet ---- PropSheet.setBackground=lighten(@background,10%) diff --git a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLFCustoms.java b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLFCustoms.java index ab1a462..570feb7 100644 --- a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLFCustoms.java +++ b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLFCustoms.java @@ -38,6 +38,8 @@ public class FlatLFCustoms extends LFCustoms { @Override public Object[] createApplicationSpecificKeysAndValues() { + Color editorContentBorderColor = UIManager.getColor("TabbedContainer.editor.contentBorderColor"); // NOI18N + return new Object[] { // necessary for org.openide.explorer.propertysheet.PropertySheet and others CONTROLFONT, UIManager.getFont("Label.font"), @@ -46,7 +48,9 @@ public class FlatLFCustoms extends LFCustoms { VIEW_TAB_DISPLAYER_UI, "org.netbeans.swing.laf.flatlaf.ui.FlatViewTabDisplayerUI", // NOI18N SLIDING_BUTTON_UI, "org.netbeans.swing.laf.flatlaf.ui.FlatSlidingButtonUI", // NOI18N - EDITOR_TAB_CONTENT_BORDER, DPISafeBorder.matte(0, 1, 1, 1, UIManager.getColor("TabbedContainer.editor.contentBorderColor")), // NOI18N + EDITOR_TABSCOMPONENT_BORDER, DPISafeBorder.matte(1, 1, 1, 1, editorContentBorderColor), + EDITOR_TOOLBAR_BORDER, DPISafeBorder.matte(0, 0, 1, 0, editorContentBorderColor), + EDITOR_TAB_CONTENT_BORDER, DPISafeBorder.matte(0, 1, 1, 1, editorContentBorderColor), VIEW_TAB_CONTENT_BORDER, DPISafeBorder.matte(0, 1, 1, 1, UIManager.getColor("TabbedContainer.view.contentBorderColor")), // NOI18N // scale on Java 8 and Linux diff --git a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLaf.properties b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLaf.properties index 7b456f8..d48308b 100644 --- a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLaf.properties +++ b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLaf.properties @@ -47,6 +47,24 @@ ViewTab.underlineHeight=3 #ViewTab.underlineAtTop=true +#---- Multi-tabs ---- + +nb.multitabs.tabInsets=6,2,6,2 +nb.multitabs.underlineHeight=3 +nb.multitabs.showVerticalLines=true +nb.multitabs.showHorizontalLines=false +nb.multitabs.gridColor=$Component.borderColor +nb.multitabs.noTabBorder=true + +nb.multitabs.background=$EditorTab.background +nb.multitabs.foreground=@foreground +nb.multitabs.activeBackground=$EditorTab.activeBackground +nb.multitabs.selectedBackground=$EditorTab.selectedBackground +nb.multitabs.selectedForeground=$EditorTab.selectedForeground +nb.multitabs.underlineColor=$TabbedPane.underlineColor +nb.multitabs.inactiveUnderlineColor=$EditorTab.inactiveUnderlineColor + + #---- TabControlIcon ---- TabControlIcon.foreground=$ComboBox.buttonArrowColor diff --git a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLightLaf.properties b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLightLaf.properties index c5521b7..953ce35 100644 --- a/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLightLaf.properties +++ b/platform/o.n.swing.laf.flatlaf/src/org/netbeans/swing/laf/flatlaf/FlatLightLaf.properties @@ -23,8 +23,8 @@ EditorTab.background=@background #EditorTab.foreground=#f00 EditorTab.activeBackground=#E2E6EC #EditorTab.activeForeground=#f00 -EditorTab.selectedBackground=#FCFCFC -#EditorTab.selectedForeground=#0f0 +EditorTab.selectedBackground=#FFF +EditorTab.selectedForeground=@foreground EditorTab.hoverBackground=$TabbedPane.hoverColor #EditorTab.hoverForeground=#f00 EditorTab.attentionBackground=#E6C840 diff --git a/platform/o.n.swing.plaf/src/org/netbeans/swing/plaf/LFCustoms.java b/platform/o.n.swing.plaf/src/org/netbeans/swing/plaf/LFCustoms.java index 770d698..09fb0be 100644 --- a/platform/o.n.swing.plaf/src/org/netbeans/swing/plaf/LFCustoms.java +++ b/platform/o.n.swing.plaf/src/org/netbeans/swing/plaf/LFCustoms.java @@ -316,6 +316,7 @@ public abstract class LFCustoms { protected static final String EDITOR_STATUS_INNER_BORDER = "Nb.Editor.Status.innerBorder"; //NOI18N protected static final String EDITOR_STATUS_RIGHT_BORDER = "Nb.Editor.Status.rightBorder"; //NOI18N protected static final String EDITOR_STATUS_ONLYONEBORDER = "Nb.Editor.Status.onlyOneBorder"; //NOI18N + protected static final String EDITOR_TABSCOMPONENT_BORDER = "Nb.Editor.TabsComponent.border"; //NOI18N protected static final String EDITOR_TOOLBAR_BORDER = "Nb.Editor.Toolbar.border"; //NOI18N protected static final String EDITOR_ERRORSTRIPE_SCROLLBAR_INSETS = "Nb.Editor.ErrorStripe.ScrollBar.Insets"; //NOI18N --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org For additional commands, e-mail: commits-help@netbeans.apache.org For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists