diff --git a/extras/Introjucer/JuceLibraryCode/BinaryData.h b/extras/Introjucer/JuceLibraryCode/BinaryData.h index 61b40c86eb..c90cce4c63 100644 --- a/extras/Introjucer/JuceLibraryCode/BinaryData.h +++ b/extras/Introjucer/JuceLibraryCode/BinaryData.h @@ -49,25 +49,4 @@ namespace BinaryData // If you provide the name of one of the binary resource variables above, this function will // return the corresponding data and its size (or a null pointer if the name isn't found). const char* getNamedResource (const char* resourceNameUTF8, int& dataSizeInBytes) throw(); - - //============================================================================== - // This class acts as an ImageProvider that will access the BinaryData images - class ImageProvider : public juce::ComponentBuilder::ImageProvider - { - public: - ImageProvider() noexcept {} - - juce::Image getImageForIdentifier (const juce::var& imageIdentifier) - { - int dataSize = 0; - const char* const data = getNamedResource (imageIdentifier.toString().toUTF8(), dataSize); - - if (data != nullptr) - return juce::ImageCache::getFromMemory (data, dataSize); - - return juce::Image(); - } - - juce::var getIdentifierForImage (const juce::Image&) { return juce::var(); } - }; } diff --git a/extras/Introjucer/Source/Project Saving/jucer_ResourceFile.cpp b/extras/Introjucer/Source/Project Saving/jucer_ResourceFile.cpp index 8a3870415e..28fbe6e0ec 100644 --- a/extras/Introjucer/Source/Project Saving/jucer_ResourceFile.cpp +++ b/extras/Introjucer/Source/Project Saving/jucer_ResourceFile.cpp @@ -193,34 +193,8 @@ bool ResourceFile::write (const File& cppFile, OutputStream& cpp, OutputStream& header << " // If you provide the name of one of the binary resource variables above, this function will" << newLine << " // return the corresponding data and its size (or a null pointer if the name isn't found)." << newLine - << " const char* getNamedResource (const char* resourceNameUTF8, int& dataSizeInBytes) throw();" << newLine; - - if (containsAnyImages) - { - header << newLine - << " //==============================================================================" << newLine - << " // This class acts as an ImageProvider that will access the BinaryData images" << newLine - << " class ImageProvider : public juce::ComponentBuilder::ImageProvider" << newLine - << " {" << newLine - << " public:" << newLine - << " ImageProvider() noexcept {}" << newLine - << newLine - << " juce::Image getImageForIdentifier (const juce::var& imageIdentifier)" << newLine - << " {" << newLine - << " int dataSize = 0;" << newLine - << " const char* const data = getNamedResource (imageIdentifier.toString().toUTF8(), dataSize);" << newLine - << newLine - << " if (data != nullptr)" << newLine - << " return juce::ImageCache::getFromMemory (data, dataSize);" << newLine - << newLine - << " return juce::Image();" << newLine - << " }" << newLine - << newLine - << " juce::var getIdentifierForImage (const juce::Image&) { return juce::var(); }" << newLine - << " };" << newLine; - } - - header << "}" << newLine; + << " const char* getNamedResource (const char* resourceNameUTF8, int& dataSizeInBytes) throw();" << newLine + << "}" << newLine; return true; } diff --git a/extras/Introjucer/Source/Project/jucer_Project.cpp b/extras/Introjucer/Source/Project/jucer_Project.cpp index 810c5a7571..4e6927e81f 100644 --- a/extras/Introjucer/Source/Project/jucer_Project.cpp +++ b/extras/Introjucer/Source/Project/jucer_Project.cpp @@ -94,8 +94,8 @@ void Project::updateProjectSettings() void Project::setMissingDefaultValues() { - if (! projectRoot.hasProperty (ComponentBuilder::idProperty)) - projectRoot.setProperty (ComponentBuilder::idProperty, createAlphaNumericUID(), nullptr); + if (! projectRoot.hasProperty (Ids::ID)) + projectRoot.setProperty (Ids::ID, createAlphaNumericUID(), nullptr); // Create main file group if missing if (! projectRoot.getChildWithName (Tags::projectMainGroup).isValid()) @@ -431,8 +431,8 @@ Project::Item::Item (const Item& other) Project::Item Project::Item::createCopy() { Item i (*this); i.state = i.state.createCopy(); return i; } -String Project::Item::getID() const { return state [ComponentBuilder::idProperty]; } -void Project::Item::setID (const String& newID) { state.setProperty (ComponentBuilder::idProperty, newID, nullptr); } +String Project::Item::getID() const { return state [Ids::ID]; } +void Project::Item::setID (const String& newID) { state.setProperty (Ids::ID, newID, nullptr); } String Project::Item::getImageFileID() const { return "id:" + getID(); } @@ -458,7 +458,7 @@ bool Project::Item::isImageFile() const { return isFile() && getFile().hasFi Project::Item Project::Item::findItemWithID (const String& targetId) const { - if (state [ComponentBuilder::idProperty] == targetId) + if (state [Ids::ID] == targetId) return *this; if (isGroup()) @@ -603,7 +603,7 @@ File Project::Item::determineGroupFolder() const void Project::Item::initialiseMissingProperties() { - if (! state.hasProperty (ComponentBuilder::idProperty)) + if (! state.hasProperty (Ids::ID)) setID (createAlphaNumericUID()); if (isFile()) @@ -841,7 +841,7 @@ bool Project::isModuleEnabled (const String& moduleID) const ValueTree modules (projectRoot.getChildWithName (Tags::modulesGroup)); for (int i = 0; i < modules.getNumChildren(); ++i) - if (modules.getChild(i) [ComponentBuilder::idProperty] == moduleID) + if (modules.getChild(i) [Ids::ID] == moduleID) return true; return false; @@ -849,13 +849,13 @@ bool Project::isModuleEnabled (const String& moduleID) const Value Project::shouldShowAllModuleFilesInProject (const String& moduleID) { - return getModulesNode().getChildWithProperty (ComponentBuilder::idProperty, moduleID) + return getModulesNode().getChildWithProperty (Ids::ID, moduleID) .getPropertyAsValue (Ids::showAllCode, getUndoManagerFor (getModulesNode())); } Value Project::shouldCopyModuleFilesLocally (const String& moduleID) { - return getModulesNode().getChildWithProperty (ComponentBuilder::idProperty, moduleID) + return getModulesNode().getChildWithProperty (Ids::ID, moduleID) .getPropertyAsValue (Ids::useLocalCopy, getUndoManagerFor (getModulesNode())); } @@ -864,7 +864,7 @@ void Project::addModule (const String& moduleID, bool shouldCopyFilesLocally) if (! isModuleEnabled (moduleID)) { ValueTree module (Tags::module); - module.setProperty (ComponentBuilder::idProperty, moduleID, nullptr); + module.setProperty (Ids::ID, moduleID, nullptr); ValueTree modules (getModulesNode()); modules.addChild (module, -1, getUndoManagerFor (modules)); @@ -881,7 +881,7 @@ void Project::removeModule (const String& moduleID) ValueTree modules (getModulesNode()); for (int i = 0; i < modules.getNumChildren(); ++i) - if (modules.getChild(i) [ComponentBuilder::idProperty] == moduleID) + if (modules.getChild(i) [Ids::ID] == moduleID) modules.removeChild (i, getUndoManagerFor (modules)); } @@ -899,7 +899,7 @@ int Project::getNumModules() const String Project::getModuleID (int index) const { - return projectRoot.getChildWithName (Tags::modulesGroup).getChild (index) [ComponentBuilder::idProperty].toString(); + return projectRoot.getChildWithName (Tags::modulesGroup).getChild (index) [Ids::ID].toString(); } //============================================================================== diff --git a/extras/Introjucer/Source/Project/jucer_Project.h b/extras/Introjucer/Source/Project/jucer_Project.h index eda825e139..12c2bd44e6 100644 --- a/extras/Introjucer/Source/Project/jucer_Project.h +++ b/extras/Introjucer/Source/Project/jucer_Project.h @@ -58,7 +58,7 @@ public: String getTitle() const; Value getProjectNameValue() { return getMainGroup().getNameValue(); } String getProjectFilenameRoot() { return File::createLegalFileName (getDocumentTitle()); } - String getProjectUID() const { return projectRoot [ComponentBuilder::idProperty]; } + String getProjectUID() const { return projectRoot [Ids::ID]; } //============================================================================== template diff --git a/extras/Introjucer/Source/Utility/jucer_PresetIDs.h b/extras/Introjucer/Source/Utility/jucer_PresetIDs.h index d60b0c1620..b2a31d8e3c 100644 --- a/extras/Introjucer/Source/Utility/jucer_PresetIDs.h +++ b/extras/Introjucer/Source/Utility/jucer_PresetIDs.h @@ -126,6 +126,7 @@ namespace Ids DECLARE_ID (androidKeyAliasPass); DECLARE_ID (font); DECLARE_ID (colour); + const Identifier ID ("id"); const Identifier class_ ("class"); #undef DECLARE_ID diff --git a/extras/JuceDemo/JuceLibraryCode/BinaryData.h b/extras/JuceDemo/JuceLibraryCode/BinaryData.h index 89d27cf6c8..144c767467 100644 --- a/extras/JuceDemo/JuceLibraryCode/BinaryData.h +++ b/extras/JuceDemo/JuceLibraryCode/BinaryData.h @@ -25,25 +25,4 @@ namespace BinaryData // If you provide the name of one of the binary resource variables above, this function will // return the corresponding data and its size (or a null pointer if the name isn't found). const char* getNamedResource (const char* resourceNameUTF8, int& dataSizeInBytes) throw(); - - //============================================================================== - // This class acts as an ImageProvider that will access the BinaryData images - class ImageProvider : public juce::ComponentBuilder::ImageProvider - { - public: - ImageProvider() noexcept {} - - juce::Image getImageForIdentifier (const juce::var& imageIdentifier) - { - int dataSize = 0; - const char* const data = getNamedResource (imageIdentifier.toString().toUTF8(), dataSize); - - if (data != nullptr) - return juce::ImageCache::getFromMemory (data, dataSize); - - return juce::Image(); - } - - juce::var getIdentifierForImage (const juce::Image&) { return juce::var(); } - }; } diff --git a/extras/the jucer/JuceLibraryCode/BinaryData.h b/extras/the jucer/JuceLibraryCode/BinaryData.h index dcbdb79d74..e92a404d31 100644 --- a/extras/the jucer/JuceLibraryCode/BinaryData.h +++ b/extras/the jucer/JuceLibraryCode/BinaryData.h @@ -22,25 +22,4 @@ namespace BinaryData // If you provide the name of one of the binary resource variables above, this function will // return the corresponding data and its size (or a null pointer if the name isn't found). const char* getNamedResource (const char* resourceNameUTF8, int& dataSizeInBytes) throw(); - - //============================================================================== - // This class acts as an ImageProvider that will access the BinaryData images - class ImageProvider : public juce::ComponentBuilder::ImageProvider - { - public: - ImageProvider() noexcept {} - - juce::Image getImageForIdentifier (const juce::var& imageIdentifier) - { - int dataSize = 0; - const char* const data = getNamedResource (imageIdentifier.toString().toUTF8(), dataSize); - - if (data != nullptr) - return juce::ImageCache::getFromMemory (data, dataSize); - - return juce::Image(); - } - - juce::var getIdentifierForImage (const juce::Image&) { return juce::var(); } - }; } diff --git a/modules/juce_browser_plugin/wrapper/juce_ActiveX_GlueCode.cpp b/modules/juce_browser_plugin/wrapper/juce_ActiveX_GlueCode.cpp index c0b952f19c..6e4f3b43db 100644 --- a/modules/juce_browser_plugin/wrapper/juce_ActiveX_GlueCode.cpp +++ b/modules/juce_browser_plugin/wrapper/juce_ActiveX_GlueCode.cpp @@ -457,7 +457,7 @@ public: void resized() { if (child != nullptr) - child->setBounds (0, 0, getWidth(), getHeight()); + child->setBounds (getLocalBounds()); } var getObject() { return child->getJavascriptObject(); } diff --git a/modules/juce_gui_basics/buttons/juce_Button.cpp b/modules/juce_gui_basics/buttons/juce_Button.cpp index f5cffc1c7d..7b3c358de1 100644 --- a/modules/juce_gui_basics/buttons/juce_Button.cpp +++ b/modules/juce_gui_basics/buttons/juce_Button.cpp @@ -663,29 +663,3 @@ Button::RepeatTimer& Button::getRepeatTimer() return *repeatTimer; } - -const Identifier Button::Ids::text ("text"); -const Identifier Button::Ids::radioGroup ("radioGroup"); -const Identifier Button::Ids::connectedLeft ("connectedLeft"); -const Identifier Button::Ids::connectedRight ("connectedRight"); -const Identifier Button::Ids::connectedTop ("connectedTop"); -const Identifier Button::Ids::connectedBottom ("connectedBottom"); - -void Button::refreshFromValueTree (const ValueTree& state, ComponentBuilder&) -{ - ComponentBuilder::refreshBasicComponentProperties (*this, state); - - setButtonText (state [Ids::text].toString()); - setRadioGroupId (state [Ids::radioGroup]); - setConnectedEdges (getConnectedFlags (state)); -} - -int Button::getConnectedFlags (const ValueTree& state) -{ - int connected = 0; - if (state [Button::Ids::connectedLeft]) connected |= Button::ConnectedOnLeft; - if (state [Button::Ids::connectedRight]) connected |= Button::ConnectedOnRight; - if (state [Button::Ids::connectedTop]) connected |= Button::ConnectedOnTop; - if (state [Button::Ids::connectedBottom]) connected |= Button::ConnectedOnBottom; - return connected; -} diff --git a/modules/juce_gui_basics/buttons/juce_Button.h b/modules/juce_gui_basics/buttons/juce_Button.h index 6edffa8763..c3f5eb43f9 100644 --- a/modules/juce_gui_basics/buttons/juce_Button.h +++ b/modules/juce_gui_basics/buttons/juce_Button.h @@ -30,7 +30,6 @@ #include "../keyboard/juce_KeyListener.h" #include "../commands/juce_ApplicationCommandManager.h" #include "../windows/juce_TooltipWindow.h" -#include "../layout/juce_ComponentBuilder.h" //============================================================================== @@ -368,16 +367,6 @@ public: void setState (const ButtonState newState); - //============================================================================== - struct Ids - { - static const Identifier text, radioGroup, - connectedLeft, connectedRight, connectedTop, connectedBottom; - }; - - void refreshFromValueTree (const ValueTree&, ComponentBuilder&); - static int getConnectedFlags (const ValueTree& state); - //============================================================================== // These are deprecated - please use addListener() and removeListener() instead! JUCE_DEPRECATED (void addButtonListener (Listener*)); diff --git a/modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp b/modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp index 7672e4ef42..c15b658f19 100644 --- a/modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp +++ b/modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp @@ -108,15 +108,3 @@ void HyperlinkButton::paintButton (Graphics& g, justification.getOnlyHorizontalFlags() | Justification::verticallyCentred, true); } - -const Identifier HyperlinkButton::Ids::tagType ("HYPERLINKBUTTON"); -const Identifier HyperlinkButton::Ids::text ("text"); -const Identifier HyperlinkButton::Ids::url ("url"); - -void HyperlinkButton::refreshFromValueTree (const ValueTree& state, ComponentBuilder&) -{ - ComponentBuilder::refreshBasicComponentProperties (*this, state); - - setButtonText (state [Ids::text].toString()); - setURL (URL (state [Ids::url].toString())); -} diff --git a/modules/juce_gui_basics/buttons/juce_HyperlinkButton.h b/modules/juce_gui_basics/buttons/juce_HyperlinkButton.h index c2e285fb31..60c77b32eb 100644 --- a/modules/juce_gui_basics/buttons/juce_HyperlinkButton.h +++ b/modules/juce_gui_basics/buttons/juce_HyperlinkButton.h @@ -93,14 +93,6 @@ public: */ void changeWidthToFitText(); - //============================================================================== - struct Ids - { - static const Identifier tagType, text, url; - }; - - void refreshFromValueTree (const ValueTree&, ComponentBuilder&); - protected: //============================================================================== /** @internal */ diff --git a/modules/juce_gui_basics/buttons/juce_ImageButton.cpp b/modules/juce_gui_basics/buttons/juce_ImageButton.cpp index 957053dae6..bda145e8ac 100644 --- a/modules/juce_gui_basics/buttons/juce_ImageButton.cpp +++ b/modules/juce_gui_basics/buttons/juce_ImageButton.cpp @@ -188,56 +188,3 @@ bool ImageButton::hitTest (int x, int y) && alphaThreshold < im.getPixelAt (((x - imageBounds.getX()) * im.getWidth()) / imageBounds.getWidth(), ((y - imageBounds.getY()) * im.getHeight()) / imageBounds.getHeight()).getAlpha()); } - -const Identifier ImageButton::Ids::tagType ("IMAGEBUTTON"); -const Identifier ImageButton::Ids::upImage ("upImage"); -const Identifier ImageButton::Ids::overImage ("overImage"); -const Identifier ImageButton::Ids::downImage ("downImage"); -const Identifier ImageButton::Ids::upOverlay ("upOverlay"); -const Identifier ImageButton::Ids::overOverlay ("overOverlay"); -const Identifier ImageButton::Ids::downOverlay ("downOverlay"); -const Identifier ImageButton::Ids::upOpacity ("upOpacity"); -const Identifier ImageButton::Ids::overOpacity ("overOpacity"); -const Identifier ImageButton::Ids::downOpacity ("downOpacity"); - -namespace ImageButtonHelpers -{ - static Colour getColourFromVar (const var& col) - { - return col.isString() ? Colour::fromString (col.toString()) - : Colours::transparentBlack; - } - - static float getOpacityFromVar (const var& v) - { - return v.isVoid() ? 1.0f : static_cast (v); - } -} - -void ImageButton::refreshFromValueTree (const ValueTree& state, ComponentBuilder& builder) -{ - Button::refreshFromValueTree (state, builder); - - const var upImageIdentifier (state [Ids::upImage]), - overImageIdentifier (state [Ids::overImage]), - downImageIdentifier (state [Ids::downImage]); - - ComponentBuilder::ImageProvider* const imageProvider = builder.getImageProvider(); - jassert (imageProvider != nullptr || upImageIdentifier.isVoid()); - - Image newUpImage, newOverImage, newDownImage; - - if (imageProvider != nullptr) - { - newUpImage = imageProvider->getImageForIdentifier (upImageIdentifier); - newOverImage = imageProvider->getImageForIdentifier (overImageIdentifier); - newDownImage = imageProvider->getImageForIdentifier (downImageIdentifier); - } - - using namespace ImageButtonHelpers; - - setImages (false, true, true, - newUpImage, getOpacityFromVar (state[Ids::upOpacity]), getColourFromVar (state[Ids::upOverlay]), - newOverImage, getOpacityFromVar (state[Ids::overOpacity]), getColourFromVar (state[Ids::overOverlay]), - newDownImage, getOpacityFromVar (state[Ids::downOpacity]), getColourFromVar (state[Ids::downOverlay])); -} diff --git a/modules/juce_gui_basics/buttons/juce_ImageButton.h b/modules/juce_gui_basics/buttons/juce_ImageButton.h index 6828603fd1..abb6c9d8d3 100644 --- a/modules/juce_gui_basics/buttons/juce_ImageButton.h +++ b/modules/juce_gui_basics/buttons/juce_ImageButton.h @@ -127,16 +127,6 @@ public: */ Image getDownImage() const; - //============================================================================== - struct Ids - { - static const Identifier tagType, upImage, overImage, downImage, - upOverlay, overOverlay, downOverlay, - upOpacity, overOpacity, downOpacity; - }; - - void refreshFromValueTree (const ValueTree&, ComponentBuilder&); - protected: //============================================================================== /** @internal */ diff --git a/modules/juce_gui_basics/buttons/juce_TextButton.cpp b/modules/juce_gui_basics/buttons/juce_TextButton.cpp index 07b64e4f5e..6ec36c8e1d 100644 --- a/modules/juce_gui_basics/buttons/juce_TextButton.cpp +++ b/modules/juce_gui_basics/buttons/juce_TextButton.cpp @@ -67,5 +67,3 @@ void TextButton::changeWidthToFitText (const int newHeight) setSize (getFont().getStringWidth (getButtonText()) + getHeight(), getHeight()); } - -const Identifier TextButton::Ids::tagType ("TEXTBUTTON"); diff --git a/modules/juce_gui_basics/buttons/juce_TextButton.h b/modules/juce_gui_basics/buttons/juce_TextButton.h index 03baf61d12..e266b88495 100644 --- a/modules/juce_gui_basics/buttons/juce_TextButton.h +++ b/modules/juce_gui_basics/buttons/juce_TextButton.h @@ -89,12 +89,6 @@ public: */ virtual Font getFont(); - //============================================================================== - struct Ids - { - static const Identifier tagType; - }; - protected: /** @internal */ void paintButton (Graphics& g, bool isMouseOverButton, bool isButtonDown); @@ -102,7 +96,6 @@ protected: void colourChanged(); private: - //============================================================================== JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (TextButton); }; diff --git a/modules/juce_gui_basics/buttons/juce_ToggleButton.cpp b/modules/juce_gui_basics/buttons/juce_ToggleButton.cpp index 47efb37752..de3bfc78ab 100644 --- a/modules/juce_gui_basics/buttons/juce_ToggleButton.cpp +++ b/modules/juce_gui_basics/buttons/juce_ToggleButton.cpp @@ -23,6 +23,12 @@ ============================================================================== */ +ToggleButton::ToggleButton() + : Button (String::empty) +{ + setClickingTogglesState (true); +} + ToggleButton::ToggleButton (const String& buttonText) : Button (buttonText) { @@ -33,13 +39,9 @@ ToggleButton::~ToggleButton() { } -void ToggleButton::paintButton (Graphics& g, - bool isMouseOverButton, - bool isButtonDown) +void ToggleButton::paintButton (Graphics& g, bool isMouseOverButton, bool isButtonDown) { - getLookAndFeel().drawToggleButton (g, *this, - isMouseOverButton, - isButtonDown); + getLookAndFeel().drawToggleButton (g, *this, isMouseOverButton, isButtonDown); } void ToggleButton::changeWidthToFitText() @@ -51,5 +53,3 @@ void ToggleButton::colourChanged() { repaint(); } - -const Identifier ToggleButton::Ids::tagType ("TOGGLEBUTTON"); diff --git a/modules/juce_gui_basics/buttons/juce_ToggleButton.h b/modules/juce_gui_basics/buttons/juce_ToggleButton.h index 41f511ba49..ef837890d1 100644 --- a/modules/juce_gui_basics/buttons/juce_ToggleButton.h +++ b/modules/juce_gui_basics/buttons/juce_ToggleButton.h @@ -42,20 +42,22 @@ class JUCE_API ToggleButton : public Button { public: //============================================================================== + /** Creates a ToggleButton. */ + ToggleButton(); + /** Creates a ToggleButton. @param buttonText the text to put in the button (the component's name is also initially set to this string, but these can be changed later using the setName() and setButtonText() methods) */ - explicit ToggleButton (const String& buttonText = String::empty); + explicit ToggleButton (const String& buttonText); /** Destructor. */ ~ToggleButton(); //============================================================================== /** Resizes the button to fit neatly around its current text. - The button's height won't be affected, only its width. */ void changeWidthToFitText(); @@ -73,23 +75,14 @@ public: textColourId = 0x1006501 /**< The colour to use for the button's text. */ }; - //============================================================================== - struct Ids - { - static const Identifier tagType; - }; - protected: + //============================================================================== /** @internal */ - void paintButton (Graphics& g, - bool isMouseOverButton, - bool isButtonDown); - + void paintButton (Graphics&, bool isMouseOverButton, bool isButtonDown); /** @internal */ void colourChanged(); private: - //============================================================================== JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ToggleButton); }; diff --git a/modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp b/modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp index c1926f6353..cefe0fcfb0 100644 --- a/modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp +++ b/modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp @@ -154,7 +154,6 @@ namespace ComponentBuilderHelpers //============================================================================= const Identifier ComponentBuilder::idProperty ("id"); -const Identifier ComponentBuilder::positionID ("position"); ComponentBuilder::ComponentBuilder() : imageProvider (nullptr) @@ -242,18 +241,6 @@ ComponentBuilder::TypeHandler* ComponentBuilder::getHandler (const int index) co void ComponentBuilder::registerStandardComponentTypes() { Drawable::registerDrawableTypeHandlers (*this); - - registerTypeHandler (new ComponentBuilderHelpers::StandardTypeHandler ()); - registerTypeHandler (new ComponentBuilderHelpers::StandardTypeHandler ()); - registerTypeHandler (new ComponentBuilderHelpers::StandardTypeHandler