[Visual] Allow hiding shadow of modal window header

This was needed for custom changelog box, which is currently not in main branch.
This commit is contained in:
Eric Kotato 2022-09-15 23:35:57 +03:00 committed by Eric Kotato
parent 230fbd7c11
commit c48709d6e4
2 changed files with 17 additions and 4 deletions

View file

@ -204,10 +204,12 @@ void BoxContent::updateShadowsVisibility() {
const auto top = _scroll->scrollTop(); const auto top = _scroll->scrollTop();
_topShadow->toggle( _topShadow->toggle(
(top > 0 || _innerTopSkip > 0), (top > 0
|| (_innerTopSkip > 0 && !_topShadowWithSkip)),
anim::type::normal); anim::type::normal);
_bottomShadow->toggle( _bottomShadow->toggle(
(top < _scroll->scrollTopMax() || _innerBottomSkip > 0), (top < _scroll->scrollTopMax()
|| (_innerBottomSkip > 0 && !_bottomShadowWithSkip)),
anim::type::normal); anim::type::normal);
} }
@ -298,10 +300,12 @@ void BoxContent::updateScrollAreaGeometry() {
const auto top = _scroll->scrollTop(); const auto top = _scroll->scrollTop();
_topShadow->toggle( _topShadow->toggle(
(top > 0 || _innerTopSkip > 0), (top > 0
|| (_innerTopSkip > 0 && !_topShadowWithSkip)),
anim::type::instant); anim::type::instant);
_bottomShadow->toggle( _bottomShadow->toggle(
(top < _scroll->scrollTopMax() || _innerBottomSkip > 0), (top < _scroll->scrollTopMax()
|| (_innerBottomSkip > 0 && !_bottomShadowWithSkip)),
anim::type::instant); anim::type::instant);
} }
} }

View file

@ -209,6 +209,13 @@ protected:
getDelegate()->setLayerType(layerType); getDelegate()->setLayerType(layerType);
} }
void setTopShadowWithSkip(bool enabled) {
_topShadowWithSkip = enabled;
}
void setBottomShadowWithSkip(bool enabled) {
_bottomShadowWithSkip = enabled;
}
void setDimensions( void setDimensions(
int newWidth, int newWidth,
int maxHeight, int maxHeight,
@ -277,6 +284,8 @@ private:
bool _preparing = false; bool _preparing = false;
bool _noContentMargin = false; bool _noContentMargin = false;
bool _closeByEscape = true; bool _closeByEscape = true;
bool _topShadowWithSkip = false;
bool _bottomShadowWithSkip = false;
int _innerTopSkip = 0; int _innerTopSkip = 0;
int _innerBottomSkip = 0; int _innerBottomSkip = 0;
object_ptr<ScrollArea> _scroll = { nullptr }; object_ptr<ScrollArea> _scroll = { nullptr };