summaryrefslogtreecommitdiff
path: root/quickSettings.js
blob: d521811c64198ef0350a90efff2117148daad675 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Copyright 2010-2022 GNOME Shell contributors
// Copyright 2022 Simon McVittie
// SPDX-License-Identifier: GPL-2.0-or-later
//
// Adapted from gnome-shell js/ui/status/bluetooth.js

/* exported BluetoothToggleMenu */

const {GObject} = imports.gi;
const {QuickMenuToggle} = imports.ui.quickSettings;

var BluetoothToggleMenu = GObject.registerClass(
class BluetoothToggleMenu extends QuickMenuToggle {
    _init(originalBluetoothToggle) {
        super._init({label: originalBluetoothToggle.label});

        this._original = originalBluetoothToggle;
        this._client = this._original._client;

        this._original.bind_property('visible', this, 'visible',
            GObject.BindingFlags.SYNC_CREATE);
        this._original.bind_property('checked', this, 'checked',
            GObject.BindingFlags.SYNC_CREATE);
        this._original.bind_property('icon-name', this, 'icon-name',
            GObject.BindingFlags.SYNC_CREATE);

        this.connect('clicked', () => this._client.toggleActive());

        this.menu.setHeader('bluetooth-active-symbolic', originalBluetoothToggle.label);
    }
});