Menus: added gap between accelerator and arrow in menu items (issue #91)

This commit is contained in:
Karl Tauber
2020-05-02 19:16:33 +02:00
parent 099dd87241
commit a2541a9659
12 changed files with 135 additions and 53 deletions

View File

@@ -145,6 +145,10 @@ public class FlatMenusTest
JMenu menu6 = new JMenu();
JMenuItem menuItem5 = new JMenuItem();
JMenuItem menuItem6 = new JMenuItem();
FlatMenusTest.MenuWithAccelerator menuWithAccelerator1 = new FlatMenusTest.MenuWithAccelerator();
FlatMenusTest.MenuWithAccelerator menuWithAccelerator2 = new FlatMenusTest.MenuWithAccelerator();
JMenuItem menuItem40 = new JMenuItem();
JMenuItem menuItem39 = new JMenuItem();
menuBar2 = new JMenuBar();
JMenu menu8 = new JMenu();
FlatMenusTest.LargerMenuItem menuItem13 = new FlatMenusTest.LargerMenuItem();
@@ -322,6 +326,29 @@ public class FlatMenusTest
menu6.add(menuItem6);
}
menuBar1.add(menu6);
//======== menuWithAccelerator1 ========
{
menuWithAccelerator1.setText("text");
menuWithAccelerator1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F11, 0));
//======== menuWithAccelerator2 ========
{
menuWithAccelerator2.setText("text");
menuWithAccelerator2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H, KeyEvent.CTRL_MASK));
//---- menuItem40 ----
menuItem40.setText("text");
menuWithAccelerator2.add(menuItem40);
}
menuWithAccelerator1.add(menuWithAccelerator2);
//---- menuItem39 ----
menuItem39.setText("text");
menuItem39.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H, KeyEvent.CTRL_MASK));
menuWithAccelerator1.add(menuItem39);
}
menuBar1.add(menuWithAccelerator1);
}
add(menuBar1, "cell 1 0 2 1,growx");
@@ -808,4 +835,28 @@ public class FlatMenusTest
g.drawLine( 0, getHeight(), getWidth(), getHeight() );
}
}
//---- class MenuWithAccelerator ------------------------------------------
public static class MenuWithAccelerator
extends JMenu
{
private KeyStroke accelerator;
@Override
public KeyStroke getAccelerator() {
return accelerator;
}
@Override
public void setAccelerator( KeyStroke keyStroke ) {
KeyStroke oldAccelerator = accelerator;
this.accelerator = keyStroke;
revalidate();
repaint();
firePropertyChange( "accelerator", oldAccelerator, accelerator );
}
}
}

View File

