Merge pull request #1197 from SiboVG/issue-1078
[fixes #1078] Add opacity slider to appearance config
This commit is contained in:
commit
a6ddbcd1c5
@ -826,6 +826,7 @@ AppearanceCfg.but.edit = Edit
|
|||||||
AppearanceCfg.but.savedefault = Save as default appearance
|
AppearanceCfg.but.savedefault = Save as default appearance
|
||||||
AppearanceCfg.lbl.Texture = Texture:
|
AppearanceCfg.lbl.Texture = Texture:
|
||||||
AppearanceCfg.lbl.shine = Shine:
|
AppearanceCfg.lbl.shine = Shine:
|
||||||
|
AppearanceCfg.lbl.opacity = Opacity:
|
||||||
AppearanceCfg.lbl.color.Color = Color:
|
AppearanceCfg.lbl.color.Color = Color:
|
||||||
AppearanceCfg.lbl.color.diffuse = Diffuse Color:
|
AppearanceCfg.lbl.color.diffuse = Diffuse Color:
|
||||||
AppearanceCfg.lbl.color.ambient = Ambient Color:
|
AppearanceCfg.lbl.color.ambient = Ambient Color:
|
||||||
|
@ -161,6 +161,34 @@ public class AppearanceBuilder extends AbstractChangeSource {
|
|||||||
this.shine = shine;
|
this.shine = shine;
|
||||||
fireChangeEvent();
|
fireChangeEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the opacity of the paint color, expressed in percentages, where 0 is fully transparent and 1 is fully opaque
|
||||||
|
* @return opacity value of the pain color, expressed in a percentage
|
||||||
|
*/
|
||||||
|
public double getOpacity() {
|
||||||
|
if (this.paint == null) {
|
||||||
|
return 100;
|
||||||
|
}
|
||||||
|
return (double) this.paint.getAlpha() / 255;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the opacity/alpha of the paint color.
|
||||||
|
*
|
||||||
|
* @param opacity new opacity value expressed in a percentage, where 0 is fully transparent and 1 is fully opaque
|
||||||
|
*/
|
||||||
|
public void setOpacity(double opacity) {
|
||||||
|
if (this.paint == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clamp opacity between 0 and 1
|
||||||
|
opacity = Math.max(0, Math.min(1, opacity));
|
||||||
|
|
||||||
|
this.paint.setAlpha((int) (opacity * 255));
|
||||||
|
fireChangeEvent();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gets the current offset axis U used
|
* gets the current offset axis U used
|
||||||
|
@ -581,15 +581,22 @@ public class AppearancePanel extends JPanel {
|
|||||||
mDefault.addEnableComponent(offsetV, false);
|
mDefault.addEnableComponent(offsetV, false);
|
||||||
panel.add(offsetV, "wrap, w 40");
|
panel.add(offsetV, "wrap, w 40");
|
||||||
|
|
||||||
// Repeat
|
// Opacity
|
||||||
panel.add(new JLabel(trans.get("AppearanceCfg.lbl.texture.repeat")));
|
panel.add(new JLabel(trans.get("AppearanceCfg.lbl.opacity")));
|
||||||
EdgeMode[] list = new EdgeMode[EdgeMode.values().length];
|
DoubleModel opacityModel = new DoubleModel(builder, "Opacity",
|
||||||
System.arraycopy(EdgeMode.values(), 0, list, 0,
|
UnitGroup.UNITS_RELATIVE);
|
||||||
EdgeMode.values().length);
|
JSpinner spinOpacity = new JSpinner(opacityModel.getSpinnerModel());
|
||||||
JComboBox<EdgeMode> combo = new JComboBox<EdgeMode>(new EnumModel<EdgeMode>(builder,
|
spinOpacity.setEditor(new SpinnerEditor(spinOpacity));
|
||||||
"EdgeMode", list));
|
JSlider slideOpacity = new JSlider(opacityModel.getSliderModel(0, 1));
|
||||||
mDefault.addEnableComponent(combo, false);
|
UnitSelector unitOpacity = new UnitSelector(opacityModel);
|
||||||
panel.add(combo);
|
|
||||||
|
mDefault.addEnableComponent(slideOpacity, false);
|
||||||
|
mDefault.addEnableComponent(spinOpacity, false);
|
||||||
|
mDefault.addEnableComponent(unitOpacity, false);
|
||||||
|
|
||||||
|
panel.add(spinOpacity, "split 3, w 50");
|
||||||
|
panel.add(unitOpacity);
|
||||||
|
panel.add(slideOpacity, "w 50");
|
||||||
|
|
||||||
// Rotation
|
// Rotation
|
||||||
panel.add(new JLabel(trans.get("AppearanceCfg.lbl.texture.rotation")));
|
panel.add(new JLabel(trans.get("AppearanceCfg.lbl.texture.rotation")));
|
||||||
@ -604,5 +611,15 @@ public class AppearancePanel extends JPanel {
|
|||||||
-Math.PI, Math.PI));
|
-Math.PI, Math.PI));
|
||||||
mDefault.addEnableComponent(bs, false);
|
mDefault.addEnableComponent(bs, false);
|
||||||
panel.add(bs, "w 50, wrap");
|
panel.add(bs, "w 50, wrap");
|
||||||
|
|
||||||
|
// Repeat
|
||||||
|
panel.add(new JLabel(trans.get("AppearanceCfg.lbl.texture.repeat")), "skip 2");
|
||||||
|
EdgeMode[] list = new EdgeMode[EdgeMode.values().length];
|
||||||
|
System.arraycopy(EdgeMode.values(), 0, list, 0,
|
||||||
|
EdgeMode.values().length);
|
||||||
|
JComboBox<EdgeMode> combo = new JComboBox<EdgeMode>(new EnumModel<EdgeMode>(builder,
|
||||||
|
"EdgeMode", list));
|
||||||
|
mDefault.addEnableComponent(combo, false);
|
||||||
|
panel.add(combo, "wrap");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user