/* TikZiT - a GUI diagram editor for TikZ Copyright (C) 2018 Aleks Kissinger This program 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. This program 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 this program. If not, see . */ #include "style.h" #include "tikzit.h" Style::Style() : _name("none"), _data(0) { } Style::Style(QString name, GraphElementData *data) : _name(name), _data(data) { } bool Style::isNone() { return _data == 0; } GraphElementData *Style::data() const { return _data; } QString Style::name() const { return _name; } QColor Style::strokeColor(bool tikzitOverride) const { if (_data == 0) return QColor(Qt::black); QString col = propertyWithDefault("draw", "black", tikzitOverride); return tikzit->colorByName(col); } // TODO int Style::strokeThickness() const { return 1; } QPen Style::pen() const { QPen p(strokeColor()); p.setWidthF((float)strokeThickness() * 3.0f); return p; } QString Style::propertyWithDefault(QString prop, QString def, bool tikzitOverride) const { if (_data == 0) return def; QString val; if (tikzitOverride) { val = _data->property("tikzit " + prop); if (val.isNull()) val = _data->property(prop); } else { val = _data->property(prop); } if (val.isNull()) val = def; return val; } QString Style::tikz() const { return "\\tikzstyle{" + _name + "}=" + _data->tikz(); } void Style::setName(const QString &name) { _name = name; }