diff --git a/modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.cpp b/modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.cpp index 8f39fa3b8e..b4719a7db1 100644 --- a/modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.cpp +++ b/modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.cpp @@ -105,16 +105,15 @@ FileBrowserComponent::FileBrowserComponent (int flags_, addAndMakeVisible (fileLabel); fileLabel.attachToComponent (&filenameBox, true); - goUpButton.reset (getLookAndFeel().createFileBrowserGoUpButton()); - addAndMakeVisible (goUpButton.get()); - goUpButton->onClick = [this] { goUp(); }; - goUpButton->setTooltip (TRANS ("Go up to parent directory")); - if (previewComp != nullptr) addAndMakeVisible (previewComp); lookAndFeelChanged(); + addAndMakeVisible (goUpButton.get()); + goUpButton->onClick = [this] { goUp(); }; + goUpButton->setTooltip (TRANS ("Go up to parent directory")); + setRoot (currentRoot); if (filename.isNotEmpty()) @@ -351,12 +350,17 @@ void FileBrowserComponent::resized() //============================================================================== void FileBrowserComponent::lookAndFeelChanged() { + goUpButton.reset (getLookAndFeel().createFileBrowserGoUpButton()); + currentPathBox.setColour (ComboBox::backgroundColourId, findColour (currentPathBoxBackgroundColourId)); currentPathBox.setColour (ComboBox::textColourId, findColour (currentPathBoxTextColourId)); currentPathBox.setColour (ComboBox::arrowColourId, findColour (currentPathBoxArrowColourId)); filenameBox.setColour (TextEditor::backgroundColourId, findColour (filenameBoxBackgroundColourId)); filenameBox.setColour (TextEditor::textColourId, findColour (filenameBoxTextColourId)); + + resized(); + repaint(); } //============================================================================== diff --git a/modules/juce_gui_basics/menus/juce_BurgerMenuComponent.cpp b/modules/juce_gui_basics/menus/juce_BurgerMenuComponent.cpp index 686c77bab8..ad47ed2fa6 100644 --- a/modules/juce_gui_basics/menus/juce_BurgerMenuComponent.cpp +++ b/modules/juce_gui_basics/menus/juce_BurgerMenuComponent.cpp @@ -56,9 +56,7 @@ struct CustomMenuBarItemHolder : public Component //============================================================================== BurgerMenuComponent::BurgerMenuComponent (MenuBarModel* modelToUse) { - auto& lf = getLookAndFeel(); - - listBox.setRowHeight (roundToInt (lf.getPopupMenuFont().getHeight() * 2.0f)); + lookAndFeelChanged(); listBox.addMouseListener (this, true); setModel (modelToUse); @@ -283,4 +281,9 @@ void BurgerMenuComponent::handleCommandMessage (int commandID) } } +void BurgerMenuComponent::lookAndFeelChanged() +{ + listBox.setRowHeight (roundToInt (getLookAndFeel().getPopupMenuFont().getHeight() * 2.0f)); +} + } // namespace juce diff --git a/modules/juce_gui_basics/menus/juce_BurgerMenuComponent.h b/modules/juce_gui_basics/menus/juce_BurgerMenuComponent.h index 872f8bff8f..75f11d4dbc 100644 --- a/modules/juce_gui_basics/menus/juce_BurgerMenuComponent.h +++ b/modules/juce_gui_basics/menus/juce_BurgerMenuComponent.h @@ -62,6 +62,9 @@ public: /** Returns the current burger menu model being used. */ MenuBarModel* getModel() const noexcept; + /** @internal */ + void lookAndFeelChanged() override; + private: //============================================================================== struct Row diff --git a/modules/juce_gui_basics/properties/juce_PropertyPanel.cpp b/modules/juce_gui_basics/properties/juce_PropertyPanel.cpp index ad3070e2cb..e03c929182 100644 --- a/modules/juce_gui_basics/properties/juce_PropertyPanel.cpp +++ b/modules/juce_gui_basics/properties/juce_PropertyPanel.cpp @@ -25,9 +25,10 @@ struct PropertyPanel::SectionComponent : public Component const Array& newProperties, bool sectionIsOpen) : Component (sectionTitle), - titleHeight (getLookAndFeel().getPropertyPanelSectionHeaderHeight (sectionTitle)), isOpen (sectionIsOpen) { + lookAndFeelChanged(); + propertyComps.addArray (newProperties); for (auto* propertyComponent : propertyComps) @@ -59,6 +60,13 @@ struct PropertyPanel::SectionComponent : public Component } } + void lookAndFeelChanged() override + { + titleHeight = getLookAndFeel().getPropertyPanelSectionHeaderHeight (getName()); + resized(); + repaint(); + } + int getPreferredHeight() const { auto y = titleHeight; diff --git a/modules/juce_gui_basics/widgets/juce_Toolbar.cpp b/modules/juce_gui_basics/widgets/juce_Toolbar.cpp index 861557956b..f8c7fc53db 100644 --- a/modules/juce_gui_basics/widgets/juce_Toolbar.cpp +++ b/modules/juce_gui_basics/widgets/juce_Toolbar.cpp @@ -235,7 +235,7 @@ private: //============================================================================== Toolbar::Toolbar() { - missingItemsButton.reset (getLookAndFeel().createToolbarMissingItemsButton (*this)); + lookAndFeelChanged(); addChildComponent (missingItemsButton.get()); missingItemsButton->setAlwaysOnTop (true); @@ -633,6 +633,11 @@ void Toolbar::itemDropped (const SourceDetails& dragSourceDetails) tc->setState (Button::buttonNormal); } +void Toolbar::lookAndFeelChanged() +{ + missingItemsButton.reset (getLookAndFeel().createToolbarMissingItemsButton (*this)); +} + void Toolbar::mouseDown (const MouseEvent&) {} //============================================================================== diff --git a/modules/juce_gui_basics/widgets/juce_Toolbar.h b/modules/juce_gui_basics/widgets/juce_Toolbar.h index 568c7e372c..8f24050d1a 100644 --- a/modules/juce_gui_basics/widgets/juce_Toolbar.h +++ b/modules/juce_gui_basics/widgets/juce_Toolbar.h @@ -296,6 +296,8 @@ public: /** @internal */ void itemDropped (const SourceDetails&) override; /** @internal */ + void lookAndFeelChanged() override; + /** @internal */ void updateAllItemPositions (bool animate); /** @internal */ static ToolbarItemComponent* createItem (ToolbarItemFactory&, int itemId); diff --git a/modules/juce_gui_basics/windows/juce_CallOutBox.cpp b/modules/juce_gui_basics/windows/juce_CallOutBox.cpp index c43f89284a..82da4602dc 100644 --- a/modules/juce_gui_basics/windows/juce_CallOutBox.cpp +++ b/modules/juce_gui_basics/windows/juce_CallOutBox.cpp @@ -44,9 +44,7 @@ CallOutBox::CallOutBox (Component& c, Rectangle area, Component* const pare creationTime = Time::getCurrentTime(); } -CallOutBox::~CallOutBox() -{ -} +CallOutBox::~CallOutBox() = default; //============================================================================== class CallOutBoxCallback : public ModalComponentManager::Callback, @@ -94,6 +92,8 @@ int CallOutBox::getBorderSize() const noexcept return jmax (getLookAndFeel().getCallOutBoxBorderSize (*this), (int) arrowSize); } +void CallOutBox::lookAndFeelChanged() { resized(); repaint(); } + void CallOutBox::paint (Graphics& g) { getLookAndFeel().drawCallOutBoxBackground (*this, g, outline, background); diff --git a/modules/juce_gui_basics/windows/juce_CallOutBox.h b/modules/juce_gui_basics/windows/juce_CallOutBox.h index d5e6eea372..aef1de678f 100644 --- a/modules/juce_gui_basics/windows/juce_CallOutBox.h +++ b/modules/juce_gui_basics/windows/juce_CallOutBox.h @@ -159,6 +159,8 @@ public: void handleCommandMessage (int) override; /** @internal */ int getBorderSize() const noexcept; + /** @internal */ + void lookAndFeelChanged() override; private: //============================================================================== diff --git a/modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp b/modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp index c2ec4edb4e..5c04c6acd5 100644 --- a/modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp +++ b/modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp @@ -341,7 +341,7 @@ CodeEditorComponent::CodeEditorComponent (CodeDocument& doc, CodeTokeniser* cons setMouseCursor (MouseCursor::IBeamCursor); setWantsKeyboardFocus (true); - caret.reset (getLookAndFeel().createCaretComponent (this)); + lookAndFeelChanged(); addAndMakeVisible (caret.get()); addAndMakeVisible (verticalScrollBar); @@ -1308,6 +1308,11 @@ bool CodeEditorComponent::perform (const InvocationInfo& info) return performCommand (info.commandID); } +void CodeEditorComponent::lookAndFeelChanged() +{ + caret.reset (getLookAndFeel().createCaretComponent (this)); +} + bool CodeEditorComponent::performCommand (const CommandID commandID) { switch (commandID) diff --git a/modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h b/modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h index 115048f363..7386bb3b28 100644 --- a/modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h +++ b/modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h @@ -371,6 +371,8 @@ public: void getCommandInfo (CommandID, ApplicationCommandInfo&) override; /** @internal */ bool perform (const InvocationInfo&) override; + /** @internal */ + void lookAndFeelChanged() override; private: //==============================================================================