| @@ -242,7 +242,8 @@ const File Project::resolveFilename (String filename) const | |||
| if (filename.isEmpty()) | |||
| return File::nonexistent; | |||
| filename = replacePreprocessorDefs (getPreprocessorDefs(), filename); | |||
| filename = replacePreprocessorDefs (getPreprocessorDefs(), filename) | |||
| .replaceCharacter ('\\', '/'); | |||
| if (File::isAbsolutePath (filename)) | |||
| return File (filename); | |||
| @@ -17324,13 +17324,9 @@ void ValueTree::SharedObject::sendPropertyChangeMessage (ValueTree& tree, const | |||
| void ValueTree::SharedObject::sendPropertyChangeMessage (const Identifier& property) | |||
| { | |||
| ValueTree tree (this); | |||
| ValueTree::SharedObject* t = this; | |||
| while (t != 0) | |||
| { | |||
| for (ValueTree::SharedObject* t = this; t != 0; t = t->parent) | |||
| t->sendPropertyChangeMessage (tree, property); | |||
| t = t->parent; | |||
| } | |||
| } | |||
| void ValueTree::SharedObject::sendChildAddedMessage (ValueTree& tree, ValueTree& child) | |||
| @@ -17346,13 +17342,9 @@ void ValueTree::SharedObject::sendChildAddedMessage (ValueTree& tree, ValueTree& | |||
| void ValueTree::SharedObject::sendChildAddedMessage (ValueTree child) | |||
| { | |||
| ValueTree tree (this); | |||
| ValueTree::SharedObject* t = this; | |||
| while (t != 0) | |||
| { | |||
| for (ValueTree::SharedObject* t = this; t != 0; t = t->parent) | |||
| t->sendChildAddedMessage (tree, child); | |||
| t = t->parent; | |||
| } | |||
| } | |||
| void ValueTree::SharedObject::sendChildRemovedMessage (ValueTree& tree, ValueTree& child) | |||
| @@ -17368,13 +17360,9 @@ void ValueTree::SharedObject::sendChildRemovedMessage (ValueTree& tree, ValueTre | |||
| void ValueTree::SharedObject::sendChildRemovedMessage (ValueTree child) | |||
| { | |||
| ValueTree tree (this); | |||
| ValueTree::SharedObject* t = this; | |||
| while (t != 0) | |||
| { | |||
| for (ValueTree::SharedObject* t = this; t != 0; t = t->parent) | |||
| t->sendChildRemovedMessage (tree, child); | |||
| t = t->parent; | |||
| } | |||
| } | |||
| void ValueTree::SharedObject::sendChildOrderChangedMessage (ValueTree& tree) | |||
| @@ -17390,13 +17378,9 @@ void ValueTree::SharedObject::sendChildOrderChangedMessage (ValueTree& tree) | |||
| void ValueTree::SharedObject::sendChildOrderChangedMessage() | |||
| { | |||
| ValueTree tree (this); | |||
| ValueTree::SharedObject* t = this; | |||
| while (t != 0) | |||
| { | |||
| for (ValueTree::SharedObject* t = this; t != 0; t = t->parent) | |||
| t->sendChildOrderChangedMessage (tree); | |||
| t = t->parent; | |||
| } | |||
| } | |||
| void ValueTree::SharedObject::sendParentChangeMessage() | |||
| @@ -76214,6 +76198,17 @@ PreferencesPanel::~PreferencesPanel() | |||
| { | |||
| } | |||
| int PreferencesPanel::getButtonSize() const throw() | |||
| { | |||
| return buttonSize; | |||
| } | |||
| void PreferencesPanel::setButtonSize (int newSize) | |||
| { | |||
| buttonSize = newSize; | |||
| resized(); | |||
| } | |||
| void PreferencesPanel::addSettingsPage (const String& title, | |||
| const Drawable* icon, | |||
| const Drawable* overIcon, | |||
| @@ -73,7 +73,7 @@ namespace JuceDummyNamespace {} | |||
| */ | |||
| #define JUCE_MAJOR_VERSION 1 | |||
| #define JUCE_MINOR_VERSION 53 | |||
| #define JUCE_BUILDNUMBER 59 | |||
| #define JUCE_BUILDNUMBER 60 | |||
| /** Current Juce version number. | |||
| @@ -2236,7 +2236,11 @@ public: | |||
| /** Implements a memory read/write barrier. */ | |||
| static void memoryBarrier() throw(); | |||
| JUCE_ALIGN(8) | |||
| #if JUCE_64BIT | |||
| JUCE_ALIGN (8) | |||
| #else | |||
| JUCE_ALIGN (4) | |||
| #endif | |||
| /** The raw value that this class operates on. | |||
| This is exposed publically in case you need to manipulate it directly | |||
| @@ -5455,15 +5459,24 @@ JUCE_API bool JUCE_CALLTYPE operator>= (const String& string1, const String& str | |||
| /** Case-sensitive comparison of two strings. */ | |||
| JUCE_API bool JUCE_CALLTYPE operator<= (const String& string1, const String& string2) throw(); | |||
| /** This streaming override allows you to pass a juce String directly into std output streams. | |||
| This is very handy for writing strings to std::cout, std::cerr, etc. | |||
| /** This operator allows you to write a juce String directly to std output streams. | |||
| This is handy for writing strings to std::cout, std::cerr, etc. | |||
| */ | |||
| template <class charT, class traits> | |||
| std::basic_ostream <charT, traits>& JUCE_CALLTYPE operator<< (std::basic_ostream <charT, traits>& stream, const String& stringToWrite) | |||
| template <class traits> | |||
| std::basic_ostream <char, traits>& JUCE_CALLTYPE operator<< (std::basic_ostream <char, traits>& stream, const String& stringToWrite) | |||
| { | |||
| return stream << stringToWrite.toUTF8().getAddress(); | |||
| } | |||
| /** This operator allows you to write a juce String directly to std output streams. | |||
| This is handy for writing strings to std::wcout, std::wcerr, etc. | |||
| */ | |||
| template <class traits> | |||
| std::basic_ostream <wchar_t, traits>& JUCE_CALLTYPE operator<< (std::basic_ostream <wchar_t, traits>& stream, const String& stringToWrite) | |||
| { | |||
| return stream << stringToWrite.toWideCharPointer(); | |||
| } | |||
| /** Writes a string to an OutputStream as UTF8. */ | |||
| JUCE_API OutputStream& JUCE_CALLTYPE operator<< (OutputStream& stream, const String& text); | |||
| @@ -34702,8 +34715,8 @@ public: | |||
| inline void skip (int numSamples) throw() { data += numSamples; } | |||
| inline float getAsFloatLE() const throw() { return (float) ((1.0 / (1.0 + maxValue)) * (int32) ByteOrder::swapIfBigEndian (*data)); } | |||
| inline float getAsFloatBE() const throw() { return (float) ((1.0 / (1.0 + maxValue)) * (int32) ByteOrder::swapIfLittleEndian (*data)); } | |||
| inline void setAsFloatLE (float newValue) throw() { *data = ByteOrder::swapIfBigEndian ((uint32) jlimit ((int) -maxValue, (int) maxValue, roundToInt (newValue * (1.0 + maxValue)))); } | |||
| inline void setAsFloatBE (float newValue) throw() { *data = ByteOrder::swapIfLittleEndian ((uint32) jlimit ((int) -maxValue, (int) maxValue, roundToInt (newValue * (1.0 + maxValue)))); } | |||
| inline void setAsFloatLE (float newValue) throw() { *data = ByteOrder::swapIfBigEndian ((uint32) (maxValue * jlimit (-1.0f, 1.0f, newValue))); } | |||
| inline void setAsFloatBE (float newValue) throw() { *data = ByteOrder::swapIfLittleEndian ((uint32) (maxValue * jlimit (-1.0f, 1.0f, newValue))); } | |||
| inline int32 getAsInt32LE() const throw() { return (int32) ByteOrder::swapIfBigEndian (*data); } | |||
| inline int32 getAsInt32BE() const throw() { return (int32) ByteOrder::swapIfLittleEndian (*data); } | |||
| inline void setAsInt32LE (int32 newValue) throw() { *data = ByteOrder::swapIfBigEndian ((uint32) newValue); } | |||
| @@ -63588,6 +63601,12 @@ public: | |||
| /** Changes the current page being displayed. */ | |||
| void setCurrentPage (const String& pageName); | |||
| /** Returns the size of the buttons shown along the top. */ | |||
| int getButtonSize() const throw(); | |||
| /** Changes the size of the buttons shown along the top. */ | |||
| void setButtonSize (int newSize); | |||
| /** @internal */ | |||
| void resized(); | |||
| /** @internal */ | |||
| @@ -206,8 +206,8 @@ public: | |||
| inline void skip (int numSamples) throw() { data += numSamples; } | |||
| inline float getAsFloatLE() const throw() { return (float) ((1.0 / (1.0 + maxValue)) * (int32) ByteOrder::swapIfBigEndian (*data)); } | |||
| inline float getAsFloatBE() const throw() { return (float) ((1.0 / (1.0 + maxValue)) * (int32) ByteOrder::swapIfLittleEndian (*data)); } | |||
| inline void setAsFloatLE (float newValue) throw() { *data = ByteOrder::swapIfBigEndian ((uint32) jlimit ((int) -maxValue, (int) maxValue, roundToInt (newValue * (1.0 + maxValue)))); } | |||
| inline void setAsFloatBE (float newValue) throw() { *data = ByteOrder::swapIfLittleEndian ((uint32) jlimit ((int) -maxValue, (int) maxValue, roundToInt (newValue * (1.0 + maxValue)))); } | |||
| inline void setAsFloatLE (float newValue) throw() { *data = ByteOrder::swapIfBigEndian ((uint32) (maxValue * jlimit (-1.0f, 1.0f, newValue))); } | |||
| inline void setAsFloatBE (float newValue) throw() { *data = ByteOrder::swapIfLittleEndian ((uint32) (maxValue * jlimit (-1.0f, 1.0f, newValue))); } | |||
| inline int32 getAsInt32LE() const throw() { return (int32) ByteOrder::swapIfBigEndian (*data); } | |||
| inline int32 getAsInt32BE() const throw() { return (int32) ByteOrder::swapIfLittleEndian (*data); } | |||
| inline void setAsInt32LE (int32 newValue) throw() { *data = ByteOrder::swapIfBigEndian ((uint32) newValue); } | |||
| @@ -241,13 +241,9 @@ void ValueTree::SharedObject::sendPropertyChangeMessage (ValueTree& tree, const | |||
| void ValueTree::SharedObject::sendPropertyChangeMessage (const Identifier& property) | |||
| { | |||
| ValueTree tree (this); | |||
| ValueTree::SharedObject* t = this; | |||
| while (t != 0) | |||
| { | |||
| for (ValueTree::SharedObject* t = this; t != 0; t = t->parent) | |||
| t->sendPropertyChangeMessage (tree, property); | |||
| t = t->parent; | |||
| } | |||
| } | |||
| void ValueTree::SharedObject::sendChildAddedMessage (ValueTree& tree, ValueTree& child) | |||
| @@ -263,13 +259,9 @@ void ValueTree::SharedObject::sendChildAddedMessage (ValueTree& tree, ValueTree& | |||
| void ValueTree::SharedObject::sendChildAddedMessage (ValueTree child) | |||
| { | |||
| ValueTree tree (this); | |||
| ValueTree::SharedObject* t = this; | |||
| while (t != 0) | |||
| { | |||
| for (ValueTree::SharedObject* t = this; t != 0; t = t->parent) | |||
| t->sendChildAddedMessage (tree, child); | |||
| t = t->parent; | |||
| } | |||
| } | |||
| void ValueTree::SharedObject::sendChildRemovedMessage (ValueTree& tree, ValueTree& child) | |||
| @@ -285,13 +277,9 @@ void ValueTree::SharedObject::sendChildRemovedMessage (ValueTree& tree, ValueTre | |||
| void ValueTree::SharedObject::sendChildRemovedMessage (ValueTree child) | |||
| { | |||
| ValueTree tree (this); | |||
| ValueTree::SharedObject* t = this; | |||
| while (t != 0) | |||
| { | |||
| for (ValueTree::SharedObject* t = this; t != 0; t = t->parent) | |||
| t->sendChildRemovedMessage (tree, child); | |||
| t = t->parent; | |||
| } | |||
| } | |||
| void ValueTree::SharedObject::sendChildOrderChangedMessage (ValueTree& tree) | |||
| @@ -307,13 +295,9 @@ void ValueTree::SharedObject::sendChildOrderChangedMessage (ValueTree& tree) | |||
| void ValueTree::SharedObject::sendChildOrderChangedMessage() | |||
| { | |||
| ValueTree tree (this); | |||
| ValueTree::SharedObject* t = this; | |||
| while (t != 0) | |||
| { | |||
| for (ValueTree::SharedObject* t = this; t != 0; t = t->parent) | |||
| t->sendChildOrderChangedMessage (tree); | |||
| t = t->parent; | |||
| } | |||
| } | |||
| void ValueTree::SharedObject::sendParentChangeMessage() | |||
| @@ -33,7 +33,7 @@ | |||
| */ | |||
| #define JUCE_MAJOR_VERSION 1 | |||
| #define JUCE_MINOR_VERSION 53 | |||
| #define JUCE_BUILDNUMBER 59 | |||
| #define JUCE_BUILDNUMBER 60 | |||
| /** Current Juce version number. | |||
| @@ -43,6 +43,17 @@ PreferencesPanel::~PreferencesPanel() | |||
| { | |||
| } | |||
| int PreferencesPanel::getButtonSize() const throw() | |||
| { | |||
| return buttonSize; | |||
| } | |||
| void PreferencesPanel::setButtonSize (int newSize) | |||
| { | |||
| buttonSize = newSize; | |||
| resized(); | |||
| } | |||
| //============================================================================== | |||
| void PreferencesPanel::addSettingsPage (const String& title, | |||
| const Drawable* icon, | |||
| @@ -124,6 +124,12 @@ public: | |||
| /** Changes the current page being displayed. */ | |||
| void setCurrentPage (const String& pageName); | |||
| /** Returns the size of the buttons shown along the top. */ | |||
| int getButtonSize() const throw(); | |||
| /** Changes the size of the buttons shown along the top. */ | |||
| void setButtonSize (int newSize); | |||
| //============================================================================== | |||
| /** @internal */ | |||
| void resized(); | |||
| @@ -137,7 +137,11 @@ public: | |||
| static void memoryBarrier() throw(); | |||
| //============================================================================== | |||
| JUCE_ALIGN(8) | |||
| #if JUCE_64BIT | |||
| JUCE_ALIGN (8) | |||
| #else | |||
| JUCE_ALIGN (4) | |||
| #endif | |||
| /** The raw value that this class operates on. | |||
| This is exposed publically in case you need to manipulate it directly | |||
| @@ -1304,15 +1304,24 @@ JUCE_API bool JUCE_CALLTYPE operator>= (const String& string1, const String& str | |||
| JUCE_API bool JUCE_CALLTYPE operator<= (const String& string1, const String& string2) throw(); | |||
| //============================================================================== | |||
| /** This streaming override allows you to pass a juce String directly into std output streams. | |||
| This is very handy for writing strings to std::cout, std::cerr, etc. | |||
| /** This operator allows you to write a juce String directly to std output streams. | |||
| This is handy for writing strings to std::cout, std::cerr, etc. | |||
| */ | |||
| template <class charT, class traits> | |||
| std::basic_ostream <charT, traits>& JUCE_CALLTYPE operator<< (std::basic_ostream <charT, traits>& stream, const String& stringToWrite) | |||
| template <class traits> | |||
| std::basic_ostream <char, traits>& JUCE_CALLTYPE operator<< (std::basic_ostream <char, traits>& stream, const String& stringToWrite) | |||
| { | |||
| return stream << stringToWrite.toUTF8().getAddress(); | |||
| } | |||
| /** This operator allows you to write a juce String directly to std output streams. | |||
| This is handy for writing strings to std::wcout, std::wcerr, etc. | |||
| */ | |||
| template <class traits> | |||
| std::basic_ostream <wchar_t, traits>& JUCE_CALLTYPE operator<< (std::basic_ostream <wchar_t, traits>& stream, const String& stringToWrite) | |||
| { | |||
| return stream << stringToWrite.toWideCharPointer(); | |||
| } | |||
| /** Writes a string to an OutputStream as UTF8. */ | |||
| JUCE_API OutputStream& JUCE_CALLTYPE operator<< (OutputStream& stream, const String& text); | |||