void loadScheme() { FileChooser fc ("Please select a colour-scheme file to load...", getAppSettings().appearance.getSchemesFolder(), AppearanceSettings::getSchemeFileWildCard()); if (fc.browseForFileToOpen()) { if (getAppSettings().appearance.readFromFile (fc.getResult())) rebuildProperties(); } }
void EnabledModuleList::addModuleFromUserSelectedFile() { static File lastLocation (findDefaultModulesFolder (project)); FileChooser fc ("Select a module to add...", lastLocation, String::empty, false); if (fc.browseForDirectory()) { lastLocation = fc.getResult(); addModuleOfferingToCopy (lastLocation); } }
void FileSearchPathListComponent::returnKeyPressed (int row) { #if JUCE_MODAL_LOOPS_PERMITTED FileChooser chooser (TRANS("Change folder..."), path [row], "*"); if (chooser.browseForDirectory()) { path.remove (row); path.add (chooser.getResult(), row); changed(); } #endif }
void MainContentComponent::load_button() { FileChooser myChooser ("I pitty the file who doesn't choose a fool!", File::getSpecialLocation(File::userHomeDirectory), "*.wav"); if(myChooser.browseForFileToOpen()) { File wavFile (myChooser.getResult()); long length_of_file; int channels, f_fs; float* data = load_file(wavFile.getFullPathName(), &length_of_file, &channels, &f_fs); file_buf = data; file_fs = f_fs; file_len = length_of_file; file_chn = channels; } }
FileBasedDocument::SaveResult FileBasedDocument::saveAsInteractive (const bool warnAboutOverwritingExistingFiles) { File f; if (documentFile.existsAsFile()) f = documentFile; else f = getLastDocumentOpened(); String legalFilename (File::createLegalFileName (getDocumentTitle())); if (legalFilename.isEmpty()) legalFilename = "unnamed"; if (f.existsAsFile() || f.getParentDirectory().isDirectory()) f = f.getSiblingFile (legalFilename); else f = File::getSpecialLocation (File::userDocumentsDirectory).getChildFile (legalFilename); f = getSuggestedSaveAsFile (f); FileChooser fc (saveFileDialogTitle, f, fileWildcard); if (fc.browseForFileToSave (warnAboutOverwritingExistingFiles)) { File chosen (fc.getResult()); if (chosen.getFileExtension().isEmpty()) { chosen = chosen.withFileExtension (fileExtension); if (chosen.exists()) { if (! AlertWindow::showOkCancelBox (AlertWindow::WarningIcon, TRANS("File already exists"), TRANS("There's already a file called:") + "\n\n" + chosen.getFullPathName() + "\n\n" + TRANS("Are you sure you want to overwrite it?"), TRANS("overwrite"), TRANS("cancel"))) { return userCancelledSave; } } } setLastDocumentOpened (chosen); return saveAs (chosen, false, false, true); } return userCancelledSave; }
void saveScheme() { FileChooser fc ("Select a file in which to save this colour-scheme...", getAppSettings().appearance.getSchemesFolder() .getNonexistentChildFile ("Scheme", AppearanceSettings::getSchemeFileSuffix()), AppearanceSettings::getSchemeFileWildCard()); if (fc.browseForFileToSave (true)) { File file (fc.getResult().withFileExtension (AppearanceSettings::getSchemeFileSuffix())); getAppSettings().appearance.writeToFile (file); getAppSettings().appearance.refreshPresetSchemeList(); } }
File NewFileWizard::Type::askUserToChooseNewFile (const String& suggestedFilename, const String& wildcard, const Project::Item& projectGroupToAddTo) { FileChooser fc ("Select File to Create", projectGroupToAddTo.determineGroupFolder() .getChildFile (suggestedFilename) .getNonexistentSibling(), wildcard); if (fc.browseForFileToSave (true)) return fc.getResult(); return File::nonexistent; }
JucerDocument* loadDocumentFromFile (const File& f, const bool showErrorMessage) { File file (f); if (file == File::nonexistent && showErrorMessage) { FileChooser fc ("Open a Jucer C++ file...", StoredSettings::getInstance()->recentFiles.getFile (0), "*.cpp"); if (! fc.browseForFileToOpen()) return 0; file = fc.getResult(); } XmlElement* xml = JucerDocument::pullMetaDataFromCppFile (file.loadFileAsString()); if (xml == 0 || ! xml->hasTagName (JucerDocument::jucerCompXmlTag)) { if (file != File::nonexistent && showErrorMessage) AlertWindow::showMessageBox (AlertWindow::WarningIcon, TRANS("Failed to open file..."), TRANS("This wasn't a valid Jucer .cpp file...")); delete xml; return 0; } const String docType (xml->getStringAttribute ("documentType")); delete xml; // (reverse order so ComponentDocument is default last-case) for (int i = numDocumentTypes; --i >= 0;) { if (docType.equalsIgnoreCase (documentTypeNames[i]) || i == 0) { JucerDocument* doc = createNewDocument (i); if (doc->loadFrom (file, showErrorMessage)) return doc; delete doc; break; } } return 0; }
bool GraphComponent::loadAndAppendPlugin () { DBG ("GraphComponent::loadAndAppendPlugin (with chooser)"); FileChooser myChooser (T("Load a plugin..."), Config::getInstance ()->lastPluginDirectory, JOST_PLUGIN_WILDCARD, JOST_USE_NATIVE_FILE_CHOOSER); if (myChooser.browseForFileToOpen()) { File fileToLoad = myChooser.getResult(); if (fileToLoad.existsAsFile()) return loadAndAppendPlugin (fileToLoad, 100, 100); } return false; }
void FilenameComponent::buttonClicked (Button*) { #if JUCE_MODAL_LOOPS_PERMITTED FileChooser fc (isDir ? TRANS ("Choose a new directory") : TRANS ("Choose a new file"), getLocationToBrowse(), wildcard); if (isDir ? fc.browseForDirectory() : (isSaving ? fc.browseForFileToSave (false) : fc.browseForFileToOpen())) { setCurrentFile (fc.getResult(), true); } #else jassertfalse; // needs rewriting to deal with non-modal environments #endif }
void TargetFileComponent::buttonClicked (Button* buttonThatWasClicked) { //[UserbuttonClicked_Pre] //[/UserbuttonClicked_Pre] if (buttonThatWasClicked == playButton) { //[UserButtonCode_playButton] -- add your button handler code here.. playAudio(); //[/UserButtonCode_playButton] } else if (buttonThatWasClicked == stopButton) { //[UserButtonCode_stopButton] -- add your button handler code here.. stopAudio(); //[/UserButtonCode_stopButton] } else if (buttonThatWasClicked == loadFileButton) { //[UserButtonCode_loadFileButton] -- add your button handler code here.. FileChooser myChooser ("Please select the file you want to load..."); if (myChooser.browseForFileToOpen()) { audioTransport.setSource(nullptr); // this fixes memory issue with loading new file File selectedFile = myChooser.getResult(); currentFile->setFile(selectedFile); container->setFile(selectedFile); audioTransport.setSource(currentFile->getSource()); isPlayable = true; setPlayable(true); sendActionMessage("setTargetFile"); } //[/UserButtonCode_loadFileButton] } //[UserbuttonClicked_Post] //[/UserbuttonClicked_Post] }
void TextBuffer::loadFile() { File dir; if (file.existsAsFile()) dir=file.getParentDirectory(); else dir=File::getCurrentWorkingDirectory(); FileChooser choose (T("Load File"), dir, String::empty, true); if (!choose.browseForFileToOpen()) return; File load=choose.getResult(); if (load.hasFileExtension(T(".sal"))) SalSyntax::getInstance()->eval(load.loadFileAsString()); if (load.hasFileExtension(T(".sal2"))) Sal2Syntax::getInstance()->eval(load.loadFileAsString()); else LispSyntax::getInstance()->eval(T("(load ") + load.getFullPathName().quoted() + T(")")); }
//============================================================================== void StandaloneFilterWindow::saveState() { PropertySet* const globalSettings = getGlobalSettings(); FileChooser fc (TRANS("Save current state"), globalSettings != 0 ? File (globalSettings->getValue (T("lastStateFile"))) : File::nonexistent); if (fc.browseForFileToSave (true)) { JUCE_NAMESPACE::MemoryBlock data; filter->getStateInformation (data); if (! fc.getResult().replaceWithData (data.getData(), data.getSize())) { AlertWindow::showMessageBox (AlertWindow::WarningIcon, TRANS("Error whilst saving"), TRANS("Couldn't write to the specified file!")); } } }
bool TextBuffer::saveFileAs(File defaultfile) { if (defaultfile==File::nonexistent) if (file.existsAsFile()) defaultfile=file.getParentDirectory(); else defaultfile=File::getCurrentWorkingDirectory(); FileChooser choose (T("Save File As"), defaultfile, T("*.*"), true); if (choose.browseForFileToSave(true)) { File sav=choose.getResult(); sav.replaceWithText(getText()); file=sav; clearFlag(EditFlags::NeedsSave); updateWindowTitle(); Preferences::getInstance()->recentlyOpened.addFile(sav); return true; } else return false; }
FileBasedDocument::SaveResult FileBasedDocument::saveAsInteractive (const bool warnAboutOverwritingExistingFiles) { File f; if (documentFile.existsAsFile()) f = documentFile; else f = getLastDocumentOpened(); String legalFilename (File::createLegalFileName (getDocumentTitle())); if (legalFilename.isEmpty()) legalFilename = "unnamed"; if (f.existsAsFile() || f.getParentDirectory().isDirectory()) f = f.getSiblingFile (legalFilename); else f = File::getSpecialLocation (File::userDocumentsDirectory).getChildFile (legalFilename); f = getSuggestedSaveAsFile (f); FileChooser fc (saveFileDialogTitle, f, fileWildcard); if (fc.browseForFileToSave (warnAboutOverwritingExistingFiles)) { File chosen (fc.getResult()); if (chosen.getFileExtension().isEmpty()) { chosen = chosen.withFileExtension (fileExtension); if (chosen.exists() && ! askToOverwriteFile (chosen)) return userCancelledSave; } setLastDocumentOpened (chosen); return saveAs (chosen, false, false, true); } return userCancelledSave; }
//============================================================================== void VstPluginWindow::loadPreset () { File lastPresetDirectory = File (plugin->getValue (PROP_PLUGPRESETDIR, String::empty)); if (! lastPresetDirectory.exists()) lastPresetDirectory = Config::getInstance ()->lastPresetDirectory; FileChooser myChooser (T("Load a preset file..."), lastPresetDirectory, JOST_PRESET_WILDCARD, JOST_USE_NATIVE_FILE_CHOOSER); if (myChooser.browseForFileToOpen()) { File fileToLoad = myChooser.getResult(); if (fileToLoad.existsAsFile()) { XmlDocument xmlDoc (fileToLoad.loadFileAsString ()); XmlElement* xml = xmlDoc.getDocumentElement(); if (xml == 0 || ! xml->hasTagName (JOST_PRESET_PRESETTAG)) { String errString = xmlDoc.getLastParseError(); printf ("Error parsing preset: %s \n", (const char*) errString); } else { plugin->loadPresetFromXml (xml); updateParameters (); repaint (); Config::getInstance()->addRecentPreset (fileToLoad); plugin->setValue (PROP_PLUGPRESETDIR, fileToLoad.getParentDirectory().getFullPathName()); } } } }
void* loadNewWaveFile(void* fakeThis){ NewProjectAudioProcessor* realThis = (NewProjectAudioProcessor*)fakeThis; FileChooser myChooser ("Please select the wave file you want to load...", File::getSpecialLocation (File::userHomeDirectory), "*.wav"); if (myChooser.browseForFileToOpen()) { File waveFile (myChooser.getResult()); LoadNAnalyseFileThread task(waveFile, realThis); task.runThread(); } void* dummy = 0; return dummy; }
void FileReaderEditor::buttonEvent (Button* button) { if (! acquisitionIsActive) { if (button == fileButton) { FileChooser chooseFileReaderFile ("Please select the file you want to load...", lastFilePath, "*"); if (chooseFileReaderFile.browseForFileToOpen()) { // Use the selected file setFile (chooseFileReaderFile.getResult().getFullPathName()); // lastFilePath = fileToRead.getParentDirectory(); // thread->setFile(fileToRead.getFullPathName()); // fileNameLabel->setText(fileToRead.getFileName(),false); } } } }
void StandaloneFilterWindow::loadState() { PropertySet* const globalSettings = getGlobalSettings(); FileChooser fc (TRANS("Load a saved state"), globalSettings != 0 ? File (globalSettings->getValue (T("lastStateFile"))) : File::nonexistent); if (fc.browseForFileToOpen()) { JUCE_NAMESPACE::MemoryBlock data; if (fc.getResult().loadFileAsData (data)) { filter->setStateInformation (data.getData(), data.getSize()); } else { AlertWindow::showMessageBox (AlertWindow::WarningIcon, TRANS("Error whilst loading"), TRANS("Couldn't read from the specified file!")); } } }
void MainContentComponent::buttonClicked (Button *button) { if (button == installButton) { // === Locate the AlphaLive directory === alphaLiveDirectory = File::getSpecialLocation (File::globalApplicationsDirectory).getFullPathName() + File::separatorString + "AlphaLive"; bool continueInstallation = true; if (! alphaLiveDirectory.isDirectory()) { //If can't be found, ask user to manually locate it bool userSelection = AlertWindow::showOkCancelBox(AlertWindow::WarningIcon, translate("AlphaLive not found!"), translate("The AlphaLive folder can not be found on your computer. Please manually locate it.")); if (userSelection == true) { FileChooser myChooser (translate("Please select the AlphaLive directory..."), File::getSpecialLocation (File::globalApplicationsDirectory)); if (myChooser.browseForDirectory() == true) { // Perform some basic check to see if this is the AlphaLive directory #if JUCE_MAC || JUCE_LINUX File alphaLiveApp (myChooser.getResult().getFullPathName() + File::separatorString + "AlphaLive.app"); #endif #if JUCE_WINDOWS File alphaLiveApp (myChooser.getResult().getFullPathName() + File::separatorString + "AlphaLive.exe"); #endif if (alphaLiveApp.exists()) { // Presume that this is the AlphaLive directory alphaLiveDirectory = myChooser.getResult(); } else { AlertWindow::showMessageBoxAsync (AlertWindow::WarningIcon, translate("Error!"), translate("The selected directory does not contain the AlphaLive application. Please try again.")); continueInstallation = false; } } else continueInstallation = false; } else continueInstallation = false; } if (continueInstallation == true) { startThread(); } } else if (button == closeButton) { JUCEApplication::quit(); } else if (button == cancelButton) { bool userSelection = AlertWindow::showOkCancelBox(AlertWindow::WarningIcon, translate("Are you sure?"), translate("Are you sure you want to cancel? The audio library will not be fully installed if so.")); if (userSelection == true) { signalThreadShouldExit(); } } }
void PlayList::buttonClicked (Button* buttonThatWasClicked) { //[UserbuttonClicked_Pre] //[/UserbuttonClicked_Pre] if(buttonThatWasClicked == loadList) { getlist(); Logger* log = Logger::getCurrentLogger(); String testtext= sublist.getProperty(sublistId); log->writeToLog(testtext); log->writeToLog("test"); } else if (buttonThatWasClicked == saveList) { setlist(); } else if (buttonThatWasClicked == savesublist) { String testsubId= sublist.getProperty(sublistId); String testmusicId = music.getProperty(musicId); ValueTree newsublist = setsublist(testsubId, testmusicId); Logger* log = Logger::getCurrentLogger(); log->writeToLog(testmusicId); log->writeToLog(testsubId); playlist.addChild(newsublist, 0, nullptr); } else if (buttonThatWasClicked == path){ FileChooser chooser ("Select Music",File::nonexistent); if (chooser.browseForFileToOpen()) { File file (chooser.getResult()); String musicname=file.getFileName(); File path(file.getCurrentWorkingDirectory()); String actpath= (file.getFullPathName()); ValueTree newmusic= ValueTree(musicId); ValueTree newmusicpath = ValueTree(pathId); newmusic.addListener(this); newmusicpath.addListener(this); newmusic.addChild(newmusicpath, 0, nullptr); newmusicpath.setProperty(pathId, actpath, nullptr); newmusic.setProperty(musicId, musicname, nullptr); //ValueTree newsublist = ValueTree(sublistId); //newsublist.addListener(this); //newsublist.setProperty(sublistId, "New Playlist", nullptr); sublist.addChild(newmusic,0, nullptr); } } else if (buttonThatWasClicked == newsublist) { NativeMessageBox::showMessageBox(AlertWindow::QuestionIcon, "New Playlist Name", "Please input a new playlist name",testlabel); testlabel->setEditable(true,true,true); testlabel->addListener(this); } }
bool HostFilterComponent::perform (const InvocationInfo& info) { Config* config = Config::getInstance(); GraphComponent* graph = main->getGraph (); Transport* transport = getFilter()->getTransport(); switch (info.commandID) { //---------------------------------------------------------------------------------------------- case CommandIDs::pluginOpen: { graph->loadAndAppendPlugin (); break; } case CommandIDs::pluginClose: { graph->closeSelectedPlugins (); break; } case CommandIDs::pluginClear: { graph->closeAllPlugins (); break; } case CommandIDs::showPluginListEditor: { if (PluginListWindow::currentPluginListWindow == 0) PluginListWindow::currentPluginListWindow = new PluginListWindow (knownPluginList); PluginListWindow::currentPluginListWindow->toFront (true); break; } //---------------------------------------------------------------------------------------------- #ifndef JOST_VST_PLUGIN case CommandIDs::audioOptions: { StandaloneFilterWindow* window = findParentComponentOfClass ((StandaloneFilterWindow*) 0); if (window) window->showAudioSettingsDialog (); break; } #endif case CommandIDs::audioPlay: { transport->play (); break; } case CommandIDs::audioPlayPause: { transport->togglePlay (); break; } case CommandIDs::audioStop: { transport->stop (); break; } case CommandIDs::audioRecord: { transport->record (); break; } case CommandIDs::audioRewind: { transport->rewind (); break; } case CommandIDs::audioLoop: { transport->setLooping (! transport->isLooping()); break; } //---------------------------------------------------------------------------------------------- case CommandIDs::sessionNew: { bool retValue = AlertWindow::showYesNoCancelBox (AlertWindow::WarningIcon, T("Unsaved Changes"), T("Are you sure you want to close the current session? You may lose any unsaved changes.")); if (retValue) { closePluginEditorWindows (); getFilter()->getHost ()->closeAllPlugins (true); clearComponents (); Config::getInstance()->lastSessionFile = File::nonexistent; rebuildComponents (); } break; } case CommandIDs::sessionLoad: { FileChooser myChooser (T("Load a session file..."), Config::getInstance ()->lastSessionDirectory, JOST_SESSION_WILDCARD, JOST_USE_NATIVE_FILE_CHOOSER); if (myChooser.browseForFileToOpen()) { bool retValue = AlertWindow::showYesNoCancelBox (AlertWindow::WarningIcon, T("Unsaved Changes"), T("Are you sure you want to close the current session? You may lose any unsaved changes.")); if (retValue) { MemoryBlock fileData; File fileToLoad = myChooser.getResult(); if (fileToLoad.existsAsFile() && fileToLoad.loadFileAsData (fileData)) { getFilter ()->setStateInformation (fileData.getData (), fileData.getSize()); Config::getInstance()->addRecentSession (fileToLoad); Config::getInstance()->lastSessionFile = fileToLoad; } } } break; } case CommandIDs::sessionSave: { handleSaveCommand(); break; } case CommandIDs::sessionSaveNoPrompt: { handleSaveCommand(true); break; } case CommandIDs::audioStemsStartStop: { getHost()->toggleStemRendering(); break; } case CommandIDs::audioStemsSetup: { FileChooser myChooser (T("Save Rendered Stem Files To..."), Config::getInstance ()->lastStemsDirectory); if (myChooser.browseForDirectory ()) { Config::getInstance ()->lastStemsDirectory = myChooser.getResult(); } break; } //---------------------------------------------------------------------------------------------- case CommandIDs::appToolbar: { toolbar->showCustomisationDialog (*factory, Toolbar::allCustomisationOptionsEnabled); // (Toolbar::allowIconsOnlyChoice | Toolbar::showResetToDefaultsButton)); break; } case CommandIDs::appBrowser: { setBrowserVisible (! config->showBrowser, config->browserLeft); break; } case CommandIDs::appFullScreen: { DocumentWindow* window = findParentComponentOfClass <DocumentWindow> (); if (window) { window->setFullScreen (! window->isFullScreen ()); window->setMenuBar (window->isFullScreen () ? 0 : this); } break; } case CommandIDs::appExit: { deleteAndZero(PluginListWindow::currentPluginListWindow); JUCEApplication::getInstance()->systemRequestedQuit(); break; } case CommandIDs::appAbout: { // Image* splashImage = ImageCache::getFromMemory (Resource::jost_about, // Resource::jost_about_size); // todo: move appResourcesFolder() to somewhere everyone can use it #if JUCE_MAC File appResourcesFolder(File::getSpecialLocation(File::currentApplicationFile).getChildFile("./Contents/Resources")); #else File appResourcesFolder(File::getSpecialLocation(File::currentApplicationFile).getParentDirectory()); #endif File splashImageFile(appResourcesFolder.getChildFile("JiveAbout.png")); Image* splashImage = ImageFileFormat::loadFrom(splashImageFile); SplashScreen* splash = new SplashScreen(); splash->show (T(JucePlugin_Name), splashImage, 3500, false); break; } //---------------------------------------------------------------------------------------------- default: return false; } return true; }
void MainComponent::buttonClicked (Button* buttonThatWasClicked) { //[UserbuttonClicked_Pre] //[/UserbuttonClicked_Pre] if (buttonThatWasClicked == inputFileBrowse) { //[UserButtonCode_inputFileBrowse] -- add your button handler code here.. FileChooser myChooser ("Choose a file to encode", File::getSpecialLocation (File::userDesktopDirectory), "*.*"); if (myChooser.browseForFileToOpen()) { inputFile = myChooser.getResult(); inputFilePath->setText (inputFile.getFullPathName(), false); if (outputFilePath->getText().isEmpty()) { outputFile = inputFile.withFileExtension(T("b64")); outputFilePath->setText (inputFile.withFileExtension(T("b64")).getFullPathName(), false); } } //[/UserButtonCode_inputFileBrowse] } else if (buttonThatWasClicked == encodeStart) { //[UserButtonCode_encodeStart] -- add your button handler code here.. encoderOutput->clear(); encoderThread = new EncoderThread (inputFile, writeToFileBtn->getToggleState(), outputFile, true, outputAsXmlBtn->getToggleState(), xmlElementName->getText()); encoderThread->addChangeListener (this); encoderThread->runThread(); //[/UserButtonCode_encodeStart] } else if (buttonThatWasClicked == writeToFileBtn) { //[UserButtonCode_writeToFileBtn] -- add your button handler code here.. //[/UserButtonCode_writeToFileBtn] } else if (buttonThatWasClicked == outputFileBrowse) { //[UserButtonCode_outputFileBrowse] -- add your button handler code here.. FileChooser myChooser ("Choose an output file", File::getSpecialLocation (File::userDesktopDirectory), "*.*"); if (myChooser.browseForFileToSave (true)) { outputFile = myChooser.getResult(); outputFilePath->setText (outputFile.getFullPathName(), false); } //[/UserButtonCode_outputFileBrowse] } else if (buttonThatWasClicked == outputAsXmlBtn) { //[UserButtonCode_outputAsXmlBtn] -- add your button handler code here.. if (outputAsXmlBtn->getToggleState()) { xmlElementName->setEnabled (true); } else { xmlElementName->setEnabled (false); } //[/UserButtonCode_outputAsXmlBtn] } //[UserbuttonClicked_Post] //[/UserbuttonClicked_Post] }
void MLPluginController::doPresetMenu(int result) { switch(result) { // do another menu command case (0): // dismiss break; case (1): // save as version in current dir if(getProcessor()->saveStateAsVersion() != MLProc::OK) { AlertWindow::showMessageBox (AlertWindow::NoIcon, String::empty, "", "OK"); } break; case (2): // save over previous if(getProcessor()->saveStateOverPrevious() != MLProc::OK) { AlertWindow::showMessageBox (AlertWindow::NoIcon, String::empty, "", "OK"); } break; case (3): // save as ... { String errStr; File userPresetsFolder = getDefaultFileLocation(kPresetFiles); if (userPresetsFolder != File::nonexistent) { bool nativeChooserUI = true; FileChooser fc ("Save preset as...", userPresetsFolder, String::empty, nativeChooserUI); if (fc.browseForFileToSave (true)) { File saveFile = fc.getResult(); std::string fullSavePath(saveFile.getFullPathName().toUTF8()); getProcessor()->saveStateToLongFileName(fullSavePath); } } else { errStr = ("Error: user presets folder did not exist and could not be created."); AlertWindow::showMessageBox (AlertWindow::NoIcon, String::empty, errStr, "OK"); } } break; case (4): // revert getProcessor()->returnToLatestStateLoaded(); break; case (5): // copy SystemClipboard::copyTextToClipboard (getProcessor()->getStateAsText()); break; case (6): // paste getProcessor()->setPatchStateFromText (SystemClipboard::getTextFromClipboard()); break; #if SHOW_CONVERT_PRESETS #if ML_MAC case (7): // show convert alert box convertPresets(); getProcessor()->scanAllFilesImmediate(); break; #endif #endif default: // load preset loadPresetByMenuIndex(result); break; } }
void BigClockEditor::buttonStateChanged (Button* buttonThatWasClicked) { if (buttonThatWasClicked->isDown()) { ModifierKeys mousebutton = ModifierKeys::getCurrentModifiers(); if (mousebutton.isPopupMenu()) { bool samplemode = getFilter()->getParameter(kSamples)>=0.5f; PopupMenu m, sub1,sub2,sub3,sub4,clockmode; sub1.addCustomItem (-1, colourSelector, 300, 300, false); m.addSubMenu (L"Color", sub1); m.addSeparator(); clockmode.addItem(100,"Host Timeline",true,getFilter()->mode == HostTimeMode); clockmode.addItem(101,"Recording Time",true,getFilter()->mode == RecTimeMode); clockmode.addItem(102,"Stopwatch",true,getFilter()->mode == StopwatchMode); clockmode.addItem(103,"Plugin Time",true,getFilter()->mode == PluginTimeMode); clockmode.addItem(104,"Actual Time",true,getFilter()->mode == ActualTimeMode); m.addSubMenu("Clock Mode",clockmode); m.addItem(120,"Reset",getFilter()->mode != HostTimeMode && getFilter()->mode != ActualTimeMode); m.addSeparator(); sub4.addItem(998,L"Show Cues",true,showtextbox); sub4.addItem(996,L"Import..."); sub4.addItem(997,L"Export...",getFilter()->cues.size()>0); sub4.addItem(999,L"Clear",getFilter()->cues.size()>0); for (int i=0;i<getFilter()->cues.size();i++) { sub4.addItem(1000+i, getFilter()->ppqToString(getFilter()->cues[i]->ppq, getFilter()->lastPosInfo.timeSigNumerator, getFilter()->lastPosInfo.timeSigDenominator, getFilter()->lastPosInfo.bpm,barsbeats) + " - " + getFilter()->cues[i]->text,true,getFilter()->cues[i]->enabled); } m.addSubMenu (L"Cues", sub4, getFilter()->mode==HostTimeMode); m.addSeparator(); m.addItem (3, L"Bars|Beats|Ticks", true, barsbeats && !samplemode); float ppqn = getFilter()->getParameter(kTicks); sub2.addItem(30,L"hide ticks",true,ppqn==1.0); sub2.addItem(31,L"4",true,ppqn<1.0 && ppqn>=0.9); sub2.addItem(32,L"16",true,ppqn<0.9 && ppqn>=0.8); sub2.addItem(33,L"48",true,ppqn<0.8 && ppqn>=0.7); sub2.addItem(34,L"96",true,ppqn<0.7 && ppqn>=0.65); sub2.addItem(35,L"100",true,ppqn<0.65 && ppqn>=0.6); sub2.addItem(36,L"120",true,ppqn<0.6 && ppqn>=0.5); sub2.addItem(37,L"192",true,ppqn<0.5 && ppqn>=0.4); sub2.addItem(38,L"240",true,ppqn<0.4 && ppqn>=0.3); sub2.addItem(39,L"384",true,ppqn<0.3 && ppqn>=0.2); sub2.addItem(40,L"480",true,ppqn<0.2 && ppqn>=0.1); sub2.addItem(41,L"768",true,ppqn<0.1 && ppqn>0.0); sub2.addItem(42,L"960",true,ppqn==0.0); m.addSubMenu (L"Ticks per beat", sub2,barsbeats && !samplemode); m.addSeparator(); m.addItem (4, L"Hour:Min:Sec", true, !barsbeats && !samplemode); float fps = getFilter()->getParameter(kFrames); sub3.addItem(50,L"ms (1000)",true,fps==0.0); sub3.addItem(51,L"120",true,fps==1.0); sub3.addItem(52,L"100",true,fps<1.0 && fps>=0.9); sub3.addItem(53,L"75",true,fps<0.9 && fps>=0.8); sub3.addItem(54,L"60",true,fps<0.8 && fps>=0.7); sub3.addItem(55,L"50",true,fps<0.7 && fps>=0.6); sub3.addItem(56,L"30",true,fps<0.6 && fps>=0.5); sub3.addItem(61,L"29.97 drop",true,fps<0.5 && fps>=0.4); sub3.addItem(57,L"25",true,fps<0.4 && fps>=0.3); sub3.addItem(58,L"24",true,fps<0.3 && fps>=0.2); sub3.addItem(59,L"15",true,fps<0.2 && fps>=0.1); sub3.addItem(60,L"10",true,fps<0.1 && fps>0.0); m.addSubMenu (L"Frames per second", sub3, !barsbeats && !samplemode); m.addItem (1, L"Show ms/frames", !barsbeats && !samplemode, getFilter()->getParameter(kShowms)>=0.5); m.addItem (6, L"Show subframes", !barsbeats && !samplemode && getFilter()->getParameter(kShowms)>=0.5, getFilter()->getParameter(kShowsubfr)>=0.5); m.addItem (2, L"Show hours", !barsbeats && !samplemode, getFilter()->getParameter(kShowhrs)>=0.5); m.addSeparator(); m.addItem (5, L"Samples", true, samplemode); int result = m.show(); if (result > 0) { if (result==1) { if (getFilter()->getParameter(kShowms)>=0.5) getFilter()->setParameter(kShowms,0.0); else getFilter()->setParameter(kShowms,1.0); } else if (result==2) { if (getFilter()->getParameter(kShowhrs)>=0.5f) getFilter()->setParameter(kShowhrs,0.0f); else getFilter()->setParameter(kShowhrs,1.0f); } else if (result==3) { if (barsbeats && !samplemode) { } else { getFilter()->setParameter(kBarsBeats,1.0f); getFilter()->setParameter(kSamples,0.0f); } } else if (result>=30 && result<50) { if (result==30) getFilter()->setParameter(kTicks,1.0f); else if (result==31) getFilter()->setParameter(kTicks,0.91f); else if (result==32) getFilter()->setParameter(kTicks,0.81f); else if (result==33) getFilter()->setParameter(kTicks,0.71f); else if (result==34) getFilter()->setParameter(kTicks,0.65f); else if (result==35) getFilter()->setParameter(kTicks,0.61f); else if (result==36) getFilter()->setParameter(kTicks,0.51f); else if (result==37) getFilter()->setParameter(kTicks,0.41f); else if (result==38) getFilter()->setParameter(kTicks,0.31f); else if (result==39) getFilter()->setParameter(kTicks,0.21f); else if (result==40) getFilter()->setParameter(kTicks,0.11f); else if (result==41) getFilter()->setParameter(kTicks,0.051f); else if (result==42) getFilter()->setParameter(kTicks,0.0f); } else if (result==4) { if (!barsbeats && !samplemode) { } else { getFilter()->setParameter(kBarsBeats,0.0f); getFilter()->setParameter(kSamples,0.0f); } } else if (result>=50 && result<70) { if (result==50) getFilter()->setParameter(kFrames,0.0f); else if (result==51) getFilter()->setParameter(kFrames,1.0f); else if (result==52) getFilter()->setParameter(kFrames,0.9f); else if (result==53) getFilter()->setParameter(kFrames,0.8f); else if (result==54) getFilter()->setParameter(kFrames,0.7f); else if (result==55) getFilter()->setParameter(kFrames,0.6f); else if (result==56) getFilter()->setParameter(kFrames,0.5f); else if (result==61) getFilter()->setParameter(kFrames,0.4f); else if (result==57) getFilter()->setParameter(kFrames,0.3f); else if (result==58) getFilter()->setParameter(kFrames,0.2f); else if (result==59) getFilter()->setParameter(kFrames,0.1f); else if (result==60) getFilter()->setParameter(kFrames,0.05f); } else if (result==5) { if (!samplemode) getFilter()->setParameter(kSamples,1.0f); } else if (result==6) { getFilter()->setParameter(kShowsubfr,getFilter()->getParameter(kShowsubfr)>=0.5f?0.0f:1.0f); } else if (result==100) { getFilter()->setParameter(kClockMode,0.f); } else if (result==101) { getFilter()->setParameter(kClockMode,1.f/(float)(numModes-1)); } else if (result==102) { getFilter()->setParameter(kClockMode,2.f/(float)(numModes-1)); } else if (result==103) { getFilter()->setParameter(kClockMode,3.f/(float)(numModes-1)); } else if (result==104) { getFilter()->setParameter(kClockMode,4.f/(float)(numModes-1)); } else if (result==120) { if (getFilter()->mode==StopwatchMode) getFilter()->setParameter(kClearWatch,1.f); else if (getFilter()->mode==RecTimeMode) getFilter()->rectime=0; else if (getFilter()->mode==PluginTimeMode) getFilter()->plugintime=Time::getMillisecondCounter(); } else if (result==998) { getFilter()->showcues=!showtextbox; updateParametersFromFilter(); resized(); repaint(); } else if (result==996) { FileChooser myChooser ("Import cue file...", File(getFilter()->getCurrentPath()), "*.xml"); if (myChooser.browseForFileToOpen()) { File file (myChooser.getResult()); getFilter()->loadCues(file); } } else if (result==997) { FileChooser myChooser ("Export cue file...", File(getFilter()->getCurrentPath() + File::separatorString + "cues.xml")); if (myChooser.browseForFileToSave(true)) { File cuefile (myChooser.getResult()); if (!cuefile.hasFileExtension("xml")) cuefile = cuefile.withFileExtension("xml"); getFilter()->saveCues(cuefile); } } else if (result==999) { getFilter()->cues.clear(); cueLabel->setText(String::empty,false); } else if (result>=1000) { getFilter()->setCueEnabled(result-1000,!(getFilter()->cues[result-1000]->enabled)); updateParametersFromFilter(); } } } } }
void ConsoleComponent::buttonClicked (Button* buttonThatWasClicked) { //[UserbuttonClicked_Pre] //[/UserbuttonClicked_Pre] if (buttonThatWasClicked == loadButton) { //[UserButtonCode_loadButton] -- add your button handler code here.. FileChooser chooser ("Select X1 Show file to load...", File::getSpecialLocation (File::userHomeDirectory), "*.x1"); if (chooser.browseForFileToOpen()) { File show (chooser.getResult()); ShowLoader loader (show, console); loader.runThread(); if (loader.getResult()) { loadedLabel->setText ("File: " + show.getFileName(), dontSendNotification); updateStats(); int n; for (n = 1; n < 1000000; ++n) if (console->setCue (xFader, n) == n) break; if (n < 1000000) xCueButton->setButtonText (String (n)); for (++n; n < 1000000; ++n) if (console->setCue (yFader, n) == n) break; if (n < 1000000) yCueButton->setButtonText (String (n)); } else AlertWindow::showMessageBox(AlertWindow::WarningIcon, "Error", "The file could not be loaded."); } //[/UserButtonCode_loadButton] } else if (buttonThatWasClicked == newButton) { //[UserButtonCode_newButton] -- add your button handler code here.. console->newShow(); loadedLabel->setText ("File:", dontSendNotification); updateStats(); //[/UserButtonCode_newButton] } else if (buttonThatWasClicked == clearAllButton) { //[UserButtonCode_clearAllButton] -- add your button handler code here.. console->clearAllFaders(); xCueButton->setButtonText("0"); yCueButton->setButtonText("0"); //[/UserButtonCode_clearAllButton] } else if (buttonThatWasClicked == xCueButton) { //[UserButtonCode_xCueButton] -- add your button handler code here.. console->startFade (xFader, 8192, 3.0); console->startFade (yFader, 0, 3.0); //[/UserButtonCode_xCueButton] } else if (buttonThatWasClicked == yCueButton) { //[UserButtonCode_yCueButton] -- add your button handler code here.. console->startFade (xFader, 0, 3.0); console->startFade (yFader, 8192, 3.0); //[/UserButtonCode_yCueButton] } else if (buttonThatWasClicked == artnetButton) { //[UserButtonCode_artnetButton] -- add your button handler code here.. console->setArtNetOutput (artnetButton->getToggleState()); //[/UserButtonCode_artnetButton] } //[UserbuttonClicked_Post] //[/UserbuttonClicked_Post] }
void ContentComponent::buttonClicked (Button* buttonThatWasClicked) { //[UserbuttonClicked_Pre] //[/UserbuttonClicked_Pre] if (buttonThatWasClicked == openButton) { //[UserButtonCode_openButton] -- add your button handler code here.. bool movieLoaded = false; bool cancelled = false; FileChooser chooser ("Choose a Movie File", File(), "*.mp4"); if (chooser.browseForFileToOpen()) { movieLoaded = tick->openFile (chooser.getResult()); } else { cancelled = true; } if (cancelled) return; if (! movieLoaded) { AlertWindow::showMessageBox (AlertWindow::WarningIcon, "Error", "Could not open movie file"); } else { } //[/UserButtonCode_openButton] } else if (buttonThatWasClicked == forwardButton) { //[UserButtonCode_forwardButton] -- add your button handler code here.. //[/UserButtonCode_forwardButton] } else if (buttonThatWasClicked == backButton) { //[UserButtonCode_backButton] -- add your button handler code here.. //[/UserButtonCode_backButton] } else if (buttonThatWasClicked == playButton) { //[UserButtonCode_playButton] -- add your button handler code here.. tick->setPlaying (! tick->isPlaying()); stabilizeComponents(); //[/UserButtonCode_playButton] } else if (buttonThatWasClicked == stopButton) { //[UserButtonCode_stopButton] -- add your button handler code here.. tick->setPlaying (false); tick->requestPlayPosition (0.0); stabilizeComponents(); //[/UserButtonCode_stopButton] } else if (buttonThatWasClicked == audioButton) { //[UserButtonCode_audioButton] -- add your button handler code here.. DialogWindow::LaunchOptions dialog; dialog.content.setOwned (new AudioDeviceSelectorComponent ( devices, 0, 0, 2, 2, false, false, true,false)); dialog.dialogTitle = "Audio Device"; dialog.componentToCentreAround = this; dialog.content->setSize (384, 444); dialog.resizable = false; dialog.runModal(); //[/UserButtonCode_audioButton] } //[UserbuttonClicked_Post] //[/UserbuttonClicked_Post] }
//=============================================================================== void CabbageFileButton::buttonClicked (Button* button) { if (mode == "file") { const String lastKnownDirectory = owner->getLastOpenedDirectory(); FileChooser fc ("Choose File", lastKnownDirectory.isEmpty() ? File (getCsdFile()).getParentDirectory() : File (lastKnownDirectory), "", CabbageUtilities::shouldUseNativeBrowser()); if (fc.browseForFileToOpen()) { owner->sendChannelStringDataToCsound (getChannel(), returnValidPath (fc.getResult())); CabbageWidgetData::setStringProp (widgetData, CabbageIdentifierIds::file, returnValidPath (fc.getResult())); //owner->refreshComboBoxContents(); } owner->setLastOpenedDirectory (fc.getResult().getParentDirectory().getFullPathName()); } else if (mode == "save") { const String lastKnownDirectory = owner->getLastOpenedDirectory(); FileChooser fc ("Choose File", lastKnownDirectory.isEmpty() ? File (getCsdFile()).getParentDirectory() : File (lastKnownDirectory), "", CabbageUtilities::shouldUseNativeBrowser()); if (fc.browseForFileToSave(true)) { owner->sendChannelStringDataToCsound (getChannel(), returnValidPath (fc.getResult())); CabbageWidgetData::setStringProp (widgetData, CabbageIdentifierIds::file, returnValidPath (fc.getResult())); //owner->refreshComboBoxContents(); } owner->setLastOpenedDirectory (fc.getResult().getParentDirectory().getFullPathName()); owner->refreshComboListBoxContents(); startTimer(500); } else if (mode == "directory") { const String lastKnownDirectory = owner->getLastOpenedDirectory(); FileChooser fc ("Open Directory", lastKnownDirectory.isEmpty() ? File (getCsdFile()).getChildFile (getFilename()) : File (lastKnownDirectory), "", CabbageUtilities::shouldUseNativeBrowser()); if (fc.browseForDirectory()) { owner->sendChannelStringDataToCsound (getChannel(), returnValidPath (fc.getResult())); CabbageWidgetData::setStringProp (widgetData, CabbageIdentifierIds::file, returnValidPath (fc.getResult())); } owner->setLastOpenedDirectory (fc.getResult().getParentDirectory().getFullPathName()); } else if (mode == "snapshot") { String newFileName; if (owner->isAudioUnit()) newFileName = File(getCsdFile()).withFileExtension(".snaps").getFullPathName(); else newFileName = owner->createNewGenericNameForPresetFile(); owner->sendChannelStringDataToCsound (getChannel(), newFileName); owner->savePluginStateToFile (File (newFileName)); owner->refreshComboListBoxContents(); } else if (mode == "named snapshot") { String newFileName; if (owner->isAudioUnit()) newFileName = File(getCsdFile()).withFileExtension(".snaps").getFullPathName(); else newFileName = owner->createNewGenericNameForPresetFile(); #if JUCE_MODAL_LOOPS_PERMITTED String presetname; AlertWindow w ("Preset", "Set preset name (warning, will overwrite previous preset of same name)", AlertWindow::NoIcon); w.setLookAndFeel(&getLookAndFeel()); w.setSize(100, 100); w.addTextEditor ("text", "enter name here", ""); w.addButton ("OK", 1, KeyPress (KeyPress::returnKey, 0, 0)); w.addButton ("Cancel", 0, KeyPress (KeyPress::escapeKey, 0, 0)); if (w.runModalLoop() != 0) // is they picked 'ok' { presetname = w.getTextEditorContents ("text"); } #endif owner->sendChannelStringDataToCsound (getChannel(), newFileName); owner->savePluginStateToFile (File (newFileName), presetname); owner->refreshComboListBoxContents(); } owner->getProcessor().updateHostDisplay(); }
void showWindow (Component& button, DialogType type) { if (type >= plainAlertWindow && type <= questionAlertWindow) { AlertWindow::AlertIconType icon = AlertWindow::NoIcon; switch (type) { case warningAlertWindow: icon = AlertWindow::WarningIcon; break; case infoAlertWindow: icon = AlertWindow::InfoIcon; break; case questionAlertWindow: icon = AlertWindow::QuestionIcon; break; default: break; } AlertWindow::showMessageBoxAsync (icon, "This is an AlertWindow", "And this is the AlertWindow's message. Blah blah blah blah blah blah blah blah blah blah blah blah blah.", "ok"); } else if (type == okCancelAlertWindow) { AlertWindow::showOkCancelBox (AlertWindow::QuestionIcon, "This is an ok/cancel AlertWindow", "And this is the AlertWindow's message. Blah blah blah blah blah blah blah blah blah blah blah blah blah.", String::empty, String::empty, 0, ModalCallbackFunction::forComponent (alertBoxResultChosen, this)); } else if (type == calloutBoxWindow) { ColourSelector* colourSelector = new ColourSelector(); colourSelector->setName ("background"); colourSelector->setCurrentColour (findColour (TextButton::buttonColourId)); colourSelector->setColour (ColourSelector::backgroundColourId, Colours::transparentBlack); colourSelector->setSize (300, 400); CallOutBox::launchAsynchronously (colourSelector, button.getScreenBounds(), nullptr); } else if (type == extraComponentsAlertWindow) { #if JUCE_MODAL_LOOPS_PERMITTED AlertWindow w ("AlertWindow demo..", "This AlertWindow has a couple of extra components added to show how to add drop-down lists and text entry boxes.", AlertWindow::QuestionIcon); w.addTextEditor ("text", "enter some text here", "text field:"); const char* options[] = { "option 1", "option 2", "option 3", "option 4", nullptr }; w.addComboBox ("option", StringArray (options), "some options"); w.addButton ("ok", 1, KeyPress (KeyPress::returnKey, 0, 0)); w.addButton ("cancel", 0, KeyPress (KeyPress::escapeKey, 0, 0)); if (w.runModalLoop() != 0) // is they picked 'ok' { // this is the item they chose in the drop-down list.. const int optionIndexChosen = w.getComboBoxComponent ("option")->getSelectedItemIndex(); (void) optionIndexChosen; // (just avoids a compiler warning about unused variables) // this is the text they entered.. String text = w.getTextEditorContents ("text"); } #endif } else if (type == progressWindow) { // This will launch our ThreadWithProgressWindow in a modal state. (Our subclass // will take care of deleting the object when the task has finished) (new DemoBackgroundThread())->launchThread(); } else if (type >= loadChooser && type <= saveChooser) { #if JUCE_MODAL_LOOPS_PERMITTED const bool useNativeVersion = nativeButton.getToggleState(); if (type == loadChooser) { FileChooser fc ("Choose a file to open...", File::getCurrentWorkingDirectory(), "*", useNativeVersion); if (fc.browseForMultipleFilesToOpen()) { String chosen; for (int i = 0; i < fc.getResults().size(); ++i) chosen << fc.getResults().getReference(i).getFullPathName() << "\n"; AlertWindow::showMessageBoxAsync (AlertWindow::InfoIcon, "File Chooser...", "You picked: " + chosen); } } else if (type == loadWithPreviewChooser) { ImagePreviewComponent imagePreview; imagePreview.setSize (200, 200); FileChooser fc ("Choose an image to open...", File::getSpecialLocation (File::userPicturesDirectory), "*.jpg;*.jpeg;*.png;*.gif", useNativeVersion); if (fc.browseForMultipleFilesToOpen (&imagePreview)) { String chosen; for (int i = 0; i < fc.getResults().size(); ++i) chosen << fc.getResults().getReference (i).getFullPathName() << "\n"; AlertWindow::showMessageBoxAsync (AlertWindow::InfoIcon, "File Chooser...", "You picked: " + chosen); } } else if (type == saveChooser) { FileChooser fc ("Choose a file to save...", File::getCurrentWorkingDirectory(), "*", useNativeVersion); if (fc.browseForFileToSave (true)) { File chosenFile = fc.getResult(); AlertWindow::showMessageBoxAsync (AlertWindow::InfoIcon, "File Chooser...", "You picked: " + chosenFile.getFullPathName()); } } else if (type == directoryChooser) { FileChooser fc ("Choose a directory...", File::getCurrentWorkingDirectory(), "*", useNativeVersion); if (fc.browseForDirectory()) { File chosenDirectory = fc.getResult(); AlertWindow::showMessageBoxAsync (AlertWindow::InfoIcon, "File Chooser...", "You picked: " + chosenDirectory.getFullPathName()); } } #endif } }