@@ -77614,26 +77614,28 @@ void ComponentPeer::handleFileDragDrop (const StringArray& files, const Point<in | |||
class AsyncFileDropMessage : public CallbackMessage | |||
{ | |||
public: | |||
AsyncFileDropMessage (Component* target_, const Point<int>& position_, const StringArray& files_) | |||
: target (target_), position (position_), files (files_) | |||
AsyncFileDropMessage (Component* target_, FileDragAndDropTarget* dropTarget_, | |||
const Point<int>& position_, const StringArray& files_) | |||
: target (target_), dropTarget (dropTarget_), position (position_), files (files_) | |||
{ | |||
} | |||
void messageCallback() | |||
{ | |||
if (target != 0) | |||
target->filesDropped (files, position.getX(), position.getY()); | |||
dropTarget->filesDropped (files, position.getX(), position.getY()); | |||
} | |||
private: | |||
Component::SafePointer<Component> target; | |||
FileDragAndDropTarget* dropTarget; | |||
Point<int> position; | |||
StringArray files; | |||
// (NB: don't make this non-copyable, which messes up in VC) | |||
}; | |||
(new AsyncFileDropMessage (targetComp, targetComp->getLocalPoint (component, position), files))->post(); | |||
(new AsyncFileDropMessage (targetComp, target, targetComp->getLocalPoint (component, position), files))->post(); | |||
} | |||
} | |||
} | |||
@@ -94853,10 +94855,6 @@ public: | |||
imageData = imageDataAllocated; | |||
} | |||
~SoftwareSharedImage() | |||
{ | |||
} | |||
Image::ImageType getType() const | |||
{ | |||
return Image::SoftwareImage; | |||
@@ -94876,6 +94874,8 @@ public: | |||
private: | |||
HeapBlock<uint8> imageDataAllocated; | |||
JUCE_LEAK_DETECTOR (SoftwareSharedImage); | |||
}; | |||
Image::SharedImage* Image::SharedImage::createSoftwareImage (Image::PixelFormat format, int width, int height, bool clearImage) | |||
@@ -266330,6 +266330,8 @@ private: | |||
return format == Image::ARGB ? (kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Little) : kCGBitmapByteOrderDefault; | |||
#endif | |||
} | |||
JUCE_LEAK_DETECTOR (CoreGraphicsImage); | |||
}; | |||
Image::SharedImage* Image::SharedImage::createNativeImage (PixelFormat format, int width, int height, bool clearImage) | |||
@@ -266844,10 +266846,6 @@ private: | |||
{ | |||
} | |||
~SavedState() | |||
{ | |||
} | |||
FillType fillType; | |||
Font font; | |||
CGFontRef fontRef; | |||
@@ -266982,7 +266980,7 @@ private: | |||
CGContextConcatCTM (context, t); | |||
} | |||
JUCE_DECLARE_NON_COPYABLE (CoreGraphicsContext); | |||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CoreGraphicsContext); | |||
}; | |||
LowLevelGraphicsContext* CoreGraphicsImage::createLowLevelContext() | |||
@@ -271062,6 +271060,8 @@ private: | |||
return format == Image::ARGB ? (kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Little) : kCGBitmapByteOrderDefault; | |||
#endif | |||
} | |||
JUCE_LEAK_DETECTOR (CoreGraphicsImage); | |||
}; | |||
Image::SharedImage* Image::SharedImage::createNativeImage (PixelFormat format, int width, int height, bool clearImage) | |||
@@ -271576,10 +271576,6 @@ private: | |||
{ | |||
} | |||
~SavedState() | |||
{ | |||
} | |||
FillType fillType; | |||
Font font; | |||
CGFontRef fontRef; | |||
@@ -271714,7 +271710,7 @@ private: | |||
CGContextConcatCTM (context, t); | |||
} | |||
JUCE_DECLARE_NON_COPYABLE (CoreGraphicsContext); | |||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CoreGraphicsContext); | |||
}; | |||
LowLevelGraphicsContext* CoreGraphicsImage::createLowLevelContext() | |||
@@ -273411,28 +273407,29 @@ void juce_setKioskComponent (Component* kioskModeComponent, bool enableOrDisable | |||
} | |||
} | |||
class AsyncRepaintMessage : public CallbackMessage | |||
{ | |||
public: | |||
NSViewComponentPeer* const peer; | |||
const Rectangle<int> rect; | |||
AsyncRepaintMessage (NSViewComponentPeer* const peer_, const Rectangle<int>& rect_) | |||
: peer (peer_), rect (rect_) | |||
{ | |||
} | |||
void messageCallback() | |||
{ | |||
if (ComponentPeer::isValidPeer (peer)) | |||
peer->repaint (rect); | |||
} | |||
}; | |||
void NSViewComponentPeer::repaint (const Rectangle<int>& area) | |||
{ | |||
if (insideDrawRect) | |||
{ | |||
class AsyncRepaintMessage : public CallbackMessage | |||
{ | |||
public: | |||
AsyncRepaintMessage (NSViewComponentPeer* const peer_, const Rectangle<int>& rect_) | |||
: peer (peer_), rect (rect_) | |||
{ | |||
} | |||
void messageCallback() | |||
{ | |||
if (ComponentPeer::isValidPeer (peer)) | |||
peer->repaint (rect); | |||
} | |||
private: | |||
NSViewComponentPeer* const peer; | |||
const Rectangle<int> rect; | |||
}; | |||
(new AsyncRepaintMessage (this, area))->post(); | |||
} | |||
else | |||
@@ -675,6 +675,16 @@ | |||
JUCE_DECLARE_NON_COPYABLE(className)\ | |||
JUCE_LEAK_DETECTOR(className) | |||
#if ! DOXYGEN | |||
#define JUCE_JOIN_MACRO_HELPER(a, b) a ## b | |||
#endif | |||
/** Good old C macro concatenation helper. | |||
This combines two items (which may themselves be macros) into a single string, | |||
avoiding the pitfalls of the ## macro operator. | |||
*/ | |||
#define JUCE_JOIN_MACRO(a, b) JUCE_JOIN_MACRO_HELPER (a, b) | |||
#if JUCE_CATCH_UNHANDLED_EXCEPTIONS | |||
#define JUCE_TRY try | |||
@@ -3201,7 +3211,7 @@ private: | |||
@see JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR, LeakedObjectDetector | |||
*/ | |||
#define JUCE_LEAK_DETECTOR(OwnerClass) LeakedObjectDetector<OwnerClass> leakDetector ## __LINE__; | |||
#define JUCE_LEAK_DETECTOR(OwnerClass) LeakedObjectDetector<OwnerClass> JUCE_JOIN_MACRO (leakDetector, __LINE__); | |||
#else | |||
#define JUCE_LEAK_DETECTOR(OwnerClass) | |||
#endif | |||
@@ -126,7 +126,7 @@ private: | |||
@see JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR, LeakedObjectDetector | |||
*/ | |||
#define JUCE_LEAK_DETECTOR(OwnerClass) LeakedObjectDetector<OwnerClass> leakDetector ## __LINE__; | |||
#define JUCE_LEAK_DETECTOR(OwnerClass) LeakedObjectDetector<OwnerClass> JUCE_JOIN_MACRO (leakDetector, __LINE__); | |||
#else | |||
#define JUCE_LEAK_DETECTOR(OwnerClass) | |||
#endif | |||
@@ -191,6 +191,18 @@ | |||
JUCE_DECLARE_NON_COPYABLE(className)\ | |||
JUCE_LEAK_DETECTOR(className) | |||
//============================================================================== | |||
#if ! DOXYGEN | |||
#define JUCE_JOIN_MACRO_HELPER(a, b) a ## b | |||
#endif | |||
/** Good old C macro concatenation helper. | |||
This combines two items (which may themselves be macros) into a single string, | |||
avoiding the pitfalls of the ## macro operator. | |||
*/ | |||
#define JUCE_JOIN_MACRO(a, b) JUCE_JOIN_MACRO_HELPER (a, b) | |||
//============================================================================== | |||
#if JUCE_CATCH_UNHANDLED_EXCEPTIONS | |||
@@ -512,26 +512,28 @@ void ComponentPeer::handleFileDragDrop (const StringArray& files, const Point<in | |||
class AsyncFileDropMessage : public CallbackMessage | |||
{ | |||
public: | |||
AsyncFileDropMessage (Component* target_, const Point<int>& position_, const StringArray& files_) | |||
: target (target_), position (position_), files (files_) | |||
AsyncFileDropMessage (Component* target_, FileDragAndDropTarget* dropTarget_, | |||
const Point<int>& position_, const StringArray& files_) | |||
: target (target_), dropTarget (dropTarget_), position (position_), files (files_) | |||
{ | |||
} | |||
void messageCallback() | |||
{ | |||
if (target != 0) | |||
target->filesDropped (files, position.getX(), position.getY()); | |||
dropTarget->filesDropped (files, position.getX(), position.getY()); | |||
} | |||
private: | |||
Component::SafePointer<Component> target; | |||
FileDragAndDropTarget* dropTarget; | |||
Point<int> position; | |||
StringArray files; | |||
// (NB: don't make this non-copyable, which messes up in VC) | |||
}; | |||
(new AsyncFileDropMessage (targetComp, targetComp->getLocalPoint (component, position), files))->post(); | |||
(new AsyncFileDropMessage (targetComp, target, targetComp->getLocalPoint (component, position), files))->post(); | |||
} | |||
} | |||
} | |||
@@ -65,10 +65,6 @@ public: | |||
imageData = imageDataAllocated; | |||
} | |||
~SoftwareSharedImage() | |||
{ | |||
} | |||
Image::ImageType getType() const | |||
{ | |||
return Image::SoftwareImage; | |||
@@ -88,6 +84,8 @@ public: | |||
private: | |||
HeapBlock<uint8> imageDataAllocated; | |||
JUCE_LEAK_DETECTOR (SoftwareSharedImage); | |||
}; | |||
Image::SharedImage* Image::SharedImage::createSoftwareImage (Image::PixelFormat format, int width, int height, bool clearImage) | |||
@@ -126,6 +126,8 @@ private: | |||
return format == Image::ARGB ? (kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Little) : kCGBitmapByteOrderDefault; | |||
#endif | |||
} | |||
JUCE_LEAK_DETECTOR (CoreGraphicsImage); | |||
}; | |||
Image::SharedImage* Image::SharedImage::createNativeImage (PixelFormat format, int width, int height, bool clearImage) | |||
@@ -646,10 +648,6 @@ private: | |||
{ | |||
} | |||
~SavedState() | |||
{ | |||
} | |||
FillType fillType; | |||
Font font; | |||
CGFontRef fontRef; | |||
@@ -784,7 +782,7 @@ private: | |||
CGContextConcatCTM (context, t); | |||
} | |||
JUCE_DECLARE_NON_COPYABLE (CoreGraphicsContext); | |||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CoreGraphicsContext); | |||
}; | |||
LowLevelGraphicsContext* CoreGraphicsImage::createLowLevelContext() | |||
@@ -1674,28 +1674,29 @@ void juce_setKioskComponent (Component* kioskModeComponent, bool enableOrDisable | |||
} | |||
//============================================================================== | |||
class AsyncRepaintMessage : public CallbackMessage | |||
{ | |||
public: | |||
NSViewComponentPeer* const peer; | |||
const Rectangle<int> rect; | |||
AsyncRepaintMessage (NSViewComponentPeer* const peer_, const Rectangle<int>& rect_) | |||
: peer (peer_), rect (rect_) | |||
{ | |||
} | |||
void messageCallback() | |||
{ | |||
if (ComponentPeer::isValidPeer (peer)) | |||
peer->repaint (rect); | |||
} | |||
}; | |||
void NSViewComponentPeer::repaint (const Rectangle<int>& area) | |||
{ | |||
if (insideDrawRect) | |||
{ | |||
class AsyncRepaintMessage : public CallbackMessage | |||
{ | |||
public: | |||
AsyncRepaintMessage (NSViewComponentPeer* const peer_, const Rectangle<int>& rect_) | |||
: peer (peer_), rect (rect_) | |||
{ | |||
} | |||
void messageCallback() | |||
{ | |||
if (ComponentPeer::isValidPeer (peer)) | |||
peer->repaint (rect); | |||
} | |||
private: | |||
NSViewComponentPeer* const peer; | |||
const Rectangle<int> rect; | |||
}; | |||
(new AsyncRepaintMessage (this, area))->post(); | |||
} | |||
else | |||