selectedVisualList = cp5.addRadioButton(GuiElement.CURRENT_VISUAL.guiText(), getVisualCenter(col), p5GuiYOffset-58);
selectedVisualList.setItemsPerRow(nrOfVisuals);
selectedVisualList.setNoneSelectedAllowed(false);
for (i=0; i<nrOfVisuals; i++) {
String s = messages.getString("GeneratorGui.GUI_SELECTED_VISUAL")+(1+i); //$NON-NLS-1$
Toggle t = cp5.addToggle(s, 0, 0, w, 13);
t.setCaptionLabel(s);
selectedVisualList.addItem(t, i);
cp5.getTooltip().register(s, messages.getString("GeneratorGui.GUI_SELECTED_VISUAL_TOOLTIP_PREFIX")+(1+i)+messages.getString("GeneratorGui.GUI_SELECTED_VISUAL_TOOLTIP_POSTFIX")); //$NON-NLS-1$ //$NON-NLS-2$
}
selectedVisualList.moveTo(ALWAYS_VISIBLE_TAB);
cp5.addTextlabel("gen1", messages.getString("GeneratorGui.GUI_GENERATOR_LAYER_1"), GENERIC_X_OFS+3, 3+p5GuiYOffset).moveTo(ALWAYS_VISIBLE_TAB).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
cp5.addTextlabel("gen2", messages.getString("GeneratorGui.GUI_GENERATOR_LAYER_2"), GENERIC_X_OFS+3+3*Theme.DROPBOX_XOFS, 3+p5GuiYOffset).moveTo(ALWAYS_VISIBLE_TAB).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
cp5.addTextlabel("fx1", messages.getString("GeneratorGui.GUI_EFFECT_LAYER_1"), GENERIC_X_OFS+3+1*Theme.DROPBOX_XOFS, 3+p5GuiYOffset).moveTo(ALWAYS_VISIBLE_TAB).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
cp5.addTextlabel("fx2", messages.getString("GeneratorGui.GUI_EFFECT_LAYER_2"), GENERIC_X_OFS+3+4*Theme.DROPBOX_XOFS, 3+p5GuiYOffset).moveTo(ALWAYS_VISIBLE_TAB).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
cp5.addTextlabel("mix2", messages.getString("GeneratorGui.GUI_LAYER_MIXER"), GENERIC_X_OFS+3+2*Theme.DROPBOX_XOFS, 3+p5GuiYOffset).moveTo(ALWAYS_VISIBLE_TAB).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
cp5.getTooltip().register("gen1", messages.getString("GeneratorGui.GUI_TOOLTIP_GENERATOR_1")); //$NON-NLS-1$ //$NON-NLS-2$
cp5.getTooltip().register("gen2", messages.getString("GeneratorGui.GUI_TOOLTIP_GENERATOR_2")); //$NON-NLS-1$ //$NON-NLS-2$
cp5.getTooltip().register("fx1", messages.getString("GeneratorGui.GUI_TOOLTIP_EFFECT_1")); //$NON-NLS-1$ //$NON-NLS-2$
cp5.getTooltip().register("fx2", messages.getString("GeneratorGui.GUI_TOOLTIP_EFFECT_2")); //$NON-NLS-1$ //$NON-NLS-2$
cp5.getTooltip().register("mix2", messages.getString("GeneratorGui.GUI_TOOLTIP_MIXER")); //$NON-NLS-1$ //$NON-NLS-2$
//Generator
generatorListOne = cp5.addDropdownList(GuiElement.GENERATOR_ONE_DROPDOWN.guiText(),
GENERIC_X_OFS, p5GuiYOffset, Theme.DROPBOXLIST_LENGTH, 140);
generatorListTwo = cp5.addDropdownList(GuiElement.GENERATOR_TWO_DROPDOWN.guiText(),
GENERIC_X_OFS+3*Theme.DROPBOX_XOFS, p5GuiYOffset, Theme.DROPBOXLIST_LENGTH, 140);
Theme.themeDropdownList(generatorListOne);
Theme.themeDropdownList(generatorListTwo);
for (GeneratorName gn: GeneratorName.values()) {
generatorListOne.addItem(gn.guiText(), gn.getId());
generatorListTwo.addItem(gn.guiText(), gn.getId());
}
generatorListOne.setLabel(generatorListOne.getItem(1).getName());
generatorListTwo.setLabel(generatorListTwo.getItem(1).getName());
generatorListOne.moveTo(ALWAYS_VISIBLE_TAB);
generatorListTwo.moveTo(ALWAYS_VISIBLE_TAB);
generatorListOne.setHeight(Theme.DROPBOXLIST_LARGE_HEIGHT);
generatorListTwo.setHeight(Theme.DROPBOXLIST_LARGE_HEIGHT);
//Effect
effectListOne = cp5.addDropdownList(GuiElement.EFFECT_ONE_DROPDOWN.guiText(),
GENERIC_X_OFS+1*Theme.DROPBOX_XOFS, p5GuiYOffset, Theme.DROPBOXLIST_LENGTH, 140);
effectListTwo = cp5.addDropdownList(GuiElement.EFFECT_TWO_DROPDOWN.guiText(),
GENERIC_X_OFS+4*Theme.DROPBOX_XOFS, p5GuiYOffset, Theme.DROPBOXLIST_LENGTH, 140);
Theme.themeDropdownList(effectListOne);
Theme.themeDropdownList(effectListTwo);
for (EffectName gn: EffectName.values()) {
effectListOne.addItem(gn.guiText(), gn.getId());
effectListTwo.addItem(gn.guiText(), gn.getId());
}
effectListOne.setLabel(effectListOne.getItem(0).getName());
effectListTwo.setLabel(effectListTwo.getItem(0).getName());
effectListOne.moveTo(ALWAYS_VISIBLE_TAB);
effectListTwo.moveTo(ALWAYS_VISIBLE_TAB);
effectListOne.setHeight(Theme.DROPBOXLIST_LARGE_HEIGHT);
effectListTwo.setHeight(Theme.DROPBOXLIST_LARGE_HEIGHT);
//Mixer
mixerList = cp5.addDropdownList(GuiElement.MIXER_DROPDOWN.guiText(),
GENERIC_X_OFS+2*Theme.DROPBOX_XOFS, p5GuiYOffset, Theme.DROPBOXLIST_LENGTH, 140);
Theme.themeDropdownList(mixerList);
for (MixerName gn: MixerName.values()) {
mixerList.addItem(gn.guiText(), gn.getId());
}
mixerList.setLabel(mixerList.getItem(0).getName());
mixerList.setHeight(Theme.DROPBOXLIST_LARGE_HEIGHT);
mixerList.moveTo(ALWAYS_VISIBLE_TAB);
//---------------------------------
//TABS
//---------------------------------
final int yPosStartLabel = p5GuiYOffset+50;
final int yPosStartDrowdown = p5GuiYOffset+36;
cp5.getWindow().setPositionOfTabs(GENERIC_X_OFS, this.getHeight()-20);
//there a default tab which is present all the time. rename this tab
Tab generatorTab = cp5.getTab("default"); //$NON-NLS-1$
allTabs.add(generatorTab);
generatorTab.setLabel(messages.getString("GeneratorGui.TAB_GENERATOR_EFFECT")); //$NON-NLS-1$
Tab outputTab = cp5.addTab(messages.getString("GeneratorGui.TAB_SINGLE_OUTPUT_MAPPING")); //$NON-NLS-1$
allTabs.add(outputTab);
Tab allOutputTab = null;
//add all output mapping only if multiple output panels exist
if (nrOfVisuals>2) {
allOutputTab = cp5.addTab(messages.getString("GeneratorGui.TAB_ALL_OUTPUT_MAPPING")); //$NON-NLS-1$
allOutputTab.setColorForeground(0xffff0000);
allTabs.add(allOutputTab);
}
Tab randomTab = cp5.addTab(messages.getString("GeneratorGui.TAB_RANDOMIZE")); //$NON-NLS-1$
allTabs.add(randomTab);
Tab presetTab = cp5.addTab(messages.getString("GeneratorGui.TAB_PRESETS")); //$NON-NLS-1$
allTabs.add(presetTab);
Tab infoTab = cp5.addTab(messages.getString("GeneratorGui.TAB_INFO")); //$NON-NLS-1$
allTabs.add(infoTab);
Tab helpTab = cp5.addTab(messages.getString("GeneratorGui.TAB_HELP")); //$NON-NLS-1$
allTabs.add(helpTab);
generatorTab.setColorForeground(0xffff0000);
outputTab.setColorForeground(0xffff0000);
randomTab.setColorForeground(0xffff0000);
presetTab.setColorForeground(0xffff0000);
helpTab.setColorForeground(0xffff0000);
generatorTab.bringToFront();
//-------------
//Generic Options
//-------------
//generator speed slider
generatorSpeedSlider = cp5.addSlider(GuiElement.GENERATOR_SPEED.guiText(),
0f, 2.0f, 1f, 38+GENERIC_X_OFS, p5GuiYOffset+97, 140, 14);
generatorSpeedSlider.setSliderMode(Slider.FIX);
generatorSpeedSlider.setGroup(generatorTab);
generatorSpeedSlider.setDecimalPrecision(0);
generatorSpeedSlider.setRange(0, 200);
generatorSpeedSlider.setLabelVisible(true);
//beat animation
cp5.addTextlabel("beatWorkmode", messages.getString("GeneratorGui.BEAT_WORKMODE"),
38+GENERIC_X_OFS+2*Theme.DROPBOX_XOFS, p5GuiYOffset+113+5).moveTo(generatorTab).getValueLabel();
beatWorkmode = cp5.addDropdownList(GuiElement.BEAT_WORKMODE.guiText(),
38+GENERIC_X_OFS+2*Theme.DROPBOX_XOFS, p5GuiYOffset+113, Theme.DROPBOXLIST_LENGTH, 140);
Theme.themeDropdownList(beatWorkmode);
for (BeatToAnimation bta: BeatToAnimation.values()) {
beatWorkmode.addItem(bta.guiText(), bta.getId());
}
beatWorkmode.setLabel(beatWorkmode.getItem(0).getName());
beatWorkmode.setGroup(generatorTab);
beatWorkmode.setHeight(Theme.DROPBOXLIST_HEIGHT);
//freeze update
freeze = cp5.addToggle(GuiElement.BUTTON_TOGGLE_FREEZE.guiText(), 730, 2, 15, 15).moveTo(ALWAYS_VISIBLE_TAB);
freeze.setLabelVisible(false);
cp5.addTextlabel("freezeUpdateTxt", messages.getString("GeneratorGui.GUI_TOGGLE_FREEZE"), 745, 5).moveTo(ALWAYS_VISIBLE_TAB);
cp5.getTooltip().register(GuiElement.BUTTON_TOGGLE_FREEZE.guiText(),messages.getString("GeneratorGui.TOOLTIP_FREEZE")); //$NON-NLS-1$
//toggle internal visuals
Toggle t2 = cp5.addToggle(GuiElement.BUTTON_TOGGLE_INTERNAL_VISUALS.guiText(), 730, 20, 15, 15).moveTo(ALWAYS_VISIBLE_TAB);
t2.setLabelVisible(false);
cp5.addTextlabel("toggleIKnternalVisualsTxt", messages.getString("GeneratorGui.GUI_TOGGLE_INTERNAL_BUFFER"), 745, 23).moveTo(ALWAYS_VISIBLE_TAB);; //$NON-NLS-1$
cp5.getTooltip().register(GuiElement.BUTTON_TOGGLE_INTERNAL_VISUALS.guiText(),messages.getString("GeneratorGui.TOOLTIP_GUI_TOGGLE_INTERNAL_BUFFER")); //$NON-NLS-1$
//-------------
//GENERATOR/EFFECT tab
//-------------
int genFxXOfs = 38+GENERIC_X_OFS;
//EFFECTS OPTIONS
//---------------
int genElYOfs = yPosStartDrowdown+105;
cp5.addTextlabel("genOptionsFx", messages.getString("GeneratorGui.EFFECT_OPTIONS"), GENERIC_X_OFS, genElYOfs).moveTo(generatorTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
//threshold slider
thresholdSlider = cp5.addSlider(GuiElement.THRESHOLD.guiText(),
0, 255, 255, genFxXOfs, genElYOfs+60, 140, 14);
thresholdSlider.setSliderMode(Slider.FIX);
thresholdSlider.setGroup(generatorTab);
thresholdSlider.setDecimalPrecision(0);
//rotozoom slider
fxRotoSlider = cp5.addSlider(GuiElement.FX_ROTOZOOMER.guiText(),
-127, 127, 0, genFxXOfs+2*Theme.DROPBOX_XOFS, genElYOfs+60, 140, 14);
fxRotoSlider.setSliderMode(Slider.FIX);
fxRotoSlider.setGroup(generatorTab);
fxRotoSlider.setDecimalPrecision(0);
fxRotoSlider.setCaptionLabel(messages.getString("GeneratorGui.EFFECT_ROTOZOOM_SPEED")); //$NON-NLS-1$
genElYOfs += 25;
//texturedeform options
cp5.addTextlabel("genTextdefOpt", messages.getString("GeneratorGui.TEXTUREDDEFORM_OPTIONS"), genFxXOfs+3+0*Theme.DROPBOX_XOFS, genElYOfs+16).moveTo(generatorTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
textureDeformOptions = cp5.addDropdownList(GuiElement.TEXTUREDEFORM_OPTIONS.guiText(),
genFxXOfs+0*Theme.DROPBOX_XOFS, genElYOfs+11, Theme.DROPBOXLIST_LENGTH, 80);
Theme.themeDropdownList(textureDeformOptions);
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_ANAMORPHOSIS"), 1); //$NON-NLS-1$
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_SPIRAL"), 2); //$NON-NLS-1$
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_ROTATINGTUNNEL"), 3); //$NON-NLS-1$
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_START"), 4); //$NON-NLS-1$
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_TUNNEL"), 5); //$NON-NLS-1$
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_FLOWER"), 6); //$NON-NLS-1$
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_CLOUD"), 7); //$NON-NLS-1$
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_PLANAR"), 8); //$NON-NLS-1$
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_CIRCLE"), 9); //$NON-NLS-1$
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_SPIRAL"), 10); //$NON-NLS-1$
textureDeformOptions.addItem(messages.getString("GeneratorGui.TEXTUREDEFORM_3D"), 11); //$NON-NLS-1$
textureDeformOptions.setLabel(textureDeformOptions.getItem(1).getName());
textureDeformOptions.setGroup(generatorTab);
cp5.addTextlabel("genZoomOpt", messages.getString("GeneratorGui.ZOOM_OPTIONS"), genFxXOfs+3+1*Theme.DROPBOX_XOFS, genElYOfs+16).moveTo(generatorTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
zoomOptions = cp5.addDropdownList(GuiElement.ZOOM_OPTIONS.guiText(),
genFxXOfs+1*Theme.DROPBOX_XOFS, genElYOfs+11, Theme.DROPBOXLIST_LENGTH, 80);
Theme.themeDropdownList(zoomOptions);
zoomOptions.addItem(messages.getString("GeneratorGui.ZOOM_IN"), 0); //$NON-NLS-1$
zoomOptions.addItem(messages.getString("GeneratorGui.ZOOM_OUT"), 1); //$NON-NLS-1$
zoomOptions.addItem(messages.getString("GeneratorGui.ZOOM_HORIZONTAL"), 2); //$NON-NLS-1$
zoomOptions.addItem(messages.getString("GeneratorGui.ZOOM_VERTICAL"), 3); //$NON-NLS-1$
zoomOptions.setLabel(zoomOptions.getItem(0).getName());
zoomOptions.setGroup(generatorTab);
//GENERATOR OPTIONS
//-----------------
FileUtils fu = new FileUtils();
genElYOfs = p5GuiYOffset+35;
cp5.addTextlabel("genOptionsGen", messages.getString("GeneratorGui.GENERATOR_OPTIONS"), GENERIC_X_OFS, genElYOfs).moveTo(generatorTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
genElYOfs=yPosStartLabel+5;
//blinkenlights
cp5.addTextlabel("genBlinken", messages.getString("GeneratorGui.BLINKENLIGHT_LOAD"), genFxXOfs+3, genElYOfs+16).moveTo(generatorTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
blinkenLightsList = cp5.addDropdownList(GuiElement.BLINKENLIGHTS_DROPDOWN.guiText(),
genFxXOfs, genElYOfs+11, Theme.DROPBOXLIST_LENGTH, 140);
Theme.themeDropdownList(blinkenLightsList);
blinkenLightsList.addItems(fu.findBlinkenFiles());
blinkenLightsList.setLabel(blinkenLightsList.getItem(1).getName());
blinkenLightsList.setGroup(generatorTab);
blinkenLightsList.setHeight(Theme.DROPBOXLIST_HEIGHT);
//images
cp5.addTextlabel("genImg", messages.getString("GeneratorGui.IMAGE_LOAD"), genFxXOfs+3+1*Theme.DROPBOX_XOFS, genElYOfs+16).moveTo(generatorTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
imageList = cp5.addDropdownList(GuiElement.IMAGE_DROPDOWN.guiText(),
genFxXOfs+Theme.DROPBOX_XOFS, genElYOfs+11, Theme.DROPBOXLIST_LENGTH, 140);
Theme.themeDropdownList(imageList);
imageList.addItems(fu.findImagesFiles());
imageList.setLabel(imageList.getItem(1).getName());
imageList.setGroup(generatorTab);
imageList.setHeight(Theme.DROPBOXLIST_HEIGHT);
//colorscroll options
cp5.addTextlabel("genColorScroll", messages.getString("GeneratorGui.COLORSCROLL_OPTIONS"), genFxXOfs+3+2*Theme.DROPBOX_XOFS, genElYOfs+16).moveTo(generatorTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
colorScrollList = cp5.addDropdownList(GuiElement.COLORSCROLL_OPTIONS.guiText(),
genFxXOfs+2*Theme.DROPBOX_XOFS, genElYOfs+11, Theme.DROPBOXLIST_LENGTH, 140);
Theme.themeDropdownList(colorScrollList);
for (ScrollMode sm: ScrollMode.values()) {
colorScrollList.addItem(sm.getDisplayName(), sm.getMode()); //$NON-NLS-1$ //$NON-NLS-2$
}
colorScrollList.setGroup(generatorTab);
colorScrollList.setHeight(Theme.DROPBOXLIST_HEIGHT);
colorScrollList.setLabel(col.getPixelControllerGenerator().getScrollMode().getDisplayName());
//add textfield options
cp5.addTextlabel("genTextwriterOpt", messages.getString("GeneratorGui.TEXTWRITER_OPTION"), genFxXOfs+3+3*Theme.DROPBOX_XOFS, genElYOfs+16).moveTo(generatorTab).getValueLabel(); //$NON-NLS-1$ //$NON-NLS-2$
textwriterOption = cp5.addDropdownList(GuiElement.TEXTWR_OPTION.guiText(),
genFxXOfs+3*Theme.DROPBOX_XOFS, genElYOfs+11, Theme.DROPBOXLIST_LENGTH, 140);
Theme.themeDropdownList(textwriterOption);
textwriterOption.addItem(messages.getString("GeneratorGui.TEXTWRITER_PINGPONG"), 0); //$NON-NLS-1$
textwriterOption.addItem(messages.getString("GeneratorGui.TEXTWRITER_LEFT"), 1); //$NON-NLS-1$
textwriterOption.setLabel(textwriterOption.getItem(0).getName());
textwriterOption.setGroup(generatorTab);
textwriterOption.setHeight(Theme.DROPBOXLIST_HEIGHT);
//add textfield
textGenerator = cp5.addTextfield(GuiElement.TEXTFIELD, GuiElement.TEXTFIELD.guiText(), GuiElement.TEXTFIELD.guiText(), genFxXOfs+3+4*Theme.DROPBOX_XOFS, genElYOfs-6, Theme.DROPBOXLIST_LENGTH, 16); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
passThroughMode = cp5.addTextlabel("passThroughMode", "", genFxXOfs, yPosStartDrowdown+50).moveTo(generatorTab).getValueLabel();
passThroughMode.setColor(0xffff0000);
//-----------------
//Single Output tab
//-----------------
//brightness control
cp5.addTextlabel("brightnessControllTxt", messages.getString("GeneratorGui.BRIGHTNESS"), 5, yPosStartDrowdown+95).moveTo(outputTab);
brightnessControll = cp5.addSlider(GuiElement.BRIGHTNESS.guiText(), 0, 255, 255, 38, yPosStartDrowdown+110, 160, 14);
brightnessControll.setSliderMode(Slider.FIX);
brightnessControll.setGroup(outputTab);
brightnessControll.setDecimalPrecision(0);
brightnessControll.setNumberOfTickMarks(11);
brightnessControll.setRange(0, 100);
brightnessControll.setLabelVisible(false);
int nrOfOutputs = Collector.getInstance().getAllOutputMappings().size();
selectedOutputs = cp5.addRadioButton(GuiElement.CURRENT_OUTPUT.guiText(), GENERIC_X_OFS, yPosStartDrowdown);
selectedOutputs.setItemsPerRow(nrOfOutputs);
selectedOutputs.setNoneSelectedAllowed(false);
for (i=0; i<nrOfOutputs; i++) {
String s = messages.getString("GeneratorGui.OUTPUT_NR")+(1+i); //$NON-NLS-1$
Toggle t = cp5.addToggle(s, 0, 0, singleVisualXSize, 13);
t.setCaptionLabel(s);
selectedOutputs.addItem(t, i);
cp5.getTooltip().register(s, messages.getString("GeneratorGui.TOOLTIP_OUTPUT_PREFIX")+(1+i)+messages.getString("GeneratorGui.TOOLTIP_OUTPUT_POSTFIX")); //$NON-NLS-1$ //$NON-NLS-2$
}
selectedOutputs.moveTo(outputTab);