re-add layout plugin event; title display works
authorDan Vanderkam <dan@dygraphs.com>
Fri, 6 Jul 2012 01:20:25 +0000 (21:20 -0400)
committerDan Vanderkam <dan@dygraphs.com>
Fri, 6 Jul 2012 01:20:25 +0000 (21:20 -0400)
dygraph-canvas.js
dygraph-dev.js
dygraph-layout.js
generate-combined.sh
plugins/chart-labels.js

index f1e3c8c..56c26b8 100644 (file)
@@ -239,7 +239,7 @@ DygraphCanvasRenderer.prototype.render = function() {
   // Do the ordinary rendering, as before
   this._renderLineChart();
   this._renderAxis();
-  this._renderChartLabels();
+  // this._renderChartLabels();
   this._renderAnnotations();
 };
 
index e1d8830..e659221 100644 (file)
@@ -29,6 +29,7 @@
     "dygraph-tickers.js",
     "plugins/base.js",
     "plugins/legend.js",
+    "plugins/chart-labels.js",
     "plugins/install.js",
     "dygraph-options-reference.js"  // Shouldn't be included in generate-combined.sh
   ];
index ac1eca0..81274ed 100644 (file)
@@ -69,6 +69,38 @@ DygraphLayout.prototype.computePlotArea_ = function() {
 
   area.w = this.dygraph_.width_ - area.x - this.attr_('rightGap');
   area.h = this.dygraph_.height_;
+
+  // Let plugins reserve space.
+  var e = {
+    chart_div: this.dygraph_.graphDiv,
+    reserveSpaceLeft: function(px) {
+      var r = {
+        x: area.x,
+        y: area.y,
+        w: px,
+        h: area.h
+      };
+      area.x += px;
+      area.w -= px;
+      return r;
+    },
+    reserveSpaceTop: function(px) {
+      var r = {
+        x: area.x,
+        y: area.y,
+        w: area.w,
+        h: px
+      };
+      area.y += px;
+      area.h -= px;
+      return r;
+    },
+    chartRect: function() {
+      return {x:area.x, y:area.y, w:area.w, h:area.h};
+    }
+  };
+  this.dygraph_.cascadeEvents_('layout', e);
+
   if (this.attr_('drawXAxis')) {
     if (this.attr_('xAxisHeight')) {
       area.h -= this.attr_('xAxisHeight');
@@ -86,6 +118,7 @@ DygraphLayout.prototype.computePlotArea_ = function() {
                         "to use " + this.dygraph_.numAxes() + ")");
   }
 
+/*
   // Add space for chart labels: title, xlabel and ylabel.
   if (this.attr_('title')) {
     area.h -= this.attr_('titleHeight');
@@ -105,6 +138,7 @@ DygraphLayout.prototype.computePlotArea_ = function() {
     // same logic applies here as for ylabel.
     // TODO(danvk): make yAxisLabelWidth a per-axis property
   }
+*/
 
   // Add space for range selector, if needed.
   if (this.attr_('showRangeSelector')) {
index 6443343..ab3a53d 100755 (executable)
@@ -18,6 +18,7 @@ rgbcolor/rgbcolor.js \
 strftime/strftime-min.js \
 plugins/base.js \
 plugins/legend.js \
+plugins/chart-labels \
 plugins/install.js \
 | perl -ne 'print unless m,REMOVE_FOR_COMBINED,..m,/REMOVE_FOR_COMBINED,' \
 > /tmp/dygraph.js
index 0b6e4c2..3dad191 100644 (file)
@@ -35,7 +35,7 @@ var createDivInRect = function(r) {
   return div;
 };
 
-chart_labels.layout = function(e) {
+chart_labels.prototype.layout = function(e) {
   var g = e.dygraph;
   var div = e.chart_div;
   if (g.getOption('title')) {