Merge pull request #7207 from timvandermeij/hand-tool-class
Convert the hand tool to a class
This commit is contained in:
commit
a093d755b7
@ -225,11 +225,10 @@ var PDFViewerApplication = {
|
||||
|
||||
this.overlayManager = OverlayManager;
|
||||
|
||||
HandTool.initialize({
|
||||
this.handTool = new HandTool({
|
||||
container: container,
|
||||
toggleHandTool: document.getElementById('toggleHandTool')
|
||||
});
|
||||
this.handTool = HandTool;
|
||||
|
||||
this.pdfDocumentProperties = new PDFDocumentProperties({
|
||||
overlayName: 'documentPropertiesOverlay',
|
||||
@ -2148,7 +2147,7 @@ window.addEventListener('keydown', function keydown(evt) {
|
||||
|
||||
case 72: // 'h'
|
||||
if (!isViewerInPresentationMode) {
|
||||
HandTool.toggle();
|
||||
PDFViewerApplication.handTool.toggle();
|
||||
}
|
||||
break;
|
||||
case 82: // 'r'
|
||||
|
@ -35,30 +35,49 @@ var GrabToPan = grabToPan.GrabToPan;
|
||||
var Preferences = preferences.Preferences;
|
||||
var SecondaryToolbar = secondaryToolbar.SecondaryToolbar;
|
||||
|
||||
var HandTool = {
|
||||
initialize: function handToolInitialize(options) {
|
||||
var toggleHandTool = options.toggleHandTool;
|
||||
/**
|
||||
* @typedef {Object} HandToolOptions
|
||||
* @property {HTMLDivElement} container - The document container.
|
||||
* @property {HTMLButtonElement} toggleHandTool - The button element for
|
||||
* toggling the hand tool.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @class
|
||||
*/
|
||||
var HandTool = (function HandToolClosure() {
|
||||
/**
|
||||
* @constructs HandTool
|
||||
* @param {HandToolOptions} options
|
||||
*/
|
||||
function HandTool(options) {
|
||||
this.container = options.container;
|
||||
this.toggleHandTool = options.toggleHandTool;
|
||||
|
||||
this.wasActive = false;
|
||||
|
||||
this.handTool = new GrabToPan({
|
||||
element: options.container,
|
||||
element: this.container,
|
||||
onActiveChanged: function(isActive) {
|
||||
if (!toggleHandTool) {
|
||||
if (!this.toggleHandTool) {
|
||||
return;
|
||||
}
|
||||
if (isActive) {
|
||||
toggleHandTool.title =
|
||||
this.toggleHandTool.title =
|
||||
mozL10n.get('hand_tool_disable.title', null, 'Disable hand tool');
|
||||
toggleHandTool.firstElementChild.textContent =
|
||||
this.toggleHandTool.firstElementChild.textContent =
|
||||
mozL10n.get('hand_tool_disable_label', null, 'Disable hand tool');
|
||||
} else {
|
||||
toggleHandTool.title =
|
||||
this.toggleHandTool.title =
|
||||
mozL10n.get('hand_tool_enable.title', null, 'Enable hand tool');
|
||||
toggleHandTool.firstElementChild.textContent =
|
||||
this.toggleHandTool.firstElementChild.textContent =
|
||||
mozL10n.get('hand_tool_enable_label', null, 'Enable hand tool');
|
||||
}
|
||||
}
|
||||
}.bind(this)
|
||||
});
|
||||
if (toggleHandTool) {
|
||||
toggleHandTool.addEventListener('click', this.toggle.bind(this), false);
|
||||
|
||||
if (this.toggleHandTool) {
|
||||
this.toggleHandTool.addEventListener('click', this.toggle.bind(this));
|
||||
|
||||
window.addEventListener('localized', function (evt) {
|
||||
Preferences.get('enableHandToolOnLoad').then(function resolved(value) {
|
||||
@ -79,27 +98,38 @@ var HandTool = {
|
||||
}
|
||||
}.bind(this));
|
||||
}
|
||||
},
|
||||
|
||||
toggle: function handToolToggle() {
|
||||
this.handTool.toggle();
|
||||
SecondaryToolbar.close();
|
||||
},
|
||||
|
||||
enterPresentationMode: function handToolEnterPresentationMode() {
|
||||
if (this.handTool.active) {
|
||||
this.wasActive = true;
|
||||
this.handTool.deactivate();
|
||||
}
|
||||
},
|
||||
|
||||
exitPresentationMode: function handToolExitPresentationMode() {
|
||||
if (this.wasActive) {
|
||||
this.wasActive = null;
|
||||
this.handTool.activate();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
HandTool.prototype = {
|
||||
/**
|
||||
* @return {boolean}
|
||||
*/
|
||||
get isActive() {
|
||||
return !!this.handTool.active;
|
||||
},
|
||||
|
||||
toggle: function HandTool_toggle() {
|
||||
this.handTool.toggle();
|
||||
SecondaryToolbar.close();
|
||||
},
|
||||
|
||||
enterPresentationMode: function HandTool_enterPresentationMode() {
|
||||
if (this.isActive) {
|
||||
this.wasActive = true;
|
||||
this.handTool.deactivate();
|
||||
}
|
||||
},
|
||||
|
||||
exitPresentationMode: function HandTool_exitPresentationMode() {
|
||||
if (this.wasActive) {
|
||||
this.wasActive = false;
|
||||
this.handTool.activate();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
return HandTool;
|
||||
})();
|
||||
|
||||
exports.HandTool = HandTool;
|
||||
}));
|
||||
|
Loading…
Reference in New Issue
Block a user