LookAndFeel::drawFileBrowserRow improvement.tags/2021-05-28
@@ -1602,6 +1602,19 @@ ImageEffectFilter* LookAndFeel::getSliderEffect() | |||
return nullptr; | |||
} | |||
Font LookAndFeel::getSliderPopupFont() | |||
{ | |||
return Font (15.0f, Font::bold); | |||
} | |||
int LookAndFeel::getSliderPopupPlacement() | |||
{ | |||
return BubbleComponent::above | |||
| BubbleComponent::below | |||
| BubbleComponent::left | |||
| BubbleComponent::right; | |||
} | |||
//============================================================================== | |||
void LookAndFeel::getTooltipSize (const String& tipText, int& width, int& height) | |||
{ | |||
@@ -2510,10 +2523,13 @@ void LookAndFeel::drawFileBrowserRow (Graphics& g, int width, int height, | |||
const bool isDirectory, | |||
const bool isItemSelected, | |||
const int /*itemIndex*/, | |||
DirectoryContentsDisplayComponent&) | |||
DirectoryContentsDisplayComponent& dcc) | |||
{ | |||
Component* const fileListComp = dynamic_cast<Component*> (&dcc); | |||
if (isItemSelected) | |||
g.fillAll (findColour (DirectoryContentsDisplayComponent::highlightColourId)); | |||
g.fillAll (fileListComp != nullptr ? fileListComp->findColour (DirectoryContentsDisplayComponent::highlightColourId) | |||
: findColour (DirectoryContentsDisplayComponent::highlightColourId)); | |||
const int x = 32; | |||
g.setColour (Colours::black); | |||
@@ -2532,7 +2548,8 @@ void LookAndFeel::drawFileBrowserRow (Graphics& g, int width, int height, | |||
RectanglePlacement::centred | RectanglePlacement::onlyReduceInSize, 1.0f); | |||
} | |||
g.setColour (findColour (DirectoryContentsDisplayComponent::textColourId)); | |||
g.setColour (fileListComp != nullptr ? fileListComp->findColour (DirectoryContentsDisplayComponent::textColourId) | |||
: findColour (DirectoryContentsDisplayComponent::textColourId)); | |||
g.setFont (height * 0.7f); | |||
if (width > 450 && ! isDirectory) | |||
@@ -450,6 +450,9 @@ public: | |||
virtual ImageEffectFilter* getSliderEffect(); | |||
virtual Font getSliderPopupFont(); | |||
virtual int getSliderPopupPlacement(); | |||
//============================================================================== | |||
virtual void getTooltipSize (const String& tipText, int& width, int& height); | |||
@@ -28,9 +28,9 @@ class Slider::Pimpl : public AsyncUpdater, | |||
public ValueListener | |||
{ | |||
public: | |||
Pimpl (Slider& owner_, SliderStyle style_, TextEntryBoxPosition textBoxPosition) | |||
: owner (owner_), | |||
style (style_), | |||
Pimpl (Slider& s, SliderStyle sliderStyle, TextEntryBoxPosition textBoxPosition) | |||
: owner (s), | |||
style (sliderStyle), | |||
lastCurrentValue (0), lastValueMin (0), lastValueMax (0), | |||
minimum (0), maximum (10), interval (0), doubleClickReturnValue (0), | |||
skewFactor (1.0), velocityModeSensitivity (1.0), | |||
@@ -1256,11 +1256,12 @@ public: | |||
public Timer | |||
{ | |||
public: | |||
PopupDisplayComponent (Slider& owner_) | |||
: owner (owner_), | |||
font (15.0f, Font::bold) | |||
PopupDisplayComponent (Slider& s) | |||
: owner (s), | |||
font (s.getLookAndFeel().getSliderPopupFont()) | |||
{ | |||
setAlwaysOnTop (true); | |||
setAllowedPlacement (owner.getLookAndFeel().getSliderPopupPlacement()); | |||
} | |||
void paintContent (Graphics& g, int w, int h) | |||
@@ -1470,9 +1471,9 @@ void Slider::setDoubleClickReturnValue (bool isDoubleClickEnabled, double value | |||
pimpl->doubleClickReturnValue = valueToSetOnDoubleClick; | |||
} | |||
double Slider::getDoubleClickReturnValue (bool& isEnabled_) const | |||
double Slider::getDoubleClickReturnValue (bool& isEnabledResult) const | |||
{ | |||
isEnabled_ = pimpl->doubleClickToValue; | |||
isEnabledResult = pimpl->doubleClickToValue; | |||
return pimpl->doubleClickReturnValue; | |||
} | |||
@@ -1546,7 +1547,7 @@ void Slider::stoppedDragging() {} | |||
void Slider::valueChanged() {} | |||
//============================================================================== | |||
void Slider::setPopupMenuEnabled (const bool menuEnabled_) { pimpl->menuEnabled = menuEnabled_; } | |||
void Slider::setPopupMenuEnabled (const bool menuEnabled) { pimpl->menuEnabled = menuEnabled; } | |||
void Slider::setScrollWheelEnabled (const bool enabled) { pimpl->scrollWheelEnabled = enabled; } | |||
bool Slider::isHorizontal() const noexcept { return pimpl->isHorizontal(); } | |||