| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- /**
- * Copyright (c) 2011-2018 by Andrew Mustun. All rights reserved.
- *
- * This file is part of the QCAD project.
- *
- * QCAD is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * QCAD is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with QCAD.
- */
- include("../Shape.js");
- include("../../DrawBasedOnRectangleSize.js");
- /**
- * \class ShapeRectangleSize
- * \brief Rectangle from point and size.
- * \ingroup ecma_draw_shape
- */
- function ShapeRectangleSize(guiAction) {
- DrawBasedOnRectangleSize.call(this, guiAction);
- this.createPolyline = false;
- this.fill = false;
- this.roundCorners = false;
- this.radius = 1.0;
- this.includeBasePath = ShapeRectangleSize.includeBasePath;
- this.dialogUiFile = "ShapeRectangleSizeDialog.ui";
- this.setUiOptions(["../Shape.ui", "ShapeRectangleSize.ui"]);
- }
- ShapeRectangleSize.prototype = new DrawBasedOnRectangleSize();
- ShapeRectangleSize.includeBasePath = includeBasePath;
- ShapeRectangleSize.prototype.getShapes = function(corners) {
- return Shape.getShapes(this, corners);
- };
- ShapeRectangleSize.prototype.slotCreatePolylineChanged = function(checked) {
- Shape.slotCreatePolylineChanged(this, checked);
- };
- ShapeRectangleSize.prototype.slotFillChanged = function(checked) {
- Shape.slotFillChanged(this, checked);
- };
- ShapeRectangleSize.prototype.slotRoundCornersChanged = function(checked) {
- Shape.slotRoundCornersChanged(this, checked);
- };
- ShapeRectangleSize.prototype.slotRadiusChanged = function(v) {
- Shape.slotRadiusChanged(this, v);
- };
- ShapeRectangleSize.prototype.initUiOptions = function(resume, optionsToolBar) {
- DrawBasedOnRectangleSize.prototype.initUiOptions.call(this, resume, optionsToolBar);
- var w;
- this.createPolyline = RSettings.getBoolValue(this.settingsGroup + "/CreatePolyline", false);
- this.fill = RSettings.getBoolValue(this.settingsGroup + "/Fill", false);
- this.roundCorners = RSettings.getBoolValue(this.settingsGroup + "/RoundCorners", false);
- this.radius = RSettings.getDoubleValue(this.settingsGroup + "/Radius", 1.0);
- w = optionsToolBar.findChild("CreatePolyline");
- if (!isNull(w)) {
- w.checked = this.createPolyline;
- }
- w = optionsToolBar.findChild("Fill");
- if (!isNull(w)) {
- w.checked = this.fill;
- }
- w = optionsToolBar.findChild("RoundCorners");
- if (!isNull(w)) {
- w.checked = this.roundCorners;
- }
- w = optionsToolBar.findChild("Radius");
- if (!isNull(w)) {
- w.setValue(this.radius);
- }
- };
- ShapeRectangleSize.prototype.hideUiOptions = function(saveToSettings) {
- DrawBasedOnRectangleSize.prototype.hideUiOptions.call(this, saveToSettings);
- RSettings.setValue(this.settingsGroup + "/CreatePolyline", this.createPolyline);
- RSettings.setValue(this.settingsGroup + "/Fill", this.fill);
- RSettings.setValue(this.settingsGroup + "/RoundCorners", this.roundCorners);
- RSettings.setValue(this.settingsGroup + "/Radius", this.radius);
- };
- ShapeRectangleSize.prototype.getOperation = function(preview) {
- var op = DrawBasedOnRectangleSize.prototype.getOperation.call(this, preview);
- if (!isNull(op)) {
- var shapes = this.getShapes(this.corners);
- Shape.complementOperation(this, this.getDocument(), op, shapes);
- }
- return op;
- };
|