[gnome-shell/wip/paging-release: 18/85] No more hacking to Indicator
- From: Carlos Soriano <csoriano src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/wip/paging-release: 18/85] No more hacking to Indicator
- Date: Mon, 12 Aug 2013 15:59:52 +0000 (UTC)
commit cb54b9f6d4d5fdf64c34e19b9ae84aac69e3fbea
Author: Carlos Soriano <carlos soriano89 gmail com>
Date: Tue Jul 2 21:14:16 2013 +0200
No more hacking to Indicator
js/ui/appDisplay.js | 77 +++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 63 insertions(+), 14 deletions(-)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index c6aa2ce..066a34a 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -302,6 +302,46 @@ const PaginationScrollView = new Lang.Class({
}));
this._eventBlocker.add_action(this._clickAction);
},
+
+ /* vfunc_get_preferred_height: function (forWidht) {
+ global.log(this.get_parent().allocation.y2 - this.get_parent().allocation.y1);
+
+ let parentBox = this.get_parent().allocation;
+ let gridBox = this.get_theme_node().get_content_box(parentBox);
+ global.log("padding " + this.get_theme_node().get_length('padding'));
+ let availWidth = gridBox.x2 - gridBox.x1;
+ let availHeight = gridBox.y2 - gridBox.y1;
+ global.log("availWidth " + availWidth);
+
+ global.log("availHeight " + availHeight);
+
+ return [availHeight, availHeight];
+ },
+
+ /*vfunc_get_preferred_width: function(forHeight) {
+ let parentBox = this.get_parent().allocation;
+ let gridBox = this.get_theme_node().get_content_box(parentBox);
+ global.log("padding " + this.get_theme_node().get_length('padding'));
+ let availWidth = gridBox.x2 - gridBox.x1;
+ let availHeight = gridBox.y2 - gridBox.y1;
+ return [availWidth, availWidth];
+ },
+ /*
+ vfunc_allocate: function(box, flags) {
+ box = this.get_parent().allocation;
+ this.set_allocation(box, flags);
+ let availWidth = box.x2 - box.x1;
+ 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);
+ },*/
goToPage: function(pageNumber, action) {
let velocity;
@@ -479,7 +519,7 @@ const IndicatorLayout = Lang.Class({
vfunc_allocate: function(container, box, flags) {
let children = container.get_children();
- if(!this._nPages || this._nPages < 2)
+ if(children.length < 1)
return;
let availHeight = box.y2 - box.y1;
let availWidth = box.x2 - box.x1;
@@ -516,25 +556,21 @@ const AllView = new Lang.Class({
Name: 'AllView',
_init: function() {
- this._paginationView = new PaginationScrollView(this, {style_class: 'all-apps'});
+ let paginationScrollViewParams = {style_class: 'all-apps'};
+ this._paginationView = new PaginationScrollView(this, paginationScrollViewParams);
- this._paginationIndicatorLayout = new IndicatorLayout({ orientation: Clutter.Orientation.VERTICAL });
+ this._paginationIndicatorLayout = new IndicatorLayout({orientation: Clutter.Orientation.VERTICAL});
this._paginationIndicatorLayout._nPages = 0;
- this._paginationIndicator = new St.Widget({ style_class: 'pages-indicator' });
+ this._paginationIndicator = new St.Widget({ x_align:3, y_align: 2,
+ style_class: 'pages-indicator' });
this._paginationIndicator.set_layout_manager(this._paginationIndicatorLayout);
let layout = new Clutter.BinLayout();
- this.actor = new Shell.GenericContainer({ layout_manager: layout });
+ this.actor = new Shell.GenericContainer({ layout_manager: layout,
+ x_expand:true, y_expand:true });
layout.add(this._paginationView, 2,2);
layout.add(this._paginationIndicator, 3,2);
- for(let i = 0; i < MAX_APPS_PAGES; i++) {
- let indicatorIcon = new PaginationIconIndicator(this, i);
- if(i == 0) {
- indicatorIcon.setChecked(true);
- }
- this._paginationIndicator.add_actor(indicatorIcon.actor);
- }
this.actor.connect('allocate', Lang.bind(this, this._allocate));
this._paginationView._pages._grid.connect('n-pages-changed', Lang.bind(this, this._updatedNPages));
},
@@ -550,13 +586,26 @@ const AllView = new Lang.Class({
childBox.x2 = availWidth;
childBox.y1 = 0;
childBox.y2 = availHeight;
- this._paginationIndicator.allocate(childBox, flags);
+
+ if(this._paginationIndicatorLayout._nPages && this._paginationIndicatorLayout._nPages > 1)
+ this._paginationIndicator.allocate(childBox, flags);
+
},
_updatedNPages: function(iconGrid, nPages) {
// We don't need a relayout because we already done it at iconGrid
- // when pages are calculated (and then the signal is emitted before that
+ // when pages are calculated (and then the signal is emitted before that)
+ this._paginationIndicator.destroy_all_children();
this._paginationIndicatorLayout._nPages = nPages;
+ if(nPages < 2)
+ return;
+ for(let i = 0; i < nPages; i++) {
+ let indicatorIcon = new PaginationIconIndicator(this, i);
+ if(i == 0) {
+ indicatorIcon.setChecked(true);
+ }
+ this._paginationIndicator.add_child(indicatorIcon.actor);
+ }
},
_onKeyRelease: function(actor, event) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]