1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-30 02:50:05 +00:00

Projucer: Added a "PIP Creator" utility tool

This commit is contained in:
ed 2018-03-22 15:23:27 +00:00
parent bfd3afa6cf
commit 8a467e7dc3
18 changed files with 710 additions and 38 deletions

View file

@ -380,6 +380,7 @@ void ProjucerApplication::createFileMenu (PopupMenu& menu)
{
menu.addCommandItem (commandManager, CommandIDs::newProject);
menu.addCommandItem (commandManager, CommandIDs::newProjectFromClipboard);
menu.addCommandItem (commandManager, CommandIDs::newPIP);
menu.addSeparator();
menu.addCommandItem (commandManager, CommandIDs::open);
@ -902,6 +903,7 @@ void ProjucerApplication::getAllCommands (Array <CommandID>& commands)
const CommandID ids[] = { CommandIDs::newProject,
CommandIDs::newProjectFromClipboard,
CommandIDs::newPIP,
CommandIDs::open,
CommandIDs::launchDemoRunner,
CommandIDs::closeAllWindows,
@ -936,6 +938,11 @@ void ProjucerApplication::getCommandInfo (CommandID commandID, ApplicationComman
result.defaultKeypresses.add (KeyPress ('n', ModifierKeys::commandModifier | ModifierKeys::shiftModifier, 0));
break;
case CommandIDs::newPIP:
result.setInfo ("New PIP...", "Opens the PIP Creator utility for creating a new PIP", CommandCategories::general, 0);
result.defaultKeypresses.add (KeyPress ('p', ModifierKeys::commandModifier, 0));
break;
case CommandIDs::launchDemoRunner:
#if JUCE_LINUX
if (makeProcess.isRunning())
@ -1045,6 +1052,7 @@ bool ProjucerApplication::perform (const InvocationInfo& info)
{
case CommandIDs::newProject: createNewProject(); break;
case CommandIDs::newProjectFromClipboard: createNewProjectFromClipboard(); break;
case CommandIDs::newPIP: createNewPIP(); break;
case CommandIDs::open: askUserToOpenFile(); break;
case CommandIDs::launchDemoRunner: launchDemoRunner(); break;
case CommandIDs::saveAll: openDocumentManager.saveAll(); break;
@ -1094,6 +1102,11 @@ void ProjucerApplication::createNewProjectFromClipboard()
}
}
void ProjucerApplication::createNewPIP()
{
showPIPCreatorWindow();
}
void ProjucerApplication::updateNewlyOpenedProject (Project& p)
{
LiveBuildProjectSettings::updateNewlyOpenedProject (p);
@ -1147,8 +1160,7 @@ void ProjucerApplication::showUTF8ToolWindow()
if (utf8Window != nullptr)
utf8Window->toFront (true);
else
new FloatingToolWindow ("UTF-8 String Literal Converter",
"utf8WindowPos",
new FloatingToolWindow ("UTF-8 String Literal Converter", "utf8WindowPos",
new UTF8Component(), utf8Window, true,
500, 500, 300, 300, 1000, 1000);
}
@ -1158,8 +1170,7 @@ void ProjucerApplication::showSVGPathDataToolWindow()
if (svgPathWindow != nullptr)
svgPathWindow->toFront (true);
else
new FloatingToolWindow ("SVG Path Converter",
"svgPathWindowPos",
new FloatingToolWindow ("SVG Path Converter", "svgPathWindowPos",
new SVGPathDataComponent(), svgPathWindow, true,
500, 500, 300, 300, 1000, 1000);
}
@ -1179,9 +1190,8 @@ void ProjucerApplication::showApplicationUsageDataAgreementPopup()
if (applicationUsageDataWindow != nullptr)
applicationUsageDataWindow->toFront (true);
else
new FloatingToolWindow ("Application Usage Analytics",
{}, new ApplicationUsageDataWindowComponent (isPaidOrGPL()),
applicationUsageDataWindow, false,
new FloatingToolWindow ("Application Usage Analytics", {},
new ApplicationUsageDataWindowComponent (isPaidOrGPL()), applicationUsageDataWindow, false,
400, 300, 400, 300, 400, 300);
}
@ -1196,8 +1206,7 @@ void ProjucerApplication::showPathsWindow (bool highlightJUCEPath)
if (pathsWindow != nullptr)
pathsWindow->toFront (true);
else
new FloatingToolWindow ("Global Paths",
"pathsWindowPos",
new FloatingToolWindow ("Global Paths", "pathsWindowPos",
new GlobalPathsWindowComponent(), pathsWindow, false,
600, 650, 600, 650, 600, 650);
@ -1211,14 +1220,19 @@ void ProjucerApplication::showEditorColourSchemeWindow()
if (editorColourSchemeWindow != nullptr)
editorColourSchemeWindow->toFront (true);
else
{
new FloatingToolWindow ("Editor Colour Scheme",
"editorColourSchemeWindowPos",
new EditorColourSchemeWindowComponent(),
editorColourSchemeWindow,
false,
new FloatingToolWindow ("Editor Colour Scheme", "editorColourSchemeWindowPos",
new EditorColourSchemeWindowComponent(), editorColourSchemeWindow, false,
500, 500, 500, 500, 500, 500);
}
}
void ProjucerApplication::showPIPCreatorWindow()
{
if (pipCreatorWindow != nullptr)
pipCreatorWindow->toFront (true);
else
new FloatingToolWindow ("PIP Creator", "pipCreatorWindowPos",
new PIPCreatorWindowComponent(), pipCreatorWindow, false,
600, 750, 600, 750, 600, 750);
}
void ProjucerApplication::launchForumBrowser()
@ -1425,6 +1439,7 @@ void ProjucerApplication::setColourScheme (int index, bool saveSetting)
if (applicationUsageDataWindow != nullptr) applicationUsageDataWindow->sendLookAndFeelChange();
if (pathsWindow != nullptr) pathsWindow->sendLookAndFeelChange();
if (editorColourSchemeWindow != nullptr) editorColourSchemeWindow->sendLookAndFeelChange();
if (pipCreatorWindow != nullptr) pipCreatorWindow->sendLookAndFeelChange();
auto* mcm = ModalComponentManager::getInstance();
for (auto i = 0; i < mcm->getNumModalComponents(); ++i)