@@ -120,6 +120,25 @@ new FormModel {
"text": "text"
} )
} )
add( new FormContainer( "com.formdev.flatlaf.testing.FlatMenusTest$MenuWithAccelerator", new FormLayoutManager( class javax.swing.JMenu ) ) {
name: "menuWithAccelerator1"
"text": "text"
"accelerator": static javax.swing.KeyStroke getKeyStroke( 122, 0, false )
add( new FormContainer( "com.formdev.flatlaf.testing.FlatMenusTest$MenuWithAccelerator", new FormLayoutManager( class javax.swing.JMenu ) ) {
name: "menuWithAccelerator2"
"text": "text"
"accelerator": &KeyStroke0 static javax.swing.KeyStroke getKeyStroke( 72, 130, false )
add( new FormComponent( "javax.swing.JMenuItem" ) {
name: "menuItem40"
"text": "text"
} )
} )
add( new FormComponent( "javax.swing.JMenuItem" ) {
name: "menuItem39"
"text": "text"
"accelerator": #KeyStroke0
} )
} )
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 1 0 2 1,growx"
} )
@@ -345,7 +364,7 @@ new FormModel {
add( new FormComponent( "javax.swing.JCheckBoxMenuItem" ) {
name: "checkBoxMenuItem1"
"text": "<html>en<b>abl</b>ed</html>"
"accelerator": &KeyStroke0 static javax.swing.KeyStroke getKeyStroke( 112, 0, false )
"accelerator": &KeyStroke1 static javax.swing.KeyStroke getKeyStroke( 112, 0, false )
"mnemonic": 65
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 1 2"
@@ -359,7 +378,7 @@ new FormModel {
add( new FormComponent( "javax.swing.JRadioButtonMenuItem" ) {
name: "radioButtonMenuItem1"
"text": "<html>en<b color=\"red\">abl</b><i color=\"blue\">ed</i></html>"
"accelerator": #KeyStroke0
"accelerator": #KeyStroke1
"mnemonic": 66
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 1 3"
@@ -406,7 +425,7 @@ new FormModel {
name: "checkBoxMenuItem2"
"text": "disabled"
"enabled": false
"accelerator": #KeyStroke0
"accelerator": #KeyStroke1
"mnemonic": 83
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 2"
@@ -415,7 +434,7 @@ new FormModel {
name: "radioButtonMenuItem2"
"text": "disabled"
"enabled": false
"accelerator": #KeyStroke0
"accelerator": #KeyStroke1
"mnemonic": 76
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 3"
@@ -441,7 +460,7 @@ new FormModel {
name: "menuItem3"
"text": "selected"
"selected": true
"accelerator": #KeyStroke0
"accelerator": #KeyStroke1
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 1"
} )
@@ -449,7 +468,7 @@ new FormModel {
name: "checkBoxMenuItem3"
"text": "selected"
"selected": true
"accelerator": #KeyStroke0
"accelerator": #KeyStroke1
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 2"
} )
@@ -457,7 +476,7 @@ new FormModel {
name: "radioButtonMenuItem3"
"text": "selected"
"selected": true
"accelerator": #KeyStroke0
"accelerator": #KeyStroke1
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 3"
} )
@@ -483,7 +502,7 @@ new FormModel {
"text": "selected disabled"
"selected": true
"enabled": false
"accelerator": #KeyStroke0
"accelerator": #KeyStroke1
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 1"
} )
@@ -492,7 +511,7 @@ new FormModel {
"text": "selected disabled"
"enabled": false
"selected": true
"accelerator": #KeyStroke0
"accelerator": #KeyStroke1
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 2"
} )
@@ -501,7 +520,7 @@ new FormModel {
"text": "selected disabled"
"enabled": false
"selected": true
"accelerator": #KeyStroke0
"accelerator": #KeyStroke1
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
"value": "cell 0 3"
} )

View File

@@ -149,7 +149,7 @@ CheckBoxMenuItem.checkIcon [lazy] 15,15 com.formdev.flatlaf.icons.FlatChe
CheckBoxMenuItem.disabledForeground #777777 javax.swing.plaf.ColorUIResource [UI]
CheckBoxMenuItem.font [active] $defaultFont [UI]
CheckBoxMenuItem.foreground #bbbbbb javax.swing.plaf.ColorUIResource [UI]
CheckBoxMenuItem.margin 2,8,2,8 javax.swing.plaf.InsetsUIResource [UI]
CheckBoxMenuItem.margin 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
CheckBoxMenuItem.opaque false
CheckBoxMenuItem.selectionBackground #4b6eaf javax.swing.plaf.ColorUIResource [UI]
CheckBoxMenuItem.selectionForeground #bbbbbb javax.swing.plaf.ColorUIResource [UI]
@@ -476,7 +476,7 @@ Menu.font [active] $defaultFont [UI]
Menu.foreground #bbbbbb javax.swing.plaf.ColorUIResource [UI]
Menu.icon.arrowColor #a7a7a7 javax.swing.plaf.ColorUIResource [UI]
Menu.icon.disabledArrowColor #606060 javax.swing.plaf.ColorUIResource [UI]
Menu.margin 2,8,2,8 javax.swing.plaf.InsetsUIResource [UI]
Menu.margin 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
Menu.menuPopupOffsetX 0
Menu.menuPopupOffsetY 0
Menu.opaque false
@@ -508,6 +508,7 @@ MenuBarUI com.formdev.flatlaf.ui.FlatMenuBarUI
#---- MenuItem ----
MenuItem.acceleratorArrowGap 2
MenuItem.acceleratorDelimiter
MenuItem.acceleratorFont [active] $defaultFont [UI]
MenuItem.acceleratorForeground #959595 javax.swing.plaf.ColorUIResource [UI]
@@ -519,14 +520,14 @@ MenuItem.borderPainted true
MenuItem.disabledForeground #777777 javax.swing.plaf.ColorUIResource [UI]
MenuItem.font [active] $defaultFont [UI]
MenuItem.foreground #bbbbbb javax.swing.plaf.ColorUIResource [UI]
MenuItem.margin 2,8,2,8 javax.swing.plaf.InsetsUIResource [UI]
MenuItem.margin 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
MenuItem.minimumIconSize 16,16 javax.swing.plaf.DimensionUIResource [UI]
MenuItem.minimumWidth 72
MenuItem.opaque false
MenuItem.selectionBackground #4b6eaf javax.swing.plaf.ColorUIResource [UI]
MenuItem.selectionForeground #bbbbbb javax.swing.plaf.ColorUIResource [UI]
MenuItem.textAcceleratorGap 24
MenuItem.textArrowGap 8
MenuItem.textNoAcceleratorGap 6
MenuItem.underlineSelectionBackground #484c4f javax.swing.plaf.ColorUIResource [UI]
MenuItem.underlineSelectionColor #4a88c7 javax.swing.plaf.ColorUIResource [UI]
MenuItem.underlineSelectionHeight 3
@@ -702,7 +703,7 @@ RadioButtonMenuItem.checkIcon [lazy] 15,15 com.formdev.flatlaf.icons.FlatRad
RadioButtonMenuItem.disabledForeground #777777 javax.swing.plaf.ColorUIResource [UI]
RadioButtonMenuItem.font [active] $defaultFont [UI]
RadioButtonMenuItem.foreground #bbbbbb javax.swing.plaf.ColorUIResource [UI]
RadioButtonMenuItem.margin 2,8,2,8 javax.swing.plaf.InsetsUIResource [UI]
RadioButtonMenuItem.margin 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
RadioButtonMenuItem.opaque false
RadioButtonMenuItem.selectionBackground #4b6eaf javax.swing.plaf.ColorUIResource [UI]
RadioButtonMenuItem.selectionForeground #bbbbbb javax.swing.plaf.ColorUIResource [UI]

View File

@@ -149,7 +149,7 @@ CheckBoxMenuItem.checkIcon [lazy] 15,15 com.formdev.flatlaf.icons.FlatChe
CheckBoxMenuItem.disabledForeground #777777 javax.swing.plaf.ColorUIResource [UI]
CheckBoxMenuItem.font [active] $defaultFont [UI]
CheckBoxMenuItem.foreground #bbbbbb javax.swing.plaf.ColorUIResource [UI]
CheckBoxMenuItem.margin 2,8,2,8 javax.swing.plaf.InsetsUIResource [UI]
CheckBoxMenuItem.margin 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
CheckBoxMenuItem.opaque false
CheckBoxMenuItem.selectionBackground #4b6eaf javax.swing.plaf.ColorUIResource [UI]
CheckBoxMenuItem.selectionForeground #bbbbbb javax.swing.plaf.ColorUIResource [UI]
@@ -475,7 +475,7 @@ Menu.font [active] $defaultFont [UI]
Menu.foreground #bbbbbb javax.swing.plaf.ColorUIResource [UI]
Menu.icon.arrowColor #a7a7a7 javax.swing.plaf.ColorUIResource [UI]
Menu.icon.disabledArrowColor #606060 javax.swing.plaf.ColorUIResource [UI]
Menu.margin 2,8,2,8 javax.swing.plaf.InsetsUIResource [UI]
Menu.margin 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
Menu.menuPopupOffsetX 0
Menu.menuPopupOffsetY 0
Menu.opaque false
@@ -507,6 +507,7 @@ MenuBarUI com.formdev.flatlaf.ui.FlatMenuBarUI
#---- MenuItem ----
MenuItem.acceleratorArrowGap 2
MenuItem.acceleratorDelimiter -
MenuItem.acceleratorFont [active] $defaultFont [UI]
MenuItem.acceleratorForeground #959595 javax.swing.plaf.ColorUIResource [UI]
@@ -518,14 +519,14 @@ MenuItem.borderPainted true
MenuItem.disabledForeground #777777 javax.swing.plaf.ColorUIResource [UI]
MenuItem.font [active] $defaultFont [UI]
MenuItem.foreground #bbbbbb javax.swing.plaf.ColorUIResource [UI]
MenuItem.margin 2,8,2,8 javax.swing.plaf.InsetsUIResource [UI]
MenuItem.margin 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
MenuItem.minimumIconSize 16,16 javax.swing.plaf.DimensionUIResource [UI]
MenuItem.minimumWidth 72
MenuItem.opaque false
MenuItem.selectionBackground #4b6eaf javax.swing.plaf.ColorUIResource [UI]
MenuItem.selectionForeground #bbbbbb javax.swing.plaf.ColorUIResource [UI]
MenuItem.textAcceleratorGap 24
MenuItem.textArrowGap 8
MenuItem.textNoAcceleratorGap 6
MenuItem.underlineSelectionBackground #484c4f javax.swing.plaf.ColorUIResource [UI]
MenuItem.underlineSelectionColor #4a88c7 javax.swing.plaf.ColorUIResource [UI]
MenuItem.underlineSelectionHeight 3
@@ -700,7 +701,7 @@ RadioButtonMenuItem.checkIcon [lazy] 15,15 com.formdev.flatlaf.icons.FlatRad
RadioButtonMenuItem.disabledForeground #777777 javax.swing.plaf.ColorUIResource [UI]
RadioButtonMenuItem.font [active] $defaultFont [UI]
RadioButtonMenuItem.foreground #bbbbbb javax.swing.plaf.ColorUIResource [UI]
RadioButtonMenuItem.margin 2,8,2,8 javax.swing.plaf.InsetsUIResource [UI]
RadioButtonMenuItem.margin 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
RadioButtonMenuItem.opaque false
RadioButtonMenuItem.selectionBackground #4b6eaf javax.swing.plaf.ColorUIResource [UI]
RadioButtonMenuItem.selectionForeground #bbbbbb javax.swing.plaf.ColorUIResource [UI]

View File

@@ -150,7 +150,7 @@ CheckBoxMenuItem.checkIcon [lazy] 15,15 com.formdev.flatlaf.icons.FlatChe
CheckBoxMenuItem.disabledForeground #8c8c8c javax.swing.plaf.ColorUIResource [UI]
CheckBoxMenuItem.font [active] $defaultFont [UI]
CheckBoxMenuItem.foreground #000000 javax.swing.plaf.ColorUIResource [UI]
CheckBoxMenuItem.margin 2,8,2,8 javax.swing.plaf.InsetsUIResource [UI]
CheckBoxMenuItem.margin 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
CheckBoxMenuItem.opaque false
CheckBoxMenuItem.selectionBackground #2675bf javax.swing.plaf.ColorUIResource [UI]
CheckBoxMenuItem.selectionForeground #ffffff javax.swing.plaf.ColorUIResource [UI]
@@ -478,7 +478,7 @@ Menu.font [active] $defaultFont [UI]
Menu.foreground #000000 javax.swing.plaf.ColorUIResource [UI]
Menu.icon.arrowColor #666666 javax.swing.plaf.ColorUIResource [UI]
Menu.icon.disabledArrowColor #ababab javax.swing.plaf.ColorUIResource [UI]
Menu.margin 2,8,2,8 javax.swing.plaf.InsetsUIResource [UI]
Menu.margin 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
Menu.menuPopupOffsetX 0
Menu.menuPopupOffsetY 0
Menu.opaque false
@@ -510,6 +510,7 @@ MenuBarUI com.formdev.flatlaf.ui.FlatMenuBarUI
#---- MenuItem ----
MenuItem.acceleratorArrowGap 2
MenuItem.acceleratorDelimiter
MenuItem.acceleratorFont [active] $defaultFont [UI]
MenuItem.acceleratorForeground #4d4d4d javax.swing.plaf.ColorUIResource [UI]
@@ -521,14 +522,14 @@ MenuItem.borderPainted true
MenuItem.disabledForeground #8c8c8c javax.swing.plaf.ColorUIResource [UI]
MenuItem.font [active] $defaultFont [UI]
MenuItem.foreground #000000 javax.swing.plaf.ColorUIResource [UI]
MenuItem.margin 2,8,2,8 javax.swing.plaf.InsetsUIResource [UI]
MenuItem.margin 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
MenuItem.minimumIconSize 16,16 javax.swing.plaf.DimensionUIResource [UI]
MenuItem.minimumWidth 72
MenuItem.opaque false
MenuItem.selectionBackground #2675bf javax.swing.plaf.ColorUIResource [UI]
MenuItem.selectionForeground #ffffff javax.swing.plaf.ColorUIResource [UI]
MenuItem.textAcceleratorGap 24
MenuItem.textArrowGap 8
MenuItem.textNoAcceleratorGap 6
MenuItem.underlineSelectionBackground #e6e6e6 javax.swing.plaf.ColorUIResource [UI]
MenuItem.underlineSelectionColor #4083c9 javax.swing.plaf.ColorUIResource [UI]
MenuItem.underlineSelectionHeight 3
@@ -704,7 +705,7 @@ RadioButtonMenuItem.checkIcon [lazy] 15,15 com.formdev.flatlaf.icons.FlatRad
RadioButtonMenuItem.disabledForeground #8c8c8c javax.swing.plaf.ColorUIResource [UI]
RadioButtonMenuItem.font [active] $defaultFont [UI]
RadioButtonMenuItem.foreground #000000 javax.swing.plaf.ColorUIResource [UI]
RadioButtonMenuItem.margin 2,8,2,8 javax.swing.plaf.InsetsUIResource [UI]
RadioButtonMenuItem.margin 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
RadioButtonMenuItem.opaque false
RadioButtonMenuItem.selectionBackground #2675bf javax.swing.plaf.ColorUIResource [UI]
RadioButtonMenuItem.selectionForeground #ffffff javax.swing.plaf.ColorUIResource [UI]

View File

@@ -150,7 +150,7 @@ CheckBoxMenuItem.checkIcon [lazy] 15,15 com.formdev.flatlaf.icons.FlatChe
CheckBoxMenuItem.disabledForeground #8c8c8c javax.swing.plaf.ColorUIResource [UI]
CheckBoxMenuItem.font [active] $defaultFont [UI]
CheckBoxMenuItem.foreground #000000 javax.swing.plaf.ColorUIResource [UI]
CheckBoxMenuItem.margin 2,8,2,8 javax.swing.plaf.InsetsUIResource [UI]
CheckBoxMenuItem.margin 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
CheckBoxMenuItem.opaque false
CheckBoxMenuItem.selectionBackground #2675bf javax.swing.plaf.ColorUIResource [UI]
CheckBoxMenuItem.selectionForeground #ffffff javax.swing.plaf.ColorUIResource [UI]
@@ -477,7 +477,7 @@ Menu.font [active] $defaultFont [UI]
Menu.foreground #000000 javax.swing.plaf.ColorUIResource [UI]
Menu.icon.arrowColor #666666 javax.swing.plaf.ColorUIResource [UI]
Menu.icon.disabledArrowColor #ababab javax.swing.plaf.ColorUIResource [UI]
Menu.margin 2,8,2,8 javax.swing.plaf.InsetsUIResource [UI]
Menu.margin 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
Menu.menuPopupOffsetX 0
Menu.menuPopupOffsetY 0
Menu.opaque false
@@ -509,6 +509,7 @@ MenuBarUI com.formdev.flatlaf.ui.FlatMenuBarUI
#---- MenuItem ----
MenuItem.acceleratorArrowGap 2
MenuItem.acceleratorDelimiter -
MenuItem.acceleratorFont [active] $defaultFont [UI]
MenuItem.acceleratorForeground #4d4d4d javax.swing.plaf.ColorUIResource [UI]
@@ -520,14 +521,14 @@ MenuItem.borderPainted true
MenuItem.disabledForeground #8c8c8c javax.swing.plaf.ColorUIResource [UI]
MenuItem.font [active] $defaultFont [UI]
MenuItem.foreground #000000 javax.swing.plaf.ColorUIResource [UI]
MenuItem.margin 2,8,2,8 javax.swing.plaf.InsetsUIResource [UI]
MenuItem.margin 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
MenuItem.minimumIconSize 16,16 javax.swing.plaf.DimensionUIResource [UI]
MenuItem.minimumWidth 72
MenuItem.opaque false
MenuItem.selectionBackground #2675bf javax.swing.plaf.ColorUIResource [UI]
MenuItem.selectionForeground #ffffff javax.swing.plaf.ColorUIResource [UI]
MenuItem.textAcceleratorGap 24
MenuItem.textArrowGap 8
MenuItem.textNoAcceleratorGap 6
MenuItem.underlineSelectionBackground #e6e6e6 javax.swing.plaf.ColorUIResource [UI]
MenuItem.underlineSelectionColor #4083c9 javax.swing.plaf.ColorUIResource [UI]
MenuItem.underlineSelectionHeight 3
@@ -702,7 +703,7 @@ RadioButtonMenuItem.checkIcon [lazy] 15,15 com.formdev.flatlaf.icons.FlatRad
RadioButtonMenuItem.disabledForeground #8c8c8c javax.swing.plaf.ColorUIResource [UI]
RadioButtonMenuItem.font [active] $defaultFont [UI]
RadioButtonMenuItem.foreground #000000 javax.swing.plaf.ColorUIResource [UI]
RadioButtonMenuItem.margin 2,8,2,8 javax.swing.plaf.InsetsUIResource [UI]
RadioButtonMenuItem.margin 2,6,2,6 javax.swing.plaf.InsetsUIResource [UI]
RadioButtonMenuItem.opaque false
RadioButtonMenuItem.selectionBackground #2675bf javax.swing.plaf.ColorUIResource [UI]
RadioButtonMenuItem.selectionForeground #ffffff javax.swing.plaf.ColorUIResource [UI]