mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 18:28:00 +00:00
Refactor font getting and setting
This commit is contained in:
@@ -952,7 +952,6 @@ public class Forge implements ApplicationListener {
|
||||
}
|
||||
|
||||
TextBounds textBounds;
|
||||
int fontSize = font.getSize();
|
||||
if (wrap) {
|
||||
textBounds = font.getWrappedBounds(text, w);
|
||||
}
|
||||
@@ -963,8 +962,8 @@ public class Forge implements ApplicationListener {
|
||||
boolean needClip = false;
|
||||
|
||||
while (textBounds.width > w || textBounds.height > h) {
|
||||
if (fontSize > FSkinFont.MIN_FONT_SIZE) { //shrink font to fit if possible
|
||||
font = FSkinFont.get(--fontSize);
|
||||
if (font.canShrink()) { //shrink font to fit if possible
|
||||
font = font.shrink();
|
||||
if (wrap) {
|
||||
textBounds = font.getWrappedBounds(text, w);
|
||||
}
|
||||
|
||||
@@ -23,17 +23,18 @@ import forge.FThreads;
|
||||
import forge.util.Utils;
|
||||
|
||||
public class FSkinFont {
|
||||
public static final int MIN_FONT_SIZE = Math.round(8 / Utils.MAX_RATIO);
|
||||
public static final int MAX_FONT_SIZE = Math.round(72 / Utils.MAX_RATIO);
|
||||
private static final int MIN_FONT_SIZE = 8;
|
||||
private static final int MAX_FONT_SIZE = 72;
|
||||
|
||||
private static final String TTF_FILE = "font1.ttf";
|
||||
private static final Map<Integer, FSkinFont> fonts = new HashMap<Integer, FSkinFont>();
|
||||
|
||||
public static FSkinFont get(final int size0) {
|
||||
FSkinFont skinFont = fonts.get(size0);
|
||||
public static FSkinFont get(final int unscaledSize) {
|
||||
int fontSize0 = (int)Utils.scaleMax(unscaledSize);
|
||||
FSkinFont skinFont = fonts.get(fontSize0);
|
||||
if (skinFont == null) {
|
||||
skinFont = new FSkinFont(size0);
|
||||
fonts.put(size0, skinFont);
|
||||
skinFont = new FSkinFont(fontSize0);
|
||||
fonts.put(fontSize0, skinFont);
|
||||
}
|
||||
return skinFont;
|
||||
}
|
||||
@@ -61,18 +62,26 @@ public class FSkinFont {
|
||||
}
|
||||
}
|
||||
|
||||
private final int size;
|
||||
private final int fontSize;
|
||||
private final float scale;
|
||||
private BitmapFont font;
|
||||
|
||||
private FSkinFont(final int size0) {
|
||||
size = size0;
|
||||
private FSkinFont(int fontSize0) {
|
||||
if (fontSize0 < MIN_FONT_SIZE) {
|
||||
scale = fontSize0 / MIN_FONT_SIZE;
|
||||
fontSize0 = MIN_FONT_SIZE;
|
||||
}
|
||||
else if (fontSize0 > MAX_FONT_SIZE) {
|
||||
scale = fontSize0 / MAX_FONT_SIZE;
|
||||
fontSize0 = MAX_FONT_SIZE;
|
||||
}
|
||||
else {
|
||||
scale = 1;
|
||||
}
|
||||
fontSize = fontSize0;
|
||||
updateFont();
|
||||
}
|
||||
|
||||
public int getSize() {
|
||||
return size;
|
||||
}
|
||||
|
||||
// Expose methods from font that updates scale as needed
|
||||
public TextBounds getBounds(CharSequence str) {
|
||||
return font.getBounds(str);
|
||||
@@ -103,8 +112,15 @@ public class FSkinFont {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean canShrink() {
|
||||
return fontSize > MIN_FONT_SIZE;
|
||||
}
|
||||
|
||||
public FSkinFont shrink() {
|
||||
return get(fontSize - 1);
|
||||
}
|
||||
|
||||
private void updateFont() {
|
||||
int fontSize = (int)Utils.scaleMax(size);
|
||||
String fontName = "f" + fontSize;
|
||||
FileHandle fontFile = Gdx.files.absolute(FSkin.getFontDir() + fontName + ".fnt");
|
||||
if (fontFile.exists()) {
|
||||
|
||||
@@ -81,8 +81,8 @@ public class TextRenderer {
|
||||
totalHeight = font.getCapHeight();
|
||||
if (totalHeight > height) {
|
||||
//immediately try one font size smaller if no room for anything
|
||||
if (font.getSize() > FSkinFont.MIN_FONT_SIZE) {
|
||||
updatePieces(FSkinFont.get(font.getSize() - 1));
|
||||
if (font.canShrink()) {
|
||||
updatePieces(font.shrink());
|
||||
return;
|
||||
}
|
||||
needClip = true;
|
||||
@@ -127,8 +127,8 @@ public class TextRenderer {
|
||||
lineNum++;
|
||||
if (totalHeight > height) {
|
||||
//try next font size down if out of space
|
||||
if (font.getSize() > FSkinFont.MIN_FONT_SIZE) {
|
||||
updatePieces(FSkinFont.get(font.getSize() - 1));
|
||||
if (font.canShrink()) {
|
||||
updatePieces(font.shrink());
|
||||
return;
|
||||
}
|
||||
needClip = true;
|
||||
@@ -159,8 +159,8 @@ public class TextRenderer {
|
||||
lineNum++;
|
||||
if (totalHeight > height) {
|
||||
//try next font size down if out of space
|
||||
if (font.getSize() > FSkinFont.MIN_FONT_SIZE) {
|
||||
updatePieces(FSkinFont.get(font.getSize() - 1));
|
||||
if (font.canShrink()) {
|
||||
updatePieces(font.shrink());
|
||||
return;
|
||||
}
|
||||
needClip = true;
|
||||
@@ -182,9 +182,9 @@ public class TextRenderer {
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (font.getSize() > FSkinFont.MIN_FONT_SIZE) {
|
||||
else if (font.canShrink()) {
|
||||
//try next font size down if out of space
|
||||
updatePieces(FSkinFont.get(font.getSize() - 1));
|
||||
updatePieces(font.shrink());
|
||||
return;
|
||||
}
|
||||
else {
|
||||
@@ -291,8 +291,8 @@ public class TextRenderer {
|
||||
lineNum++;
|
||||
if (totalHeight > height) {
|
||||
//try next font size down if out of space
|
||||
if (font.getSize() > FSkinFont.MIN_FONT_SIZE) {
|
||||
updatePieces(FSkinFont.get(font.getSize() - 1));
|
||||
if (font.canShrink()) {
|
||||
updatePieces(font.shrink());
|
||||
return;
|
||||
}
|
||||
needClip = true;
|
||||
@@ -349,17 +349,17 @@ public class TextRenderer {
|
||||
lineNum++;
|
||||
if (totalHeight > height) {
|
||||
//try next font size down if out of space
|
||||
if (font.getSize() > FSkinFont.MIN_FONT_SIZE) {
|
||||
updatePieces(FSkinFont.get(font.getSize() - 1));
|
||||
if (font.canShrink()) {
|
||||
updatePieces(font.shrink());
|
||||
return;
|
||||
}
|
||||
needClip = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (font.getSize() > FSkinFont.MIN_FONT_SIZE) {
|
||||
if (font.canShrink()) {
|
||||
//try next font size down if out of space
|
||||
updatePieces(FSkinFont.get(font.getSize() - 1));
|
||||
updatePieces(font.shrink());
|
||||
return;
|
||||
}
|
||||
needClip = true;
|
||||
|
||||
@@ -295,7 +295,7 @@ public final class DeckManager extends ItemManager<DeckProxy> {
|
||||
//draw path and main/side on second line
|
||||
x = FList.PADDING;
|
||||
y += IMAGE_SIZE + FList.PADDING;
|
||||
font = FSkinFont.get(font.getSize() - 2);
|
||||
font = font.shrink().shrink();
|
||||
float lineHeight = font.getLineHeight();
|
||||
|
||||
int mainSize = deck.getMainSize();
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.google.common.base.Predicate;
|
||||
import com.google.common.base.Predicates;
|
||||
import com.google.common.collect.Iterables;
|
||||
|
||||
import forge.assets.FSkinFont;
|
||||
import forge.assets.FSkinImage;
|
||||
import forge.item.InventoryItem;
|
||||
import forge.itemmanager.filters.ItemFilter;
|
||||
@@ -71,7 +72,7 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
|
||||
|
||||
private final FLabel lblCaption = new FLabel.Builder()
|
||||
.align(HAlignment.LEFT)
|
||||
.fontSize(12)
|
||||
.font(FSkinFont.get(12))
|
||||
.build();
|
||||
|
||||
private static final FSkinImage VIEW_OPTIONS_ICON = FSkinImage.SETTINGS;
|
||||
|
||||
@@ -48,7 +48,7 @@ public class CardSearchFilter extends TextSearchFilter<PaperCard> {
|
||||
super.buildWidget(widget);
|
||||
|
||||
cbSearchMode = new FComboBox<String>();
|
||||
cbSearchMode.setFontSize(txtSearch.getFontSize());
|
||||
cbSearchMode.setFont(txtSearch.getFont());
|
||||
cbSearchMode.addItem("in");
|
||||
cbSearchMode.addItem("not in");
|
||||
cbSearchMode.setChangedHandler(new FEventHandler() {
|
||||
@@ -79,7 +79,7 @@ public class CardSearchFilter extends TextSearchFilter<PaperCard> {
|
||||
}
|
||||
|
||||
private FLabel addButton(Widget widget, String text) {
|
||||
FLabel button = new FLabel.Builder().text(text).fontSize(txtSearch.getFontSize()).align(HAlignment.CENTER)
|
||||
FLabel button = new FLabel.Builder().text(text).font(txtSearch.getFont()).align(HAlignment.CENTER)
|
||||
.selectable().selected().command(new FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
|
||||
@@ -2,6 +2,7 @@ package forge.itemmanager.filters;
|
||||
|
||||
import com.google.common.base.Predicate;
|
||||
|
||||
import forge.assets.FSkinFont;
|
||||
import forge.item.InventoryItem;
|
||||
import forge.itemmanager.ItemManager;
|
||||
import forge.toolbox.FContainer;
|
||||
@@ -13,8 +14,8 @@ import forge.util.Utils;
|
||||
|
||||
public abstract class ItemFilter<T extends InventoryItem> {
|
||||
public static final float PADDING = Utils.scaleMax(3);
|
||||
public static final int DEFAULT_FONT_SIZE = 11;
|
||||
public static final float PANEL_HEIGHT = FTextField.getDefaultHeight(DEFAULT_FONT_SIZE) + PADDING;
|
||||
public static final FSkinFont DEFAULT_FONT = FSkinFont.get(11);
|
||||
public static final float PANEL_HEIGHT = FTextField.getDefaultHeight(DEFAULT_FONT) + PADDING;
|
||||
|
||||
protected final ItemManager<? super T> itemManager;
|
||||
private FilterPanel panel;
|
||||
|
||||
@@ -2,6 +2,7 @@ package forge.itemmanager.filters;
|
||||
|
||||
import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
|
||||
|
||||
import forge.assets.FSkinFont;
|
||||
import forge.item.InventoryItem;
|
||||
import forge.itemmanager.ItemManager;
|
||||
import forge.menu.FTooltip;
|
||||
@@ -11,6 +12,8 @@ import forge.util.TextUtil;
|
||||
|
||||
|
||||
public abstract class ListLabelFilter<T extends InventoryItem> extends ItemFilter<T> {
|
||||
public static final FSkinFont LABEL_FONT = FSkinFont.get(12);
|
||||
|
||||
private ListLabel label;
|
||||
|
||||
protected ListLabelFilter(ItemManager<? super T> itemManager0) {
|
||||
@@ -58,7 +61,7 @@ public abstract class ListLabelFilter<T extends InventoryItem> extends ItemFilte
|
||||
|
||||
private class ListLabel extends FLabel {
|
||||
private ListLabel() {
|
||||
super(new FLabel.Builder().align(HAlignment.LEFT).fontSize(12));
|
||||
super(new FLabel.Builder().align(HAlignment.LEFT).font(LABEL_FONT));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -3,6 +3,7 @@ package forge.itemmanager.filters;
|
||||
import com.google.common.base.Predicate;
|
||||
import com.google.common.base.Predicates;
|
||||
|
||||
import forge.assets.FSkinFont;
|
||||
import forge.item.InventoryItem;
|
||||
import forge.itemmanager.ItemManager;
|
||||
import forge.itemmanager.SFilterUtil;
|
||||
@@ -14,6 +15,7 @@ import forge.util.LayoutHelper;
|
||||
|
||||
|
||||
public class TextSearchFilter<T extends InventoryItem> extends ItemFilter<T> {
|
||||
private static final FSkinFont FONT = FSkinFont.get(12);
|
||||
protected FTextField txtSearch;
|
||||
|
||||
public TextSearchFilter(ItemManager<? super T> itemManager0) {
|
||||
@@ -56,7 +58,7 @@ public class TextSearchFilter<T extends InventoryItem> extends ItemFilter<T> {
|
||||
@Override
|
||||
protected void buildWidget(Widget widget) {
|
||||
txtSearch = new FTextField();
|
||||
txtSearch.setFontSize(ItemFilter.DEFAULT_FONT_SIZE + 1);
|
||||
txtSearch.setFont(FONT);
|
||||
txtSearch.setGhostText("Search");
|
||||
widget.add(txtSearch);
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ public abstract class ToggleButtonsFilter<T extends InventoryItem> extends ItemF
|
||||
|
||||
private ToggleButton(FImage icon) {
|
||||
super(new FLabel.Builder()
|
||||
.icon(icon).fontSize(11).iconScaleFactor(0.9f)
|
||||
.icon(icon).font(ItemFilter.DEFAULT_FONT).iconScaleFactor(0.9f)
|
||||
.align(HAlignment.CENTER)
|
||||
.selectable(true).selected(true)
|
||||
.command(new FEventHandler() {
|
||||
|
||||
@@ -55,7 +55,7 @@ public abstract class ValueRangeFilter<T extends InventoryItem> extends ItemFilt
|
||||
lowerBound = addSpinner(widget, true);
|
||||
|
||||
String text = " <= " + this.getCaption() + " <= ";
|
||||
label = new FLabel.Builder().text(text).fontSize(12).build();
|
||||
label = new FLabel.Builder().text(text).font(ListLabelFilter.LABEL_FONT).build();
|
||||
widget.add(label);
|
||||
|
||||
upperBound = addSpinner(widget, false);
|
||||
|
||||
@@ -42,10 +42,11 @@ import com.badlogic.gdx.math.Vector2;
|
||||
public class ImageView<T extends InventoryItem> extends ItemView<T> {
|
||||
private static final float PADDING = Utils.scaleMin(5);
|
||||
private static final float PILE_SPACING_Y = 0.1f;
|
||||
private static final FSkinFont LABEL_FONT = FSkinFont.get(12);
|
||||
private static final FSkinColor GROUP_HEADER_FORE_COLOR = FSkinColor.get(Colors.CLR_TEXT);
|
||||
private static final FSkinColor OPTION_LABEL_COLOR = GROUP_HEADER_FORE_COLOR.alphaColor(0.7f);
|
||||
private static final FSkinColor GROUP_HEADER_LINE_COLOR = GROUP_HEADER_FORE_COLOR.alphaColor(0.5f);
|
||||
private static final FSkinFont GROUP_HEADER_FONT = FSkinFont.get(12);
|
||||
private static final FSkinFont GROUP_HEADER_FONT = LABEL_FONT;
|
||||
private static final float GROUP_HEADER_HEIGHT = Utils.scaleY(19);
|
||||
private static final float GROUP_HEADER_GLYPH_WIDTH = Utils.scaleX(6);
|
||||
private static final float GROUP_HEADER_LINE_THICKNESS = Utils.scaleY(1);
|
||||
@@ -137,9 +138,9 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
|
||||
}
|
||||
}
|
||||
private final ExpandCollapseButton btnExpandCollapseAll = new ExpandCollapseButton();
|
||||
private final FLabel lblGroupBy = new FLabel.Builder().text("Groups:").fontSize(12).textColor(OPTION_LABEL_COLOR).build();
|
||||
private final FLabel lblGroupBy = new FLabel.Builder().text("Groups:").font(LABEL_FONT).textColor(OPTION_LABEL_COLOR).build();
|
||||
private final FComboBox<Object> cbGroupByOptions = new FComboBox<Object>();
|
||||
private final FLabel lblPileBy = new FLabel.Builder().text("Piles:").fontSize(12).textColor(OPTION_LABEL_COLOR).build();
|
||||
private final FLabel lblPileBy = new FLabel.Builder().text("Piles:").font(LABEL_FONT).textColor(OPTION_LABEL_COLOR).build();
|
||||
private final FComboBox<Object> cbPileByOptions = new FComboBox<Object>();
|
||||
|
||||
public ImageView(ItemManager<T> itemManager0, ItemManagerModel<T> model0) {
|
||||
@@ -182,8 +183,8 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
|
||||
}
|
||||
});
|
||||
|
||||
cbGroupByOptions.setFontSize(12);
|
||||
cbPileByOptions.setFontSize(12);
|
||||
cbGroupByOptions.setFont(LABEL_FONT);
|
||||
cbPileByOptions.setFont(LABEL_FONT);
|
||||
getPnlOptions().add(btnExpandCollapseAll);
|
||||
getPnlOptions().add(lblGroupBy);
|
||||
getPnlOptions().add(cbGroupByOptions);
|
||||
@@ -398,7 +399,7 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
|
||||
protected float layoutOptionsPanel(float visibleWidth, float height) {
|
||||
float padding = ItemFilter.PADDING;
|
||||
float x = 0;
|
||||
float h = FTextField.getDefaultHeight(ItemFilter.DEFAULT_FONT_SIZE);
|
||||
float h = FTextField.getDefaultHeight(ItemFilter.DEFAULT_FONT);
|
||||
float y = (height - h) / 2;
|
||||
btnExpandCollapseAll.setBounds(x, y, h, h);
|
||||
x += h + padding;
|
||||
|
||||
@@ -91,7 +91,7 @@ public final class ItemListView<T extends InventoryItem> extends ItemView<T> {
|
||||
|
||||
if (config.getShowUniqueCardsOption()) {
|
||||
final FCheckBox chkBox = new FCheckBox("Unique Cards Only", itemManager.getWantUnique());
|
||||
chkBox.setFontSize(list.getFontSize());
|
||||
chkBox.setFont(list.getFont());
|
||||
chkBox.setCommand(new FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
@@ -117,7 +117,7 @@ public final class ItemListView<T extends InventoryItem> extends ItemView<T> {
|
||||
|
||||
final FCheckBox chkBox = new FCheckBox(StringUtils.isEmpty(col.getShortName()) ?
|
||||
col.getLongName() : col.getShortName(), col.isVisible());
|
||||
chkBox.setFontSize(list.getFontSize());
|
||||
chkBox.setFont(list.getFont());
|
||||
chkBox.setCommand(new FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
@@ -303,7 +303,7 @@ public final class ItemListView<T extends InventoryItem> extends ItemView<T> {
|
||||
renderer.drawValue(g, value, font, foreColor, pressed, x + 1, y, w - 2, h); //x + 1 and w - 2 to account for left and right borders
|
||||
}
|
||||
});
|
||||
setFontSize(14);
|
||||
setFont(FSkinFont.get(14));
|
||||
}
|
||||
|
||||
public Iterable<ItemColumn> getCells() {
|
||||
|
||||
@@ -7,6 +7,7 @@ import forge.Forge;
|
||||
import forge.Forge.Graphics;
|
||||
import forge.assets.FImage;
|
||||
import forge.assets.FSkinColor;
|
||||
import forge.assets.FSkinFont;
|
||||
import forge.assets.FSkinColor.Colors;
|
||||
import forge.assets.FSkinTexture;
|
||||
import forge.toolbox.FContainer;
|
||||
@@ -22,6 +23,7 @@ public abstract class FScreen extends FContainer {
|
||||
public static final FSkinColor HEADER_BACK_COLOR = HEADER_BTN_PRESSED_COLOR.stepColor(-80);
|
||||
|
||||
public static final float HEADER_HEIGHT = Math.round(Utils.AVG_FINGER_HEIGHT * 0.8f);
|
||||
private static final FSkinFont HEADER_FONT = FSkinFont.get(16);
|
||||
|
||||
private final FLabel btnBack, lblHeader;
|
||||
|
||||
@@ -38,7 +40,7 @@ public abstract class FScreen extends FContainer {
|
||||
btnBack = null;
|
||||
}
|
||||
if (headerCaption != null) {
|
||||
lblHeader = add(new FLabel.Builder().text(headerCaption).fontSize(16).align(HAlignment.CENTER).build());
|
||||
lblHeader = add(new FLabel.Builder().text(headerCaption).font(HEADER_FONT).align(HAlignment.CENTER).build());
|
||||
}
|
||||
else {
|
||||
lblHeader = null;
|
||||
|
||||
@@ -55,16 +55,17 @@ public class ConstructedScreen extends LaunchScreen {
|
||||
private static final ForgePreferences prefs = FModel.getPreferences();
|
||||
private static final float PADDING = Utils.scaleMin(5);
|
||||
private static final int MAX_PLAYERS = 8;
|
||||
private static final int VARIANTS_FONT_SIZE = 12;
|
||||
private static final FSkinFont VARIANTS_FONT = FSkinFont.get(12);
|
||||
private static final FSkinFont LABEL_FONT = FSkinFont.get(14);
|
||||
|
||||
// General variables
|
||||
private final FLabel lblPlayers = new FLabel.Builder().text("Players:").fontSize(VARIANTS_FONT_SIZE).build();
|
||||
private final FLabel lblPlayers = new FLabel.Builder().text("Players:").font(VARIANTS_FONT).build();
|
||||
private final FComboBox<Integer> cbPlayerCount;
|
||||
private List<Integer> teams = new ArrayList<Integer>(MAX_PLAYERS);
|
||||
private List<Integer> archenemyTeams = new ArrayList<Integer>(MAX_PLAYERS);
|
||||
|
||||
// Variants frame and variables
|
||||
private final FLabel lblVariants = new FLabel.Builder().text("Variants:").fontSize(VARIANTS_FONT_SIZE).build();
|
||||
private final FLabel lblVariants = new FLabel.Builder().text("Variants:").font(VARIANTS_FONT).build();
|
||||
private final FComboBox<Object> cbVariants;
|
||||
private final Set<GameType> appliedVariants = new TreeSet<GameType>();
|
||||
|
||||
@@ -102,7 +103,7 @@ public class ConstructedScreen extends LaunchScreen {
|
||||
|
||||
add(lblPlayers);
|
||||
cbPlayerCount = add(new FComboBox<Integer>());
|
||||
cbPlayerCount.setFontSize(VARIANTS_FONT_SIZE);
|
||||
cbPlayerCount.setFont(VARIANTS_FONT);
|
||||
for (int i = 2; i <= MAX_PLAYERS; i++) {
|
||||
cbPlayerCount.addItem(i);
|
||||
}
|
||||
@@ -120,7 +121,7 @@ public class ConstructedScreen extends LaunchScreen {
|
||||
|
||||
add(lblVariants);
|
||||
cbVariants = add(new FComboBox<Object>());
|
||||
cbVariants.setFontSize(VARIANTS_FONT_SIZE);
|
||||
cbVariants.setFont(VARIANTS_FONT);
|
||||
cbVariants.addItem("(None)");
|
||||
cbVariants.addItem(GameType.Vanguard);
|
||||
cbVariants.addItem(GameType.Commander);
|
||||
@@ -786,7 +787,7 @@ public class ConstructedScreen extends LaunchScreen {
|
||||
}
|
||||
|
||||
txtPlayerName.setText(name);
|
||||
txtPlayerName.setFontSize(14);
|
||||
txtPlayerName.setFont(LABEL_FONT);
|
||||
txtPlayerName.setChangedHandler(nameChangedHandler);
|
||||
}
|
||||
|
||||
@@ -890,7 +891,7 @@ public class ConstructedScreen extends LaunchScreen {
|
||||
|
||||
/** Adds a pre-styled FLabel component with the specified title. */
|
||||
private FLabel newLabel(String title) {
|
||||
return new FLabel.Builder().text(title).fontSize(14).align(HAlignment.RIGHT).build();
|
||||
return new FLabel.Builder().text(title).font(LABEL_FONT).align(HAlignment.RIGHT).build();
|
||||
}
|
||||
|
||||
private List<Integer> getUsedAvatars() {
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
*/
|
||||
package forge.screens.match.views;
|
||||
|
||||
import forge.assets.FSkinFont;
|
||||
import forge.assets.FSkinImage;
|
||||
import forge.card.CardZoom;
|
||||
import forge.game.GameEntity;
|
||||
@@ -232,7 +233,7 @@ public class VAssignDamage extends FDialog {
|
||||
}
|
||||
cardPanel = add(new AttDefCardPanel(fakeCard));
|
||||
}
|
||||
label = add(new FLabel.Builder().text("0").fontSize(18).align(HAlignment.CENTER).build());
|
||||
label = add(new FLabel.Builder().text("0").font(FSkinFont.get(18)).align(HAlignment.CENTER).build());
|
||||
btnSubtract = add(new FLabel.ButtonBuilder().icon(FSkinImage.MINUS).command(new FEventHandler() {
|
||||
@Override
|
||||
public void handleEvent(FEvent e) {
|
||||
|
||||
@@ -65,8 +65,8 @@ public class VPhaseIndicator extends FContainer {
|
||||
for (PhaseLabel lbl : phaseLabels.values()) {
|
||||
bounds = font.getBounds(lbl.caption);
|
||||
if (bounds.width > w) {
|
||||
if (font.getSize() > FSkinFont.MIN_FONT_SIZE) {
|
||||
font = FSkinFont.get(font.getSize() - 1);
|
||||
if (font.canShrink()) {
|
||||
font = font.shrink();
|
||||
return _getPreferredHeight(w);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -86,7 +86,7 @@ public class VStack extends FDropDown {
|
||||
float width = totalWidth - 2 * PADDING;
|
||||
|
||||
if (stack.isEmpty()) { //show label if stack empty
|
||||
FLabel label = add(new FLabel.Builder().text("[Empty]").fontSize(FONT.getSize()).align(HAlignment.CENTER).build());
|
||||
FLabel label = add(new FLabel.Builder().text("[Empty]").font(FONT).align(HAlignment.CENTER).build());
|
||||
|
||||
height = Math.round(label.getAutoSizeBounds().height) + 2 * PADDING;
|
||||
label.setBounds(x, y, width, height);
|
||||
|
||||
@@ -25,6 +25,7 @@ import forge.GuiBase;
|
||||
import forge.LobbyPlayer;
|
||||
import forge.assets.FSkinColor;
|
||||
import forge.assets.FSkinColor.Colors;
|
||||
import forge.assets.FSkinFont;
|
||||
import forge.assets.FSkinImage;
|
||||
import forge.deck.Deck;
|
||||
import forge.game.Game;
|
||||
@@ -102,9 +103,9 @@ public class GauntletWinLose extends ControlWinLose {
|
||||
if (gd.getCompleted() == lstDecks.size()) {
|
||||
lblGraphic = new FLabel.Builder()
|
||||
.icon(FSkinImage.QUEST_COIN).build();
|
||||
lblMessage1 = new FLabel.Builder().fontSize(24)
|
||||
lblMessage1 = new FLabel.Builder().font(FSkinFont.get(24))
|
||||
.text("CONGRATULATIONS!").build();
|
||||
lblMessage2 = new FLabel.Builder().fontSize(18)
|
||||
lblMessage2 = new FLabel.Builder().font(FSkinFont.get(18))
|
||||
.text("You made it through the gauntlet!").build();
|
||||
|
||||
this.getView().getBtnContinue().setVisible(false);
|
||||
@@ -132,9 +133,9 @@ public class GauntletWinLose extends ControlWinLose {
|
||||
else {
|
||||
lblGraphic = new FLabel.Builder()
|
||||
.icon(FSkinImage.QUEST_HEART).build();
|
||||
lblMessage1 = new FLabel.Builder().fontSize(24)
|
||||
lblMessage1 = new FLabel.Builder().font(FSkinFont.get(24))
|
||||
.text("DEFEATED!").build();
|
||||
lblMessage2 = new FLabel.Builder().fontSize(18)
|
||||
lblMessage2 = new FLabel.Builder().font(FSkinFont.get(18))
|
||||
.text("You have failed to pass the gauntlet.").build();
|
||||
|
||||
this.getView().getBtnContinue().setVisible(false);
|
||||
@@ -153,7 +154,7 @@ public class GauntletWinLose extends ControlWinLose {
|
||||
|
||||
// Custom panel display
|
||||
final FLabel lblTitle = new FLabel.Builder().text("Gauntlet Progress")
|
||||
.align(HAlignment.CENTER).fontSize(18).build();
|
||||
.align(HAlignment.CENTER).font(FSkinFont.get(18)).build();
|
||||
|
||||
final FPanel pnl = this.getView().getPnlCustom();
|
||||
pnl.setBackColor(FSkinColor.get(Colors.CLR_THEME2));
|
||||
@@ -161,7 +162,7 @@ public class GauntletWinLose extends ControlWinLose {
|
||||
|
||||
FLabel lblTemp;
|
||||
for (int i = 0; i < len; i++) {
|
||||
lblTemp = new FLabel.Builder().fontSize(14).build();
|
||||
lblTemp = new FLabel.Builder().font(FSkinFont.get(14)).build();
|
||||
|
||||
if (i <= num) {
|
||||
lblTemp.setTextColor(FSkinColor.getStandardColor(Color.GREEN).stepColor(20));
|
||||
|
||||
@@ -20,6 +20,7 @@ package forge.screens.match.winlose;
|
||||
import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
|
||||
|
||||
import forge.GuiBase;
|
||||
import forge.assets.FSkinFont;
|
||||
import forge.game.Game;
|
||||
import forge.limited.GauntletMini;
|
||||
import forge.model.FModel;
|
||||
@@ -109,9 +110,9 @@ public class LimitedWinLose extends ControlWinLose {
|
||||
* @param String - the title to be displayed
|
||||
*/
|
||||
private void showTournamentInfo(final String newTitle) {
|
||||
final FLabel lblTitle = new FLabel.Builder().text(newTitle).fontSize(18).align(HAlignment.CENTER).build();
|
||||
final FLabel lblTitle = new FLabel.Builder().text(newTitle).font(FSkinFont.get(18)).align(HAlignment.CENTER).build();
|
||||
final FLabel lblSubTitle = new FLabel.Builder().text("Round: " + gauntlet.getCurrentRound() + "/" + gauntlet.getRounds())
|
||||
.align(HAlignment.CENTER).fontSize(17).build();
|
||||
.align(HAlignment.CENTER).font(FSkinFont.get(17)).build();
|
||||
this.getView().getPnlCustom().add(lblTitle);
|
||||
this.getView().getPnlCustom().add(lblSubTitle);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
|
||||
import forge.Forge;
|
||||
import forge.assets.FSkinColor;
|
||||
import forge.assets.FSkinColor.Colors;
|
||||
import forge.assets.FSkinFont;
|
||||
import forge.game.Game;
|
||||
import forge.game.GameLog;
|
||||
import forge.game.GameLogEntry;
|
||||
@@ -40,8 +41,8 @@ public class ViewWinLose extends FOverlay {
|
||||
|
||||
game = game0;
|
||||
|
||||
lblTitle = add(new FLabel.Builder().fontSize(30).align(HAlignment.CENTER).build());
|
||||
lblStats = add(new FLabel.Builder().fontSize(26).align(HAlignment.CENTER).build());
|
||||
lblTitle = add(new FLabel.Builder().font(FSkinFont.get(30)).align(HAlignment.CENTER).build());
|
||||
lblStats = add(new FLabel.Builder().font(FSkinFont.get(26)).align(HAlignment.CENTER).build());
|
||||
pnlOutcomes = add(new OutcomesPanel());
|
||||
pnlCustom = new FPanel();
|
||||
|
||||
@@ -81,7 +82,7 @@ public class ViewWinLose extends FOverlay {
|
||||
btnQuit.setFontSize(22);
|
||||
btnContinue.setEnabled(!game0.getMatch().isMatchOver());
|
||||
|
||||
lblLog = add(new FLabel.Builder().text("Game Log").align(HAlignment.CENTER).fontSize(18).build());
|
||||
lblLog = add(new FLabel.Builder().text("Game Log").align(HAlignment.CENTER).font(FSkinFont.get(18)).build());
|
||||
txtLog = add(new FTextArea(game.getGameLog().getLogText(null).replace("[COMPUTER]", "[AI]")) {
|
||||
@Override
|
||||
public boolean tap(float x, float y, int count) {
|
||||
@@ -141,7 +142,7 @@ public class ViewWinLose extends FOverlay {
|
||||
private void showGameOutcomeSummary() {
|
||||
GameLog log = game.getGameLog();
|
||||
for (GameLogEntry o : log.getLogEntriesExact(GameLogEntryType.GAME_OUTCOME)) {
|
||||
pnlOutcomes.add(new FLabel.Builder().text(o.message).fontSize(14).build());
|
||||
pnlOutcomes.add(new FLabel.Builder().text(o.message).font(FSkinFont.get(14)).build());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -269,15 +269,15 @@ public class DualListBox<T> extends FDialog {
|
||||
}
|
||||
|
||||
private abstract class ItemRenderer {
|
||||
public abstract int getDefaultFontSize();
|
||||
public abstract FSkinFont getDefaultFont();
|
||||
public abstract float getItemHeight();
|
||||
public abstract boolean tap(T value, float x, float y, int count);
|
||||
public abstract void drawValue(Graphics g, T value, FSkinFont font, FSkinColor foreColor, boolean pressed, float x, float y, float w, float h);
|
||||
}
|
||||
private class DefaultItemRenderer extends ItemRenderer {
|
||||
@Override
|
||||
public int getDefaultFontSize() {
|
||||
return 12;
|
||||
public FSkinFont getDefaultFont() {
|
||||
return FSkinFont.get(12);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -300,8 +300,8 @@ public class DualListBox<T> extends FDialog {
|
||||
private final TextRenderer textRenderer = new TextRenderer(true);
|
||||
|
||||
@Override
|
||||
public int getDefaultFontSize() {
|
||||
return 12;
|
||||
public FSkinFont getDefaultFont() {
|
||||
return FSkinFont.get(12);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -332,8 +332,8 @@ public class DualListBox<T> extends FDialog {
|
||||
//special renderer for cards
|
||||
private class CardItemRenderer extends ItemRenderer {
|
||||
@Override
|
||||
public int getDefaultFontSize() {
|
||||
return 14;
|
||||
public FSkinFont getDefaultFont() {
|
||||
return FSkinFont.get(14);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -383,7 +383,7 @@ public class DualListBox<T> extends FDialog {
|
||||
renderer.drawValue(g, value, font, foreColor, pressed, x, y, w, h);
|
||||
}
|
||||
});
|
||||
setFontSize(renderer.getDefaultFontSize());
|
||||
setFont(renderer.getDefaultFont());
|
||||
}
|
||||
|
||||
//remove any selected indices outside item range
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
|
||||
|
||||
import forge.Forge.Graphics;
|
||||
import forge.assets.FSkinColor;
|
||||
import forge.assets.FSkinFont;
|
||||
import forge.assets.FSkinImage;
|
||||
import forge.assets.FSkinTexture;
|
||||
import forge.assets.FSkinColor.Colors;
|
||||
@@ -11,6 +12,7 @@ import forge.screens.FScreen;
|
||||
import forge.util.Utils;
|
||||
|
||||
public abstract class FDialog extends FOverlay {
|
||||
private static final FSkinFont TITLE_FONT = FSkinFont.get(12);
|
||||
private static final FSkinColor TITLE_BACK_COLOR = FSkinColor.get(Colors.CLR_THEME2);
|
||||
private static final FSkinColor BORDER_COLOR = FSkinColor.get(Colors.CLR_BORDERS);
|
||||
public static final float TITLE_HEIGHT = Math.round(Utils.AVG_FINGER_HEIGHT * 0.6f);
|
||||
@@ -95,7 +97,7 @@ public abstract class FDialog extends FOverlay {
|
||||
|
||||
private class Titlebar extends FLabel {
|
||||
private Titlebar(String title) {
|
||||
super(new FLabel.Builder().text(title).icon(FSkinImage.FAVICON).fontSize(12).align(HAlignment.LEFT));
|
||||
super(new FLabel.Builder().text(title).icon(FSkinImage.FAVICON).font(TITLE_FONT).align(HAlignment.LEFT));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -137,11 +137,8 @@ public class FGroupList<E> extends FScrollPane {
|
||||
public FSkinFont getFont() {
|
||||
return font;
|
||||
}
|
||||
public int getFontSize() {
|
||||
return font.getSize();
|
||||
}
|
||||
public void setFontSize(int fontSize0) {
|
||||
font = FSkinFont.get(fontSize0);
|
||||
public void setFont(FSkinFont font0) {
|
||||
font = font0;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -18,7 +18,7 @@ public class FLabel extends FDisplayObject implements IButton {
|
||||
public static class Builder {
|
||||
//========== Default values for FLabel are set here.
|
||||
private float bldIconScaleFactor = 0.8f;
|
||||
private int bldFontSize = 14;
|
||||
private FSkinFont bldFont = FSkinFont.get(14);
|
||||
private float bldAlphaComposite = 0.7f;
|
||||
private HAlignment bldAlignment = HAlignment.LEFT;
|
||||
private Vector2 bldInsets = new Vector2(Utils.scaleX(3), Utils.scaleY(3));
|
||||
@@ -50,7 +50,7 @@ public class FLabel extends FDisplayObject implements IButton {
|
||||
public Builder selected(final boolean b0) { this.bldSelected = b0; return this; }
|
||||
public Builder selected() { selected(true); return this; }
|
||||
public Builder command(final FEventHandler c0) { this.bldCommand = c0; return this; }
|
||||
public Builder fontSize(final int i0) { this.bldFontSize = i0; return this; }
|
||||
public Builder font(final FSkinFont f0) { this.bldFont = f0; return this; }
|
||||
public Builder alphaComposite(final float a0) { this.bldAlphaComposite = a0; return this; }
|
||||
public Builder enabled(final boolean b0) { this.bldEnabled = b0; return this; }
|
||||
public Builder iconScaleAuto(final boolean b0) { this.bldIconScaleAuto = b0; return this; }
|
||||
@@ -93,7 +93,7 @@ public class FLabel extends FDisplayObject implements IButton {
|
||||
// Call this using FLabel.Builder()...
|
||||
protected FLabel(final Builder b0) {
|
||||
iconScaleFactor = b0.bldIconScaleFactor;
|
||||
font = FSkinFont.get(b0.bldFontSize);
|
||||
font = b0.bldFont;
|
||||
alphaComposite = b0.bldAlphaComposite;
|
||||
alignment = b0.bldAlignment;
|
||||
insets = b0.bldInsets;
|
||||
@@ -131,8 +131,8 @@ public class FLabel extends FDisplayObject implements IButton {
|
||||
textColor = textColor0;
|
||||
}
|
||||
|
||||
public void setFontSize(int fontSize0) {
|
||||
font = FSkinFont.get(fontSize0);
|
||||
public void setFont(FSkinFont font0) {
|
||||
font = font0;
|
||||
}
|
||||
|
||||
public FImage getIcon() {
|
||||
@@ -282,10 +282,10 @@ public class FLabel extends FDisplayObject implements IButton {
|
||||
x += dx;
|
||||
break;
|
||||
}
|
||||
if (font.getSize() <= FSkinFont.MIN_FONT_SIZE) {
|
||||
if (!font.canShrink()) {
|
||||
break;
|
||||
}
|
||||
font = FSkinFont.get(font.getSize() - 1);
|
||||
font = font.shrink();
|
||||
}
|
||||
}
|
||||
y += (h - iconHeight) / 2;
|
||||
|
||||
@@ -108,11 +108,8 @@ public class FList<E> extends FScrollPane implements Iterable<E> {
|
||||
public FSkinFont getFont() {
|
||||
return font;
|
||||
}
|
||||
public int getFontSize() {
|
||||
return font.getSize();
|
||||
}
|
||||
public void setFontSize(int fontSize0) {
|
||||
font = FSkinFont.get(fontSize0);
|
||||
public void setFont(FSkinFont font0) {
|
||||
font = font0;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -14,7 +14,7 @@ import forge.toolbox.FEvent.FEventType;
|
||||
import forge.util.Utils;
|
||||
|
||||
public class FTextField extends FDisplayObject {
|
||||
private static final int DEFAULT_FONT_SIZE = 14;
|
||||
private static final FSkinFont DEFAULT_FONT = FSkinFont.get(14);
|
||||
private static final float BORDER_THICKNESS = Utils.scaleX(1);
|
||||
protected static final float PADDING = Utils.scaleX(5);
|
||||
protected static final FSkinColor FORE_COLOR = FSkinColor.get(Colors.CLR_TEXT);
|
||||
@@ -24,10 +24,7 @@ public class FTextField extends FDisplayObject {
|
||||
private FEventHandler changedHandler;
|
||||
|
||||
public static float getDefaultHeight() {
|
||||
return getDefaultHeight(DEFAULT_FONT_SIZE);
|
||||
}
|
||||
public static float getDefaultHeight(int fontSize) {
|
||||
return getDefaultHeight(FSkinFont.get(fontSize));
|
||||
return getDefaultHeight(DEFAULT_FONT);
|
||||
}
|
||||
public static float getDefaultHeight(FSkinFont font0) {
|
||||
return font0.getCapHeight() * 3;
|
||||
@@ -45,7 +42,7 @@ public class FTextField extends FDisplayObject {
|
||||
public FTextField(String text0) {
|
||||
text = text0;
|
||||
ghostText = "";
|
||||
setFontSize(DEFAULT_FONT_SIZE);
|
||||
setFont(DEFAULT_FONT);
|
||||
alignment = HAlignment.LEFT;
|
||||
}
|
||||
|
||||
@@ -103,11 +100,11 @@ public class FTextField extends FDisplayObject {
|
||||
alignment = alignment0;
|
||||
}
|
||||
|
||||
public int getFontSize() {
|
||||
return font.getSize();
|
||||
public FSkinFont getFont() {
|
||||
return font;
|
||||
}
|
||||
public void setFontSize(int fontSize0) {
|
||||
font = FSkinFont.get(fontSize0);
|
||||
public void setFont(FSkinFont font0) {
|
||||
font = font0;
|
||||
setHeight(getDefaultHeight(font));
|
||||
}
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@ public class ListChooser<T> extends FContainer {
|
||||
maxChoices = maxChoices0;
|
||||
if (list.size() > 25) { //only show search field if more than 25 items
|
||||
txtSearch = add(new FTextField());
|
||||
txtSearch.setFontSize(12);
|
||||
txtSearch.setFont(FSkinFont.get(12));
|
||||
txtSearch.setGhostText("Search");
|
||||
txtSearch.setChangedHandler(new FEventHandler() {
|
||||
@Override
|
||||
@@ -216,15 +216,15 @@ public class ListChooser<T> extends FContainer {
|
||||
}
|
||||
|
||||
private abstract class ItemRenderer {
|
||||
public abstract int getDefaultFontSize();
|
||||
public abstract FSkinFont getDefaultFont();
|
||||
public abstract float getItemHeight();
|
||||
public abstract boolean tap(T value, float x, float y, int count);
|
||||
public abstract void drawValue(Graphics g, T value, FSkinFont font, FSkinColor foreColor, boolean pressed, float x, float y, float w, float h);
|
||||
}
|
||||
private class DefaultItemRenderer extends ItemRenderer {
|
||||
@Override
|
||||
public int getDefaultFontSize() {
|
||||
return 12;
|
||||
public FSkinFont getDefaultFont() {
|
||||
return FSkinFont.get(12);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -245,8 +245,8 @@ public class ListChooser<T> extends FContainer {
|
||||
//special renderer for cards
|
||||
private class PaperCardItemRenderer extends ItemRenderer {
|
||||
@Override
|
||||
public int getDefaultFontSize() {
|
||||
return 14;
|
||||
public FSkinFont getDefaultFont() {
|
||||
return FSkinFont.get(14);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -267,8 +267,8 @@ public class ListChooser<T> extends FContainer {
|
||||
//special renderer for cards
|
||||
private class CardItemRenderer extends ItemRenderer {
|
||||
@Override
|
||||
public int getDefaultFontSize() {
|
||||
return 14;
|
||||
public FSkinFont getDefaultFont() {
|
||||
return FSkinFont.get(14);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -291,8 +291,8 @@ public class ListChooser<T> extends FContainer {
|
||||
private final TextRenderer textRenderer = new TextRenderer(true);
|
||||
|
||||
@Override
|
||||
public int getDefaultFontSize() {
|
||||
return 14;
|
||||
public FSkinFont getDefaultFont() {
|
||||
return FSkinFont.get(14);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -322,8 +322,8 @@ public class ListChooser<T> extends FContainer {
|
||||
}
|
||||
private class PlayerItemRenderer extends ItemRenderer {
|
||||
@Override
|
||||
public int getDefaultFontSize() {
|
||||
return 18;
|
||||
public FSkinFont getDefaultFont() {
|
||||
return FSkinFont.get(18);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -407,7 +407,7 @@ public class ListChooser<T> extends FContainer {
|
||||
renderer.drawValue(g, value, font, foreColor, pressed, x, y, w, h);
|
||||
}
|
||||
});
|
||||
setFontSize(renderer.getDefaultFontSize());
|
||||
setFont(renderer.getDefaultFont());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user