[gnome-shell] screenshot-ui: Add IconLabelButton



commit 7245f95165db8f5263211619ef7c783aebe559d9
Author: Ivan Molodetskikh <yalterz gmail com>
Date:   Mon Aug 16 10:29:26 2021 +0300

    screenshot-ui: Add IconLabelButton
    
    A button that has an icon and a subtitle label.
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1954>

 data/theme/gnome-shell-sass/widgets/_screenshot.scss |  9 +++++++++
 js/ui/screenshot.js                                  | 19 +++++++++++++++++++
 2 files changed, 28 insertions(+)
---
diff --git a/data/theme/gnome-shell-sass/widgets/_screenshot.scss 
b/data/theme/gnome-shell-sass/widgets/_screenshot.scss
index aa1a11a8c8..5c98fce299 100644
--- a/data/theme/gnome-shell-sass/widgets/_screenshot.scss
+++ b/data/theme/gnome-shell-sass/widgets/_screenshot.scss
@@ -1,4 +1,13 @@
 // Screenshot UI
+.icon-label-button-container {
+  spacing: $base_spacing;
+  font-size: $base_font_size - 3pt;
+
+  StIcon {
+    icon-size: 32px;
+  }
+}
+
 .screenshot-ui-panel {
   background-color: $osd_bg_color;
   border-radius: 12px + 21px;
diff --git a/js/ui/screenshot.js b/js/ui/screenshot.js
index 548df498ee..17e61531ec 100644
--- a/js/ui/screenshot.js
+++ b/js/ui/screenshot.js
@@ -20,6 +20,25 @@ const { DBusSenderChecker } = imports.misc.util;
 
 const ScreenshotIface = loadInterfaceXML('org.gnome.Shell.Screenshot');
 
+var IconLabelButton = GObject.registerClass(
+class IconLabelButton extends St.Button {
+    _init(iconName, label, params) {
+        super._init(params);
+
+        this._container = new St.BoxLayout({
+            vertical: true,
+            style_class: 'icon-label-button-container',
+        });
+        this.set_child(this._container);
+
+        this._container.add_child(new St.Icon({ icon_name: iconName }));
+        this._container.add_child(new St.Label({
+            text: label,
+            x_align: Clutter.ActorAlign.CENTER,
+        }));
+    }
+});
+
 var ScreenshotUI = GObject.registerClass(
 class ScreenshotUI extends St.Widget {
     _init() {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]