mirror of
https://bitbucket.org/smil3y/kdelibs.git
synced 2025-02-24 19:02:48 +00:00

most of the changes were done trought Katie's namefsck script which convertes forward class declarations to include directives, however other fixes here and there were needed as well as some questionable changes to Q_DECLARE_TYPEINFO() macro calls because they most likely have to do the namespacing themselfs (QT_BEGIN/END_NAMESPACE, and probably will be in Katie) meaning that some of the changes may be temporary and reverted later. Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
81 lines
4.1 KiB
C++
81 lines
4.1 KiB
C++
/*********************************************************************************
|
|
* *
|
|
* Copyright (C) 2005, 2009 by Albert Astals Cid <aacid@kde.org> *
|
|
* *
|
|
* This library 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 2.1 of the License, or (at your option) version 3, or any *
|
|
* later version accepted by the membership of KDE e.V. (or its *
|
|
* successor approved by the membership of KDE e.V.), which shall *
|
|
* act as a proxy defined in Section 6 of version 3 of the license. *
|
|
* *
|
|
* This library 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 this library. If not, see <http://www.gnu.org/licenses/>. *
|
|
* *
|
|
*********************************************************************************/
|
|
|
|
#ifndef KFONTMETRICS_H
|
|
#define KFONTMETRICS_H
|
|
|
|
#include "kdeui_export.h"
|
|
#include <qglobal.h>
|
|
|
|
#include <QPainter>
|
|
#include <QSizeF>
|
|
#include <QString>
|
|
|
|
namespace KFontUtils
|
|
{
|
|
/** Modifiers for the adaptFontSize function */
|
|
enum AdaptFontSizeOption {
|
|
NoFlags = 0x01 /** No modifier */,
|
|
DoNotAllowWordWrap = 0x02 /** Do not use word wrapping */
|
|
};
|
|
Q_DECLARE_FLAGS(AdaptFontSizeOptions, AdaptFontSizeOption)
|
|
|
|
/** Helper function that calculates the biggest font size (in points) used
|
|
drawing a centered text using word wrapping.
|
|
@param painter The painter where the text will be painted. The font set
|
|
in the painter is used for the calculation. Note the
|
|
painter font size is modified by this call
|
|
@param text The text you want to draw
|
|
@param width The available width for drawing
|
|
@param height The available height for drawing
|
|
@param maxFontSize The maximum font size (in points) to consider
|
|
@param minFontSize The minimum font size (in points) to consider
|
|
@param flags The modifiers for how the text is painted
|
|
@return The calculated biggest font size (in points) that draws the text
|
|
in the given dimensions. Can return smaller than minFontSize,
|
|
that means the text doesn't fit in the given rectangle. Can
|
|
return -1 on error
|
|
@since KDE 4.7
|
|
*/
|
|
qreal KDEUI_EXPORT adaptFontSize(QPainter &painter,
|
|
const QString &text,
|
|
qreal width,
|
|
qreal height,
|
|
qreal maxFontSize = 28.0,
|
|
qreal minFontSize = 1.0,
|
|
AdaptFontSizeOptions flags = NoFlags);
|
|
|
|
/** Convenience function for adaptFontSize that accepts a QSizeF instead two qreals
|
|
@since KDE 4.7
|
|
*/
|
|
qreal KDEUI_EXPORT adaptFontSize(QPainter &painter,
|
|
const QString &text,
|
|
const QSizeF &availableSize,
|
|
qreal maxFontSize = 28.0,
|
|
qreal minFontSize = 1.0,
|
|
AdaptFontSizeOptions flags = NoFlags);
|
|
}
|
|
|
|
Q_DECLARE_OPERATORS_FOR_FLAGS(KFontUtils::AdaptFontSizeOptions)
|
|
|
|
#endif
|
|
|