diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-11-08 12:31:36 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-11-08 12:31:36 -0600 |
commit | d796c9dd933ab96ec83b9a634feedd5d32e1ba3f (patch) | |
tree | 6e3dcca4f77e20ec8966c666aac7c35bd4704053 /examples/qfd | |
download | tqt3-d796c9dd933ab96ec83b9a634feedd5d32e1ba3f.tar.gz tqt3-d796c9dd933ab96ec83b9a634feedd5d32e1ba3f.zip |
Test conversion to TQt3 from Qt3 8c6fc1f8e35fd264dd01c582ca5e7549b32ab731
Diffstat (limited to 'examples/qfd')
-rw-r--r-- | examples/qfd/fontdisplayer.cpp | 155 | ||||
-rw-r--r-- | examples/qfd/fontdisplayer.h | 47 | ||||
-rw-r--r-- | examples/qfd/qfd.cpp | 32 | ||||
-rw-r--r-- | examples/qfd/qfd.doc | 28 | ||||
-rw-r--r-- | examples/qfd/qfd.pro | 10 |
5 files changed, 272 insertions, 0 deletions
diff --git a/examples/qfd/fontdisplayer.cpp b/examples/qfd/fontdisplayer.cpp new file mode 100644 index 000000000..eecb16143 --- /dev/null +++ b/examples/qfd/fontdisplayer.cpp @@ -0,0 +1,155 @@ +/**************************************************************************** +** +** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. +** +** This file is part of an example program for TQt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ + +#include "fontdisplayer.h" +#include <qapplication.h> +#include <qslider.h> +#include <qspinbox.h> +#include <qpainter.h> +#include <qtoolbar.h> +#include <qstatusbar.h> +#include <qlabel.h> +#include <qpushbutton.h> +#include <qfontdialog.h> +#include <stdlib.h> + + +FontRowTable::FontRowTable( TQWidget* parent, const char* name ) : + TQFrame(parent,name) +{ + setBackgroundMode(PaletteBase); + setFrameStyle(Panel|Sunken); + setMargin(8); + setRow(0); + tablefont = TQApplication::font(); +} + +TQSize FontRowTable::sizeHint() const +{ + return 24*cellSize()+TQSize(2,2)*(margin()+frameWidth()); +} + +TQSize FontRowTable::cellSize() const +{ + TQFontMetrics fm = fontMetrics(); + return TQSize( fm.maxWidth(), fm.lineSpacing()+1 ); +} + +void FontRowTable::paintEvent( TQPaintEvent* e ) +{ + TQFrame::paintEvent(e); + TQPainter p(this); + p.setClipRegion(e->region()); + TQRect r = e->rect(); + TQFontMetrics fm = fontMetrics(); + int ml = frameWidth()+margin() + 1 + TQMAX(0,-fm.minLeftBearing()); + int mt = frameWidth()+margin(); + TQSize cell((width()-15-ml)/16,(height()-15-mt)/16); + + if ( !cell.width() || !cell.height() ) + return; + + int mini = r.left() / cell.width(); + int maxi = (r.right()+cell.width()-1) / cell.width(); + int minj = r.top() / cell.height(); + int maxj = (r.bottom()+cell.height()-1) / cell.height(); + + int h = fm.height(); + + TQColor body(255,255,192); + TQColor negative(255,192,192); + TQColor positive(192,192,255); + TQColor rnegative(255,128,128); + TQColor rpositive(128,128,255); + + for (int j = minj; j<=maxj; j++) { + for (int i = mini; i<=maxi; i++) { + if ( i < 16 && j < 16 ) { + int x = i*cell.width(); + int y = j*cell.height(); + + TQChar ch = TQChar(j*16+i,row); + + if ( fm.inFont(ch) ) { + int w = fm.width(ch); + int l = fm.leftBearing(ch); + int r = fm.rightBearing(ch); + + x += ml; + y += mt+h; + + p.fillRect(x,y,w,-h,body); + if ( w ) { + if ( l ) { + p.fillRect(x+(l>0?0:l), y-h/2, abs(l),-h/2, + l < 0 ? negative : positive); + } + if ( r ) { + p.fillRect(x+w-(r>0?r:0),y+2, abs(r),-h/2, + r < 0 ? rnegative : rpositive); + } + } + TQString s; + s += ch; + p.setPen(TQPen(TQt::black)); + p.drawText(x,y,s); + } + } + } + } +} + +void FontRowTable::setRow(int r) +{ + row = r; + + TQFontMetrics fm = fontMetrics(); + TQFontInfo fi = fontInfo(); + TQString str = TQString("%1 %2pt%3%4 mLB=%5 mRB=%6 mW=%7") + .arg(fi.family()) + .arg(fi.pointSize()) + .arg(fi.bold() ? " bold" : "") + .arg(fi.italic() ? " italic" : "") + .arg(fm.minLeftBearing()) + .arg(fm.minRightBearing()) + .arg(fm.maxWidth()); + + emit fontInformation(str); + update(); +} + +void FontRowTable::chooseFont() +{ + bool ok; + TQFont oldfont = tablefont; + tablefont = TQFontDialog::getFont(&ok, oldfont, this); + + if (ok) + setFont(tablefont); + else + tablefont = oldfont; +} + +FontDisplayer::FontDisplayer( TQWidget* parent, const char* name ) : + TQMainWindow(parent,name) +{ + FontRowTable* table = new FontRowTable(this); + TQToolBar* controls = new TQToolBar(this); + (void) new TQLabel(tr("Row:"), controls); + TQSpinBox *row = new TQSpinBox(0,255,1,controls); + controls->addSeparator(); + TQPushButton *fontbutton = new TQPushButton(tr("Font..."), controls); + + connect(row,SIGNAL(valueChanged(int)),table,SLOT(setRow(int))); + connect(fontbutton, SIGNAL(clicked()), table, SLOT(chooseFont())); + connect(table,SIGNAL(fontInformation(const TQString&)), + statusBar(),SLOT(message(const TQString&))); + table->setRow(0); + setCentralWidget(table); +} diff --git a/examples/qfd/fontdisplayer.h b/examples/qfd/fontdisplayer.h new file mode 100644 index 000000000..6d42aa52e --- /dev/null +++ b/examples/qfd/fontdisplayer.h @@ -0,0 +1,47 @@ +/**************************************************************************** +** +** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. +** +** This file is part of an example program for TQt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ + +#ifndef FontDisplayer_H +#define FontDisplayer_H + +#include <qframe.h> +#include <qmainwindow.h> + +class TQSlider; + +class FontRowTable : public TQFrame { + Q_OBJECT +public: + FontRowTable( TQWidget* parent=0, const char* name=0 ); + + TQSize sizeHint() const; + +signals: + void fontInformation(const TQString&); + +public slots: + void setRow(int); + void chooseFont(); + + +protected: + TQSize cellSize() const; + void paintEvent( TQPaintEvent* ); +private: + TQFont tablefont; + int row; +}; + +class FontDisplayer : public TQMainWindow { + Q_OBJECT +public: + FontDisplayer( TQWidget* parent=0, const char* name=0 ); +}; + +#endif diff --git a/examples/qfd/qfd.cpp b/examples/qfd/qfd.cpp new file mode 100644 index 000000000..b52362543 --- /dev/null +++ b/examples/qfd/qfd.cpp @@ -0,0 +1,32 @@ +/**************************************************************************** +** +** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. +** +** This file is part of an example program for TQt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ + +#include "fontdisplayer.h" + +#include <qapplication.h> +#include <qslider.h> +#include <qpainter.h> +#include <qstatusbar.h> + + + +int main(int argc, char** argv) +{ + TQApplication app(argc,argv); + + FontDisplayer m; + TQSize sh = m.centralWidget()->sizeHint(); + m.resize(sh.width(), + sh.height()+3*m.statusBar()->height()); + app.setMainWidget(&m); + m.setCaption("TQt Example - TQFD"); + m.show(); + + return app.exec(); +} diff --git a/examples/qfd/qfd.doc b/examples/qfd/qfd.doc new file mode 100644 index 000000000..dc9360c21 --- /dev/null +++ b/examples/qfd/qfd.doc @@ -0,0 +1,28 @@ +/* +*/ +/*! \page qfd-example.html + + \ingroup examples + \title Font Displayer + + This example program displays all characters of a font. + + <hr> + + Header file: + + \include qfd/fontdisplayer.h + + <hr> + + Implementation: + + \include qfd/fontdisplayer.cpp + + <hr> + + Main: + + \include qfd/qfd.cpp +*/ + diff --git a/examples/qfd/qfd.pro b/examples/qfd/qfd.pro new file mode 100644 index 000000000..6f1ae2487 --- /dev/null +++ b/examples/qfd/qfd.pro @@ -0,0 +1,10 @@ +TEMPLATE = app +TARGET = qfd + +CONFIG += qt warn_on release +DEPENDPATH = ../../include +REQUIRES = full-config + +HEADERS = fontdisplayer.h +SOURCES = fontdisplayer.cpp \ + qfd.cpp |