[gnome-shell/wip/paging] Creating new implementation of icongrid for spacing etc
- From: Carlos Soriano <csoriano src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/paging] Creating new implementation of icongrid for spacing etc
- Date: Tue, 2 Jul 2013 17:09:57 +0000 (UTC)
commit ee472576fce6558be728961e115effb19812cfe9
Author: Carlos Soriano <carlos soriano89 gmail com>
Date: Fri Jun 28 19:39:29 2013 +0200
Creating new implementation of icongrid for spacing etc
js/ui/appDisplay.js | 8 ++------
js/ui/iconGrid.js | 41 ++++++++++++++++++++++++++++++++---------
2 files changed, 34 insertions(+), 15 deletions(-)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index d5e86df..3d3795c 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -125,10 +125,9 @@ const FolderView = new Lang.Class({
_init: function() {
this._grid = new IconGrid.IconGrid({ xAlign: St.Align.MIDDLE,
columnLimit: MAX_COLUMNS });
-
this.actor = this._grid.actor;
// Standard hack for ClutterBinLayout
- this._grid.actor.x_expand = true;
+ //this._grid.actor.x_expand = true;
this._items = {};
this._allItems = [];
@@ -412,6 +411,7 @@ const PaginationScrollView = new Lang.Class({
},
addFolderPopup: function(popup) {
+ popup.actor.set_width(1100);
this._stack.add_actor(popup.actor);
popup.connect('open-state-changed', Lang.bind(this,
function(popup, isOpen) {
@@ -605,10 +605,6 @@ const AllView = new Lang.Class({
* Lang.bind(this, this._ensureIconVisible));
*/
},
-
- addFolderPopup: function(popup) {
- this._paginationView.addFolderPopup(popup);
- },
removeAll: function() {
this._paginationView._pages.removeAll();
diff --git a/js/ui/iconGrid.js b/js/ui/iconGrid.js
index 5d17788..6f32304 100644
--- a/js/ui/iconGrid.js
+++ b/js/ui/iconGrid.js
@@ -217,12 +217,18 @@ const IconGrid = new Lang.Class({
let nColumns = this._colLimit ? Math.min(this._colLimit,
children.length)
: children.length;
- let totalSpacing = Math.max(0, nColumns - 1) * this._spacing;
- // Kind of a lie, but not really an issue right now. If
- // we wanted to support some sort of hidden/overflow that would
- // need higher level design
- alloc.min_size = this._hItemSize;
- alloc.natural_size = nColumns * this._hItemSize + totalSpacing;
+ let spacing = this._spacing;
+ let totalSpacing = Math.max(0, nColumns - 1) * spacing;
+ if(this._parentSize && this._parentSize[0]) {
+ alloc.min_size = this._hItemSize;
+ alloc.natural_size = this._parentSize[0];
+ } else {
+ // Kind of a lie, but not really an issue right now. If
+ // we wanted to support some sort of hidden/overflow that would
+ // need higher level design
+ alloc.min_size = this._hItemSize;
+ alloc.natural_size = nColumns * this._hItemSize + totalSpacing;
+ }
},
_getVisibleChildren: function() {
@@ -258,7 +264,7 @@ const IconGrid = new Lang.Class({
let totalSpacing = Math.max(0, nRows - 1) * spacing;
let height = nRows * this._vItemSize + totalSpacing;
- if(this._usePagination) {
+ /*if(this._usePagination) {
this._spacePerRow = this._vItemSize + spacing;
this._rowsPerPage = Math.floor(this._parentSize[1] / this._spacePerRow);
@@ -269,7 +275,7 @@ const IconGrid = new Lang.Class({
alloc.min_size = this._rowsPerPage * this._spacePerRow * this._nPages + spaceBetweenPagesTotal;
alloc.natural_size = this._rowsPerPage * this._spacePerRow * this._nPages +
spaceBetweenPagesTotal;
return;
- }
+ }*/
alloc.min_size = height;
alloc.natural_size = height;
},
@@ -286,6 +292,10 @@ const IconGrid = new Lang.Class({
let availWidth = box.x2 - box.x1;
let availHeight = box.y2 - box.y1;
let [nColumns, usedWidth, spacing] = this._computeLayoutOld(availWidth);
+ this._computedSpacing = spacing;
+ if(this._fixedSpacing)
+ spacing = this._fixedSpacing;
+ this._usedWidth = usedWidth;
if(this._usePagination) {
//Recalculate the space between pages with the new spacing
this._spaceBetweenPages = this._parentSize[1] - (this._rowsPerPage * (this._vItemSize +
spacing));
@@ -409,11 +419,16 @@ const IconGrid = new Lang.Class({
let nColumns = 0;
let usedWidth = 0;
let spacing = this._spacing;
-
+ if(this._fixedSpacing) {
+ spacing = this._fixedSpacing;
+ }
if (this._colLimit) {
let itemWidth = this._hItemSize * this._colLimit;
let emptyArea = forWidth - itemWidth;
spacing = Math.max(this._spacing, emptyArea / (2 * this._colLimit));
+ if(this._fixedSpacing) {
+ spacing = this._fixedSpacing;
+ }
// We have to care that new spacing must not change number of rows per page.
if(this._usePagination) {
let spaceBetweenPages = this._parentSize[1] - (this._rowsPerPage * (this._vItemSize +
spacing));
@@ -519,5 +534,13 @@ const IconGrid = new Lang.Class({
}
let childBox = this._firstPagesItems[pageNumber].get_allocation_box();
return [childBox.x1, childBox.y1];
+ },
+
+ getComputedSpacing: function() {
+ return this._computedSpacing;
+ },
+
+ getUsedWidth: function() {
+ return this._usedWidth;
}
});
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]