void ProjectContentComponent::handleMissingSystemHeaders() { #if JUCE_MAC const String tabMessage = "Compiler not available due to missing system headers\nPlease install a recent version of Xcode"; const String alertWindowMessage = "Missing system headers\nPlease install a recent version of Xcode"; #elif JUCE_WINDOWS const String tabMessage = "Compiler not available due to missing system headers\nPlease install a recent version of Visual Studio and the Windows Desktop SDK"; const String alertWindowMessage = "Missing system headers\nPlease install a recent version of Visual Studio and the Windows Desktop SDK"; #elif JUCE_LINUX const String tabMessage = "Compiler not available due to missing system headers\nPlease do a sudo apt-get install ..."; const String alertWindowMessage = "Missing system headers\nPlease do sudo apt-get install ..."; #endif setBuildEnabled (false); deleteProjectTabs(); createProjectTabs(); if (auto* bt = getLiveBuildTab()) { bt->isEnabled = false; bt->errorMessage = tabMessage; } showBuildTab(); AlertWindow::showMessageBox (AlertWindow::AlertIconType::WarningIcon, "Missing system headers", alertWindowMessage); }
void ProjectContentComponent::rebuildProjectTabs() { deleteProjectTabs(); if (project != nullptr) { addAndMakeVisible (sidebarTabs); createProjectTabs(); //====================================================================== auto& settings = project->getStoredProperties(); auto lastTreeWidth = settings.getValue ("projectPanelWidth").getIntValue(); if (lastTreeWidth < 150) lastTreeWidth = 240; sidebarTabs.setBounds (0, 0, lastTreeWidth, getHeight()); sidebarTabs.setCurrentTabIndex (settings.getValue ("lastViewedTabIndex", "0").getIntValue()); auto* projectTab = getProjectTab(); for (int i = 2; i >= 0; --i) projectTab->setPanelHeightProportion (i, settings.getValue ("projectTabPanelHeight" + String (i), String ("1")) .getFloatValue()); //====================================================================== addAndMakeVisible (resizerBar = new ResizableEdgeComponent (&sidebarTabs, &sidebarSizeConstrainer, ResizableEdgeComponent::rightEdge)); resizerBar->setAlwaysOnTop (true); project->addChangeListener (this); updateMissingFileStatuses(); if (auto* h = dynamic_cast<HeaderComponent*> (header.get())) { h->setVisible (true); h->setCurrentProject (project); } } else { sidebarTabs.setVisible (false); header->setVisible (false); } resized(); }
void ProjectContentComponent::rebuildProjectTabs() { deleteProjectTabs(); if (project != nullptr) { addAndMakeVisible (treeViewTabs); createProjectTabs(); PropertiesFile& settings = project->getStoredProperties(); const String lastTabName (settings.getValue ("lastTab")); int lastTabIndex = treeViewTabs.getTabNames().indexOf (lastTabName); if (lastTabIndex < 0 || lastTabIndex > treeViewTabs.getNumTabs()) lastTabIndex = 1; treeViewTabs.setCurrentTabIndex (lastTabIndex); int lastTreeWidth = settings.getValue ("projectPanelWidth").getIntValue(); if (lastTreeWidth < 150) lastTreeWidth = 240; treeViewTabs.setBounds (0, 0, lastTreeWidth, getHeight()); addAndMakeVisible (resizerBar = new ResizableEdgeComponent (&treeViewTabs, &treeSizeConstrainer, ResizableEdgeComponent::rightEdge)); resizerBar->setAlwaysOnTop (true); project->addChangeListener (this); updateMissingFileStatuses(); } else { treeViewTabs.setVisible (false); } resized(); }