[gnome-shell-extensions] dock: Added hide-effect 'move'.
- From: Giovanni Campagna <gcampagna src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell-extensions] dock: Added hide-effect 'move'.
- Date: Fri, 18 Nov 2011 17:48:06 +0000 (UTC)
commit c6624e84b366932e40448d45457e6e691b5f1be1
Author: Stefan 'psYchotic' Zwanenburg <stefanhetzwaantje gmail com>
Date: Fri Oct 21 18:37:28 2011 +0200
dock: Added hide-effect 'move'.
This new hide-effect simply moves everything but 1*_spacing offscreen.
It's fairly similar to the 'rescale' effect.
extensions/dock/extension.js | 88 +++++++++++++++++++-
.../org.gnome.shell.extensions.dock.gschema.xml.in | 5 +-
2 files changed, 90 insertions(+), 3 deletions(-)
---
diff --git a/extensions/dock/extension.js b/extensions/dock/extension.js
index 968721c..838d7b2 100644
--- a/extensions/dock/extension.js
+++ b/extensions/dock/extension.js
@@ -45,7 +45,8 @@ const PositionMode = {
const AutoHideEffect = {
RESIZE: 0,
- RESCALE: 1
+ RESCALE: 1,
+ MOVE: 2
};
let position = PositionMode.RIGHT;
@@ -250,6 +251,82 @@ function showEffectAddItem_scale () {
});
}
+/**************************************************************************************/
+/**** start move Dock functions *****************/
+/**************************************************************************************/
+function hideDock_move () {
+ this._item_size = dockicon_size;
+ let monitor = Main.layoutManager.primaryMonitor;
+ let cornerX = 0;
+ let height = this._nicons*(this._item_size + this._spacing) + 2*this._spacing;
+ let width = this._item_size + 4*this._spacing;
+
+ switch (position) {
+ case PositionMode.LEFT:
+ cornerX= monitor.x - width + this._spacing;
+ break;
+ case PositionMode.RIGHT:
+ default:
+ cornerX = monitor.x + monitor.width - this._spacing;
+ }
+
+ if (hideable) {
+ Tweener.addTween(this.actor,{
+ x: cornerX,
+ y: monitor.y + (monitor.height - height)/2,
+ width: width,
+ height: height,
+ time: autohide_animation_time,
+ transition: 'easeOutQuad'
+ });
+ hideDock=true;
+ }
+}
+
+function showDock_move () {
+ this._item_size = dockicon_size;
+ let monitor = Main.layoutManager.primaryMonitor;
+ let position_x = monitor.x;
+ let height = this._nicons*(this._item_size + this._spacing) + 2*this._spacing;
+ let width = this._item_size + 4*this._spacing;
+
+ switch (position) {
+ case PositionMode.LEFT:
+ position_x=monitor.x - 2*this._spacing;
+ break;
+ case PositionMode.RIGHT:
+ default:
+ position_x=monitor.x + (monitor.width-this._item_size-2*this._spacing);
+ }
+ Tweener.addTween(this.actor, {
+ x: position_x,
+ y: monitor.y + (monitor.height - height)/2,
+ width: width,
+ height: height,
+ time: autohide_animation_time,
+ transition: 'easeOutQuad'
+ });
+ hideDock=false;
+}
+
+function initShowDock_move () {
+ this._showDock();
+}
+
+function showEffectAddItem_move () {
+ let monitor = Main.layoutManager.primaryMonitor;
+ let height = this._nicons*(this._item_size + this._spacing) + 2*this._spacing;
+ let width = this._item_size + 4*this._spacing;
+
+ Tweener.addTween(this.actor, {
+ y: monitor.y + (monitor.height-height)/2,
+ height: height,
+ width: width,
+ time: autohide_animation_time,
+ transition: 'easeOutQuad'
+ });
+}
+
function Dock() {
this._init();
}
@@ -350,6 +427,9 @@ Dock.prototype = {
break;
case AutoHideEffect.RESIZE:
this.actor.set_scale (1,1);
+ break;
+ case AutoHideEffect.MOVE:
+ ;
}
this.actor.disconnect(this._leave_event);
this.actor.disconnect(this._enter_event);
@@ -425,6 +505,12 @@ Dock.prototype = {
this._initShowDock = initShowDock_scale;
this._showEffectAddItem = showEffectAddItem_scale;
break;
+ case AutoHideEffect.MOVE:
+ this._hideDock = hideDock_move;
+ this._showDock = showDock_move;
+ this._initShowDock = initShowDock_move;
+ this._showEffectAddItem = showEffectAddItem_move;
+ break;
case AutoHideEffect.RESIZE:
default:
this._hideDock = hideDock_size;
diff --git a/extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in b/extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in
index 42fce8b..351c9a7 100644
--- a/extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in
+++ b/extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in
@@ -3,9 +3,10 @@
<value nick='left' value='0'/>
<value nick='right' value='1'/>
</enum>
- <enum id='org.gnome.shell.extensions.dock.AutoHideEfect'>
+ <enum id='org.gnome.shell.extensions.dock.AutoHideEffect'>
<value nick='resize' value='0'/>
<value nick='rescale' value='1'/>
+ <value nick='move' value='2'/>
</enum>
<schema id="org.gnome.shell.extensions.dock" path="/org/gnome/shell/extensions/dock/">
@@ -23,7 +24,7 @@
<default>true</default>
<_summary>Enable/disable autohide</_summary>
</key>
- <key name="hide-effect" enum="org.gnome.shell.extensions.dock.AutoHideEfect">
+ <key name="hide-effect" enum="org.gnome.shell.extensions.dock.AutoHideEffect">
<default>'resize'</default>
<_summary>Autohide effect</_summary>
<_description>Sets the effect of the hide dock. Allowed values are 'resize' or 'rescale'</_description>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]