/* * Copyright (c) 2012. HappyDroids LLC, All rights reserved. */ package com.happydroids.droidtowers.gui.controls; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.scenes.scene2d.ui.Button; import com.badlogic.gdx.scenes.scene2d.ui.Table; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.google.common.collect.Lists; import com.happydroids.droidtowers.Colors; import com.happydroids.droidtowers.gui.FontManager; import com.happydroids.droidtowers.gui.HorizontalRule; import com.happydroids.droidtowers.gui.VerticalRule; import com.happydroids.droidtowers.gui.VibrateClickListener; import java.util.List; public class ButtonBar extends Table { private List<Button> buttons; private boolean showTopLine; private boolean showBottomLine; public ButtonBar() { super(); buttons = Lists.newArrayList(); showTopLine = true; } public ButtonBar addButton(String labelText, VibrateClickListener clickListener) { TextButton button = FontManager.Roboto18.makeTransparentButton(labelText, Color.CLEAR, Colors.ICS_BLUE); button.addListener(clickListener); buttons.add(button); updateLayout(); return this; } private void updateLayout() { clear(); int lineColSpan = buttons.size() * 2 - 1; if (showTopLine) { row().fillX(); add(new HorizontalRule(Color.GRAY, 1)).height(1).fillX().colspan(lineColSpan); } row().fill(); int numButtons = buttons.size(); for (int i = 0; i < numButtons; i++) { add(buttons.get(i)).expandX().uniform(); if (i < numButtons - 1) { add(new VerticalRule(Color.GRAY, 1)).width(1).fillY(); } } if (showBottomLine) { row().fillX(); add(new HorizontalRule(Color.GRAY, 1)).height(1).fillX().colspan(lineColSpan); } } public int getButtonCount() { return buttons.size(); } public void toggleTopLine(boolean b) { showTopLine = b; } public void toggleBottomLine(boolean b) { showBottomLine = b; } public void addButton(Button button) { buttons.add(button); updateLayout(); } }