mirror of
https://github.com/google/blockly.git
synced 2026-01-08 09:30:06 +01:00
Adding single-direction scroll options to inject options (#4651)
* Adding single directions scroll config to inject options
This commit is contained in:
@@ -379,9 +379,14 @@ Blockly.init_ = function(mainWorkspace) {
|
||||
}
|
||||
|
||||
if (options.moveOptions && options.moveOptions.scrollbars) {
|
||||
var horizontalScroll = options.moveOptions.scrollbars === true ||
|
||||
!!options.moveOptions.scrollbars.horizontal;
|
||||
var verticalScroll = options.moveOptions.scrollbars === true ||
|
||||
!!options.moveOptions.scrollbars.vertical;
|
||||
mainWorkspace.scrollbar =
|
||||
new Blockly.ScrollbarPair(
|
||||
mainWorkspace, true, true, 'blocklyMainWorkspaceScrollbar');
|
||||
mainWorkspace, horizontalScroll, verticalScroll,
|
||||
'blocklyMainWorkspaceScrollbar');
|
||||
mainWorkspace.scrollbar.resize();
|
||||
} else {
|
||||
mainWorkspace.setMetrics({x: 0.5, y: 0.5});
|
||||
|
||||
@@ -134,7 +134,7 @@ Blockly.Options = function(options) {
|
||||
/** @type {!Blockly.Options.MoveOptions} */
|
||||
this.moveOptions = Blockly.Options.parseMoveOptions_(options, hasCategories);
|
||||
/** @deprecated January 2019 */
|
||||
this.hasScrollbars = this.moveOptions.scrollbars;
|
||||
this.hasScrollbars = !!this.moveOptions.scrollbars;
|
||||
/** @type {boolean} */
|
||||
this.hasTrashcan = hasTrashcan;
|
||||
/** @type {number} */
|
||||
@@ -205,12 +205,21 @@ Blockly.Options.GridOptions;
|
||||
* Move Options.
|
||||
* @typedef {{
|
||||
* drag: boolean,
|
||||
* scrollbars: boolean,
|
||||
* scrollbars: (boolean | !Blockly.Options.ScrollbarOptions),
|
||||
* wheel: boolean
|
||||
* }}
|
||||
*/
|
||||
Blockly.Options.MoveOptions;
|
||||
|
||||
/**
|
||||
* Scrollbar Options.
|
||||
* @typedef {{
|
||||
* horizontal: boolean,
|
||||
* vertical: boolean
|
||||
* }}
|
||||
*/
|
||||
Blockly.Options.ScrollbarOptions;
|
||||
|
||||
/**
|
||||
* Zoom Options.
|
||||
* @typedef {{
|
||||
@@ -252,9 +261,23 @@ Blockly.Options.parseMoveOptions_ = function(options, hasCategories) {
|
||||
var moveOptions = {};
|
||||
if (move['scrollbars'] === undefined && options['scrollbars'] === undefined) {
|
||||
moveOptions.scrollbars = hasCategories;
|
||||
} else if (typeof move['scrollbars'] == 'object') {
|
||||
moveOptions.scrollbars = {};
|
||||
moveOptions.scrollbars.horizontal = !!move['scrollbars']['horizontal'];
|
||||
moveOptions.scrollbars.vertical = !!move['scrollbars']['vertical'];
|
||||
// Convert scrollbars object to boolean if they have the same value.
|
||||
// This allows us to easily check for whether any scrollbars exist using
|
||||
// !!moveOptions.scrollbars.
|
||||
if (moveOptions.scrollbars.horizontal && moveOptions.scrollbars.vertical) {
|
||||
moveOptions.scrollbars = true;
|
||||
} else if (!moveOptions.scrollbars.horizontal &&
|
||||
!moveOptions.scrollbars.vertical) {
|
||||
moveOptions.scrollbars = false;
|
||||
}
|
||||
} else {
|
||||
moveOptions.scrollbars = !!move['scrollbars'] || !!options['scrollbars'];
|
||||
}
|
||||
|
||||
if (!moveOptions.scrollbars || move['wheel'] === undefined) {
|
||||
// Defaults to false so that developers' settings don't appear to change.
|
||||
moveOptions.wheel = false;
|
||||
|
||||
@@ -1659,7 +1659,7 @@ Blockly.WorkspaceSvg.prototype.isDraggable = function() {
|
||||
* @return {boolean} True if the workspace is movable, false otherwise.
|
||||
*/
|
||||
Blockly.WorkspaceSvg.prototype.isMovable = function() {
|
||||
return (this.options.moveOptions && this.options.moveOptions.scrollbars) ||
|
||||
return (this.options.moveOptions && !!this.options.moveOptions.scrollbars) ||
|
||||
(this.options.moveOptions && this.options.moveOptions.wheel) ||
|
||||
(this.options.moveOptions && this.options.moveOptions.drag) ||
|
||||
(this.options.zoomOptions && this.options.zoomOptions.wheel) ||
|
||||
|
||||
Reference in New Issue
Block a user