You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdelibs/kdeui/kfontcombo.h

180 lines
4.7 KiB

/* This file is part of the KDE libraries
Copyright (c) 2001 Malte Starostik <malte@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2 as published by the Free Software Foundation.
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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
// $Id$
#ifndef _KFONTCOMBO_H_
#define _KFONTCOMBO_H_
#include <kcombobox.h>
/**
* @short A combobox that lists the available fonts.
*
* The items are painted using the respective font itself, so the user
* can easily choose a font based on its look. This can be turned off
* globally if the user wishes so.
*
* @author Malte Starostik <malte@kde.org>
*/
class KDEUI_EXPORT KFontCombo : public KComboBox
{
Q_OBJECT
Q_PROPERTY(QString family READ currentFont WRITE setCurrentFont)
Q_PROPERTY(bool bold READ bold WRITE setBold DESIGNABLE true)
Q_PROPERTY(bool italic READ italic WRITE setItalic DESIGNABLE true)
Q_PROPERTY(bool underline READ underline WRITE setUnderline DESIGNABLE true)
Q_PROPERTY(bool strikeOut READ strikeOut WRITE setStrikeOut DESIGNABLE true)
Q_PROPERTY(int fontSize READ size WRITE setSize DESIGNABLE true)
public:
/**
* Constructor
*
* @param parent The parent widget
* @param name The object name for the widget
*/
KFontCombo(QWidget *parent, const char *name = 0);
/**
* Constructor that takes an already initialzed font list
*
* @param fonts A list of fonts to show
* @param parent The parent widget
* @param name The object name for the widget
*/
KFontCombo(const QStringList &fonts, QWidget *parent, const char *name = 0);
/**
* Destructor
*/
virtual ~KFontCombo();
/**
* Sets the font list.
*
* @param fonts Font list to show
*/
void setFonts(const QStringList &fonts);
/**
* Sets the currently selected font.
*
* @param family Font to select.
*/
void setCurrentFont(const QString &family);
/**
* @return the currently selected font.
*/
QString currentFont() const;
/**
* Sets the listed fonts to bold or normal.
*
* @param bold Set to true to display fonts in bold
*/
void setBold(bool bold);
/**
* Returns the current bold status.
*
* @return true if fonts are bold
*/
bool bold() const;
/**
* Sets the listed fonts to italic or regular.
*
* @param italic Set to true to display fonts italic
*/
void setItalic(bool italic);
/**
* Returns the current italic status
*
* @return True if fonts are italic
*/
bool italic() const;
/**
* Sets the listed fonts to underlined or not underlined
*
* @param underline Set to true to display fonts underlined
*/
void setUnderline(bool underline);
/**
* Returns the current underline status
*
* @return True if fonts are underlined
*/
bool underline() const;
/**
* Sets the listed fonts to striked out or not
*
* @param strikeOut Set to true to display fonts striked out
*/
void setStrikeOut(bool strikeOut);
/**
* Returns the current strike out status
*
* @return True if fonts are striked out
*/
bool strikeOut() const;
/**
* Sets the listed fonts' size
*
* @param size Set to the point size to display the fonts in
*/
void setSize(int size);
/**
* Returns the current font size
*
* @return The point size of the fonts
*/
int size() const;
/**
* Returns the user's setting of whether the items should be painted
* in the respective fonts or not
*
* @return True if the respective fonts are used for painting
*/
static bool displayFonts();
virtual void setCurrentItem(int i);
protected slots:
/**
* @internal
* Listens to highlighted(int)
*/
void slotModified( int i );
protected:
/**
* Updated the combo's listBox() to reflect changes made to the
* fonts' attributed
*/
void updateFonts();
private:
void init();
private:
friend class KFontListItem;
protected:
virtual void virtual_hook( int id, void* data );
private:
struct KFontComboPrivate *d;
};
#endif