window size alert

This commit is contained in:
Peter Cottle 2013-01-08 12:51:12 -08:00
parent 8bd5fb3196
commit 9b77632faf
4 changed files with 2315 additions and 3329 deletions

File diff suppressed because it is too large Load diff

View file

@ -63,6 +63,11 @@ var init = function() {
events.trigger('resize', e); events.trigger('resize', e);
}); });
$(window).on('windowSizeCheck', _.throttle(function(e) {
var width = $(window).width();
var height = $(window).height();
eventBaton.trigger('windowSizeCheck', {w: width, h: height});
}, 500));
eventBaton.stealBaton('docKeydown', function() { }); eventBaton.stealBaton('docKeydown', function() { });
eventBaton.stealBaton('docKeyup', function() { }); eventBaton.stealBaton('docKeyup', function() { });
@ -78,6 +83,13 @@ var init = function() {
var view = new Views.ZoomAlertWindow(); var view = new Views.ZoomAlertWindow();
} }
}); });
eventBaton.stealBaton('windowSizeCheck', function(size) {
if (size.w < Constants.VIEWPORT.minWidth ||
size.h < Constants.VIEWPORT.minHeight) {
var Views = require('../views');
var view = new Views.WindowSizeAlertWindow();
}
});
// the default action on window focus and document click is to just focus the text area // the default action on window focus and document click is to just focus the text area
eventBaton.stealBaton('windowFocus', focusTextArea); eventBaton.stealBaton('windowFocus', focusTextArea);

View file

@ -21,3 +21,4 @@ exports.splitTextCommand = function(value, func, context) {
func(command); func(command);
}); });
}; };

View file

@ -1,4 +1,4 @@
var GitError = require('../util/errors').GitError; qvar GitError = require('../util/errors').GitError;
var _ = require('underscore'); var _ = require('underscore');
var Q = require('q'); var Q = require('q');
// horrible hack to get localStorage Backbone plugin // horrible hack to get localStorage Backbone plugin
@ -394,34 +394,21 @@ var NextLevelConfirm = ConfirmCancelTerminal.extend({
} }
}); });
var ZoomAlertWindow = Backbone.View.extend({ var ViewportAlert = Backbone.View.extend({
initialize: function(options) { initialize: function(options) {
this.grabBatons(); this.grabBatons();
this.modalAlert = new ModalAlert({ this.modalAlert = new ModalAlert({
markdowns: [ markdowns: this.markdowns
'## That zoom level is not supported :-/',
'Please zoom back to a supported zoom level with Ctrl + and Ctrl -',
'',
'(and of course, pull requests to fix this are appreciated :D)'
]
}); });
this.modalAlert.show(); this.modalAlert.show();
}, },
grabBatons: function() { grabBatons: function() {
Main.getEventBaton().stealBaton('zoomChange', this.zoomChange, this); Main.getEventBaton().stealBaton(this.eventBatonName, this.batonFired, this);
}, },
releaseBatons: function() { releaseBatons: function() {
Main.getEventBaton().releaseBaton('zoomChange', this.zoomChange, this); Main.getEventBaton().releaseBaton(this.eventBatonName, this.batonFired, this);
},
zoomChange: function(level) {
if (level <= Constants.VIEWPORT.maxZoom &&
level >= Constants.VIEWPORT.minZoom) {
this.finish();
}
}, },
finish: function() { finish: function() {
@ -430,6 +417,46 @@ var ZoomAlertWindow = Backbone.View.extend({
} }
}); });
var WindowSizeAlertWindow = Backbone.View.extend({
initialize: function(options) {
this.eventBatonName = 'windowSizeCheck';
this.markdowns = [
'## That window size is not supported :-/',
'Please resize your window back to a supported size',
'',
'(and of course, pull requests to fix this are appreciated :D)'
]
ZoomAlertWindow.__super__.initialize.apply(this, [options]);
},
batonFired: function(size) {
if (size.w < Constants.VIEWPORT.minWidth ||
size.h < Constants.VIEWPORT.minHeight) {
this.finish();
}
}
});
var ZoomAlertWindow = Backbone.View.extend({
initialize: function(options) {
this.eventBatonName = 'zoomChange';
this.markdowns = [
'## That zoom level is not supported :-/',
'Please zoom back to a supported zoom level with Ctrl + and Ctrl -',
'',
'(and of course, pull requests to fix this are appreciated :D)'
]
ZoomAlertWindow.__super__.initialize.apply(this, [options]);
},
batonFired: function(level) {
if (level <= Constants.VIEWPORT.maxZoom &&
level >= Constants.VIEWPORT.minZoom) {
this.finish();
}
}
});
var LevelToolbar = BaseView.extend({ var LevelToolbar = BaseView.extend({
tagName: 'div', tagName: 'div',
className: 'levelToolbarHolder', className: 'levelToolbarHolder',
@ -532,6 +559,7 @@ exports.ConfirmCancelView = ConfirmCancelView;
exports.LeftRightView = LeftRightView; exports.LeftRightView = LeftRightView;
exports.ZoomAlertWindow = ZoomAlertWindow; exports.ZoomAlertWindow = ZoomAlertWindow;
exports.ConfirmCancelTerminal = ConfirmCancelTerminal; exports.ConfirmCancelTerminal = ConfirmCancelTerminal;
exports.WindowSizeAlertWindow = WindowSizeAlertWindow;
exports.CanvasTerminalHolder = CanvasTerminalHolder; exports.CanvasTerminalHolder = CanvasTerminalHolder;
exports.LevelToolbar = LevelToolbar; exports.LevelToolbar = LevelToolbar;