JIDE: JideTabbedPane: scale tab gripper

This commit is contained in:
Karl Tauber
2021-03-27 17:48:58 +01:00
parent d7b0754327
commit 69f52c8abd
4 changed files with 43 additions and 0 deletions

View File

@@ -107,4 +107,22 @@ public class FlatJidePainter
} else
super.paintBackground( c, g, rect, borderColor, background, orientation );
}
@Override
public void paintGripper( JComponent c, Graphics g, Rectangle rect, int orientation, int state ) {
float userScaleFactor = UIScale.getUserScaleFactor();
if( userScaleFactor > 1 ) {
// scale gripper
Graphics2D g2 = (Graphics2D) g.create();
try {
g2.translate( rect.x, rect.y );
g2.scale( userScaleFactor, userScaleFactor );
Rectangle rect2 = new Rectangle( 0, 0, UIScale.unscale( rect.width ), UIScale.unscale( rect.height ) );
super.paintGripper( c, g2, rect2, orientation, state );
} finally {
g2.dispose();
}
} else
super.paintGripper( c, g, rect, orientation, state );
}
}

View File

@@ -151,6 +151,7 @@ public class FlatJideTabbedPaneUI
case JideTabbedPane.PROPERTY_TAB_AREA_INSETS:
case JideTabbedPane.PROPERTY_TAB_INSETS:
case JideTabbedPane.GRIPPER_PROPERTY:
case TABBED_PANE_SHOW_TAB_SEPARATORS:
case TABBED_PANE_HAS_FULL_BORDER:
_tabPane.revalidate();

View File

@@ -369,6 +369,13 @@ public class FlatJideOssContainerTest
tabbedPane.setShowTabButtons( showTabButtons );
}
private void showGripperChanged() {
boolean showGripper = showGripperCheckBox.isSelected();
for( JideTabbedPane tabbedPane : allTabbedPanes )
tabbedPane.setShowGripper( showGripper );
}
private void initComponents() {
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
JPanel panel9 = new JPanel();
@@ -405,6 +412,7 @@ public class FlatJideOssContainerTest
boldActiveTabCheckBox = new JCheckBox();
showTabButtonsCheckBox = new JCheckBox();
smallerInsetsCheckBox = new JCheckBox();
showGripperCheckBox = new JCheckBox();
showTabSeparatorsCheckBox = new JCheckBox();
hideTabAreaWithOneTabCheckBox = new JCheckBox();
CellConstraints cc = new CellConstraints();
@@ -600,6 +608,11 @@ public class FlatJideOssContainerTest
smallerInsetsCheckBox.addActionListener(e -> smallerInsetsChanged());
tabbedPaneControlPanel.add(smallerInsetsCheckBox, "cell 2 8");
//---- showGripperCheckBox ----
showGripperCheckBox.setText("Show gripper");
showGripperCheckBox.addActionListener(e -> showGripperChanged());
tabbedPaneControlPanel.add(showGripperCheckBox, "cell 0 9");
//---- showTabSeparatorsCheckBox ----
showTabSeparatorsCheckBox.setText("Show tab separators");
showTabSeparatorsCheckBox.addActionListener(e -> showTabSeparatorsChanged());
@@ -646,6 +659,7 @@ public class FlatJideOssContainerTest
private JCheckBox boldActiveTabCheckBox;
private JCheckBox showTabButtonsCheckBox;
private JCheckBox smallerInsetsCheckBox;
private JCheckBox showGripperCheckBox;
private JCheckBox showTabSeparatorsCheckBox;
private JCheckBox hideTabAreaWithOneTabCheckBox;
// JFormDesigner - End of variables declaration //GEN-END:variables

View File

@@ -337,6 +337,16 @@ new FormModel {
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 2 8"
} )
add( new FormComponent( "javax.swing.JCheckBox" ) {
name: "showGripperCheckBox"
"text": "Show gripper"
auxiliary() {
"JavaCodeGenerator.variableLocal": false
}
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "showGripperChanged", false ) )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 9"
} )
add( new FormComponent( "javax.swing.JCheckBox" ) {
name: "showTabSeparatorsCheckBox"
"text": "Show tab separators"