/*
* ******************************************************************************
* * Copyright 2015 See AUTHORS file.
* *
* * Licensed under the Apache License, Version 2.0 (the "License");
* * you may not use this file except in compliance with the License.
* * You may obtain a copy of the License at
* *
* * http://www.apache.org/licenses/LICENSE-2.0
* *
* * Unless required by applicable law or agreed to in writing, software
* * distributed under the License is distributed on an "AS IS" BASIS,
* * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* * See the License for the specific language governing permissions and
* * limitations under the License.
* *****************************************************************************
*/
package com.uwsoft.editor.view.ui.properties.panels;
import com.badlogic.gdx.graphics.glutils.ShaderProgram;
import com.badlogic.gdx.utils.Align;
import com.badlogic.gdx.utils.Array;
import com.kotcrab.vis.ui.widget.VisLabel;
import com.kotcrab.vis.ui.widget.VisSelectBox;
import com.uwsoft.editor.Overlap2DFacade;
import com.uwsoft.editor.event.SelectBoxChangeListener;
import com.uwsoft.editor.view.ui.properties.UIRemovableProperties;
import java.util.HashMap;
/**
* Created by azakhary on 8/12/2015.
*/
public class UIShaderProperties extends UIRemovableProperties {
public static final String prefix = "com.uwsoft.editor.view.ui.properties.panels.UIShaderProperties";
public static final String CLOSE_CLICKED = prefix + ".CLOSE_CLICKED";
private VisSelectBox<String> shadersSelector;
public UIShaderProperties() {
super("Custom Shader Component");
}
public void initView(HashMap<String, ShaderProgram> shaders) {
mainTable.clear();
shadersSelector = new VisSelectBox<>();
Array<String> shaderNames = new Array<>();
shaderNames.add("Default");
shaders.keySet().forEach(shaderNames::add);
shadersSelector.setItems(shaderNames);
shadersSelector.addListener(new SelectBoxChangeListener(getUpdateEventName()));
mainTable.add(new VisLabel("Shader: ", Align.right)).padRight(5).width(75).right();
mainTable.add(shadersSelector).width(100).left();
}
@Override
public void onClose() {
Overlap2DFacade.getInstance().sendNotification(CLOSE_CLICKED);
}
public void setSelected(String currShaderName) {
shadersSelector.setSelected(currShaderName);
}
public String getShader() {
return shadersSelector.getSelected();
}
}