Skip to content

Commit

Permalink
widgets/cliprect: pass user input to contained items
Browse files Browse the repository at this point in the history
  • Loading branch information
outfoxxed committed Nov 28, 2024
1 parent 91eb964 commit dab605d
Showing 1 changed file with 15 additions and 13 deletions.
28 changes: 15 additions & 13 deletions src/widgets/ClippingRectangle.qml
Original file line number Diff line number Diff line change
Expand Up @@ -13,20 +13,20 @@ Item {
/// If content should be displayed underneath the border.
///
/// Defaults to false, does nothing if the border is opaque.
property bool contentUnderBorder: false;
property bool contentUnderBorder: false
/// If the content item should be resized to fit inside the border.
///
/// Defaults to `!contentUnderBorder`. Most useful when combined with
/// `anchors.fill: parent` on an item passed to the ClippingRectangle.
property bool contentInsideBorder: !root.contentUnderBorder;
property bool contentInsideBorder: !root.contentUnderBorder
/// If the rectangle should be antialiased.
///
/// Defaults to true if any corner has a non-zero radius, otherwise false.
property /*bool*/alias antialiasing: rectangle.antialiasing;
property /*bool*/alias antialiasing: rectangle.antialiasing
/// The background color of the rectangle, which goes under its content.
property /*color*/alias color: shader.backgroundColor;
property /*color*/alias color: shader.backgroundColor
/// See @@QtQuick.Rectangle.border.
property clippingRectangleBorder border;
property clippingRectangleBorder border
/// Radius of all corners. Defaults to 0.
property /*real*/alias radius: rectangle.radius
/// Radius of the top left corner. Defaults to @@radius.
Expand All @@ -41,10 +41,10 @@ Item {
/// Visual children of the ClippingRectangle's @@contentItem. (`list<Item>`).
///
/// See @@QtQuick.Item.children for details.
default property alias children: contentItem.children;
default property alias children: contentItem.children
/// The item containing the rectangle's content.
/// There is usually no reason to use this directly.
readonly property alias contentItem: contentItem;
readonly property alias contentItem: contentItem

Rectangle {
id: rectangle
Expand All @@ -60,8 +60,6 @@ Item {
Item {
id: contentItemContainer
anchors.fill: root
layer.enabled: true
visible: false

Item {
id: contentItem
Expand All @@ -74,9 +72,13 @@ Item {
id: shader
anchors.fill: root
fragmentShader: `qrc:/Quickshell/Widgets/shaders/cliprect${root.contentUnderBorder ? "-ub" : ""}.frag.qsb`
property Rectangle rect: rectangle;
property color backgroundColor;
property color borderColor: root.border.color;
property Item content: contentItemContainer;
property Rectangle rect: rectangle
property color backgroundColor
property color borderColor: root.border.color

property ShaderEffectSource content: ShaderEffectSource {
hideSource: true
sourceItem: contentItemContainer
}
}
}

0 comments on commit dab605d

Please sign in to comment.