350cd296fa
These have been long deprecated over in clutter, and (via several vtables) simply forward the call to the equivalent ClutterActor methods Save ourselves the hassle and just use ClutterActor methods directly Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3010>
44 lines
1.2 KiB
JavaScript
44 lines
1.2 KiB
JavaScript
import Atk from 'gi://Atk';
|
|
import Clutter from 'gi://Clutter';
|
|
import GObject from 'gi://GObject';
|
|
import Pango from 'gi://Pango';
|
|
import St from 'gi://St';
|
|
|
|
export const CheckBox = GObject.registerClass(
|
|
class CheckBox extends St.Button {
|
|
_init(label) {
|
|
let container = new St.BoxLayout({
|
|
x_expand: true,
|
|
y_expand: true,
|
|
});
|
|
super._init({
|
|
style_class: 'check-box',
|
|
child: container,
|
|
button_mask: St.ButtonMask.ONE,
|
|
toggle_mode: true,
|
|
can_focus: true,
|
|
});
|
|
this.set_accessible_role(Atk.Role.CHECK_BOX);
|
|
|
|
this._box = new St.Bin({y_align: Clutter.ActorAlign.START});
|
|
container.add_child(this._box);
|
|
|
|
this._label = new St.Label({y_align: Clutter.ActorAlign.CENTER});
|
|
this._label.clutter_text.set_line_wrap(true);
|
|
this._label.clutter_text.set_ellipsize(Pango.EllipsizeMode.NONE);
|
|
this.set_label_actor(this._label);
|
|
container.add_child(this._label);
|
|
|
|
if (label)
|
|
this.setLabel(label);
|
|
}
|
|
|
|
setLabel(label) {
|
|
this._label.set_text(label);
|
|
}
|
|
|
|
getLabelActor() {
|
|
return this._label;
|
|
}
|
|
});
|