padOsd: Move button/ring/strip label creation to PadDiagram
It's the natural container of those. We can create all those labels internally, and only expose the updateLabels() method to update them wholesome. https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1290
This commit is contained in:
parent
b5591fef10
commit
b0a12fee51
@ -329,6 +329,7 @@ var PadDiagram = GObject.registerClass({
|
|||||||
|
|
||||||
this._imagePath = imagePath;
|
this._imagePath = imagePath;
|
||||||
this._handle = this._composeStyledDiagram();
|
this._handle = this._composeStyledDiagram();
|
||||||
|
this._initLabels();
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line camelcase
|
// eslint-disable-next-line camelcase
|
||||||
@ -343,6 +344,33 @@ var PadDiagram = GObject.registerClass({
|
|||||||
this.add_actor(actor);
|
this.add_actor(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_initLabels() {
|
||||||
|
// FIXME: Fix num buttons.
|
||||||
|
let i = 0;
|
||||||
|
for (i = 0; i < 50; i++) {
|
||||||
|
let [found] = this.getButtonLabelCoords(i);
|
||||||
|
if (!found)
|
||||||
|
break;
|
||||||
|
this._addLabel(Meta.PadActionType.BUTTON, i);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < 2; i++) {
|
||||||
|
let [found] = this.getRingLabelCoords(i, CW);
|
||||||
|
if (!found)
|
||||||
|
break;
|
||||||
|
this._addLabel(Meta.PadActionType.RING, i, CW);
|
||||||
|
this._addLabel(Meta.PadActionType.RING, i, CCW);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < 2; i++) {
|
||||||
|
let [found] = this.getStripLabelCoords(i, UP);
|
||||||
|
if (!found)
|
||||||
|
break;
|
||||||
|
this._addLabel(Meta.PadActionType.STRIP, i, UP);
|
||||||
|
this._addLabel(Meta.PadActionType.STRIP, i, DOWN);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
_wrappingSvgHeader() {
|
_wrappingSvgHeader() {
|
||||||
return '<?xml version="1.0" encoding="UTF-8" standalone="no"?>' +
|
return '<?xml version="1.0" encoding="UTF-8" standalone="no"?>' +
|
||||||
'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" ' +
|
'<svg version="1.1" xmlns="http://www.w3.org/2000/svg" ' +
|
||||||
@ -557,7 +585,8 @@ var PadDiagram = GObject.registerClass({
|
|||||||
this._invalidateSvg();
|
this._invalidateSvg();
|
||||||
}
|
}
|
||||||
|
|
||||||
addLabel(label, type, idx, dir) {
|
_addLabel(type, idx, dir) {
|
||||||
|
let label = new St.Label();
|
||||||
this._labels.push([label, type, idx, dir]);
|
this._labels.push([label, type, idx, dir]);
|
||||||
this.add_actor(label);
|
this.add_actor(label);
|
||||||
}
|
}
|
||||||
@ -711,31 +740,7 @@ var PadOsd = GObject.registerClass({
|
|||||||
x_expand: true,
|
x_expand: true,
|
||||||
y_expand: true });
|
y_expand: true });
|
||||||
this.add_actor(this._padDiagram);
|
this.add_actor(this._padDiagram);
|
||||||
|
this._updateActionLabels();
|
||||||
// FIXME: Fix num buttons.
|
|
||||||
let i = 0;
|
|
||||||
for (i = 0; i < 50; i++) {
|
|
||||||
let [found] = this._padDiagram.getButtonLabelCoords(i);
|
|
||||||
if (!found)
|
|
||||||
break;
|
|
||||||
this._createLabel(Meta.PadActionType.BUTTON, i);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < padDevice.get_n_rings(); i++) {
|
|
||||||
let [found] = this._padDiagram.getRingLabelCoords(i, CW);
|
|
||||||
if (!found)
|
|
||||||
break;
|
|
||||||
this._createLabel(Meta.PadActionType.RING, i, CW);
|
|
||||||
this._createLabel(Meta.PadActionType.RING, i, CCW);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < padDevice.get_n_strips(); i++) {
|
|
||||||
let [found] = this._padDiagram.getStripLabelCoords(i, UP);
|
|
||||||
if (!found)
|
|
||||||
break;
|
|
||||||
this._createLabel(Meta.PadActionType.STRIP, i, UP);
|
|
||||||
this._createLabel(Meta.PadActionType.STRIP, i, DOWN);
|
|
||||||
}
|
|
||||||
|
|
||||||
let buttonBox = new St.Widget({ layout_manager: new Clutter.BinLayout(),
|
let buttonBox = new St.Widget({ layout_manager: new Clutter.BinLayout(),
|
||||||
x_expand: true,
|
x_expand: true,
|
||||||
@ -788,11 +793,6 @@ var PadOsd = GObject.registerClass({
|
|||||||
return str ? str : _("None");
|
return str ? str : _("None");
|
||||||
}
|
}
|
||||||
|
|
||||||
_createLabel(type, number, dir) {
|
|
||||||
let label = new St.Label({ text: this._getActionText(type, number) });
|
|
||||||
this._padDiagram.addLabel(label, type, number, dir);
|
|
||||||
}
|
|
||||||
|
|
||||||
_updateActionLabels() {
|
_updateActionLabels() {
|
||||||
this._padDiagram.updateLabels(this._getActionText.bind(this));
|
this._padDiagram.updateLabels(this._getActionText.bind(this));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user