package com.codefixia.ui;
import com.codefixia.drumcloud.DrumCloud;
import com.codefixia.utils.FontAdjuster;
public class ToggleButtonsBar {
String[] buttonTexts;
ToggleButton[] toggleButtons;
boolean showMenuButton=false;
boolean hasLabel=false;
float x,y,w,h;
MenuButton menuButton;
private boolean momentary=false;
private int activeColor=DrumCloud.X.greenColor;
private boolean enabled=true;
public ToggleButtonsBar(float x, float y, float w, float h) {
this.x=x;
this.y=y;
this.w=w;
this.h=h;
}
public void setMomentary(boolean momentary) {
this.momentary = momentary;
}
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
for (int i = 0; i < toggleButtons.length; i++) {
toggleButtons[i].setEnabled(enabled);
}
}
public int getActiveColor() {
return activeColor;
}
public void setActiveColor(int activeColor) {
this.activeColor = activeColor;
}
public boolean isShowMenuButton() {
return showMenuButton;
}
public void setShowMenuButton(boolean showMenuButton) {
this.showMenuButton = showMenuButton;
}
public boolean hasLabel() {
return hasLabel;
}
public void setHasLabel(boolean hasLabel) {
this.hasLabel = hasLabel;
}
public void setButtons(String[] buttonTexts){
this.buttonTexts=buttonTexts;
toggleButtons=new ToggleButton[buttonTexts.length];
float buttonWidth;
if(showMenuButton){
buttonWidth=w*0.85f/(float)buttonTexts.length;
menuButton=new MenuButton(x+w*0.85f, y, w*0.15f, h);
menuButton.setTriangleShape(false);
}
else
buttonWidth=w/(float)buttonTexts.length;
for (int i = 0; i < buttonTexts.length; i++) {
toggleButtons[i]=new ToggleButton(x+(buttonWidth*i),y,buttonWidth,h);
toggleButtons[i].setFillColor(DrumCloud.X.color(50));
toggleButtons[i].setActiveColor(activeColor);
toggleButtons[i].setText(buttonTexts[i]);
if(!momentary && (i==0 && !hasLabel)||(i==1 && hasLabel))
toggleButtons[i].setON(true);
if(hasLabel && i==0){
toggleButtons[i].setEnabled(false);
}
}
}
public void drawLabel(String text){
}
public void draw(){
for (int i = 0; i < buttonTexts.length; i++) {
toggleButtons[i].drawState();
}
if(showMenuButton && menuButton!=null){
menuButton.drawState();
}
}
public boolean isOver(int mouseX, int mouseY) {
boolean isOvered=false;
/*for (int i = 0; i < buttonTexts.length; i++) {
isOvered|=toggleButtons[i].isOver(mouseX, mouseY);
}*/
return isOvered;
}
public void stopClick() {
if(showMenuButton)
menuButton.stopClick();
for (int i = 0; i < buttonTexts.length; i++) {
toggleButtons[i].cancelClick();
if(momentary){
toggleButtons[i].setON(false);
}
}
}
public int isButtonClicked(int mouseX, int mouseY) {
int isClicked=-1;
for (int i = 0; i < buttonTexts.length; i++) {
if(!toggleButtons[i].isON() && toggleButtons[i].isClicked(mouseX, mouseY)){
isClicked=i;
}
}
if(isClicked!=-1){
for (int i = 0; i < buttonTexts.length; i++) {
if(i!=isClicked){
toggleButtons[i].setON(false);
}
}
}
return isClicked;
}
public boolean isMenuClicked(int mouseX, int mouseY) {
if(showMenuButton)
return menuButton.isClicked(mouseX, mouseY);
else
return false;
}
}