From c76d54966121d4234425546ef457025a3ef4aad0 Mon Sep 17 00:00:00 2001 From: kodecheff Date: Tue, 21 Mar 2023 14:48:29 +0100 Subject: [PATCH 1/2] Library: Add Banner Entry --- blueprint-compiler | 2 +- src/Library/demos/Banner/main.blp | 24 +++++++++++++++++ src/Library/demos/Banner/main.js | 42 ++++++++++++++++++++++++++++++ src/Library/demos/Banner/main.json | 10 +++++++ 4 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 src/Library/demos/Banner/main.blp create mode 100644 src/Library/demos/Banner/main.js create mode 100644 src/Library/demos/Banner/main.json diff --git a/blueprint-compiler b/blueprint-compiler index 402677f68..87a8ef8a3 160000 --- a/blueprint-compiler +++ b/blueprint-compiler @@ -1 +1 @@ -Subproject commit 402677f687ecdb78026864188bae50b9d85949de +Subproject commit 87a8ef8a3bdfeff5547dc6d6cc1ca41a303ce6fb diff --git a/src/Library/demos/Banner/main.blp b/src/Library/demos/Banner/main.blp new file mode 100644 index 000000000..61523a0a1 --- /dev/null +++ b/src/Library/demos/Banner/main.blp @@ -0,0 +1,24 @@ +using Gtk 4.0; + +Box welcome { + orientation: vertical; + valign: center; + halign: center; + + Label { + label: "A widget for communicating persistent and important information."; + margin-bottom: 20; + } + + Box banner_box { + orientation: vertical; + valign: center; + halign: center; + + Button open_banner{ + label: "Open Banner"; + } + + } + +} diff --git a/src/Library/demos/Banner/main.js b/src/Library/demos/Banner/main.js new file mode 100644 index 000000000..b2af286af --- /dev/null +++ b/src/Library/demos/Banner/main.js @@ -0,0 +1,42 @@ +import Gtk from "gi://Gtk?version=4.0"; +const Adw = imports.gi.Adw; +Gtk.init(); + +const _bannerBox = workbench.builder.get_object("banner_box"); +const _openBanner = workbench.builder.get_object("open_banner"); + +function adwBanner() { + // Create a new AdwBanner widget + const banner = new Adw.Banner({ + button_label: "OK", + title: "Simple Banner Test", + revealed: true, + use_markup: true, + margin_bottom: 20, + }); + + return banner; +} + +const banner = adwBanner(); + +// Signal to open banner +_openBanner.connect("clicked", () => { + if (!banner.revealed) { + banner.revealed = true; + } + _bannerBox.prepend(banner); + _bannerBox.remove(_openBanner); +}); + +// signal called when banner button is clicked +banner.connect("button-clicked", async (banner) => { + await banner.set_revealed(false); + + if (!banner.revealed) { + _bannerBox.remove(banner); + } + + _bannerBox.append(_openBanner); +}); + diff --git a/src/Library/demos/Banner/main.json b/src/Library/demos/Banner/main.json new file mode 100644 index 000000000..e3966e246 --- /dev/null +++ b/src/Library/demos/Banner/main.json @@ -0,0 +1,10 @@ +{ + "name": "Banner", + "category": "user_interface", + "description": "Banners is an attention-grabbing notification that is used to communicate important information.", + "panels": [ + "code", + "preview" + ], + "autorun": true +} From b7d5dd1c9029529f84fb780f2cc44494904659e5 Mon Sep 17 00:00:00 2001 From: kodecheff Date: Tue, 28 Mar 2023 12:58:49 +0100 Subject: [PATCH 2/2] Banner library update --- src/Library/demos/Banner/main.blp | 54 +++++++++++++++++++++--------- src/Library/demos/Banner/main.js | 42 +++++------------------ src/Library/demos/Banner/main.json | 2 +- 3 files changed, 47 insertions(+), 51 deletions(-) diff --git a/src/Library/demos/Banner/main.blp b/src/Library/demos/Banner/main.blp index 61523a0a1..e94272d8d 100644 --- a/src/Library/demos/Banner/main.blp +++ b/src/Library/demos/Banner/main.blp @@ -1,24 +1,46 @@ using Gtk 4.0; +using Adw 1; -Box welcome { - orientation: vertical; - valign: center; - halign: center; +Gtk.Window window { + default-width: 800; + default-height: 600; + title: "Banner"; + titlebar: Gtk.HeaderBar { + [end] + MenuButton button_menu { + icon-name: "open-menu-symbolic"; + primary: true; + } + }; - Label { - label: "A widget for communicating persistent and important information."; - margin-bottom: 20; - } + Adw.ToastOverlay overlay { + Adw.StatusPage { + title: "Adw Banner"; + description: "Gnome Banner Test"; - Box banner_box { - orientation: vertical; - valign: center; - halign: center; + Box { + orientation: vertical; + halign: center; + valign: center; - Button open_banner{ - label: "Open Banner"; - } + Adw.Banner banner{ + button-label: "Troubleshoot"; + title: "An error occurred: Could not resolve host."; + revealed: true; + use-markup: true; + margin-bottom: 20; + } - } + LinkButton { + label: "API Reference"; + uri: "https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1.3/class.Banner.html"; + } + LinkButton { + label: "Human Interface Guidelines"; + uri: "https://developer.gnome.org/hig/patterns/feedback/banners.html"; + } + } + } + } } diff --git a/src/Library/demos/Banner/main.js b/src/Library/demos/Banner/main.js index b2af286af..d570f32ce 100644 --- a/src/Library/demos/Banner/main.js +++ b/src/Library/demos/Banner/main.js @@ -1,42 +1,16 @@ -import Gtk from "gi://Gtk?version=4.0"; const Adw = imports.gi.Adw; -Gtk.init(); -const _bannerBox = workbench.builder.get_object("banner_box"); -const _openBanner = workbench.builder.get_object("open_banner"); +const banner = workbench.builder.get_object("banner"); +const overlay = workbench.builder.get_object("overlay"); -function adwBanner() { - // Create a new AdwBanner widget - const banner = new Adw.Banner({ - button_label: "OK", - title: "Simple Banner Test", - revealed: true, - use_markup: true, - margin_bottom: 20, +function alert() { + const toast = new Adw.Toast({ + title: "Troubleshoot successful!", + timeout: 3, }); - return banner; + overlay.add_toast(toast); } -const banner = adwBanner(); - -// Signal to open banner -_openBanner.connect("clicked", () => { - if (!banner.revealed) { - banner.revealed = true; - } - _bannerBox.prepend(banner); - _bannerBox.remove(_openBanner); -}); - // signal called when banner button is clicked -banner.connect("button-clicked", async (banner) => { - await banner.set_revealed(false); - - if (!banner.revealed) { - _bannerBox.remove(banner); - } - - _bannerBox.append(_openBanner); -}); - +banner.connect("button-clicked", alert); diff --git a/src/Library/demos/Banner/main.json b/src/Library/demos/Banner/main.json index e3966e246..9a444b470 100644 --- a/src/Library/demos/Banner/main.json +++ b/src/Library/demos/Banner/main.json @@ -3,7 +3,7 @@ "category": "user_interface", "description": "Banners is an attention-grabbing notification that is used to communicate important information.", "panels": [ - "code", + "ui", "preview" ], "autorun": true