|
|
|
/* 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 TDEUI_EXPORT KFontCombo : public KComboBox
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
Q_PROPERTY(TQString 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(TQWidget *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 TQStringList &fonts, TQWidget *parent, const char *name = 0);
|
|
|
|
/**
|
|
|
|
* Destructor
|
|
|
|
*/
|
|
|
|
virtual ~KFontCombo();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets the font list.
|
|
|
|
*
|
|
|
|
* @param fonts Font list to show
|
|
|
|
*/
|
|
|
|
void setFonts(const TQStringList &fonts);
|
|
|
|
/**
|
|
|
|
* Sets the currently selected font.
|
|
|
|
*
|
|
|
|
* @param family Font to select.
|
|
|
|
*/
|
|
|
|
void setCurrentFont(const TQString &family);
|
|
|
|
/**
|
|
|
|
* @return the currently selected font.
|
|
|
|
*/
|
|
|
|
TQString 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
|
|
|
|
|