summaryrefslogtreecommitdiffstats
path: root/PerlQt/examples/drawdemo
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-01-01 18:29:30 -0600
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-01-01 18:29:30 -0600
commitb2af005db21bd8fd068cb79b2ae700953128af2c (patch)
treeabd0ed633726bf0bbecb57d30e92836c31e02695 /PerlQt/examples/drawdemo
parentc1b9383f2032d82db5eb8918dca885e37a901dde (diff)
downloadlibtqt-perl-b2af005db21bd8fd068cb79b2ae700953128af2c.tar.gz
libtqt-perl-b2af005db21bd8fd068cb79b2ae700953128af2c.zip
Move PerlQt
Diffstat (limited to 'PerlQt/examples/drawdemo')
-rw-r--r--PerlQt/examples/drawdemo/drawdemo.pl198
1 files changed, 0 insertions, 198 deletions
diff --git a/PerlQt/examples/drawdemo/drawdemo.pl b/PerlQt/examples/drawdemo/drawdemo.pl
deleted file mode 100644
index f119a94..0000000
--- a/PerlQt/examples/drawdemo/drawdemo.pl
+++ /dev/null
@@ -1,198 +0,0 @@
-#!/usr/bin/perl -w
-use strict;
-package DrawView;
-use TQt;
-use TQt::isa qw(TQt::Widget);
-use TQt::slots
- updateIt => ['int'],
- printIt => [];
-use TQt::attributes qw(
- printer
- bgroup
- _print
- drawindex
- maxindex
-);
-
-#
-# First we define the functionality our demo should present
-# to the user. You might add different demo-modes if you wish so
-#
-
-#
-# This function draws a color wheel.
-# The coordinate system x=(0..500), y=(0..500) spans the paint device.
-#
-
-sub drawColorWheel {
- my $p = shift;
- my $f = TQt::Font("times", 18, &TQt::Font::Bold);
- $p->setFont($f);
- $p->setPen(&black);
- $p->setWindow(0, 0, 500, 500); # defines coordinate system
-
- for my $i (0..35) {
- my $matrix = TQt::WMatrix;
- $matrix->translate(250.0, 250.0); # move to center
- $matrix->shear(0.0, 0.3); # twist it
- $matrix->rotate($i*10.0); # rotate 0,10,20,.. degrees
- $p->setWorldMatrix($matrix); # use this world matrix
-
- my $c = TQt::Color;
- $c->setHsv($i*10, 255, 255); # rainbow effect
- $p->setBrush($c); # solid fill with color $c
- $p->drawRect(70, -10, 80, 10); # draw the rectangle
-
- my $n = sprintf "H=%d", $i*10;
- $p->drawText(80+70+5, 0, $n); # draw the hue number
- }
-}
-
-#
-# This function draws a few lines of text using different fonts.
-#
-
-sub drawFonts {
- my $p = shift;
- my @fonts = qw(Helvetica Courier Times);
- my @sizes = (10, 12, 18, 24, 36);
- my $y = 0;
- for my $f (@fonts) {
- for my $s (@sizes) {
- my $font = TQt::Font($f, $s);
- $p->setFont($font);
- my $fm = $p->fontMetrics;
- $y += $fm->ascent;
- $p->drawText(10, $y, "Quartz Glyph Job Vex'd Cwm Finks");
- $y += $fm->descent;
- }
- }
-}
-
-#
-# This function draws some shapes
-#
-
-sub drawShapes {
- my $p = shift;
- my $b1 = TQt::Brush(&blue);
- my $b2 = TQt::Brush(&green, &Dense6Pattern); # green 12% fill
- my $b3 = TQt::Brush(&NoBrush); # void brush
- my $b4 = TQt::Brush(&CrossPattern); # black cross pattern
-
- $p->setPen(&red);
- $p->setBrush($b1);
- $p->drawRect(10, 10, 200, 100);
- $p->setBrush($b2);
- $p->drawRoundRect(10, 150, 200, 100, 20, 20);
- $p->setBrush($b3);
- $p->drawEllipse(250, 10, 200, 100);
- $p->setBrush($b4);
- $p->drawPie(250, 150, 200, 100, 45*16, 90*16);
-}
-
-our @drawFunctions = (
-# title presented to user, reference to the function
- { name => "Draw color wheel", f => \&drawColorWheel },
- { name => "Draw fonts" , f => \&drawFonts },
- { name => "Draw shapes" , f => \&drawShapes },
-);
-
-#
-# Construct the DrawView with buttons.
-#
-
-sub NEW {
- shift->SUPER::NEW(@_);
-
- setCaption("PerlTQt Draw Demo Application");
- setBackgroundColor(&white);
-
- # Create a button group to contain all buttons
- bgroup = TQt::ButtonGroup(this);
- bgroup->resize(200, 200);
- this->connect(bgroup, TQT_SIGNAL('clicked(int)'), TQT_SLOT('updateIt(int)'));
-
- # Calculate the size for the radio buttons
- my $maxwidth = 80;
- my $maxheight = 10;
- my $fm = bgroup->fontMetrics;
-
- for my $i (0 .. $#drawFunctions) {
- my $n = $drawFunctions[$i]{name};
- my $w = $fm->width($n);
- $maxwidth = max($w, $maxwidth);
- }
-
- $maxwidth += 30;
-
- for my $i (0 .. $#drawFunctions) {
- my $n = $drawFunctions[$i]{name};
- my $rb = TQt::RadioButton($n, bgroup);
- $rb->setGeometry(10, $i*30+10, $maxwidth, 30);
-
- $maxheight += 30;
-
- $rb->setChecked(1) unless $i;
- $i++;
- }
-
- $maxheight += 10;
-
- drawindex = 0;
- maxindex = scalar @drawFunctions;
- $maxwidth += 20;
-
- bgroup->resize($maxwidth, $maxheight);
-
- printer = TQt::Printer;
-
- _print = TQt::PushButton("Print...", bgroup);
- _print->resize(80, 30);
- _print->move($maxwidth/2 - _print->width/2, maxindex*30+20);
- this->connect(_print, TQT_SIGNAL('clicked()'), TQT_SLOT('printIt()'));
-
- bgroup->resize($maxwidth, _print->y+_print->height+10);
-
- resize(640,300);
-}
-
-sub updateIt {
- my $index = shift;
- if($index < maxindex) {
- drawindex = $index;
- update();
- }
-}
-
-sub drawIt {
- my $p = shift;
- $drawFunctions[drawindex]{f}->($p);
-}
-
-sub printIt {
- if(printer->setup(this)) {
- my $paint = TQt::Painter(printer);
- drawIt($paint);
- }
-}
-
-sub paintEvent {
- my $paint = TQt::Painter(this);
- drawIt($paint);
-}
-
-sub resizeEvent {
- bgroup->move(int(width() - bgroup->width), int(0));
-}
-
-package main;
-use TQt;
-use DrawView;
-
-my $app = TQt::Application(\@ARGV);
-my $draw = DrawView;
-$app->setMainWidget($draw);
-$draw->setCaption("PerlTQt Example - Drawdemo");
-$draw->show;
-exit $app->exec;