diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_XCode.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_XCode.h index 84a3f349fc..5f80b299fe 100644 --- a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_XCode.h +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_XCode.h @@ -114,7 +114,8 @@ public: if (projectType.isGUIApplication() && ! iOS) { props.add (new TextPropertyComponent (getSetting ("documentExtensions"), "Document file extensions", 128, false), - "A comma-separated list of file extensions for documents that your app can open."); + "A comma-separated list of file extensions for documents that your app can open. " + "Using a leading '.' is optional, and the extensions are not case-sensitive."); } else if (iOS) { diff --git a/extras/Introjucer/Source/Utility/jucer_JucerTreeViewBase.h b/extras/Introjucer/Source/Utility/jucer_JucerTreeViewBase.h index b0eda0fe97..5a4cf7b661 100644 --- a/extras/Introjucer/Source/Utility/jucer_JucerTreeViewBase.h +++ b/extras/Introjucer/Source/Utility/jucer_JucerTreeViewBase.h @@ -160,6 +160,25 @@ public: rootItem->deleteAllSelectedItems(); } + void setEmptyTreeMessage (const String& newMessage) + { + if (emptyTreeMessage != newMessage) + { + emptyTreeMessage = newMessage; + repaint(); + } + } + + void paint (Graphics& g) + { + if (emptyTreeMessage.isNotEmpty() && (rootItem == nullptr || rootItem->getNumSubItems() == 0)) + { + g.setColour (findColour (mainBackgroundColourId).contrasting (0.7f)); + g.setFont (13.0f); + g.drawFittedText (emptyTreeMessage, getLocalBounds().reduced (4, 2), Justification::centred, 50); + } + } + void resized() { tree.setBounds (getAvailableBounds()); @@ -174,7 +193,7 @@ public: ScopedPointer rootItem; private: - String opennessStateKey; + String opennessStateKey, emptyTreeMessage; }; //==============================================================================