[gnome-shell/wip/paging] test
- From: Carlos Soriano <csoriano src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/paging] test
- Date: Thu, 4 Jul 2013 12:55:10 +0000 (UTC)
commit 6a8d01b6091752272ff27dd0f6c762a4af04aae2
Author: Carlos Soriano <carlos soriano89 gmail com>
Date: Wed Jul 3 15:12:43 2013 +0200
test
js/ui/appDisplay.js | 33 ++++++++++++++++++++++-----------
js/ui/boxpointer.js | 1 +
js/ui/iconGrid.js | 1 +
3 files changed, 24 insertions(+), 11 deletions(-)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index 81052b8..b058f0e 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -125,7 +125,14 @@ const FolderView = new Lang.Class({
_init: function() {
this._grid = new IconGrid.IconGrid({ xAlign: St.Align.MIDDLE,
columnLimit: MAX_COLUMNS });
- this.actor = this._grid.actor;
+ this.actor = new St.ScrollView({x_expand: true, y_expand:true, y_fill: true, x_fill:true,
overlay_scrollbars: true});
+ this.actor.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
+ this._box = new St.BoxLayout({vertical:true});
+ this._widget = new St.Widget({x_expand: true, y_expand:true});
+
+ this._widget.add_actor(this._grid.actor);
+ this._box.add_actor(this._widget);
+ this.actor.add_actor(this._box);
// Standard hack for ClutterBinLayout
this._grid.actor.x_expand = true;
@@ -257,11 +264,14 @@ const AppPages = new Lang.Class({
const PaginationScrollView = new Lang.Class({
Name: 'PaginationScrollView',
- Extends: St.ScrollView,
+ Extends: St.Bin,
_init: function(parent, params) {
+ params['reactive'] = true;
this.parent(params);
- this.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.NEVER);
+ this._verticalAdjustment = new St.Adjustment();
+ this._horizontalAdjustment = new St.Adjustment();
+
this._stack = new St.Widget({layout_manager: new Clutter.BinLayout()});
this._box = new St.BoxLayout({vertical: true});
this._pages = new AppPages(this);
@@ -272,6 +282,7 @@ const PaginationScrollView = new Lang.Class({
this._stack.add_actor(this._eventBlocker, {x_align:St.Align.MIDDLE});
this._box.add_actor(this._stack);
+ this._box.set_adjustments(this._horizontalAdjustment, this._verticalAdjustment);
this.add_actor(this._box);
this._currentPage = 0;
@@ -318,13 +329,14 @@ const PaginationScrollView = new Lang.Class({
let availHeight = box.y2 - box.y1;
let childBox = new Clutter.ActorBox();
// Get the boxLayout inside scrollView
- let child = this.get_children()[2];
childBox.x1 = 0;
childBox.y1 = 0;
childBox.x2 = availWidth;
childBox.y2 = availHeight;
-
- child.allocate(childBox, flags);
+ this._box.allocate(childBox, flags);
+
+ this._verticalAdjustment.page_size = availHeight;
+ this._verticalAdjustment.upper = this._stack.height;
},
goToPage: function(pageNumber, action) {
@@ -359,7 +371,7 @@ const PaginationScrollView = new Lang.Class({
time: time,
transition: 'easeOutQuad'
};
- Tweener.addTween(this.vscroll.adjustment, params);
+ Tweener.addTween(this._verticalAdjustment, params);
}
},
@@ -372,7 +384,7 @@ const PaginationScrollView = new Lang.Class({
},
_diffToPage: function (pageNumber) {
- let currentScrollPosition = this.vscroll.adjustment.value;
+ let currentScrollPosition = this._verticalAdjustment.value;
return Math.abs(currentScrollPosition - this._pages._grid.getPagePosition(pageNumber)[1]);
},
@@ -434,7 +446,7 @@ const PaginationScrollView = new Lang.Class({
_onPan: function(action) {
this._clickAction.release();
let [dist, dx, dy] = action.get_motion_delta(0);
- let adjustment = this.vscroll.adjustment;
+ let adjustment = this._verticalAdjustment;
adjustment.value -= (dy / this.height) * adjustment.page_size;
return false;
},
@@ -550,8 +562,7 @@ const AllView = new Lang.Class({
this._paginationIndicatorLayout = new IndicatorLayout({orientation: Clutter.Orientation.VERTICAL});
this._paginationIndicatorLayout._nPages = 0;
- this._paginationIndicator = new St.Widget({ x_align:3, y_align: 2,
- style_class: 'pages-indicator',
+ this._paginationIndicator = new St.Widget({ style_class: 'pages-indicator',
y_expand:true});
this._paginationIndicator.set_layout_manager(this._paginationIndicatorLayout);
let layout = new Clutter.BinLayout();
diff --git a/js/ui/boxpointer.js b/js/ui/boxpointer.js
index 9f85e02..5a7d057 100644
--- a/js/ui/boxpointer.js
+++ b/js/ui/boxpointer.js
@@ -220,6 +220,7 @@ const BoxPointer = new Lang.Class({
}
this.bin.allocate(childBox, flags);
+ global.log("Box pointer alloc " + [availWidth, availHeight]);
if (this._sourceActor && this._sourceActor.mapped) {
this._reposition();
this._updateFlip();
diff --git a/js/ui/iconGrid.js b/js/ui/iconGrid.js
index 5651d6b..5f798e7 100644
--- a/js/ui/iconGrid.js
+++ b/js/ui/iconGrid.js
@@ -286,6 +286,7 @@ const IconGrid = new Lang.Class({
let children = this._getVisibleChildren();
let availWidth = box.x2 - box.x1;
let availHeight = box.y2 - box.y1;
+ global.log("Size " + [availWidth, availHeight]);
let [nColumns, usedWidth, spacing] = this._computeLayout(availWidth);
if(this._usePagination && spacing != this._computedSpacing) {
this._computedSpacing = spacing;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]