Add global border radius slider

gh-1819
This commit is contained in:
Charles Gagnon
2025-02-13 18:35:58 -05:00
parent f874553c68
commit d4f1d89724
10 changed files with 252 additions and 124 deletions

View File

@@ -727,6 +727,10 @@
<summary>Leftbox font size</summary> <summary>Leftbox font size</summary>
<description>Set the size of the leftBox font. (0 for default)</description> <description>Set the size of the leftBox font. (0 for default)</description>
</key> </key>
<key type="i" name="global-border-radius">
<default>0</default>
<summary>Border radius of panel elements</summary>
</key>
<key type="i" name="appicon-margin"> <key type="i" name="appicon-margin">
<default>8</default> <default>8</default>
<summary>App icon margin</summary> <summary>App icon margin</summary>

View File

@@ -541,7 +541,7 @@ export const TaskbarAppIcon = GObject.registerClass(
) )
// Some trickery needed to get the effect // Some trickery needed to get the effect
const br = `border-radius: ${border_radius}px;` const br = border_radius ? `border-radius: ${border_radius}px;` : ''
this._appicon_normalstyle = br this._appicon_normalstyle = br
this._container.set_style(this._appicon_normalstyle) this._container.set_style(this._appicon_normalstyle)
this._appicon_hoverstyle = `background-color: ${background_color}; ${br}` this._appicon_hoverstyle = `background-color: ${background_color}; ${br}`
@@ -1718,7 +1718,8 @@ export const TaskbarAppIcon = GObject.registerClass(
this.window this.window
? Main.activateWindow(this.window) ? Main.activateWindow(this.window)
: activateFirstWindow(this.app, this.monitor) : activateFirstWindow(this.app, this.monitor)
} else this.dtpPanel.panelManager.showFocusedAppInOverview(this.app, true) } else
this.dtpPanel.panelManager.showFocusedAppInOverview(this.app, true)
return DND.DragMotionResult.MOVE_DROP return DND.DragMotionResult.MOVE_DROP
} }

View File

