| 685 | |
| 686 | |
| 687 | ScriptContentPanel::Editor::Editor(Canvas* c): |
| 688 | WrapperWithMenuBarBase(c), |
| 689 | ScriptComponentEditListener(dynamic_cast<Processor*>(c->getScriptEditHandlerProcessor())) |
| 690 | { |
| 691 | zoomSelector = new ComboBox("Zoom"); |
| 692 | zoomSelector->addListener(this); |
| 693 | zoomSelector->addItemList({ "50%", "75%", "100%", "125%", "150%", "200%" }, 1); |
| 694 | zoomSelector->setSelectedId(3, dontSendNotification); |
| 695 | zoomSelector->setLookAndFeel(&klaf); |
| 696 | zoomSelector->setSize(100, 24); |
| 697 | klaf.setDefaultColours(*zoomSelector); |
| 698 | |
| 699 | overlaySelector = new ComboBox("Zoom"); |
| 700 | |
| 701 | auto& handler = dynamic_cast<Processor*>(c->getScriptEditHandlerProcessor())->getMainController()->getCurrentFileHandler(); |
| 702 | |
| 703 | if(handler.getRootFolder().isDirectory()) |
| 704 | { |
| 705 | auto overlayDirectory = handler.getSubDirectory(FileHandlerBase::SubDirectories::Images).getChildFile("overlays"); |
| 706 | currentOverlays = overlayDirectory.findChildFiles(File::findFiles, false, "*.png"); |
| 707 | } |
| 708 | |
| 709 | overlaySelector->addItem("No overlay", 1); |
| 710 | overlaySelector->setTextWhenNothingSelected("Select overlay"); |
| 711 | |
| 712 | for(auto l: currentOverlays) |
| 713 | overlaySelector->addItem(l.getFileNameWithoutExtension(), currentOverlays.indexOf(l) + 2); |
| 714 | |
| 715 | overlaySelector->setSelectedId(1, dontSendNotification); |
| 716 | overlaySelector->setLookAndFeel(&klaf); |
| 717 | overlaySelector->setSize(128, 24); |
| 718 | overlaySelector->setTooltip("Selects a image from the Images/overlays subfolder to be painted over the interface"); |
| 719 | |
| 720 | overlaySelector->onChange = [this]() |
| 721 | { |
| 722 | auto idx = overlaySelector->getSelectedItemIndex(); |
| 723 | |
| 724 | if(idx == 0) |
| 725 | currentOverlayImage = {}; |
| 726 | else |
| 727 | { |
| 728 | PNGImageFormat format; |
| 729 | currentOverlayImage = format.loadFrom(currentOverlays[idx-1]); |
| 730 | } |
| 731 | |
| 732 | overlayBroadcaster.sendMessage(sendNotificationSync, currentOverlayImage, overlayAlphaSlider->getValue()); |
| 733 | }; |
| 734 | |
| 735 | klaf.setDefaultColours(*overlaySelector); |
| 736 | |
| 737 | overlayAlphaSlider = new Slider("Alpha Overlay"); |
| 738 | |
| 739 | overlayAlphaSlider->setRange(-1.0, 1.0, 0.0); |
| 740 | overlayAlphaSlider->setDoubleClickReturnValue(true, 0.0); |
| 741 | overlayAlphaSlider->setSliderStyle(Slider::SliderStyle::LinearHorizontal); |
| 742 | overlayAlphaSlider->setTextBoxStyle(Slider::TextEntryBoxPosition::NoTextBox, true, 0, 0); |
| 743 | overlayAlphaSlider->setLookAndFeel(&slaf); |
| 744 | overlayAlphaSlider->setSize(100, 24); |
nothing calls this directly
no test coverage detected