@@ -41200,7 +41200,7 @@ void Component::exitModalState (const int returnValue) | |||
void messageCallback() | |||
{ | |||
if (target != 0) | |||
if (target.getComponent() != 0) // (getComponent() required for VS2003 bug) | |||
target->exitModalState (result); | |||
} | |||
@@ -77630,7 +77630,7 @@ void ComponentPeer::handleFileDragDrop (const StringArray& files, const Point<in | |||
Point<int> position; | |||
StringArray files; | |||
JUCE_DECLARE_NON_COPYABLE (AsyncFileDropMessage); | |||
// (NB: don't make this non-copyable, which messes up in VC) | |||
}; | |||
(new AsyncFileDropMessage (targetComp, targetComp->getLocalPoint (component, position), files))->post(); | |||
@@ -77704,6 +77704,27 @@ void DialogWindow::resized() | |||
} | |||
} | |||
// (Sadly, this can't be made a local class inside the showModalDialog function, because the | |||
// VC compiler complains about the undefined copy constructor) | |||
class TempDialogWindow : public DialogWindow | |||
{ | |||
public: | |||
TempDialogWindow (const String& title, const Colour& colour, const bool escapeCloses) | |||
: DialogWindow (title, colour, escapeCloses, true) | |||
{ | |||
if (! JUCEApplication::isStandaloneApp()) | |||
setAlwaysOnTop (true); // for a plugin, make it always-on-top because the host windows are often top-level | |||
} | |||
void closeButtonPressed() | |||
{ | |||
setVisible (false); | |||
} | |||
private: | |||
JUCE_DECLARE_NON_COPYABLE (TempDialogWindow); | |||
}; | |||
int DialogWindow::showModalDialog (const String& dialogTitle, | |||
Component* contentComponent, | |||
Component* componentToCentreAround, | |||
@@ -77712,25 +77733,6 @@ int DialogWindow::showModalDialog (const String& dialogTitle, | |||
const bool shouldBeResizable, | |||
const bool useBottomRightCornerResizer) | |||
{ | |||
class TempDialogWindow : public DialogWindow | |||
{ | |||
public: | |||
TempDialogWindow (const String& title, const Colour& colour, const bool escapeCloses) | |||
: DialogWindow (title, colour, escapeCloses, true) | |||
{ | |||
if (! JUCEApplication::isStandaloneApp()) | |||
setAlwaysOnTop (true); // for a plugin, make it always-on-top because the host windows are often top-level | |||
} | |||
void closeButtonPressed() | |||
{ | |||
setVisible (false); | |||
} | |||
private: | |||
JUCE_DECLARE_NON_COPYABLE (TempDialogWindow); | |||
}; | |||
TempDialogWindow dw (dialogTitle, colour, escapeKeyTriggersCloseButton); | |||
dw.setContentComponent (contentComponent, true, true); | |||
@@ -1559,7 +1559,7 @@ void Component::exitModalState (const int returnValue) | |||
void messageCallback() | |||
{ | |||
if (target != 0) | |||
if (target.getComponent() != 0) // (getComponent() required for VS2003 bug) | |||
target->exitModalState (result); | |||
} | |||
@@ -528,7 +528,7 @@ void ComponentPeer::handleFileDragDrop (const StringArray& files, const Point<in | |||
Point<int> position; | |||
StringArray files; | |||
JUCE_DECLARE_NON_COPYABLE (AsyncFileDropMessage); | |||
// (NB: don't make this non-copyable, which messes up in VC) | |||
}; | |||
(new AsyncFileDropMessage (targetComp, targetComp->getLocalPoint (component, position), files))->post(); | |||
@@ -60,6 +60,27 @@ void DialogWindow::resized() | |||
} | |||
} | |||
// (Sadly, this can't be made a local class inside the showModalDialog function, because the | |||
// VC compiler complains about the undefined copy constructor) | |||
class TempDialogWindow : public DialogWindow | |||
{ | |||
public: | |||
TempDialogWindow (const String& title, const Colour& colour, const bool escapeCloses) | |||
: DialogWindow (title, colour, escapeCloses, true) | |||
{ | |||
if (! JUCEApplication::isStandaloneApp()) | |||
setAlwaysOnTop (true); // for a plugin, make it always-on-top because the host windows are often top-level | |||
} | |||
void closeButtonPressed() | |||
{ | |||
setVisible (false); | |||
} | |||
private: | |||
JUCE_DECLARE_NON_COPYABLE (TempDialogWindow); | |||
}; | |||
//============================================================================== | |||
int DialogWindow::showModalDialog (const String& dialogTitle, | |||
@@ -70,25 +91,6 @@ int DialogWindow::showModalDialog (const String& dialogTitle, | |||
const bool shouldBeResizable, | |||
const bool useBottomRightCornerResizer) | |||
{ | |||
class TempDialogWindow : public DialogWindow | |||
{ | |||
public: | |||
TempDialogWindow (const String& title, const Colour& colour, const bool escapeCloses) | |||
: DialogWindow (title, colour, escapeCloses, true) | |||
{ | |||
if (! JUCEApplication::isStandaloneApp()) | |||
setAlwaysOnTop (true); // for a plugin, make it always-on-top because the host windows are often top-level | |||
} | |||
void closeButtonPressed() | |||
{ | |||
setVisible (false); | |||
} | |||
private: | |||
JUCE_DECLARE_NON_COPYABLE (TempDialogWindow); | |||
}; | |||
TempDialogWindow dw (dialogTitle, colour, escapeKeyTriggersCloseButton); | |||
dw.setContentComponent (contentComponent, true, true); | |||