From 82976c2ac7fb7c1f3e9360dfa328a60f2e0f2952 Mon Sep 17 00:00:00 2001 From: jules Date: Tue, 16 Apr 2013 10:40:46 +0100 Subject: [PATCH] Introjucer: some code-gen updates. --- .../components/jucer_ComponentTypeHandler.cpp | 16 ++--- .../ComponentEditor/jucer_GeneratedCode.cpp | 20 ++---- .../paintelements/jucer_PaintElementImage.h | 21 +++--- .../Source/demos/AudioDemoLatencyPage.cpp | 11 ++-- .../Source/demos/AudioDemoLatencyPage.h | 6 +- .../Source/demos/AudioDemoPlaybackPage.cpp | 22 +++---- .../Source/demos/AudioDemoPlaybackPage.h | 12 ++-- .../Source/demos/AudioDemoRecordPage.cpp | 11 ++-- .../Source/demos/AudioDemoRecordPage.h | 6 +- .../Source/demos/AudioDemoSetupPage.cpp | 5 +- .../Source/demos/AudioDemoSetupPage.h | 2 +- .../Source/demos/AudioDemoSynthPage.cpp | 14 ++-- .../Source/demos/AudioDemoSynthPage.h | 8 +-- .../Source/demos/AudioDemoTabComponent.cpp | 3 +- .../Source/demos/AudioDemoTabComponent.h | 2 +- .../Source/demos/RenderingTestComponent.cpp | 66 +++++++------------ .../Source/demos/RenderingTestComponent.h | 44 ++++++------- 17 files changed, 108 insertions(+), 161 deletions(-) diff --git a/extras/Introjucer/Source/ComponentEditor/components/jucer_ComponentTypeHandler.cpp b/extras/Introjucer/Source/ComponentEditor/components/jucer_ComponentTypeHandler.cpp index b1dd49e644..a49124a69b 100644 --- a/extras/Introjucer/Source/ComponentEditor/components/jucer_ComponentTypeHandler.cpp +++ b/extras/Introjucer/Source/ComponentEditor/components/jucer_ComponentTypeHandler.cpp @@ -496,19 +496,15 @@ void ComponentTypeHandler::fillInGeneratedCode (Component* component, GeneratedC void ComponentTypeHandler::fillInMemberVariableDeclarations (GeneratedCode& code, Component* component, const String& memberVariableName) { - const String virtualName (component->getProperties() ["virtualName"].toString()); + String clsName (component->getProperties() ["virtualName"].toString()); - if (virtualName.isNotEmpty()) - code.privateMemberDeclarations - << CodeHelpers::makeValidIdentifier (virtualName, false, false, true); + if (clsName.isNotEmpty()) + clsName = CodeHelpers::makeValidIdentifier (clsName, false, false, true); else - code.privateMemberDeclarations - << getClassName (component); + clsName = getClassName (component); code.privateMemberDeclarations - << "* " << memberVariableName << ";\n"; - - code.initialisers.add (memberVariableName + " (0)"); + << "ScopedPointer<" << clsName << "> " << memberVariableName << ";\n"; } void ComponentTypeHandler::fillInResizeCode (GeneratedCode& code, Component* component, const String& memberVariableName) @@ -579,5 +575,5 @@ void ComponentTypeHandler::fillInDeletionCode (GeneratedCode& code, Component*, const String& memberVariableName) { code.destructorCode - << "deleteAndZero (" << memberVariableName << ");\n"; + << memberVariableName << " = nullptr;\n"; } diff --git a/extras/Introjucer/Source/ComponentEditor/jucer_GeneratedCode.cpp b/extras/Introjucer/Source/ComponentEditor/jucer_GeneratedCode.cpp index b060d0e1f9..932f6f9fd8 100644 --- a/extras/Introjucer/Source/ComponentEditor/jucer_GeneratedCode.cpp +++ b/extras/Introjucer/Source/ComponentEditor/jucer_GeneratedCode.cpp @@ -90,22 +90,12 @@ void GeneratedCode::removeCallback (const String& returnType, const String& prot void GeneratedCode::addImageResourceLoader (const String& imageMemberName, const String& resourceName) { - const String initialiser (imageMemberName + " (0)"); + privateMemberDeclarations + << "Image " << imageMemberName << ";\n"; - if (! initialisers.contains (initialiser, false)) - { - initialisers.add (initialiser); - - privateMemberDeclarations - << "Image " << imageMemberName << ";\n"; - - if (resourceName.isNotEmpty()) - { - constructorCode - << imageMemberName << " = ImageCache::getFromMemory (" - << resourceName << ", " << resourceName << "Size);\n"; - } - } + if (resourceName.isNotEmpty()) + constructorCode << imageMemberName << " = ImageCache::getFromMemory (" + << resourceName << ", " << resourceName << "Size);\n"; } StringArray GeneratedCode::getExtraParentClasses() const diff --git a/extras/Introjucer/Source/ComponentEditor/paintelements/jucer_PaintElementImage.h b/extras/Introjucer/Source/ComponentEditor/paintelements/jucer_PaintElementImage.h index 4b6064f9b4..6e0fe422d4 100644 --- a/extras/Introjucer/Source/ComponentEditor/paintelements/jucer_PaintElementImage.h +++ b/extras/Introjucer/Source/ComponentEditor/paintelements/jucer_PaintElementImage.h @@ -144,14 +144,14 @@ public: const String imageVariable ("drawable" + String (code.getUniqueSuffix())); code.privateMemberDeclarations - << "Drawable* " << imageVariable << ";\n"; + << "ScopedPointer " << imageVariable << ";\n"; code.constructorCode << imageVariable << " = Drawable::createFromImageData (" << resourceName << ", " << resourceName << "Size);\n"; code.destructorCode - << "deleteAndZero (" << imageVariable << ");\n"; + << imageVariable << " = nullptr;\n"; if (opacity >= 254.0 / 255.0) r << "g.setColour (Colours::black);\n"; @@ -291,18 +291,19 @@ public: void resetToImageSize() { - const Drawable* const image = getDrawable(); - - if (image != nullptr && getParentComponent() != nullptr) + if (const Drawable* const image = getDrawable()) { - const Rectangle parentArea (((PaintRoutineEditor*) getParentComponent())->getComponentArea()); + if (PaintRoutineEditor* ed = dynamic_cast (getParentComponent())) + { + const Rectangle parentArea (ed->getComponentArea()); - Rectangle r (getCurrentBounds (parentArea)); - Rectangle bounds (image->getDrawableBounds()); + Rectangle r (getCurrentBounds (parentArea)); + Rectangle bounds (image->getDrawableBounds()); - r.setSize ((int) (bounds.getWidth() + 0.999f), (int) (bounds.getHeight() + 0.999f)); + r.setSize ((int) (bounds.getWidth() + 0.999f), (int) (bounds.getHeight() + 0.999f)); - setCurrentBounds (r, parentArea, true); + setCurrentBounds (r, parentArea, true); + } } } diff --git a/extras/JuceDemo/Source/demos/AudioDemoLatencyPage.cpp b/extras/JuceDemo/Source/demos/AudioDemoLatencyPage.cpp index bf88aafbb6..dab587d144 100644 --- a/extras/JuceDemo/Source/demos/AudioDemoLatencyPage.cpp +++ b/extras/JuceDemo/Source/demos/AudioDemoLatencyPage.cpp @@ -279,10 +279,7 @@ private: //============================================================================== AudioDemoLatencyPage::AudioDemoLatencyPage (AudioDeviceManager& deviceManager_) - : deviceManager (deviceManager_), - liveAudioDisplayComp (0), - startTestButton (0), - testResultsBox (0) + : deviceManager (deviceManager_) { addAndMakeVisible (liveAudioDisplayComp = new LiveAudioInputDisplayComp()); @@ -325,9 +322,9 @@ AudioDemoLatencyPage::~AudioDemoLatencyPage() deviceManager.removeAudioCallback (latencyTester); //[/Destructor_pre] - deleteAndZero (liveAudioDisplayComp); - deleteAndZero (startTestButton); - deleteAndZero (testResultsBox); + liveAudioDisplayComp = nullptr; + startTestButton = nullptr; + testResultsBox = nullptr; //[Destructor]. You can add your own custom destruction code here.. diff --git a/extras/JuceDemo/Source/demos/AudioDemoLatencyPage.h b/extras/JuceDemo/Source/demos/AudioDemoLatencyPage.h index 084947b052..f54f140c8e 100644 --- a/extras/JuceDemo/Source/demos/AudioDemoLatencyPage.h +++ b/extras/JuceDemo/Source/demos/AudioDemoLatencyPage.h @@ -61,9 +61,9 @@ private: //[/UserVariables] //============================================================================== - LiveAudioInputDisplayComp* liveAudioDisplayComp; - TextButton* startTestButton; - TextEditor* testResultsBox; + ScopedPointer liveAudioDisplayComp; + ScopedPointer startTestButton; + ScopedPointer testResultsBox; //============================================================================== diff --git a/extras/JuceDemo/Source/demos/AudioDemoPlaybackPage.cpp b/extras/JuceDemo/Source/demos/AudioDemoPlaybackPage.cpp index 3a30017aba..434fb95e1c 100644 --- a/extras/JuceDemo/Source/demos/AudioDemoPlaybackPage.cpp +++ b/extras/JuceDemo/Source/demos/AudioDemoPlaybackPage.cpp @@ -173,13 +173,7 @@ private: AudioDemoPlaybackPage::AudioDemoPlaybackPage (AudioDeviceManager& deviceManager_) : deviceManager (deviceManager_), thread ("audio file preview"), - directoryList (0, thread), - zoomLabel (0), - explanation (0), - zoomSlider (0), - thumbnail (0), - startStopButton (0), - fileTreeComp (0) + directoryList (nullptr, thread) { addAndMakeVisible (zoomLabel = new Label (String::empty, "zoom:")); @@ -244,12 +238,12 @@ AudioDemoPlaybackPage::~AudioDemoPlaybackPage() fileTreeComp->removeListener (this); //[/Destructor_pre] - deleteAndZero (zoomLabel); - deleteAndZero (explanation); - deleteAndZero (zoomSlider); - deleteAndZero (thumbnail); - deleteAndZero (startStopButton); - deleteAndZero (fileTreeComp); + zoomLabel = nullptr; + explanation = nullptr; + zoomSlider = nullptr; + thumbnail = nullptr; + startStopButton = nullptr; + fileTreeComp = nullptr; //[Destructor]. You can add your own custom destruction code here.. @@ -379,7 +373,7 @@ BEGIN_JUCER_METADATA diff --git a/extras/JuceDemo/Source/demos/AudioDemoPlaybackPage.h b/extras/JuceDemo/Source/demos/AudioDemoPlaybackPage.h index f1a0354c13..74f33f4271 100644 --- a/extras/JuceDemo/Source/demos/AudioDemoPlaybackPage.h +++ b/extras/JuceDemo/Source/demos/AudioDemoPlaybackPage.h @@ -78,12 +78,12 @@ private: //[/UserVariables] //============================================================================== - Label* zoomLabel; - Label* explanation; - Slider* zoomSlider; - DemoThumbnailComp* thumbnail; - TextButton* startStopButton; - FileTreeComponent* fileTreeComp; + ScopedPointer