2013-10-30 14:46:03 -07:00
|
|
|
/**
|
2014-01-28 03:00:09 -08:00
|
|
|
* @license
|
2013-10-30 14:46:03 -07:00
|
|
|
* Visual Blocks Editor
|
|
|
|
*
|
|
|
|
* Copyright 2013 Google Inc.
|
2014-10-07 13:09:55 -07:00
|
|
|
* https://developers.google.com/blockly/
|
2013-10-30 14:46:03 -07:00
|
|
|
*
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
*
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
*
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
* limitations under the License.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @fileoverview Inject Blockly's CSS synchronously.
|
|
|
|
* @author fraser@google.com (Neil Fraser)
|
|
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
|
|
|
|
goog.provide('Blockly.Css');
|
|
|
|
|
2016-03-01 15:01:45 -05:00
|
|
|
goog.require('Blockly.Colours');
|
|
|
|
|
2016-04-13 16:38:44 -04:00
|
|
|
goog.require('goog.userAgent');
|
2014-11-28 21:43:39 -08:00
|
|
|
|
2014-11-26 12:03:21 -08:00
|
|
|
/**
|
|
|
|
* List of cursors.
|
|
|
|
* @enum {string}
|
|
|
|
*/
|
|
|
|
Blockly.Css.Cursor = {
|
|
|
|
OPEN: 'handopen',
|
|
|
|
CLOSED: 'handclosed',
|
|
|
|
DELETE: 'handdelete'
|
|
|
|
};
|
|
|
|
|
2014-11-28 21:43:39 -08:00
|
|
|
/**
|
|
|
|
* Current cursor (cached value).
|
2015-07-13 15:03:22 -07:00
|
|
|
* @type {string}
|
2015-01-22 15:58:10 -08:00
|
|
|
* @private
|
2014-11-28 21:43:39 -08:00
|
|
|
*/
|
|
|
|
Blockly.Css.currentCursor_ = '';
|
|
|
|
|
2014-11-26 12:03:21 -08:00
|
|
|
/**
|
|
|
|
* Large stylesheet added by Blockly.Css.inject.
|
2015-07-13 15:03:22 -07:00
|
|
|
* @type {Element}
|
2014-11-26 12:03:21 -08:00
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
Blockly.Css.styleSheet_ = null;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Path to media directory, with any trailing slash removed.
|
2015-07-13 15:03:22 -07:00
|
|
|
* @type {string}
|
2014-11-26 12:03:21 -08:00
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
Blockly.Css.mediaPath_ = '';
|
2013-10-30 14:46:03 -07:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Inject the CSS into the DOM. This is preferable over using a regular CSS
|
|
|
|
* file since:
|
|
|
|
* a) It loads synchronously and doesn't force a redraw later.
|
|
|
|
* b) It speeds up loading by not blocking on a separate HTTP transfer.
|
|
|
|
* c) The CSS content may be made dynamic depending on init options.
|
2015-04-28 13:51:25 -07:00
|
|
|
* @param {boolean} hasCss If false, don't inject CSS
|
|
|
|
* (providing CSS becomes the document's responsibility).
|
|
|
|
* @param {string} pathToMedia Path from page to the Blockly media directory.
|
2013-10-30 14:46:03 -07:00
|
|
|
*/
|
2015-04-28 13:51:25 -07:00
|
|
|
Blockly.Css.inject = function(hasCss, pathToMedia) {
|
|
|
|
// Only inject the CSS once.
|
|
|
|
if (Blockly.Css.styleSheet_) {
|
|
|
|
return;
|
|
|
|
}
|
2015-01-22 13:54:00 -08:00
|
|
|
// Placeholder for cursor rule. Must be first rule (index 0).
|
|
|
|
var text = '.blocklyDraggable {}\n';
|
2015-04-28 13:51:25 -07:00
|
|
|
if (hasCss) {
|
2015-01-22 13:54:00 -08:00
|
|
|
text += Blockly.Css.CONTENT.join('\n');
|
2015-06-13 16:29:21 -07:00
|
|
|
if (Blockly.FieldDate) {
|
|
|
|
text += Blockly.FieldDate.CSS.join('\n');
|
|
|
|
}
|
2015-01-22 13:54:00 -08:00
|
|
|
}
|
2013-10-30 14:46:03 -07:00
|
|
|
// Strip off any trailing slash (either Unix or Windows).
|
2015-04-28 13:51:25 -07:00
|
|
|
Blockly.Css.mediaPath_ = pathToMedia.replace(/[\\\/]$/, '');
|
2014-11-26 12:03:21 -08:00
|
|
|
text = text.replace(/<<<PATH>>>/g, Blockly.Css.mediaPath_);
|
2016-04-14 18:04:17 -04:00
|
|
|
// Dynamically replace colours in the CSS text, in case they have
|
|
|
|
// been set at run-time injection.
|
|
|
|
for (var colourProperty in Blockly.Colours) {
|
|
|
|
if (Blockly.Colours.hasOwnProperty(colourProperty)) {
|
2016-04-15 16:44:30 -04:00
|
|
|
// Replace all
|
|
|
|
text = text.replace(
|
|
|
|
new RegExp('\\$colour\\_' + colourProperty, 'g'),
|
|
|
|
Blockly.Colours[colourProperty]
|
|
|
|
);
|
2016-04-14 18:04:17 -04:00
|
|
|
}
|
|
|
|
}
|
2015-09-29 15:40:19 -07:00
|
|
|
// Inject CSS tag.
|
|
|
|
var cssNode = document.createElement('style');
|
|
|
|
document.head.appendChild(cssNode);
|
|
|
|
var cssTextNode = document.createTextNode(text);
|
|
|
|
cssNode.appendChild(cssTextNode);
|
|
|
|
Blockly.Css.styleSheet_ = cssNode.sheet;
|
2014-12-02 15:00:10 -08:00
|
|
|
Blockly.Css.setCursor(Blockly.Css.Cursor.OPEN);
|
2014-11-26 12:03:21 -08:00
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the cursor to be displayed when over something draggable.
|
2015-08-10 14:17:11 -05:00
|
|
|
* @param {Blockly.Css.Cursor} cursor Enum.
|
2014-11-26 12:03:21 -08:00
|
|
|
*/
|
|
|
|
Blockly.Css.setCursor = function(cursor) {
|
2016-04-13 16:38:44 -04:00
|
|
|
if (goog.userAgent.MOBILE || goog.userAgent.ANDROID || goog.userAgent.IPAD) {
|
|
|
|
// Don't try to switch the mouse cursor on a mobile device.
|
|
|
|
// This is an optimization - since we almost never have cursors on mobile anyway.
|
|
|
|
return;
|
|
|
|
}
|
2015-04-28 13:51:25 -07:00
|
|
|
if (Blockly.Css.currentCursor_ == cursor) {
|
2014-11-26 12:03:21 -08:00
|
|
|
return;
|
|
|
|
}
|
2014-11-28 21:43:39 -08:00
|
|
|
Blockly.Css.currentCursor_ = cursor;
|
2015-09-29 15:40:19 -07:00
|
|
|
var url = 'url(' + Blockly.Css.mediaPath_ + '/' + cursor + '.cur), auto';
|
2014-12-02 15:00:10 -08:00
|
|
|
// There are potentially hundreds of draggable objects. Changing their style
|
|
|
|
// properties individually is too slow, so change the CSS rule instead.
|
2014-11-28 21:43:39 -08:00
|
|
|
var rule = '.blocklyDraggable {\n cursor: ' + url + ';\n}\n';
|
2015-09-29 15:40:19 -07:00
|
|
|
Blockly.Css.styleSheet_.deleteRule(0);
|
|
|
|
Blockly.Css.styleSheet_.insertRule(rule, 0);
|
2014-12-02 15:00:10 -08:00
|
|
|
// There is probably only one toolbox, so just change its style property.
|
|
|
|
var toolboxen = document.getElementsByClassName('blocklyToolboxDiv');
|
|
|
|
for (var i = 0, toolbox; toolbox = toolboxen[i]; i++) {
|
2015-08-19 17:21:05 -07:00
|
|
|
if (cursor == Blockly.Css.Cursor.DELETE) {
|
2014-12-02 15:00:10 -08:00
|
|
|
toolbox.style.cursor = url;
|
2015-08-19 17:21:05 -07:00
|
|
|
} else {
|
|
|
|
toolbox.style.cursor = '';
|
2014-12-02 15:00:10 -08:00
|
|
|
}
|
|
|
|
}
|
2015-04-28 13:51:25 -07:00
|
|
|
// Set cursor on the whole document, so that rapid movements
|
2014-12-02 15:00:10 -08:00
|
|
|
// don't result in cursor changing to an arrow momentarily.
|
2015-04-28 13:51:25 -07:00
|
|
|
var html = document.body.parentNode;
|
|
|
|
if (cursor == Blockly.Css.Cursor.OPEN) {
|
|
|
|
html.style.cursor = '';
|
|
|
|
} else {
|
|
|
|
html.style.cursor = url;
|
2014-11-28 21:43:39 -08:00
|
|
|
}
|
2013-10-30 14:46:03 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Array making up the CSS content for Blockly.
|
|
|
|
*/
|
|
|
|
Blockly.Css.CONTENT = [
|
|
|
|
'.blocklySvg {',
|
2016-04-14 18:04:17 -04:00
|
|
|
'background-color: $colour_workspace;',
|
2015-10-12 17:30:41 -07:00
|
|
|
'outline: none;',
|
|
|
|
'overflow: hidden;', /* IE overflows by default. */
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2016-04-01 17:32:01 -04:00
|
|
|
/* Necessary to position the drag surface */
|
|
|
|
'.blocklyRelativeWrapper {',
|
|
|
|
'position: relative;',
|
|
|
|
'width: 100%;',
|
|
|
|
'height: 100%;',
|
|
|
|
'}',
|
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyWidgetDiv {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'display: none;',
|
|
|
|
'position: absolute;',
|
|
|
|
'z-index: 999;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2016-04-06 21:01:55 -04:00
|
|
|
'.blocklyWidgetDiv.fieldTextInput {',
|
2016-04-05 18:36:02 -04:00
|
|
|
'overflow: hidden;',
|
|
|
|
'border: 1px solid;',
|
|
|
|
'box-sizing: border-box;',
|
|
|
|
'transform-origin: 0 0;',
|
|
|
|
'-ms-transform-origin: 0 0;',
|
|
|
|
'-moz-transform-origin: 0 0;',
|
|
|
|
'-webkit-transform-origin: 0 0;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2016-03-23 14:39:02 -07:00
|
|
|
'.blocklyNonSelectable {',
|
|
|
|
'user-select: none;',
|
|
|
|
'-moz-user-select: none;',
|
|
|
|
'-webkit-user-select: none;',
|
|
|
|
'-ms-user-select: none;',
|
|
|
|
'}',
|
|
|
|
|
2015-04-28 13:51:25 -07:00
|
|
|
'.blocklyTooltipDiv {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'background-color: #ffffc7;',
|
|
|
|
'border: 1px solid #ddc;',
|
|
|
|
'box-shadow: 4px 4px 20px 1px rgba(0,0,0,.15);',
|
|
|
|
'color: #000;',
|
|
|
|
'display: none;',
|
|
|
|
'font-family: sans-serif;',
|
|
|
|
'font-size: 9pt;',
|
|
|
|
'opacity: 0.9;',
|
|
|
|
'padding: 2px;',
|
|
|
|
'position: absolute;',
|
|
|
|
'z-index: 1000;',
|
2015-04-28 13:51:25 -07:00
|
|
|
'}',
|
|
|
|
|
2016-04-01 16:24:12 -04:00
|
|
|
'.blocklyDragSurface {',
|
|
|
|
'display: none;',
|
2016-04-01 17:32:01 -04:00
|
|
|
'position: absolute;',
|
|
|
|
'top: 0;',
|
2016-04-02 16:24:47 -04:00
|
|
|
'left: 0;',
|
|
|
|
'right: 0;',
|
|
|
|
'bottom: 0;',
|
2016-04-08 16:10:12 -04:00
|
|
|
'overflow: visible !important;',
|
2016-04-01 16:24:12 -04:00
|
|
|
'z-index: 5000;', /* Always display on top */
|
|
|
|
'-webkit-backface-visibility: hidden;',
|
|
|
|
'backface-visibility: hidden;',
|
|
|
|
'-webkit-perspective: 1000;',
|
|
|
|
'perspective: 1000;',
|
|
|
|
'}',
|
|
|
|
|
2016-04-21 15:33:28 -04:00
|
|
|
'.blocklyDropDownDiv {',
|
|
|
|
'position: absolute;',
|
|
|
|
'left: 0;',
|
|
|
|
'top: 0;',
|
|
|
|
'z-index: 1000;',
|
|
|
|
'display: none;',
|
|
|
|
'border: 1px solid;',
|
|
|
|
'border-radius: 8px;',
|
|
|
|
'box-shadow: 0px 0px 8px 1px ' + Blockly.Colours.dropDownShadow + ';',
|
|
|
|
'padding: 5px;',
|
|
|
|
'-webkit-user-select: none;',
|
|
|
|
'}',
|
|
|
|
|
|
|
|
'.blocklyDropDownArrow {',
|
|
|
|
'position: absolute;',
|
|
|
|
'left: 0;',
|
|
|
|
'top: 0;',
|
|
|
|
'width: 16px;',
|
|
|
|
'height: 16px;',
|
|
|
|
'z-index: -1;',
|
|
|
|
'}',
|
|
|
|
|
|
|
|
'.blocklyDropDownButton {',
|
|
|
|
'display: inline-block;',
|
|
|
|
'float: left;',
|
|
|
|
'padding: 0;',
|
|
|
|
'margin: 5px;',
|
|
|
|
'border-radius: 8px;',
|
|
|
|
'outline: none;',
|
|
|
|
'border: 1px solid;',
|
|
|
|
'transition: box-shadow .1s;',
|
|
|
|
'cursor: pointer;',
|
|
|
|
'}',
|
|
|
|
|
|
|
|
'.blocklyDropDownButtonHover {',
|
|
|
|
'box-shadow: 0px 0px 0px 4px ' + Blockly.Colours.fieldShadow + ';',
|
|
|
|
'}',
|
|
|
|
|
|
|
|
'.blocklyDropDownButton:active {',
|
|
|
|
'box-shadow: 0px 0px 0px 8px ' + Blockly.Colours.fieldShadow + ';',
|
|
|
|
'}',
|
|
|
|
|
|
|
|
'.blocklyDropDownButton > img {',
|
|
|
|
'width: 100%;',
|
|
|
|
'height: 100%;',
|
|
|
|
'}',
|
|
|
|
|
|
|
|
'.blocklyDropDownPlaceholder {',
|
|
|
|
'display: inline-block;',
|
|
|
|
'float: left;',
|
|
|
|
'padding: 0;',
|
|
|
|
'margin: 5px;',
|
|
|
|
'}',
|
|
|
|
|
|
|
|
'.arrowTop {',
|
|
|
|
'border-top: 1px solid;',
|
|
|
|
'border-left: 1px solid;',
|
|
|
|
'border-top-left-radius: 4px;',
|
|
|
|
'}',
|
|
|
|
|
|
|
|
'.arrowBottom {',
|
|
|
|
'border-bottom: 1px solid;',
|
|
|
|
'border-right: 1px solid;',
|
|
|
|
'border-bottom-right-radius: 4px;',
|
|
|
|
'}',
|
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyResizeSE {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'cursor: se-resize;',
|
|
|
|
'fill: #aaa;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyResizeSW {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'cursor: sw-resize;',
|
|
|
|
'fill: #aaa;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyResizeLine {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'stroke: #888;',
|
|
|
|
'stroke-width: 1;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyHighlightedConnectionPath {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'fill: none;',
|
|
|
|
'stroke: #fc3;',
|
|
|
|
'stroke-width: 4px;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2016-01-26 14:57:43 -05:00
|
|
|
'.blocklyPath {',
|
Implement block shapes to latest spec
-Convert most constants in the code to use multiplications of GRID_UNIT (4px). This lets us be consistent with Carl's specs and helps explain the numbers a little better.
-Implement notches using cubic curves instead of arcs. This version matches the spec pretty much exactly. As part of this, remove NOTCH_BASE_HEIGHT which is no longer relevant.
-Slight simplification of renderCompute_ (which calculates metrics).
-Fixed SEP_SPACE_X and SEP_SPACE_Y to be the correct number of grid units. Our blocks before were slightly too small, now they are the right size.
-Implement the correct corner radius, hat/end hat radius.
-Add fixed ICON_WIDTH and ICON_HEIGHT, i.e., always size the icons to 40x40px as according to the spec.
-Add fixed STATEMENT_BLOCK_SPACE to represent the size of the bar above forever/repeat/pants blocks. Previously the code was assuming this was SEP_SPACE_Y, when in fact the spec has it as larger (4 units).
-Add accurate MIN_BLOCK_X and MIN_BLOCK_Y for simpler calculation of minimum bay size.
-Remove some unused SVG paths (INNER_TOP_LEFT_CORNER, INNER_BOTTOM_LEFT_CORNER).
-Remove extra code in getHeightWidth which caused a bug in rendering forever-in-repeat.
-Fix stroke width around the blocks to be 1px, according to spec.
I've checked that everything lines up with Carl's spec images at 8x zoom.
This should implement #69, #70, #71, #72, #74, and #75 (not 73 as we haven't done that input yet).
2016-03-01 15:27:52 -05:00
|
|
|
'stroke-width: 1px;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklySelected>.blocklyPath {',
|
2016-01-28 20:30:35 -05:00
|
|
|
// 'stroke: #fc3;',
|
|
|
|
// 'stroke-width: 3px;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2016-01-26 14:57:43 -05:00
|
|
|
'.blocklyDragging>.blocklyPath {',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyDisabled>.blocklyPath {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'fill-opacity: .5;',
|
|
|
|
'stroke-opacity: .5;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyText {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'cursor: default;',
|
|
|
|
'fill: #fff;',
|
|
|
|
'font-family: sans-serif;',
|
2016-04-15 16:44:30 -04:00
|
|
|
'font-size: 12pt;',
|
|
|
|
'font-weight: 600;',
|
|
|
|
'}',
|
|
|
|
|
|
|
|
'.blocklyTextTruncated {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'font-size: 11pt;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyNonEditableText>text {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'pointer-events: none;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyNonEditableText>rect,',
|
|
|
|
'.blocklyEditableText>rect {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'fill: #fff;',
|
|
|
|
'fill-opacity: .6;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyNonEditableText>text,',
|
|
|
|
'.blocklyEditableText>text {',
|
2016-04-14 18:04:17 -04:00
|
|
|
'fill: $colour_text;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyEditableText:hover>rect {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'stroke: #fff;',
|
|
|
|
'stroke-width: 2;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
|
|
|
'.blocklyBubbleText {',
|
2016-04-14 18:04:17 -04:00
|
|
|
'fill: $colour_text;',
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
/*
|
|
|
|
Don't allow users to select text. It gets annoying when trying to
|
|
|
|
drag a block and selected text moves instead.
|
|
|
|
*/
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklySvg text {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'user-select: none;',
|
|
|
|
'-moz-user-select: none;',
|
|
|
|
'-webkit-user-select: none;',
|
|
|
|
'cursor: inherit;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyHidden {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'display: none;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyFieldDropdown:not(.blocklyHidden) {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'display: block;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2015-04-28 13:51:25 -07:00
|
|
|
'.blocklyIconGroup {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'cursor: default;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2015-03-25 23:58:58 -07:00
|
|
|
'.blocklyIconGroup:not(:hover),',
|
|
|
|
'.blocklyIconGroupReadonly {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'opacity: .6;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2015-12-13 11:06:15 +01:00
|
|
|
'.blocklyIconShape {',
|
|
|
|
'fill: #00f;',
|
|
|
|
'stroke: #fff;',
|
|
|
|
'stroke-width: 1px;',
|
|
|
|
'}',
|
|
|
|
|
|
|
|
'.blocklyIconSymbol {',
|
|
|
|
'fill: #fff;',
|
|
|
|
'}',
|
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyMinimalBody {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'margin: 0;',
|
|
|
|
'padding: 0;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyCommentTextarea {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'background-color: #ffc;',
|
|
|
|
'border: 0;',
|
|
|
|
'margin: 0;',
|
|
|
|
'padding: 2px;',
|
|
|
|
'resize: none;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyHtmlInput {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'border: none;',
|
|
|
|
'font-family: sans-serif;',
|
2016-04-15 16:44:30 -04:00
|
|
|
'font-size: 12pt;',
|
2015-10-12 17:30:41 -07:00
|
|
|
'height: 100%;',
|
|
|
|
'margin: 0;',
|
|
|
|
'outline: none;',
|
2016-04-15 16:44:30 -04:00
|
|
|
'box-sizing: border-box;',
|
|
|
|
'padding: 2px 8px 0 8px;',
|
2016-02-23 16:52:28 -05:00
|
|
|
'width: 100%;',
|
2016-04-05 18:36:02 -04:00
|
|
|
'text-align: center;',
|
2016-04-14 18:04:17 -04:00
|
|
|
'color: $colour_text;',
|
2016-04-15 16:44:30 -04:00
|
|
|
'font-weight: 600;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2015-03-07 19:44:58 -06:00
|
|
|
'.blocklyMainBackground {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'stroke-width: 1;',
|
|
|
|
'stroke: #c6c6c6;', /* Equates to #ddd due to border being off-pixel. */
|
2015-03-07 19:44:58 -06:00
|
|
|
'}',
|
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyMutatorBackground {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'fill: #fff;',
|
|
|
|
'stroke: #ddd;',
|
|
|
|
'stroke-width: 1;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyFlyoutBackground {',
|
2016-04-14 18:04:17 -04:00
|
|
|
'fill: $colour_flyout;',
|
2015-10-12 17:30:41 -07:00
|
|
|
'fill-opacity: .8;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyScrollbarBackground {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'opacity: 0;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyScrollbarKnob {',
|
2016-04-14 18:04:17 -04:00
|
|
|
'fill: $colour_scrollbar;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyScrollbarBackground:hover+.blocklyScrollbarKnob,',
|
|
|
|
'.blocklyScrollbarKnob:hover {',
|
2016-04-14 18:04:17 -04:00
|
|
|
'fill: $colour_scrollbarHover;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2015-08-19 17:21:05 -07:00
|
|
|
'.blocklyZoom>image {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'opacity: .4;',
|
2015-08-19 17:21:05 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
'.blocklyZoom>image:hover {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'opacity: .6;',
|
2015-08-19 17:21:05 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
'.blocklyZoom>image:active {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'opacity: .8;',
|
2015-08-19 17:21:05 -07:00
|
|
|
'}',
|
|
|
|
|
2015-07-15 14:09:19 -07:00
|
|
|
/* Darken flyout scrollbars due to being on a grey background. */
|
|
|
|
/* By contrast, workspace scrollbars are on a white background. */
|
|
|
|
'.blocklyFlyout .blocklyScrollbarKnob {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'fill: #bbb;',
|
2015-07-15 14:09:19 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
'.blocklyFlyout .blocklyScrollbarBackground:hover+.blocklyScrollbarKnob,',
|
|
|
|
'.blocklyFlyout .blocklyScrollbarKnob:hover {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'fill: #aaa;',
|
2015-07-15 14:09:19 -07:00
|
|
|
'}',
|
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyInvalidInput {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'background: #faa;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyAngleCircle {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'stroke: #444;',
|
|
|
|
'stroke-width: 1;',
|
|
|
|
'fill: #ddd;',
|
|
|
|
'fill-opacity: .8;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyAngleMarks {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'stroke: #444;',
|
|
|
|
'stroke-width: 1;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-12-14 03:00:02 -08:00
|
|
|
'.blocklyAngleGauge {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'fill: #f88;',
|
2015-11-13 21:11:24 -08:00
|
|
|
'fill-opacity: .8;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-12-14 03:00:02 -08:00
|
|
|
'.blocklyAngleLine {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'stroke: #f00;',
|
|
|
|
'stroke-width: 2;',
|
|
|
|
'stroke-linecap: round;',
|
2013-12-14 03:00:02 -08:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
|
|
|
'.blocklyContextMenu {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'border-radius: 4px;',
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
'.blocklyDropdownMenu {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'padding: 0 !important;',
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
/* Override the default Closure URL. */
|
|
|
|
'.blocklyWidgetDiv .goog-option-selected .goog-menuitem-checkbox,',
|
|
|
|
'.blocklyWidgetDiv .goog-option-selected .goog-menuitem-icon {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'background: url(<<<PATH>>>/sprites.png) no-repeat -48px -16px !important;',
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
/* Category tree in Toolbox. */
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyToolboxDiv {',
|
2016-04-14 18:04:17 -04:00
|
|
|
'background-color: $colour_toolbox;',
|
|
|
|
'color: $colour_toolboxText;',
|
2015-10-12 17:30:41 -07:00
|
|
|
'overflow-x: visible;',
|
|
|
|
'overflow-y: auto;',
|
|
|
|
'position: absolute;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyTreeRoot {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'padding: 4px 0;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyTreeRoot:focus {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'outline: none;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyTreeRow {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'height: 22px;',
|
|
|
|
'line-height: 22px;',
|
|
|
|
'margin-bottom: 3px;',
|
|
|
|
'padding-right: 8px;',
|
|
|
|
'white-space: nowrap;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2016-01-26 12:35:50 -08:00
|
|
|
'.blocklyHorizontalTree {',
|
|
|
|
'float: left;',
|
|
|
|
'margin: 1px 5px 8px 0px;',
|
|
|
|
'}',
|
|
|
|
|
|
|
|
'.blocklyHorizontalTreeRtl {',
|
|
|
|
'float: right;',
|
2016-02-17 11:02:26 -08:00
|
|
|
'margin: 1px 0px 8px 5px;',
|
2016-01-26 12:35:50 -08:00
|
|
|
'}',
|
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyToolboxDiv[dir="RTL"] .blocklyTreeRow {',
|
2015-10-14 14:02:06 -07:00
|
|
|
'margin-left: 8px;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2015-10-12 17:30:41 -07:00
|
|
|
'.blocklyTreeRow:not(.blocklyTreeSelected):hover {',
|
|
|
|
'background-color: #e4e4e4;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2014-11-24 17:34:27 -08:00
|
|
|
'.blocklyTreeSeparator {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'border-bottom: solid #e5e5e5 1px;',
|
|
|
|
'height: 0px;',
|
|
|
|
'margin: 5px 0;',
|
2014-11-24 17:34:27 -08:00
|
|
|
'}',
|
|
|
|
|
2016-01-26 12:35:50 -08:00
|
|
|
'.blocklyTreeSeparatorHorizontal {',
|
|
|
|
'border-right: solid #e5e5e5 1px;',
|
|
|
|
'width: 0px;',
|
|
|
|
'padding: 5px 0;',
|
|
|
|
'margin: 0 5px;',
|
|
|
|
'}',
|
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyTreeIcon {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'background-image: url(<<<PATH>>>/sprites.png);',
|
|
|
|
'height: 16px;',
|
|
|
|
'vertical-align: middle;',
|
|
|
|
'width: 16px;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyTreeIconClosedLtr {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'background-position: -32px -1px;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyTreeIconClosedRtl {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'background-position: 0px -1px;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyTreeIconOpen {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'background-position: -16px -1px;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyTreeSelected>.blocklyTreeIconClosedLtr {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'background-position: -32px -17px;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyTreeSelected>.blocklyTreeIconClosedRtl {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'background-position: 0px -17px;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyTreeSelected>.blocklyTreeIconOpen {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'background-position: -16px -17px;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
|
|
|
'.blocklyTreeIconNone,',
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyTreeSelected>.blocklyTreeIconNone {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'background-position: -48px -1px;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyTreeLabel {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'cursor: default;',
|
|
|
|
'font-family: sans-serif;',
|
|
|
|
'font-size: 16px;',
|
|
|
|
'padding: 0 3px;',
|
|
|
|
'vertical-align: middle;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
'.blocklyTreeSelected .blocklyTreeLabel {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'color: #fff;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
|
|
|
/* Copied from: goog/css/colorpicker-simplegrid.css */
|
|
|
|
/*
|
|
|
|
* Copyright 2007 The Closure Library Authors. All Rights Reserved.
|
|
|
|
*
|
|
|
|
* Use of this source code is governed by the Apache License, Version 2.0.
|
|
|
|
* See the COPYING file for details.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* Author: pupius@google.com (Daniel Pupius) */
|
|
|
|
|
|
|
|
/*
|
|
|
|
Styles to make the colorpicker look like the old gmail color picker
|
|
|
|
NOTE: without CSS scoping this will override styles defined in palette.css
|
|
|
|
*/
|
|
|
|
'.blocklyWidgetDiv .goog-palette {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'outline: none;',
|
|
|
|
'cursor: default;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
|
|
|
'.blocklyWidgetDiv .goog-palette-table {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'border: 1px solid #666;',
|
|
|
|
'border-collapse: collapse;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
|
|
|
'.blocklyWidgetDiv .goog-palette-cell {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'height: 13px;',
|
|
|
|
'width: 15px;',
|
|
|
|
'margin: 0;',
|
|
|
|
'border: 0;',
|
|
|
|
'text-align: center;',
|
|
|
|
'vertical-align: middle;',
|
|
|
|
'border-right: 1px solid #666;',
|
|
|
|
'font-size: 1px;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
|
|
|
'.blocklyWidgetDiv .goog-palette-colorswatch {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'position: relative;',
|
|
|
|
'height: 13px;',
|
|
|
|
'width: 15px;',
|
|
|
|
'border: 1px solid #666;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
|
|
|
'.blocklyWidgetDiv .goog-palette-cell-hover .goog-palette-colorswatch {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'border: 1px solid #FFF;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
|
|
|
'.blocklyWidgetDiv .goog-palette-cell-selected .goog-palette-colorswatch {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'border: 1px solid #000;',
|
|
|
|
'color: #fff;',
|
2013-10-30 14:46:03 -07:00
|
|
|
'}',
|
2014-09-08 14:26:52 -07:00
|
|
|
|
|
|
|
/* Copied from: goog/css/menu.css */
|
|
|
|
/*
|
|
|
|
* Copyright 2009 The Closure Library Authors. All Rights Reserved.
|
|
|
|
*
|
|
|
|
* Use of this source code is governed by the Apache License, Version 2.0.
|
|
|
|
* See the COPYING file for details.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Standard styling for menus created by goog.ui.MenuRenderer.
|
|
|
|
*
|
|
|
|
* @author attila@google.com (Attila Bodis)
|
|
|
|
*/
|
|
|
|
|
|
|
|
'.blocklyWidgetDiv .goog-menu {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'background: #fff;',
|
|
|
|
'border-color: #ccc #666 #666 #ccc;',
|
|
|
|
'border-style: solid;',
|
|
|
|
'border-width: 1px;',
|
|
|
|
'cursor: default;',
|
|
|
|
'font: normal 13px Arial, sans-serif;',
|
|
|
|
'margin: 0;',
|
|
|
|
'outline: none;',
|
|
|
|
'padding: 4px 0;',
|
|
|
|
'position: absolute;',
|
|
|
|
'overflow-y: auto;',
|
|
|
|
'overflow-x: hidden;',
|
|
|
|
'max-height: 100%;',
|
|
|
|
'z-index: 20000;', /* Arbitrary, but some apps depend on it... */
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
/* Copied from: goog/css/menuitem.css */
|
|
|
|
/*
|
|
|
|
* Copyright 2009 The Closure Library Authors. All Rights Reserved.
|
|
|
|
*
|
|
|
|
* Use of this source code is governed by the Apache License, Version 2.0.
|
|
|
|
* See the COPYING file for details.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Standard styling for menus created by goog.ui.MenuItemRenderer.
|
|
|
|
*
|
|
|
|
* @author attila@google.com (Attila Bodis)
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* State: resting.
|
|
|
|
*
|
|
|
|
* NOTE(mleibman,chrishenry):
|
|
|
|
* The RTL support in Closure is provided via two mechanisms -- "rtl" CSS
|
|
|
|
* classes and BiDi flipping done by the CSS compiler. Closure supports RTL
|
|
|
|
* with or without the use of the CSS compiler. In order for them not
|
|
|
|
* to conflict with each other, the "rtl" CSS classes need to have the #noflip
|
|
|
|
* annotation. The non-rtl counterparts should ideally have them as well, but,
|
|
|
|
* since .goog-menuitem existed without .goog-menuitem-rtl for so long before
|
|
|
|
* being added, there is a risk of people having templates where they are not
|
|
|
|
* rendering the .goog-menuitem-rtl class when in RTL and instead rely solely
|
|
|
|
* on the BiDi flipping by the CSS compiler. That's why we're not adding the
|
|
|
|
* #noflip to .goog-menuitem.
|
|
|
|
*/
|
|
|
|
'.blocklyWidgetDiv .goog-menuitem {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'color: #000;',
|
|
|
|
'font: normal 13px Arial, sans-serif;',
|
|
|
|
'list-style: none;',
|
|
|
|
'margin: 0;',
|
2014-09-08 14:26:52 -07:00
|
|
|
/* 28px on the left for icon or checkbox; 7em on the right for shortcut. */
|
2015-10-12 17:30:41 -07:00
|
|
|
'padding: 4px 7em 4px 28px;',
|
|
|
|
'white-space: nowrap;',
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
/* BiDi override for the resting state. */
|
|
|
|
/* #noflip */
|
|
|
|
'.blocklyWidgetDiv .goog-menuitem.goog-menuitem-rtl {',
|
|
|
|
/* Flip left/right padding for BiDi. */
|
2015-10-12 17:30:41 -07:00
|
|
|
'padding-left: 7em;',
|
|
|
|
'padding-right: 28px;',
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
/* If a menu doesn't have checkable items or items with icons, remove padding. */
|
|
|
|
'.blocklyWidgetDiv .goog-menu-nocheckbox .goog-menuitem,',
|
|
|
|
'.blocklyWidgetDiv .goog-menu-noicon .goog-menuitem {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'padding-left: 12px;',
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
/*
|
|
|
|
* If a menu doesn't have items with shortcuts, leave just enough room for
|
|
|
|
* submenu arrows, if they are rendered.
|
|
|
|
*/
|
|
|
|
'.blocklyWidgetDiv .goog-menu-noaccel .goog-menuitem {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'padding-right: 20px;',
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
'.blocklyWidgetDiv .goog-menuitem-content {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'color: #000;',
|
|
|
|
'font: normal 13px Arial, sans-serif;',
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
/* State: disabled. */
|
|
|
|
'.blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-accel,',
|
|
|
|
'.blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-content {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'color: #ccc !important;',
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
'.blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-icon {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'opacity: 0.3;',
|
|
|
|
'-moz-opacity: 0.3;',
|
|
|
|
'filter: alpha(opacity=30);',
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
/* State: hover. */
|
|
|
|
'.blocklyWidgetDiv .goog-menuitem-highlight,',
|
|
|
|
'.blocklyWidgetDiv .goog-menuitem-hover {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'background-color: #d6e9f8;',
|
2014-09-08 14:26:52 -07:00
|
|
|
/* Use an explicit top and bottom border so that the selection is visible',
|
|
|
|
* in high contrast mode. */
|
2015-10-12 17:30:41 -07:00
|
|
|
'border-color: #d6e9f8;',
|
|
|
|
'border-style: dotted;',
|
|
|
|
'border-width: 1px 0;',
|
|
|
|
'padding-bottom: 3px;',
|
|
|
|
'padding-top: 3px;',
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
/* State: selected/checked. */
|
|
|
|
'.blocklyWidgetDiv .goog-menuitem-checkbox,',
|
|
|
|
'.blocklyWidgetDiv .goog-menuitem-icon {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'background-repeat: no-repeat;',
|
|
|
|
'height: 16px;',
|
|
|
|
'left: 6px;',
|
|
|
|
'position: absolute;',
|
|
|
|
'right: auto;',
|
|
|
|
'vertical-align: middle;',
|
|
|
|
'width: 16px;',
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
/* BiDi override for the selected/checked state. */
|
|
|
|
/* #noflip */
|
|
|
|
'.blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-checkbox,',
|
|
|
|
'.blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-icon {',
|
|
|
|
/* Flip left/right positioning. */
|
2015-10-12 17:30:41 -07:00
|
|
|
'left: auto;',
|
|
|
|
'right: 6px;',
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
'.blocklyWidgetDiv .goog-option-selected .goog-menuitem-checkbox,',
|
|
|
|
'.blocklyWidgetDiv .goog-option-selected .goog-menuitem-icon {',
|
|
|
|
/* Client apps may override the URL at which they serve the sprite. */
|
2015-10-12 17:30:41 -07:00
|
|
|
'background: url(//ssl.gstatic.com/editor/editortoolbar.png) no-repeat -512px 0;',
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
/* Keyboard shortcut ("accelerator") style. */
|
|
|
|
'.blocklyWidgetDiv .goog-menuitem-accel {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'color: #999;',
|
2014-09-08 14:26:52 -07:00
|
|
|
/* Keyboard shortcuts are untranslated; always left-to-right. */
|
|
|
|
/* #noflip */
|
2015-10-12 17:30:41 -07:00
|
|
|
'direction: ltr;',
|
|
|
|
'left: auto;',
|
|
|
|
'padding: 0 6px;',
|
|
|
|
'position: absolute;',
|
|
|
|
'right: 0;',
|
|
|
|
'text-align: right;',
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
/* BiDi override for shortcut style. */
|
|
|
|
/* #noflip */
|
|
|
|
'.blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-accel {',
|
|
|
|
/* Flip left/right positioning and text alignment. */
|
2015-10-12 17:30:41 -07:00
|
|
|
'left: 0;',
|
|
|
|
'right: auto;',
|
|
|
|
'text-align: left;',
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
/* Mnemonic styles. */
|
|
|
|
'.blocklyWidgetDiv .goog-menuitem-mnemonic-hint {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'text-decoration: underline;',
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
'.blocklyWidgetDiv .goog-menuitem-mnemonic-separator {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'color: #999;',
|
|
|
|
'font-size: 12px;',
|
|
|
|
'padding-left: 4px;',
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
|
|
|
/* Copied from: goog/css/menuseparator.css */
|
|
|
|
/*
|
|
|
|
* Copyright 2009 The Closure Library Authors. All Rights Reserved.
|
|
|
|
*
|
|
|
|
* Use of this source code is governed by the Apache License, Version 2.0.
|
|
|
|
* See the COPYING file for details.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Standard styling for menus created by goog.ui.MenuSeparatorRenderer.
|
|
|
|
*
|
|
|
|
* @author attila@google.com (Attila Bodis)
|
|
|
|
*/
|
|
|
|
|
|
|
|
'.blocklyWidgetDiv .goog-menuseparator {',
|
2015-10-12 17:30:41 -07:00
|
|
|
'border-top: 1px solid #ccc;',
|
|
|
|
'margin: 4px 0;',
|
|
|
|
'padding: 0;',
|
2014-09-08 14:26:52 -07:00
|
|
|
'}',
|
|
|
|
|
2013-10-30 14:46:03 -07:00
|
|
|
''
|
|
|
|
];
|