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.
|