mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-21 01:24:21 +00:00
This commit is contained in:
parent
6ff38f01cc
commit
b121ed0a8a
2 changed files with 73 additions and 74 deletions
|
|
@ -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<File>& 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)
|
||||
|
|
|
|||
|
|
@ -46682,6 +46682,8 @@ public:
|
|||
void paint (Graphics& g);
|
||||
/** @internal */
|
||||
void resized();
|
||||
/** @internal */
|
||||
void lookAndFeelChanged();
|
||||
|
||||
juce_UseDebuggingNewOperator
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue