diff --git a/src/Library/demos/Clamp/main.blp b/src/Library/demos/Clamp/main.blp new file mode 100644 index 000000000..2158162e0 --- /dev/null +++ b/src/Library/demos/Clamp/main.blp @@ -0,0 +1,46 @@ +using Gtk 4.0; +using Adw 1; + +Adw.StatusPage { + title: "Clamp"; + description: "A widget constraining its child to a given size."; + + Box { + orientation: vertical; + halign: center; + + Box { + halign: center; + spacing: 6; + orientation: horizontal; + + Button button_increase { + icon-name: "plus"; + } + + Button button_decrease { + icon-name: "minus"; + } + } + + LinkButton { + margin-top: 12; + label: "API Reference"; + uri: "https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1.3/class.Clamp.html"; + } + + Adw.Clamp clamp { + margin-top: 24; + maximum-size: 400; + tightening-threshold: 200; + margin-bottom: 24; + + Label label { + wrap: true; + label: _("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. "); + } + } + } +} + + diff --git a/src/Library/demos/Clamp/main.js b/src/Library/demos/Clamp/main.js new file mode 100644 index 000000000..aef82eae6 --- /dev/null +++ b/src/Library/demos/Clamp/main.js @@ -0,0 +1,29 @@ +const button_increase = workbench.builder.get_object("button_increase"); +const button_decrease = workbench.builder.get_object("button_decrease"); +const clamp = workbench.builder.get_object("clamp"); + +function increase() { + const current_size = clamp.get_maximum_size(); + const current_threshold = clamp.get_tightening_threshold(); + clamp.maximum_size = current_size + 300; + clamp.tightening_threshold = current_threshold + 200; + + if (clamp.tightening_threshold === 1000) { + console.log("Maximum size reached"); + } +} + +function decrease() { + const current_size = clamp.get_maximum_size(); + const current_threshold = clamp.get_tightening_threshold(); + clamp.maximum_size = current_size - 300; + clamp.tightening_threshold = current_threshold - 200; + + if (clamp.tightening_threshold === 0) { + console.log("Minimum size reached"); + } +} + +button_increase.connect("clicked", increase); +button_decrease.connect("clicked", decrease); + diff --git a/src/Library/demos/Clamp/main.json b/src/Library/demos/Clamp/main.json new file mode 100644 index 000000000..58302ed6b --- /dev/null +++ b/src/Library/demos/Clamp/main.json @@ -0,0 +1,7 @@ +{ + "name": "Clamp", + "category": "layout", + "description": "A widget constraining its child to a given size.", + "panels": ["ui", "preview"], + "autorun": true +}