Improve ItemManager layout

This commit is contained in:
drdev
2014-04-12 04:49:57 +00:00
parent d4a5aaa110
commit 5085b85331
8 changed files with 36 additions and 29 deletions

View File

@@ -1,7 +1,6 @@
package forge.deck;
import forge.Forge;
import forge.Forge.Graphics;
import forge.deck.Deck;
import forge.game.GameType;
import forge.game.player.RegisteredPlayer;
@@ -22,6 +21,8 @@ import forge.toolbox.FEvent.FEventHandler;
import org.apache.commons.lang3.StringUtils;
import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -81,6 +82,7 @@ public class FDeckChooser extends FScreen {
if (cmbDeckTypes == null) { //initialize components with delayed initialization the first time this is populated
cmbDeckTypes = new FComboBox<DeckType>(DeckType.values());
cmbDeckTypes.setAlignment(HAlignment.CENTER);
restoreSavedState();
cmbDeckTypes.setChangedHandler(new FEventHandler() {
@Override
@@ -98,11 +100,6 @@ public class FDeckChooser extends FScreen {
}
}
@Override
public void draw(Graphics g) {
super.draw(g);
}
@Override
protected void doLayout(float startY, float width, float height) {
float x = PADDING;

View File

@@ -78,8 +78,8 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
private static final FSkinImage VIEW_OPTIONS_ICON = FSkinImage.SETTINGS;
private final FLabel btnViewOptions = new FLabel.Builder()
.selectable(true)
.icon(VIEW_OPTIONS_ICON).iconScaleAuto(false)
.selectable(true).align(HAlignment.CENTER)
.icon(VIEW_OPTIONS_ICON).iconScaleFactor(0.9f)
.build();
private final List<ItemView<T>> views = new ArrayList<ItemView<T>>();
@@ -109,17 +109,6 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
views.add(listView);
views.add(imageView);
currentView = listView;
}
protected ImageView<T> createImageView(final ItemManagerModel<T> model0) {
return new ImageView<T>(this, model0);
}
/**
* Initialize item manager if needed
*/
public void initialize() {
if (initialized) { return; } //avoid initializing more than once
//initialize views
for (int i = 0; i < views.size(); i++) {
@@ -127,7 +116,7 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
}
//build display
add(mainSearchFilter.getWidget());
add(mainSearchFilter.getPanel());
add(btnFilters);
add(lblCaption);
add(lblRatio);
@@ -218,6 +207,10 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
}
}
protected ImageView<T> createImageView(final ItemManagerModel<T> model0) {
return new ImageView<T>(this, model0);
}
public ItemManagerConfig getConfig() {
return config;
}
@@ -275,16 +268,16 @@ public abstract class ItemManager<T extends InventoryItem> extends FContainer im
@Override
public void doLayout(float width, float height) {
LayoutHelper helper = new LayoutHelper(this, 3, 0);
float fieldHeight = ItemFilter.PANEL_HEIGHT;
LayoutHelper helper = new LayoutHelper(this, ItemFilter.PADDING, 1);
if (!hideFilters) {
for (ItemFilter<? extends T> filter : orderedFilters) {
helper.fillLine(filter.getPanel(), ItemFilter.PANEL_HEIGHT);
helper.newLine();
}
helper.fillLine(mainSearchFilter.getWidget(), ItemFilter.PANEL_HEIGHT);
helper.fillLine(mainSearchFilter.getPanel(), ItemFilter.PANEL_HEIGHT);
}
helper.newLine();
helper.newLine(ItemFilter.PADDING);
float fieldHeight = mainSearchFilter.getWidget().getHeight();
helper.include(btnFilters, 61, fieldHeight);
float captionWidth = lblCaption.getAutoSizeBounds().width;
float ratioWidth = lblRatio.getAutoSizeBounds().width;

View File

@@ -14,7 +14,7 @@ import forge.util.LayoutHelper;
public abstract class ItemFilter<T extends InventoryItem> {
private static final float PADDING = 3;
public static final float PADDING = 3;
public static final int DEFAULT_FONT_SIZE = 11;
public static final float PANEL_HEIGHT = FTextField.getDefaultHeight(DEFAULT_FONT_SIZE) + 2 * PADDING;
private static final FSkinColor FORE_COLOR = FSkinColor.get(Colors.CLR_TEXT);
@@ -104,7 +104,7 @@ public abstract class ItemFilter<T extends InventoryItem> {
}
public void drawOverlay(Graphics g) {
float y = getHeight();
float y = getHeight() + 1;
g.drawLine(1, FORE_COLOR, 0, y, getWidth(), y);
}
}

View File

@@ -56,6 +56,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.setGhostText("Search");
widget.add(txtSearch);
@@ -69,7 +70,7 @@ public class TextSearchFilter<T extends InventoryItem> extends ItemFilter<T> {
@Override
protected void doWidgetLayout(LayoutHelper helper) {
helper.fillLine(txtSearch, txtSearch.getHeight());
helper.fillLine(txtSearch, helper.getParentHeight());
}
@Override

View File

@@ -11,6 +11,8 @@ import forge.util.LayoutHelper;
import java.util.ArrayList;
import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
public abstract class ToggleButtonsFilter<T extends InventoryItem> extends ItemFilter<T> {
protected boolean lockFiltering;
@@ -73,6 +75,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)
.align(HAlignment.CENTER)
.selectable(true).selected(true)
.command(new FEventHandler() {
@Override

View File

@@ -22,6 +22,8 @@ import java.util.Collection;
import java.util.List;
import java.util.Map;
import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
public abstract class ItemView<T extends InventoryItem> {
private static final FSkinColor BORDER_COLOR = FSkinColor.get(Colors.CLR_TEXT);
@@ -37,8 +39,8 @@ public abstract class ItemView<T extends InventoryItem> {
protected ItemView(ItemManager<T> itemManager0, ItemManagerModel<T> model0) {
itemManager = itemManager0;
model = model0;
button = new FLabel.Builder().selectable(true)
.icon(getIcon()).iconScaleAuto(false).build();
button = new FLabel.Builder().selectable(true).align(HAlignment.CENTER)
.iconScaleFactor(0.9f).icon(getIcon()).build();
}
private class Scroller extends FScrollPane {

View File

@@ -3,6 +3,8 @@ package forge.toolbox;
import java.util.ArrayList;
import java.util.List;
import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
import forge.Forge;
import forge.Forge.Graphics;
import forge.menu.FDropDownMenu;
@@ -141,6 +143,9 @@ public class FComboBox<E> extends FTextField {
@Override
protected float getRightPadding() {
if (getAlignment() == HAlignment.CENTER) {
return super.getRightPadding();
}
return getDivotWidth() + 2 * PADDING;
}

View File

@@ -272,6 +272,12 @@ public class FLabel extends FDisplayObject implements IButton {
}
else {
//TODO: Calculate these for center/right alignment
if (alignment == HAlignment.CENTER) {
float dx = (w - iconWidth - font.getFont().getMultiLineBounds(text).width - insets.x) / 2;
if (dx > 0) {
x += dx;
}
}
y += (h - iconHeight) / 2;
}