From b121ed0a8a19d8bf7d85258248803f8e40ddfc90 Mon Sep 17 00:00:00 2001 From: jules Date: Wed, 30 Jul 2008 11:19:25 +0000 Subject: [PATCH] --- juce_amalgamated.cpp | 145 +++++++++++++++++++++---------------------- juce_amalgamated.h | 2 + 2 files changed, 73 insertions(+), 74 deletions(-) diff --git a/juce_amalgamated.cpp b/juce_amalgamated.cpp index d3a9eb7210..84c2f1fa17 100644 --- a/juce_amalgamated.cpp +++ b/juce_amalgamated.cpp @@ -57083,6 +57083,13 @@ void TabbedComponent::resized() contentComponents.getUnchecked (i)->setBounds (bounds); } +void TabbedComponent::lookAndFeelChanged() +{ + for (int i = contentComponents.size(); --i >= 0;) + if (contentComponents.getUnchecked (i) != 0) + contentComponents.getUnchecked (i)->lookAndFeelChanged(); +} + void TabbedComponent::changeCallback (const int newCurrentTabIndex, const String& newTabName) { @@ -64960,7 +64967,8 @@ public: if (sampleRateDropDown != 0) { - sampleRateDropDown->setVisible (! showAdvancedSettingsButton->isVisible()); + sampleRateDropDown->setVisible (showAdvancedSettingsButton == 0 + || ! showAdvancedSettingsButton->isVisible()); sampleRateDropDown->setBounds (lx, y, w, h); y += dh; @@ -64968,14 +64976,16 @@ public: if (bufferSizeDropDown != 0) { - bufferSizeDropDown->setVisible (! showAdvancedSettingsButton->isVisible()); + bufferSizeDropDown->setVisible (showAdvancedSettingsButton == 0 + || ! showAdvancedSettingsButton->isVisible()); bufferSizeDropDown->setBounds (lx, y, w, h); y += dh; } if (showUIButton != 0) { - showUIButton->setVisible (! showAdvancedSettingsButton->isVisible()); + showUIButton->setVisible (showAdvancedSettingsButton == 0 + || ! showAdvancedSettingsButton->isVisible()); showUIButton->changeWidthToFitText (h); showUIButton->setTopLeftPosition (lx, y); } @@ -79295,11 +79305,13 @@ private: const String text (e->getText()); Path path; - parseShape (*e, path); + Drawable* s = parseShape (*e, path); + delete s; } else if (e->hasTagName (T("tspan"))) { - parseText (*e); + Drawable* s = parseText (*e); + delete s; } } @@ -98157,17 +98169,24 @@ bool GZIPDecompressorInputStream::setPosition (int64 newPos) { if (newPos != currentPos) { - // reset the stream and start again.. - GZIPDecompressHelper* const h = (GZIPDecompressHelper*) helper; - delete h; + if (newPos > currentPos) + { + skipNextBytes (newPos - currentPos); + } + else + { + // reset the stream and start again.. + GZIPDecompressHelper* const h = (GZIPDecompressHelper*) helper; + delete h; - isEof = false; - activeBufferSize = 0; - currentPos = 0; - helper = new GZIPDecompressHelper (noWrap); + isEof = false; + activeBufferSize = 0; + currentPos = 0; + helper = new GZIPDecompressHelper (noWrap); - sourceStream->setPosition (originalSourcePos); - skipNextBytes (newPos); + sourceStream->setPosition (originalSourcePos); + skipNextBytes (newPos); + } } return true; @@ -240498,11 +240517,11 @@ public: if (! hasCreatedCaret) { hasCreatedCaret = true; - CreateCaret (hwnd, 0, 0, 0); + CreateCaret (hwnd, (HBITMAP) 1, 0, 0); } ShowCaret (hwnd); - SetCaretPos (-1, -1); + SetCaretPos (0, 0); } void repaint (int x, int y, int w, int h) @@ -243805,51 +243824,34 @@ bool WaitableEvent::wait (const int timeOutMillisecs) const throw() bool ok = true; pthread_mutex_lock (&es->mutex); - if (! es->triggered) + if (timeOutMillisecs < 0) { - if (timeOutMillisecs < 0) - { + while (! es->triggered) pthread_cond_wait (&es->condition, &es->mutex); - } - else + } + else + { + while (! es->triggered) { - struct timespec time; - -#if JUCE_MAC - time.tv_sec = timeOutMillisecs / 1000; - time.tv_nsec = (timeOutMillisecs % 1000) * 1000000; - pthread_cond_timedwait_relative_np (&es->condition, &es->mutex, &time); -#else struct timeval t; - int timeout = 0; - gettimeofday (&t, 0); + struct timespec time; time.tv_sec = t.tv_sec + (timeOutMillisecs / 1000); time.tv_nsec = (t.tv_usec + ((timeOutMillisecs % 1000) * 1000)) * 1000; - while (time.tv_nsec >= 1000000000) + if (time.tv_nsec >= 1000000000) { time.tv_nsec -= 1000000000; time.tv_sec++; } - while (! timeout) + if (pthread_cond_timedwait (&es->condition, &es->mutex, &time) == ETIMEDOUT) { - timeout = pthread_cond_timedwait (&es->condition, &es->mutex, &time); - - if (! timeout) - // Success - break; - - if (timeout == EINTR) - // Go round again - timeout = 0; + ok = false; + break; } -#endif } - - ok = es->triggered; } es->triggered = false; @@ -251514,51 +251516,34 @@ bool WaitableEvent::wait (const int timeOutMillisecs) const throw() bool ok = true; pthread_mutex_lock (&es->mutex); - if (! es->triggered) + if (timeOutMillisecs < 0) { - if (timeOutMillisecs < 0) - { + while (! es->triggered) pthread_cond_wait (&es->condition, &es->mutex); - } - else + } + else + { + while (! es->triggered) { - struct timespec time; - -#if JUCE_MAC - time.tv_sec = timeOutMillisecs / 1000; - time.tv_nsec = (timeOutMillisecs % 1000) * 1000000; - pthread_cond_timedwait_relative_np (&es->condition, &es->mutex, &time); -#else struct timeval t; - int timeout = 0; - gettimeofday (&t, 0); + struct timespec time; time.tv_sec = t.tv_sec + (timeOutMillisecs / 1000); time.tv_nsec = (t.tv_usec + ((timeOutMillisecs % 1000) * 1000)) * 1000; - while (time.tv_nsec >= 1000000000) + if (time.tv_nsec >= 1000000000) { time.tv_nsec -= 1000000000; time.tv_sec++; } - while (! timeout) + if (pthread_cond_timedwait (&es->condition, &es->mutex, &time) == ETIMEDOUT) { - timeout = pthread_cond_timedwait (&es->condition, &es->mutex, &time); - - if (! timeout) - // Success - break; - - if (timeout == EINTR) - // Go round again - timeout = 0; + ok = false; + break; } -#endif } - - ok = es->triggered; } es->triggered = false; @@ -256083,8 +256068,20 @@ void FileChooser::showPlatformDialog (OwnedArray& results, [panel setDelegate: delegate]; - if ([panel runModalForDirectory: juceStringToNS (currentFileOrDirectory.getParentDirectory().getFullPathName()) - file: juceStringToNS (currentFileOrDirectory.getFileName())] + String directory, filename; + + if (currentFileOrDirectory.isDirectory()) + { + directory = currentFileOrDirectory.getFullPathName(); + } + else + { + directory = currentFileOrDirectory.getParentDirectory().getFullPathName(); + filename = currentFileOrDirectory.getFileName(); + } + + if ([panel runModalForDirectory: juceStringToNS (directory) + file: juceStringToNS (filename)] == NSOKButton) { if (isSaveDialogue) diff --git a/juce_amalgamated.h b/juce_amalgamated.h index 1a9798fa06..f84e526562 100644 --- a/juce_amalgamated.h +++ b/juce_amalgamated.h @@ -46682,6 +46682,8 @@ public: void paint (Graphics& g); /** @internal */ void resized(); + /** @internal */ + void lookAndFeelChanged(); juce_UseDebuggingNewOperator