Commit bd850c31 authored by Georges Basile Stavracas Neto's avatar Georges Basile Stavracas Neto Committed by Marge Bot

overviewControls: Split FaderControl from SlidingControl

The Dash will need only the fading aspect of SlidingControl in the
next commit.

Part-of: <!1559>
parent ea02aa39
......@@ -100,8 +100,57 @@ var SlideLayout = GObject.registerClass({
}
});
var FaderControl = GObject.registerClass(
class FaderControl extends St.Widget {
_init(params) {
super._init(params);
this._inDrag = false;
Main.overview.connect('item-drag-begin', this._onDragBegin.bind(this));
Main.overview.connect('item-drag-end', this._onDragEnd.bind(this));
Main.overview.connect('item-drag-cancelled', this._onDragEnd.bind(this));
Main.overview.connect('window-drag-begin', this._onWindowDragBegin.bind(this));
Main.overview.connect('window-drag-cancelled', this._onWindowDragEnd.bind(this));
Main.overview.connect('window-drag-end', this._onWindowDragEnd.bind(this));
}
_onWindowDragBegin() {
this._onDragBegin();
}
_onWindowDragEnd() {
this._onDragEnd();
}
_onDragBegin() {
this._inDrag = true;
}
_onDragEnd() {
this._inDrag = false;
}
fadeIn() {
this.ease({
opacity: 255,
duration: SIDE_CONTROLS_ANIMATION_TIME / 2,
mode: Clutter.AnimationMode.EASE_IN_QUAD,
});
}
fadeHalf() {
this.ease({
opacity: 128,
duration: SIDE_CONTROLS_ANIMATION_TIME / 2,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
});
}
});
var SlidingControl = GObject.registerClass(
class SlidingControl extends St.Widget {
class SlidingControl extends FaderControl {
_init(params) {
params = Params.parse(params, { slideDirection: SlideDirection.LEFT });
......@@ -114,17 +163,8 @@ class SlidingControl extends St.Widget {
});
this._visible = true;
this._inDrag = false;
Main.overview.connect('hiding', this._onOverviewHiding.bind(this));
Main.overview.connect('item-drag-begin', this._onDragBegin.bind(this));
Main.overview.connect('item-drag-end', this._onDragEnd.bind(this));
Main.overview.connect('item-drag-cancelled', this._onDragEnd.bind(this));
Main.overview.connect('window-drag-begin', this._onWindowDragBegin.bind(this));
Main.overview.connect('window-drag-cancelled', this._onWindowDragEnd.bind(this));
Main.overview.connect('window-drag-end', this._onWindowDragEnd.bind(this));
}
_getSlide() {
......@@ -183,41 +223,17 @@ class SlidingControl extends St.Widget {
this.slideOut();
}
_onWindowDragBegin() {
this._onDragBegin();
}
_onWindowDragEnd() {
this._onDragEnd();
}
_onDragBegin() {
this._inDrag = true;
super._onDragBegin();
this._updateTranslation();
this._updateSlide();
}
_onDragEnd() {
this._inDrag = false;
super._onDragEnd();
this._updateSlide();
}
fadeIn() {
this.ease({
opacity: 255,
duration: SIDE_CONTROLS_ANIMATION_TIME / 2,
mode: Clutter.AnimationMode.EASE_IN_QUAD,
});
}
fadeHalf() {
this.ease({
opacity: 128,
duration: SIDE_CONTROLS_ANIMATION_TIME / 2,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
});
}
slideIn() {
this._visible = true;
// we will update slide_x and the translation from pageEmpty
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment