From 7245f95165db8f5263211619ef7c783aebe559d9 Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Mon, 16 Aug 2021 10:29:26 +0300 Subject: [PATCH] screenshot-ui: Add IconLabelButton A button that has an icon and a subtitle label. Part-of: --- .../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 aa1a11a8c..5c98fce29 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 548df498e..17e61531e 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() {