status: Put arrow icons next to the separate status indicators
This is to indicate that it has a pulldown menu. This is a part of the new system status design, see https://wiki.gnome.org/GnomeShell/Design/Guidelines/SystemStatus/ for design details. https://bugzilla.gnome.org/show_bug.cgi?id=705845
This commit is contained in:
parent
a45cc0a048
commit
a347f02545
@ -614,7 +614,8 @@ StScrollBar StButton#vhandle:active {
|
|||||||
-boxpointer-gap: 4px;
|
-boxpointer-gap: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.panel-status-button-box {
|
.panel-status-button-box,
|
||||||
|
.panel-status-menu-box {
|
||||||
spacing: 4px;
|
spacing: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -208,12 +208,14 @@ const AppMenuButton = new Lang.Class({
|
|||||||
Lang.bind(this, this._updateIconBoxClip));
|
Lang.bind(this, this._updateIconBoxClip));
|
||||||
this._container.add_actor(this._iconBox);
|
this._container.add_actor(this._iconBox);
|
||||||
|
|
||||||
this._hbox = new St.BoxLayout();
|
this._hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
|
||||||
this._container.add_actor(this._hbox);
|
this._container.add_actor(this._hbox);
|
||||||
|
|
||||||
this._label = new TextShadower();
|
this._label = new TextShadower();
|
||||||
this._label.actor.y_align = Clutter.ActorAlign.CENTER;
|
this._label.actor.y_align = Clutter.ActorAlign.CENTER;
|
||||||
this._hbox.add_actor(this._label.actor);
|
this._hbox.add_actor(this._label.actor);
|
||||||
|
this._arrow = new St.Label({ text: '\u25BE' });
|
||||||
|
this._hbox.add_actor(this._arrow);
|
||||||
|
|
||||||
this._iconBottomClip = 0;
|
this._iconBottomClip = 0;
|
||||||
|
|
||||||
@ -500,6 +502,7 @@ const AppMenuButton = new Lang.Class({
|
|||||||
if (this._iconBox.child != null)
|
if (this._iconBox.child != null)
|
||||||
this._iconBox.child.destroy();
|
this._iconBox.child.destroy();
|
||||||
this._iconBox.hide();
|
this._iconBox.hide();
|
||||||
|
this._arrow.hide();
|
||||||
this._label.setText('');
|
this._label.setText('');
|
||||||
|
|
||||||
if (this._appMenuNotifyId)
|
if (this._appMenuNotifyId)
|
||||||
@ -519,6 +522,7 @@ const AppMenuButton = new Lang.Class({
|
|||||||
this.setName(targetApp.get_name());
|
this.setName(targetApp.get_name());
|
||||||
|
|
||||||
this._syncIcon();
|
this._syncIcon();
|
||||||
|
this._arrow.show();
|
||||||
this._iconBox.show();
|
this._iconBox.show();
|
||||||
|
|
||||||
if (targetApp.get_state() == Shell.AppState.STARTING ||
|
if (targetApp.get_state() == Shell.AppState.STARTING ||
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
const Gio = imports.gi.Gio;
|
const Gio = imports.gi.Gio;
|
||||||
const Lang = imports.lang;
|
const Lang = imports.lang;
|
||||||
const Mainloop = imports.mainloop;
|
const Mainloop = imports.mainloop;
|
||||||
|
const St = imports.gi.St;
|
||||||
|
|
||||||
const PanelMenu = imports.ui.panelMenu;
|
const PanelMenu = imports.ui.panelMenu;
|
||||||
const PopupMenu = imports.ui.popupMenu;
|
const PopupMenu = imports.ui.popupMenu;
|
||||||
@ -30,10 +31,17 @@ const HIGH_CONTRAST_THEME = 'HighContrast';
|
|||||||
|
|
||||||
const ATIndicator = new Lang.Class({
|
const ATIndicator = new Lang.Class({
|
||||||
Name: 'ATIndicator',
|
Name: 'ATIndicator',
|
||||||
Extends: PanelMenu.SystemStatusButton,
|
Extends: PanelMenu.Button,
|
||||||
|
|
||||||
_init: function() {
|
_init: function() {
|
||||||
this.parent('preferences-desktop-accessibility-symbolic', _("Accessibility"));
|
this.parent(0.0, _("Accessibility"));
|
||||||
|
|
||||||
|
this._hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
|
||||||
|
this._hbox.add_child(new St.Icon({ style_class: 'system-status-icon',
|
||||||
|
icon_name: 'preferences-desktop-accessibility-symbolic' }));
|
||||||
|
this._hbox.add_child(new St.Label({ text: '\u25BE' }));
|
||||||
|
|
||||||
|
this.actor.add_child(this._hbox);
|
||||||
|
|
||||||
let highContrast = this._buildHCItem();
|
let highContrast = this._buildHCItem();
|
||||||
this.menu.addMenuItem(highContrast);
|
this.menu.addMenuItem(highContrast);
|
||||||
|
@ -337,7 +337,12 @@ const InputSourceIndicator = new Lang.Class({
|
|||||||
this._container.connect('get-preferred-width', Lang.bind(this, this._containerGetPreferredWidth));
|
this._container.connect('get-preferred-width', Lang.bind(this, this._containerGetPreferredWidth));
|
||||||
this._container.connect('get-preferred-height', Lang.bind(this, this._containerGetPreferredHeight));
|
this._container.connect('get-preferred-height', Lang.bind(this, this._containerGetPreferredHeight));
|
||||||
this._container.connect('allocate', Lang.bind(this, this._containerAllocate));
|
this._container.connect('allocate', Lang.bind(this, this._containerAllocate));
|
||||||
this.actor.add_actor(this._container);
|
|
||||||
|
this._hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
|
||||||
|
this._hbox.add_child(this._container);
|
||||||
|
this._hbox.add_child(new St.Label({ text: '\u25BE' }));
|
||||||
|
|
||||||
|
this.actor.add(this._hbox, { y_expand: true });
|
||||||
this.actor.add_style_class_name('panel-status-button');
|
this.actor.add_style_class_name('panel-status-button');
|
||||||
|
|
||||||
// All valid input sources currently in the gsettings
|
// All valid input sources currently in the gsettings
|
||||||
|
Loading…
x
Reference in New Issue
Block a user