automatically resize gutter for high line numbers

This commit is contained in:
Fabian Jakobs 2011-12-13 15:53:41 +01:00
commit 2bd85c163d
4 changed files with 30 additions and 15 deletions

View file

@ -40,12 +40,16 @@
define(function(require, exports, module) {
var dom = require("../lib/dom");
var oop = require("../lib/oop");
var EventEmitter = require("../lib/event_emitter").EventEmitter;
var Gutter = function(parentEl) {
this.element = dom.createElement("div");
this.element.className = "ace_layer ace_gutter-layer";
parentEl.appendChild(this.element);
this.setShowFoldWidgets(this.$showFoldWidgets);
this.gutterWidth = 0;
this.$breakpoints = [];
this.$annotations = [];
@ -54,6 +58,8 @@ var Gutter = function(parentEl) {
(function() {
oop.implement(this, EventEmitter);
this.setSession = function(session) {
this.session = session;
};
@ -151,6 +157,12 @@ var Gutter = function(parentEl) {
}
this.element = dom.setInnerHtml(this.element, html.join(""));
this.element.style.height = config.minHeight + "px";
var gutterWidth = this.element.offsetWidth;
if (gutterWidth !== this.gutterWidth) {
this.gutterWidth = gutterWidth;
this._emit("changeGutterWidth", gutterWidth);
}
};
this.$showFoldWidgets = true;
@ -162,6 +174,7 @@ var Gutter = function(parentEl) {
this.$showFoldWidgets = show;
};
this.getShowFoldWidgets = function() {
return this.$showFoldWidgets;
};