]> Git trees. - libqmvoc.git/commitdiff
moved fontutils.h from kanagram/src into here so both kanagram and blinken can use...
authorJeremy Paul Whiting <jpwhiting@kde.org>
Fri, 26 Oct 2007 21:11:20 +0000 (21:11 +0000)
committerJeremy Paul Whiting <jpwhiting@kde.org>
Fri, 26 Oct 2007 21:11:20 +0000 (21:11 +0000)
svn path=/trunk/KDE/kdeedu/libkdeedu/; revision=729757

kdeeduui/fontutils.cpp [new file with mode: 0644]
kdeeduui/fontutils.h [new file with mode: 0644]

diff --git a/kdeeduui/fontutils.cpp b/kdeeduui/fontutils.cpp
new file mode 100644 (file)
index 0000000..8d4371b
--- /dev/null
@@ -0,0 +1,34 @@
+/***************************************************************************
+ *   Copyright (C) 2005-2006 by Albert Astals Cid <aacid@kde.org>          *
+ *                                                                         *
+ *   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 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ ***************************************************************************/
+
+#include "fontutils.h"
+
+#include <qpainter.h>
+
+int fontUtils::fontSize(QPainter &p, const QString &s1, int w, int h)
+{
+    int size;
+    QRect aux1;
+    bool done = false;
+
+    size = 28;
+
+    while (!done && size > 1)
+    {
+        QFont f = p.font();
+        f.setPointSize(size);
+        p.setFont(f);
+        aux1 = p.boundingRect(QRect(0, 0, w, h), Qt::TextWordWrap | Qt::AlignCenter, s1);
+        if (aux1.width() == 0 || aux1.height() == 0) return -1;
+        else if (aux1.width() > w || aux1.height() > h) size = qMin(w * size / aux1.width(), h * size / aux1.height());
+        else done = true;
+    }
+
+    return size;
+}
diff --git a/kdeeduui/fontutils.h b/kdeeduui/fontutils.h
new file mode 100644 (file)
index 0000000..a0f8bed
--- /dev/null
@@ -0,0 +1,24 @@
+/***************************************************************************
+ *   Copyright (C) 2005 by Albert Astals Cid <tsdgeos@terra.es>            *
+ *                                                                         *
+ *   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 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ ***************************************************************************/
+
+#ifndef FONTUTILS_H
+#define FONTUTILS_H
+
+#include "libkdeedu_ui_export.h"
+
+class QPainter;
+class QString;
+
+namespace fontUtils
+{
+       int KDEEDUUI_EXPORT fontSize(QPainter &p, const QString &s1, int w, int h);
+}
+
+#endif
+