[gnome-shell/overlay-design02] Split out separate AppResults, DocResults classes. Readd search as stub.
- From: Marina Zhurakhinskaya <marinaz src gnome org>
- To: svn-commits-list gnome org
- Subject: [gnome-shell/overlay-design02] Split out separate AppResults, DocResults classes. Readd search as stub.
- Date: Wed, 17 Jun 2009 18:14:29 -0400 (EDT)
commit d3cb8e5b217207f4f4bacf28896a4fc5248ec959
Author: Colin Walters <walters verbum org>
Date: Wed Jun 17 13:25:07 2009 -0400
Split out separate AppResults, DocResults classes. Readd search as stub.
Avoid bloating the Dash class by separating out a bit more functionality.
js/ui/overlay.js | 116 +++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 80 insertions(+), 36 deletions(-)
---
diff --git a/js/ui/overlay.js b/js/ui/overlay.js
index 1521d88..53b8daa 100644
--- a/js/ui/overlay.js
+++ b/js/ui/overlay.js
@@ -150,6 +150,50 @@ SearchEntry.prototype = {
}
};
+function AppResults(displayWidth, resultsHeight) {
+ this._init(displayWidth, resultsHeight);
+}
+
+AppResults.prototype = {
+ _init: function(displayWidth, resultsHeight) {
+ this.actor = new Big.Box({ height: resultsHeight,
+ padding: DASH_SECTION_PADDING + DASH_BORDER_WIDTH,
+ spacing: DASH_SECTION_SPACING });
+
+ let height = resultsHeight - LABEL_HEIGHT - GenericDisplay.LABEL_HEIGHT - DASH_SECTION_SPACING * 2 - DASH_SECTION_PADDING * 2;
+ this.display = new AppDisplay.AppDisplay(displayWidth, height, DASH_COLUMNS, DASH_PAD);
+
+ this.actor.append(this.display.actor, Big.BoxPackFlags.EXPAND);
+
+ let controlBox = new Big.Box({ x_align: Big.BoxAlignment.CENTER });
+ controlBox.append(this.display.displayControl, Big.BoxPackFlags.NONE);
+
+ this.actor.append(controlBox, Big.BoxPackFlags.END);
+ }
+}
+
+function DocResults(displayWidth, resultsHeight) {
+ this._init(displayWidth, resultsHeight);
+}
+
+DocResults.prototype = {
+ _init: function(displayWidth, resultsHeight) {
+ this.actor = new Big.Box({ height: resultsHeight,
+ padding: DASH_SECTION_PADDING + DASH_BORDER_WIDTH,
+ spacing: DASH_SECTION_SPACING });
+
+ let height = resultsHeight - LABEL_HEIGHT - GenericDisplay.LABEL_HEIGHT - DASH_SECTION_SPACING * 2 - DASH_SECTION_PADDING * 2;
+ this.display = new DocDisplay.DocDisplay(displayWidth, height, DASH_COLUMNS, DASH_PAD);
+
+ this.actor.append(this.display.actor, Big.BoxPackFlags.EXPAND);
+
+ let controlBox = new Big.Box({ x_align: Big.BoxAlignment.CENTER });
+ controlBox.append(this.display.displayControl, Big.BoxPackFlags.NONE);
+
+ this.actor.append(controlBox, Big.BoxPackFlags.END);
+ }
+}
+
function Dash() {
this._init();
}
@@ -208,10 +252,19 @@ Dash.prototype = {
this.actor.add_actor(dashPane);
+ this._searchEntry = new SearchEntry(this._width);
+ this.actor.add_actor(this._searchEntry.actor);
+ this._searchEntry.actor.set_position(DASH_PAD, Panel.PANEL_HEIGHT + DASH_PAD);
+
+ this._appsText = new Clutter.Text({ color: DASH_TEXT_COLOR,
+ font_name: "Sans Bold 14px",
+ text: "Applications",
+ height: LABEL_HEIGHT});
this._appsSection = new Big.Box({ x: DASH_PAD,
- y: Panel.PANEL_HEIGHT + DASH_PAD,
+ y: this._searchEntry.actor.y + this._searchEntry.actor.height + DASH_PAD,
padding_top: DASH_SECTION_PADDING,
spacing: DASH_SECTION_SPACING});
+ this._appsSection.append(this._appsText, Big.BoxPackFlags.EXPAND);
this._itemDisplayHeight = global.screen_height - this._appsSection.y - DASH_SECTION_MISC_HEIGHT * 2 - bottomHeight;
@@ -261,26 +314,9 @@ Dash.prototype = {
this._docsSectionDefaultHeight = this._docsSection.height;
- // Prepare docs display for the results pane.
- this._resultsDocsSection = new Big.Box({ height: resultsHeight,
- padding: DASH_SECTION_PADDING + DASH_BORDER_WIDTH,
- spacing: DASH_SECTION_SPACING });
-
- this._resultsDocsText = new Clutter.Text({ color: DASH_TEXT_COLOR,
- font_name: "Sans Bold 14px",
- text: "Recent Documents",
- height: LABEL_HEIGHT });
- this._resultsDocsSection.append(this._resultsDocsText, Big.BoxPackFlags.EXPAND);
-
- let resultsDocDisplayHeight = resultsHeight - LABEL_HEIGHT - GenericDisplay.LABEL_HEIGHT - DASH_SECTION_SPACING * 2 - DASH_SECTION_PADDING * 2;
- this._resultsDocDisplay = new DocDisplay.DocDisplay(this._displayWidth, resultsDocDisplayHeight, DASH_COLUMNS, DASH_PAD);
-
- this._resultsDocsSection.append(this._resultsDocDisplay.actor, Big.BoxPackFlags.EXPAND);
-
- this._resultsDocsDisplayControlBox = new Big.Box({ x_align: Big.BoxAlignment.CENTER });
- this._resultsDocsDisplayControlBox.append(this._resultsDocDisplay.displayControl, Big.BoxPackFlags.NONE);
-
- this._resultsDocsSection.append(this._resultsDocsDisplayControlBox, Big.BoxPackFlags.END);
+ // The "more"/result area
+ this._resultsAppsSection = new AppResults(this._displayWidth, resultsHeight);
+ this._resultsDocsSection = new DocResults(this._displayWidth, resultsHeight);
this._resultsPane = new Big.Box({ orientation: Big.BoxOrientation.HORIZONTAL,
x: this._width,
@@ -349,7 +385,8 @@ Dash.prototype = {
let itemDetailsAvailableHeight = detailsHeight - DASH_SECTION_PADDING * 2 - DASH_BORDER_WIDTH * 2;
this._docDisplay.setAvailableDimensionsForItemDetails(itemDetailsAvailableWidth, itemDetailsAvailableHeight);
- this._resultsDocDisplay.setAvailableDimensionsForItemDetails(itemDetailsAvailableWidth, itemDetailsAvailableHeight);
+ this._resultsAppsSection.display.setAvailableDimensionsForItemDetails(itemDetailsAvailableWidth, itemDetailsAvailableHeight);
+ this._resultsDocsSection.display.setAvailableDimensionsForItemDetails(itemDetailsAvailableWidth, itemDetailsAvailableHeight);
/* Proxy the activated signals */
this._appDisplay.connect('activated', function(appDisplay) {
@@ -364,8 +401,8 @@ Dash.prototype = {
// no item in the doc display has the selection.
me._docDisplay.unsetSelected();
me._docDisplay.hidePreview();
- me._resultsDocDisplay.unsetSelected();
- me._resultsDocDisplay.hidePreview();
+ me._resultsDocsSection.display.unsetSelected();
+ me._resultsDocsSection.display.hidePreview();
});
this._docDisplay.connect('selected', function(docDisplay) {
// We allow clicking on any item to select it, so if an
@@ -373,8 +410,8 @@ Dash.prototype = {
// no item in the app display has the selection.
me._appDisplay.unsetSelected();
me._appDisplay.hidePreview();
- me._resultsDocDisplay.unsetSelected();
- me._resultsDocDisplay.hidePreview();
+ me._resultsDocsSection.display.unsetSelected();
+ me._resultsDocsSection.display.hidePreview();
if (me._detailsPane.get_parent() == null) {
me.actor.add_actor(me._detailsPane);
me.emit('panes-displayed');
@@ -382,7 +419,7 @@ Dash.prototype = {
me._detailsContent.remove_all();
me._detailsContent.append(me._docDisplay.selectedItemDetails, Big.BoxPackFlags.NONE);
});
- this._resultsDocDisplay.connect('selected', function(resultsDocDisplay) {
+ this._resultsDocsSection.display.connect('selected', function(resultsDocDisplay) {
me._appDisplay.unsetSelected();
me._appDisplay.hidePreview();
me._docDisplay.unsetSelected();
@@ -392,7 +429,7 @@ Dash.prototype = {
me.emit('panes-displayed');
}
me._detailsContent.remove_all();
- me._detailsContent.append(me._resultsDocDisplay.selectedItemDetails, Big.BoxPackFlags.NONE);
+ me._detailsContent.append(me._resultsDocsSection.display.selectedItemDetails, Big.BoxPackFlags.NONE);
});
this._appDisplay.connect('redisplayed', function(appDisplay) {
me._ensureItemSelected();
@@ -467,11 +504,14 @@ Dash.prototype = {
this._unsetMoreDocsMode();
this._moreAppsMode = true;
+ this._resultsText.text = "Applications";
+
+ this._resultsAppsSection.display.show();
+ this._resultsPane.add_actor(this._resultsAppsSection.actor);
+ this._resultsAppsSection.actor.set_y(this._resultsText.height + DASH_PAD);
this.actor.add_actor(this._resultsPane);
this._moreAppsLink.setText("Less...");
-
- this._resultsText.text = "Applications";
this._detailsPane.x = this._width + this._resultsWidth;;
this.emit('panes-displayed');
@@ -484,6 +524,8 @@ Dash.prototype = {
this._moreAppsMode = false;
+ this._resultsPane.remove_actor(this._resultsAppsSection.actor);
+ this._resultsAppsSection.display.hide();
this.actor.remove_actor(this._resultsPane);
this._resultsText.text = "";
@@ -491,7 +533,6 @@ Dash.prototype = {
this._detailsPane.x = this._width;
-
if (this._detailsPane.get_parent() == null) {
this.emit('panes-removed');
}
@@ -505,11 +546,14 @@ Dash.prototype = {
this._unsetMoreAppsMode();
this._moreDocsMode = true;
- this._resultsDocDisplay.show();
- this._resultsPane.add_actor(this._resultsDocsSection);
+ this._resultsText.text = "Recent Documents";
+
+ this._resultsDocsSection.display.show();
+ this._resultsPane.add_actor(this._resultsDocsSection.actor);
+ this._resultsDocsSection.actor.set_y(this._resultsText.height + DASH_PAD);
this.actor.add_actor(this._resultsPane);
- this._moreDocsLink.setText("Less...");
+ this._moreDocsLink.setText("Less...");
this._detailsPane.x = this._width + this._resultsWidth;
this.emit('panes-displayed');
@@ -523,8 +567,8 @@ Dash.prototype = {
this._moreDocsMode = false;
this.actor.remove_actor(this._resultsPane);
- this._resultsPane.remove_actor(this._resultsDocsSection);
- this._resultsDocDisplay.hide();
+ this._resultsPane.remove_actor(this._resultsDocsSection.actor);
+ this._resultsDocsSection.display.hide();
this._moreDocsLink.setText("More...");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]