mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-14 00:14:18 +00:00
Fixed a linux time issue. Removed a blank line from the jucer's .sln file generator. Cleaned up some jucer code.
This commit is contained in:
parent
952b8c3940
commit
4e52fac18e
24 changed files with 165 additions and 261 deletions
|
|
@ -161,8 +161,7 @@ private:
|
|||
File file;
|
||||
Time fileModificationTime;
|
||||
|
||||
UnknownDocument (const UnknownDocument&);
|
||||
UnknownDocument& operator= (const UnknownDocument&);
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (UnknownDocument);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -322,8 +322,7 @@ private:
|
|||
void createDefaultConfigs();
|
||||
ValueTree getJuceConfigNode();
|
||||
|
||||
Project (const Project&);
|
||||
const Project& operator= (const Project&);
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Project);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -243,7 +243,7 @@ protected:
|
|||
//==============================================================================
|
||||
void writeSolutionFile (OutputStream& out, const String& versionString, const File& vcProject)
|
||||
{
|
||||
out << newLine << "Microsoft Visual Studio Solution File, Format Version " << versionString << newLine
|
||||
out << "Microsoft Visual Studio Solution File, Format Version " << versionString << newLine
|
||||
<< "Project(\"" << createGUID (project.getProjectName().toString() + "sln_guid") << "\") = \"" << project.getProjectName().toString() << "\", \""
|
||||
<< vcProject.getFileName() << "\", \"" << projectGUID << '"' << newLine
|
||||
<< "EndProject" << newLine
|
||||
|
|
@ -448,8 +448,7 @@ protected:
|
|||
return hasIcon;
|
||||
}
|
||||
|
||||
MSVCProjectExporterBase (const MSVCProjectExporterBase&);
|
||||
MSVCProjectExporterBase& operator= (const MSVCProjectExporterBase&);
|
||||
JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterBase);
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -816,8 +815,7 @@ protected:
|
|||
}
|
||||
|
||||
//==============================================================================
|
||||
MSVCProjectExporterVC2008 (const MSVCProjectExporterVC2008&);
|
||||
MSVCProjectExporterVC2008& operator= (const MSVCProjectExporterVC2008&);
|
||||
JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC2008);
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -850,8 +848,7 @@ protected:
|
|||
const String getProjectVersionString() const { return "8.00"; }
|
||||
const String getSolutionVersionString() const { return String ("8.00") + newLine + "# Visual C++ Express 2005"; }
|
||||
|
||||
MSVCProjectExporterVC2005 (const MSVCProjectExporterVC2005&);
|
||||
MSVCProjectExporterVC2005& operator= (const MSVCProjectExporterVC2005&);
|
||||
JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC2005);
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -1121,8 +1118,7 @@ private:
|
|||
<< "}}}" << newLine;
|
||||
}
|
||||
|
||||
MSVCProjectExporterVC6 (const MSVCProjectExporterVC6&);
|
||||
MSVCProjectExporterVC6& operator= (const MSVCProjectExporterVC6&);
|
||||
JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC6);
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -1552,8 +1548,7 @@ protected:
|
|||
}
|
||||
|
||||
//==============================================================================
|
||||
MSVCProjectExporterVC2010 (const MSVCProjectExporterVC2010&);
|
||||
MSVCProjectExporterVC2010& operator= (const MSVCProjectExporterVC2010&);
|
||||
JUCE_DECLARE_NON_COPYABLE (MSVCProjectExporterVC2010);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -342,8 +342,7 @@ private:
|
|||
+ "_" + String::toHexString (file.toUnixStyle().hashCode()) + ".o";
|
||||
}
|
||||
|
||||
MakefileProjectExporter (const MakefileProjectExporter&);
|
||||
MakefileProjectExporter& operator= (const MakefileProjectExporter&);
|
||||
JUCE_DECLARE_NON_COPYABLE (MakefileProjectExporter);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -119,8 +119,7 @@ protected:
|
|||
const RelativePath rebaseFromProjectFolderToBuildTarget (const RelativePath& path) const;
|
||||
|
||||
private:
|
||||
ProjectExporter (const ProjectExporter&);
|
||||
ProjectExporter& operator= (const ProjectExporter&);
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ProjectExporter);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -535,6 +535,8 @@ private:
|
|||
return project.getWrapperFolder().getChildFile (project.getJuceSourceFilenameRoot() + (fileIndex != 0 ? String (fileIndex) : String::empty))
|
||||
.withFileExtension (".cpp");
|
||||
}
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ProjectSaver);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -60,6 +60,8 @@ private:
|
|||
String className;
|
||||
|
||||
void addResourcesFromProjectItem (const Project::Item& node);
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ResourceFile);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -59,67 +59,6 @@ private:
|
|||
FilterConnection& operator= (const FilterConnection&);
|
||||
};
|
||||
|
||||
|
||||
//==============================================================================
|
||||
/**
|
||||
Represents one of the filters in a FilterGraph.
|
||||
*/
|
||||
/*class FilterInGraph : public ReferenceCountedObject
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
FilterInGraph (FilterGraph& owner, AudioPluginInstance* const plugin);
|
||||
~FilterInGraph();
|
||||
|
||||
//==============================================================================
|
||||
AudioPluginInstance* const filter;
|
||||
uint32 uid;
|
||||
|
||||
//==============================================================================
|
||||
void showUI (bool useGenericUI);
|
||||
|
||||
double getX() const throw() { return x; }
|
||||
double getY() const throw() { return y; }
|
||||
void setPosition (double x, double y) throw();
|
||||
|
||||
XmlElement* createXml() const;
|
||||
|
||||
static FilterInGraph* createForDescription (FilterGraph& owner,
|
||||
const PluginDescription& desc,
|
||||
String& errorMessage);
|
||||
|
||||
static FilterInGraph* createFromXml (FilterGraph& owner, const XmlElement& xml);
|
||||
|
||||
//==============================================================================
|
||||
typedef ReferenceCountedObjectPtr <FilterInGraph> Ptr;
|
||||
|
||||
//==============================================================================
|
||||
juce_UseDebuggingNewOperator
|
||||
|
||||
private:
|
||||
friend class FilterGraphPlayer;
|
||||
FilterGraph& owner;
|
||||
double x, y;
|
||||
|
||||
friend class PluginWindow;
|
||||
Component* activeUI;
|
||||
Component* activeGenericUI;
|
||||
int lastX, lastY;
|
||||
|
||||
MidiBuffer outputMidi;
|
||||
AudioSampleBuffer processedAudio;
|
||||
MidiBuffer processedMidi;
|
||||
|
||||
void prepareBuffers (int blockSize);
|
||||
void renderBlock (int numSamples,
|
||||
const ReferenceCountedArray <FilterInGraph>& filters,
|
||||
const OwnedArray <FilterConnection>& connections);
|
||||
|
||||
FilterInGraph (const FilterInGraph&);
|
||||
FilterInGraph& operator= (const FilterInGraph&);
|
||||
};
|
||||
*/
|
||||
|
||||
//==============================================================================
|
||||
/**
|
||||
A collection of filters and some connections between them.
|
||||
|
|
@ -185,14 +124,8 @@ public:
|
|||
*/
|
||||
static const int midiChannelNumber;
|
||||
|
||||
//==============================================================================
|
||||
juce_UseDebuggingNewOperator
|
||||
|
||||
private:
|
||||
//friend class FilterGraphPlayer;
|
||||
//ReferenceCountedArray <FilterInGraph> filters;
|
||||
//OwnedArray <FilterConnection> connections;
|
||||
|
||||
//==============================================================================
|
||||
AudioProcessorGraph graph;
|
||||
AudioProcessorPlayer player;
|
||||
|
||||
|
|
@ -201,76 +134,8 @@ private:
|
|||
|
||||
void createNodeFromXml (const XmlElement& xml);
|
||||
|
||||
FilterGraph (const FilterGraph&);
|
||||
FilterGraph& operator= (const FilterGraph&);
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (FilterGraph);
|
||||
};
|
||||
|
||||
|
||||
//==============================================================================
|
||||
/**
|
||||
|
||||
*/
|
||||
/*class FilterGraphPlayer : public AudioIODeviceCallback,
|
||||
public MidiInputCallback,
|
||||
public ChangeListener
|
||||
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
FilterGraphPlayer (FilterGraph& graph);
|
||||
~FilterGraphPlayer();
|
||||
|
||||
//==============================================================================
|
||||
void setAudioDeviceManager (AudioDeviceManager* dm);
|
||||
AudioDeviceManager* getAudioDeviceManager() const throw() { return deviceManager; }
|
||||
|
||||
//==============================================================================
|
||||
void audioDeviceIOCallback (const float** inputChannelData,
|
||||
int totalNumInputChannels,
|
||||
float** outputChannelData,
|
||||
int totalNumOutputChannels,
|
||||
int numSamples);
|
||||
void audioDeviceAboutToStart (double sampleRate, int numSamplesPerBlock);
|
||||
void audioDeviceStopped();
|
||||
|
||||
void handleIncomingMidiMessage (MidiInput* source, const MidiMessage& message);
|
||||
|
||||
void changeListenerCallback (ChangeBroadcaster*);
|
||||
|
||||
//==============================================================================
|
||||
static int compareElements (FilterInGraph* const first, FilterInGraph* const second) throw();
|
||||
|
||||
const float** inputChannelData;
|
||||
int totalNumInputChannels;
|
||||
float** outputChannelData;
|
||||
int totalNumOutputChannels;
|
||||
MidiBuffer incomingMidi;
|
||||
|
||||
MidiKeyboardState keyState;
|
||||
MidiMessageCollector messageCollector;
|
||||
|
||||
//==============================================================================
|
||||
class PlayerAwareFilter
|
||||
{
|
||||
public:
|
||||
virtual void setPlayer (FilterGraphPlayer* newPlayer) = 0;
|
||||
};
|
||||
|
||||
private:
|
||||
FilterGraph& graph;
|
||||
CriticalSection processLock;
|
||||
double sampleRate;
|
||||
int blockSize;
|
||||
AudioDeviceManager* deviceManager;
|
||||
|
||||
ReferenceCountedArray <FilterInGraph> filters;
|
||||
OwnedArray <FilterConnection> connections;
|
||||
|
||||
void update();
|
||||
|
||||
FilterGraphPlayer (const FilterGraphPlayer&);
|
||||
FilterGraphPlayer& operator= (const FilterGraphPlayer&);
|
||||
};
|
||||
*/
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -192,8 +192,6 @@ public:
|
|||
getGraphPanel()->endDraggingConnector (e);
|
||||
}
|
||||
|
||||
juce_UseDebuggingNewOperator
|
||||
|
||||
const uint32 filterID;
|
||||
const int index;
|
||||
const bool isInput;
|
||||
|
|
@ -201,13 +199,12 @@ public:
|
|||
private:
|
||||
FilterGraph& graph;
|
||||
|
||||
PinComponent (const PinComponent&);
|
||||
PinComponent& operator= (const PinComponent&);
|
||||
|
||||
GraphEditorPanel* getGraphPanel() const throw()
|
||||
{
|
||||
return findParentComponentOfClass ((GraphEditorPanel*) 0);
|
||||
}
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PinComponent);
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
|
|
@ -679,8 +676,6 @@ public:
|
|||
linePath.setUsingNonZeroWinding (true);
|
||||
}
|
||||
|
||||
juce_UseDebuggingNewOperator
|
||||
|
||||
uint32 sourceFilterID, destFilterID;
|
||||
int sourceFilterChannel, destFilterChannel;
|
||||
|
||||
|
|
@ -704,8 +699,7 @@ private:
|
|||
distanceFromEnd = juce_hypot (x - (x2 - getX()), y - (y2 - getY()));
|
||||
}
|
||||
|
||||
ConnectorComponent (const ConnectorComponent&);
|
||||
ConnectorComponent& operator= (const ConnectorComponent&);
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ConnectorComponent);
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -990,10 +984,6 @@ public:
|
|||
startTimer (100);
|
||||
}
|
||||
|
||||
~TooltipBar()
|
||||
{
|
||||
}
|
||||
|
||||
void paint (Graphics& g)
|
||||
{
|
||||
g.setFont (getHeight() * 0.7f, Font::bold);
|
||||
|
|
@ -1018,10 +1008,10 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
juce_UseDebuggingNewOperator
|
||||
|
||||
private:
|
||||
String tip;
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (TooltipBar);
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
|
|
|
|||
|
|
@ -64,10 +64,8 @@ public:
|
|||
const StringArray searchPathsForPlugins (const FileSearchPath&, bool) { return StringArray(); }
|
||||
AudioPluginInstance* createInstanceFromDescription (const PluginDescription& desc);
|
||||
|
||||
//==============================================================================
|
||||
juce_UseDebuggingNewOperator
|
||||
|
||||
private:
|
||||
//==============================================================================
|
||||
PluginDescription audioInDesc;
|
||||
PluginDescription audioOutDesc;
|
||||
PluginDescription midiInDesc;
|
||||
|
|
|
|||
|
|
@ -83,11 +83,8 @@ public:
|
|||
void addPluginsToMenu (PopupMenu& m) const;
|
||||
const PluginDescription* getChosenType (const int menuID) const;
|
||||
|
||||
|
||||
//==============================================================================
|
||||
juce_UseDebuggingNewOperator
|
||||
|
||||
private:
|
||||
//==============================================================================
|
||||
AudioDeviceManager deviceManager;
|
||||
|
||||
OwnedArray <PluginDescription> internalTypes;
|
||||
|
|
@ -96,6 +93,8 @@ private:
|
|||
|
||||
void showAudioSettings();
|
||||
GraphDocumentComponent* getGraphEditor() const;
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainHostWindow);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -92,15 +92,15 @@ public:
|
|||
|
||||
float gain, delay;
|
||||
|
||||
//==============================================================================
|
||||
juce_UseDebuggingNewOperator
|
||||
|
||||
private:
|
||||
//==============================================================================
|
||||
AudioSampleBuffer delayBuffer;
|
||||
int delayPosition;
|
||||
|
||||
// the synth!
|
||||
Synthesiser synth;
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (JuceDemoPluginAudioProcessor);
|
||||
};
|
||||
|
||||
#endif // __PLUGINPROCESSOR_H_526ED7A9__
|
||||
|
|
|
|||
|
|
@ -68,8 +68,9 @@ public:
|
|||
*/
|
||||
virtual const var getJavascriptObject() = 0;
|
||||
|
||||
private:
|
||||
//==============================================================================
|
||||
juce_UseDebuggingNewOperator
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (BrowserPluginComponent);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -120,11 +120,9 @@ public:
|
|||
}
|
||||
else
|
||||
{
|
||||
MouseEvent e2 (e.getEventRelativeTo (parent));
|
||||
|
||||
// if the mouse is inside the parent component, we'll make that the
|
||||
// parent - otherwise, we'll put this comp on the desktop.
|
||||
if (e2.x >= 0 && e2.y >= 0 && e2.x < parent->getWidth() && e2.y < parent->getHeight())
|
||||
if (parent->getLocalBounds().contains (e.getEventRelativeTo (parent).getPosition()))
|
||||
{
|
||||
// re-add this component to a parent component, which will
|
||||
// remove it from the desktop..
|
||||
|
|
|
|||
|
|
@ -77609,8 +77609,31 @@ void ComponentPeer::handleFileDragDrop (const StringArray& files, const Point<in
|
|||
return;
|
||||
}
|
||||
|
||||
const Point<int> pos (targetComp->getLocalPoint (component, position));
|
||||
target->filesDropped (files, pos.getX(), pos.getY());
|
||||
// We'll use an async message to deliver the drop, because if the target decides
|
||||
// to run a modal loop, it can gum-up the operating system..
|
||||
class AsyncFileDropMessage : public CallbackMessage
|
||||
{
|
||||
public:
|
||||
AsyncFileDropMessage (Component* target_, const Point<int>& position_, const StringArray& files_)
|
||||
: target (target_), position (position_), files (files_)
|
||||
{
|
||||
}
|
||||
|
||||
void messageCallback()
|
||||
{
|
||||
if (target != 0)
|
||||
target->filesDropped (files, position.getX(), position.getY());
|
||||
}
|
||||
|
||||
private:
|
||||
Component::SafePointer<Component> target;
|
||||
Point<int> position;
|
||||
StringArray files;
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE (AsyncFileDropMessage);
|
||||
};
|
||||
|
||||
(new AsyncFileDropMessage (targetComp, targetComp->getLocalPoint (component, position), files))->post();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -77681,25 +77704,6 @@ void DialogWindow::resized()
|
|||
}
|
||||
}
|
||||
|
||||
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,
|
||||
|
|
@ -77708,6 +77712,25 @@ 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);
|
||||
|
|
@ -97999,8 +98022,6 @@ ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void));
|
|||
|
||||
BEGIN_JUCE_NAMESPACE
|
||||
|
||||
// internal helper object that holds the zlib structures so they don't have to be
|
||||
// included publicly.
|
||||
class GZIPCompressorOutputStream::GZIPCompressorHelper
|
||||
{
|
||||
public:
|
||||
|
|
@ -98137,11 +98158,7 @@ bool GZIPCompressorOutputStream::write (const void* destBuffer, int howMany)
|
|||
bool GZIPCompressorOutputStream::doNextBlock()
|
||||
{
|
||||
const int len = helper->doNextBlock (buffer, (int) GZIPCompressorHelper::gzipCompBufferSize);
|
||||
|
||||
if (len > 0)
|
||||
return destStream->write (buffer, len);
|
||||
else
|
||||
return true;
|
||||
return len <= 0 || destStream->write (buffer, len);
|
||||
}
|
||||
|
||||
int64 GZIPCompressorOutputStream::getPosition()
|
||||
|
|
@ -242963,8 +242980,6 @@ private:
|
|||
{
|
||||
}
|
||||
|
||||
~JuceDropTarget() {}
|
||||
|
||||
HRESULT __stdcall DragEnter (IDataObject* pDataObject, DWORD /*grfKeyState*/, POINTL mousePos, DWORD* pdwEffect)
|
||||
{
|
||||
updateFileList (pDataObject);
|
||||
|
|
@ -256089,10 +256104,10 @@ double Time::getMillisecondCounterHiRes() throw()
|
|||
bool Time::setSystemTimeToThisTime() const
|
||||
{
|
||||
timeval t;
|
||||
t.tv_sec = millisSinceEpoch % 1000000;
|
||||
t.tv_usec = millisSinceEpoch - t.tv_sec;
|
||||
t.tv_sec = millisSinceEpoch / 1000;
|
||||
t.tv_usec = (millisSinceEpoch - t.tv_sec * 1000) * 1000;
|
||||
|
||||
return settimeofday (&t, 0) ? false : true;
|
||||
return settimeofday (&t, 0) == 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
@ -273227,12 +273242,12 @@ BOOL NSViewComponentPeer::sendDragCallback (int type, id <NSDraggingInfo> sender
|
|||
NSPoint p = [view convertPoint: [sender draggingLocation] fromView: nil];
|
||||
const Point<int> pos ((int) p.x, (int) ([view frame].size.height - p.y));
|
||||
|
||||
StringArray files;
|
||||
|
||||
id list = [[sender draggingPasteboard] propertyListForType: bestType];
|
||||
if (list == nil)
|
||||
return false;
|
||||
|
||||
StringArray files;
|
||||
|
||||
if ([list isKindOfClass: [NSArray class]])
|
||||
{
|
||||
NSArray* items = (NSArray*) list;
|
||||
|
|
|
|||
|
|
@ -6882,8 +6882,23 @@ private:
|
|||
const ScopedPointer* getAddress() const throw() { return this; }
|
||||
|
||||
#if ! JUCE_MSVC // (MSVC can't deal with multiple copy constructors)
|
||||
// This is private to stop people accidentally copying a const ScopedPointer (the compiler
|
||||
// will let you do so by implicitly casting the source to its raw object pointer).
|
||||
/* This is private to stop people accidentally copying a const ScopedPointer (the compiler
|
||||
would let you do so by implicitly casting the source to its raw object pointer).
|
||||
|
||||
A side effect of this is that you may hit a puzzling compiler error when you write something
|
||||
like this:
|
||||
|
||||
ScopedPointer<MyClass> m = new MyClass(); // Compile error: copy constructor is private.
|
||||
|
||||
Even though the compiler would normally ignore the assignment here, it can't do so when the
|
||||
copy constructor is private. It's very easy to fis though - just write it like this:
|
||||
|
||||
ScopedPointer<MyClass> m (new MyClass()); // Compiles OK
|
||||
|
||||
It's good practice to always use the latter form when writing your object declarations anyway,
|
||||
rather than writing them as assignments and assuming (or hoping) that the compiler will be
|
||||
smart enough to replace your construction + assignment with a single constructor.
|
||||
*/
|
||||
ScopedPointer (const ScopedPointer&);
|
||||
#endif
|
||||
};
|
||||
|
|
|
|||
|
|
@ -167,8 +167,23 @@ private:
|
|||
const ScopedPointer* getAddress() const throw() { return this; }
|
||||
|
||||
#if ! JUCE_MSVC // (MSVC can't deal with multiple copy constructors)
|
||||
// This is private to stop people accidentally copying a const ScopedPointer (the compiler
|
||||
// will let you do so by implicitly casting the source to its raw object pointer).
|
||||
/* This is private to stop people accidentally copying a const ScopedPointer (the compiler
|
||||
would let you do so by implicitly casting the source to its raw object pointer).
|
||||
|
||||
A side effect of this is that you may hit a puzzling compiler error when you write something
|
||||
like this:
|
||||
|
||||
ScopedPointer<MyClass> m = new MyClass(); // Compile error: copy constructor is private.
|
||||
|
||||
Even though the compiler would normally ignore the assignment here, it can't do so when the
|
||||
copy constructor is private. It's very easy to fis though - just write it like this:
|
||||
|
||||
ScopedPointer<MyClass> m (new MyClass()); // Compiles OK
|
||||
|
||||
It's good practice to always use the latter form when writing your object declarations anyway,
|
||||
rather than writing them as assignments and assuming (or hoping) that the compiler will be
|
||||
smart enough to replace your construction + assignment with a single constructor.
|
||||
*/
|
||||
ScopedPointer (const ScopedPointer&);
|
||||
#endif
|
||||
};
|
||||
|
|
|
|||
|
|
@ -507,8 +507,31 @@ void ComponentPeer::handleFileDragDrop (const StringArray& files, const Point<in
|
|||
return;
|
||||
}
|
||||
|
||||
const Point<int> pos (targetComp->getLocalPoint (component, position));
|
||||
target->filesDropped (files, pos.getX(), pos.getY());
|
||||
// We'll use an async message to deliver the drop, because if the target decides
|
||||
// to run a modal loop, it can gum-up the operating system..
|
||||
class AsyncFileDropMessage : public CallbackMessage
|
||||
{
|
||||
public:
|
||||
AsyncFileDropMessage (Component* target_, const Point<int>& position_, const StringArray& files_)
|
||||
: target (target_), position (position_), files (files_)
|
||||
{
|
||||
}
|
||||
|
||||
void messageCallback()
|
||||
{
|
||||
if (target != 0)
|
||||
target->filesDropped (files, position.getX(), position.getY());
|
||||
}
|
||||
|
||||
private:
|
||||
Component::SafePointer<Component> target;
|
||||
Point<int> position;
|
||||
StringArray files;
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE (AsyncFileDropMessage);
|
||||
};
|
||||
|
||||
(new AsyncFileDropMessage (targetComp, targetComp->getLocalPoint (component, position), files))->post();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,25 +62,6 @@ void DialogWindow::resized()
|
|||
|
||||
|
||||
//==============================================================================
|
||||
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,
|
||||
|
|
@ -89,6 +70,25 @@ 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);
|
||||
|
|
|
|||
|
|
@ -246,7 +246,6 @@ public:
|
|||
ValueTree getMarkerListCreating (bool xAxis, UndoManager* undoManager);
|
||||
};
|
||||
|
||||
|
||||
private:
|
||||
//==============================================================================
|
||||
RelativeParallelogram bounds;
|
||||
|
|
|
|||
|
|
@ -43,8 +43,6 @@ BEGIN_JUCE_NAMESPACE
|
|||
|
||||
|
||||
//==============================================================================
|
||||
// internal helper object that holds the zlib structures so they don't have to be
|
||||
// included publicly.
|
||||
class GZIPCompressorOutputStream::GZIPCompressorHelper
|
||||
{
|
||||
public:
|
||||
|
|
@ -130,7 +128,6 @@ public:
|
|||
bool finished, shouldFinish;
|
||||
};
|
||||
|
||||
|
||||
//==============================================================================
|
||||
GZIPCompressorOutputStream::GZIPCompressorOutputStream (OutputStream* const destStream_,
|
||||
int compressionLevel,
|
||||
|
|
@ -184,11 +181,7 @@ bool GZIPCompressorOutputStream::write (const void* destBuffer, int howMany)
|
|||
bool GZIPCompressorOutputStream::doNextBlock()
|
||||
{
|
||||
const int len = helper->doNextBlock (buffer, (int) GZIPCompressorHelper::gzipCompBufferSize);
|
||||
|
||||
if (len > 0)
|
||||
return destStream->write (buffer, len);
|
||||
else
|
||||
return true;
|
||||
return len <= 0 || destStream->write (buffer, len);
|
||||
}
|
||||
|
||||
int64 GZIPCompressorOutputStream::getPosition()
|
||||
|
|
|
|||
|
|
@ -185,10 +185,10 @@ double Time::getMillisecondCounterHiRes() throw()
|
|||
bool Time::setSystemTimeToThisTime() const
|
||||
{
|
||||
timeval t;
|
||||
t.tv_sec = millisSinceEpoch % 1000000;
|
||||
t.tv_usec = millisSinceEpoch - t.tv_sec;
|
||||
t.tv_sec = millisSinceEpoch / 1000;
|
||||
t.tv_usec = (millisSinceEpoch - t.tv_sec * 1000) * 1000;
|
||||
|
||||
return settimeofday (&t, 0) ? false : true;
|
||||
return settimeofday (&t, 0) == 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1504,12 +1504,12 @@ BOOL NSViewComponentPeer::sendDragCallback (int type, id <NSDraggingInfo> sender
|
|||
NSPoint p = [view convertPoint: [sender draggingLocation] fromView: nil];
|
||||
const Point<int> pos ((int) p.x, (int) ([view frame].size.height - p.y));
|
||||
|
||||
StringArray files;
|
||||
|
||||
id list = [[sender draggingPasteboard] propertyListForType: bestType];
|
||||
if (list == nil)
|
||||
return false;
|
||||
|
||||
StringArray files;
|
||||
|
||||
if ([list isKindOfClass: [NSArray class]])
|
||||
{
|
||||
NSArray* items = (NSArray*) list;
|
||||
|
|
|
|||
|
|
@ -1850,8 +1850,6 @@ private:
|
|||
{
|
||||
}
|
||||
|
||||
~JuceDropTarget() {}
|
||||
|
||||
HRESULT __stdcall DragEnter (IDataObject* pDataObject, DWORD /*grfKeyState*/, POINTL mousePos, DWORD* pdwEffect)
|
||||
{
|
||||
updateFileList (pDataObject);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue