mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
CustomTypeface unicode fix. Misc nullptr additions.
This commit is contained in:
parent
f04309f44a
commit
46c3a6bbe5
27 changed files with 219 additions and 186 deletions
|
|
@ -5105,7 +5105,7 @@ public:
|
|||
}
|
||||
else
|
||||
{
|
||||
result = scope.evaluateFunction (functionName, 0, 0);
|
||||
result = scope.evaluateFunction (functionName, nullptr, 0);
|
||||
}
|
||||
|
||||
return new Constant (result, false);
|
||||
|
|
@ -36189,8 +36189,6 @@ public:
|
|||
: channelNum (channelNum_)
|
||||
{}
|
||||
|
||||
~ClearChannelOp() {}
|
||||
|
||||
void perform (AudioSampleBuffer& sharedBufferChans, const OwnedArray <MidiBuffer>&, const int numSamples)
|
||||
{
|
||||
sharedBufferChans.clear (channelNum, 0, numSamples);
|
||||
|
|
@ -36210,8 +36208,6 @@ public:
|
|||
dstChannelNum (dstChannelNum_)
|
||||
{}
|
||||
|
||||
~CopyChannelOp() {}
|
||||
|
||||
void perform (AudioSampleBuffer& sharedBufferChans, const OwnedArray <MidiBuffer>&, const int numSamples)
|
||||
{
|
||||
sharedBufferChans.copyFrom (dstChannelNum, 0, sharedBufferChans, srcChannelNum, 0, numSamples);
|
||||
|
|
@ -36231,8 +36227,6 @@ public:
|
|||
dstChannelNum (dstChannelNum_)
|
||||
{}
|
||||
|
||||
~AddChannelOp() {}
|
||||
|
||||
void perform (AudioSampleBuffer& sharedBufferChans, const OwnedArray <MidiBuffer>&, const int numSamples)
|
||||
{
|
||||
sharedBufferChans.addFrom (dstChannelNum, 0, sharedBufferChans, srcChannelNum, 0, numSamples);
|
||||
|
|
@ -36251,8 +36245,6 @@ public:
|
|||
: bufferNum (bufferNum_)
|
||||
{}
|
||||
|
||||
~ClearMidiBufferOp() {}
|
||||
|
||||
void perform (AudioSampleBuffer&, const OwnedArray <MidiBuffer>& sharedMidiBuffers, const int)
|
||||
{
|
||||
sharedMidiBuffers.getUnchecked (bufferNum)->clear();
|
||||
|
|
@ -36272,8 +36264,6 @@ public:
|
|||
dstBufferNum (dstBufferNum_)
|
||||
{}
|
||||
|
||||
~CopyMidiBufferOp() {}
|
||||
|
||||
void perform (AudioSampleBuffer&, const OwnedArray <MidiBuffer>& sharedMidiBuffers, const int)
|
||||
{
|
||||
*sharedMidiBuffers.getUnchecked (dstBufferNum) = *sharedMidiBuffers.getUnchecked (srcBufferNum);
|
||||
|
|
@ -36293,8 +36283,6 @@ public:
|
|||
dstBufferNum (dstBufferNum_)
|
||||
{}
|
||||
|
||||
~AddMidiBufferOp() {}
|
||||
|
||||
void perform (AudioSampleBuffer&, const OwnedArray <MidiBuffer>& sharedMidiBuffers, const int numSamples)
|
||||
{
|
||||
sharedMidiBuffers.getUnchecked (dstBufferNum)
|
||||
|
|
@ -36326,10 +36314,6 @@ public:
|
|||
audioChannelsToUse.add (0);
|
||||
}
|
||||
|
||||
~ProcessBufferOp()
|
||||
{
|
||||
}
|
||||
|
||||
void perform (AudioSampleBuffer& sharedBufferChans, const OwnedArray <MidiBuffer>& sharedMidiBuffers, const int numSamples)
|
||||
{
|
||||
for (int i = totalChans; --i >= 0;)
|
||||
|
|
@ -37576,10 +37560,10 @@ void SamplerVoice::renderNextBlock (AudioSampleBuffer& outputBuffer, int startSa
|
|||
{
|
||||
const float* const inL = playingSound->data->getSampleData (0, 0);
|
||||
const float* const inR = playingSound->data->getNumChannels() > 1
|
||||
? playingSound->data->getSampleData (1, 0) : 0;
|
||||
? playingSound->data->getSampleData (1, 0) : nullptr;
|
||||
|
||||
float* outL = outputBuffer.getSampleData (0, startSample);
|
||||
float* outR = outputBuffer.getNumChannels() > 1 ? outputBuffer.getSampleData (1, startSample) : 0;
|
||||
float* outR = outputBuffer.getNumChannels() > 1 ? outputBuffer.getSampleData (1, startSample) : nullptr;
|
||||
|
||||
while (--numSamples >= 0)
|
||||
{
|
||||
|
|
@ -38771,7 +38755,7 @@ void MessageManager::runDispatchLoop()
|
|||
|
||||
void MessageManager::stopDispatchLoop()
|
||||
{
|
||||
postMessageToQueue (new Message (quitMessageId, 0, 0, 0));
|
||||
postMessageToQueue (new Message (quitMessageId, 0, 0, nullptr));
|
||||
quitMessagePosted = true;
|
||||
}
|
||||
|
||||
|
|
@ -38876,13 +38860,13 @@ private:
|
|||
MessageManagerLock::MessageManagerLock (Thread* const threadToCheck)
|
||||
: locked (false)
|
||||
{
|
||||
init (threadToCheck, 0);
|
||||
init (threadToCheck, nullptr);
|
||||
}
|
||||
|
||||
MessageManagerLock::MessageManagerLock (ThreadPoolJob* const jobToCheckForExitSignal)
|
||||
: locked (false)
|
||||
{
|
||||
init (0, jobToCheckForExitSignal);
|
||||
init (nullptr, jobToCheckForExitSignal);
|
||||
}
|
||||
|
||||
void MessageManagerLock::init (Thread* const threadToCheck, ThreadPoolJob* const job)
|
||||
|
|
@ -41484,7 +41468,7 @@ void Component::getVisibleArea (RectangleList& result, const bool includeSibling
|
|||
c->getLocalBounds(), this);
|
||||
}
|
||||
|
||||
ComponentHelpers::subtractObscuredRegions (*this, result, Point<int>(), unclipped, 0);
|
||||
ComponentHelpers::subtractObscuredRegions (*this, result, Point<int>(), unclipped, nullptr);
|
||||
result.consolidate();
|
||||
}
|
||||
}
|
||||
|
|
@ -51699,7 +51683,7 @@ public:
|
|||
|
||||
if (comp != nullptr && columnId != (int) comp->getProperties() [columnProperty])
|
||||
{
|
||||
columnComponents.set (i, 0);
|
||||
columnComponents.set (i, nullptr);
|
||||
comp = nullptr;
|
||||
}
|
||||
|
||||
|
|
@ -51864,7 +51848,7 @@ private:
|
|||
};
|
||||
|
||||
TableListBox::TableListBox (const String& name, TableListBoxModel* const model_)
|
||||
: ListBox (name, 0),
|
||||
: ListBox (name, nullptr),
|
||||
header (nullptr),
|
||||
model (model_),
|
||||
autoSizeOptionsShown (true)
|
||||
|
|
@ -55169,7 +55153,7 @@ void Toolbar::buttonClicked (Button*)
|
|||
{
|
||||
PopupMenu m;
|
||||
m.addCustomItem (1, new MissingItemsComponent (*this, getThickness()));
|
||||
m.showMenuAsync (PopupMenu::Options().withTargetComponent (missingItemsButton), 0);
|
||||
m.showMenuAsync (PopupMenu::Options().withTargetComponent (missingItemsButton), nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -58380,12 +58364,12 @@ bool FileChooser::browseForMultipleFilesOrDirectories (FilePreviewComponent* pre
|
|||
|
||||
bool FileChooser::browseForFileToSave (const bool warnAboutOverwritingExistingFiles)
|
||||
{
|
||||
return showDialog (false, true, true, warnAboutOverwritingExistingFiles, false, 0);
|
||||
return showDialog (false, true, true, warnAboutOverwritingExistingFiles, false, nullptr);
|
||||
}
|
||||
|
||||
bool FileChooser::browseForDirectory()
|
||||
{
|
||||
return showDialog (true, false, false, false, false, 0);
|
||||
return showDialog (true, false, false, false, false, nullptr);
|
||||
}
|
||||
|
||||
bool FileChooser::showDialog (const bool selectsDirectories,
|
||||
|
|
@ -58403,13 +58387,13 @@ bool FileChooser::showDialog (const bool selectsDirectories,
|
|||
jassert (previewComponent == nullptr || (previewComponent->getWidth() > 10
|
||||
&& previewComponent->getHeight() > 10));
|
||||
|
||||
#if JUCE_WINDOWS
|
||||
#if JUCE_WINDOWS
|
||||
if (useNativeDialogBox && ! (selectsFiles && selectsDirectories))
|
||||
#elif JUCE_MAC
|
||||
#elif JUCE_MAC
|
||||
if (useNativeDialogBox && (previewComponent == nullptr))
|
||||
#else
|
||||
#else
|
||||
if (false)
|
||||
#endif
|
||||
#endif
|
||||
{
|
||||
showPlatformDialog (results, title, startingFile, filters,
|
||||
selectsDirectories, selectsFiles, isSave,
|
||||
|
|
@ -58770,7 +58754,7 @@ BEGIN_JUCE_NAMESPACE
|
|||
const Image juce_createIconForFile (const File& file);
|
||||
|
||||
FileListComponent::FileListComponent (DirectoryContentsList& listToShow)
|
||||
: ListBox (String::empty, 0),
|
||||
: ListBox (String::empty, nullptr),
|
||||
DirectoryContentsDisplayComponent (listToShow)
|
||||
{
|
||||
setModel (this);
|
||||
|
|
@ -58966,7 +58950,7 @@ Component* FileListComponent::refreshComponentForRow (int row, bool isSelected,
|
|||
if (fileList.getFileInfo (row, fileInfo))
|
||||
comp->update (fileList.getDirectory(), &fileInfo, row, isSelected);
|
||||
else
|
||||
comp->update (fileList.getDirectory(), 0, row, isSelected);
|
||||
comp->update (fileList.getDirectory(), nullptr, row, isSelected);
|
||||
|
||||
return comp;
|
||||
}
|
||||
|
|
@ -61605,7 +61589,7 @@ Component* ComponentBuilder::createComponent()
|
|||
TypeHandler* const type = getHandlerForState (state);
|
||||
jassert (type != nullptr); // trying to create a component from an unknown type of ValueTree
|
||||
|
||||
return type != nullptr ? ComponentBuilderHelpers::createNewComponent (*type, state, 0) : 0;
|
||||
return type != nullptr ? ComponentBuilderHelpers::createNewComponent (*type, state, nullptr) : nullptr;
|
||||
}
|
||||
|
||||
void ComponentBuilder::registerTypeHandler (ComponentBuilder::TypeHandler* const type)
|
||||
|
|
@ -67518,7 +67502,7 @@ Button* LookAndFeel::createTabBarExtrasButton()
|
|||
overImage.addAndMakeVisible (dp.createCopy());
|
||||
|
||||
DrawableButton* db = new DrawableButton ("tabs", DrawableButton::ImageFitted);
|
||||
db->setImages (&normalImage, &overImage, 0);
|
||||
db->setImages (&normalImage, &overImage, nullptr);
|
||||
return db;
|
||||
}
|
||||
|
||||
|
|
@ -67821,7 +67805,7 @@ Drawable* LookAndFeel::loadDrawableFromData (const void* data, size_t numBytes)
|
|||
MemoryInputStream m (data, numBytes, false);
|
||||
GZIPDecompressorInputStream gz (m);
|
||||
ValueTree drawable (ValueTree::readFromStream (gz));
|
||||
return Drawable::createFromValueTree (drawable.getChild (0), 0);
|
||||
return Drawable::createFromValueTree (drawable.getChild (0), nullptr);
|
||||
}
|
||||
|
||||
const Drawable* LookAndFeel::getDefaultFolderImage()
|
||||
|
|
@ -72979,7 +72963,7 @@ public:
|
|||
const String& noItemsMessage_,
|
||||
const int minNumber_,
|
||||
const int maxNumber_)
|
||||
: ListBox (String::empty, 0),
|
||||
: ListBox (String::empty, nullptr),
|
||||
deviceManager (deviceManager_),
|
||||
noItemsMessage (noItemsMessage_),
|
||||
minNumber (minNumber_),
|
||||
|
|
@ -73538,7 +73522,7 @@ public:
|
|||
ChannelSelectorListBox (const AudioIODeviceType::DeviceSetupDetails& setup_,
|
||||
const BoxType type_,
|
||||
const String& noItemsMessage_)
|
||||
: ListBox (String::empty, 0),
|
||||
: ListBox (String::empty, nullptr),
|
||||
setup (setup_),
|
||||
type (type_),
|
||||
noItemsMessage (noItemsMessage_)
|
||||
|
|
@ -79740,8 +79724,8 @@ void MarkerList::ValueTreeWrapper::setMarker (const MarkerList::Marker& m, UndoM
|
|||
else
|
||||
{
|
||||
marker = ValueTree (markerTag);
|
||||
marker.setProperty (nameProperty, m.name, 0);
|
||||
marker.setProperty (posProperty, m.position.toString(), 0);
|
||||
marker.setProperty (nameProperty, m.name, nullptr);
|
||||
marker.setProperty (posProperty, m.position.toString(), nullptr);
|
||||
state.addChild (marker, -1, undoManager);
|
||||
}
|
||||
}
|
||||
|
|
@ -80379,7 +80363,7 @@ RelativePointPath::StartSubPath::StartSubPath (const RelativePoint& pos)
|
|||
const ValueTree RelativePointPath::StartSubPath::createTree() const
|
||||
{
|
||||
ValueTree v (DrawablePath::ValueTreeWrapper::Element::startSubPathElement);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point1, startPos.toString(), 0);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point1, startPos.toString(), nullptr);
|
||||
return v;
|
||||
}
|
||||
|
||||
|
|
@ -80433,7 +80417,7 @@ RelativePointPath::LineTo::LineTo (const RelativePoint& endPoint_)
|
|||
const ValueTree RelativePointPath::LineTo::createTree() const
|
||||
{
|
||||
ValueTree v (DrawablePath::ValueTreeWrapper::Element::lineToElement);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point1, endPoint.toString(), 0);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point1, endPoint.toString(), nullptr);
|
||||
return v;
|
||||
}
|
||||
|
||||
|
|
@ -80463,8 +80447,8 @@ RelativePointPath::QuadraticTo::QuadraticTo (const RelativePoint& controlPoint,
|
|||
const ValueTree RelativePointPath::QuadraticTo::createTree() const
|
||||
{
|
||||
ValueTree v (DrawablePath::ValueTreeWrapper::Element::quadraticToElement);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point1, controlPoints[0].toString(), 0);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point2, controlPoints[1].toString(), 0);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point1, controlPoints[0].toString(), nullptr);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point2, controlPoints[1].toString(), nullptr);
|
||||
return v;
|
||||
}
|
||||
|
||||
|
|
@ -80496,9 +80480,9 @@ RelativePointPath::CubicTo::CubicTo (const RelativePoint& controlPoint1, const R
|
|||
const ValueTree RelativePointPath::CubicTo::createTree() const
|
||||
{
|
||||
ValueTree v (DrawablePath::ValueTreeWrapper::Element::cubicToElement);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point1, controlPoints[0].toString(), 0);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point2, controlPoints[1].toString(), 0);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point3, controlPoints[2].toString(), 0);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point1, controlPoints[0].toString(), nullptr);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point2, controlPoints[1].toString(), nullptr);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point3, controlPoints[2].toString(), nullptr);
|
||||
return v;
|
||||
}
|
||||
|
||||
|
|
@ -86737,9 +86721,9 @@ const String Drawable::ValueTreeWrapperBase::getID() const
|
|||
void Drawable::ValueTreeWrapperBase::setID (const String& newID)
|
||||
{
|
||||
if (newID.isEmpty())
|
||||
state.removeProperty (ComponentBuilder::idProperty, 0);
|
||||
state.removeProperty (ComponentBuilder::idProperty, nullptr);
|
||||
else
|
||||
state.setProperty (ComponentBuilder::idProperty, newID, 0);
|
||||
state.setProperty (ComponentBuilder::idProperty, newID, nullptr);
|
||||
}
|
||||
|
||||
END_JUCE_NAMESPACE
|
||||
|
|
@ -87141,7 +87125,7 @@ ValueTree DrawableShape::FillAndStrokeState::getFillState (const Identifier& fil
|
|||
if (v.isValid())
|
||||
return v;
|
||||
|
||||
setFill (fillOrStrokeType, FillType (Colours::black), 0, 0);
|
||||
setFill (fillOrStrokeType, FillType (Colours::black), nullptr, nullptr);
|
||||
return getFillState (fillOrStrokeType);
|
||||
}
|
||||
|
||||
|
|
@ -87436,8 +87420,8 @@ const RelativeRectangle DrawableComposite::ValueTreeWrapper::getContentArea() co
|
|||
|
||||
void DrawableComposite::ValueTreeWrapper::setContentArea (const RelativeRectangle& newArea, UndoManager* undoManager)
|
||||
{
|
||||
MarkerList::ValueTreeWrapper markersX (getMarkerListCreating (true, 0));
|
||||
MarkerList::ValueTreeWrapper markersY (getMarkerListCreating (false, 0));
|
||||
MarkerList::ValueTreeWrapper markersX (getMarkerListCreating (true, nullptr));
|
||||
MarkerList::ValueTreeWrapper markersY (getMarkerListCreating (false, nullptr));
|
||||
|
||||
markersX.setMarker (MarkerList::Marker (contentLeftMarkerName, newArea.left), undoManager);
|
||||
markersX.setMarker (MarkerList::Marker (contentRightMarkerName, newArea.right), undoManager);
|
||||
|
|
@ -87474,7 +87458,7 @@ const ValueTree DrawableComposite::createValueTree (ComponentBuilder::ImageProvi
|
|||
ValueTreeWrapper v (tree);
|
||||
|
||||
v.setID (getComponentID());
|
||||
v.setBoundingBox (bounds, 0);
|
||||
v.setBoundingBox (bounds, nullptr);
|
||||
|
||||
ValueTree childList (v.getChildListCreating (nullptr));
|
||||
|
||||
|
|
@ -87483,11 +87467,11 @@ const ValueTree DrawableComposite::createValueTree (ComponentBuilder::ImageProvi
|
|||
const Drawable* const d = dynamic_cast <const Drawable*> (getChildComponent(i));
|
||||
jassert (d != nullptr); // You can't save a mix of Drawables and normal components!
|
||||
|
||||
childList.addChild (d->createValueTree (imageProvider), -1, 0);
|
||||
childList.addChild (d->createValueTree (imageProvider), -1, nullptr);
|
||||
}
|
||||
|
||||
v.getMarkerListCreating (true, 0).readFrom (markersX, 0);
|
||||
v.getMarkerListCreating (false, 0).readFrom (markersY, 0);
|
||||
v.getMarkerListCreating (true, nullptr).readFrom (markersX, nullptr);
|
||||
v.getMarkerListCreating (false, nullptr).readFrom (markersY, nullptr);
|
||||
|
||||
return tree;
|
||||
}
|
||||
|
|
@ -87741,16 +87725,16 @@ const ValueTree DrawableImage::createValueTree (ComponentBuilder::ImageProvider*
|
|||
ValueTreeWrapper v (tree);
|
||||
|
||||
v.setID (getComponentID());
|
||||
v.setOpacity (opacity, 0);
|
||||
v.setOverlayColour (overlayColour, 0);
|
||||
v.setBoundingBox (bounds, 0);
|
||||
v.setOpacity (opacity, nullptr);
|
||||
v.setOverlayColour (overlayColour, nullptr);
|
||||
v.setBoundingBox (bounds, nullptr);
|
||||
|
||||
if (image.isValid())
|
||||
{
|
||||
jassert (imageProvider != nullptr); // if you're using images, you need to provide something that can load and save them!
|
||||
|
||||
if (imageProvider != nullptr)
|
||||
v.setImageIdentifier (imageProvider->getIdentifierForImage (image), 0);
|
||||
v.setImageIdentifier (imageProvider->getIdentifierForImage (image), nullptr);
|
||||
}
|
||||
|
||||
return tree;
|
||||
|
|
@ -87878,7 +87862,7 @@ void DrawablePath::setPath (const RelativePointPath& newRelativePath)
|
|||
else
|
||||
{
|
||||
relativePath = nullptr;
|
||||
applyRelativePath (newRelativePath, 0);
|
||||
applyRelativePath (newRelativePath, nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -87897,7 +87881,7 @@ DrawablePath::ValueTreeWrapper::ValueTreeWrapper (const ValueTree& state_)
|
|||
|
||||
ValueTree DrawablePath::ValueTreeWrapper::getPathState()
|
||||
{
|
||||
return state.getOrCreateChildWithName (path, 0);
|
||||
return state.getOrCreateChildWithName (path, nullptr);
|
||||
}
|
||||
|
||||
bool DrawablePath::ValueTreeWrapper::usesNonZeroWinding() const
|
||||
|
|
@ -88223,9 +88207,9 @@ ValueTree DrawablePath::ValueTreeWrapper::Element::insertPoint (const Point<floa
|
|||
setModeOfEndPoint (roundedMode, undoManager);
|
||||
|
||||
Element newElement (newTree = ValueTree (cubicToElement));
|
||||
newElement.setControlPoint (0, newCp2, 0);
|
||||
newElement.setControlPoint (1, mid3, 0);
|
||||
newElement.setControlPoint (2, rp4, 0);
|
||||
newElement.setControlPoint (0, newCp2, nullptr);
|
||||
newElement.setControlPoint (1, mid3, nullptr);
|
||||
newElement.setControlPoint (2, rp4, nullptr);
|
||||
|
||||
state.getParent().addChild (newTree, state.getParent().indexOf (state) + 1, undoManager);
|
||||
}
|
||||
|
|
@ -88246,8 +88230,8 @@ ValueTree DrawablePath::ValueTreeWrapper::Element::insertPoint (const Point<floa
|
|||
setModeOfEndPoint (roundedMode, undoManager);
|
||||
|
||||
Element newElement (newTree = ValueTree (quadraticToElement));
|
||||
newElement.setControlPoint (0, mid2, 0);
|
||||
newElement.setControlPoint (1, rp3, 0);
|
||||
newElement.setControlPoint (0, mid2, nullptr);
|
||||
newElement.setControlPoint (1, rp3, nullptr);
|
||||
|
||||
state.getParent().addChild (newTree, state.getParent().indexOf (state) + 1, undoManager);
|
||||
}
|
||||
|
|
@ -88260,7 +88244,7 @@ ValueTree DrawablePath::ValueTreeWrapper::Element::insertPoint (const Point<floa
|
|||
setControlPoint (0, newPoint, undoManager);
|
||||
|
||||
Element newElement (newTree = ValueTree (lineToElement));
|
||||
newElement.setControlPoint (0, rp2, 0);
|
||||
newElement.setControlPoint (0, rp2, nullptr);
|
||||
|
||||
state.getParent().addChild (newTree, state.getParent().indexOf (state) + 1, undoManager);
|
||||
}
|
||||
|
|
@ -88295,12 +88279,12 @@ const ValueTree DrawablePath::createValueTree (ComponentBuilder::ImageProvider*
|
|||
ValueTreeWrapper v (tree);
|
||||
|
||||
v.setID (getComponentID());
|
||||
writeTo (v, imageProvider, 0);
|
||||
writeTo (v, imageProvider, nullptr);
|
||||
|
||||
if (relativePath != nullptr)
|
||||
v.readFrom (*relativePath, 0);
|
||||
v.readFrom (*relativePath, nullptr);
|
||||
else
|
||||
v.readFrom (RelativePointPath (path), 0);
|
||||
v.readFrom (RelativePointPath (path), nullptr);
|
||||
|
||||
return tree;
|
||||
}
|
||||
|
|
@ -88460,9 +88444,9 @@ const ValueTree DrawableRectangle::createValueTree (ComponentBuilder::ImageProvi
|
|||
ValueTreeWrapper v (tree);
|
||||
|
||||
v.setID (getComponentID());
|
||||
writeTo (v, imageProvider, 0);
|
||||
v.setRectangle (bounds, 0);
|
||||
v.setCornerSize (cornerSize, 0);
|
||||
writeTo (v, imageProvider, nullptr);
|
||||
v.setRectangle (bounds, nullptr);
|
||||
v.setCornerSize (cornerSize, nullptr);
|
||||
|
||||
return tree;
|
||||
}
|
||||
|
|
@ -88750,12 +88734,12 @@ const ValueTree DrawableText::createValueTree (ComponentBuilder::ImageProvider*)
|
|||
ValueTreeWrapper v (tree);
|
||||
|
||||
v.setID (getComponentID());
|
||||
v.setText (text, 0);
|
||||
v.setFont (font, 0);
|
||||
v.setJustification (justification, 0);
|
||||
v.setColour (colour, 0);
|
||||
v.setBoundingBox (bounds, 0);
|
||||
v.setFontSizeControlPoint (fontSizeControlPoint, 0);
|
||||
v.setText (text, nullptr);
|
||||
v.setFont (font, nullptr);
|
||||
v.setJustification (justification, nullptr);
|
||||
v.setColour (colour, nullptr);
|
||||
v.setBoundingBox (bounds, nullptr);
|
||||
v.setFontSizeControlPoint (fontSizeControlPoint, nullptr);
|
||||
|
||||
return tree;
|
||||
}
|
||||
|
|
@ -91819,6 +91803,38 @@ private:
|
|||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (GlyphInfo);
|
||||
};
|
||||
|
||||
namespace CustomTypefaceHelpers
|
||||
{
|
||||
juce_wchar readChar (InputStream& in)
|
||||
{
|
||||
uint32 n = (uint32) (uint16) in.readShort();
|
||||
|
||||
if (n >= 0xd800 && n <= 0xdfff)
|
||||
{
|
||||
const uint32 nextWord = (uint32) (uint16) in.readShort();
|
||||
jassert (nextWord >= 0xdc00); // illegal unicode character!
|
||||
|
||||
n = 0x10000 + (((n - 0xd800) << 10) | (nextWord - 0xdc00));
|
||||
}
|
||||
|
||||
return (juce_wchar) n;
|
||||
}
|
||||
|
||||
void writeChar (OutputStream& out, juce_wchar charToWrite)
|
||||
{
|
||||
if (charToWrite >= 0x10000)
|
||||
{
|
||||
charToWrite -= 0x10000;
|
||||
out.writeShort ((short) (uint16) (0xd800 + (charToWrite >> 10)));
|
||||
out.writeShort ((short) (uint16) (0xdc00 + (charToWrite & 0x3ff)));
|
||||
}
|
||||
else
|
||||
{
|
||||
out.writeShort ((short) (uint16) charToWrite);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CustomTypeface::CustomTypeface()
|
||||
: Typeface (String::empty)
|
||||
{
|
||||
|
|
@ -91837,13 +91853,13 @@ CustomTypeface::CustomTypeface (InputStream& serialisedTypefaceStream)
|
|||
isBold = in.readBool();
|
||||
isItalic = in.readBool();
|
||||
ascent = in.readFloat();
|
||||
defaultCharacter = (juce_wchar) in.readShort();
|
||||
defaultCharacter = CustomTypefaceHelpers::readChar (in);
|
||||
|
||||
int i, numChars = in.readInt();
|
||||
|
||||
for (i = 0; i < numChars; ++i)
|
||||
{
|
||||
const juce_wchar c = (juce_wchar) in.readShort();
|
||||
const juce_wchar c = CustomTypefaceHelpers::readChar (in);
|
||||
const float width = in.readFloat();
|
||||
|
||||
Path p;
|
||||
|
|
@ -91855,8 +91871,8 @@ CustomTypeface::CustomTypeface (InputStream& serialisedTypefaceStream)
|
|||
|
||||
for (i = 0; i < numKerningPairs; ++i)
|
||||
{
|
||||
const juce_wchar char1 = (juce_wchar) in.readShort();
|
||||
const juce_wchar char2 = (juce_wchar) in.readShort();
|
||||
const juce_wchar char1 = CustomTypefaceHelpers::readChar (in);
|
||||
const juce_wchar char2 = CustomTypefaceHelpers::readChar (in);
|
||||
|
||||
addKerningPair (char1, char2, in.readFloat());
|
||||
}
|
||||
|
|
@ -92004,7 +92020,7 @@ bool CustomTypeface::writeToStream (OutputStream& outputStream)
|
|||
out.writeBool (isBold);
|
||||
out.writeBool (isItalic);
|
||||
out.writeFloat (ascent);
|
||||
out.writeShort ((short) (unsigned short) defaultCharacter);
|
||||
CustomTypefaceHelpers::writeChar (out, defaultCharacter);
|
||||
out.writeInt (glyphs.size());
|
||||
|
||||
int i, numKerningPairs = 0;
|
||||
|
|
@ -92012,7 +92028,7 @@ bool CustomTypeface::writeToStream (OutputStream& outputStream)
|
|||
for (i = 0; i < glyphs.size(); ++i)
|
||||
{
|
||||
const GlyphInfo* const g = glyphs.getUnchecked (i);
|
||||
out.writeShort ((short) (unsigned short) g->character);
|
||||
CustomTypefaceHelpers::writeChar (out, g->character);
|
||||
out.writeFloat (g->width);
|
||||
g->path.writePathToStream (out);
|
||||
|
||||
|
|
@ -92028,8 +92044,8 @@ bool CustomTypeface::writeToStream (OutputStream& outputStream)
|
|||
for (int j = 0; j < g->kerningPairs.size(); ++j)
|
||||
{
|
||||
const GlyphInfo::KerningPair& p = g->kerningPairs.getReference (j);
|
||||
out.writeShort ((short) (unsigned short) g->character);
|
||||
out.writeShort ((short) (unsigned short) p.character2);
|
||||
CustomTypefaceHelpers::writeChar (out, g->character);
|
||||
CustomTypefaceHelpers::writeChar (out, p.character2);
|
||||
out.writeFloat (p.kerningAmount);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10691,7 +10691,7 @@ public:
|
|||
HashMap (const int numberOfSlots = defaultHashTableSize)
|
||||
: totalNumItems (0)
|
||||
{
|
||||
slots.insertMultiple (0, 0, numberOfSlots);
|
||||
slots.insertMultiple (0, nullptr, numberOfSlots);
|
||||
}
|
||||
|
||||
/** Destructor. */
|
||||
|
|
@ -10718,7 +10718,7 @@ public:
|
|||
h = h->nextEntry;
|
||||
}
|
||||
|
||||
slots.set (i, 0);
|
||||
slots.set (i, nullptr);
|
||||
}
|
||||
|
||||
totalNumItems = 0;
|
||||
|
|
@ -55966,7 +55966,7 @@ private:
|
|||
|
||||
void mouseDrag (const MouseEvent& e)
|
||||
{
|
||||
myDragger.dragComponent (this, e, 0);
|
||||
myDragger.dragComponent (this, e, nullptr);
|
||||
}
|
||||
};
|
||||
@endcode
|
||||
|
|
@ -64326,7 +64326,7 @@ private:
|
|||
MyContentComponent content;
|
||||
content.setSize (300, 300);
|
||||
|
||||
CallOutBox callOut (content, *this, 0);
|
||||
CallOutBox callOut (content, *this, nullptr);
|
||||
callOut.runModalLoop();
|
||||
}
|
||||
@endcode
|
||||
|
|
|
|||
|
|
@ -359,8 +359,6 @@ public:
|
|||
: channelNum (channelNum_)
|
||||
{}
|
||||
|
||||
~ClearChannelOp() {}
|
||||
|
||||
void perform (AudioSampleBuffer& sharedBufferChans, const OwnedArray <MidiBuffer>&, const int numSamples)
|
||||
{
|
||||
sharedBufferChans.clear (channelNum, 0, numSamples);
|
||||
|
|
@ -381,8 +379,6 @@ public:
|
|||
dstChannelNum (dstChannelNum_)
|
||||
{}
|
||||
|
||||
~CopyChannelOp() {}
|
||||
|
||||
void perform (AudioSampleBuffer& sharedBufferChans, const OwnedArray <MidiBuffer>&, const int numSamples)
|
||||
{
|
||||
sharedBufferChans.copyFrom (dstChannelNum, 0, sharedBufferChans, srcChannelNum, 0, numSamples);
|
||||
|
|
@ -403,8 +399,6 @@ public:
|
|||
dstChannelNum (dstChannelNum_)
|
||||
{}
|
||||
|
||||
~AddChannelOp() {}
|
||||
|
||||
void perform (AudioSampleBuffer& sharedBufferChans, const OwnedArray <MidiBuffer>&, const int numSamples)
|
||||
{
|
||||
sharedBufferChans.addFrom (dstChannelNum, 0, sharedBufferChans, srcChannelNum, 0, numSamples);
|
||||
|
|
@ -424,8 +418,6 @@ public:
|
|||
: bufferNum (bufferNum_)
|
||||
{}
|
||||
|
||||
~ClearMidiBufferOp() {}
|
||||
|
||||
void perform (AudioSampleBuffer&, const OwnedArray <MidiBuffer>& sharedMidiBuffers, const int)
|
||||
{
|
||||
sharedMidiBuffers.getUnchecked (bufferNum)->clear();
|
||||
|
|
@ -446,8 +438,6 @@ public:
|
|||
dstBufferNum (dstBufferNum_)
|
||||
{}
|
||||
|
||||
~CopyMidiBufferOp() {}
|
||||
|
||||
void perform (AudioSampleBuffer&, const OwnedArray <MidiBuffer>& sharedMidiBuffers, const int)
|
||||
{
|
||||
*sharedMidiBuffers.getUnchecked (dstBufferNum) = *sharedMidiBuffers.getUnchecked (srcBufferNum);
|
||||
|
|
@ -468,8 +458,6 @@ public:
|
|||
dstBufferNum (dstBufferNum_)
|
||||
{}
|
||||
|
||||
~AddMidiBufferOp() {}
|
||||
|
||||
void perform (AudioSampleBuffer&, const OwnedArray <MidiBuffer>& sharedMidiBuffers, const int numSamples)
|
||||
{
|
||||
sharedMidiBuffers.getUnchecked (dstBufferNum)
|
||||
|
|
@ -502,10 +490,6 @@ public:
|
|||
audioChannelsToUse.add (0);
|
||||
}
|
||||
|
||||
~ProcessBufferOp()
|
||||
{
|
||||
}
|
||||
|
||||
void perform (AudioSampleBuffer& sharedBufferChans, const OwnedArray <MidiBuffer>& sharedMidiBuffers, const int numSamples)
|
||||
{
|
||||
for (int i = totalChans; --i >= 0;)
|
||||
|
|
|
|||
|
|
@ -176,10 +176,10 @@ void SamplerVoice::renderNextBlock (AudioSampleBuffer& outputBuffer, int startSa
|
|||
{
|
||||
const float* const inL = playingSound->data->getSampleData (0, 0);
|
||||
const float* const inR = playingSound->data->getNumChannels() > 1
|
||||
? playingSound->data->getSampleData (1, 0) : 0;
|
||||
? playingSound->data->getSampleData (1, 0) : nullptr;
|
||||
|
||||
float* outL = outputBuffer.getSampleData (0, startSample);
|
||||
float* outR = outputBuffer.getNumChannels() > 1 ? outputBuffer.getSampleData (1, startSample) : 0;
|
||||
float* outR = outputBuffer.getNumChannels() > 1 ? outputBuffer.getSampleData (1, startSample) : nullptr;
|
||||
|
||||
while (--numSamples >= 0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ public:
|
|||
HashMap (const int numberOfSlots = defaultHashTableSize)
|
||||
: totalNumItems (0)
|
||||
{
|
||||
slots.insertMultiple (0, 0, numberOfSlots);
|
||||
slots.insertMultiple (0, nullptr, numberOfSlots);
|
||||
}
|
||||
|
||||
/** Destructor. */
|
||||
|
|
@ -139,7 +139,7 @@ public:
|
|||
h = h->nextEntry;
|
||||
}
|
||||
|
||||
slots.set (i, 0);
|
||||
slots.set (i, nullptr);
|
||||
}
|
||||
|
||||
totalNumItems = 0;
|
||||
|
|
|
|||
|
|
@ -130,7 +130,7 @@ void MessageManager::runDispatchLoop()
|
|||
|
||||
void MessageManager::stopDispatchLoop()
|
||||
{
|
||||
postMessageToQueue (new Message (quitMessageId, 0, 0, 0));
|
||||
postMessageToQueue (new Message (quitMessageId, 0, 0, nullptr));
|
||||
quitMessagePosted = true;
|
||||
}
|
||||
|
||||
|
|
@ -240,13 +240,13 @@ private:
|
|||
MessageManagerLock::MessageManagerLock (Thread* const threadToCheck)
|
||||
: locked (false)
|
||||
{
|
||||
init (threadToCheck, 0);
|
||||
init (threadToCheck, nullptr);
|
||||
}
|
||||
|
||||
MessageManagerLock::MessageManagerLock (ThreadPoolJob* const jobToCheckForExitSignal)
|
||||
: locked (false)
|
||||
{
|
||||
init (0, jobToCheckForExitSignal);
|
||||
init (nullptr, jobToCheckForExitSignal);
|
||||
}
|
||||
|
||||
void MessageManagerLock::init (Thread* const threadToCheck, ThreadPoolJob* const job)
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ public:
|
|||
|
||||
if (comp != nullptr && columnId != (int) comp->getProperties() [columnProperty])
|
||||
{
|
||||
columnComponents.set (i, 0);
|
||||
columnComponents.set (i, nullptr);
|
||||
comp = nullptr;
|
||||
}
|
||||
|
||||
|
|
@ -267,7 +267,7 @@ private:
|
|||
|
||||
//==============================================================================
|
||||
TableListBox::TableListBox (const String& name, TableListBoxModel* const model_)
|
||||
: ListBox (name, 0),
|
||||
: ListBox (name, nullptr),
|
||||
header (nullptr),
|
||||
model (model_),
|
||||
autoSizeOptionsShown (true)
|
||||
|
|
|
|||
|
|
@ -558,7 +558,7 @@ void Toolbar::buttonClicked (Button*)
|
|||
{
|
||||
PopupMenu m;
|
||||
m.addCustomItem (1, new MissingItemsComponent (*this, getThickness()));
|
||||
m.showMenuAsync (PopupMenu::Options().withTargetComponent (missingItemsButton), 0);
|
||||
m.showMenuAsync (PopupMenu::Options().withTargetComponent (missingItemsButton), nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -74,12 +74,12 @@ bool FileChooser::browseForMultipleFilesOrDirectories (FilePreviewComponent* pre
|
|||
|
||||
bool FileChooser::browseForFileToSave (const bool warnAboutOverwritingExistingFiles)
|
||||
{
|
||||
return showDialog (false, true, true, warnAboutOverwritingExistingFiles, false, 0);
|
||||
return showDialog (false, true, true, warnAboutOverwritingExistingFiles, false, nullptr);
|
||||
}
|
||||
|
||||
bool FileChooser::browseForDirectory()
|
||||
{
|
||||
return showDialog (true, false, false, false, false, 0);
|
||||
return showDialog (true, false, false, false, false, nullptr);
|
||||
}
|
||||
|
||||
bool FileChooser::showDialog (const bool selectsDirectories,
|
||||
|
|
@ -97,13 +97,13 @@ bool FileChooser::showDialog (const bool selectsDirectories,
|
|||
jassert (previewComponent == nullptr || (previewComponent->getWidth() > 10
|
||||
&& previewComponent->getHeight() > 10));
|
||||
|
||||
#if JUCE_WINDOWS
|
||||
#if JUCE_WINDOWS
|
||||
if (useNativeDialogBox && ! (selectsFiles && selectsDirectories))
|
||||
#elif JUCE_MAC
|
||||
#elif JUCE_MAC
|
||||
if (useNativeDialogBox && (previewComponent == nullptr))
|
||||
#else
|
||||
#else
|
||||
if (false)
|
||||
#endif
|
||||
#endif
|
||||
{
|
||||
showPlatformDialog (results, title, startingFile, filters,
|
||||
selectsDirectories, selectsFiles, isSave,
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ const Image juce_createIconForFile (const File& file);
|
|||
|
||||
//==============================================================================
|
||||
FileListComponent::FileListComponent (DirectoryContentsList& listToShow)
|
||||
: ListBox (String::empty, 0),
|
||||
: ListBox (String::empty, nullptr),
|
||||
DirectoryContentsDisplayComponent (listToShow)
|
||||
{
|
||||
setModel (this);
|
||||
|
|
@ -237,7 +237,7 @@ Component* FileListComponent::refreshComponentForRow (int row, bool isSelected,
|
|||
if (fileList.getFileInfo (row, fileInfo))
|
||||
comp->update (fileList.getDirectory(), &fileInfo, row, isSelected);
|
||||
else
|
||||
comp->update (fileList.getDirectory(), 0, row, isSelected);
|
||||
comp->update (fileList.getDirectory(), nullptr, row, isSelected);
|
||||
|
||||
return comp;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2137,7 +2137,7 @@ void Component::getVisibleArea (RectangleList& result, const bool includeSibling
|
|||
c->getLocalBounds(), this);
|
||||
}
|
||||
|
||||
ComponentHelpers::subtractObscuredRegions (*this, result, Point<int>(), unclipped, 0);
|
||||
ComponentHelpers::subtractObscuredRegions (*this, result, Point<int>(), unclipped, nullptr);
|
||||
result.consolidate();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -146,7 +146,7 @@ Component* ComponentBuilder::createComponent()
|
|||
TypeHandler* const type = getHandlerForState (state);
|
||||
jassert (type != nullptr); // trying to create a component from an unknown type of ValueTree
|
||||
|
||||
return type != nullptr ? ComponentBuilderHelpers::createNewComponent (*type, state, 0) : 0;
|
||||
return type != nullptr ? ComponentBuilderHelpers::createNewComponent (*type, state, nullptr) : nullptr;
|
||||
}
|
||||
|
||||
void ComponentBuilder::registerTypeHandler (ComponentBuilder::TypeHandler* const type)
|
||||
|
|
|
|||
|
|
@ -2479,7 +2479,7 @@ Button* LookAndFeel::createTabBarExtrasButton()
|
|||
overImage.addAndMakeVisible (dp.createCopy());
|
||||
|
||||
DrawableButton* db = new DrawableButton ("tabs", DrawableButton::ImageFitted);
|
||||
db->setImages (&normalImage, &overImage, 0);
|
||||
db->setImages (&normalImage, &overImage, nullptr);
|
||||
return db;
|
||||
}
|
||||
|
||||
|
|
@ -2790,7 +2790,7 @@ Drawable* LookAndFeel::loadDrawableFromData (const void* data, size_t numBytes)
|
|||
MemoryInputStream m (data, numBytes, false);
|
||||
GZIPDecompressorInputStream gz (m);
|
||||
ValueTree drawable (ValueTree::readFromStream (gz));
|
||||
return Drawable::createFromValueTree (drawable.getChild (0), 0);
|
||||
return Drawable::createFromValueTree (drawable.getChild (0), nullptr);
|
||||
}
|
||||
|
||||
const Drawable* LookAndFeel::getDefaultFolderImage()
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@
|
|||
|
||||
void mouseDrag (const MouseEvent& e)
|
||||
{
|
||||
myDragger.dragComponent (this, e, 0);
|
||||
myDragger.dragComponent (this, e, nullptr);
|
||||
}
|
||||
};
|
||||
@endcode
|
||||
|
|
|
|||
|
|
@ -237,8 +237,8 @@ void MarkerList::ValueTreeWrapper::setMarker (const MarkerList::Marker& m, UndoM
|
|||
else
|
||||
{
|
||||
marker = ValueTree (markerTag);
|
||||
marker.setProperty (nameProperty, m.name, 0);
|
||||
marker.setProperty (posProperty, m.position.toString(), 0);
|
||||
marker.setProperty (nameProperty, m.name, nullptr);
|
||||
marker.setProperty (posProperty, m.position.toString(), nullptr);
|
||||
state.addChild (marker, -1, undoManager);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -155,7 +155,7 @@ RelativePointPath::StartSubPath::StartSubPath (const RelativePoint& pos)
|
|||
const ValueTree RelativePointPath::StartSubPath::createTree() const
|
||||
{
|
||||
ValueTree v (DrawablePath::ValueTreeWrapper::Element::startSubPathElement);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point1, startPos.toString(), 0);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point1, startPos.toString(), nullptr);
|
||||
return v;
|
||||
}
|
||||
|
||||
|
|
@ -211,7 +211,7 @@ RelativePointPath::LineTo::LineTo (const RelativePoint& endPoint_)
|
|||
const ValueTree RelativePointPath::LineTo::createTree() const
|
||||
{
|
||||
ValueTree v (DrawablePath::ValueTreeWrapper::Element::lineToElement);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point1, endPoint.toString(), 0);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point1, endPoint.toString(), nullptr);
|
||||
return v;
|
||||
}
|
||||
|
||||
|
|
@ -242,8 +242,8 @@ RelativePointPath::QuadraticTo::QuadraticTo (const RelativePoint& controlPoint,
|
|||
const ValueTree RelativePointPath::QuadraticTo::createTree() const
|
||||
{
|
||||
ValueTree v (DrawablePath::ValueTreeWrapper::Element::quadraticToElement);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point1, controlPoints[0].toString(), 0);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point2, controlPoints[1].toString(), 0);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point1, controlPoints[0].toString(), nullptr);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point2, controlPoints[1].toString(), nullptr);
|
||||
return v;
|
||||
}
|
||||
|
||||
|
|
@ -277,9 +277,9 @@ RelativePointPath::CubicTo::CubicTo (const RelativePoint& controlPoint1, const R
|
|||
const ValueTree RelativePointPath::CubicTo::createTree() const
|
||||
{
|
||||
ValueTree v (DrawablePath::ValueTreeWrapper::Element::cubicToElement);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point1, controlPoints[0].toString(), 0);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point2, controlPoints[1].toString(), 0);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point3, controlPoints[2].toString(), 0);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point1, controlPoints[0].toString(), nullptr);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point2, controlPoints[1].toString(), nullptr);
|
||||
v.setProperty (DrawablePath::ValueTreeWrapper::point3, controlPoints[2].toString(), nullptr);
|
||||
return v;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ public:
|
|||
const String& noItemsMessage_,
|
||||
const int minNumber_,
|
||||
const int maxNumber_)
|
||||
: ListBox (String::empty, 0),
|
||||
: ListBox (String::empty, nullptr),
|
||||
deviceManager (deviceManager_),
|
||||
noItemsMessage (noItemsMessage_),
|
||||
minNumber (minNumber_),
|
||||
|
|
@ -650,7 +650,7 @@ public:
|
|||
ChannelSelectorListBox (const AudioIODeviceType::DeviceSetupDetails& setup_,
|
||||
const BoxType type_,
|
||||
const String& noItemsMessage_)
|
||||
: ListBox (String::empty, 0),
|
||||
: ListBox (String::empty, nullptr),
|
||||
setup (setup_),
|
||||
type (type_),
|
||||
noItemsMessage (noItemsMessage_)
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
MyContentComponent content;
|
||||
content.setSize (300, 300);
|
||||
|
||||
CallOutBox callOut (content, *this, 0);
|
||||
CallOutBox callOut (content, *this, nullptr);
|
||||
callOut.runModalLoop();
|
||||
}
|
||||
@endcode
|
||||
|
|
|
|||
|
|
@ -238,9 +238,9 @@ const String Drawable::ValueTreeWrapperBase::getID() const
|
|||
void Drawable::ValueTreeWrapperBase::setID (const String& newID)
|
||||
{
|
||||
if (newID.isEmpty())
|
||||
state.removeProperty (ComponentBuilder::idProperty, 0);
|
||||
state.removeProperty (ComponentBuilder::idProperty, nullptr);
|
||||
else
|
||||
state.setProperty (ComponentBuilder::idProperty, newID, 0);
|
||||
state.setProperty (ComponentBuilder::idProperty, newID, nullptr);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -290,8 +290,8 @@ const RelativeRectangle DrawableComposite::ValueTreeWrapper::getContentArea() co
|
|||
|
||||
void DrawableComposite::ValueTreeWrapper::setContentArea (const RelativeRectangle& newArea, UndoManager* undoManager)
|
||||
{
|
||||
MarkerList::ValueTreeWrapper markersX (getMarkerListCreating (true, 0));
|
||||
MarkerList::ValueTreeWrapper markersY (getMarkerListCreating (false, 0));
|
||||
MarkerList::ValueTreeWrapper markersX (getMarkerListCreating (true, nullptr));
|
||||
MarkerList::ValueTreeWrapper markersY (getMarkerListCreating (false, nullptr));
|
||||
|
||||
markersX.setMarker (MarkerList::Marker (contentLeftMarkerName, newArea.left), undoManager);
|
||||
markersX.setMarker (MarkerList::Marker (contentRightMarkerName, newArea.right), undoManager);
|
||||
|
|
@ -329,7 +329,7 @@ const ValueTree DrawableComposite::createValueTree (ComponentBuilder::ImageProvi
|
|||
ValueTreeWrapper v (tree);
|
||||
|
||||
v.setID (getComponentID());
|
||||
v.setBoundingBox (bounds, 0);
|
||||
v.setBoundingBox (bounds, nullptr);
|
||||
|
||||
ValueTree childList (v.getChildListCreating (nullptr));
|
||||
|
||||
|
|
@ -338,11 +338,11 @@ const ValueTree DrawableComposite::createValueTree (ComponentBuilder::ImageProvi
|
|||
const Drawable* const d = dynamic_cast <const Drawable*> (getChildComponent(i));
|
||||
jassert (d != nullptr); // You can't save a mix of Drawables and normal components!
|
||||
|
||||
childList.addChild (d->createValueTree (imageProvider), -1, 0);
|
||||
childList.addChild (d->createValueTree (imageProvider), -1, nullptr);
|
||||
}
|
||||
|
||||
v.getMarkerListCreating (true, 0).readFrom (markersX, 0);
|
||||
v.getMarkerListCreating (false, 0).readFrom (markersY, 0);
|
||||
v.getMarkerListCreating (true, nullptr).readFrom (markersX, nullptr);
|
||||
v.getMarkerListCreating (false, nullptr).readFrom (markersY, nullptr);
|
||||
|
||||
return tree;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -283,16 +283,16 @@ const ValueTree DrawableImage::createValueTree (ComponentBuilder::ImageProvider*
|
|||
ValueTreeWrapper v (tree);
|
||||
|
||||
v.setID (getComponentID());
|
||||
v.setOpacity (opacity, 0);
|
||||
v.setOverlayColour (overlayColour, 0);
|
||||
v.setBoundingBox (bounds, 0);
|
||||
v.setOpacity (opacity, nullptr);
|
||||
v.setOverlayColour (overlayColour, nullptr);
|
||||
v.setBoundingBox (bounds, nullptr);
|
||||
|
||||
if (image.isValid())
|
||||
{
|
||||
jassert (imageProvider != nullptr); // if you're using images, you need to provide something that can load and save them!
|
||||
|
||||
if (imageProvider != nullptr)
|
||||
v.setImageIdentifier (imageProvider->getIdentifierForImage (image), 0);
|
||||
v.setImageIdentifier (imageProvider->getIdentifierForImage (image), nullptr);
|
||||
}
|
||||
|
||||
return tree;
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ void DrawablePath::setPath (const RelativePointPath& newRelativePath)
|
|||
else
|
||||
{
|
||||
relativePath = nullptr;
|
||||
applyRelativePath (newRelativePath, 0);
|
||||
applyRelativePath (newRelativePath, nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -171,7 +171,7 @@ DrawablePath::ValueTreeWrapper::ValueTreeWrapper (const ValueTree& state_)
|
|||
|
||||
ValueTree DrawablePath::ValueTreeWrapper::getPathState()
|
||||
{
|
||||
return state.getOrCreateChildWithName (path, 0);
|
||||
return state.getOrCreateChildWithName (path, nullptr);
|
||||
}
|
||||
|
||||
bool DrawablePath::ValueTreeWrapper::usesNonZeroWinding() const
|
||||
|
|
@ -498,9 +498,9 @@ ValueTree DrawablePath::ValueTreeWrapper::Element::insertPoint (const Point<floa
|
|||
setModeOfEndPoint (roundedMode, undoManager);
|
||||
|
||||
Element newElement (newTree = ValueTree (cubicToElement));
|
||||
newElement.setControlPoint (0, newCp2, 0);
|
||||
newElement.setControlPoint (1, mid3, 0);
|
||||
newElement.setControlPoint (2, rp4, 0);
|
||||
newElement.setControlPoint (0, newCp2, nullptr);
|
||||
newElement.setControlPoint (1, mid3, nullptr);
|
||||
newElement.setControlPoint (2, rp4, nullptr);
|
||||
|
||||
state.getParent().addChild (newTree, state.getParent().indexOf (state) + 1, undoManager);
|
||||
}
|
||||
|
|
@ -521,8 +521,8 @@ ValueTree DrawablePath::ValueTreeWrapper::Element::insertPoint (const Point<floa
|
|||
setModeOfEndPoint (roundedMode, undoManager);
|
||||
|
||||
Element newElement (newTree = ValueTree (quadraticToElement));
|
||||
newElement.setControlPoint (0, mid2, 0);
|
||||
newElement.setControlPoint (1, rp3, 0);
|
||||
newElement.setControlPoint (0, mid2, nullptr);
|
||||
newElement.setControlPoint (1, rp3, nullptr);
|
||||
|
||||
state.getParent().addChild (newTree, state.getParent().indexOf (state) + 1, undoManager);
|
||||
}
|
||||
|
|
@ -535,7 +535,7 @@ ValueTree DrawablePath::ValueTreeWrapper::Element::insertPoint (const Point<floa
|
|||
setControlPoint (0, newPoint, undoManager);
|
||||
|
||||
Element newElement (newTree = ValueTree (lineToElement));
|
||||
newElement.setControlPoint (0, rp2, 0);
|
||||
newElement.setControlPoint (0, rp2, nullptr);
|
||||
|
||||
state.getParent().addChild (newTree, state.getParent().indexOf (state) + 1, undoManager);
|
||||
}
|
||||
|
|
@ -571,12 +571,12 @@ const ValueTree DrawablePath::createValueTree (ComponentBuilder::ImageProvider*
|
|||
ValueTreeWrapper v (tree);
|
||||
|
||||
v.setID (getComponentID());
|
||||
writeTo (v, imageProvider, 0);
|
||||
writeTo (v, imageProvider, nullptr);
|
||||
|
||||
if (relativePath != nullptr)
|
||||
v.readFrom (*relativePath, 0);
|
||||
v.readFrom (*relativePath, nullptr);
|
||||
else
|
||||
v.readFrom (RelativePointPath (path), 0);
|
||||
v.readFrom (RelativePointPath (path), nullptr);
|
||||
|
||||
return tree;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -185,9 +185,9 @@ const ValueTree DrawableRectangle::createValueTree (ComponentBuilder::ImageProvi
|
|||
ValueTreeWrapper v (tree);
|
||||
|
||||
v.setID (getComponentID());
|
||||
writeTo (v, imageProvider, 0);
|
||||
v.setRectangle (bounds, 0);
|
||||
v.setCornerSize (cornerSize, 0);
|
||||
writeTo (v, imageProvider, nullptr);
|
||||
v.setRectangle (bounds, nullptr);
|
||||
v.setCornerSize (cornerSize, nullptr);
|
||||
|
||||
return tree;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -428,7 +428,7 @@ ValueTree DrawableShape::FillAndStrokeState::getFillState (const Identifier& fil
|
|||
if (v.isValid())
|
||||
return v;
|
||||
|
||||
setFill (fillOrStrokeType, FillType (Colours::black), 0, 0);
|
||||
setFill (fillOrStrokeType, FillType (Colours::black), nullptr, nullptr);
|
||||
return getFillState (fillOrStrokeType);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -313,12 +313,12 @@ const ValueTree DrawableText::createValueTree (ComponentBuilder::ImageProvider*)
|
|||
ValueTreeWrapper v (tree);
|
||||
|
||||
v.setID (getComponentID());
|
||||
v.setText (text, 0);
|
||||
v.setFont (font, 0);
|
||||
v.setJustification (justification, 0);
|
||||
v.setColour (colour, 0);
|
||||
v.setBoundingBox (bounds, 0);
|
||||
v.setFontSizeControlPoint (fontSizeControlPoint, 0);
|
||||
v.setText (text, nullptr);
|
||||
v.setFont (font, nullptr);
|
||||
v.setJustification (justification, nullptr);
|
||||
v.setColour (colour, nullptr);
|
||||
v.setBoundingBox (bounds, nullptr);
|
||||
v.setFontSizeControlPoint (fontSizeControlPoint, nullptr);
|
||||
|
||||
return tree;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -99,6 +99,39 @@ private:
|
|||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (GlyphInfo);
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
namespace CustomTypefaceHelpers
|
||||
{
|
||||
juce_wchar readChar (InputStream& in)
|
||||
{
|
||||
uint32 n = (uint32) (uint16) in.readShort();
|
||||
|
||||
if (n >= 0xd800 && n <= 0xdfff)
|
||||
{
|
||||
const uint32 nextWord = (uint32) (uint16) in.readShort();
|
||||
jassert (nextWord >= 0xdc00); // illegal unicode character!
|
||||
|
||||
n = 0x10000 + (((n - 0xd800) << 10) | (nextWord - 0xdc00));
|
||||
}
|
||||
|
||||
return (juce_wchar) n;
|
||||
}
|
||||
|
||||
void writeChar (OutputStream& out, juce_wchar charToWrite)
|
||||
{
|
||||
if (charToWrite >= 0x10000)
|
||||
{
|
||||
charToWrite -= 0x10000;
|
||||
out.writeShort ((short) (uint16) (0xd800 + (charToWrite >> 10)));
|
||||
out.writeShort ((short) (uint16) (0xdc00 + (charToWrite & 0x3ff)));
|
||||
}
|
||||
else
|
||||
{
|
||||
out.writeShort ((short) (uint16) charToWrite);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
CustomTypeface::CustomTypeface()
|
||||
: Typeface (String::empty)
|
||||
|
|
@ -118,13 +151,13 @@ CustomTypeface::CustomTypeface (InputStream& serialisedTypefaceStream)
|
|||
isBold = in.readBool();
|
||||
isItalic = in.readBool();
|
||||
ascent = in.readFloat();
|
||||
defaultCharacter = (juce_wchar) in.readShort();
|
||||
defaultCharacter = CustomTypefaceHelpers::readChar (in);
|
||||
|
||||
int i, numChars = in.readInt();
|
||||
|
||||
for (i = 0; i < numChars; ++i)
|
||||
{
|
||||
const juce_wchar c = (juce_wchar) in.readShort();
|
||||
const juce_wchar c = CustomTypefaceHelpers::readChar (in);
|
||||
const float width = in.readFloat();
|
||||
|
||||
Path p;
|
||||
|
|
@ -136,8 +169,8 @@ CustomTypeface::CustomTypeface (InputStream& serialisedTypefaceStream)
|
|||
|
||||
for (i = 0; i < numKerningPairs; ++i)
|
||||
{
|
||||
const juce_wchar char1 = (juce_wchar) in.readShort();
|
||||
const juce_wchar char2 = (juce_wchar) in.readShort();
|
||||
const juce_wchar char1 = CustomTypefaceHelpers::readChar (in);
|
||||
const juce_wchar char2 = CustomTypefaceHelpers::readChar (in);
|
||||
|
||||
addKerningPair (char1, char2, in.readFloat());
|
||||
}
|
||||
|
|
@ -286,7 +319,7 @@ bool CustomTypeface::writeToStream (OutputStream& outputStream)
|
|||
out.writeBool (isBold);
|
||||
out.writeBool (isItalic);
|
||||
out.writeFloat (ascent);
|
||||
out.writeShort ((short) (unsigned short) defaultCharacter);
|
||||
CustomTypefaceHelpers::writeChar (out, defaultCharacter);
|
||||
out.writeInt (glyphs.size());
|
||||
|
||||
int i, numKerningPairs = 0;
|
||||
|
|
@ -294,7 +327,7 @@ bool CustomTypeface::writeToStream (OutputStream& outputStream)
|
|||
for (i = 0; i < glyphs.size(); ++i)
|
||||
{
|
||||
const GlyphInfo* const g = glyphs.getUnchecked (i);
|
||||
out.writeShort ((short) (unsigned short) g->character);
|
||||
CustomTypefaceHelpers::writeChar (out, g->character);
|
||||
out.writeFloat (g->width);
|
||||
g->path.writePathToStream (out);
|
||||
|
||||
|
|
@ -310,8 +343,8 @@ bool CustomTypeface::writeToStream (OutputStream& outputStream)
|
|||
for (int j = 0; j < g->kerningPairs.size(); ++j)
|
||||
{
|
||||
const GlyphInfo::KerningPair& p = g->kerningPairs.getReference (j);
|
||||
out.writeShort ((short) (unsigned short) g->character);
|
||||
out.writeShort ((short) (unsigned short) p.character2);
|
||||
CustomTypefaceHelpers::writeChar (out, g->character);
|
||||
CustomTypefaceHelpers::writeChar (out, p.character2);
|
||||
out.writeFloat (p.kerningAmount);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -272,7 +272,7 @@ public:
|
|||
}
|
||||
else
|
||||
{
|
||||
result = scope.evaluateFunction (functionName, 0, 0);
|
||||
result = scope.evaluateFunction (functionName, nullptr, 0);
|
||||
}
|
||||
|
||||
return new Constant (result, false);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue