Apply translation to photo studio
This commit is contained in:
parent
ae1655e78c
commit
1d38fb93db
@ -1177,8 +1177,6 @@ main.menu.analyze.optimization = Rocket optimization
|
||||
main.menu.analyze.optimization.desc = General rocket design optimization
|
||||
main.menu.analyze.customExpressions = Custom expressions
|
||||
main.menu.analyze.customExpressions.desc = Define new flight data types by writing custom mathematical expressions
|
||||
main.menu.analyze.photo = 3D Rendering
|
||||
main.menu.analyze.photo.desc = Create realistic 3D images of the rocket
|
||||
|
||||
main.menu.help = Help
|
||||
main.menu.help.desc = Information about OpenRocket
|
||||
@ -1894,3 +1892,56 @@ SeparationSelectionDialog.opt.override = Override for the {0} flight configurati
|
||||
MotorConfigurationPanel.description = <b>Select the motors and motor ignition events of the selected flight configuration.</b><br> <em>Motor mounts:</em> Select which components function as motor mounts.<br> <em>Motor configurations:</em> Select the motor and ignition event for each motor mount.
|
||||
|
||||
MotorDescriptionSubstitutor.description = Motors in the configuration
|
||||
|
||||
|
||||
!Photo Panel
|
||||
PhotoFrame.title = Photo Studio
|
||||
PhotoFrame.desc = Create realistic 3D images of the rocket
|
||||
PhotoFrame.menu.file.save = Save Image...
|
||||
PhotoFrame.fileFilter.png = PNG Image
|
||||
PhotoFrame.menu.edit.copy = Copy Image
|
||||
PhotoFrame.menu.edit.copy.desc = Copy image to clipboard
|
||||
PhotoFrame.menu.edit.settings = Photo Settings
|
||||
PhotoFrame.menu.window = Window
|
||||
PhotoFrame.menu.window.size = Size
|
||||
PhotoFrame.menu.window.size.portrait = {0} Portrait
|
||||
|
||||
!Photo Settings
|
||||
PhotoSettingsConfig.title = Settings
|
||||
PhotoSettingsConfig.colorChooser.title = Color Chooser
|
||||
|
||||
PhotoSettingsConfig.tab.orientation = Orientation
|
||||
PhotoSettingsConfig.lbl.rocket = Rocket
|
||||
PhotoSettingsConfig.lbl.pitch = Pitch
|
||||
PhotoSettingsConfig.lbl.yaw = Yaw
|
||||
PhotoSettingsConfig.lbl.roll = Roll
|
||||
PhotoSettingsConfig.lbl.advance = Advance
|
||||
PhotoSettingsConfig.lbl.camera = Camera
|
||||
PhotoSettingsConfig.lbl.vAz = View Azimuth
|
||||
PhotoSettingsConfig.lbl.vAlt = View Altitude
|
||||
PhotoSettingsConfig.lbl.vDist = View Distance
|
||||
PhotoSettingsConfig.lbl.fov = FoV
|
||||
|
||||
PhotoSettingsConfig.tab.environment = Environment
|
||||
PhotoSettingsConfig.lbl.light = Light
|
||||
PhotoSettingsConfig.lbl.sun = Sun Light
|
||||
PhotoSettingsConfig.lbl.amb = Ambiance
|
||||
PhotoSettingsConfig.lbl.lightAz = Light Azimuth
|
||||
PhotoSettingsConfig.lbl.lightAlt = Light Altitude
|
||||
PhotoSettingsConfig.lbl.sky = Sky
|
||||
PhotoSettingsConfig.lbl.skyColor = Sky Color
|
||||
PhotoSettingsConfig.lbl.skyImage = Sky Image
|
||||
PhotoSettingsConfig.lbl.skyCredit = Image Credit:
|
||||
|
||||
PhotoSettingsConfig.tab.effects = Effects
|
||||
PhotoSettingsConfig.lbl.smokeFlame = Smoke & Flame
|
||||
PhotoSettingsConfig.lbl.smoke = Smoke
|
||||
PhotoSettingsConfig.lbl.smokeOpacity = Smoke Opacity
|
||||
PhotoSettingsConfig.lbl.flame = Flame
|
||||
PhotoSettingsConfig.lbl.flameAspect = Flame Aspect Ratio
|
||||
PhotoSettingsConfig.lbl.sparks = Sparks
|
||||
PhotoSettingsConfig.lbl.sparkConcentration = Spark Concentration
|
||||
PhotoSettingsConfig.lbl.sparkWeight = Spark Weight
|
||||
PhotoSettingsConfig.lbl.exhaustScale = Exhaust Scale
|
||||
PhotoSettingsConfig.lbl.effects = Effects
|
||||
PhotoSettingsConfig.lbl.speed = Speed
|
||||
|
@ -61,7 +61,7 @@ public class PhotoFrame extends JFrame {
|
||||
|
||||
public PhotoFrame(OpenRocketDocument document, Window parent) {
|
||||
this(false);
|
||||
setTitle("Photo - " + document.getRocket().getName());
|
||||
setTitle(trans.get("PhotoFrame.title") + " - " + document.getRocket().getName());
|
||||
photoPanel.setDoc(document);
|
||||
}
|
||||
|
||||
@ -77,7 +77,7 @@ public class PhotoFrame extends JFrame {
|
||||
GUIUtil.rememberWindowPosition(this);
|
||||
GUIUtil.setWindowIcons(this);
|
||||
|
||||
settings = new JDialog(this, "Settings") {
|
||||
settings = new JDialog(this, trans.get("PhotoSettingsConfig.title")) {
|
||||
{
|
||||
setContentPane(new PhotoSettingsConfig(photoPanel.getSettings()));
|
||||
pack();
|
||||
@ -142,11 +142,10 @@ public class PhotoFrame extends JFrame {
|
||||
menu.add(item);
|
||||
}
|
||||
|
||||
item = new JMenuItem("Save Image...", KeyEvent.VK_S); // TODO Trans
|
||||
item = new JMenuItem(trans.get("PhotoFrame.menu.file.save"), KeyEvent.VK_S);
|
||||
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, SHORTCUT_KEY));
|
||||
// // Open a rocket design
|
||||
item.getAccessibleContext().setAccessibleDescription("Save Image"); // TODO
|
||||
// Trans
|
||||
item.getAccessibleContext().setAccessibleDescription(trans.get("PhotoFrame.menu.file.save"));
|
||||
item.setIcon(Icons.FILE_OPEN);
|
||||
item.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
@ -160,8 +159,8 @@ public class PhotoFrame extends JFrame {
|
||||
public void run() {
|
||||
log.info("Got image {} to save...", image);
|
||||
|
||||
final FileFilter png = new SimpleFileFilter("PNG Image", ".png"); // TODO
|
||||
// Trans
|
||||
final FileFilter png = new SimpleFileFilter(trans.get("PhotoFrame.fileFilter.png"),
|
||||
".png");
|
||||
|
||||
final JFileChooser chooser = new JFileChooser();
|
||||
|
||||
@ -210,7 +209,7 @@ public class PhotoFrame extends JFrame {
|
||||
menu.getAccessibleContext().setAccessibleDescription(trans.get("BasicFrame.menu.Rocketedt"));
|
||||
menubar.add(menu);
|
||||
|
||||
Action action = new AbstractAction("Copy") {
|
||||
Action action = new AbstractAction(trans.get("PhotoFrame.menu.edit.copy")) {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
photoPanel.addImageCallback(new PhotoPanel.ImageCallback() {
|
||||
@ -253,10 +252,10 @@ public class PhotoFrame extends JFrame {
|
||||
item = new JMenuItem(action);
|
||||
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, SHORTCUT_KEY));
|
||||
item.setMnemonic(KeyEvent.VK_C);
|
||||
item.getAccessibleContext().setAccessibleDescription("Copy image to clipboard");
|
||||
item.getAccessibleContext().setAccessibleDescription(trans.get("PhotoFrame.menu.edit.copy.desc"));
|
||||
menu.add(item);
|
||||
|
||||
menu.add(new JMenuItem(new AbstractAction("Photo Settings") {
|
||||
menu.add(new JMenuItem(new AbstractAction(trans.get("PhotoSettingsConfig.title")) {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
settings.setVisible(true);
|
||||
@ -264,9 +263,9 @@ public class PhotoFrame extends JFrame {
|
||||
}));
|
||||
|
||||
// Window
|
||||
menu = new JMenu("Window");
|
||||
menu = new JMenu(trans.get("PhotoFrame.menu.window"));
|
||||
menubar.add(menu);
|
||||
JMenu sizeMenu = new JMenu("Size");
|
||||
JMenu sizeMenu = new JMenu(trans.get("PhotoFrame.menu.window.size"));
|
||||
menu.add(sizeMenu);
|
||||
|
||||
sizeMenu.add(new JMenuItem(new SizeAction(320, 240, "QVGA")));
|
||||
@ -275,9 +274,10 @@ public class PhotoFrame extends JFrame {
|
||||
|
||||
sizeMenu.addSeparator();
|
||||
|
||||
sizeMenu.add(new JMenuItem(new SizeAction(240, 320, "QVGA Portrait")));
|
||||
sizeMenu.add(new JMenuItem(new SizeAction(480, 640, "VGA Portrait")));
|
||||
sizeMenu.add(new JMenuItem(new SizeAction(768, 1024, "XGA Portrait")));
|
||||
final String s = trans.get("PhotoFrame.menu.window.size.portrait");
|
||||
sizeMenu.add(new JMenuItem(new SizeAction(240, 320, s.replace("{0}", "QVGA"))));
|
||||
sizeMenu.add(new JMenuItem(new SizeAction(480, 640, s.replace("{0}", "VGA"))));
|
||||
sizeMenu.add(new JMenuItem(new SizeAction(768, 1024, s.replace("{0}", "XGA"))));
|
||||
|
||||
sizeMenu.addSeparator();
|
||||
|
||||
|
@ -37,23 +37,26 @@ import net.sf.openrocket.gui.figure3d.photo.sky.builtin.Mountains;
|
||||
import net.sf.openrocket.gui.figure3d.photo.sky.builtin.Orbit;
|
||||
import net.sf.openrocket.gui.figure3d.photo.sky.builtin.Storm;
|
||||
import net.sf.openrocket.gui.util.ColorConversion;
|
||||
import net.sf.openrocket.l10n.Translator;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.unit.UnitGroup;
|
||||
import net.sf.openrocket.util.StateChangeListener;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class PhotoSettingsConfig extends JTabbedPane {
|
||||
private final Translator trans = Application.getTranslator();
|
||||
|
||||
private static final JColorChooser colorChooser = new JColorChooser();
|
||||
|
||||
|
||||
private class ColorActionListener implements ActionListener {
|
||||
private final String valueName;
|
||||
private final Object o;
|
||||
|
||||
|
||||
ColorActionListener(final Object o, final String valueName) {
|
||||
this.valueName = valueName;
|
||||
this.o = o;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent colorClickEvent) {
|
||||
try {
|
||||
@ -63,7 +66,7 @@ public class PhotoSettingsConfig extends JTabbedPane {
|
||||
Color awtColor = ColorConversion.toAwtColor(c);
|
||||
colorChooser.setColor(awtColor);
|
||||
JDialog d = JColorChooser.createDialog(PhotoSettingsConfig.this,
|
||||
"Color Chooser", true, colorChooser, new ActionListener() {
|
||||
trans.get("PhotoSettingsConfig.colorChooser.title"), true, colorChooser, new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent okEvent) {
|
||||
Color selected = colorChooser.getColor();
|
||||
@ -82,29 +85,29 @@ public class PhotoSettingsConfig extends JTabbedPane {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public PhotoSettingsConfig(final PhotoSettings p) {
|
||||
super();
|
||||
|
||||
|
||||
setPreferredSize(new Dimension(240, 320));
|
||||
|
||||
|
||||
final JButton sunLightColorButton = new JButton();
|
||||
sunLightColorButton.setMaximumSize(new Dimension(35, 25));
|
||||
|
||||
|
||||
final JButton skyColorButton = new JButton();
|
||||
skyColorButton.setMaximumSize(new Dimension(35, 25));
|
||||
|
||||
|
||||
final JButton smokeColorButton = new JButton();
|
||||
smokeColorButton.setMaximumSize(new Dimension(35, 25));
|
||||
|
||||
|
||||
final JButton flameColorButton = new JButton();
|
||||
flameColorButton.setMaximumSize(new Dimension(35, 25));
|
||||
|
||||
|
||||
p.addChangeListener(new StateChangeListener() {
|
||||
{
|
||||
stateChanged(null);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void stateChanged(EventObject e) {
|
||||
sunLightColorButton.setIcon(new ColorIcon(p.getSunlight()));
|
||||
@ -117,97 +120,88 @@ public class PhotoSettingsConfig extends JTabbedPane {
|
||||
skyColorButton.addActionListener(new ColorActionListener(p, "SkyColor"));
|
||||
smokeColorButton.addActionListener(new ColorActionListener(p, "SmokeColor"));
|
||||
flameColorButton.addActionListener(new ColorActionListener(p, "FlameColor"));
|
||||
|
||||
|
||||
|
||||
addTab("Orientation", new JPanel(new MigLayout("fill")) {
|
||||
|
||||
addTab(trans.get("PhotoSettingsConfig.tab.orientation"), new JPanel(new MigLayout("fill")) {
|
||||
{
|
||||
add(new StyledLabel("Rocket", Style.BOLD));
|
||||
add(new StyledLabel(trans.get("PhotoSettingsConfig.lbl.rocket"), Style.BOLD));
|
||||
add(new JSeparator(SwingConstants.HORIZONTAL), "span, wrap, growx");
|
||||
|
||||
add(new JLabel("Pitch"));
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.pitch")));
|
||||
DoubleModel pitchModel = new DoubleModel(p, "Pitch", UnitGroup.UNITS_ANGLE);
|
||||
add(new JSpinner(pitchModel.getSpinnerModel()), "w 40");
|
||||
add(new UnitSelector(pitchModel), "wrap");
|
||||
|
||||
add(new JLabel("Yaw"));
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.yaw")));
|
||||
DoubleModel yawModel = new DoubleModel(p, "Yaw", UnitGroup.UNITS_ANGLE);
|
||||
add(new JSpinner(yawModel.getSpinnerModel()), "w 40");
|
||||
add(new UnitSelector(yawModel), "wrap");
|
||||
|
||||
add(new JLabel("Roll"));
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.roll")));
|
||||
DoubleModel rollModel = new DoubleModel(p, "Roll", UnitGroup.UNITS_ANGLE);
|
||||
add(new JSpinner(rollModel.getSpinnerModel()), "w 40");
|
||||
add(new UnitSelector(rollModel), "wrap");
|
||||
|
||||
add(new JLabel("Advance"));
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.advance")));
|
||||
DoubleModel advanceModel = new DoubleModel(p, "Advance", UnitGroup.UNITS_LENGTH);
|
||||
add(new JSpinner(advanceModel.getSpinnerModel()), "w 40");
|
||||
add(new UnitSelector(advanceModel), "wrap");
|
||||
|
||||
add(new StyledLabel("Camera", Style.BOLD));
|
||||
|
||||
add(new StyledLabel(trans.get("PhotoSettingsConfig.lbl.camera"), Style.BOLD));
|
||||
add(new JSeparator(SwingConstants.HORIZONTAL), "span, wrap, growx");
|
||||
|
||||
add(new JLabel("View Azimuth"));
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.vAz")));
|
||||
DoubleModel viewAzModel = new DoubleModel(p, "ViewAz", UnitGroup.UNITS_ANGLE);
|
||||
add(new JSpinner(viewAzModel.getSpinnerModel()), "w 40");
|
||||
add(new UnitSelector(viewAzModel), "wrap");
|
||||
|
||||
add(new JLabel("View Altitude"));
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.vAlt")));
|
||||
DoubleModel viewAltModle = new DoubleModel(p, "ViewAlt", UnitGroup.UNITS_ANGLE);
|
||||
add(new JSpinner(viewAltModle.getSpinnerModel()), "w 40");
|
||||
add(new UnitSelector(viewAltModle), "wrap");
|
||||
|
||||
add(new JLabel("View Distance"));
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.vDist")));
|
||||
DoubleModel viewDistanceModel = new DoubleModel(p, "ViewDistance", UnitGroup.UNITS_LENGTH);
|
||||
add(new JSpinner(viewDistanceModel.getSpinnerModel()), "w 40");
|
||||
add(new UnitSelector(viewDistanceModel), "wrap");
|
||||
|
||||
add(new JLabel("FoV"));
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.fov")));
|
||||
DoubleModel fovModel = new DoubleModel(p, "Fov", UnitGroup.UNITS_ANGLE);
|
||||
add(new JSpinner(fovModel.getSpinnerModel()), "w 40");
|
||||
add(new UnitSelector(fovModel), "wrap");
|
||||
}
|
||||
});
|
||||
|
||||
addTab("Environment", new JPanel(new MigLayout("fill")) {
|
||||
|
||||
addTab(trans.get("PhotoSettingsConfig.tab.environment"), new JPanel(new MigLayout("fill")) {
|
||||
{
|
||||
add(new StyledLabel("Light", Style.BOLD));
|
||||
add(new StyledLabel(trans.get("PhotoSettingsConfig.lbl.light"), Style.BOLD));
|
||||
add(new JSeparator(SwingConstants.HORIZONTAL), "span, wrap, growx");
|
||||
|
||||
add(new JLabel("Sun Light"));
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.sun")));
|
||||
add(sunLightColorButton, "wrap");
|
||||
|
||||
add(new JLabel("Ambiance"));
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.amb")));
|
||||
DoubleModel ambianceModel = new DoubleModel(p, "Ambiance", 100, UnitGroup.UNITS_NONE, 0, 100);
|
||||
add(new JSpinner(ambianceModel.getSpinnerModel()), "wrap");
|
||||
|
||||
add(new JLabel("Light Azimuth"));
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.lightAz")));
|
||||
DoubleModel lightAzModel = new DoubleModel(p, "LightAz", UnitGroup.UNITS_ANGLE);
|
||||
add(new JSpinner(lightAzModel.getSpinnerModel()), "w 40");
|
||||
add(new UnitSelector(lightAzModel), "wrap");
|
||||
|
||||
add(new JLabel("Light Altitude"));
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.lightAlt")));
|
||||
DoubleModel lightAltModle = new DoubleModel(p, "LightAlt", UnitGroup.UNITS_ANGLE);
|
||||
add(new JSpinner(lightAltModle.getSpinnerModel()), "wrap");
|
||||
|
||||
add(new StyledLabel("Sky", Style.BOLD));
|
||||
|
||||
add(new StyledLabel(trans.get("PhotoSettingsConfig.lbl.sky"), Style.BOLD));
|
||||
add(new JSeparator(SwingConstants.HORIZONTAL), "span, wrap, growx");
|
||||
|
||||
add(new JLabel("Sky Color"));
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.skyColor")));
|
||||
add(skyColorButton, "wrap");
|
||||
|
||||
add(new JLabel("Sky Image"));
|
||||
|
||||
add(new JComboBox(new DefaultComboBoxModel(new Object[] {
|
||||
null,
|
||||
Mountains.instance,
|
||||
Meadow.instance,
|
||||
Storm.instance,
|
||||
Lake.instance,
|
||||
Orbit.instance,
|
||||
Miramar.instance
|
||||
}) {
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.skyImage")));
|
||||
|
||||
add(new JComboBox(new DefaultComboBoxModel(new Object[] { null, Mountains.instance, Meadow.instance,
|
||||
Storm.instance, Lake.instance, Orbit.instance, Miramar.instance }) {
|
||||
}) {
|
||||
{
|
||||
addActionListener(new ActionListener() {
|
||||
@ -223,14 +217,14 @@ public class PhotoSettingsConfig extends JTabbedPane {
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
setSelectedItem(p.getSky());
|
||||
}
|
||||
}, "wrap");
|
||||
|
||||
final JLabel creditLabel = new JLabel("Image Credit:");
|
||||
|
||||
final JLabel creditLabel = new JLabel(trans.get("PhotoSettingsConfig.lbl.skyCredit"));
|
||||
add(creditLabel, "wrap");
|
||||
|
||||
|
||||
final JTextArea credit = new JTextArea();
|
||||
credit.setEditable(false);
|
||||
credit.setCursor(null);
|
||||
@ -238,7 +232,7 @@ public class PhotoSettingsConfig extends JTabbedPane {
|
||||
credit.setFocusable(false);
|
||||
credit.setFont(creditLabel.getFont());
|
||||
add(credit, "span, gap left 10px");
|
||||
|
||||
|
||||
final StateChangeListener skyChange = new StateChangeListener() {
|
||||
@Override
|
||||
public void stateChanged(EventObject e) {
|
||||
@ -250,81 +244,74 @@ public class PhotoSettingsConfig extends JTabbedPane {
|
||||
}
|
||||
};
|
||||
p.addChangeListener(skyChange);
|
||||
|
||||
|
||||
skyChange.stateChanged(null);
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
addTab("Effects", new JPanel(new MigLayout("fill")) {
|
||||
|
||||
addTab(trans.get("PhotoSettingsConfig.tab.effects"), new JPanel(new MigLayout("fill")) {
|
||||
{
|
||||
add(new StyledLabel("Smoke & Flame", Style.BOLD));
|
||||
add(new StyledLabel(trans.get("PhotoSettingsConfig.lbl.smokeFlame"), Style.BOLD));
|
||||
add(new JSeparator(SwingConstants.HORIZONTAL), "span, wrap, growx");
|
||||
|
||||
add(new JLabel("Smoke"));
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.smoke")));
|
||||
BooleanModel smokeModel = new BooleanModel(p, "Smoke");
|
||||
add(new JCheckBox(smokeModel), "split 2, w 15");
|
||||
|
||||
|
||||
add(smokeColorButton, "wrap");
|
||||
smokeModel.addEnableComponent(smokeColorButton);
|
||||
|
||||
add(new JLabel("Smoke Opacity"));
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.smokeOpacity")));
|
||||
DoubleModel smokeAlphaModel = new DoubleModel(p, "SmokeAlpha", 100, UnitGroup.UNITS_NONE, 0, 100);
|
||||
JSpinner opacitySpinner = new JSpinner(smokeAlphaModel.getSpinnerModel());
|
||||
add(opacitySpinner, "wrap");
|
||||
smokeModel.addEnableComponent(opacitySpinner);
|
||||
|
||||
add(new JLabel("Flame"));
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.flame")));
|
||||
BooleanModel fireModel = new BooleanModel(p, "Flame");
|
||||
add(new JCheckBox(fireModel), "split 2, w 15");
|
||||
|
||||
|
||||
add(flameColorButton, "wrap");
|
||||
fireModel.addEnableComponent(flameColorButton);
|
||||
|
||||
add(new JLabel("Flame Aspect Ratio"));
|
||||
DoubleModel flameAspectModel = new DoubleModel(p, "FlameAspectRatio", 100, UnitGroup.UNITS_NONE, 25, 250);
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.flameAspect")));
|
||||
DoubleModel flameAspectModel = new DoubleModel(p, "FlameAspectRatio", 100, UnitGroup.UNITS_NONE, 25,
|
||||
250);
|
||||
JSpinner flameAspectSpinner = new JSpinner(flameAspectModel.getSpinnerModel());
|
||||
add(flameAspectSpinner, "wrap");
|
||||
fireModel.addEnableComponent(flameAspectSpinner);
|
||||
|
||||
add(new JLabel("Sparks"));
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.sparks")));
|
||||
BooleanModel sparksModel = new BooleanModel(p, "Sparks");
|
||||
JCheckBox sparksCheck = new JCheckBox(sparksModel);
|
||||
add(sparksCheck, "wrap");
|
||||
fireModel.addEnableComponent(sparksCheck);
|
||||
|
||||
add(new JLabel("Spark Concentration"));
|
||||
DoubleModel sparkConcentrationModel = new DoubleModel(p, "SparkConcentration", 100, UnitGroup.UNITS_NONE, 0, 100);
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.sparkConcentration")));
|
||||
DoubleModel sparkConcentrationModel = new DoubleModel(p, "SparkConcentration", 100,
|
||||
UnitGroup.UNITS_NONE, 0, 100);
|
||||
JSpinner sparkConcentrationSpinner = new JSpinner(sparkConcentrationModel.getSpinnerModel());
|
||||
add(sparkConcentrationSpinner, "wrap");
|
||||
sparksModel.addEnableComponent(sparkConcentrationSpinner);
|
||||
|
||||
add(new JLabel("Spark Weight"));
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.sparkWeight")));
|
||||
DoubleModel sparkWeightModel = new DoubleModel(p, "SparkWeight", 100, UnitGroup.UNITS_NONE, 0, 100);
|
||||
JSpinner sparkWeightSpinner = new JSpinner(sparkWeightModel.getSpinnerModel());
|
||||
add(sparkWeightSpinner, "wrap");
|
||||
sparksModel.addEnableComponent(sparkWeightSpinner);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
add(new JLabel("Exhaust Scale"));
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.exhaustScale")));
|
||||
DoubleModel exhaustScaleModel = new DoubleModel(p, "ExhaustScale", 100, UnitGroup.UNITS_NONE, 0, 1000);
|
||||
add(new JSpinner(exhaustScaleModel.getSpinnerModel()), "wrap");
|
||||
|
||||
add(new StyledLabel("Effects", Style.BOLD));
|
||||
|
||||
add(new StyledLabel(trans.get("PhotoSettingsConfig.lbl.effects"), Style.BOLD));
|
||||
add(new JSeparator(SwingConstants.HORIZONTAL), "span, wrap, growx");
|
||||
|
||||
add(new JLabel("Speed"));
|
||||
|
||||
add(new JLabel(trans.get("PhotoSettingsConfig.lbl.speed")));
|
||||
add(new JCheckBox(new BooleanModel(p, "MotionBlurred")), "wrap");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -686,8 +686,8 @@ public class BasicFrame extends JFrame {
|
||||
});
|
||||
menu.add(item);
|
||||
|
||||
item = new JMenuItem(trans.get("main.menu.analyze.photo"), KeyEvent.VK_P);
|
||||
item.getAccessibleContext().setAccessibleDescription(trans.get("main.menu.analyze.photo.desc"));
|
||||
item = new JMenuItem(trans.get("PhotoFrame.title"), KeyEvent.VK_P);
|
||||
item.getAccessibleContext().setAccessibleDescription(trans.get("PhotoFrame.desc"));
|
||||
item.addActionListener(new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user