summaryrefslogtreecommitdiffstats
path: root/examples/qfd
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2011-11-08 12:31:36 -0600
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2011-11-08 12:31:36 -0600
commitd796c9dd933ab96ec83b9a634feedd5d32e1ba3f (patch)
tree6e3dcca4f77e20ec8966c666aac7c35bd4704053 /examples/qfd
downloadtqt3-d796c9dd933ab96ec83b9a634feedd5d32e1ba3f.tar.gz
tqt3-d796c9dd933ab96ec83b9a634feedd5d32e1ba3f.zip
Test conversion to TQt3 from Qt3 8c6fc1f8e35fd264dd01c582ca5e7549b32ab731
Diffstat (limited to 'examples/qfd')
-rw-r--r--examples/qfd/fontdisplayer.cpp155
-rw-r--r--examples/qfd/fontdisplayer.h47
-rw-r--r--examples/qfd/qfd.cpp32
-rw-r--r--examples/qfd/qfd.doc28
-rw-r--r--examples/qfd/qfd.pro10
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