@@ -73,14 +73,8 @@ export default class DashToPanelExtension extends Extension {
// To remove later, try to map settings using monitor indexes to monitor ids // To remove later, try to map settings using monitor indexes to monitor ids
PanelSettings.adjustMonitorSettings(SETTINGS) PanelSettings.adjustMonitorSettings(SETTINGS)
let completeEnable = () => {
panelManager = new PanelManager.PanelManager()
panelManager.enable()
ubuntuDockDelayId = 0
}
let donateIconUnixtime = SETTINGS.get_string('hide-donate-icon-unixtime')
// show the donate icon every 120 days (10368000000 milliseconds) // show the donate icon every 120 days (10368000000 milliseconds)
let donateIconUnixtime = SETTINGS.get_string('hide-donate-icon-unixtime')
if (donateIconUnixtime && donateIconUnixtime < Date.now() - 10368000000) if (donateIconUnixtime && donateIconUnixtime < Date.now() - 10368000000)
SETTINGS.set_string('hide-donate-icon-unixtime', '') SETTINGS.set_string('hide-donate-icon-unixtime', '')
@@ -99,6 +93,14 @@ export default class DashToPanelExtension extends Extension {
) )
} }
this.enableGlobalStyles()
let completeEnable = () => {
panelManager = new PanelManager.PanelManager()
panelManager.enable()
ubuntuDockDelayId = 0
}
// disable ubuntu dock if present // disable ubuntu dock if present
if (Main.extensionManager._extensionOrder.indexOf(UBUNTU_DOCK_UUID) >= 0) { if (Main.extensionManager._extensionOrder.indexOf(UBUNTU_DOCK_UUID) >= 0) {
let disabled = global.settings.get_strv('disabled-extensions') let disabled = global.settings.get_strv('disabled-extensions')
@@ -127,6 +129,8 @@ export default class DashToPanelExtension extends Extension {
delete global.dashToPanel delete global.dashToPanel
this.disableGlobalStyles()
AppIcons.resetRecentlyClickedApp() AppIcons.resetRecentlyClickedApp()
if (startupCompleteHandler) { if (startupCompleteHandler) {
@@ -152,4 +156,24 @@ export default class DashToPanelExtension extends Extension {
super.openPreferences() super.openPreferences()
} }
resetGlobalStyles() {
this.disableGlobalStyles()
this.enableGlobalStyles()
}
enableGlobalStyles() {
let globalBorderRadius = SETTINGS.get_int('global-border-radius')
if (globalBorderRadius)
Main.layoutManager.uiGroup.add_style_class_name(
`br${globalBorderRadius * 4}`,
)
}
disableGlobalStyles() {
;['br4', 'br8', 'br12', 'br16', 'br20'].forEach((c) =>
Main.layoutManager.uiGroup.remove_style_class_name(c),
)
}
} }

View File

@@ -71,7 +71,10 @@ export const Panel = GObject.registerClass(
{}, {},
class Panel extends St.Widget { class Panel extends St.Widget {
_init(panelManager, monitor, panelBox, isStandalone) { _init(panelManager, monitor, panelBox, isStandalone) {
super._init({ layout_manager: new Clutter.BinLayout() }) super._init({
name: 'dashtopanelPanel',
layout_manager: new Clutter.BinLayout(),
})
this._timeoutsHandler = new Utils.TimeoutsHandler() this._timeoutsHandler = new Utils.TimeoutsHandler()
this._signalsHandler = new Utils.GlobalSignalsHandler() this._signalsHandler = new Utils.GlobalSignalsHandler()

View File

@@ -49,7 +49,7 @@ import { NotificationsMonitor } from './notificationsMonitor.js'
import { Workspace } from 'resource:///org/gnome/shell/ui/workspace.js' import { Workspace } from 'resource:///org/gnome/shell/ui/workspace.js'
import * as Layout from 'resource:///org/gnome/shell/ui/layout.js' import * as Layout from 'resource:///org/gnome/shell/ui/layout.js'
import { InjectionManager } from 'resource:///org/gnome/shell/extensions/extension.js' import { InjectionManager } from 'resource:///org/gnome/shell/extensions/extension.js'
import { SETTINGS } from './extension.js' import { DTP_EXTENSION, SETTINGS } from './extension.js'
import { import {
SecondaryMonitorDisplay, SecondaryMonitorDisplay,
WorkspacesView, WorkspacesView,
@@ -204,6 +204,11 @@ export const PanelManager = class {
//listen settings //listen settings
this._signalsHandler.add( this._signalsHandler.add(
[
SETTINGS,
'changed::global-border-radius',
() => DTP_EXTENSION.resetGlobalStyles(),
],
[ [
SETTINGS, SETTINGS,
[ [

View File

@@ -235,6 +235,7 @@ const Preferences = class {
this._dot_height_timeout = 0 this._dot_height_timeout = 0
this._tray_size_timeout = 0 this._tray_size_timeout = 0
this._leftbox_size_timeout = 0 this._leftbox_size_timeout = 0
this._globalBorderRadius_margin_timeout = 0
this._appicon_margin_timeout = 0 this._appicon_margin_timeout = 0
this._appicon_margin_todesktop_timeout = 0 this._appicon_margin_todesktop_timeout = 0
this._appicon_margin_toscreenborder_timeout = 0 this._appicon_margin_toscreenborder_timeout = 0
@@ -800,6 +801,12 @@ const Preferences = class {
}) })
// style // style
this._builder
.get_object('global_border_radius_scale')
.set_format_value_func((scale, value) => {
return value * 4 + ' px'
})
this._builder this._builder
.get_object('appicon_margin_scale') .get_object('appicon_margin_scale')
.set_format_value_func((scale, value) => { .set_format_value_func((scale, value) => {
@@ -3051,6 +3058,12 @@ const Preferences = class {
valueName: 'leftbox-size', valueName: 'leftbox-size',
range: DEFAULT_FONT_SIZES, range: DEFAULT_FONT_SIZES,
}, },
{
objectName: 'global_border_radius_scale',
valueName: 'global-border-radius',
range: [5, 4, 3, 2, 1, 0],
rangeFactor: 4,
},
{ {
objectName: 'appicon_margin_scale', objectName: 'appicon_margin_scale',
valueName: 'appicon-margin', valueName: 'appicon-margin',
@@ -3097,6 +3110,7 @@ const Preferences = class {
for (const idx in sizeScales) { for (const idx in sizeScales) {
let size_scale = this._builder.get_object(sizeScales[idx].objectName) let size_scale = this._builder.get_object(sizeScales[idx].objectName)
let range = sizeScales[idx].range let range = sizeScales[idx].range
let factor = sizeScales[idx].rangeFactor
size_scale.set_range(range[range.length - 1], range[0]) size_scale.set_range(range[range.length - 1], range[0])
let value let value
if (sizeScales[idx].objectName === 'panel_length_scale') { if (sizeScales[idx].objectName === 'panel_length_scale') {
@@ -3110,7 +3124,11 @@ const Preferences = class {
size_scale.set_value(value) size_scale.set_value(value)
// Add marks from range arrays, omitting the first and last values. // Add marks from range arrays, omitting the first and last values.
range.slice(1, -1).forEach(function (val) { range.slice(1, -1).forEach(function (val) {
size_scale.add_mark(val, Gtk.PositionType.TOP, val.toString()) size_scale.add_mark(
val,
Gtk.PositionType.TOP,
(val * (factor || 1)).toString(),
)
}) })
// Corrent for rtl languages // Corrent for rtl languages
@@ -3741,6 +3759,25 @@ const BuilderScope = GObject.registerClass(
) )
} }
global_border_radius_scale_value_changed_cb(scale) {
// Avoid settings the size consinuosly
if (this._preferences._globalBorderRadius_margin_timeout > 0)
GLib.Source.remove(this._preferences._globalBorderRadius_margin_timeout)
this._preferences._globalBorderRadius_margin_timeout = GLib.timeout_add(
GLib.PRIORITY_DEFAULT,
SCALE_UPDATE_TIMEOUT,
() => {
this._preferences._settings.set_int(
'global-border-radius',
scale.get_value(),
)
this._preferences._globalBorderRadius_margin_timeout = 0
return GLib.SOURCE_REMOVE
},
)
}
appicon_margin_scale_value_changed_cb(scale) { appicon_margin_scale_value_changed_cb(scale) {
// Avoid settings the size consinuosly // Avoid settings the size consinuosly
if (this._preferences._appicon_margin_timeout > 0) if (this._preferences._appicon_margin_timeout > 0)

View File

@@ -66,7 +66,6 @@
background: none; background: none;
} }
#dashtopanelScrollview .overview-tile:active .dtp-container { #dashtopanelScrollview .overview-tile:active .dtp-container {
background-color: rgba(238, 238, 236, 0.18); background-color: rgba(238, 238, 236, 0.18);
} }
@@ -168,3 +167,80 @@
.symbolic-icon-style { .symbolic-icon-style {
-st-icon-style: symbolic; -st-icon-style: symbolic;
} }
/* border radius, grrr no css variables in ST */
#uiGroup.br4 #dashtopanelPanel,
#uiGroup.br4 .show-apps,
#uiGroup.br4 .dtp-container,
#uiGroup.br4 .dtp-dots-container,
#uiGroup.br4 #preview-menu,
#uiGroup.br4 #preview-menu .preview-header-box,
#uiGroup.br4 #preview-menu .preview-container,
#uiGroup.br4 #preview-menu .preview-close-btn-container {
border-radius: 4px !important;
overflow: hidden !important;
}
#uiGroup.br4 .showdesktop-button {
border-radius: 0 4px 4px 0 !important;
}
#uiGroup.br8 #dashtopanelPanel,
#uiGroup.br8 .show-apps,
#uiGroup.br8 .dtp-container,
#uiGroup.br8 .dtp-dots-container,
#uiGroup.br8 #preview-menu,
#uiGroup.br8 #preview-menu .preview-header-box,
#uiGroup.br8 #preview-menu .preview-container,
#uiGroup.br8 #preview-menu .preview-close-btn-container {
border-radius: 8px !important;
overflow: hidden !important;
}
#uiGroup.br8 .showdesktop-button {
border-radius: 0 8px 8px 0 !important;
}
#uiGroup.br12 #dashtopanelPanel,
#uiGroup.br12 .show-apps,
#uiGroup.br12 .dtp-container,
#uiGroup.br12 .dtp-dots-container,
#uiGroup.br12 #preview-menu,
#uiGroup.br12 #preview-menu .preview-header-box,
#uiGroup.br12 #preview-menu .preview-container,
#uiGroup.br12 #preview-menu .preview-close-btn-container {
border-radius: 12px !important;
overflow: hidden !important;
}
#uiGroup.br12 .showdesktop-button {
border-radius: 0 12px 12px 0 !important;
}
#uiGroup.br16 #dashtopanelPanel,
#uiGroup.br16 .show-apps,
#uiGroup.br16 .dtp-container,
#uiGroup.br16 .dtp-dots-container,
#uiGroup.br16 #preview-menu,
#uiGroup.br16 #preview-menu .preview-header-box,
#uiGroup.br16 #preview-menu .preview-container,
#uiGroup.br16 #preview-menu .preview-close-btn-container {
border-radius: 16px !important;
overflow: hidden !important;
}
#uiGroup.br16 .showdesktop-button {
border-radius: 0 16px 16px 0 !important;
}
#uiGroup.br20 #dashtopanelPanel,
#uiGroup.br20 .show-apps,
#uiGroup.br20 .dtp-container,
#uiGroup.br20 .dtp-dots-container,
#uiGroup.br20 #preview-menu,
#uiGroup.br20 #preview-menu .preview-header-box,
#uiGroup.br20 #preview-menu .preview-container,
#uiGroup.br20 #preview-menu .preview-close-btn-container {
border-radius: 20px !important;
overflow: hidden !important;
}
#uiGroup.br20 .showdesktop-button {
border-radius: 0 20px 20px 0 !important;
}

View File

@@ -48,7 +48,6 @@ export const DynamicTransparency = class {
} }
updateExternalStyle() { updateExternalStyle() {
this._updateComplementaryStyles()
this._setBackground() this._setBackground()
} }
@@ -134,7 +133,6 @@ export const DynamicTransparency = class {
this._updateColor(themeBackground) this._updateColor(themeBackground)
this._updateAlpha(themeBackground) this._updateAlpha(themeBackground)
this._updateComplementaryStyles()
this._updateGradient() this._updateGradient()
this._setBackground() this._setBackground()
this._setGradient() this._setGradient()
@@ -155,13 +153,6 @@ export const DynamicTransparency = class {
this._setGradient() this._setGradient()
} }
_updateComplementaryStyles() {
let panelThemeNode = this._dtpPanel.panel.get_theme_node()
this._complementaryStyles =
'border-radius: ' + panelThemeNode.get_border_radius(0) + 'px;'
}
_updateColor(themeBackground) { _updateColor(themeBackground) {
this.backgroundColorRgb = SETTINGS.get_boolean('trans-use-custom-bg') this.backgroundColorRgb = SETTINGS.get_boolean('trans-use-custom-bg')
? SETTINGS.get_string('trans-bg-color') ? SETTINGS.get_string('trans-bg-color')
@@ -211,10 +202,7 @@ export const DynamicTransparency = class {
let transition = 'transition-duration:' + this.animationDuration let transition = 'transition-duration:' + this.animationDuration
this._dtpPanel.set_style( this._dtpPanel.set_style(
'background-color: ' + 'background-color: ' + this.currentBackgroundColor + transition,
this.currentBackgroundColor +
transition +
this._complementaryStyles,
) )
} }

View File

@@ -48,7 +48,7 @@
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Highlight AppIcon border radius</property> <property name="title" translatable="yes">Highlight AppIcon border radius</property>
<property name="subtitle" translatable="yes">(default is 0)</property> <property name="subtitle" translatable="yes">Overrides global border radius (default is 0)</property>
<child> <child>
<object class="GtkScale" id="highlight_appicon_borderradius"> <object class="GtkScale" id="highlight_appicon_borderradius">
<property name="width-request">300</property> <property name="width-request">300</property>

View File

@@ -1,144 +1,152 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version='1.0' encoding='UTF-8'?>
<interface> <interface>
<!-- interface-name SettingsStyle.ui -->
<requires lib="gtk" version="4.0"/> <requires lib="gtk" version="4.0"/>
<requires lib="libadwaita" version="1.6"/>
<object class="GtkAdjustment" id="appicon_margin_adjustment"> <object class="GtkAdjustment" id="appicon_margin_adjustment">
<property name="lower">0.33</property> <property name="lower">0.33</property>
<property name="page-increment">0.1</property>
<property name="step-increment">0.01</property>
<property name="upper">1</property> <property name="upper">1</property>
<property name="step_increment">0.01</property>
<property name="page_increment">0.1</property>
</object> </object>
<object class="GtkAdjustment" id="appicon_margin_todesktop_adjustment"> <object class="GtkAdjustment" id="appicon_margin_todesktop_adjustment">
<property name="lower">0.33</property> <property name="lower">0.33</property>
<property name="page-increment">0.1</property>
<property name="step-increment">0.01</property>
<property name="upper">1</property> <property name="upper">1</property>
<property name="step_increment">0.01</property>
<property name="page_increment">0.1</property>
</object> </object>
<object class="GtkAdjustment" id="appicon_margin_toscreenborder_adjustment"> <object class="GtkAdjustment" id="appicon_margin_toscreenborder_adjustment">
<property name="lower">0.33</property> <property name="lower">0.33</property>
<property name="page-increment">0.1</property>
<property name="step-increment">0.01</property>
<property name="upper">1</property> <property name="upper">1</property>
<property name="step_increment">0.01</property>
<property name="page_increment">0.1</property>
</object> </object>
<object class="GtkAdjustment" id="appicon_padding_adjustment"> <object class="GtkAdjustment" id="appicon_padding_adjustment">
<property name="lower">0.33</property> <property name="lower">0.33</property>
<property name="page-increment">0.1</property>
<property name="step-increment">0.01</property>
<property name="upper">1</property> <property name="upper">1</property>
<property name="step_increment">0.01</property>
<property name="page_increment">0.1</property>
</object> </object>
<object class="GtkAdjustment" id="trans_opacity_adjustment"> <object class="GtkAdjustment" id="trans_opacity_adjustment">
<property name="page-increment">10</property>
<property name="step-increment">5</property>
<property name="upper">100</property> <property name="upper">100</property>
<property name="step_increment">5</property>
<property name="page_increment">10</property>
</object> </object>
<object class="GtkAdjustment" id="trans_gradient_opacity1_adjustment"> <object class="GtkAdjustment" id="trans_gradient_opacity1_adjustment">
<property name="page-increment">10</property>
<property name="step-increment">5</property>
<property name="upper">100</property> <property name="upper">100</property>
<property name="step_increment">5</property>
<property name="page_increment">10</property>
</object> </object>
<object class="GtkAdjustment" id="trans_gradient_opacity2_adjustment"> <object class="GtkAdjustment" id="trans_gradient_opacity2_adjustment">
<property name="page-increment">10</property>
<property name="step-increment">5</property>
<property name="upper">100</property> <property name="upper">100</property>
<property name="step_increment">5</property>
<property name="page_increment">10</property>
</object> </object>
<object class="AdwPreferencesPage" id="style"> <object class="AdwPreferencesPage" id="style">
<property name="icon-name">applications-graphics-symbolic</property>
<property name="title" translatable="yes">Style</property> <property name="title" translatable="yes">Style</property>
<property name="icon_name">applications-graphics-symbolic</property> <child>
<object class="AdwPreferencesGroup" id="style_group_global">
<!-- group app icon style --> <property name="title" translatable="yes">Global style</property>
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes">Border radius</property>
<child>
<object class="GtkScale" id="global_border_radius_scale">
<property name="adjustment">global_border_radius_adjustment</property>
<property name="digits">0</property>
<property name="draw-value">True</property>
<property name="round-digits">0</property>
<property name="value-pos">right</property>
<property name="width-request">300</property>
<signal name="value-changed" handler="global_border_radius_scale_value_changed_cb"/>
</object>
</child>
</object>
</child>
</object>
</child>
<child> <child>
<object class="AdwPreferencesGroup" id="style_group_app_icon_style"> <object class="AdwPreferencesGroup" id="style_group_app_icon_style">
<property name="title" translatable="yes">AppIcon style</property> <property name="title" translatable="yes">AppIcon style</property>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">App Icon Margin</property>
<property name="subtitle" translatable="yes">(default is 8)</property> <property name="subtitle" translatable="yes">(default is 8)</property>
<property name="title" translatable="yes">App Icon Margin</property>
<child> <child>
<object class="GtkScale" id="appicon_margin_scale"> <object class="GtkScale" id="appicon_margin_scale">
<property name="width-request">300</property>
<property name="adjustment">appicon_margin_adjustment</property> <property name="adjustment">appicon_margin_adjustment</property>
<property name="round_digits">0</property>
<property name="digits">0</property> <property name="digits">0</property>
<property name="value_pos">right</property> <property name="draw-value">True</property>
<property name="draw_value">True</property> <property name="round-digits">0</property>
<property name="value-pos">right</property>
<property name="width-request">300</property>
<signal name="value-changed" handler="appicon_margin_scale_value_changed_cb"/> <signal name="value-changed" handler="appicon_margin_scale_value_changed_cb"/>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">App Icon Margin Towards Desktop</property>
<property name="subtitle" translatable="yes">(default is 0)</property> <property name="subtitle" translatable="yes">(default is 0)</property>
<property name="title" translatable="yes">App Icon Margin Towards Desktop</property>
<child> <child>
<object class="GtkScale" id="appicon_margin_todesktop_scale"> <object class="GtkScale" id="appicon_margin_todesktop_scale">
<property name="width-request">300</property>
<property name="adjustment">appicon_margin_todesktop_adjustment</property> <property name="adjustment">appicon_margin_todesktop_adjustment</property>
<property name="round_digits">0</property>
<property name="digits">0</property> <property name="digits">0</property>
<property name="value_pos">right</property> <property name="draw-value">True</property>
<property name="draw_value">True</property> <property name="round-digits">0</property>
<signal name="value-changed" handler="appicon_margin_todesktop_scale_value_changed_cb" swapped="no"/> <property name="value-pos">right</property>
<property name="width-request">300</property>
<signal name="value-changed" handler="appicon_margin_todesktop_scale_value_changed_cb"/>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">App Icon Margin Towards Screen Border</property>
<property name="subtitle" translatable="yes">(default is 0)</property> <property name="subtitle" translatable="yes">(default is 0)</property>
<property name="title" translatable="yes">App Icon Margin Towards Screen Border</property>
<child> <child>
<object class="GtkScale" id="appicon_margin_toscreenborder_scale"> <object class="GtkScale" id="appicon_margin_toscreenborder_scale">
<property name="width-request">300</property>
<property name="adjustment">appicon_margin_toscreenborder_adjustment</property> <property name="adjustment">appicon_margin_toscreenborder_adjustment</property>
<property name="round_digits">0</property>
<property name="digits">0</property> <property name="digits">0</property>
<property name="value_pos">right</property> <property name="draw-value">True</property>
<property name="draw_value">True</property> <property name="round-digits">0</property>
<signal name="value-changed" handler="appicon_margin_toscreenborder_scale_value_changed_cb" swapped="no"/> <property name="value-pos">right</property>
<property name="width-request">300</property>
<signal name="value-changed" handler="appicon_margin_toscreenborder_scale_value_changed_cb"/>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">App Icon Padding</property>
<property name="subtitle" translatable="yes">(default is 4)</property> <property name="subtitle" translatable="yes">(default is 4)</property>
<property name="title" translatable="yes">App Icon Padding</property>
<child> <child>
<object class="GtkScale" id="appicon_padding_scale"> <object class="GtkScale" id="appicon_padding_scale">
<property name="width-request">300</property>
<property name="adjustment">appicon_padding_adjustment</property> <property name="adjustment">appicon_padding_adjustment</property>
<property name="round_digits">0</property>
<property name="digits">0</property> <property name="digits">0</property>
<property name="value_pos">right</property> <property name="draw-value">True</property>
<property name="draw_value">True</property> <property name="round-digits">0</property>
<property name="value-pos">right</property>
<property name="width-request">300</property>
<signal name="value-changed" handler="appicon_padding_scale_value_changed_cb"/> <signal name="value-changed" handler="appicon_padding_scale_value_changed_cb"/>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Animate hovering app icons</property> <property name="title" translatable="yes">Animate hovering app icons</property>
<child> <child>
<object class="GtkButton" id="animate_appicon_hover_button"> <object class="GtkButton" id="animate_appicon_hover_button">
<property name="receives_default">True</property> <property name="receives-default">True</property>
<property name="valign">center</property> <property name="valign">center</property>
<child> <child>
<object class="GtkImage" id="animate_appicon_hover_options_image"> <object class="GtkImage" id="animate_appicon_hover_options_image">
<property name="icon_name">emblem-system-symbolic</property> <property name="icon-name">emblem-system-symbolic</property>
</object> </object>
</child> </child>
<style> <style>
@@ -153,17 +161,16 @@
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Highlight hovering app icons</property> <property name="title" translatable="yes">Highlight hovering app icons</property>
<child> <child>
<object class="GtkButton" id="highlight_appicon_hover_button"> <object class="GtkButton" id="highlight_appicon_hover_button">
<property name="receives_default">True</property> <property name="receives-default">True</property>
<property name="valign">center</property> <property name="valign">center</property>
<child> <child>
<object class="GtkImage" id="highlight_appicon_hover_options_image"> <object class="GtkImage" id="highlight_appicon_hover_options_image">
<property name="icon_name">emblem-system-symbolic</property> <property name="icon-name">emblem-system-symbolic</property>
</object> </object>
</child> </child>
<style> <style>
@@ -178,7 +185,6 @@
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Icon style</property> <property name="title" translatable="yes">Icon style</property>
@@ -196,12 +202,9 @@
</child> </child>
</object> </object>
</child> </child>
<!-- group running indicator -->
<child> <child>
<object class="AdwPreferencesGroup" id="style_group_running_indicator"> <object class="AdwPreferencesGroup" id="style_group_running_indicator">
<property name="title" translatable="yes">Running indicator</property> <property name="title" translatable="yes">Running indicator</property>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Running indicator position</property> <property name="title" translatable="yes">Running indicator position</property>
@@ -214,31 +217,30 @@
</child> </child>
<child> <child>
<object class="GtkToggleButton" id="dots_top_button"> <object class="GtkToggleButton" id="dots_top_button">
<property name="group">dots_bottom_button</property>
<property name="label" translatable="yes">Top</property> <property name="label" translatable="yes">Top</property>
<property name="valign">center</property> <property name="valign">center</property>
<property name="group">dots_bottom_button</property>
<signal name="toggled" handler="dots_top_button_toggled_cb"/> <signal name="toggled" handler="dots_top_button_toggled_cb"/>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkToggleButton" id="dots_left_button"> <object class="GtkToggleButton" id="dots_left_button">
<property name="group">dots_bottom_button</property>
<property name="label" translatable="yes">Left</property> <property name="label" translatable="yes">Left</property>
<property name="valign">center</property> <property name="valign">center</property>
<property name="group">dots_bottom_button</property>
<signal name="toggled" handler="dots_left_button_toggled_cb"/> <signal name="toggled" handler="dots_left_button_toggled_cb"/>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkToggleButton" id="dots_right_button"> <object class="GtkToggleButton" id="dots_right_button">
<property name="group">dots_bottom_button</property>
<property name="label" translatable="yes">Right</property> <property name="label" translatable="yes">Right</property>
<property name="valign">center</property> <property name="valign">center</property>
<property name="group">dots_bottom_button</property>
<signal name="toggled" handler="dots_right_button_toggled_cb"/> <signal name="toggled" handler="dots_right_button_toggled_cb"/>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Running indicator style (Focused app)</property> <property name="title" translatable="yes">Running indicator style (Focused app)</property>
@@ -247,7 +249,7 @@
<property name="valign">center</property> <property name="valign">center</property>
<child> <child>
<object class="GtkImage" id="dot_style_image"> <object class="GtkImage" id="dot_style_image">
<property name="icon_name">emblem-system-symbolic</property> <property name="icon-name">emblem-system-symbolic</property>
</object> </object>
</child> </child>
<style> <style>
@@ -271,7 +273,6 @@
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Running indicator style (Unfocused apps)</property> <property name="title" translatable="yes">Running indicator style (Unfocused apps)</property>
@@ -291,15 +292,11 @@
</child> </child>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<!-- group dynamic trans -->
<child> <child>
<object class="AdwPreferencesGroup" id="style_group_dynamic_trans"> <object class="AdwPreferencesGroup" id="style_group_dynamic_trans">
<property name="title" translatable="yes">Panel style</property> <property name="title" translatable="yes">Panel style</property>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Override panel theme background color</property> <property name="title" translatable="yes">Override panel theme background color</property>
@@ -315,11 +312,8 @@
</child> </child>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<!-- group dynamic trans2 -->
<child> <child>
<object class="AdwPreferencesGroup" id="style_group_dynamic_trans2"> <object class="AdwPreferencesGroup" id="style_group_dynamic_trans2">
<child> <child>
@@ -332,31 +326,29 @@
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow" id="trans_opacity_box"> <object class="AdwActionRow" id="trans_opacity_box">
<property name="title" translatable="yes">Panel background opacity (%)</property> <property name="title" translatable="yes">Panel background opacity (%)</property>
<child> <child>
<object class="GtkSpinButton" id="trans_opacity_spinbutton"> <object class="GtkSpinButton" id="trans_opacity_spinbutton">
<property name="valign">center</property>
<property name="text" translatable="yes">0</property>
<property name="adjustment">trans_opacity_adjustment</property> <property name="adjustment">trans_opacity_adjustment</property>
<property name="text" translatable="yes">0</property>
<property name="valign">center</property>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow" id="trans_opacity_box2"> <object class="AdwActionRow" id="trans_opacity_box2">
<property name="title" translatable="yes">Dynamic background opacity</property>
<property name="subtitle" translatable="yes">Change opacity when a window gets close to the panel</property> <property name="subtitle" translatable="yes">Change opacity when a window gets close to the panel</property>
<property name="title" translatable="yes">Dynamic background opacity</property>
<child> <child>
<object class="GtkButton" id="trans_dyn_options_button"> <object class="GtkButton" id="trans_dyn_options_button">
<property name="receives_default">True</property> <property name="receives-default">True</property>
<property name="valign">center</property> <property name="valign">center</property>
<child> <child>
<object class="GtkImage" id="image_trans_dyn_options"> <object class="GtkImage" id="image_trans_dyn_options">
<property name="icon_name">emblem-system-symbolic</property> <property name="icon-name">emblem-system-symbolic</property>
</object> </object>
</child> </child>
<style> <style>
@@ -371,14 +363,10 @@
</child> </child>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<!-- group dynamic trans3 -->
<child> <child>
<object class="AdwPreferencesGroup" id="style_group_dynamic_trans3"> <object class="AdwPreferencesGroup" id="style_group_dynamic_trans3">
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Override panel theme gradient</property> <property name="title" translatable="yes">Override panel theme gradient</property>
@@ -389,47 +377,49 @@
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow" id="trans_gradient_box"> <object class="AdwActionRow" id="trans_gradient_box">
<property name="title" translatable="yes">Gradient top color and opacity (%)</property> <property name="title" translatable="yes">Gradient top color and opacity (%)</property>
<child> <child>
<object class="GtkColorButton" id="trans_gradient_color1_colorbutton"> <object class="GtkColorButton" id="trans_gradient_color1_colorbutton">
<property name="receives_default">True</property> <property name="receives-default">True</property>
<property name="valign">center</property> <property name="valign">center</property>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkSpinButton" id="trans_gradient_color1_spinbutton"> <object class="GtkSpinButton" id="trans_gradient_color1_spinbutton">
<property name="valign">center</property>
<property name="text" translatable="yes">0</property>
<property name="adjustment">trans_gradient_opacity1_adjustment</property> <property name="adjustment">trans_gradient_opacity1_adjustment</property>
<property name="text" translatable="yes">0</property>
<property name="valign">center</property>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow" id="trans_gradient_box2"> <object class="AdwActionRow" id="trans_gradient_box2">
<property name="title" translatable="yes">Gradient bottom color and opacity (%)</property> <property name="title" translatable="yes">Gradient bottom color and opacity (%)</property>
<child> <child>
<object class="GtkColorButton" id="trans_gradient_color2_colorbutton"> <object class="GtkColorButton" id="trans_gradient_color2_colorbutton">
<property name="receives_default">True</property> <property name="receives-default">True</property>
<property name="valign">center</property> <property name="valign">center</property>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkSpinButton" id="trans_gradient_color2_spinbutton"> <object class="GtkSpinButton" id="trans_gradient_color2_spinbutton">
<property name="valign">center</property>
<property name="text" translatable="yes">0</property>
<property name="adjustment">trans_gradient_opacity2_adjustment</property> <property name="adjustment">trans_gradient_opacity2_adjustment</property>
<property name="text" translatable="yes">0</property>
<property name="valign">center</property>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
</object>
<object class="GtkAdjustment" id="global_border_radius_adjustment">
<property name="lower">0.33</property>
<property name="page-increment">0.1</property>
<property name="step-increment">0.01</property>
<property name="upper">1</property>
</object> </object>
</interface> </interface>