diff options
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/fontgen/fontgen.pro | 12 | ||||
| -rw-r--r-- | tools/fontgen/generator.cc | 87 | ||||
| -rw-r--r-- | tools/fontgen/generator.h | 52 | ||||
| -rw-r--r-- | tools/fontgen/main.cc | 43 | 
4 files changed, 194 insertions, 0 deletions
| diff --git a/tools/fontgen/fontgen.pro b/tools/fontgen/fontgen.pro new file mode 100644 index 0000000..b27f716 --- /dev/null +++ b/tools/fontgen/fontgen.pro @@ -0,0 +1,12 @@ +TEMPLATE = app +TARGET = FontGen +DEPENDPATH += . +INCLUDEPATH += . +#CONFIG += console debug +QT += widgets + +# Input +HEADERS += generator.h + +SOURCES += generator.cc \ +           main.cc diff --git a/tools/fontgen/generator.cc b/tools/fontgen/generator.cc new file mode 100644 index 0000000..b2a07b5 --- /dev/null +++ b/tools/fontgen/generator.cc @@ -0,0 +1,87 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/*************************************************************************** + *            generator.cc + * + *  Mon Nov 21 20:16:00 CEST 2016 + *  Copyright 2016 Lars Muldjord + *  muldjordlars@gmail.com + ****************************************************************************/ + +/* + *  This file is part of DrumGizmo. + * + *  DrumGizmo is free software; you can redistribute it and/or modify + *  it under the terms of the GNU Lesser General Public License as published by + *  the Free Software Foundation; either version 3 of the License, or + *  (at your option) any later version. + * + *  DrumGizmo 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 Lesser General Public License for more details. + * + *  You should have received a copy of the GNU Lesser General Public License + *  along with DrumGizmo; if not, write to the Free Software + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. + */ + +#include "generator.h" + +#include <QLabel> +#include <QPushButton> +#include <QVBoxLayout> +#include <QImage> +#include <QPainter> +#include <QPen> +#include <QFont> + +Generator::Generator() +{ +  QLabel *fontLabel = new QLabel("Font family:"); +  fontLineEdit = new QLineEdit("DejaVu"); +  QLabel *sizeLabel = new QLabel("Font px size:"); +  sizeLineEdit = new QLineEdit("12"); +  QLabel *outputLabel = new QLabel("Output file:"); +  outputLineEdit = new QLineEdit("output"); + +  QVBoxLayout *layout = new QVBoxLayout(); +  QPushButton *renderButton = new QPushButton("Generate"); +  connect(renderButton, SIGNAL(clicked()), this, SLOT(initGenerate())); + +  layout->addWidget(fontLabel); +  layout->addWidget(fontLineEdit); +  layout->addWidget(sizeLabel); +  layout->addWidget(sizeLineEdit); +  layout->addWidget(outputLabel); +  layout->addWidget(outputLineEdit); +  layout->addWidget(renderButton); + +  setLayout(layout); +} + +Generator::~Generator() +{ +} + +void Generator::initGenerate() +{ +  qDebug("Generating font to file '%s' using font '%s' at size '%s'...", +         outputLineEdit->text().toStdString().c_str(), +         fontLineEdit->text().toStdString().c_str(), +         sizeLineEdit->text().toStdString().c_str()); + +  QImage image(500, 16, QImage::Format_ARGB32); +  image.fill(Qt::transparent); + +  QFont font; +  font.setFamily(fontLineEdit->text()); +  font.setPixelSize(sizeLineEdit->text().toInt()); + +  QPainter p(&image); +  p.setPen(QPen(QColor(0, 0, 0, 255))); +  p.setFont(font); + +  p.drawText(0, 10, "AjEg"); +   +  image.save(outputLineEdit->text() + ".png"); +} diff --git a/tools/fontgen/generator.h b/tools/fontgen/generator.h new file mode 100644 index 0000000..64b59df --- /dev/null +++ b/tools/fontgen/generator.h @@ -0,0 +1,52 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/*************************************************************************** + *            generator.h + * + *  Mon Nov 21 20:16:00 CEST 2016 + *  Copyright 2016 Lars Muldjord + *  muldjordlars@gmail.com + ****************************************************************************/ + +/* + *  This file is part of DrumGizmo. + * + *  DrumGizmo is free software; you can redistribute it and/or modify + *  it under the terms of the GNU Lesser General Public License as published by + *  the Free Software Foundation; either version 3 of the License, or + *  (at your option) any later version. + * + *  DrumGizmo 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 Lesser General Public License for more details. + * + *  You should have received a copy of the GNU Lesser General Public License + *  along with DrumGizmo; if not, write to the Free Software + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. + */ + +#ifndef _GENERATOR_H +#define _GENERATOR_H + +#include <QWidget> +#include <QLineEdit> + +class Generator : public QWidget +{ +  Q_OBJECT; + +public: +  Generator(); +  ~Generator(); + +private slots: +  void initGenerate(); + +private: +  QLineEdit *fontLineEdit; +  QLineEdit *sizeLineEdit; +  QLineEdit *outputLineEdit; +   +}; + +#endif // _GENERATOR_H diff --git a/tools/fontgen/main.cc b/tools/fontgen/main.cc new file mode 100644 index 0000000..701e03b --- /dev/null +++ b/tools/fontgen/main.cc @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/*************************************************************************** + *            main.cc + * + *  Mon Nov 21 20:16:00 CEST 2016 + *  Copyright 2016 Lars Muldjord + *  muldjordlars@gmail.com + ****************************************************************************/ + +/* + *  This file is part of DrumGizmo. + * + *  DrumGizmo is free software; you can redistribute it and/or modify + *  it under the terms of the GNU Lesser General Public License as published by + *  the Free Software Foundation; either version 3 of the License, or + *  (at your option) any later version. + * + *  DrumGizmo 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 Lesser General Public License for more details. + * + *  You should have received a copy of the GNU Lesser General Public License + *  along with DrumGizmo; if not, write to the Free Software + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. + */ + +#include <QApplication> +#include <QDir> + +#include "generator.h" + +int main(int argc, char *argv[]) +{ +  QApplication app(argc, argv); +   +  QDir::setCurrent(QApplication::applicationDirPath()); + +  Generator generator; +  generator.show(); +   +  return app.exec(); +} | 
