summaryrefslogtreecommitdiff
path: root/client/docgen/genimage.cc
diff options
context:
space:
mode:
authordeva <deva>2011-03-24 12:53:39 +0000
committerdeva <deva>2011-03-24 12:53:39 +0000
commita3016fbf0d50bfe82e69a657328ef76370227979 (patch)
treed2895fd4c973740254d9bb72df12b54bbf837070 /client/docgen/genimage.cc
parent09c5c0783aef07e714c5613cbbf3a982774676aa (diff)
Initial commit of docgen.
Diffstat (limited to 'client/docgen/genimage.cc')
-rw-r--r--client/docgen/genimage.cc163
1 files changed, 163 insertions, 0 deletions
diff --git a/client/docgen/genimage.cc b/client/docgen/genimage.cc
new file mode 100644
index 0000000..332887c
--- /dev/null
+++ b/client/docgen/genimage.cc
@@ -0,0 +1,163 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set et sw=2 ts=2: */
+/***************************************************************************
+ * genimage.cc
+ *
+ * Wed Mar 16 11:56:22 CET 2011
+ * Copyright 2011 Bent Bisballe Nyeng
+ * deva@aasimon.org
+ ****************************************************************************/
+
+/*
+ * This file is part of Pracro.
+ *
+ * Pracro 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 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Pracro 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 Pracro; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ */
+#include "genimage.h"
+
+#include <QImage>
+#include <QPixmap>
+
+#include <QDir>
+#include <QDomDocument>
+
+#include <viewer.h>
+#include <widgets.h>
+
+QString cpr;
+QString user;
+QFont fixedfont;
+
+Viewer *viewer = NULL;
+
+extern QString output;
+
+void genImage(QString widget)
+{
+ QDomDocument node;
+
+ QDomElement elem = node.createElement(widget);
+ elem.setAttribute("name", widget);
+ elem.setAttribute("caption", "Caption");
+ elem.setAttribute("layout", "vbox");
+
+ if(widget == "lineedit" || widget == "textedit") {
+ elem.setAttribute("value", "Some text");
+ }
+
+ if(widget == "checkbox" || widget == "checkgroupbox") {
+ elem.setAttribute("truevalue", "true");
+ elem.setAttribute("falsevalue", "false");
+ elem.setAttribute("value", "true");
+ }
+
+ if(widget == "combobox" || widget == "listbox") {
+ {
+ QDomElement e = node.createElement("item");
+ e.setAttribute("caption", "List item 1");
+ e.setAttribute("value", "item1");
+ elem.appendChild(e);
+ }
+ {
+ QDomElement e = node.createElement("item");
+ e.setAttribute("caption", "List item 2");
+ e.setAttribute("value", "item2");
+ elem.appendChild(e);
+ }
+
+ {
+ QDomElement e = node.createElement("item");
+ e.setAttribute("caption", "List item 3");
+ e.setAttribute("value", "item3");
+ elem.appendChild(e);
+ }
+
+ elem.setAttribute("value", "item1");
+ }
+
+ if(widget == "altcombobox") {
+ QDomElement e = node.createElement("altitem");
+ e.setAttribute("caption", "Alt item");
+ e.setAttribute("value", "altitem");
+ e.setAttribute("innerwidget", "altitem");
+ elem.appendChild(e);
+
+ QDomElement a = node.createElement("lineedit");
+ a.setAttribute("name", "altitem");
+ a.setAttribute("value", "Some alt text");
+ e.appendChild(a);
+
+ elem.setAttribute("value", "altitem");
+ }
+
+ if(widget == "multilist") {
+ QDomElement a = node.createElement("lineedit");
+ a.setAttribute("name", "altitem");
+ a.setAttribute("value", "Value ready to be added");
+ elem.appendChild(a);
+ elem.setAttribute("value", "Some value\nAnother value");
+ }
+
+ if(widget == "frame" || widget == "checkgroupbox") {
+ QDomElement e = node.createElement("label");
+ e.setAttribute("caption", "Contained widgets.");
+ elem.appendChild(e);
+ }
+
+ if(widget == "radiobuttons") {
+ QDomElement e1 = node.createElement("radiobutton");
+ e1.setAttribute("caption", "Radio Button 1");
+ elem.appendChild(e1);
+
+ QDomElement e2 = node.createElement("radiobutton");
+ e2.setAttribute("caption", "Radio Button 2");
+ elem.appendChild(e2);
+ }
+
+ node.appendChild(elem);
+
+ Window w(node, NULL);
+ w.setValues();
+ w.qwidget()->show();
+ QPixmap pix = QPixmap::grabWidget(w.qwidget(), 0, 0);
+ QImage img = pix.toImage();
+ QRgb bg = img.pixel(img.width() - 1, img.height() - 1);
+
+ int cropvert = img.height();
+ int crophorz = img.width();
+ for(int y = img.height() - 1; y > 0; y--) {
+ for(int x = 0; x < img.width(); x++) {
+ if(img.pixel(x, y) != bg) {
+ cropvert = y;
+ y = -1; // break out of y for-loop
+ break;
+ }
+ }
+ }
+
+ for(int x = img.width() - 1; x > 0; x--) {
+ for(int y = 0; y < img.height(); y++) {
+ if(img.pixel(x, y) != bg) {
+ crophorz = x;
+ x = -1; // break out of x for-loop
+ break;
+ }
+ }
+ }
+
+ img = img.copy(0,0, crophorz + 12, cropvert + 12);
+ QDir d;d.mkdir(output + "/gfx/");
+ img.save(output + "/gfx/" + widget + ".png");
+}