/* JWildfire - an image and animation processor written in Java Copyright (C) 1995-2016 Andreas Maschke This is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this software; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.jwildfire.create.tina.swing; import java.awt.BorderLayout; import java.awt.Component; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Font; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.KeyEvent; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JInternalFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSplitPane; import javax.swing.JTextArea; import javax.swing.JToggleButton; import javax.swing.WindowConstants; import javax.swing.border.EmptyBorder; import javax.swing.border.TitledBorder; import org.jwildfire.base.Prefs; import org.jwildfire.create.tina.randomflame.RandomFlameGeneratorList; import org.jwildfire.swing.JWildfire; public class InteractiveRendererInternalFrame extends JInternalFrame { private TinaController tinaController; // @jve:decl-index=0: private JPanel jContentPane = null; // @jve:decl-index=0:visual-constraint="10,10" private JPanel interactiveRenderPanel = null; public InteractiveRendererInternalFrame() { super(); initialize(); } /** * This method initializes this * * @return void */ private void initialize() { this.setSize(917, 600); this.setFont(Prefs.getPrefs().getFont("Dialog", Font.PLAIN, 10)); this.setLocation(new Point(JWildfire.DEFAULT_WINDOW_LEFT + 200, JWildfire.DEFAULT_WINDOW_TOP + 80)); this.setClosable(true); this.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); this.setIconifiable(true); this.setTitle("Interactive renderer"); this.setVisible(false); this.setResizable(true); this.setMaximizable(false); this.setContentPane(getJContentPane()); } /** * This method initializes jContentPane * * @return javax.swing.JPanel */ private JPanel getJContentPane() { if (jContentPane == null) { jContentPane = new JPanel(); jContentPane.setLayout(new BorderLayout()); jContentPane.setFont(Prefs.getPrefs().getFont("Dialog", Font.PLAIN, 10)); jContentPane.setSize(new Dimension(1097, 617)); jContentPane.add(getInteractiveRenderPanel(), BorderLayout.CENTER); } return jContentPane; } /** * This method initializes settingsPanel * * @return javax.swing.JPanel */ private JPanel getInteractiveRenderPanel() { if (interactiveRenderPanel == null) { interactiveRenderPanel = new JPanel(); interactiveRenderPanel.setLayout(new BorderLayout(0, 0)); interactiveRenderPanel.add(getInteractiveNorthPanel(), BorderLayout.SOUTH); interactiveRenderPanel.add(getInteractiveWestPanel(), BorderLayout.WEST); interactiveRenderPanel.add(getInteractiveEastPanel(), BorderLayout.EAST); interactiveRenderPanel.add(getInteractiveCenterPanel(), BorderLayout.CENTER); } return interactiveRenderPanel; } private JPanel interactiveNorthPanel; private JPanel interactiveWestPanel; private JPanel interactiveEastPanel; private JPanel interactiveCenterPanel; private JButton interactiveNextButton; private JButton interactiveLoadFlameFromClipboardButton; private JButton interactiveLoadFlameButton; private JButton interactiveFlameToClipboardButton; private JButton interactiveStopButton; private JButton interactiveSaveFlameButton; private JButton interactiveSaveImageButton; private JSplitPane interactiveCenterSplitPane; private JPanel interactiveCenterTopPanel; private JPanel interactiveCenterSouthPanel; private JScrollPane interactiveStatsScrollPane; private JTextArea interactiveStatsTextArea; private JComboBox interactiveRandomStyleCmb; private JToggleButton interactiveHalfSizeButton; private JComboBox interactiveResolutionProfileCmb; private JButton interactiveFlameToEditorButton; private JButton interactiveLoadFlameFromMainButton; private JLabel label_1; private JButton interactivePauseButton; private JButton interactiveResumeButton; private JPanel panel_27; private JPanel panel_28; private JPanel panel_29; private JPanel panel_36; private JPanel panel_30; private JPanel panel_31; private JPanel panel_32; private JPanel panel_33; private JPanel panel_35; private JPanel panel_17; private JPanel panel_18; private JPanel panel_110; private JToggleButton interactiveRendererShowStatsButton; private JToggleButton interactiveRendererShowPreviewButton; private JToggleButton interactiveFullSizeButton; private JToggleButton interactiveQuarterSizeButton; private JPanel panel; private JButton interactiveSaveZBufferButton; private JCheckBox interactiveAutoLoadImageCBx; private JPanel getInteractiveNorthPanel() { if (interactiveNorthPanel == null) { interactiveNorthPanel = new JPanel(); interactiveNorthPanel.setBorder(new EmptyBorder(5, 5, 0, 0)); interactiveNorthPanel.setPreferredSize(new Dimension(0, 86)); interactiveNorthPanel.setSize(new Dimension(0, 42)); interactiveNorthPanel.setLayout(new BoxLayout(interactiveNorthPanel, BoxLayout.X_AXIS)); interactiveNorthPanel.add(getPanel_27()); interactiveNorthPanel.add(getPanel_17()); interactiveNorthPanel.add(getPanel_28()); interactiveNorthPanel.add(getPanel_32()); interactiveNorthPanel.add(getPanel_33()); interactiveNorthPanel.add(getPanel_35()); for (String name : RandomFlameGeneratorList.getNameList()) { interactiveRandomStyleCmb.addItem(name); } } return interactiveNorthPanel; } private JPanel getInteractiveWestPanel() { if (interactiveWestPanel == null) { interactiveWestPanel = new JPanel(); interactiveWestPanel.setSize(new Dimension(8, 0)); interactiveWestPanel.setPreferredSize(new Dimension(8, 0)); interactiveWestPanel.setLayout(new BorderLayout(0, 0)); } return interactiveWestPanel; } private JPanel getInteractiveEastPanel() { if (interactiveEastPanel == null) { interactiveEastPanel = new JPanel(); interactiveEastPanel.setSize(new Dimension(8, 0)); interactiveEastPanel.setPreferredSize(new Dimension(8, 0)); interactiveEastPanel.setLayout(new FlowLayout(FlowLayout.LEADING, 8, 8)); } return interactiveEastPanel; } private JPanel getInteractiveCenterPanel() { if (interactiveCenterPanel == null) { interactiveCenterPanel = new JPanel(); interactiveCenterPanel.setLayout(new BorderLayout(0, 0)); interactiveCenterPanel.add(getInteractiveCenterSplitPane(), BorderLayout.CENTER); } return interactiveCenterPanel; } JButton getInteractiveNextButton() { if (interactiveNextButton == null) { interactiveNextButton = new JButton(); interactiveNextButton.setAlignmentX(Component.CENTER_ALIGNMENT); interactiveNextButton.setMaximumSize(new Dimension(32000, 32000)); interactiveNextButton.setToolTipText("Cancel render, generate new random fractal and start render"); interactiveNextButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tinaController.getInteractiveRendererCtrl().nextButton_clicked(); } }); interactiveNextButton.setText("Next"); interactiveNextButton.setPreferredSize(new Dimension(125, 48)); interactiveNextButton.setMnemonic(KeyEvent.VK_D); interactiveNextButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); } return interactiveNextButton; } JButton getInteractiveLoadFlameFromClipboardButton() { if (interactiveLoadFlameFromClipboardButton == null) { interactiveLoadFlameFromClipboardButton = new JButton(); interactiveLoadFlameFromClipboardButton.setMinimumSize(new Dimension(100, 24)); interactiveLoadFlameFromClipboardButton.setMaximumSize(new Dimension(32000, 24)); interactiveLoadFlameFromClipboardButton.setToolTipText("Load flame from clipboard and render"); interactiveLoadFlameFromClipboardButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tinaController.getInteractiveRendererCtrl().fromClipboardButton_clicked(); } }); interactiveLoadFlameFromClipboardButton.setText("From Clipboard"); interactiveLoadFlameFromClipboardButton.setPreferredSize(new Dimension(125, 24)); interactiveLoadFlameFromClipboardButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); } return interactiveLoadFlameFromClipboardButton; } JButton getInteractiveLoadFlameButton() { if (interactiveLoadFlameButton == null) { interactiveLoadFlameButton = new JButton(); interactiveLoadFlameButton.setMinimumSize(new Dimension(100, 24)); interactiveLoadFlameButton.setMaximumSize(new Dimension(32000, 24)); interactiveLoadFlameButton.setToolTipText("Load flame from file and render"); interactiveLoadFlameButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tinaController.getInteractiveRendererCtrl().loadFlameButton_clicked(); } }); interactiveLoadFlameButton.setText("Load Flame"); interactiveLoadFlameButton.setPreferredSize(new Dimension(125, 24)); interactiveLoadFlameButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); } return interactiveLoadFlameButton; } JButton getInteractiveFlameToClipboardButton() { if (interactiveFlameToClipboardButton == null) { interactiveFlameToClipboardButton = new JButton(); interactiveFlameToClipboardButton.setMinimumSize(new Dimension(100, 24)); interactiveFlameToClipboardButton.setMaximumSize(new Dimension(32000, 24)); interactiveFlameToClipboardButton.setToolTipText("Copy the current fractal into the clipboard"); interactiveFlameToClipboardButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tinaController.getInteractiveRendererCtrl().toClipboardButton_clicked(); } }); interactiveFlameToClipboardButton.setText("To Clipboard"); interactiveFlameToClipboardButton.setPreferredSize(new Dimension(125, 24)); interactiveFlameToClipboardButton.setMnemonic(KeyEvent.VK_D); interactiveFlameToClipboardButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); } return interactiveFlameToClipboardButton; } JButton getInteractiveStopButton() { if (interactiveStopButton == null) { interactiveStopButton = new JButton(); interactiveStopButton.setMinimumSize(new Dimension(80, 24)); interactiveStopButton.setMaximumSize(new Dimension(150, 24)); interactiveStopButton.setToolTipText("Stop the render and free associated ressources"); interactiveStopButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tinaController.getInteractiveRendererCtrl().stopButton_clicked(); } }); interactiveStopButton.setText("Stop"); interactiveStopButton.setPreferredSize(new Dimension(125, 24)); interactiveStopButton.setMnemonic(KeyEvent.VK_D); interactiveStopButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); } return interactiveStopButton; } JButton getInteractiveSaveFlameButton() { if (interactiveSaveFlameButton == null) { interactiveSaveFlameButton = new JButton(); interactiveSaveFlameButton.setMinimumSize(new Dimension(100, 24)); interactiveSaveFlameButton.setMaximumSize(new Dimension(32000, 24)); interactiveSaveFlameButton.setToolTipText("Save the current fractal"); interactiveSaveFlameButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tinaController.getInteractiveRendererCtrl().saveFlameButton_clicked(); } }); interactiveSaveFlameButton.setText("Save Flame"); interactiveSaveFlameButton.setPreferredSize(new Dimension(125, 24)); interactiveSaveFlameButton.setMnemonic(KeyEvent.VK_D); interactiveSaveFlameButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); } return interactiveSaveFlameButton; } JButton getInteractiveSaveImageButton() { if (interactiveSaveImageButton == null) { interactiveSaveImageButton = new JButton(); interactiveSaveImageButton.setMinimumSize(new Dimension(100, 24)); interactiveSaveImageButton.setMaximumSize(new Dimension(160, 24)); interactiveSaveImageButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tinaController.getInteractiveRendererCtrl().saveImageButton_clicked(); } }); interactiveSaveImageButton.setText("Save image"); interactiveSaveImageButton.setPreferredSize(new Dimension(125, 24)); interactiveSaveImageButton.setMnemonic(KeyEvent.VK_I); interactiveSaveImageButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); } return interactiveSaveImageButton; } private JSplitPane getInteractiveCenterSplitPane() { if (interactiveCenterSplitPane == null) { interactiveCenterSplitPane = new JSplitPane(); interactiveCenterSplitPane.setDividerSize(6); interactiveCenterSplitPane.setLeftComponent(getInteractiveCenterSouthPanel()); interactiveCenterSplitPane.setRightComponent(getInteractiveCenterTopPanel()); interactiveCenterSplitPane.setDividerLocation(200); } return interactiveCenterSplitPane; } JPanel getInteractiveCenterTopPanel() { if (interactiveCenterTopPanel == null) { interactiveCenterTopPanel = new JPanel(); interactiveCenterTopPanel.setBorder(new TitledBorder(null, "Progressive preview", TitledBorder.LEADING, TitledBorder.TOP, null, null)); interactiveCenterTopPanel.setLayout(new BorderLayout(0, 0)); } return interactiveCenterTopPanel; } private JPanel getInteractiveCenterSouthPanel() { if (interactiveCenterSouthPanel == null) { interactiveCenterSouthPanel = new JPanel(); interactiveCenterSouthPanel.setLayout(new BorderLayout(0, 0)); interactiveCenterSouthPanel.add(getInteractiveStatsScrollPane(), BorderLayout.CENTER); } return interactiveCenterSouthPanel; } private JScrollPane getInteractiveStatsScrollPane() { if (interactiveStatsScrollPane == null) { interactiveStatsScrollPane = new JScrollPane(); interactiveStatsScrollPane.setViewportView(getInteractiveStatsTextArea()); interactiveStatsScrollPane.setColumnHeaderView(getPanel_110()); } return interactiveStatsScrollPane; } JTextArea getInteractiveStatsTextArea() { if (interactiveStatsTextArea == null) { interactiveStatsTextArea = new JTextArea(); interactiveStatsTextArea.setEditable(false); } return interactiveStatsTextArea; } public JComboBox getInteractiveRandomStyleCmb() { return interactiveRandomStyleCmb; } public JToggleButton getInteractiveHalveSizeButton() { return interactiveHalfSizeButton; } JComboBox getInteractiveResolutionProfileCmb() { if (interactiveResolutionProfileCmb == null) { interactiveResolutionProfileCmb = new JComboBox(); interactiveResolutionProfileCmb.setMaximumSize(new Dimension(32767, 24)); interactiveResolutionProfileCmb.setMinimumSize(new Dimension(100, 24)); interactiveResolutionProfileCmb.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if (tinaController != null && tinaController.getInteractiveRendererCtrl() != null) { tinaController.getInteractiveRendererCtrl().resolutionProfile_changed(); } } }); interactiveResolutionProfileCmb.setPreferredSize(new Dimension(125, 24)); interactiveResolutionProfileCmb.setMaximumRowCount(32); interactiveResolutionProfileCmb.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); } return interactiveResolutionProfileCmb; } public JButton getInteractiveFlameToEditorButton() { return interactiveFlameToEditorButton; } public JButton getInteractiveLoadFlameFromMainButton() { return interactiveLoadFlameFromMainButton; } private JLabel getLabel_1() { if (label_1 == null) { label_1 = new JLabel(); label_1.setMinimumSize(new Dimension(80, 22)); label_1.setText("Resolution"); label_1.setPreferredSize(new Dimension(62, 22)); label_1.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); } return label_1; } public JButton getInteractivePauseButton() { return interactivePauseButton; } public JButton getInteractiveResumeButton() { return interactiveResumeButton; } private JPanel getPanel_27() { if (panel_27 == null) { panel_27 = new JPanel(); panel_27.setBorder(new EmptyBorder(0, 6, 0, 6)); panel_27.setMinimumSize(new Dimension(110, 10)); panel_27.setMaximumSize(new Dimension(150, 32767)); panel_27.setLayout(new BoxLayout(panel_27, BoxLayout.Y_AXIS)); interactiveLoadFlameFromMainButton = new JButton(); panel_27.add(interactiveLoadFlameFromMainButton); interactiveLoadFlameFromMainButton.setMaximumSize(new Dimension(32000, 24)); interactiveLoadFlameFromMainButton.setMinimumSize(new Dimension(100, 24)); interactiveLoadFlameFromMainButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tinaController.getInteractiveRendererCtrl().fromEditorButton_clicked(); } }); interactiveLoadFlameFromMainButton.setToolTipText("Load flame from Editor and render"); interactiveLoadFlameFromMainButton.setText("From Editor"); interactiveLoadFlameFromMainButton.setPreferredSize(new Dimension(125, 24)); interactiveLoadFlameFromMainButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); panel_27.add(getInteractiveLoadFlameFromClipboardButton()); panel_27.add(getInteractiveLoadFlameButton()); } return panel_27; } private JPanel getPanel_28() { if (panel_28 == null) { panel_28 = new JPanel(); panel_28.setBorder(new EmptyBorder(0, 6, 0, 6)); panel_28.setMaximumSize(new Dimension(250, 32767)); panel_28.setMinimumSize(new Dimension(200, 10)); panel_28.setLayout(new BoxLayout(panel_28, BoxLayout.Y_AXIS)); panel_28.add(getPanel_36()); panel_28.add(getPanel_29()); panel_28.add(getPanel_30()); } return panel_28; } private JPanel getPanel_29() { if (panel_29 == null) { panel_29 = new JPanel(); panel_29.setLayout(new BoxLayout(panel_29, BoxLayout.X_AXIS)); panel_29.add(getLabel_1()); panel_29.add(getInteractiveResolutionProfileCmb()); } return panel_29; } private JPanel getPanel_36() { if (panel_36 == null) { panel_36 = new JPanel(); panel_36.setLayout(new BoxLayout(panel_36, BoxLayout.X_AXIS)); interactiveHalfSizeButton = new JToggleButton(); panel_36.add(interactiveHalfSizeButton); interactiveHalfSizeButton.setMinimumSize(new Dimension(48, 24)); interactiveHalfSizeButton.setMaximumSize(new Dimension(32000, 24)); interactiveHalfSizeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tinaController.getInteractiveRendererCtrl().halveRenderSizeButton_clicked(); } }); interactiveHalfSizeButton.setToolTipText("Switch to half render resolution"); interactiveHalfSizeButton.setText("1:2"); interactiveHalfSizeButton.setPreferredSize(new Dimension(48, 24)); interactiveHalfSizeButton.setMnemonic(KeyEvent.VK_M); interactiveHalfSizeButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); panel_36.add(getInteractiveQuarterSizeButton()); panel_36.add(getInteractiveFullSizeButton()); } return panel_36; } private JPanel getPanel_30() { if (panel_30 == null) { panel_30 = new JPanel(); panel_30.setLayout(new BoxLayout(panel_30, BoxLayout.X_AXIS)); } return panel_30; } private JPanel getPanel_31() { if (panel_31 == null) { panel_31 = new JPanel(); panel_31.setLayout(new BoxLayout(panel_31, BoxLayout.X_AXIS)); JLabel label = new JLabel(); panel_31.add(label); label.setText("Random generator"); label.setPreferredSize(new Dimension(94, 22)); label.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); interactiveRandomStyleCmb = new JComboBox(); panel_31.add(interactiveRandomStyleCmb); interactiveRandomStyleCmb.setMinimumSize(new Dimension(100, 24)); interactiveRandomStyleCmb.setMaximumSize(new Dimension(32767, 24)); interactiveRandomStyleCmb.setPreferredSize(new Dimension(125, 24)); interactiveRandomStyleCmb.setMaximumRowCount(32); interactiveRandomStyleCmb.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); interactiveRandomStyleCmb.setMaximumRowCount(32); interactiveRandomStyleCmb.removeAllItems(); interactiveRandomStyleCmb.setSelectedItem(RandomFlameGeneratorList.DEFAULT_GENERATOR_NAME); } return panel_31; } private JPanel getPanel_32() { if (panel_32 == null) { panel_32 = new JPanel(); panel_32.setBorder(new EmptyBorder(0, 11, 9, 11)); panel_32.setMinimumSize(new Dimension(200, 10)); panel_32.setMaximumSize(new Dimension(250, 32767)); panel_32.setLayout(new BoxLayout(panel_32, BoxLayout.Y_AXIS)); panel_32.add(getPanel_31()); panel_32.add(getInteractiveNextButton()); } return panel_32; } private JPanel getPanel_33() { if (panel_33 == null) { panel_33 = new JPanel(); panel_33.setAlignmentX(Component.LEFT_ALIGNMENT); panel_33.setBorder(new EmptyBorder(0, 3, 0, 3)); panel_33.setMaximumSize(new Dimension(150, 32767)); panel_33.setLayout(new BoxLayout(panel_33, BoxLayout.Y_AXIS)); interactivePauseButton = new JButton(); panel_33.add(interactivePauseButton); interactivePauseButton.setMinimumSize(new Dimension(112, 24)); interactivePauseButton.setMaximumSize(new Dimension(160, 24)); interactivePauseButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tinaController.getInteractiveRendererCtrl().pauseBtn_clicked(); } }); interactivePauseButton.setToolTipText("Save the current state for later resuming"); interactivePauseButton.setText("Save render state"); interactivePauseButton.setPreferredSize(new Dimension(160, 24)); interactivePauseButton.setMnemonic(KeyEvent.VK_T); interactivePauseButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); panel_33.add(getPanel()); panel_33.add(getInteractiveAutoLoadImageCBx()); } return panel_33; } private JPanel getPanel_35() { if (panel_35 == null) { panel_35 = new JPanel(); panel_35.setBorder(new EmptyBorder(0, 3, 0, 16)); panel_35.setMaximumSize(new Dimension(150, 32767)); panel_35.setLayout(new BoxLayout(panel_35, BoxLayout.Y_AXIS)); interactiveFlameToEditorButton = new JButton(); panel_35.add(interactiveFlameToEditorButton); interactiveFlameToEditorButton.setMinimumSize(new Dimension(100, 24)); interactiveFlameToEditorButton.setMaximumSize(new Dimension(32000, 24)); interactiveFlameToEditorButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tinaController.getInteractiveRendererCtrl().toEditorButton_clicked(); } }); interactiveFlameToEditorButton.setToolTipText("Copy the current fractal into the Editor"); interactiveFlameToEditorButton.setText("To Editor"); interactiveFlameToEditorButton.setPreferredSize(new Dimension(125, 24)); interactiveFlameToEditorButton.setMnemonic(KeyEvent.VK_D); interactiveFlameToEditorButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); panel_35.add(getInteractiveFlameToClipboardButton()); panel_35.add(getInteractiveSaveFlameButton()); } return panel_35; } private JPanel getPanel_17() { if (panel_17 == null) { panel_17 = new JPanel(); panel_17.setMinimumSize(new Dimension(110, 10)); panel_17.setMaximumSize(new Dimension(150, 32767)); panel_17.setLayout(new BoxLayout(panel_17, BoxLayout.Y_AXIS)); interactiveResumeButton = new JButton(); panel_17.add(interactiveResumeButton); interactiveResumeButton.setMinimumSize(new Dimension(100, 24)); interactiveResumeButton.setMaximumSize(new Dimension(150, 24)); interactiveResumeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tinaController.getInteractiveRendererCtrl().resumeBtn_clicked(); } }); interactiveResumeButton.setToolTipText("Resume a previously saved render"); interactiveResumeButton.setText("Resume render"); interactiveResumeButton.setPreferredSize(new Dimension(125, 24)); interactiveResumeButton.setMnemonic(KeyEvent.VK_T); interactiveResumeButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); panel_17.add(getPanel_18()); panel_17.add(getInteractiveStopButton()); } return panel_17; } private JPanel getPanel_18() { if (panel_18 == null) { panel_18 = new JPanel(); panel_18.setMaximumSize(new Dimension(32767, 24)); } return panel_18; } private JPanel getPanel_110() { if (panel_110 == null) { panel_110 = new JPanel(); panel_110.setPreferredSize(new Dimension(10, 32)); panel_110.setLayout(null); interactiveRendererShowStatsButton = new JToggleButton(); interactiveRendererShowStatsButton.setFont(Prefs.getPrefs().getFont("SansSerif", Font.PLAIN, 12)); interactiveRendererShowStatsButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (tinaController != null) { tinaController.getInteractiveRendererCtrl().showStatsBtn_changed(); } } }); interactiveRendererShowStatsButton.setText("Stats"); interactiveRendererShowStatsButton.setToolTipText("Show statistics (may slightly slow down rendering)"); interactiveRendererShowStatsButton.setSelected(true); interactiveRendererShowStatsButton.setPreferredSize(new Dimension(42, 24)); interactiveRendererShowStatsButton.setBounds(4, 4, 72, 24); panel_110.add(interactiveRendererShowStatsButton); interactiveRendererShowPreviewButton = new JToggleButton(); interactiveRendererShowPreviewButton.setFont(Prefs.getPrefs().getFont("SansSerif", Font.PLAIN, 12)); interactiveRendererShowPreviewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (tinaController != null) { tinaController.getInteractiveRendererCtrl().showPreviewBtn_changed(); } } }); interactiveRendererShowPreviewButton.setToolTipText("Show previews (may slow down rendering)"); interactiveRendererShowPreviewButton.setText("Preview"); interactiveRendererShowPreviewButton.setSelected(true); interactiveRendererShowPreviewButton.setPreferredSize(new Dimension(42, 24)); interactiveRendererShowPreviewButton.setBounds(81, 4, 72, 24); panel_110.add(interactiveRendererShowPreviewButton); } return panel_110; } public JToggleButton getInteractiveRendererShowStatsButton() { return interactiveRendererShowStatsButton; } public JToggleButton getInteractiveRendererShowPreviewButton() { return interactiveRendererShowPreviewButton; } public void setTinaController(TinaController tinaController) { this.tinaController = tinaController; } public JToggleButton getInteractiveFullSizeButton() { if (interactiveFullSizeButton == null) { interactiveFullSizeButton = new JToggleButton(); interactiveFullSizeButton.setSelected(true); interactiveFullSizeButton.setToolTipText("Switch to full render resolution"); interactiveFullSizeButton.setText("Full"); interactiveFullSizeButton.setPreferredSize(new Dimension(48, 24)); interactiveFullSizeButton.setMnemonic(KeyEvent.VK_M); interactiveFullSizeButton.setMinimumSize(new Dimension(48, 24)); interactiveFullSizeButton.setMaximumSize(new Dimension(32000, 24)); interactiveFullSizeButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); interactiveFullSizeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tinaController.getInteractiveRendererCtrl().fullRenderSizeButton_clicked(); } }); } return interactiveFullSizeButton; } public JToggleButton getInteractiveQuarterSizeButton() { if (interactiveQuarterSizeButton == null) { interactiveQuarterSizeButton = new JToggleButton(); interactiveQuarterSizeButton.setToolTipText("Switch to quarter render resolution"); interactiveQuarterSizeButton.setText("1:4"); interactiveQuarterSizeButton.setPreferredSize(new Dimension(48, 24)); interactiveQuarterSizeButton.setMnemonic(KeyEvent.VK_M); interactiveQuarterSizeButton.setMinimumSize(new Dimension(48, 24)); interactiveQuarterSizeButton.setMaximumSize(new Dimension(32000, 24)); interactiveQuarterSizeButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); interactiveQuarterSizeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tinaController.getInteractiveRendererCtrl().quarterRenderSizeButton_clicked(); } }); } return interactiveQuarterSizeButton; } private JPanel getPanel() { if (panel == null) { panel = new JPanel(); panel.setAlignmentX(Component.LEFT_ALIGNMENT); panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS)); panel.add(getInteractiveSaveImageButton()); panel.add(getInteractiveSaveZBufferButton()); } return panel; } JButton getInteractiveSaveZBufferButton() { if (interactiveSaveZBufferButton == null) { interactiveSaveZBufferButton = new JButton(); interactiveSaveZBufferButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tinaController.getInteractiveRendererCtrl().saveZBufferButton_clicked(); } }); interactiveSaveZBufferButton.setToolTipText("Save Z-Buffer"); interactiveSaveZBufferButton.setText("Z"); interactiveSaveZBufferButton.setPreferredSize(new Dimension(36, 24)); interactiveSaveZBufferButton.setMnemonic(KeyEvent.VK_I); interactiveSaveZBufferButton.setMinimumSize(new Dimension(36, 24)); interactiveSaveZBufferButton.setMaximumSize(new Dimension(36, 24)); interactiveSaveZBufferButton.setFont(Prefs.getPrefs().getFont("Dialog", Font.BOLD, 10)); } return interactiveSaveZBufferButton; } JCheckBox getInteractiveAutoLoadImageCBx() { if (interactiveAutoLoadImageCBx == null) { interactiveAutoLoadImageCBx = new JCheckBox("Autoload saved image"); interactiveAutoLoadImageCBx.setToolTipText("Automatically load a save image to immediately see the result"); } return interactiveAutoLoadImageCBx; } }