diff options
Diffstat (limited to 'src/boost/tools/build/example/qt/qt3/hello')
4 files changed, 157 insertions, 0 deletions
diff --git a/src/boost/tools/build/example/qt/qt3/hello/canvas.cpp b/src/boost/tools/build/example/qt/qt3/hello/canvas.cpp new file mode 100644 index 000000000..c6d23c9d4 --- /dev/null +++ b/src/boost/tools/build/example/qt/qt3/hello/canvas.cpp @@ -0,0 +1,73 @@ +// Copyright Vladimir Prus 2004. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) + +#include "canvas.h" + +#include <qlabel.h> +#include <qcanvas.h> +#include <qlayout.h> + +Canvas::Canvas(QWidget* parent) +: QWidget(parent) +{ + m_pen = QPen(QColor(255, 128, 128)); + m_brushes = new QBrush[2]; + m_brushes[0] = QBrush(QColor(255, 0, 0)); + m_brushes[1] = QBrush(QColor(0, 255, 0)); + m_current_brush = 0; + + m_canvas = new QCanvas(this); + m_canvas->resize(4*1600, 600); + + redraw(); + + QVBoxLayout* l = new QVBoxLayout(this); + + m_canvas_view = new QCanvasView(m_canvas, this); + l->addWidget(m_canvas_view); + m_canvas_view->resize(rect().size()); + m_canvas_view->show(); +} + +Canvas::~Canvas() +{ + delete m_brushes; +} + +void Canvas::redraw() +{ + QCanvasItemList l = m_canvas->allItems(); + for(QCanvasItemList::iterator i = l.begin(), + e = l.end(); i != e; ++i) + { + delete *i; + } + + unsigned count = 0; + for (unsigned x = 10; x < 4*1600; x += 20) + for (unsigned y = 10; y < 600; y += 20) { + QCanvasRectangle* r = new QCanvasRectangle(x, y, 10, 10, m_canvas); + r->setPen(m_pen); + r->setBrush(m_brushes[m_current_brush]); + r->show(); + ++count; + QCanvasText* t = new QCanvasText("D", m_canvas); + t->move(x, y); + t->show(); + ++count; + } + + (new QCanvasText(QString::number(count), m_canvas))->show(); + m_canvas->setAllChanged(); + +} + +void Canvas::change_color() +{ + m_current_brush = (m_current_brush + 1)%2; + redraw(); + m_canvas->update(); +} + diff --git a/src/boost/tools/build/example/qt/qt3/hello/canvas.h b/src/boost/tools/build/example/qt/qt3/hello/canvas.h new file mode 100644 index 000000000..f9f950267 --- /dev/null +++ b/src/boost/tools/build/example/qt/qt3/hello/canvas.h @@ -0,0 +1,35 @@ +// Copyright Vladimir Prus 2004. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) + + +#ifndef CANVAS_VP_2004_08_31 +#define CANVAS_VP_2004_08_31 + +#include <qmainwindow.h> +#include <qpen.h> +#include <qbrush.h> + +class Canvas : public QWidget +{ + Q_OBJECT +public: + Canvas(QWidget* parent); + + virtual ~Canvas(); + +public slots: + void change_color(); + +private: + void redraw(); + class QCanvas* m_canvas; + class QCanvasView* m_canvas_view; + class QPen m_pen; + class QBrush* m_brushes; + int m_current_brush; +}; + +#endif + diff --git a/src/boost/tools/build/example/qt/qt3/hello/jamroot.jam b/src/boost/tools/build/example/qt/qt3/hello/jamroot.jam new file mode 100644 index 000000000..03be582e5 --- /dev/null +++ b/src/boost/tools/build/example/qt/qt3/hello/jamroot.jam @@ -0,0 +1,13 @@ +# Copyright Vladimir Prus 2004. +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt +# or copy at http://www.boost.org/LICENSE_1_0.txt) + +using qt ; + +project + # built MT version, unless asked otherwise. + : default-build <threading>multi + ; + +exe canvas : main.cpp canvas.cpp canvas.h : <library>/qt//qt ;
\ No newline at end of file diff --git a/src/boost/tools/build/example/qt/qt3/hello/main.cpp b/src/boost/tools/build/example/qt/qt3/hello/main.cpp new file mode 100644 index 000000000..8f1ffc2fb --- /dev/null +++ b/src/boost/tools/build/example/qt/qt3/hello/main.cpp @@ -0,0 +1,36 @@ +// Copyright Vladimir Prus 2004. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) + +#include "canvas.h" +#include <qapplication.h> +#include <qvbox.h> +#include <qpushbutton.h> + +class Window : public QMainWindow +{ +public: + Window() + { + setCaption("QCanvas test"); + QVBox* vb = new QVBox(this); + setCentralWidget(vb); + + Canvas* c = new Canvas(vb); + QPushButton* b = new QPushButton("Change color", vb); + connect(b, SIGNAL(clicked()), c, SLOT(change_color())); + } +}; + +int main(int argc, char **argv) +{ + QApplication app(argc, argv); + Window *w = new Window(); + + app.setMainWidget(w); + w->show(); + + return app.exec(); +} + |