00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
#ifndef _K_FONT_DIALOG_H_
00027
#define _K_FONT_DIALOG_H_
00028
00029
#include <qlineedit.h>
00030
#include <qbutton.h>
00031
#include <kdialogbase.h>
00032
00033
class QComboBox;
00034
class QCheckBox;
00035
class QFont;
00036
class QGroupBox;
00037
class QLabel;
00038
class QStringList;
00039
class KListBox;
00040
class KIntNumInput;
00051 class KFontChooser :
public QWidget
00052 {
00053 Q_OBJECT
00054 Q_PROPERTY(
QFont font READ font WRITE
setFont )
00055
00056
public:
00062 enum FontColumn { FamilyList=0x01, StyleList=0x02, SizeList=0x04};
00063
00069 enum FontDiff { FontDiffFamily=0x01, FontDiffStyle=0x02, FontDiffSize=0x04 };
00070
00105
KFontChooser(
QWidget *parent = 0L,
const char *name = 0L,
00106
bool onlyFixed =
false,
00107
const QStringList &fontList =
QStringList(),
00108
bool makeFrame =
true,
int visibleListSize=8,
00109
bool diff =
false, QButton::ToggleState *sizeIsRelativeState = 0L );
00110
00114
virtual ~KFontChooser();
00115
00127
void enableColumn(
int column,
bool state );
00128
00136
void setFont(
const QFont &font,
bool onlyFixed =
false );
00137
00142
int fontDiffFlags();
00143
00147 QFont font()
const {
return selFont; }
00148
00152
void setColor(
const QColor & col );
00153
00158
QColor color() const;
00159
00163
void setBackgroundColor( const
QColor & col );
00164
00169
QColor backgroundColor() const;
00170
00177
void setSizeIsRelative(
QButton::ToggleState relative );
00178
00183
QButton::ToggleState sizeIsRelative() const;
00184
00185
00189 QString sampleText()
const {
return sampleEdit->text(); }
00190
00201 void setSampleText(
const QString &text )
00202 {
00203 sampleEdit->setText( text );
00204 }
00205
00213 static QString getXLFD(
const QFont &theFont )
00214 {
return theFont.rawName(); }
00215
00227 enum FontListCriteria { FixedWidthFonts=0x01, ScalableFonts=0x02, SmoothScalableFonts=0x04 };
00228
00236
static void getFontList(
QStringList &list, uint fontListCriteria);
00237
00241
virtual QSize sizeHint(
void ) const;
00242
00243 signals:
00247
void fontSelected( const
QFont &font );
00248
00249 private slots:
00250
void toggled_checkbox();
00251
void family_chosen_slot(const
QString&);
00252
void size_chosen_slot(const QString&);
00253
void style_chosen_slot(const QString&);
00254
void displaySample(const
QFont &font);
00255
void showXLFDArea(
bool);
00256
void size_value_slot(
int);
00257 private:
00258
void fillFamilyListBox(
bool onlyFixedFonts = false);
00259
void fillSizeList();
00260
00261 static
void addFont(
QStringList &list, const
char *xfont );
00262
00263
void setupDisplay();
00264
00265
00266
00267
QStringList fontList;
00268
00269
KIntNumInput *sizeOfFont;
00270
00271
QLineEdit *sampleEdit;
00272
QLineEdit *xlfdEdit;
00273
00274
QLabel *familyLabel;
00275
QLabel *styleLabel;
00276
QCheckBox *familyCheckbox;
00277
QCheckBox *styleCheckbox;
00278
QCheckBox *sizeCheckbox;
00279
QLabel *sizeLabel;
00280
KListBox *familyListBox;
00281
KListBox *styleListBox;
00282
KListBox *sizeListBox;
00283
QComboBox *charsetsCombo;
00284
QCheckBox *sizeIsRelativeCheckBox;
00285
00286
QFont selFont;
00287
00288 QString selectedStyle;
00289
int selectedSize;
00290
QMap<QString, QString> currentStyles;
00291
00292
bool usingFixed;
00293
00294 protected:
00295 virtual
void virtual_hook(
int id,
void* data );
00296 private:
00297 class KFontChooserPrivate;
00298 KFontChooserPrivate *d;
00299 };
00300
00324 class
KFontDialog : public
KDialogBase {
00325 Q_OBJECT
00326
00327
public:
00350
KFontDialog(
QWidget *parent = 0L,
const char *name = 0,
00351
bool onlyFixed =
false,
bool modal =
false,
00352
const QStringList &fontlist =
QStringList(),
00353
bool makeFrame =
true,
bool diff =
false,
00354 QButton::ToggleState *sizeIsRelativeState = 0L );
00355
00363 void setFont(
const QFont &font,
bool onlyFixed =
false )
00364 { chooser->setFont(font, onlyFixed); }
00365
00369 QFont font()
const {
return chooser->font(); }
00370
00377 void setSizeIsRelative( QButton::ToggleState relative )
00378 { chooser->setSizeIsRelative( relative ); }
00379
00384 QButton::ToggleState
sizeIsRelative()
const
00385
{
return chooser->sizeIsRelative(); }
00386
00406
static int getFont(
QFont &theFont,
bool onlyFixed =
false,
00407
QWidget *parent = 0L,
bool makeFrame =
true,
00408 QButton::ToggleState *sizeIsRelativeState = 0L );
00409
00442
static int getFontDiff(
QFont &theFont,
int &diffFlags,
bool onlyFixed =
false,
00443
QWidget *parent = 0L,
bool makeFrame =
true,
00444 QButton::ToggleState *sizeIsRelativeState = 0L );
00445
00465
static int getFontAndText(
QFont &theFont, QString &theString,
00466
bool onlyFixed =
false,
QWidget *parent = 0L,
00467
bool makeFrame =
true,
00468 QButton::ToggleState *sizeIsRelativeState = 0L );
00469
00470 signals:
00476
void fontSelected(
const QFont &font );
00477
00478
protected:
00479
KFontChooser *chooser;
00480
00481
protected:
00482
virtual void virtual_hook(
int id,
void* data );
00483
private:
00484
class KFontDialogPrivate;
00485 KFontDialogPrivate *d;
00486
00487 };
00488
00489
#endif