function _initSettings()

in openmeetings-web/src/main/front/src/wb/wb-tools.js [144:254]


		function _initSettings() {
			function setStyle(canvas, styleName, value) {
				const o = canvas.getActiveObject();
				if (!o) {
					return;
				}
				if (o.setSelectionStyles && o.isEditing) {
					const style = {};
					style[styleName] = value;
					o.setSelectionStyles(style);
				} else {
					o[styleName] = value;
				}
				canvas.requestRenderAll();
			}
			settings.find('.wb-prop-b, .wb-prop-i')
				.button()
				.click(function() {
					$(this).toggleClass('ui-state-active selected');
					const btn = _getBtn()
						, isB = $(this).hasClass('wb-prop-b')
						, style = isB ? 'bold' : 'italic'
						, v = $(this).hasClass('selected')
						, val = v ? style : '';
					btn.data().obj.style[style] = v;
					wb.eachCanvas(function(canvas) {
						setStyle(canvas, isB ? 'fontWeight' : 'fontStyle', val)
					});
				});
			settings.find('.wb-prop-lock-color, .wb-prop-lock-fill')
				.button({icon: 'ui-icon-locked', showLabel: false})
				.click(function() {
					const btn = _getBtn()
						, isColor = $(this).hasClass('wb-prop-lock-color')
						, c = settings.find(isColor ? '.wb-prop-color' : '.wb-prop-fill')
						, enabled = $(this).button('option', 'icon') === 'ui-icon-locked';
					$(this).button('option', 'icon', enabled ? 'ui-icon-unlocked' : 'ui-icon-locked');
					c.prop('disabled', !enabled);
					btn.data().obj[isColor ? 'stroke' : 'fill'].enabled = enabled;
				});
			settings.find('.wb-prop-color').change(function() {
				const btn = _getBtn();
				if (btn.length === 1) {
					const v = $(this).val();
					btn.data().obj.stroke.color = v;
					wb.eachCanvas(function(canvas) {
						if ('paint' === mode) {
							canvas.freeDrawingBrush.color = v;
						} else {
							setStyle(canvas, 'stroke', v)
						}
					});
				}
			});
			settings.find('.wb-prop-width').change(function() {
				const btn = _getBtn();
				if (btn.length === 1) {
					const v = 1 * $(this).val();
					btn.data().obj.stroke.width = v;
					wb.eachCanvas(function(canvas) {
						if ('paint' === mode) {
							canvas.freeDrawingBrush.width = v;
						} else {
							setStyle(canvas, 'strokeWidth', v)
						}
					});
				}
			});
			settings.find('.wb-prop-fill').change(function() {
				const btn = _getBtn();
				if (btn.length === 1) {
					const v = $(this).val();
					btn.data().obj.fill.color = v;
					wb.eachCanvas(function(canvas) {
						setStyle(canvas, 'fill', v)
					});
				}
			});
			settings.find('.wb-prop-opacity').change(function() {
				const btn = _getBtn();
				if (btn.length === 1) {
					const v = (1 * $(this).val()) / 100;
					btn.data().obj.opacity = v;
					wb.eachCanvas(function(canvas) {
						if ('paint' === mode) {
							canvas.freeDrawingBrush.opacity = v;
						} else {
							setStyle(canvas, 'opacity', v)
						}
					});
				}
			});
			settings.find('.ui-dialog-titlebar-close').click(function() {
				settings.hide();
			});
			settings.draggable({
				scroll: false
				, handle: '.ui-dialog-titlebar'
				, containment: 'body'
				, start: function() {
					if (!!settings.css('bottom')) {
						settings.css('bottom', '').css(Settings.isRtl ? 'left' : 'right', '');
					}
				}
				, drag: function() {
					if (settings.position().x + settings.width() >= settings.parent().width()) {
						return false;
					}
				}
			});
		}