List of usage examples for com.badlogic.gdx.scenes.scene2d.ui Container background
Drawable background
To view the source code for com.badlogic.gdx.scenes.scene2d.ui Container background.
Click Source Link
From source file:com.ray3k.skincomposer.dialog.DialogColorPicker.java
License:Open Source License
public void populate() { content.clear();//from ww w . ja v a 2 s . c o m content.defaults().padLeft(10.0f); Image cursor = new Image(skin.getDrawable("color-picker")); cursor.setTouchable(Touchable.enabled); Image hueKnob = new Image(skin, "color-scale"); hueKnob.setTouchable(Touchable.enabled); Image hueKnob2 = new Image(skin, "color-scale-flipped"); hueKnob2.setTouchable(Touchable.enabled); Image alphaKnob = new Image(skin, "color-scale"); alphaKnob.setTouchable(Touchable.enabled); Image alphaKnob2 = new Image(skin, "color-scale-flipped"); alphaKnob2.setTouchable(Touchable.enabled); Container selectedColorCont = new Container(); selectedColorCont.setBackground(skin.getDrawable("white")); selectedColorCont.setColor(selectedColor); Vector3 v = rgbToHsb(selectedColor.r, selectedColor.g, selectedColor.b); Spinner greenSpinner, blueSpinner, alphaSpinner, hueSpinner, saturationSpinner, brightnessSpinner; hueSpinner = new Spinner(v.x * 359.0f, 1.0, true, Orientation.HORIZONTAL, spinnerStyle); hueSpinner.setMinimum(0.0); hueSpinner.setMaximum(359.0); hueSpinner.getTextField().addListener(main.getIbeamListener()); hueSpinner.getButtonMinus().addListener(main.getHandListener()); hueSpinner.getButtonPlus().addListener(main.getHandListener()); saturationSpinner = new Spinner(v.y * 100.0f, 1.0, true, Orientation.HORIZONTAL, spinnerStyle); saturationSpinner.setMinimum(0.0); saturationSpinner.setMaximum(100.0); saturationSpinner.getTextField().addListener(main.getIbeamListener()); saturationSpinner.getButtonMinus().addListener(main.getHandListener()); saturationSpinner.getButtonPlus().addListener(main.getHandListener()); brightnessSpinner = new Spinner(v.z * 100.0f, 1.0, true, Orientation.HORIZONTAL, spinnerStyle); brightnessSpinner.setMinimum(0.0); brightnessSpinner.setMaximum(100.0); brightnessSpinner.getTextField().addListener(main.getIbeamListener()); brightnessSpinner.getButtonMinus().addListener(main.getHandListener()); brightnessSpinner.getButtonPlus().addListener(main.getHandListener()); redSpinner = new Spinner(selectedColor.r * 255.0f, 1.0, true, Orientation.HORIZONTAL, spinnerStyle); redSpinner.setMinimum(0.0); redSpinner.setMaximum(255.0); redSpinner.getTextField().addListener(main.getIbeamListener()); redSpinner.getButtonMinus().addListener(main.getHandListener()); redSpinner.getButtonPlus().addListener(main.getHandListener()); greenSpinner = new Spinner(selectedColor.g * 255.0f, 1.0, true, Orientation.HORIZONTAL, spinnerStyle); greenSpinner.setMinimum(0.0); greenSpinner.setMaximum(255.0); greenSpinner.getTextField().addListener(main.getIbeamListener()); greenSpinner.getButtonMinus().addListener(main.getHandListener()); greenSpinner.getButtonPlus().addListener(main.getHandListener()); blueSpinner = new Spinner(selectedColor.b * 255.0f, 1.0, true, Orientation.HORIZONTAL, spinnerStyle); blueSpinner.setMinimum(0.0); blueSpinner.setMaximum(255.0); blueSpinner.getTextField().addListener(main.getIbeamListener()); blueSpinner.getButtonMinus().addListener(main.getHandListener()); blueSpinner.getButtonPlus().addListener(main.getHandListener()); alphaSpinner = new Spinner(selectedColor.a * 255.0f, 1.0, true, Orientation.HORIZONTAL, spinnerStyle); alphaSpinner.setMinimum(0.0); alphaSpinner.setMaximum(255.0); alphaSpinner.getTextField().addListener(main.getIbeamListener()); alphaSpinner.getButtonMinus().addListener(main.getHandListener()); alphaSpinner.getButtonPlus().addListener(main.getHandListener()); redSpinner.setTransversalNext(greenSpinner.getTextField()); greenSpinner.setTransversalNext(blueSpinner.getTextField()); blueSpinner.setTransversalNext(alphaSpinner.getTextField()); alphaSpinner.setTransversalNext(hueSpinner.getTextField()); hueSpinner.setTransversalNext(saturationSpinner.getTextField()); saturationSpinner.setTransversalNext(brightnessSpinner.getTextField()); brightnessSpinner.setTransversalNext(redSpinner.getTextField()); redSpinner.setTransversalPrevious(brightnessSpinner.getTextField()); greenSpinner.setTransversalPrevious(redSpinner.getTextField()); blueSpinner.setTransversalPrevious(greenSpinner.getTextField()); alphaSpinner.setTransversalPrevious(blueSpinner.getTextField()); hueSpinner.setTransversalPrevious(alphaSpinner.getTextField()); saturationSpinner.setTransversalPrevious(hueSpinner.getTextField()); brightnessSpinner.setTransversalPrevious(saturationSpinner.getTextField()); ChangeListener rgbListener = new ChangeListener() { @Override public void changed(ChangeListener.ChangeEvent event, Actor actor) { selectedColor.set((float) redSpinner.getValue() / 255.0f, (float) greenSpinner.getValue() / 255.0f, (float) blueSpinner.getValue() / 255.0f, (float) alphaSpinner.getValue() / 255.0f); Vector3 v = rgbToHsb(selectedColor.r, selectedColor.g, selectedColor.b); hueSpinner.setValue(v.x * 359.0f); saturationSpinner.setValue(v.y * 100.0f); brightnessSpinner.setValue(v.z * 100.0f); selectedColorCont.setColor(selectedColor); Color color = hsbToRgb((float) hueSpinner.getValue(), 1.0f, 1.0f); gradientS.setCol2(color); gradientS.setCol3(color); gradientAlpha.setCol3(color); gradientAlpha.setCol4(color); color = new Color(color); color.a = 0.0f; gradientAlpha.setCol1(color); gradientAlpha.setCol2(color); cursor.setX(v.y * SIZE - cursor.getWidth() / 2.0f); cursor.setY(v.z * SIZE - cursor.getHeight() / 2.0f); hueKnob.setY(v.x * SIZE - hueKnob.getHeight() / 2.0f); hueKnob2.setY(hueKnob.getY()); } }; redSpinner.addListener(rgbListener); greenSpinner.addListener(rgbListener); blueSpinner.addListener(rgbListener); ChangeListener hsbListener = new ChangeListener() { @Override public void changed(ChangeListener.ChangeEvent event, Actor actor) { Color color = hsbToRgb((float) hueSpinner.getValue(), (float) saturationSpinner.getValue() / 100.0f, (float) brightnessSpinner.getValue() / 100.0f); color.a = (float) alphaSpinner.getValue() / 255.0f; redSpinner.setValue(color.r * 255.0f); greenSpinner.setValue(color.g * 255.0f); blueSpinner.setValue(color.b * 255.0f); selectedColor.set(color); selectedColorCont.setColor(selectedColor); color = hsbToRgb((float) hueSpinner.getValue(), 1.0f, 1.0f); gradientS.setCol2(color); gradientS.setCol3(color); gradientAlpha.setCol3(color); gradientAlpha.setCol4(color); color = new Color(color); color.a = 0.0f; gradientAlpha.setCol1(color); gradientAlpha.setCol2(color); cursor.setX((float) saturationSpinner.getValue() / 100.0f * SIZE - cursor.getWidth() / 2.0f); cursor.setY((float) brightnessSpinner.getValue() / 100.0f * SIZE - cursor.getHeight() / 2.0f); hueKnob.setY((float) hueSpinner.getValue() / 359.0f * SIZE - hueKnob.getHeight() / 2.0f); hueKnob2.setY(hueKnob.getY()); } }; hueSpinner.addListener(hsbListener); saturationSpinner.addListener(hsbListener); brightnessSpinner.addListener(hsbListener); alphaSpinner.addListener(new ChangeListener() { @Override public void changed(ChangeListener.ChangeEvent event, Actor actor) { selectedColor.set((float) redSpinner.getValue() / 255.0f, (float) greenSpinner.getValue() / 255.0f, (float) blueSpinner.getValue() / 255.0f, (float) alphaSpinner.getValue() / 255.0f); selectedColorCont.setColor(selectedColor); alphaKnob.setY(selectedColor.a * SIZE - alphaKnob.getHeight() / 2.0f); alphaKnob2.setY(alphaKnob.getY()); } }); Table panel = new Table(skin); panel.setBackground("color-box"); Table t = new Table(skin); t.setClip(true); t.setBackground(gradientSB); t.setTouchable(Touchable.enabled); cursor.setPosition(v.y * SIZE - cursor.getWidth() / 2.0f, v.z * SIZE - cursor.getHeight() / 2.0f); t.addActor(cursor); DragListener dragListener = new DragListener() { @Override public void drag(InputEvent event, float x, float y, int pointer) { saturationSpinner.setValue(MathUtils.clamp(x / SIZE * 100.0f, 0, 100)); brightnessSpinner.setValue(MathUtils.clamp(y / SIZE * 100.0f, 0, 100)); saturationSpinner.fire(new ChangeListener.ChangeEvent()); } }; dragListener.setTapSquareSize(1.0f); t.addListener(dragListener); t.addListener(new InputListener() { @Override public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { saturationSpinner.setValue(MathUtils.clamp(x / SIZE * 100.0f, 0, 100)); brightnessSpinner.setValue(MathUtils.clamp(y / SIZE * 100.0f, 0, 100)); saturationSpinner.fire(new ChangeListener.ChangeEvent()); return false; } }); panel.add(t).size(SIZE, SIZE); content.add(panel); panel = new Table(skin); panel.setBackground("color-box"); t = new Table(skin); t.setTouchable(Touchable.enabled); t.setClip(true); for (GradientDrawable gradient : hueGradient) { Container container = new Container(); container.background(gradient); t.add(container).growX().height(50.0f); t.row(); } t.addActor(hueKnob); t.addActor(hueKnob2); hueKnob.setY(v.x * SIZE - hueKnob.getHeight() / 2.0f); hueKnob2.setX(30.0f - hueKnob2.getWidth()); hueKnob2.setY(v.x * SIZE - hueKnob2.getHeight() / 2.0f); dragListener = new DragListener() { @Override public void drag(InputEvent event, float x, float y, int pointer) { hueSpinner.setValue(MathUtils.clamp(y / SIZE * 359.0f, 0.0f, 359.0f)); hueSpinner.fire(new ChangeListener.ChangeEvent()); } }; dragListener.setTapSquareSize(1.0f); t.addListener(dragListener); t.addListener(new InputListener() { @Override public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { hueSpinner.setValue(MathUtils.clamp(y / SIZE * 359.0f, 0.0f, 359.0f)); hueSpinner.fire(new ChangeListener.ChangeEvent()); return false; } }); panel.add(t).minWidth(30.0f).height(SIZE); content.add(panel); panel = new Table(skin); panel.setBackground("color-box"); t = new Table(); t.setTouchable(Touchable.enabled); t.setBackground(alphaStack); t.setClip(true); t.addActor(alphaKnob); t.addActor(alphaKnob2); alphaKnob.setY(selectedColor.a * SIZE - alphaKnob.getHeight() / 2.0f); alphaKnob2.setX(30.0f - alphaKnob2.getWidth()); alphaKnob2.setY(selectedColor.a * SIZE - alphaKnob2.getHeight() / 2.0f); dragListener = new DragListener() { @Override public void drag(InputEvent event, float x, float y, int pointer) { alphaSpinner.setValue(MathUtils.clamp(y / SIZE * 255.0f, 0.0f, 255.0f)); alphaSpinner.fire(new ChangeListener.ChangeEvent()); } }; dragListener.setTapSquareSize(1.0f); t.addListener(dragListener); t.addListener(new InputListener() { @Override public boolean touchDown(InputEvent event, float x, float y, int pointer, int button) { alphaSpinner.setValue(MathUtils.clamp(y / SIZE * 255.0f, 0.0f, 255.0f)); alphaSpinner.fire(new ChangeListener.ChangeEvent()); return false; } }); panel.add(t).minWidth(30.0f).height(SIZE); content.add(panel); t = new Table(); t.defaults().pad(10.0f); Table table = new Table(skin); Label label = new Label("new", skin); label.setAlignment(Align.center); table.add(label).growX(); table.row(); Container bg = new Container(); bg.setBackground(checker); Stack stack = new Stack(bg, selectedColorCont); panel = new Table(skin); panel.setBackground("color-box"); panel.add(stack).grow(); table.add(panel).grow(); if (previousColor != null) { Container cont = new Container(); cont.setBackground(skin.getDrawable("white")); cont.setColor(previousColor); bg = new Container(); bg.setBackground(checker); stack = new Stack(bg, cont); panel.row(); panel.add(stack).grow(); table.row(); label = new Label("current", skin); label.setAlignment(Align.center); table.add(label).growX(); t.add(table).minWidth(80.0f).minHeight(150.0f); } else { t.add(table).minWidth(80.0f).minHeight(100.0f); } table = new Table(); TextButton textButton = new TextButton("OK", skin); textButton.addListener(main.getHandListener()); textButton.addListener(new ChangeListener() { @Override public void changed(ChangeListener.ChangeEvent event, Actor actor) { if (listener != null) { listener.handle(new ColorListener.ColorEvent(selectedColor)); } hide(); } }); table.add(textButton).growX(); table.row(); textButton = new TextButton("Cancel", skin); textButton.addListener(main.getHandListener()); textButton.addListener(new ChangeListener() { @Override public void changed(ChangeListener.ChangeEvent event, Actor actor) { if (listener != null) { listener.handle(new ColorListener.ColorEvent(null)); } hide(); } }); table.add(textButton).growX().padTop(10.0f); t.add(table); t.row(); table = new Table(); label = new Label("R", skin, "required"); table.add(label); table.add(redSpinner).padLeft(10.0f).minWidth(90.0f); t.add(table); table = new Table(); label = new Label("H", skin, "required"); table.add(label); table.add(hueSpinner).padLeft(10.0f).minWidth(90.0f); t.add(table); t.row(); table = new Table(); label = new Label("G", skin, "required"); table.add(label); table.add(greenSpinner).padLeft(10.0f).minWidth(90.0f); t.add(table); table = new Table(); label = new Label("S", skin, "required"); table.add(label); table.add(saturationSpinner).padLeft(10.0f).minWidth(90.0f); t.add(table); t.row(); table = new Table(); label = new Label("B", skin, "required"); table.add(label); table.add(blueSpinner).padLeft(10.0f).minWidth(90.0f); t.add(table); table = new Table(); label = new Label("B", skin, "required"); table.add(label); table.add(brightnessSpinner).padLeft(10.0f).minWidth(90.0f); t.add(table); t.row(); table = new Table(); label = new Label("A", skin, "required"); table.add(label); t.add(table); table.add(alphaSpinner).padLeft(10.0f).minWidth(90.0f); content.add(t).growY(); }