? diffGtkDivider.txt Index: SplitView.java =================================================================== RCS file: /cvs/core/windows/src/org/netbeans/core/windows/view/SplitView.java,v retrieving revision 1.21 diff -u -r1.21 SplitView.java --- SplitView.java 8 Sep 2006 07:19:33 -0000 1.21 +++ SplitView.java 6 Feb 2007 11:37:30 -0000 @@ -129,10 +129,11 @@ splitPane = new MultiSplitPane(); updateSplitPane(); - - splitPane.setDividerSize(orientation == JSplitPane.VERTICAL_SPLIT - ? Constants.DIVIDER_SIZE_VERTICAL - : Constants.DIVIDER_SIZE_HORIZONTAL); + if (!"GTK".equals(UIManager.getLookAndFeel().getID())) { + splitPane.setDividerSize(orientation == JSplitPane.VERTICAL_SPLIT + ? Constants.DIVIDER_SIZE_VERTICAL + : Constants.DIVIDER_SIZE_HORIZONTAL); + } splitPane.setBorder(BorderFactory.createEmptyBorder()); Index: ui/MultiSplitDivider.java =================================================================== RCS file: /cvs/core/windows/src/org/netbeans/core/windows/view/ui/MultiSplitDivider.java,v retrieving revision 1.6 diff -u -r1.6 MultiSplitDivider.java --- ui/MultiSplitDivider.java 18 Sep 2006 09:31:41 -0000 1.6 +++ ui/MultiSplitDivider.java 6 Feb 2007 11:37:30 -0000 @@ -31,7 +31,15 @@ import javax.accessibility.AccessibleState; import javax.accessibility.AccessibleStateSet; import javax.accessibility.AccessibleValue; - +import javax.swing.JSplitPane; +import javax.swing.UIManager; +import javax.swing.plaf.synth.Region; +import javax.swing.plaf.synth.SynthConstants; +import javax.swing.plaf.synth.SynthContext; +import javax.swing.plaf.synth.SynthLookAndFeel; +import javax.swing.plaf.synth.SynthPainter; +import javax.swing.plaf.synth.SynthStyle; +import javax.swing.plaf.synth.SynthStyleFactory; /** * Wrapper class for MultiSplitPane's split divider rectangle. @@ -43,6 +51,8 @@ MultiSplitCell first; MultiSplitCell second; + private JSplitPane dummySplit; + Point currentDragLocation; int dragMin; int dragMax; @@ -58,6 +68,11 @@ this.first = first; this.second = second; + if (this.splitPane.isHorizontalSplit()) { + dummySplit = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); + } else if (this.splitPane.isVerticalSplit()) { + dummySplit = new JSplitPane(JSplitPane.VERTICAL_SPLIT); + } reshape(); } @@ -94,6 +109,21 @@ } } g.setColor( oldColor ); + } else { + //Paint splitter from JSplitPane on GTK L&F + System.out.println("horizontal:" + isHorizontal() + " paint [" + rect.x + "," + rect.y + "," + + rect.width + "," + rect.height + "]"); + Region region = Region.SPLIT_PANE_DIVIDER; + SynthLookAndFeel laf = (SynthLookAndFeel) UIManager.getLookAndFeel(); + SynthStyleFactory sf = laf.getStyleFactory(); + SynthStyle style = sf.getStyle(dummySplit, region); + SynthContext context = new SynthContext(dummySplit, region, style, SynthConstants.ENABLED); + SynthPainter painter = style.getPainter(context); + if (isHorizontal()) { + painter.paintSplitPaneDividerBackground(context, g, rect.x, rect.y - 2, rect.width, rect.height + 2); + } else { + painter.paintSplitPaneDividerBackground(context, g, rect.x - 2, rect.y, rect.width + 2, rect.height); + } } }