From fcfed662cfd6068f5fa1124165119d694782c028 Mon Sep 17 00:00:00 2001 From: Vilius Date: Mon, 4 Dec 2017 23:06:19 +0200 Subject: [PATCH] text tool update - align, font, fixed styles --- src/css/layout.css | 12 +++++-- src/js/core/gui/gui-details.js | 61 +++++++++++++++++++++++++++++----- src/js/tools/text.js | 23 +++++++++++-- 3 files changed, 83 insertions(+), 13 deletions(-) diff --git a/src/css/layout.css b/src/css/layout.css index 9ffce27b..41dc3ed3 100644 --- a/src/css/layout.css +++ b/src/css/layout.css @@ -443,13 +443,19 @@ width: 70px; padding: 3px 5px; } +.block.details select{ + width: calc(100% - 70px); + height: 23px; +} .block.details button{ - width: 25px; height: 23px; - overflow: hidden; - opacity: 0.3; border: 1px solid #444; background-color: var(--background-color-medium); +} +.block.details button.reset{ + width: 25px; + overflow: hidden; + opacity: 0.3; background-image: url(images/sprites.png); background-repeat: no-repeat; background-position: -747px 2px; diff --git a/src/js/core/gui/gui-details.js b/src/js/core/gui/gui-details.js index 60978fff..f9f77860 100644 --- a/src/js/core/gui/gui-details.js +++ b/src/js/core/gui/gui-details.js @@ -10,17 +10,17 @@ var template = `
X - +
Y: - +
Width: - +
Height: @@ -41,18 +41,35 @@ var template = `

-
- Text: +
+ + +
Size:
- - - + Align: + +
+
+ Font: +
Stroke: @@ -97,6 +114,8 @@ class GUI_details_class { this.render_general_param('italic', events); this.render_general_param('stroke', events); this.render_general_param('stroke_size', events); + this.render_general_select_param('align', events); + this.render_general_select_param('family', events); } render_general(key, events) { @@ -195,6 +214,32 @@ class GUI_details_class { }); } } + + render_general_select_param(key, events){ + var layer = config.layer; + + if (layer != undefined) { + var target = document.getElementById('detail_param_' + key); + + if (layer.params[key] == null) { + target.value = ''; + target.disabled = true; + } + else { + target.value = layer.params[key].value; + target.disabled = false; + } + } + + if (events) { + //events + document.getElementById('detail_param_' + key).addEventListener('change', function (e) { + var value = this.value; + config.layer.params[key].value = value; + config.need_render = true; + }); + } + } /** * item: color diff --git a/src/js/tools/text.js b/src/js/tools/text.js index 8ec417d7..87d52b71 100644 --- a/src/js/tools/text.js +++ b/src/js/tools/text.js @@ -2,6 +2,7 @@ import config from './../config.js'; import Base_tools_class from './../core/base-tools.js'; import Base_layers_class from './../core/base-layers.js'; import Helper_class from './../libs/helpers.js'; +import Dialog_class from './../libs/popup.js'; class Text_class extends Base_tools_class { @@ -9,6 +10,7 @@ class Text_class extends Base_tools_class { super(); this.Base_layers = new Base_layers_class(); this.Helper = new Helper_class(); + this.POP = new Dialog_class(); this.ctx = ctx; this.name = 'text'; this.layer = {}; @@ -73,6 +75,7 @@ class Text_class extends Base_tools_class { mouseup(e) { var mouse = this.get_mouse_info(e); + var params = this.getParams(); if (mouse.valid == false || mouse.click_valid == false) { return; } @@ -83,13 +86,29 @@ class Text_class extends Base_tools_class { if (width == 0 && height == 0) { //same coordinates - cancel width = config.WIDTH - this.layer.x - Math.round(config.WIDTH / 50); - height = 100; + height = params.size; } - + width = Math.max(width, params.size * 0.5 * 12); + height = Math.max(height, params.size); //more data config.layer.width = width; config.layer.height = height; this.Base_layers.render(); + + //ask for text + var settings = { + title: 'Edit text', + params: [ + {name: "text", title: "Text:", value: "Text example"}, + ], + on_finish: function (params) { + if(config.layer.type == 'text' && params.text != ''){ + config.layer.params.text = params.text; + config.need_render = true; + } + }, + }; + this.POP.show(settings); } render(ctx, layer) {