From: Frederick W. <fre...@us...> - 2012-02-12 17:53:12
|
LocalisedText.properties | 1 + data/Properties.xml | 2 ++ rails/ui/swing/elements/RailsIconButton.java | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+) New commits: commit d9c6cff3c38f8348c2725f91699e9be931bd7fc6 Author: Frederick Weld <fre...@gm...> Date: Sun Feb 12 18:51:42 2012 +0100 Added option to display button icons above icon texts Motivation: Putting icons above is probably the preferred option if large icons and small fonts are used. Further advantage: Icons are horizontally aligned in case of vertical stacking of command buttons. diff --git a/LocalisedText.properties b/LocalisedText.properties index eac4de9..087534b 100644 --- a/LocalisedText.properties +++ b/LocalisedText.properties @@ -184,6 +184,7 @@ Config.infoText.sound.sfx.or.buyTrain=<html>Enter assignment of sound effect fil Config.infoText.sound.sfx.or.setRevenue=<html><ul><li>Only the latter portion of this file is played.<ul><li>For an average revenue, the last third is played.</ul><li>The higher the company's revenue the longer this file is played.<ul><li>But the file is at most played once as a whole.</li></ul></html> Config.infoText.sound.sfx.sr.newPresident=This also includes becoming the president when buying the president share. Config.label.button.iconText=Button display type +Config.label.button.iconPosition=Button icon position relative to text Config.label.button.iconSize=Button icon size Config.label.default_game=Default game Config.label.default_players=Default players diff --git a/data/Properties.xml b/data/Properties.xml index c207cbc..9399a9f 100644 --- a/data/Properties.xml +++ b/data/Properties.xml @@ -52,6 +52,8 @@ initClass="rails.ui.swing.elements.RailsIconButton" initMethod="resetRailsIcons" initParameter="no" /> <Property name="button.iconSize" type="LIST" values="small,large" initClass="rails.ui.swing.elements.RailsIconButton" initMethod="resetRailsIcons" initParameter="no" /> + <Property name="button.iconPosition" type="LIST" values="left,above" + initClass="rails.ui.swing.elements.RailsIconButton" initMethod="resetRailsIcons" initParameter="no" /> <Property name="route.colour.1" type="COLOR" initClass="rails.ui.swing.hexmap.HexMap" initMethod="setRouteColours" /> <Property name="route.colour.2" type="COLOR" diff --git a/rails/ui/swing/elements/RailsIconButton.java b/rails/ui/swing/elements/RailsIconButton.java index 3f6d628..fd1d165 100644 --- a/rails/ui/swing/elements/RailsIconButton.java +++ b/rails/ui/swing/elements/RailsIconButton.java @@ -9,6 +9,7 @@ import java.util.HashSet; import java.util.Set; import javax.swing.JButton; +import javax.swing.SwingConstants; import rails.common.parser.Config; @@ -65,11 +66,23 @@ public class RailsIconButton extends JButton { */ private void showRailsIcon() { if (railsIcon != null) { + //set icon/text positioning + if (isIconAboveText()) { + setVerticalTextPosition(SwingConstants.BOTTOM); + setHorizontalTextPosition(SwingConstants.CENTER); + } else { + setVerticalTextPosition(SwingConstants.CENTER); + setHorizontalTextPosition(SwingConstants.TRAILING); + } + + //set text if (isTextEnabled() || railsIcon.largeIcon == null) { super.setText(railsIcon.description); } else { super.setText(null); } + + //set icon and tool tip text if (isIconEnabled() || railsIcon.description == null) { if (isIconSizeSmall()) { super.setIcon(railsIcon.smallIcon); @@ -97,6 +110,11 @@ public class RailsIconButton extends JButton { //small is default return !"large".equals(Config.get("button.iconSize")); } + + private boolean isIconAboveText() { + //left of text is default + return "above".equals(Config.get("button.iconPosition")); + } /** * Should only be used if an arbitrary text is to displayed without icon. |