From 90825e2392b2d70e43c7a25b8a3752299a933894 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebindings@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- qtjava/javalib/examples/aclock/AnalogClock.java | 158 + .../examples/addressbook/ABCentralWidget.java | 357 ++ .../javalib/examples/addressbook/ABMainWindow.java | 102 + qtjava/javalib/examples/addressbook/Main.java | 31 + qtjava/javalib/examples/addressbook/fileopen.xpm | 22 + qtjava/javalib/examples/addressbook/fileprint.xpm | 24 + qtjava/javalib/examples/addressbook/filesave.xpm | 22 + .../examples/application/ApplicationWindow.java | 318 + qtjava/javalib/examples/application/Main.java | 17 + qtjava/javalib/examples/biff/Biff.java | 80 + qtjava/javalib/examples/biff/Main.java | 30 + qtjava/javalib/examples/biff/bmp.java | 195 + .../examples/buttongroups/ButtonsGroups.java | 117 + qtjava/javalib/examples/buttongroups/Main.java | 33 + qtjava/javalib/examples/buttongroups/README | 13 + qtjava/javalib/examples/checklists/CheckLists.java | 171 + qtjava/javalib/examples/checklists/Main.java | 31 + qtjava/javalib/examples/cursor/CursorView.java | 150 + qtjava/javalib/examples/cursor/README | 2 + qtjava/javalib/examples/dclock/DigitalClock.java | 115 + qtjava/javalib/examples/dclock/Main.java | 30 + qtjava/javalib/examples/dclock/README | 5 + qtjava/javalib/examples/demo/sql/BookForm.java | 191 + .../javalib/examples/demo/sql/ConnectDialog.java | 138 + qtjava/javalib/examples/demo/sql/EditBookForm.java | 267 + qtjava/javalib/examples/demo/sql/Main.java | 20 + qtjava/javalib/examples/demo/widgets/Main.java | 20 + .../javalib/examples/demo/widgets/WidgetsBase.java | 6116 ++++++++++++++++++++ qtjava/javalib/examples/dragdrop/DropSite.java | 167 + qtjava/javalib/examples/dragdrop/Main.java | 87 + qtjava/javalib/examples/dragdrop/SecretDrag.java | 53 + qtjava/javalib/examples/dragdrop/SecretSource.java | 69 + qtjava/javalib/examples/dragdrop/trolltech.bmp | Bin 0 -> 30054 bytes qtjava/javalib/examples/dragdrop/trolltech.gif | Bin 0 -> 42629 bytes .../javalib/examples/drawlines/ConnectWidget.java | 122 + qtjava/javalib/examples/drawlines/README | 3 + qtjava/javalib/examples/forever/Forever.java | 120 + qtjava/javalib/examples/forever/README | 3 + qtjava/javalib/examples/hello/Hello.java | 107 + qtjava/javalib/examples/hello/Main.java | 45 + qtjava/javalib/examples/hello/README | 3 + qtjava/javalib/examples/helpviewer/HelpWindow.java | 364 ++ qtjava/javalib/examples/helpviewer/Main.java | 48 + qtjava/javalib/examples/helpviewer/back.xpm | 27 + qtjava/javalib/examples/helpviewer/forward.xpm | 28 + qtjava/javalib/examples/helpviewer/home.xpm | 27 + qtjava/javalib/examples/iconview/ListenDND.java | 69 + qtjava/javalib/examples/layout/ExampleWidget.java | 152 + qtjava/javalib/examples/lineedits/LineEdits.java | 225 + qtjava/javalib/examples/lineedits/Main.java | 32 + qtjava/javalib/examples/listbox/ListBoxDemo.java | 190 + qtjava/javalib/examples/listbox/Main.java | 30 + qtjava/javalib/examples/mdi/ApplicationWindow.java | 290 + qtjava/javalib/examples/mdi/MDIWindow.java | 135 + qtjava/javalib/examples/mdi/Main.java | 27 + qtjava/javalib/examples/mdi/document.xpm | 25 + qtjava/javalib/examples/menu/MenuExample.java | 326 ++ qtjava/javalib/examples/menu/README | 2 + .../javalib/examples/picture/PictureDisplay.java | 119 + qtjava/javalib/examples/picture/car_orig.pic | Bin 0 -> 1872 bytes qtjava/javalib/examples/picture/flag.bmp | Bin 0 -> 1650 bytes qtjava/javalib/examples/popup/Frame.java | 166 + qtjava/javalib/examples/popup/README | 3 + qtjava/javalib/examples/progressbar/Main.java | 31 + .../javalib/examples/progressbar/ProgressBar.java | 174 + qtjava/javalib/examples/qfd/FontDisplayer.java | 167 + qtjava/javalib/examples/qfd/Main.java | 38 + qtjava/javalib/examples/qmag/MagWidget.java | 356 ++ qtjava/javalib/examples/qmag/README | 6 + .../javalib/examples/qwerty/ANSI_X3.110-1983.map | 511 ++ .../javalib/examples/qwerty/ANSI_X3.110-1983.txt | 7 + qtjava/javalib/examples/qwerty/Editor.java | 351 ++ qtjava/javalib/examples/qwerty/IBM277.map | 350 ++ qtjava/javalib/examples/qwerty/IBM277.txt | 7 + qtjava/javalib/examples/qwerty/Main.java | 44 + qtjava/javalib/examples/qwerty/eucJP.txt | 7 + qtjava/javalib/examples/qwerty/koi8.txt | 7 + qtjava/javalib/examples/qwerty/latin1.txt | 7 + qtjava/javalib/examples/qwerty/msunicode.txt | Bin 0 -> 298 bytes qtjava/javalib/examples/qwerty/unicode.txt | Bin 0 -> 208 bytes qtjava/javalib/examples/rangecontrols/Main.java | 33 + .../examples/rangecontrols/RangeControls.java | 74 + qtjava/javalib/examples/richtext/Main.java | 32 + qtjava/javalib/examples/richtext/MyRichText.java | 150 + qtjava/javalib/examples/richtext/marble.png | Bin 0 -> 26015 bytes qtjava/javalib/examples/rot13/Rot13.java | 90 + qtjava/javalib/examples/scribble/Main.java | 36 + qtjava/javalib/examples/scribble/Scribble.java | 216 + .../examples/showimg/ImageIconProvider.java | 73 + .../javalib/examples/showimg/ImageTextEditor.java | 144 + qtjava/javalib/examples/showimg/ImageViewer.java | 703 +++ qtjava/javalib/examples/showimg/Main.java | 59 + qtjava/javalib/examples/showimg/README | 14 + qtjava/javalib/examples/sound/SoundPlayer.java | 116 + qtjava/javalib/examples/sound/sounds/1.wav | Bin 0 -> 8624 bytes qtjava/javalib/examples/sound/sounds/2.wav | Bin 0 -> 7266 bytes qtjava/javalib/examples/sound/sounds/3.wav | Bin 0 -> 4709 bytes qtjava/javalib/examples/sound/sounds/4.wav | Bin 0 -> 5538 bytes qtjava/javalib/examples/splitter/Test.java | 97 + qtjava/javalib/examples/tabdialog/Main.java | 33 + qtjava/javalib/examples/tabdialog/TabDialog.java | 114 + .../examples/table/small-table-demo/Main.java | 183 + qtjava/javalib/examples/textedit/Main.java | 30 + qtjava/javalib/examples/textedit/TextEdit.java | 494 ++ qtjava/javalib/examples/textedit/editcopy.xpm | 36 + qtjava/javalib/examples/textedit/editcut.xpm | 32 + qtjava/javalib/examples/textedit/editpaste.xpm | 36 + qtjava/javalib/examples/textedit/editredo.xpm | 36 + qtjava/javalib/examples/textedit/editundo.xpm | 36 + qtjava/javalib/examples/textedit/example.html | 340 ++ qtjava/javalib/examples/textedit/filenew.xpm | 36 + qtjava/javalib/examples/textedit/fileopen.xpm | 36 + qtjava/javalib/examples/textedit/fileprint.xpm | 117 + qtjava/javalib/examples/textedit/filesave.xpm | 36 + qtjava/javalib/examples/textedit/textbold.xpm | 27 + qtjava/javalib/examples/textedit/textcenter.xpm | 27 + qtjava/javalib/examples/textedit/textitalic.xpm | 27 + qtjava/javalib/examples/textedit/textjustify.xpm | 27 + qtjava/javalib/examples/textedit/textleft.xpm | 27 + qtjava/javalib/examples/textedit/textright.xpm | 27 + qtjava/javalib/examples/textedit/textunder.xpm | 27 + qtjava/javalib/examples/tux/MoveMe.java | 68 + qtjava/javalib/examples/tux/tux.png | Bin 0 -> 14786 bytes qtjava/javalib/examples/widgets/MyWidgetView.java | 58 + qtjava/javalib/examples/widgets/README | 4 + qtjava/javalib/examples/widgets/WidgetView.java | 829 +++ qtjava/javalib/examples/widgets/qt.png | Bin 0 -> 355 bytes qtjava/javalib/examples/widgets/trolltech.bmp | Bin 0 -> 13366 bytes qtjava/javalib/examples/widgets/trolltech.gif | Bin 0 -> 42629 bytes qtjava/javalib/examples/widgets/tt-logo.png | Bin 0 -> 4547 bytes qtjava/javalib/examples/wizard/Main.java | 29 + qtjava/javalib/examples/wizard/Wizard.java | 237 + 132 files changed, 18748 insertions(+) create mode 100644 qtjava/javalib/examples/aclock/AnalogClock.java create mode 100644 qtjava/javalib/examples/addressbook/ABCentralWidget.java create mode 100644 qtjava/javalib/examples/addressbook/ABMainWindow.java create mode 100644 qtjava/javalib/examples/addressbook/Main.java create mode 100644 qtjava/javalib/examples/addressbook/fileopen.xpm create mode 100644 qtjava/javalib/examples/addressbook/fileprint.xpm create mode 100644 qtjava/javalib/examples/addressbook/filesave.xpm create mode 100644 qtjava/javalib/examples/application/ApplicationWindow.java create mode 100644 qtjava/javalib/examples/application/Main.java create mode 100644 qtjava/javalib/examples/biff/Biff.java create mode 100644 qtjava/javalib/examples/biff/Main.java create mode 100644 qtjava/javalib/examples/biff/bmp.java create mode 100644 qtjava/javalib/examples/buttongroups/ButtonsGroups.java create mode 100644 qtjava/javalib/examples/buttongroups/Main.java create mode 100644 qtjava/javalib/examples/buttongroups/README create mode 100644 qtjava/javalib/examples/checklists/CheckLists.java create mode 100644 qtjava/javalib/examples/checklists/Main.java create mode 100644 qtjava/javalib/examples/cursor/CursorView.java create mode 100644 qtjava/javalib/examples/cursor/README create mode 100644 qtjava/javalib/examples/dclock/DigitalClock.java create mode 100644 qtjava/javalib/examples/dclock/Main.java create mode 100644 qtjava/javalib/examples/dclock/README create mode 100644 qtjava/javalib/examples/demo/sql/BookForm.java create mode 100644 qtjava/javalib/examples/demo/sql/ConnectDialog.java create mode 100644 qtjava/javalib/examples/demo/sql/EditBookForm.java create mode 100644 qtjava/javalib/examples/demo/sql/Main.java create mode 100644 qtjava/javalib/examples/demo/widgets/Main.java create mode 100644 qtjava/javalib/examples/demo/widgets/WidgetsBase.java create mode 100644 qtjava/javalib/examples/dragdrop/DropSite.java create mode 100644 qtjava/javalib/examples/dragdrop/Main.java create mode 100644 qtjava/javalib/examples/dragdrop/SecretDrag.java create mode 100644 qtjava/javalib/examples/dragdrop/SecretSource.java create mode 100644 qtjava/javalib/examples/dragdrop/trolltech.bmp create mode 100644 qtjava/javalib/examples/dragdrop/trolltech.gif create mode 100644 qtjava/javalib/examples/drawlines/ConnectWidget.java create mode 100644 qtjava/javalib/examples/drawlines/README create mode 100644 qtjava/javalib/examples/forever/Forever.java create mode 100644 qtjava/javalib/examples/forever/README create mode 100644 qtjava/javalib/examples/hello/Hello.java create mode 100644 qtjava/javalib/examples/hello/Main.java create mode 100644 qtjava/javalib/examples/hello/README create mode 100644 qtjava/javalib/examples/helpviewer/HelpWindow.java create mode 100644 qtjava/javalib/examples/helpviewer/Main.java create mode 100644 qtjava/javalib/examples/helpviewer/back.xpm create mode 100644 qtjava/javalib/examples/helpviewer/forward.xpm create mode 100644 qtjava/javalib/examples/helpviewer/home.xpm create mode 100644 qtjava/javalib/examples/iconview/ListenDND.java create mode 100644 qtjava/javalib/examples/layout/ExampleWidget.java create mode 100644 qtjava/javalib/examples/lineedits/LineEdits.java create mode 100644 qtjava/javalib/examples/lineedits/Main.java create mode 100644 qtjava/javalib/examples/listbox/ListBoxDemo.java create mode 100644 qtjava/javalib/examples/listbox/Main.java create mode 100644 qtjava/javalib/examples/mdi/ApplicationWindow.java create mode 100644 qtjava/javalib/examples/mdi/MDIWindow.java create mode 100644 qtjava/javalib/examples/mdi/Main.java create mode 100644 qtjava/javalib/examples/mdi/document.xpm create mode 100644 qtjava/javalib/examples/menu/MenuExample.java create mode 100644 qtjava/javalib/examples/menu/README create mode 100644 qtjava/javalib/examples/picture/PictureDisplay.java create mode 100644 qtjava/javalib/examples/picture/car_orig.pic create mode 100644 qtjava/javalib/examples/picture/flag.bmp create mode 100644 qtjava/javalib/examples/popup/Frame.java create mode 100644 qtjava/javalib/examples/popup/README create mode 100644 qtjava/javalib/examples/progressbar/Main.java create mode 100644 qtjava/javalib/examples/progressbar/ProgressBar.java create mode 100644 qtjava/javalib/examples/qfd/FontDisplayer.java create mode 100644 qtjava/javalib/examples/qfd/Main.java create mode 100644 qtjava/javalib/examples/qmag/MagWidget.java create mode 100644 qtjava/javalib/examples/qmag/README create mode 100644 qtjava/javalib/examples/qwerty/ANSI_X3.110-1983.map create mode 100644 qtjava/javalib/examples/qwerty/ANSI_X3.110-1983.txt create mode 100644 qtjava/javalib/examples/qwerty/Editor.java create mode 100644 qtjava/javalib/examples/qwerty/IBM277.map create mode 100644 qtjava/javalib/examples/qwerty/IBM277.txt create mode 100644 qtjava/javalib/examples/qwerty/Main.java create mode 100644 qtjava/javalib/examples/qwerty/eucJP.txt create mode 100644 qtjava/javalib/examples/qwerty/koi8.txt create mode 100644 qtjava/javalib/examples/qwerty/latin1.txt create mode 100644 qtjava/javalib/examples/qwerty/msunicode.txt create mode 100644 qtjava/javalib/examples/qwerty/unicode.txt create mode 100644 qtjava/javalib/examples/rangecontrols/Main.java create mode 100644 qtjava/javalib/examples/rangecontrols/RangeControls.java create mode 100644 qtjava/javalib/examples/richtext/Main.java create mode 100644 qtjava/javalib/examples/richtext/MyRichText.java create mode 100644 qtjava/javalib/examples/richtext/marble.png create mode 100644 qtjava/javalib/examples/rot13/Rot13.java create mode 100644 qtjava/javalib/examples/scribble/Main.java create mode 100644 qtjava/javalib/examples/scribble/Scribble.java create mode 100644 qtjava/javalib/examples/showimg/ImageIconProvider.java create mode 100644 qtjava/javalib/examples/showimg/ImageTextEditor.java create mode 100644 qtjava/javalib/examples/showimg/ImageViewer.java create mode 100644 qtjava/javalib/examples/showimg/Main.java create mode 100644 qtjava/javalib/examples/showimg/README create mode 100644 qtjava/javalib/examples/sound/SoundPlayer.java create mode 100644 qtjava/javalib/examples/sound/sounds/1.wav create mode 100644 qtjava/javalib/examples/sound/sounds/2.wav create mode 100644 qtjava/javalib/examples/sound/sounds/3.wav create mode 100644 qtjava/javalib/examples/sound/sounds/4.wav create mode 100644 qtjava/javalib/examples/splitter/Test.java create mode 100644 qtjava/javalib/examples/tabdialog/Main.java create mode 100644 qtjava/javalib/examples/tabdialog/TabDialog.java create mode 100644 qtjava/javalib/examples/table/small-table-demo/Main.java create mode 100644 qtjava/javalib/examples/textedit/Main.java create mode 100644 qtjava/javalib/examples/textedit/TextEdit.java create mode 100644 qtjava/javalib/examples/textedit/editcopy.xpm create mode 100644 qtjava/javalib/examples/textedit/editcut.xpm create mode 100644 qtjava/javalib/examples/textedit/editpaste.xpm create mode 100644 qtjava/javalib/examples/textedit/editredo.xpm create mode 100644 qtjava/javalib/examples/textedit/editundo.xpm create mode 100644 qtjava/javalib/examples/textedit/example.html create mode 100644 qtjava/javalib/examples/textedit/filenew.xpm create mode 100644 qtjava/javalib/examples/textedit/fileopen.xpm create mode 100644 qtjava/javalib/examples/textedit/fileprint.xpm create mode 100644 qtjava/javalib/examples/textedit/filesave.xpm create mode 100644 qtjava/javalib/examples/textedit/textbold.xpm create mode 100644 qtjava/javalib/examples/textedit/textcenter.xpm create mode 100644 qtjava/javalib/examples/textedit/textitalic.xpm create mode 100644 qtjava/javalib/examples/textedit/textjustify.xpm create mode 100644 qtjava/javalib/examples/textedit/textleft.xpm create mode 100644 qtjava/javalib/examples/textedit/textright.xpm create mode 100644 qtjava/javalib/examples/textedit/textunder.xpm create mode 100644 qtjava/javalib/examples/tux/MoveMe.java create mode 100644 qtjava/javalib/examples/tux/tux.png create mode 100644 qtjava/javalib/examples/widgets/MyWidgetView.java create mode 100644 qtjava/javalib/examples/widgets/README create mode 100644 qtjava/javalib/examples/widgets/WidgetView.java create mode 100644 qtjava/javalib/examples/widgets/qt.png create mode 100644 qtjava/javalib/examples/widgets/trolltech.bmp create mode 100644 qtjava/javalib/examples/widgets/trolltech.gif create mode 100644 qtjava/javalib/examples/widgets/tt-logo.png create mode 100644 qtjava/javalib/examples/wizard/Main.java create mode 100644 qtjava/javalib/examples/wizard/Wizard.java (limited to 'qtjava/javalib/examples') diff --git a/qtjava/javalib/examples/aclock/AnalogClock.java b/qtjava/javalib/examples/aclock/AnalogClock.java new file mode 100644 index 00000000..2d97cb67 --- /dev/null +++ b/qtjava/javalib/examples/aclock/AnalogClock.java @@ -0,0 +1,158 @@ +/**************************************************************************** +** $Id$ +** +** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +** This file is part of an example program for Qt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ + +import org.kde.qt.*; +import java.util.Date; + +class AnalogClock extends QWidget // analog clock widget +{ + +private Date time; + +// +// Constructs an analog clock widget that uses an internal QTimer. +// + +public AnalogClock( QWidget parent ) +{ + this(parent, null); +} + +public AnalogClock( QWidget parent, String name ) +{ + super( parent, name ); + time = new Date(); // get current time + QTimer internalTimer = new QTimer( this ); // create internal timer + connect( internalTimer, SIGNAL("timeout()"), SLOT("timeout()") ); + internalTimer.start( 5000 ); // emit signal every 5 seconds +} + + +public void setTime( Date t ) +{ + time = t; + timeout(); +} + +// +// The QTimer.timeout() signal is received by this slot. +// + +public void timeout() +{ + Date old_time = new Date(); // get the current time + old_time.setTime( time.getTime() - 5000 ); + time.setTime( time.getTime() + 5000 ); + if ( old_time.getMinutes() != time.getMinutes() ) { // minute has changed + if (autoMask()) + updateMask(); + else + update(); + } +} + + +public void paintEvent( QPaintEvent event ) +{ + if ( autoMask() ) + return; + QPainter paint = new QPainter( this ); + paint.setBrush( colorGroup().foreground() ); + drawClock( paint ); +} + +// If the clock is transparent, we use updateMask() +// instead of paintEvent() + +public void updateMask() // paint clock mask +{ + QBitmap bm = new QBitmap( size() ); + bm.fill( color0() ); //transparent + + QPainter paint = new QPainter(); + paint.begin( bm, this ); + paint.setBrush( color1() ); // use non-transparent color + paint.setPen( color1() ); + + drawClock( paint ); + + paint.end(); + setMask( bm ); +} + +// +// The clock is painted using a 1000x1000 square coordinate system, in +// the a centered square, as big as possible. The painter's pen and +// brush colors are used. +// +public void drawClock( QPainter paint ) +{ + paint.save(); + + paint.setWindow( -500,-500, 1000,1000 ); + + QRect v = paint.viewport(); + int d = v.width() < v.height() ? v.width() : v.height(); + paint.setViewport( v.left() + (v.width()-d)/2, + v.top() + (v.height()-d)/2, d, d ); + + // time = QTime.currentTime(); + QPointArray pts = new QPointArray(); + + paint.save(); + paint.rotate( 30*(time.getHours()%12-3) + time.getMinutes()/2 ); + pts.setPoints( 4, new short[] { -20,0, 0,-20, 300,0, 0,20 } ); + paint.drawConvexPolygon( pts ); + paint.restore(); + + paint.save(); + paint.rotate( (time.getMinutes()-15)*6 ); + pts.setPoints( 4, new short[] { -10,0, 0,-10, 400,0, 0,10 } ); + paint.drawConvexPolygon( pts ); + paint.restore(); + + for ( int i=0; i<12; i++ ) { + paint.drawLine( 440,0, 460,0 ); + paint.rotate( 30 ); + } + + paint.restore(); +} + + +public void setAutoMask(boolean b) +{ + if (b) + setBackgroundMode( PaletteForeground ); + else + setBackgroundMode( PaletteBackground ); + super.setAutoMask(b); +} + +public static void main( String[] args ) +{ + QApplication a = new QApplication( args ); + AnalogClock clock = new AnalogClock(null, null); + if ( args.length == 1 && args[0].equals("-transparent") ) + clock.setAutoMask( true ); + clock.resize( 100, 100 ); + a.setMainWidget( clock ); + clock.setCaption("Qt Example - Analog Clock"); + clock.show(); + int result = a.exec(); + return; +} + +static { + qtjava.initialize(); +} + +} + diff --git a/qtjava/javalib/examples/addressbook/ABCentralWidget.java b/qtjava/javalib/examples/addressbook/ABCentralWidget.java new file mode 100644 index 00000000..8dd6af37 --- /dev/null +++ b/qtjava/javalib/examples/addressbook/ABCentralWidget.java @@ -0,0 +1,357 @@ +/**************************************************************************** +** $Id$ +** +** Copyright ( C ) 1992-2000 Trolltech AS. All rights reserved. +** +** This file is part of an example program for Qt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ +import org.kde.qt.*; +import java.util.*; + +public class ABCentralWidget extends QWidget +{ + protected QGridLayout mainGrid; + protected QTabWidget tabWidget; + protected QListView listView; + protected QPushButton add, change, find; + protected QLineEdit iFirstName, iLastName, iAddress, iEMail, + sFirstName, sLastName, sAddress, sEMail; + protected QCheckBox cFirstName, cLastName, cAddress, cEMail; + + +public ABCentralWidget( QWidget parent, String name ) +{ + super( parent, name ); + mainGrid = new QGridLayout( this, 2, 1, 5, 5 ); + + setupTabWidget(); + setupListView(); + + mainGrid.setRowStretch( 0, 0 ); + mainGrid.setRowStretch( 1, 1 ); +} + +public ABCentralWidget( QWidget parent ) +{ + this(parent, null); +} + +public void save( String filename ) +{ + if ( listView.firstChild() == null ) + return; + + QFile f = new QFile( filename ); + if ( !f.open( QIODevice.IO_WriteOnly ) ) + return; + + QTextStream t = new QTextStream( f ); + + Iterator it = listView.itemList().iterator(); + while ( it.hasNext() ) { + QListViewItem currentItem = (QListViewItem) it.next(); + for ( int i = 0; i < 4; i++ ) { + t.writeRawBytes( currentItem.text(i), currentItem.text(i).length() ); + t.writeRawBytes( "\n", 1 ); + } + } + + f.close(); +} + +public void load( String filename ) +{ + listView.clear(); + + QFile f = new QFile( filename ); + if ( !f.open( QIODevice.IO_ReadOnly ) ) + return; + + QTextStream t = new QTextStream( f ); + + while ( !t.atEnd() ) { + QListViewItem item = new QListViewItem( listView ); + for ( int i = 0; i < 4; i++ ) + item.setText( i, t.readLine() ); + } + + f.close(); +} + +public void setupTabWidget() +{ + tabWidget = new QTabWidget( this ); + + QWidget input = new QWidget( tabWidget ); + QGridLayout grid1 = new QGridLayout( input, 2, 5, 5, 5 ); + + QLabel liFirstName = new QLabel( "First &Name", input ); + liFirstName.resize( liFirstName.sizeHint() ); + grid1.addWidget( liFirstName, 0, 0 ); + + QLabel liLastName = new QLabel( "&Last Name", input ); + liLastName.resize( liLastName.sizeHint() ); + grid1.addWidget( liLastName, 0, 1 ); + + QLabel liAddress = new QLabel( "Add&ress", input ); + liAddress.resize( liAddress.sizeHint() ); + grid1.addWidget( liAddress, 0, 2 ); + + QLabel liEMail = new QLabel( "&E-Mail", input ); + liEMail.resize( liEMail.sizeHint() ); + grid1.addWidget( liEMail, 0, 3 ); + + add = new QPushButton( "A&dd", input ); + add.resize( add.sizeHint() ); + grid1.addWidget( add, 0, 4 ); + connect( add, SIGNAL( "clicked()" ), this, SLOT( "addEntry()" ) ); + + iFirstName = new QLineEdit( input ); + iFirstName.resize( iFirstName.sizeHint() ); + grid1.addWidget( iFirstName, 1, 0 ); + liFirstName.setBuddy( iFirstName ); + + iLastName = new QLineEdit( input ); + iLastName.resize( iLastName.sizeHint() ); + grid1.addWidget( iLastName, 1, 1 ); + liLastName.setBuddy( iLastName ); + + iAddress = new QLineEdit( input ); + iAddress.resize( iAddress.sizeHint() ); + grid1.addWidget( iAddress, 1, 2 ); + liAddress.setBuddy( iAddress ); + + iEMail = new QLineEdit( input ); + iEMail.resize( iEMail.sizeHint() ); + grid1.addWidget( iEMail, 1, 3 ); + liEMail.setBuddy( iEMail ); + + change = new QPushButton( "&Change", input ); + change.resize( change.sizeHint() ); + grid1.addWidget( change, 1, 4 ); + connect( change, SIGNAL( "clicked()" ), this, SLOT( "changeEntry()" ) ); + + tabWidget.addTab( input, "&Add/Change Entry" ); + + // -------------------------------------- + + QWidget search = new QWidget( this ); + QGridLayout grid2 = new QGridLayout( search, 2, 5, 5, 5 ); + + cFirstName = new QCheckBox( "First &Name", search ); + cFirstName.resize( cFirstName.sizeHint() ); + grid2.addWidget( cFirstName, 0, 0 ); + connect( cFirstName, SIGNAL( "clicked()" ), this, SLOT( "toggleFirstName()" ) ); + + cLastName = new QCheckBox( "&Last Name", search ); + cLastName.resize( cLastName.sizeHint() ); + grid2.addWidget( cLastName, 0, 1 ); + connect( cLastName, SIGNAL( "clicked()" ), this, SLOT( "toggleLastName()" ) ); + + cAddress = new QCheckBox( "Add&ress", search ); + cAddress.resize( cAddress.sizeHint() ); + grid2.addWidget( cAddress, 0, 2 ); + connect( cAddress, SIGNAL( "clicked()" ), this, SLOT( "toggleAddress()" ) ); + + cEMail = new QCheckBox( "&E-Mail", search ); + cEMail.resize( cEMail.sizeHint() ); + grid2.addWidget( cEMail, 0, 3 ); + connect( cEMail, SIGNAL( "clicked()" ), this, SLOT( "toggleEMail()" ) ); + + sFirstName = new QLineEdit( search ); + sFirstName.resize( sFirstName.sizeHint() ); + grid2.addWidget( sFirstName, 1, 0 ); + + sLastName = new QLineEdit( search ); + sLastName.resize( sLastName.sizeHint() ); + grid2.addWidget( sLastName, 1, 1 ); + + sAddress = new QLineEdit( search ); + sAddress.resize( sAddress.sizeHint() ); + grid2.addWidget( sAddress, 1, 2 ); + + sEMail = new QLineEdit( search ); + sEMail.resize( sEMail.sizeHint() ); + grid2.addWidget( sEMail, 1, 3 ); + + find = new QPushButton( "F&ind", search ); + find.resize( find.sizeHint() ); + grid2.addWidget( find, 1, 4 ); + connect( find, SIGNAL( "clicked()" ), this, SLOT( "findEntries()" ) ); + + cFirstName.setChecked( true ); + sFirstName.setEnabled( true ); + sLastName.setEnabled( false ); + sAddress.setEnabled( false ); + sEMail.setEnabled( false ); + + tabWidget.addTab( search, "&Search" ); + + mainGrid.addWidget( tabWidget, 0, 0 ); +} + +public void setupListView() +{ + listView = new QListView( this ); + listView.addColumn( "First Name" ); + listView.addColumn( "Last Name" ); + listView.addColumn( "Address" ); + listView.addColumn( "E-Mail" ); + + listView.setSelectionMode( QListView.Extended ); + + connect( listView, SIGNAL( "clicked( QListViewItem )" ), this, SLOT( "itemSelected( QListViewItem )" ) ); + + mainGrid.addWidget( listView, 1, 0 ); + listView.setAllColumnsShowFocus( true ); +} + +public void addEntry() +{ + if ( !iFirstName.text().equals("") || !iLastName.text().equals("") || + !iAddress.text().equals("") || !iEMail.text().equals("") ) { + QListViewItem item = new QListViewItem( listView ); + item.setText( 0, iFirstName.text() ); + item.setText( 1, iLastName.text() ); + item.setText( 2, iAddress.text() ); + item.setText( 3, iEMail.text() ); + } + + iFirstName.setText( "" ); + iLastName.setText( "" ); + iAddress.setText( "" ); + iEMail.setText( "" ); +} + +public void changeEntry() +{ + QListViewItem item = listView.currentItem(); + + if ( item != null && + ( !iFirstName.text().equals("") || !iLastName.text().equals("") || + !iAddress.text().equals("") || !iEMail.text().equals("") ) ) { + item.setText( 0, iFirstName.text() ); + item.setText( 1, iLastName.text() ); + item.setText( 2, iAddress.text() ); + item.setText( 3, iEMail.text() ); + } +} + +public void selectionChanged() +{ + iFirstName.setText( "" ); + iLastName.setText( "" ); + iAddress.setText( "" ); + iEMail.setText( "" ); +} + +public void itemSelected( QListViewItem item ) +{ + item.setSelected( true ); + item.repaint(); + + iFirstName.setText( item.text( 0 ) ); + iLastName.setText( item.text( 1 ) ); + iAddress.setText( item.text( 2 ) ); + iEMail.setText( item.text( 3 ) ); +} + +public void toggleFirstName() +{ + sFirstName.setText( "" ); + + if ( cFirstName.isChecked() ) { + sFirstName.setEnabled( true ); + sFirstName.setFocus(); + } + else + sFirstName.setEnabled( false ); +} + +public void toggleLastName() +{ + sLastName.setText( "" ); + + if ( cLastName.isChecked() ) { + sLastName.setEnabled( true ); + sLastName.setFocus(); + } + else + sLastName.setEnabled( false ); +} + +public void toggleAddress() +{ + sAddress.setText( "" ); + + if ( cAddress.isChecked() ) { + sAddress.setEnabled( true ); + sAddress.setFocus(); + } + else + sAddress.setEnabled( false ); +} + +public void toggleEMail() +{ + sEMail.setText( "" ); + + if ( cEMail.isChecked() ) { + sEMail.setEnabled( true ); + sEMail.setFocus(); + } + else + sEMail.setEnabled( false ); +} + +public void findEntries() +{ + if ( !cFirstName.isChecked() && + !cLastName.isChecked() && + !cAddress.isChecked() && + !cEMail.isChecked() ) { + listView.clearSelection(); + return; + } + + Iterator it = listView.itemList().iterator(); + while ( it.hasNext() ) { + QListViewItem currentItem = (QListViewItem) it.next(); + boolean select = true; + + if ( cFirstName.isChecked() ) { + if ( select && currentItem.text( 0 ).indexOf( sFirstName.text() ) != -1 ) + select = true; + else + select = false; + } + if ( cLastName.isChecked() ) { + if ( select && currentItem.text( 1 ).indexOf( sLastName.text() ) != -1 ) + select = true; + else + select = false; + } + if ( cAddress.isChecked() ) { + if ( select && currentItem.text( 2 ).indexOf( sAddress.text() ) != -1 ) + select = true; + else + select = false; + } + if ( cEMail.isChecked() ) { + if ( select && currentItem.text( 3 ).indexOf( sEMail.text() ) != -1 ) + select = true; + else + select = false; + } + + if ( select ) + currentItem.setSelected( true ); + else + currentItem.setSelected( false ); + currentItem.repaint(); + } +} + +} diff --git a/qtjava/javalib/examples/addressbook/ABMainWindow.java b/qtjava/javalib/examples/addressbook/ABMainWindow.java new file mode 100644 index 00000000..588098f4 --- /dev/null +++ b/qtjava/javalib/examples/addressbook/ABMainWindow.java @@ -0,0 +1,102 @@ +/**************************************************************************** +** $Id$ +** +** Copyright ( C ) 1992-2000 Trolltech AS. All rights reserved. +** +** This file is part of an example program for Qt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ +import org.kde.qt.*; + +class ABMainWindow extends QMainWindow +{ + protected QToolBar fileTools; + protected String filename; + protected ABCentralWidget view; + +public ABMainWindow() +{ + super( null, "example addressbook application" ); + filename = ""; + setupMenuBar(); + setupFileTools(); + setupStatusBar(); + setupCentralWidget(); +} + +public void setupMenuBar() +{ + QPopupMenu file = new QPopupMenu( this ); + menuBar().insertItem( "&File", file ); + + file.insertItem( "New", this, SLOT( "fileNew()" ), new QKeySequence(CTRL + Key_N) ); + file.insertItem( new QIconSet(new QPixmap( "fileopen.xpm" )), "Open", this, SLOT( "fileOpen()" ), new QKeySequence(CTRL + Key_O) ); + file.insertSeparator(); + file.insertItem( new QIconSet(new QPixmap( "filesave.xpm" )), "Save", this, SLOT( "fileSave()" ), new QKeySequence(CTRL + Key_S) ); + file.insertItem( "Save As...", this, SLOT( "fileSaveAs()" ) ); + file.insertSeparator(); + file.insertItem( new QIconSet(new QPixmap( "fileprint.xpm" )), "Print...", this, SLOT( "filePrint()" ), new QKeySequence(CTRL + Key_P) ); + file.insertSeparator(); + file.insertItem( "Close", this, SLOT( "closeWindow()" ), new QKeySequence(CTRL + Key_W) ); + file.insertItem( "Quit", qApp(), SLOT( "quit()" ), new QKeySequence(CTRL + Key_Q) ); +} + +public void setupFileTools() +{ + //fileTools = new QToolBar( this, "file operations" ); +} + +public void setupStatusBar() +{ + //statusBar()->message( "Ready", 2000 ); +} + +public void setupCentralWidget() +{ + view = new ABCentralWidget( this ); + setCentralWidget( view ); +} + +public void closeWindow() +{ + close(); +} + +public void fileNew() +{ +} + +public void fileOpen() +{ + String fn = QFileDialog.getOpenFileName( "", "", this ); + if ( !fn.equals("") ) { + filename = fn; + view.load( filename ); + } +} + +public void fileSave() +{ + if ( filename.equals("") ) { + fileSaveAs(); + return; + } + + view.save( filename ); +} + +public void fileSaveAs() +{ + String fn = QFileDialog.getSaveFileName( "", "", this ); + if ( !fn.equals("") ) { + filename = fn; + fileSave(); + } +} + +public void filePrint() +{ +} + +} diff --git a/qtjava/javalib/examples/addressbook/Main.java b/qtjava/javalib/examples/addressbook/Main.java new file mode 100644 index 00000000..eeda8adc --- /dev/null +++ b/qtjava/javalib/examples/addressbook/Main.java @@ -0,0 +1,31 @@ +/**************************************************************************** +** $Id$ +** +** Copyright ( C ) 1992-2000 Trolltech AS. All rights reserved. +** +** This file is part of an example program for Qt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ +import org.kde.qt.*; + +public class Main { + +public static void main( String[] args ) +{ + QApplication a = new QApplication( args ); + + ABMainWindow mw = new ABMainWindow(); + mw.setCaption( "Qt Example - Addressbook" ); + a.setMainWidget( mw ); + mw.show(); + + a.connect( a, Qt.SIGNAL( "lastWindowClosed()" ), a, Qt.SLOT( "quit()" ) ); + int result = a.exec(); + return; +} + static { + qtjava.initialize(); + } + +} diff --git a/qtjava/javalib/examples/addressbook/fileopen.xpm b/qtjava/javalib/examples/addressbook/fileopen.xpm new file mode 100644 index 00000000..880417ee --- /dev/null +++ b/qtjava/javalib/examples/addressbook/fileopen.xpm @@ -0,0 +1,22 @@ +/* XPM */ +static const char *fileopen[] = { +" 16 13 5 1", +". c #040404", +"# c #808304", +"a c None", +"b c #f3f704", +"c c #f3f7f3", +"aaaaaaaaa...aaaa", +"aaaaaaaa.aaa.a.a", +"aaaaaaaaaaaaa..a", +"a...aaaaaaaa...a", +".bcb.......aaaaa", +".cbcbcbcbc.aaaaa", +".bcbcbcbcb.aaaaa", +".cbcb...........", +".bcb.#########.a", +".cb.#########.aa", +".b.#########.aaa", +"..#########.aaaa", +"...........aaaaa" +}; diff --git a/qtjava/javalib/examples/addressbook/fileprint.xpm b/qtjava/javalib/examples/addressbook/fileprint.xpm new file mode 100644 index 00000000..6ada912f --- /dev/null +++ b/qtjava/javalib/examples/addressbook/fileprint.xpm @@ -0,0 +1,24 @@ +/* XPM */ +static const char *fileprint[] = { +" 16 14 6 1", +". c #000000", +"# c #848284", +"a c #c6c3c6", +"b c #ffff00", +"c c #ffffff", +"d c None", +"ddddd.........dd", +"dddd.cccccccc.dd", +"dddd.c.....c.ddd", +"ddd.cccccccc.ddd", +"ddd.c.....c....d", +"dd.cccccccc.a.a.", +"d..........a.a..", +".aaaaaaaaaa.a.a.", +".............aa.", +".aaaaaa###aa.a.d", +".aaaaaabbbaa...d", +".............a.d", +"d.aaaaaaaaa.a.dd", +"dd...........ddd" +}; diff --git a/qtjava/javalib/examples/addressbook/filesave.xpm b/qtjava/javalib/examples/addressbook/filesave.xpm new file mode 100644 index 00000000..bd6870f4 --- /dev/null +++ b/qtjava/javalib/examples/addressbook/filesave.xpm @@ -0,0 +1,22 @@ +/* XPM */ +static const char *filesave[] = { +" 14 14 4 1", +". c #040404", +"# c #808304", +"a c #bfc2bf", +"b c None", +"..............", +".#.aaaaaaaa.a.", +".#.aaaaaaaa...", +".#.aaaaaaaa.#.", +".#.aaaaaaaa.#.", +".#.aaaaaaaa.#.", +".#.aaaaaaaa.#.", +".##........##.", +".############.", +".##.........#.", +".##......aa.#.", +".##......aa.#.", +".##......aa.#.", +"b............." +}; diff --git a/qtjava/javalib/examples/application/ApplicationWindow.java b/qtjava/javalib/examples/application/ApplicationWindow.java new file mode 100644 index 00000000..e334ad17 --- /dev/null +++ b/qtjava/javalib/examples/application/ApplicationWindow.java @@ -0,0 +1,318 @@ +import org.kde.qt.*; + +public class ApplicationWindow extends QMainWindow { + private QPrinter printer; + private QMultiLineEdit e; + private String filename; + + private final String fileOpenText = " "+ + "Click this button to open a new file.

"+ + "You can also select the Open command from the File menu."; + private final String fileSaveText = "Click this button to save the file you are "+ + "editing. You will be prompted for a file name.\n\n"+ + "You can also select the Save command from the File menu.\n\n"+ + "Note that implementing this function is left as an exercise for the reader."; + private final String filePrintText = "Click this button to print the file you "+ + "are editing.\n\n"+ + "You can also select the Print command from the File menu."; + + private final String[] fileopen = { + " 16 13 5 1", + ". c #040404", + "# c #808304", + "a c None", + "b c #f3f704", + "c c #f3f7f3", + "aaaaaaaaa...aaaa", + "aaaaaaaa.aaa.a.a", + "aaaaaaaaaaaaa..a", + "a...aaaaaaaa...a", + ".bcb.......aaaaa", + ".cbcbcbcbc.aaaaa", + ".bcbcbcbcb.aaaaa", + ".cbcb...........", + ".bcb.#########.a", + ".cb.#########.aa", + ".b.#########.aaa", + "..#########.aaaa", + "...........aaaaa" + }; + + private final String[] filesave = { + " 14 14 4 1", + ". c #040404", + "# c #808304", + "a c #bfc2bf", + "b c None", + "..............", + ".#.aaaaaaaa.a.", + ".#.aaaaaaaa...", + ".#.aaaaaaaa.#.", + ".#.aaaaaaaa.#.", + ".#.aaaaaaaa.#.", + ".#.aaaaaaaa.#.", + ".##........##.", + ".############.", + ".##.........#.", + ".##......aa.#.", + ".##......aa.#.", + ".##......aa.#.", + "b............." + }; + + private final String[] fileprint = { + " 16 14 6 1", + ". c #000000", + "# c #848284", + "a c #c6c3c6", + "b c #ffff00", + "c c #ffffff", + "d c None", + "ddddd.........dd", + "dddd.cccccccc.dd", + "dddd.c.....c.ddd", + "ddd.cccccccc.ddd", + "ddd.c.....c....d", + "dd.cccccccc.a.a.", + "d..........a.a..", + ".aaaaaaaaaa.a.a.", + ".............aa.", + ".aaaaaa###aa.a.d", + ".aaaaaabbbaa...d", + ".............a.d", + "d.aaaaaaaaa.a.dd", + "dd...........ddd" + }; + + + + + public ApplicationWindow() { + super(null, "example application main window", WDestructiveClose); + + // create a printer + + printer = new QPrinter(); + + + // create user interface actions + + QAction fileNewAction, fileOpenAction, fileSaveAction, + fileSaveAsAction, filePrintAction, fileCloseAction, + fileQuitAction; + + fileNewAction = new QAction("New", "&New", new QKeySequence(CTRL+Key_N), this, "new", false); + connect(fileNewAction, SIGNAL("activated()"), this, SLOT("newDoc()")); + + fileOpenAction = new QAction("Open File", new QIconSet(new QPixmap(fileopen)), "&Open", new QKeySequence(CTRL+Key_O), this, "open", false); + connect(fileOpenAction, SIGNAL("activated()"), this, SLOT("load()")); + QMimeSourceFactory.defaultFactory().setPixmap("fileopen", new QPixmap(fileopen)); + fileOpenAction.setWhatsThis(fileOpenText); + + fileSaveAction = new QAction("Save File", new QIconSet(new QPixmap(filesave)), "&Save", new QKeySequence(CTRL+Key_S), this, "save", false); + connect(fileSaveAction, SIGNAL("activated()"), this, SLOT("save()")); + fileSaveAction.setWhatsThis(fileSaveText); + + fileSaveAsAction = new QAction("Save File As", "Save &as", new QKeySequence(), this, "save as", false); + connect(fileSaveAsAction, SIGNAL("activated()"), this, SLOT("saveAs()")); + fileSaveAsAction.setWhatsThis(fileSaveText); + + filePrintAction = new QAction("Print File", new QIconSet(new QPixmap(fileprint)), "&Print", new QKeySequence(CTRL+Key_P), this, "print", false); + connect(filePrintAction, SIGNAL("activated()"), this, SLOT("print()")); + filePrintAction.setWhatsThis(filePrintText); + + fileCloseAction = new QAction("Close", "&Close", new QKeySequence(CTRL+Key_W), this, "close", false); + connect(fileCloseAction, SIGNAL("activated()"), this, SLOT("close()")); + + fileQuitAction = new QAction("Quit", "&Quit", new QKeySequence(CTRL+Key_Q), this, "quit", false); + connect(fileQuitAction, SIGNAL("activated()"), qApp(), SLOT("closeAllWindows()")); + + + // populate a tool bar with some actions + + QToolBar fileTools = new QToolBar(this, "file operations"); + fileTools.setLabel(tr("File Operations")); + fileOpenAction.addTo(fileTools); + fileSaveAction.addTo(fileTools); + filePrintAction.addTo(fileTools); + QWhatsThis.whatsThisButton(fileTools); + + + // popuplate a menu with all actions + + QPopupMenu file = new QPopupMenu(this, "file"); + menuBar().insertItem("&File", file); + fileNewAction.addTo(file); + fileOpenAction.addTo(file); + fileSaveAction.addTo(file); + fileSaveAsAction.addTo(file); + file.insertSeparator(); + filePrintAction.addTo(file); + file.insertSeparator(); + fileCloseAction.addTo(file); + fileQuitAction.addTo(file); + + + // add a help menu + + QPopupMenu help = new QPopupMenu(this, "help"); + menuBar().insertSeparator(); + menuBar().insertItem("&Help", help); + help.insertItem("&About", this, SLOT("about()"), new QKeySequence(Key_F1), -1, -1); + help.insertItem("About &Qt", this, SLOT("aboutQt()")); + help.insertSeparator(); + help.insertItem("What's &This", this, SLOT("whatsThis()"), new QKeySequence(SHIFT+Key_F1), -1, -1); + + + // create and define the central widget + + e = new QMultiLineEdit(this, "editor"); + e.setFocus(); + setCentralWidget(e); + statusBar().message("Ready", 2000); + resize(450, 600); + } + + private void newDoc() { + ApplicationWindow ed = new ApplicationWindow(); + ed.show(); + } + + private void load() { + String fn = QFileDialog.getOpenFileName("", "", this); + if (!(fn.length()==0)) + load(fn); + else + statusBar().message("Loading aborted", 2000); + } + + + private void load(String fileName) { + QFile f = new QFile(fileName); + if (!f.open(1)) + return; + + filename = fileName; + + e.setAutoUpdate(false); + e.clear(); + + QTextStream t = new QTextStream(f); + while (!t.eof()) { + String s = t.readLine(); + e.append(s); + } + f.close(); + + e.setAutoUpdate(true); + e.repaint(); + e.setEdited(false); + setCaption(fileName); + String s = "Loaded document "+fileName; + statusBar().message(s, 2000); + } + + private void save() { + if (filename.length()==0) { + saveAs(); + return; + } + + String text = e.text(); + QFile f = new QFile(filename); + if (!f.open(2)) { + statusBar().message("Could not write to "+filename, 2000); + return; + } + + QTextStream t = new QTextStream(f); + t.writeRawBytes(text, text.length()); + f.close(); + + e.setEdited(false); + + setCaption(filename); + + statusBar().message("File "+filename+" saved", 2000); + } + + + private void saveAs() { + String fn = QFileDialog.getSaveFileName("", "", this); + if (!(fn.length()==0)) { + filename = fn; + save(); + } else { + statusBar().message("Saving aborted", 2000); + } + } + + private void print() { + final int Margin = 10; + int pageNo = 1; + + if (printer.setup(this)) { // printer dialog + statusBar().message("Printing..."); + QPainter p = new QPainter(); + p.begin(printer); // paint on printer + p.setFont(e.font()); + int yPos = 0; // y position for each line + QFontMetrics fm = p.fontMetrics(); + + // need width/height of printer surface + QPaintDeviceMetrics metrics = new QPaintDeviceMetrics(printer); + + for(int i = 0 ; i < e.numLines() ; i++) { + if (Margin + yPos > metrics.height() - Margin) { + String msg = "Printing (page "; + msg += ++pageNo; + msg += ")..."; + statusBar().message(msg); + printer.newPage(); // no more room on this page + yPos = 0; // back to top of page + } + p.drawText(Margin, Margin + yPos, metrics.width(), + fm.lineSpacing(), ExpandTabs | DontClip, e.textLine(i)); + yPos = yPos + fm.lineSpacing(); + } + p.end(); // send job to printer + statusBar().message("Printing completed", 2000); + } else { + statusBar().message("Printing aborted", 2000); + } + } + + protected void closeEvent(QCloseEvent ce) { + if (!e.edited()) { + ce.accept(); + return; + } + + switch(QMessageBox.information(this, "Qt Application Example", + "The document has been changed since the last save.", + "Save Now", "Cancel", "Leave Anyway", 0, 1)) { + case 0: + save(); + ce.accept(); + break; + case 1: + default: // just for sanity + ce.ignore(); + break; + case 2: + ce.accept(); + break; + } + } + + private void about() { + QMessageBox.about(this, "Qt Application Example", + "This example demonstrates simple use of "+ + "QMainWindow,\nQMenuBar and QToolBar."); + } + + + private void aboutQt() { + QMessageBox.aboutQt(this, "Qt Application Example"); + } +} diff --git a/qtjava/javalib/examples/application/Main.java b/qtjava/javalib/examples/application/Main.java new file mode 100644 index 00000000..2ba09ea9 --- /dev/null +++ b/qtjava/javalib/examples/application/Main.java @@ -0,0 +1,17 @@ +import org.kde.qt.*; + +public class Main extends QObject { + public static void main(String[] args) { + QApplication a = new QApplication (args); + ApplicationWindow mw = new ApplicationWindow(); + mw.setCaption("Document 1"); + mw.show(); + a.connect(a, SIGNAL("lastWindowClosed()"), a, SLOT("quit()")); + a.exec(); + return; + } + + static { + qtjava.initialize(); + } +} diff --git a/qtjava/javalib/examples/biff/Biff.java b/qtjava/javalib/examples/biff/Biff.java new file mode 100644 index 00000000..b3107da4 --- /dev/null +++ b/qtjava/javalib/examples/biff/Biff.java @@ -0,0 +1,80 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ +import org.kde.qt.*; +import java.util.Calendar; + +class Biff extends QWidget +{ +private Calendar lastModified; +private QPixmap hasNewMail = new QPixmap(); +private QPixmap noNewMail = new QPixmap(); +private String mailbox; +private boolean gotMail; + +public Biff( ) +{ + this(null, null); +} +public Biff( QWidget parent, String name ) +{ + super( parent, name, WType_Modal ); +// QFileInfo fi = new QFileInfo(System.getProperty("MAIL")); + QFileInfo fi = new QFileInfo(""); + if ( !fi.exists() ) { + String s = "/var/spool/mail/"; + s += System.getProperty("user.name"); + fi.setFile( s ); + } + if ( fi.exists() ) { + mailbox = fi.absFilePath(); + startTimer( 1000 ); + } + + setMinimumSize( 48, 48 ); + setMaximumSize( 48, 48 ); + resize( 48, 48 ); + + hasNewMail.loadFromData( bmp.hasmail_bmp_data ); + noNewMail.loadFromData( bmp.nomail_bmp_data ); + + gotMail = false; + lastModified = fi.lastModified(); +} + + +protected void timerEvent( QTimerEvent event ) +{ + QFileInfo fi = new QFileInfo( mailbox ); + boolean newState = ( fi.lastModified() != lastModified && + fi.lastModified().after( fi.lastRead() ) ); + if ( newState != gotMail ) { + if ( gotMail ) + lastModified = fi.lastModified(); + gotMail = newState; + repaint( false ); + } +} + + +protected void paintEvent( QPaintEvent event ) +{ + if ( gotMail ) + bitBlt( this, 0, 0, hasNewMail ); + else + bitBlt( this, 0, 0, noNewMail ); +} + + +protected void mousePressEvent( QMouseEvent event ) +{ + QFileInfo fi = new QFileInfo( mailbox ); + lastModified = fi.lastModified(); +} +} diff --git a/qtjava/javalib/examples/biff/Main.java b/qtjava/javalib/examples/biff/Main.java new file mode 100644 index 00000000..abf20598 --- /dev/null +++ b/qtjava/javalib/examples/biff/Main.java @@ -0,0 +1,30 @@ +/**************************************************************************** +** $Id$ +** +** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +** This file is part of an example program for Qt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ + +import org.kde.qt.*; + +public class Main { + + +public static void main( String[] args ) +{ + QApplication a = new QApplication( args ); + Biff b = new Biff(); + a.setMainWidget( b ); + b.show(); + a.exec(); + return; +} + +static { + qtjava.initialize(); +} + +} diff --git a/qtjava/javalib/examples/biff/bmp.java b/qtjava/javalib/examples/biff/bmp.java new file mode 100644 index 00000000..dfc7c516 --- /dev/null +++ b/qtjava/javalib/examples/biff/bmp.java @@ -0,0 +1,195 @@ +/**************************************************************************** +** $Id$ +** +** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +** This file is part of an example program for Qt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ + +class bmp +{ + +public static char[] hasmail_bmp_data = { + 0x42,0x4d,0xc2,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x00,0x00,0x00, + 0x28,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x01,0x00, + 0x04,0x00,0x00,0x00,0x00,0x00,0x80,0x04,0x00,0x00,0x6d,0x0b,0x00,0x00, + 0x6d,0x0b,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0xff,0xff,0xff,0x00,0x51,0x61,0x30,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10, + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, + 0x10,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x10, + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x10,0x10,0x10, + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x00,0x01,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x11, + 0x00,0x01,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x01,0x00,0x00, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x10,0x10,0x10, + 0x10,0x10,0x10,0x10,0x10,0x11,0x00,0x01,0x00,0x00,0x01,0x10,0x10,0x10, + 0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x00,0x01,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x11,0x00,0x01, + 0x00,0x00,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x01,0x00,0x00,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x10,0x10,0x10,0x10,0x00, + 0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x01,0x10,0x10,0x10,0x10,0x10, + 0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x00,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00, + 0x00,0x10,0x10,0x10,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01, + 0x01,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x11,0x11,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x10,0x10,0x10,0x01,0x10,0x00,0x00, + 0x00,0x00,0x00,0x00,0x01,0x10,0x11,0x00,0x10,0x10,0x10,0x10,0x10,0x10, + 0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x10,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x10,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x10, + 0x10,0x10,0x01,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,0x00,0x11, + 0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x01,0x10, + 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,0x00,0x01,0x10,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,0x10,0x10,0x10,0x10, + 0x10,0x11,0x01,0x10,0x00,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x10, + 0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x10,0x10,0x10,0x11,0x10,0x10,0x10,0x01,0x10,0x00,0x00,0x00,0x10, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,0x11,0x10, + 0x10,0x10,0x10,0x10,0x01,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00, + 0x00,0x00,0x11,0x11,0x11,0x10,0x01,0x10,0x10,0x10,0x01,0x00,0x10,0x10, + 0x01,0x10,0x00,0x00,0x00,0x10,0x01,0x11,0x11,0x11,0x11,0x11,0x00,0x00, + 0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,0x01,0x10, + 0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10, + 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,0x01,0x11,0x00,0x10,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x00, + 0x00,0x00,0x01,0x10,0x01,0x11,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x00,0x01,0x10, + 0x01,0x11,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x01,0x10,0x00,0x01,0x11,0x11,0x10,0x00,0x01,0x11,0x01,0x11,0x00,0x10, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x00, + 0x00,0x00,0x00,0x00,0x11,0x11,0x11,0x11,0x00,0x10,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00, + 0x11,0x01,0x11,0x11,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x00,0x01,0x10,0x00,0x11,0x11, + 0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x11,0x00,0x00,0x00,0x00,0x01,0x10,0x00,0x01,0x11,0x00,0x10,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x10,0x00,0x00, + 0x01,0x11,0x00,0x00,0x01,0x11,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x11,0x11,0x11,0x11,0x10,0x00,0x00, + 0x01,0x11,0x11,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x11,0x11,0x11,0x10,0x00,0x00,0x00,0x01,0x11,0x11,0x10, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x10,0x00,0x00,0x00,0x00,0x00,0x01,0x11,0x01,0x10,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x00,0x00, + 0x00,0x00,0x01,0x11,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x00,0x01,0x11, + 0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x00,0x01,0x11,0x11,0x11,0x11,0x10, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x10,0x00,0x00,0x00,0x01,0x11,0x11,0x11,0x11,0x10,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x00,0x00, + 0x01,0x10,0x10,0x10,0x11,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x11,0x00,0x00,0x01,0x11,0x01,0x01, + 0x01,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x11,0x11,0x01,0x11,0x10,0x10,0x10,0x11,0x10,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x11,0x11,0x01,0x11,0x01,0x01,0x01,0x10,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x11, + 0x11,0x11,0x11,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x11,0x11,0x11,0x11,0x10, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + +static char[] nomail_bmp_data = { + 0x42,0x4d,0xc6,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0x00,0x00,0x00, + 0x28,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x01,0x00, + 0x04,0x00,0x00,0x00,0x00,0x00,0x80,0x04,0x00,0x00,0x6d,0x0b,0x00,0x00, + 0x6d,0x0b,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0xff,0xff,0xff,0x00,0x38,0x30,0x61,0x00,0xa6,0x8a,0xff,0x00, + 0x01,0x01,0x01,0x01,0x11,0x01,0x11,0x10,0x11,0x10,0x11,0x01,0x01,0x11, + 0x01,0x11,0x11,0x01,0x11,0x10,0x01,0x10,0x01,0x11,0x10,0x01,0x11,0x01, + 0x11,0x11,0x00,0x11,0x10,0x11,0x10,0x00,0x00,0x00,0x11,0x11,0x01,0x11, + 0x10,0x00,0x00,0x01,0x11,0x01,0x01,0x00,0x01,0x10,0x00,0x10,0x10,0x00, + 0x00,0x10,0x01,0x10,0x10,0x01,0x00,0x01,0x10,0x11,0x01,0x00,0x10,0x10, + 0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x00,0x11,0x10, + 0x11,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x11,0x10,0x00,0x00,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x11,0x10,0x11,0x11,0x10,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x10,0x11,0x10,0x11,0x11,0x10,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10, + 0x11,0x10,0x11,0x11,0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x11,0x10,0x11,0x11, + 0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x10,0x11,0x10,0x11,0x11,0x10,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x10,0x11,0x10,0x11,0x11,0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x11,0x10, + 0x11,0x11,0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x11,0x10,0x11,0x11,0x10,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x10,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00, + 0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x10,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x01,0x00,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x01,0x11,0x11, + 0x11,0x11,0x11,0x11,0x10,0x01,0x10,0x01,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x11,0x11,0x11, + 0x10,0x01,0x11,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x01,0x11,0x10, + 0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x01, + 0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x00,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x11, + 0x11,0x11,0x10,0x01,0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x01, + 0x11,0x11,0x11,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x10,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x01, + 0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x01,0x10,0x01,0x11,0x11, + 0x11,0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x01,0x10,0x00,0x00,0x00, + 0x00,0x00,0x11,0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x11,0x11,0x11, + 0x10,0x01,0x11,0x11,0x11,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x01,0x11,0x00, + 0x11,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x01, + 0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x01,0x11,0x00,0x01,0x01,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x10,0x01, + 0x11,0x11,0x10,0x01,0x11,0x00,0x01,0x01,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x10,0x01,0x11,0x10,0x00,0x00,0x01,0x11,0x10,0x00, + 0x11,0x10,0x00,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x01,0x11,0x00,0x00, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x11,0x11, + 0x11,0x11,0x11,0x11,0x00,0x10,0x00,0x11,0x10,0x00,0x01,0x11,0x00,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x11,0x10, + 0x01,0x11,0x00,0x01,0x11,0x00,0x00,0x11,0x00,0x01,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x10,0x00,0x11,0x11,0x11,0x11,0x10,0x01,0x11,0x10,0x00, + 0x11,0x01,0x00,0x01,0x00,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x00,0x01,0x11,0x11,0x10,0x00,0x11,0x11,0x11,0x00,0x01,0x01,0x10,0x00, + 0x00,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x00,0x00, + 0x00,0x01,0x11,0x11,0x11,0x10,0x00,0x01,0x11,0x00,0x00,0x01,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x01,0x11,0x11,0x11, + 0x11,0x11,0x00,0x01,0x11,0x10,0x00,0x01,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x01, + 0x11,0x11,0x00,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x10,0x01, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x01,0x11,0x11, + 0x11,0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x01,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x11,0x11,0x11,0x11,0x11,0x11, + 0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x11,0x11,0x00,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x00,0x01,0x11,0x11,0x11,0x10,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x01,0x11, + 0x10,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x00,0x00,0x00,0x01,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x10,0x00,0x01,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, + 0x11,0x11,0x11,0x11 +}; + +} diff --git a/qtjava/javalib/examples/buttongroups/ButtonsGroups.java b/qtjava/javalib/examples/buttongroups/ButtonsGroups.java new file mode 100644 index 00000000..0ac7e811 --- /dev/null +++ b/qtjava/javalib/examples/buttongroups/ButtonsGroups.java @@ -0,0 +1,117 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ +import org.kde.qt.*; + +class ButtonsGroups extends QWidget +{ +protected QCheckBox state; +protected QRadioButton rb21, rb22, rb23; + + + + +/* + Constructor + * + Creates all child widgets of the ButtonGroups window + */ + +public ButtonsGroups( ) +{ + this(null, null); +} + +public ButtonsGroups( QWidget parent, String name ) +{ + super( parent, name ); + // Create Widgets which allow easy layouting + QVBoxLayout vbox = new QVBoxLayout( this ); + QHBoxLayout box1 = new QHBoxLayout( vbox ); + QHBoxLayout box2 = new QHBoxLayout( vbox ); + + // ------- first group + + // Create an exclusive button group + QButtonGroup bgrp1 = new QButtonGroup( 1, QGroupBox.Horizontal, "Button Group 1 (exclusive)", this); + box1.addWidget( bgrp1 ); + bgrp1.setExclusive( true ); + + // insert 3 radiobuttons + QRadioButton rb11 = new QRadioButton( "&Radiobutton 1", bgrp1 ); + rb11.setChecked( true ); + new QRadioButton( "R&adiobutton 2", bgrp1 ); + new QRadioButton( "Ra&diobutton 3", bgrp1 ); + + // ------- second group + + // Create a non-exclusive buttongroup + QButtonGroup bgrp2 = new QButtonGroup( 1, QGroupBox.Horizontal, "Button Group 2 (non-exclusive)", this ); + box1.addWidget( bgrp2 ); + bgrp2.setExclusive( false ); + + // insert 3 checkboxes + new QCheckBox( "&Checkbox 1", bgrp2 ); + QCheckBox cb12 = new QCheckBox( "C&heckbox 2", bgrp2 ); + cb12.setChecked( true ); + QCheckBox cb13 = new QCheckBox( "Triple &State Button", bgrp2 ); + cb13.setTristate( true ); + cb13.setChecked( true ); + + // ------------ third group + + // create a buttongroup which is exclusive for radiobuttons and non-exclusive for all other buttons + QButtonGroup bgrp3 = new QButtonGroup( 1, QGroupBox.Horizontal, "Button Group 3 (Radiobutton-exclusive)", this ); + box2.addWidget( bgrp3 ); + bgrp3.setRadioButtonExclusive( true ); + + // insert three radiobuttons + rb21 = new QRadioButton( "Rad&iobutton 1", bgrp3 ); + rb22 = new QRadioButton( "Radi&obutton 2", bgrp3 ); + rb23 = new QRadioButton( "Radio&button 3", bgrp3 ); + rb23.setChecked( true ); + + // insert a checkbox... + state = new QCheckBox( "E&nable Radiobuttons", bgrp3 ); + state.setChecked( true ); + // ...and connect its SIGNAL clicked() with the SLOT slotChangeGrp3State() + connect( state, SIGNAL(" clicked()"), this, SLOT(" slotChangeGrp3State()") ); + + // ------------ fourth group + + // create a groupbox which layouts its childs in a columns + QGroupBox bgrp4 = new QButtonGroup( 1, QGroupBox.Horizontal, "Groupbox with normal buttons", this ); + box2.addWidget( bgrp4 ); + + // insert three pushbuttons... + new QPushButton( "&Push Button", bgrp4 ); + QPushButton tb2 = new QPushButton( "&Toggle Button", bgrp4 ); + QPushButton tb3 = new QPushButton( "&Flat Button", bgrp4 ); + + // ... and make the second one a toggle button + tb2.setToggleButton( true ); + tb2.setOn( true ); + + // ... and make the third one a flat button + tb3.setFlat(true); +} + +/* + SLOT slotChangeGrp3State() + * + enables/disables the radiobuttons of the third buttongroup + */ + +public void slotChangeGrp3State() +{ + rb21.setEnabled( state.isChecked() ); + rb22.setEnabled( state.isChecked() ); + rb23.setEnabled( state.isChecked() ); +} +} diff --git a/qtjava/javalib/examples/buttongroups/Main.java b/qtjava/javalib/examples/buttongroups/Main.java new file mode 100644 index 00000000..a7652d87 --- /dev/null +++ b/qtjava/javalib/examples/buttongroups/Main.java @@ -0,0 +1,33 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ +import org.kde.qt.*; + +public class Main { + +public static void main( String[] args ) +{ + QApplication a = new QApplication( args ); + + ButtonsGroups buttonsgroups = new ButtonsGroups(); + buttonsgroups.resize( 500, 250 ); + buttonsgroups.setCaption( "Qt Example - Buttongroups" ); + a.setMainWidget( buttonsgroups ); + buttonsgroups.show(); + + a.exec(); + return; +} + +static { + qtjava.initialize(); + +} + +} diff --git a/qtjava/javalib/examples/buttongroups/README b/qtjava/javalib/examples/buttongroups/README new file mode 100644 index 00000000..b43913e3 --- /dev/null +++ b/qtjava/javalib/examples/buttongroups/README @@ -0,0 +1,13 @@ +This example program shows how to use + + - different types of buttons + - different types of groupboxes + +The buttons which are used are radiobuttons, checkboxes (also tristate checkboxes), +normal pusbuttons and toggleable pushbuttons. +These buttons are seperated in four groups using groupboxes. The example shows how +to make a buttongroup totally exclusive (only one button can be checked), exclusive +for radiobuttons only or non-exclusive. Also it is demonstrated how buttons (and +other widgets too!) can be laid out in rows and columns in a groupbox. + +Important parts of the source code are documented as well to make it easy to understand. diff --git a/qtjava/javalib/examples/checklists/CheckLists.java b/qtjava/javalib/examples/checklists/CheckLists.java new file mode 100644 index 00000000..ef3dd8bf --- /dev/null +++ b/qtjava/javalib/examples/checklists/CheckLists.java @@ -0,0 +1,171 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ +import org.kde.qt.*; +import java.util.*; + +class CheckLists extends QWidget +{ + +protected QListView lv1, lv2; +protected QLabel label; + +/* + Constructor + * + Create all child widgets of the CheckList Widget + */ + +CheckLists( ) +{ + this(null, null); +} + +CheckLists( QWidget parent, String name ) +{ + super( parent, name ); + QHBoxLayout lay = new QHBoxLayout( this ); + lay.setMargin( 5 ); + + // create a widget which layouts its childs in a column + QVBoxLayout vbox1 = new QVBoxLayout( lay ); + vbox1.setMargin( 5 ); + + // First child: a Label + vbox1.addWidget( new QLabel( "Check some items!", this ) ); + + // Second child: the ListView + lv1 = new QListView( this ); + vbox1.addWidget( lv1 ); + lv1.addColumn( "Items" ); + lv1.setRootIsDecorated( true ); + + // create a list with 4 ListViewItems which will be parent items of other ListViewItems + ArrayList parentList = new ArrayList(); + + parentList.add( new QListViewItem( lv1, "Parent Item 1" ) ); + parentList.add( new QListViewItem( lv1, "Parent Item 2" ) ); + parentList.add( new QListViewItem( lv1, "Parent Item 3" ) ); + parentList.add( new QListViewItem( lv1, "Parent Item 4" ) ); + + QListViewItem item = null; + int num = 1; + // go through the list of parent items... + for ( Iterator it = parentList.iterator(); it.hasNext(); num++ ) { + item = (QListViewItem) it.next(); + item.setOpen( true ); + // ...and create 5 checkable child ListViewItems for each parent item + for ( int i = 1; i <= 5; i++ ) + new QCheckListItem( item, i + ". Child of Parent " + num, QCheckListItem.CheckBox ); + } + + // Create another widget for layouting + QVBoxLayout tmp = new QVBoxLayout( lay ); + tmp.setMargin( 5 ); + + // create a pushbutton + QPushButton copy1 = new QPushButton( " -> ", this ); + tmp.addWidget( copy1 ); + copy1.setMaximumWidth( copy1.sizeHint().width() ); + // connect the SIGNAL clicked() of the pushbutton with the SLOT copy1to2() + connect( copy1, SIGNAL(" clicked()"), this, SLOT(" copy1to2()") ); + + // another widget for layouting + QVBoxLayout vbox2 = new QVBoxLayout( lay ); + vbox2.setMargin( 5 ); + + // and another label + vbox2.addWidget( new QLabel( "Check one item!", this ) ); + + // create the second listview + lv2 = new QListView( this ); + vbox2.addWidget( lv2 ); + lv2.addColumn( "Items" ); + lv2.setRootIsDecorated( true ); + + // another widget needed for layouting only + tmp = new QVBoxLayout( lay ); + tmp.setMargin( 5 ); + + // create another pushbutton... + QPushButton copy2 = new QPushButton( " -> ", this ); + lay.addWidget( copy2 ); + copy2.setMaximumWidth( copy2.sizeHint().width() ); + // ...and connect its clicked() SIGNAL to the copy2to3() SLOT + connect( copy2, SIGNAL(" clicked()"), this, SLOT(" copy2to3()") ); + + tmp = new QVBoxLayout( lay ); + tmp.setMargin( 5 ); + + // and create a label which will be at the right of the window + label = new QLabel( "No Item yet...", this ); + tmp.addWidget( label ); +} + +/* + SLOT copy1to2() + * + Copies all checked ListViewItems from the first ListView to + the second one, and inserts them as Radio-ListViewItem. + */ + +public void copy1to2() +{ + // create an iterator which operates on the first ListView + Iterator it = lv1.itemList().iterator(); + + lv2.clear(); + + // Insert first a controller Item into the second ListView. Always if Radio-ListViewItems + // are inserted into a Listview, the parent item of these MUST be a controller Item! + QCheckListItem item = new QCheckListItem( lv2, "Controller", QCheckListItem.Controller ); + item.setOpen( true ); + + // iterate through the first ListView... + while ( it.hasNext() ) { + QListViewItem current = (QListViewItem) it.next(); + // ...check state of childs, and... + if ( current.parent() != null ) + // ...if the item is checked... + if ( ( (QCheckListItem) current ).isOn() ) + // ...insert a Radio-ListViewItem with the same text into the second ListView + new QCheckListItem( item, current.text( 0 ), QCheckListItem.RadioButton ); + + } + if ( item.firstChild() != null ) + ( ( QCheckListItem )item.firstChild() ).setOn( true ); +} + +/* + SLOT copy2to3() + * + Copies the checked item of the second ListView into the + Label at the right. + */ + +public void copy2to3() +{ + // create an iterator which operates on the second ListView + Iterator it = lv2.itemList().iterator(); + + label.setText( "No Item checked" ); + + // iterate through the second ListView... + while ( it.hasNext() ) { + QListViewItem current = (QListViewItem) it.next(); + // ...check state of childs, and... + if ( current.parent() != null ) + // ...if the item is checked... + if ( ( (QCheckListItem) current ).isOn() ) + // ...set the text of the item to the label + label.setText( current.text( 0 ) ); + } +} +} + diff --git a/qtjava/javalib/examples/checklists/Main.java b/qtjava/javalib/examples/checklists/Main.java new file mode 100644 index 00000000..8d21a20b --- /dev/null +++ b/qtjava/javalib/examples/checklists/Main.java @@ -0,0 +1,31 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ +import org.kde.qt.*; + +public class Main { + +public static void main( String[] args ) +{ + QApplication a = new QApplication( args ); + + CheckLists checklists = new CheckLists(); + checklists.resize( 650, 350 ); + checklists.setCaption( "Qt Example - CheckLists" ); + a.setMainWidget( checklists ); + checklists.show(); + + a.exec(); + return; +} +static { + qtjava.initialize(); +} + +} diff --git a/qtjava/javalib/examples/cursor/CursorView.java b/qtjava/javalib/examples/cursor/CursorView.java new file mode 100644 index 00000000..39eeb591 --- /dev/null +++ b/qtjava/javalib/examples/cursor/CursorView.java @@ -0,0 +1,150 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + +// +// The CursorView contains many labels with different cursors. +// + +class CursorView extends QWidget // cursor view +{ + +// cb_bits and cm_bits were generated by X bitmap program. + +static final int cb_width = 32; +static final int cb_height = 32; + +static char cb_bits[] = { // cursor bitmap + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, + 0x00, 0x06, 0x30, 0x00, 0x80, 0x01, 0xc0, 0x00, 0x40, 0x00, 0x00, 0x01, + 0x20, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, 0x04, 0x08, 0x3e, 0x3e, 0x08, + 0x08, 0x03, 0xe0, 0x08, 0xc4, 0x00, 0x00, 0x11, 0x04, 0x1e, 0x78, 0x10, + 0x02, 0x0c, 0x30, 0x20, 0x02, 0x40, 0x00, 0x20, 0x02, 0x40, 0x00, 0x20, + 0x02, 0x40, 0x00, 0x20, 0x02, 0x20, 0x04, 0x20, 0x02, 0x20, 0x04, 0x20, + 0x02, 0x10, 0x08, 0x20, 0x02, 0x08, 0x08, 0x20, 0x02, 0xf0, 0x07, 0x20, + 0x04, 0x00, 0x00, 0x10, 0x04, 0x00, 0x00, 0x10, 0x08, 0x00, 0xc0, 0x08, + 0x08, 0x3c, 0x30, 0x08, 0x10, 0xe6, 0x19, 0x04, 0x20, 0x00, 0x0f, 0x02, + 0x40, 0x00, 0x00, 0x01, 0x80, 0x01, 0xc0, 0x00, 0x00, 0x06, 0x30, 0x00, + 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00}; + +static final int cm_width = 32; +static final int cm_height = 32; + +static char cm_bits[] = { // cursor bitmap mask + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0xfe, 0x3f, 0x00, + 0x80, 0x07, 0xf0, 0x00, 0xc0, 0x01, 0xc0, 0x01, 0x60, 0x00, 0x00, 0x03, + 0x30, 0x00, 0x00, 0x06, 0x18, 0x00, 0x00, 0x0c, 0x0c, 0x3e, 0x3e, 0x18, + 0x0e, 0x03, 0xe0, 0x18, 0xc6, 0x00, 0x00, 0x31, 0x07, 0x1e, 0x78, 0x30, + 0x03, 0x0c, 0x30, 0x60, 0x03, 0x40, 0x00, 0x60, 0x03, 0x40, 0x00, 0x60, + 0x03, 0x40, 0x00, 0x60, 0x03, 0x20, 0x04, 0x60, 0x03, 0x20, 0x04, 0x60, + 0x03, 0x10, 0x08, 0x60, 0x03, 0x08, 0x08, 0x60, 0x03, 0xf0, 0x07, 0x60, + 0x06, 0x00, 0x00, 0x30, 0x06, 0x00, 0x00, 0x30, 0x0c, 0x00, 0xc0, 0x18, + 0x0c, 0x3c, 0x30, 0x18, 0x18, 0xe6, 0x19, 0x0c, 0x30, 0x00, 0x0f, 0x06, + 0x60, 0x00, 0x00, 0x03, 0xc0, 0x01, 0xc0, 0x01, 0x80, 0x07, 0xf0, 0x00, + 0x00, 0xfe, 0x3f, 0x00, 0x00, 0xf8, 0x0f, 0x00}; + + + static int[] shapeList = { + ArrowCursor, + UpArrowCursor, + CrossCursor, + WaitCursor, + IbeamCursor, + SizeVerCursor, + SizeHorCursor, + SizeBDiagCursor, + SizeFDiagCursor, + SizeAllCursor, + BlankCursor, + SplitVCursor, + SplitHCursor, + PointingHandCursor, + ForbiddenCursor, + WhatsThisCursor + }; + + static String[] nameList = { + "arrowCursor" , + "upArrowCursor" , + "crossCursor" , + "waitCursor" , + "ibeamCursor" , + "sizeVerCursor" , + "sizeHorCursor" , + "sizeBDiagCursor" , + "sizeFDiagCursor" , + "sizeAllCursor" , + "blankCursor" , + "splitVCursor" , + "splitHCursor" , + "pointingHandCursor" , + "forbiddenCursor" , + "whatsThisCursor" + }; + +// +// Constructs a cursor view. +// + +public CursorView() // construct view +{ + setCaption( "CursorView" ); // set window caption + + QGridLayout grid = new QGridLayout( this, 5, 4, 20 ); + QLabel label; + + int i=0; + for ( int y=0; y<4; y++ ) { // create the small labels + for ( int x=0; x<4; x++ ) { + label = new QLabel( this ); + label.setCursor( new QCursor( shapeList[i] ) ); + label.setText( nameList[i] ); + label.setAlignment( AlignCenter ); + label.setFrameStyle( QFrame.Box | QFrame.Raised ); + grid.addWidget( label, x, y ); + i++; + } + } + + QBitmap cb = new QBitmap( cb_width, cb_height, cb_bits, true ); + QBitmap cm = new QBitmap( cm_width, cm_height, cm_bits, true ); + QCursor custom = new QCursor( cb, cm ); // create bitmap cursor + + label = new QLabel( this ); // create the big label + label.setCursor( custom ); + label.setText( "Custom bitmap cursor" ); + label.setAlignment( AlignCenter ); + label.setFrameStyle( QFrame.Box | QFrame.Sunken ); + grid.addMultiCellWidget( label, 4, 4, 0, 3 ); + +} + + +// +// Create and display a CursorView. +// + +public static void main( String[] args ) +{ + QApplication a = new QApplication( args ); // application object + CursorView v = new CursorView(); // cursor view + a.setMainWidget( v ); + v.setCaption("Qt Example - Cursors"); + v.show(); + a.exec(); + return; +} + +static { + qtjava.initialize(); +} + +} diff --git a/qtjava/javalib/examples/cursor/README b/qtjava/javalib/examples/cursor/README new file mode 100644 index 00000000..c2040e5f --- /dev/null +++ b/qtjava/javalib/examples/cursor/README @@ -0,0 +1,2 @@ +The cursor sample program displays the predefined cursors and +creates a custom bitmap cursor. diff --git a/qtjava/javalib/examples/dclock/DigitalClock.java b/qtjava/javalib/examples/dclock/DigitalClock.java new file mode 100644 index 00000000..6bc1d87f --- /dev/null +++ b/qtjava/javalib/examples/dclock/DigitalClock.java @@ -0,0 +1,115 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; +import java.util.Date; +import java.text.*; + +class DigitalClock extends QLCDNumber // digital clock widget +{ + +private boolean showingColon; +private int normalTimer; +private int showDateTimer; + + + + +DigitalClock( ) +{ + this(null, null); +} + +// +// Constructs a DigitalClock widget with a parent and a name. +// +DigitalClock( QWidget parent ) +{ + this(parent, null); +} + +DigitalClock( QWidget parent, String name ) +{ + super( parent, name ); + showingColon = false; + setFrameStyle( QFrame.Panel | QFrame.Raised ); + setLineWidth( 2 ); // set frame line width + showTime(); // display the current time + normalTimer = startTimer( 500 ); // 1/2 second timer events + showDateTimer = -1; // not showing date +} + + +// +// Handles timer events for the digital clock widget. +// There are two different timers; one timer for updating the clock +// and another one for switching back from date mode to time mode. +// + +protected void timerEvent( QTimerEvent e ) +{ + if ( e.timerId() == showDateTimer ) // stop showing date + stopDate(); + else { // normal timer + if ( showDateTimer == -1 ) // not showing date + showTime(); + } +} + +// +// Enters date mode when the left mouse button is pressed. +// + +protected void mousePressEvent( QMouseEvent e ) +{ + if ( e.button() == QMouseEvent.LeftButton ) // left button pressed + showDate(); +} + + +// +// Shows the current date in the internal lcd widget. +// Fires a timer to stop showing the date. +// + +void showDate() +{ + if ( showDateTimer != -1 ) // already showing date + return; + // Java always prints at least two digits for the year + DateFormat dateFormat = new SimpleDateFormat( "yy d" ); + String s = dateFormat.format(new Date()); + display( s ); // sets the LCD number/text + showDateTimer = startTimer( 2000 ); // keep this state for 2 secs +} + +// +// Stops showing the date. +// + +void stopDate() +{ + killTimer( showDateTimer ); + showDateTimer = -1; + showTime(); +} + +// +// Shows the current time in the internal lcd widget. +// + +void showTime() +{ + showingColon = !showingColon; // toggle/blink colon + DateFormat timeFormat = new SimpleDateFormat( (showingColon ? "HH:mm": "HH mm") ); + String s = timeFormat.format(new Date()); + display( s ); // set LCD number/text +} +} diff --git a/qtjava/javalib/examples/dclock/Main.java b/qtjava/javalib/examples/dclock/Main.java new file mode 100644 index 00000000..1aeb174e --- /dev/null +++ b/qtjava/javalib/examples/dclock/Main.java @@ -0,0 +1,30 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ +import org.kde.qt.*; + +public class Main { + + +public static void main( String[] args ) +{ + QApplication a = new QApplication( args ); + DigitalClock clock = new DigitalClock(); + clock.resize( 170, 80 ); + a.setMainWidget( clock ); + clock.setCaption("Qt Example - Digital Clock"); + clock.show(); + a.exec(); + return; +} + +static { + qtjava.initialize(); +} +} diff --git a/qtjava/javalib/examples/dclock/README b/qtjava/javalib/examples/dclock/README new file mode 100644 index 00000000..dfa58402 --- /dev/null +++ b/qtjava/javalib/examples/dclock/README @@ -0,0 +1,5 @@ +The dclock program displays a digital LCD clock and can switch +between time and date. + +See also the aclock sample that displays an analog clock. + diff --git a/qtjava/javalib/examples/demo/sql/BookForm.java b/qtjava/javalib/examples/demo/sql/BookForm.java new file mode 100644 index 00000000..67670357 --- /dev/null +++ b/qtjava/javalib/examples/demo/sql/BookForm.java @@ -0,0 +1,191 @@ +/**************************************************************************** +** Form implementation generated from reading ui file 'book.ui' +** +** Created: Wed Aug 8 03:34:02 2001 +** by: The User Interface Compiler (uic) +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ +import org.kde.qt.*; + +public class BookForm extends QWidget { + QDataTable AuthorDataTable; + QDataTable BookDataTable; + QPushButton connectButton; + QPushButton editButton; + + QGridLayout BookFormLayout; + QSizePolicy policy_1; + QSizePolicy policy_2; + QSpacerItem spacer; + QSpacerItem spacer_2; + + QSqlCursor authorCursor; + QSqlCursor bookCursor; + +/* + * Constructs a BookForm which is a child of 'parent', with the + * name 'name' and widget flags set to 'f' + */ +BookForm( QWidget parent, String name, int fl ) +{ + super( parent, name, fl ); + if ( name == null ) + setName( "BookForm" ); + resize( 478, 498 ); + setCaption( trUtf8( "Book" ) ); + BookFormLayout = new QGridLayout( this ); + BookFormLayout.setSpacing( 6 ); + BookFormLayout.setMargin( 11 ); + + AuthorDataTable = new QDataTable( this, "AuthorDataTable" ); + AuthorDataTable.addColumn( "surname", trUtf8( "Surname", "" ) ); + AuthorDataTable.addColumn( "forename", trUtf8( "Forename", "" ) ); + AuthorDataTable.setSorting( true ); + AuthorDataTable.setConfirmDelete( true ); + AuthorDataTable.setSort( new String[] { "surname ASC", "forename ASC" } ); + + BookFormLayout.addMultiCellWidget( AuthorDataTable, 1, 1, 0, 2 ); + spacer = new QSpacerItem( 20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum ); + BookFormLayout.addMultiCell( spacer, 0, 0, 1, 2 ); + + BookDataTable = new QDataTable( this, "BookDataTable" ); + BookDataTable.addColumn( "title", trUtf8( "Title", "" ) ); + BookDataTable.addColumn( "price", trUtf8( "Price", "" ) ); + BookDataTable.addColumn( "notes", trUtf8( "Notes", "" ) ); + BookDataTable.setReadOnly( true ); + BookDataTable.setSorting( true ); + BookDataTable.setSort( new String[] { "title ASC" } ); + + BookFormLayout.addMultiCellWidget( BookDataTable, 2, 2, 0, 2 ); + spacer_2 = new QSpacerItem( 20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum ); + BookFormLayout.addMultiCell( spacer_2, 3, 3, 0, 1 ); + + connectButton = new QPushButton( this, "connectButton" ); + policy_1 = new QSizePolicy( (int)0, (int)0, connectButton.sizePolicy().hasHeightForWidth() ); + connectButton.setSizePolicy( policy_1 ); + connectButton.setText( trUtf8( "&Connect..." ) ); + + BookFormLayout.addWidget( connectButton, 0, 0 ); + + editButton = new QPushButton( this, "editButton" ); + editButton.setEnabled( false ); + policy_2 = new QSizePolicy( (int)0, (int)0, editButton.sizePolicy().hasHeightForWidth() ); + editButton.setSizePolicy( policy_2 ); + editButton.setText( trUtf8( "&Edit Books" ) ); + + BookFormLayout.addWidget( editButton, 3, 2 ); + + // database support + + + + + + // signals and slots connections + connect( editButton, SIGNAL( "clicked()" ), this, SLOT( "editClicked()" ) ); + connect( AuthorDataTable, SIGNAL( "primeInsert(QSqlRecord)" ), this, SLOT( "primeInsertAuthor(QSqlRecord)" ) ); + connect( AuthorDataTable, SIGNAL( "currentChanged(QSqlRecord)" ), this, SLOT( "newCurrentAuthor(QSqlRecord)" ) ); + connect( connectButton, SIGNAL( "clicked()" ), this, SLOT( "connectClicked()" ) ); + + // tab order + setTabOrder( connectButton, editButton ); + init(); +} + +BookForm( QWidget parent, String name ) +{ + this(parent, name, 0); +} + +BookForm( QWidget parent ) +{ + this(parent, null, 0); +} + +BookForm( ) +{ + this(null, null, 0); +} + +void init() +{ +} + +public void destroy() +{ +} + +void editClicked() +{ + EditBookForm dialog = new EditBookForm( this, "Edit Book Form", true, 0 ); + QSqlCursor cur = new QSqlCursor( "book" ); + dialog.BookDataBrowser.setSqlCursor( cur ); + dialog.BookDataBrowser.setFilter( BookDataTable.filter() ); + String[] sort = new String[BookDataTable.sort().size()]; + sort = (String[]) BookDataTable.sort().toArray(sort); + dialog.BookDataBrowser.setSort(QSqlIndex.fromStringList( + sort, cur ) ); + dialog.BookDataBrowser.refresh(); + int i = BookDataTable.currentRow(); + if ( i == -1 ) i = 0; // Always use the first row + dialog.BookDataBrowser.seek( i ); + dialog.exec(); + dialog = null; + BookDataTable.refresh(); +} + +void connectClicked() +{ + boolean ok = false; + ConnectDialog dialog = new ConnectDialog( this, "Connect", true, 0 ); + String[] drivers = new String[QSqlDatabase.drivers().size()];; + drivers = (String[]) QSqlDatabase.drivers().toArray(drivers); + dialog.comboDriver.insertStringList( drivers ); + dialog.editDatabase.setText( "book" ); + if ( dialog.exec() == QDialog.Accepted ) { + // QSqlDatabase.removeDatabase( QSqlDatabase.defaultConnection() ); + QSqlDatabase db = QSqlDatabase.addDatabase( dialog.comboDriver.currentText() ); + db.setDatabaseName( dialog.editDatabase.text() ); + db.setUserName( dialog.editUsername.text() ); + db.setPassword( dialog.editPassword.text() ); + db.setHostName( dialog.editHostname.text() ); + if ( !db.open() ) { + //## warning? + ok= false; + } else + ok = true; + } + if ( !ok ) { + editButton.setEnabled( false ); + BookDataTable.setSqlCursor( (QSqlCursor) null ); + AuthorDataTable.setSqlCursor( (QSqlCursor) null ); + } else { + editButton.setEnabled( true ); + authorCursor = new QSqlCursor( "author" ); + AuthorDataTable.setSqlCursor( authorCursor, false, true ); + bookCursor = new QSqlCursor( "book" ); + BookDataTable.setSqlCursor( bookCursor, false, true ); + AuthorDataTable.refresh( QDataTable.RefreshAll ); + BookDataTable.refresh( QDataTable.RefreshAll ); + } + dialog = null; +} + +void newCurrentAuthor(QSqlRecord author) +{ + BookDataTable.setFilter( "authorid=" + author.value( "id" ).toString() ); + BookDataTable.refresh(); +} + +void primeInsertAuthor(QSqlRecord buffer) +{ + QSqlQuery q = new QSqlQuery(); + q.exec( "UPDATE sequence SET sequence = sequence + 1 WHERE tablename='author';" ); + q.exec( "SELECT sequence FROM sequence WHERE tablename='author';" ); + if ( q.next() ) { + buffer.setValue( "id", q.value( 0 ) ); + } +} + +} diff --git a/qtjava/javalib/examples/demo/sql/ConnectDialog.java b/qtjava/javalib/examples/demo/sql/ConnectDialog.java new file mode 100644 index 00000000..bbd17391 --- /dev/null +++ b/qtjava/javalib/examples/demo/sql/ConnectDialog.java @@ -0,0 +1,138 @@ +/**************************************************************************** +** Form implementation generated from reading ui file 'connect.ui' +** +** Created: Wed Aug 8 03:35:48 2001 +** by: The User Interface Compiler (uic) +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ +import org.kde.qt.*; + +public class ConnectDialog extends QDialog { + QLineEdit editDatabase; + QLabel TextLabel3; + QLineEdit editPassword; + QLabel TextLabel4; + QLabel TextLabel4_2; + QLabel TextLabel2; + QLabel TextLabel5; + QComboBox comboDriver; + QLineEdit editHostname; + QLineEdit editUsername; + QPushButton PushButton1; + QPushButton PushButton2; + + QGridLayout ConnectDialogLayout; + QSpacerItem spacer; + +/* + * Constructs a ConnectDialog which is a child of 'parent', with the + * name 'name' and widget flags set to 'f' + * + * The dialog will by default be modeless, unless you set 'modal' to + * true to construct a modal dialog. + */ +ConnectDialog( QWidget parent, String name, boolean modal, int fl ) +{ + super( parent, name, modal, fl ); + if ( name == null ) + setName( "ConnectDialog" ); + resize( 294, 207 ); + setCaption( trUtf8( "Connect..." ) ); + ConnectDialogLayout = new QGridLayout( this ); + ConnectDialogLayout.setSpacing( 6 ); + ConnectDialogLayout.setMargin( 11 ); + + editDatabase = new QLineEdit( this, "editDatabase" ); + + ConnectDialogLayout.addMultiCellWidget( editDatabase, 1, 1, 2, 3 ); + + TextLabel3 = new QLabel( this, "TextLabel3" ); + TextLabel3.setText( trUtf8( "Database Name:" ) ); + + ConnectDialogLayout.addMultiCellWidget( TextLabel3, 1, 1, 0, 1 ); + + editPassword = new QLineEdit( this, "editPassword" ); + editPassword.setEchoMode( QLineEdit.Password ); + + ConnectDialogLayout.addMultiCellWidget( editPassword, 3, 3, 2, 3 ); + + TextLabel4 = new QLabel( this, "TextLabel4" ); + TextLabel4.setText( trUtf8( "&Username:" ) ); + + ConnectDialogLayout.addMultiCellWidget( TextLabel4, 2, 2, 0, 1 ); + + TextLabel4_2 = new QLabel( this, "TextLabel4_2" ); + TextLabel4_2.setText( trUtf8( "&Password:" ) ); + + ConnectDialogLayout.addMultiCellWidget( TextLabel4_2, 3, 3, 0, 1 ); + + TextLabel2 = new QLabel( this, "TextLabel2" ); + TextLabel2.setText( trUtf8( "D&river" ) ); + + ConnectDialogLayout.addMultiCellWidget( TextLabel2, 0, 0, 0, 1 ); + + TextLabel5 = new QLabel( this, "TextLabel5" ); + TextLabel5.setText( trUtf8( "&Hostname:" ) ); + + ConnectDialogLayout.addMultiCellWidget( TextLabel5, 4, 4, 0, 1 ); + + comboDriver = new QComboBox( false, this, "comboDriver" ); + comboDriver.setEditable( true ); + + ConnectDialogLayout.addMultiCellWidget( comboDriver, 0, 0, 2, 3 ); + + editHostname = new QLineEdit( this, "editHostname" ); + + ConnectDialogLayout.addMultiCellWidget( editHostname, 4, 4, 2, 3 ); + + editUsername = new QLineEdit( this, "editUsername" ); + + ConnectDialogLayout.addMultiCellWidget( editUsername, 2, 2, 2, 3 ); + + PushButton1 = new QPushButton( this, "PushButton1" ); + PushButton1.setText( trUtf8( "&OK" ) ); + PushButton1.setDefault( true ); + + ConnectDialogLayout.addMultiCellWidget( PushButton1, 5, 5, 1, 2 ); + + PushButton2 = new QPushButton( this, "PushButton2" ); + PushButton2.setText( trUtf8( "&Cancel" ) ); + + ConnectDialogLayout.addWidget( PushButton2, 5, 3 ); + spacer = new QSpacerItem( 20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum ); + ConnectDialogLayout.addItem( spacer, 5, 0 ); + + + + + + // signals and slots connections + connect( PushButton1, SIGNAL( "clicked()" ), this, SLOT( "accept()" ) ); + connect( PushButton2, SIGNAL( "clicked()" ), this, SLOT( "reject()" ) ); + + // tab order + setTabOrder( comboDriver, editDatabase ); + setTabOrder( editDatabase, editUsername ); + setTabOrder( editUsername, editPassword ); + setTabOrder( editPassword, editHostname ); + setTabOrder( editHostname, PushButton1 ); + setTabOrder( PushButton1, PushButton2 ); + + // buddies + TextLabel4.setBuddy( editUsername ); + TextLabel4_2.setBuddy( editPassword ); + TextLabel2.setBuddy( comboDriver ); + TextLabel5.setBuddy( editHostname ); + init(); +} + +void init() +{ +} + +public void destroy() +{ +} + +} diff --git a/qtjava/javalib/examples/demo/sql/EditBookForm.java b/qtjava/javalib/examples/demo/sql/EditBookForm.java new file mode 100644 index 00000000..6c07176f --- /dev/null +++ b/qtjava/javalib/examples/demo/sql/EditBookForm.java @@ -0,0 +1,267 @@ +/**************************************************************************** +** Form implementation generated from reading ui file 'editbook.ui' +** +** Created: Wed Aug 8 03:37:45 2001 +** by: The User Interface Compiler (uic) +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ +import org.kde.qt.*; +import java.util.HashMap; + +public class EditBookForm extends QDialog { + QDataBrowser BookDataBrowser; + QLabel labelPrice; + QLabel labelTitle; + QLineEdit QLineEditTitle; + QLineEdit QLineEditPrice; + QPushButton PushButtonInsert; + QPushButton PushButtonUpdate; + QPushButton PushButtonDelete; + QPushButton PushButtonClose; + QPushButton PushButtonFirst; + QPushButton PushButtonPrev; + QPushButton PushButtonNext; + QPushButton PushButtonLast; + QLabel TextLabel1; + QComboBox ComboBoxAuthor; + + QVBoxLayout EditBookFormLayout; + QGridLayout BookDataBrowserLayout; + QGridLayout Layout2; + QHBoxLayout Layout6; + QHBoxLayout Layout3; + QHBoxLayout Layout6_2; + + HashMap authorMap; + QSizePolicy policy_1; + QSqlForm BookDataBrowserForm; + +/* + * Constructs a EditBookForm which is a child of 'parent', with the + * name 'name' and widget flags set to 'f' + * + * The dialog will by default be modeless, unless you set 'modal' to + * true to construct a modal dialog. + */ +EditBookForm( QWidget parent, String name, boolean modal, int fl ) +{ + super( parent, name, modal, fl ); + if ( name == null ) + setName( "EditBookForm" ); + resize( 524, 371 ); + setCaption( trUtf8( "Edit Books" ) ); + EditBookFormLayout = new QVBoxLayout( this ); + EditBookFormLayout.setSpacing( 6 ); + EditBookFormLayout.setMargin( 11 ); + + BookDataBrowser = new QDataBrowser( this, "BookDataBrowser" ); + BookDataBrowserLayout = new QGridLayout( BookDataBrowser ); + BookDataBrowser.setSort( new String[] { "title ASC" } ); + BookDataBrowserLayout.setSpacing( 6 ); + BookDataBrowserLayout.setMargin( 11 ); + + Layout2 = new QGridLayout(); + Layout2.setSpacing( 6 ); + Layout2.setMargin( 0 ); + + labelPrice = new QLabel( BookDataBrowser, "labelPrice" ); + labelPrice.setText( trUtf8( "Price" ) ); + + Layout2.addWidget( labelPrice, 1, 0 ); + + labelTitle = new QLabel( BookDataBrowser, "labelTitle" ); + labelTitle.setText( trUtf8( "Title" ) ); + + Layout2.addWidget( labelTitle, 0, 0 ); + + QLineEditTitle = new QLineEdit( BookDataBrowser, "QLineEditTitle" ); + + Layout2.addWidget( QLineEditTitle, 0, 1 ); + + QLineEditPrice = new QLineEdit( BookDataBrowser, "QLineEditPrice" ); + + Layout2.addWidget( QLineEditPrice, 1, 1 ); + + BookDataBrowserLayout.addLayout( Layout2, 0, 0 ); + + Layout6 = new QHBoxLayout(); + Layout6.setSpacing( 6 ); + Layout6.setMargin( 0 ); + + PushButtonInsert = new QPushButton( BookDataBrowser, "PushButtonInsert" ); + PushButtonInsert.setText( trUtf8( "&Insert" ) ); + Layout6.addWidget( PushButtonInsert ); + + PushButtonUpdate = new QPushButton( BookDataBrowser, "PushButtonUpdate" ); + PushButtonUpdate.setText( trUtf8( "&Update" ) ); + PushButtonUpdate.setDefault( true ); + Layout6.addWidget( PushButtonUpdate ); + + PushButtonDelete = new QPushButton( BookDataBrowser, "PushButtonDelete" ); + PushButtonDelete.setText( trUtf8( "&Delete" ) ); + Layout6.addWidget( PushButtonDelete ); + + PushButtonClose = new QPushButton( BookDataBrowser, "PushButtonClose" ); + PushButtonClose.setText( trUtf8( "&Close" ) ); + Layout6.addWidget( PushButtonClose ); + + BookDataBrowserLayout.addLayout( Layout6, 3, 0 ); + + Layout3 = new QHBoxLayout(); + Layout3.setSpacing( 6 ); + Layout3.setMargin( 0 ); + + PushButtonFirst = new QPushButton( BookDataBrowser, "PushButtonFirst" ); + PushButtonFirst.setText( trUtf8( "|< &First" ) ); + Layout3.addWidget( PushButtonFirst ); + + PushButtonPrev = new QPushButton( BookDataBrowser, "PushButtonPrev" ); + PushButtonPrev.setText( trUtf8( "<< &Prev" ) ); + Layout3.addWidget( PushButtonPrev ); + + PushButtonNext = new QPushButton( BookDataBrowser, "PushButtonNext" ); + PushButtonNext.setText( trUtf8( "&Next >>" ) ); + Layout3.addWidget( PushButtonNext ); + + PushButtonLast = new QPushButton( BookDataBrowser, "PushButtonLast" ); + PushButtonLast.setText( trUtf8( "&Last >|" ) ); + Layout3.addWidget( PushButtonLast ); + + BookDataBrowserLayout.addLayout( Layout3, 2, 0 ); + + Layout6_2 = new QHBoxLayout(); + Layout6_2.setSpacing( 6 ); + Layout6_2.setMargin( 0 ); + + TextLabel1 = new QLabel( BookDataBrowser, "TextLabel1" ); + TextLabel1.setText( trUtf8( "Author" ) ); + Layout6_2.addWidget( TextLabel1 ); + + ComboBoxAuthor = new QComboBox( false, BookDataBrowser, "ComboBoxAuthor" ); + policy_1 = new QSizePolicy( (int)7, (int)0, ComboBoxAuthor.sizePolicy().hasHeightForWidth() ); + ComboBoxAuthor.setSizePolicy( policy_1 ); + Layout6_2.addWidget( ComboBoxAuthor ); + + BookDataBrowserLayout.addLayout( Layout6_2, 1, 0 ); + EditBookFormLayout.addWidget( BookDataBrowser ); + + // database support + BookDataBrowserForm = new QSqlForm( this, "BookDataBrowserForm" ); + BookDataBrowserForm.insert( QLineEditTitle, "title" ); + BookDataBrowserForm.insert( QLineEditPrice, "price" ); + BookDataBrowser.setForm( BookDataBrowserForm ); + + + + + + // signals and slots connections + connect( PushButtonFirst, SIGNAL( "clicked()" ), BookDataBrowser, SLOT( "first()" ) ); + connect( BookDataBrowser, SIGNAL( "firstRecordAvailable( boolean )" ), PushButtonFirst, SLOT( "setEnabled(boolean)" ) ); + connect( PushButtonPrev, SIGNAL( "clicked()" ), BookDataBrowser, SLOT( "prev()" ) ); + connect( BookDataBrowser, SIGNAL( "prevRecordAvailable( boolean )" ), PushButtonPrev, SLOT( "setEnabled(boolean)" ) ); + connect( PushButtonNext, SIGNAL( "clicked()" ), BookDataBrowser, SLOT( "next()" ) ); + connect( BookDataBrowser, SIGNAL( "nextRecordAvailable( boolean )" ), PushButtonNext, SLOT( "setEnabled(boolean)" ) ); + connect( PushButtonLast, SIGNAL( "clicked()" ), BookDataBrowser, SLOT( "last()" ) ); + connect( BookDataBrowser, SIGNAL( "lastRecordAvailable( boolean )" ), PushButtonLast, SLOT( "setEnabled(boolean)" ) ); + connect( PushButtonInsert, SIGNAL( "clicked()" ), BookDataBrowser, SLOT( "insert()" ) ); + connect( PushButtonUpdate, SIGNAL( "clicked()" ), BookDataBrowser, SLOT( "update()" ) ); + connect( PushButtonDelete, SIGNAL( "clicked()" ), BookDataBrowser, SLOT( "del()" ) ); + connect( PushButtonClose, SIGNAL( "clicked()" ), this, SLOT( "accept()" ) ); + connect( BookDataBrowser, SIGNAL( "primeUpdate(QSqlRecord)" ), this, SLOT( "primeUpdateBook(QSqlRecord)" ) ); + connect( BookDataBrowser, SIGNAL( "beforeUpdate(QSqlRecord)" ), this, SLOT( "beforeUpdateBook(QSqlRecord)" ) ); + connect( BookDataBrowser, SIGNAL( "beforeInsert(QSqlRecord)" ), this, SLOT( "beforeUpdateBook(QSqlRecord)" ) ); + connect( BookDataBrowser, SIGNAL( "primeInsert(QSqlRecord)" ), this, SLOT( "primeInsertBook(QSqlRecord)" ) ); + connect( BookDataBrowser, SIGNAL( "primeInsert(QSqlRecord)" ), this, SLOT( "primeInsertBook(QSqlRecord)" ) ); + + // tab order + setTabOrder( QLineEditTitle, QLineEditPrice ); + setTabOrder( QLineEditPrice, ComboBoxAuthor ); + setTabOrder( ComboBoxAuthor, PushButtonFirst ); + setTabOrder( PushButtonFirst, PushButtonPrev ); + setTabOrder( PushButtonPrev, PushButtonNext ); + setTabOrder( PushButtonNext, PushButtonLast ); + setTabOrder( PushButtonLast, PushButtonInsert ); + setTabOrder( PushButtonInsert, PushButtonUpdate ); + setTabOrder( PushButtonUpdate, PushButtonDelete ); + setTabOrder( PushButtonDelete, PushButtonClose ); + init(); +} + +/* + * Widget polish. Reimplemented to handle + * default data browser initialization + */ +public void polish() +{ + if ( BookDataBrowser != null ) { + if ( BookDataBrowser.sqlCursor() == null ) { + QSqlCursor cursor = new QSqlCursor( "book" ); + BookDataBrowser.setSqlCursor( cursor, true ); + BookDataBrowser.refresh(); + BookDataBrowser.first(); + } + } + super.polish(); +} + +void beforeUpdateBook(QSqlRecord buffer) +{ + int[] id = { 0 }; + mapAuthor( ComboBoxAuthor.currentText(), id, false ); + buffer.setValue( "authorid", new QVariant(id[0]) ); +} + +void mapAuthor(String name, int[] id, boolean populate) +{ +// if ( populate ) +// authorMap[ name ] = id; +// else +// id[0] = authorMap[ name ]; +} + +void primeInsertBook(QSqlRecord buffer) +{ + QSqlQuery q = new QSqlQuery(); + q.exec( "UPDATE sequence SET sequence = sequence + 1 WHERE tablename='book';" ); + q.exec( "SELECT sequence FROM sequence WHERE tablename='book';" ); + if ( q.next() ) { + buffer.setValue( "id", q.value( 0 ) ); + } +} + +void primeUpdateBook(QSqlRecord buffer) +{ + // Who is this book's author? + QSqlQuery query = new QSqlQuery( "SELECT surname FROM author WHERE id=" + + buffer.value( "authorid" ).toString() + ";" ); + String author = ""; + if ( query.next() ) + author = query.value( 0 ).toString(); + // Set the ComboBox to the right author + for ( int i = 0; i < ComboBoxAuthor.count(); i++ ) { + if ( ComboBoxAuthor.text( i ) == author ) { + ComboBoxAuthor.setCurrentItem( i ) ; + break; + } + } +} + +void init() +{ + authorMap = new HashMap(); + QSqlQuery query = new QSqlQuery( "SELECT surname, id FROM author ORDER BY surname;" ); + while ( query.next() ) { + ComboBoxAuthor.insertItem( query.value( 0 ).toString() ); + int[] id = new int[1]; + id[0] = query.value( 1 ).toInt(); + mapAuthor( query.value( 0 ).toString(), id, true ); + } +} + +public void destroy() +{ +} + +} diff --git a/qtjava/javalib/examples/demo/sql/Main.java b/qtjava/javalib/examples/demo/sql/Main.java new file mode 100644 index 00000000..1bf81c88 --- /dev/null +++ b/qtjava/javalib/examples/demo/sql/Main.java @@ -0,0 +1,20 @@ +import org.kde.qt.*; + +public class Main { + + public static void main(String[] args) + { + QApplication a = new QApplication(args); + BookForm form = new BookForm(); + + a.setMainWidget( form ); + form.show(); + a.exec(); + + return; + } + + static { + qtjava.initialize(); + } +} diff --git a/qtjava/javalib/examples/demo/widgets/Main.java b/qtjava/javalib/examples/demo/widgets/Main.java new file mode 100644 index 00000000..f78ca26d --- /dev/null +++ b/qtjava/javalib/examples/demo/widgets/Main.java @@ -0,0 +1,20 @@ +import org.kde.qt.*; + +public class Main { + + public static void main(String[] args) + { + QApplication a = new QApplication(args); + WidgetsBase widgets = new WidgetsBase(); + + a.setMainWidget( widgets ); + widgets.show(); + a.exec(); + + return; + } + + static { + qtjava.initialize(); + } +} diff --git a/qtjava/javalib/examples/demo/widgets/WidgetsBase.java b/qtjava/javalib/examples/demo/widgets/WidgetsBase.java new file mode 100644 index 00000000..74382cee --- /dev/null +++ b/qtjava/javalib/examples/demo/widgets/WidgetsBase.java @@ -0,0 +1,6116 @@ +/**************************************************************************** +** Form implementation generated from reading ui file 'widgetsbase.ui' +** +** Created: Tue Aug 7 11:42:58 2001 +** by: The User Interface Compiler (uic) +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ +import org.kde.qt.*; +import java.util.Date; +import java.util.Calendar; +import java.text.DateFormat; +import java.text.SimpleDateFormat; + +public class WidgetsBase extends QWidget { + QListBox ListBox3; + QTextEdit TextEdit1; + QTabWidget TabWidget2; + QWidget tab; + QIconView IconView1; + QWidget tab_2; + QTable Table1; + QWidget tab_3; + QListView ListView3; + QGroupBox groupBox; + QLCDNumber lcdDisplay; + QSlider slider; + QLabel TextLabel1_2; + QPushButton pushButton; + QComboBox buttonColorBox; + QLineEdit lineEdit; + QLabel TextLabel1_2_2; + QSpinBox spinBox; + QProgressBar progressBar; + QLabel colorTest; + QLabel PixmapLabel1; + QButtonGroup ButtonGroup1; + QCheckBox CheckBox1; + QCheckBox CheckBox2; + QCheckBox CheckBox3; + QButtonGroup ButtonGroup2; + QRadioButton RadioButton3; + QRadioButton RadioButton4; + QRadioButton RadioButton2; + QGroupBox GroupBox1; + AnalogClock clock; + QDateEdit dateEdit; + QTimeEdit timeEdit; + QLabel dateTimeLabel; + + QGridLayout WidgetsBaseLayout; + QGridLayout tabLayout; + QGridLayout tabLayout_2; + QGridLayout tabLayout_3; + QGridLayout groupBoxLayout; + QHBoxLayout Layout9; + QGridLayout ButtonGroup1Layout; + QGridLayout ButtonGroup2Layout; + QGridLayout GroupBox1Layout; + QHBoxLayout Layout5; + QSizePolicy sizePolicy1; + QSizePolicy sizePolicy2; + QSizePolicy sizePolicy3; + + QIconViewItem item1; + QIconViewItem item2; + QIconViewItem item3; + QIconViewItem item4; + QIconViewItem item5; + QIconViewItem item6; + QIconViewItem item7; + QIconViewItem item8; + QIconViewItem item9; + QIconViewItem item10; + QIconViewItem item11; + QIconViewItem item12; + QIconViewItem item13; + QIconViewItem item14; + QIconViewItem item15; + QIconViewItem item16; + QIconViewItem item17; + + QListViewItem item_1; + QListViewItem item_2; + QListViewItem item_3; + QListViewItem item_4; + QListViewItem item_5; + QListViewItem item_6; + +static String[] image0_data = { +"16 16 92 2", +"Qt c None", +".N c #100c10", +".P c #101010", +".r c #101410", +"#a c #181818", +"#e c #181c18", +".A c #202020", +".X c #202420", +".V c #292c29", +".9 c #312c29", +".o c #312c31", +".m c #313031", +".3 c #393439", +"## c #393831", +".z c #393839", +".E c #414041", +".p c #4a444a", +".n c #4a484a", +".F c #525052", +"#i c #5a5952", +".# c #5a595a", +".G c #5a5d5a", +"#. c #626162", +".Y c #62655a", +".q c #6a696a", +".j c #6a6d6a", +".h c #736d73", +".k c #737173", +".O c #838183", +".y c #8b858b", +".w c #8b8983", +".i c #8b898b", +"#h c #949194", +".d c #9c999c", +".x c #a49da4", +".8 c #a4a1a4", +"#g c #b4b2b4", +".2 c #b4b6b4", +"#r c #bda17b", +"#d c #bda583", +".1 c #bdaa94", +".L c #bdae9c", +".c c #bdb6b4", +"#z c #c5a17b", +"#l c #c5a583", +"#y c #c5aa83", +"#x c #c5aa8b", +".7 c #c5aa94", +".U c #c5b29c", +"#w c #c5b69c", +"#b c #c5baac", +".v c #c5bab4", +"#u c #c5beac", +"#p c #cdbaa4", +"#v c #cdbaac", +"#s c #cdc2bd", +"#t c #cdc6bd", +".Q c #cdc6c5", +".M c #cdcacd", +".l c #cdcecd", +".s c #d5ced5", +".W c #d5d6d5", +"#o c #decab4", +"#m c #ded2cd", +".b c #dedede", +"#n c #e6dacd", +".e c #e6dee6", +".u c #e6e2de", +".a c #e6e2e6", +"#q c #eeceac", +"#k c #eed2b4", +"#c c #eedabd", +".6 c #eedec5", +".4 c #eedecd", +".T c #eee2d5", +".D c #eee2de", +"#j c #f6dac5", +".0 c #f6e2cd", +".5 c #f6e2d5", +".Z c #f6e6d5", +"#f c #f6eade", +".K c #f6eae6", +".J c #f6eee6", +".g c #f6eef6", +".R c #f6f2e6", +".S c #ffeee6", +".C c #fff2f6", +".I c #fff6f6", +".t c #fff6ff", +".H c #fffaf6", +".B c #fffaff", +".f c #ffffff", +"QtQtQtQt.#.#.#.#.#.#.#.#.#QtQtQt", +"QtQtQtQt.#.a.b.a.b.a.c.#.d.#QtQt", +"QtQtQtQt.#.e.f.f.f.f.g.h.f.d.#Qt", +"QtQtQtQt.#.a.f.i.j.f.f.k.l.f.d.m", +"QtQtQtQt.#.e.f.n.o.f.f.i.k.j.p.m", +".d.dQt.d.q.f.a.m.r.s.f.t.u.v.w.m", +"Qt.d.x.d.j.f.y.z.A.j.f.B.C.D.v.m", +"QtQt.d.d.q.f.E.F.G.m.H.I.J.K.L.m", +"QtQtQt.d.h.M.N.O.x.P.Q.R.S.T.U.m", +"QtQtQt.d.d.F.V.W.I.X.Y.J.Z.0.1.m", +"QtQtQt.d.2.n.p.n.3.E.o.4.5.6.7.m", +"QtQtQt.d.8.A.9#..F###a#b.6#c#d.m", +"QtQtQt.d.h#e.c#f#g#h.r#i#j#k#l.m", +"QtQtQtQt.q#m#n#f.Z.0#o#p#k#q#r.m", +"QtQtQtQt.##s#t#u#v#w.U#x#y#r#z.m", +"QtQtQtQt.#.m.m.m.m.m.m.m.m.m.m.m"}; + +static String[] image1_data = { +"16 16 53 1", +". c None", +"l c #313031", +"n c #4a444a", +"# c #5a595a", +"i c #6a6d6a", +"h c #736d73", +"j c #737173", +"r c #8b8983", +"m c #8b898b", +"d c #9c999c", +"Q c #bda17b", +"K c #bda583", +"F c #bdaa94", +"z c #bdae9c", +"c c #bdb6b4", +"Y c #c5a17b", +"M c #c5a583", +"X c #c5aa83", +"W c #c5aa8b", +"H c #c5aa94", +"D c #c5b29c", +"V c #c5b69c", +"q c #c5bab4", +"T c #c5beac", +"U c #cdbaac", +"R c #cdc2bd", +"S c #cdc6bd", +"k c #cdcecd", +"b c #dedede", +"e c #e6dee6", +"p c #e6e2de", +"a c #e6e2e6", +"P c #eeceac", +"O c #eed2b4", +"J c #eedabd", +"G c #eedec5", +"C c #eee2d5", +"u c #eee2de", +"E c #f6e2cd", +"I c #f6e6d5", +"N c #f6eade", +"y c #f6eae6", +"x c #f6eee6", +"g c #f6eef6", +"A c #f6f2e6", +"B c #ffeee6", +"t c #fff2f6", +"L c #fff6ee", +"w c #fff6f6", +"o c #fff6ff", +"v c #fffaf6", +"s c #fffaff", +"f c #ffffff", +"....#########...", +"....#ababac#d#..", +"....#effffghfd#.", +"....#affiffjkfdl", +"....#efjjffmjinl", +"....#affhffopqrl", +"....#efjjjfstuql", +"....#affffvwxyzl", +"....#efffvwABCDl", +"....#affhwxxhEFl", +"....#efjwjBjjGHl", +"....#awjxjIEiJKl", +"....#eLxjIEjjjMl", +"....#axNIEJJOPQl", +"....#RSTUVDWXQYl", +"....#lllllllllll"}; + +static String[] image2_data = { +"16 16 116 2", +"Qt c None", +".3 c #000000", +"#q c #000008", +"## c #000408", +"#p c #080408", +".V c #080808", +"#v c #080c08", +"#w c #100c08", +"#o c #100c10", +".J c #101010", +".U c #101410", +"#l c #181410", +"#n c #201c20", +"#e c #202420", +"#. c #292429", +"#m c #292829", +".2 c #292c29", +".y c #312c31", +".s c #313031", +"#g c #313431", +".9 c #393439", +".I c #393831", +".T c #393839", +"#C c #413c41", +"#f c #414041", +".7 c #4a4441", +".D c #4a444a", +".K c #4a4841", +".x c #4a484a", +".E c #4a4c4a", +"#a c #52504a", +".S c #525052", +".Z c #525552", +".H c #52555a", +".z c #5a5552", +".a c #5a595a", +".1 c #5a5d5a", +"#D c #625d5a", +".8 c #625d62", +".u c #626162", +".O c #62616a", +"#h c #6a6562", +".w c #6a696a", +".C c #6a6d6a", +"#x c #736d62", +".k c #736d73", +".q c #737173", +"#E c #7b756a", +".l c #7b757b", +".0 c #7b7973", +".v c #7b797b", +".R c #838583", +".P c #8b8583", +".N c #8b8983", +".B c #8b898b", +".F c #948d94", +".Q c #94959c", +"#r c #9c8d83", +".e c #9c999c", +".G c #9c9d9c", +"#F c #a4998b", +"#M c #a49d94", +".n c #a4a5a4", +"#y c #ac9d8b", +"#L c #aca59c", +".W c #aca5a4", +".o c #acaaac", +"#N c #b4a594", +"#Q c #bda17b", +"#B c #bda583", +"#k c #bdaa94", +".6 c #bdae9c", +"#K c #bdb2ac", +"#i c #bdb6ac", +".d c #bdb6b4", +".m c #bdbabd", +"#X c #c5a17b", +"#J c #c5a583", +"#W c #c5aa83", +"#V c #c5aa8b", +"#u c #c5aa94", +"#d c #c5b29c", +"#U c #c5b69c", +"#G c #c5baa4", +".M c #c5bab4", +"#T c #c5beac", +"#O c #cdbaa4", +"#s c #cdbaac", +"#b c #cdbeb4", +"#R c #cdc2bd", +"#S c #cdc6bd", +".4 c #cdcac5", +".r c #cdcecd", +"#z c #d5c6ac", +".p c #dedade", +".c c #dedede", +".h c #e6dee6", +".b c #e6e2e6", +"#P c #eeceac", +"#I c #eed2b4", +"#A c #eedabd", +"#t c #eedec5", +"#c c #eee2d5", +".Y c #eee2de", +".X c #eee6e6", +".L c #eeeaee", +".g c #f60000", +"#H c #f6dac5", +"#j c #f6e2cd", +".5 c #f6eae6", +".j c #f6eef6", +".A c #f6f2f6", +".t c #ff0000", +".f c #ffb208", +".# c #fff208", +".i c #ffffff", +"QtQt.#Qt.a.a.a.a.a.a.a.a.aQtQtQt", +"QtQtQtQt.a.b.c.b.c.b.d.a.e.aQtQt", +".fQt.#Qt.g.h.i.i.i.i.j.k.i.e.aQt", +"QtQtQt.f.l.m.n.o.p.i.i.q.r.i.e.s", +".tQt.f.u.l.v.w.x.y.z.A.B.q.C.D.s", +"QtQt.E.F.G.F.C.H.I.J.K.L.A.M.N.s", +".#Qt.O.P.Q.R.k.S.T.U.V.W.X.Y.M.s", +"QtQt.Z.q.0.q.1.x.2.U.3.u.4.5.6.s", +"QtQt.7.a.8.a.E.9#..V###a#b#c#d.s", +"QtQt#e#f#f#f#g#..J##.3#h#i#j#k.s", +"QtQt#l#e#m#e#n#o#p#q.J#r#s#t#u.s", +"QtQtQt.V#v#w####.3#v#x#y#z#A#B.s", +"QtQtQtQt#C.V.V.3#D#E#F#G#H#I#J.s", +"QtQtQtQt.a#K#L#M#F#N#O#A#I#P#Q.s", +"QtQtQtQt.a#R#S#T#s#U#d#V#W#Q#X.s", +"QtQtQtQt.a.s.s.s.s.s.s.s.s.s.s.s"}; + +static String[] image3_data = { +"16 16 87 2", +"Qt c None", +".q c #313031", +".w c #4a444a", +".# c #5a595a", +".v c #6a6d6a", +".h c #736d73", +".o c #737173", +".E c #8b8983", +".u c #8b898b", +".i c #9c0000", +".d c #9c999c", +".G c #b40000", +".F c #bd0000", +".r c #bd2831", +".s c #bd595a", +"#m c #bda17b", +"## c #bda583", +".2 c #bdaa94", +".R c #bdae9c", +".Z c #bdb6ac", +".c c #bdb6b4", +".k c #c50000", +".l c #c50008", +"#a c #c52c31", +".Y c #c53031", +".M c #c55d5a", +"#u c #c5a17b", +"#h c #c5a583", +"#t c #c5aa83", +"#s c #c5aa8b", +".7 c #c5aa94", +".X c #c5b29c", +"#r c #c5b69c", +".D c #c5bab4", +"#i c #cd3431", +".A c #cd3439", +"#o c #cd6162", +".I c #cd656a", +"#p c #cd918b", +".S c #cd959c", +"#q c #cdbaac", +"#n c #cdc2bd", +".O c #cdc6c5", +".x c #cdcacd", +".p c #cdcecd", +".j c #d54041", +".U c #d5cecd", +".m c #de797b", +"#j c #deaaa4", +".z c #dedade", +".b c #dedede", +".3 c #e6aaac", +".t c #e6b2b4", +".J c #e6b6b4", +".4 c #e6d2cd", +".9 c #e6ded5", +".e c #e6dee6", +".C c #e6e2de", +".a c #e6e2e6", +".N c #eebabd", +"#l c #eeceac", +"#g c #eed2b4", +"#. c #eedabd", +"#e c #eedac5", +".6 c #eedec5", +".W c #eee2d5", +".L c #eee2de", +".8 c #eee6e6", +"#b c #eeeae6", +".y c #eeeaee", +".B c #eeeeee", +"#f c #f6dac5", +".1 c #f6e2cd", +".5 c #f6e2d5", +".0 c #f6e6d5", +"#k c #f6e6de", +".Q c #f6eae6", +".P c #f6eee6", +".g c #f6eef6", +".T c #f6f6f6", +"#d c #ffeae6", +".V c #ffeee6", +".K c #fff2f6", +"#c c #fff6ee", +".n c #fff6ff", +".H c #fffaff", +".f c #ffffff", +"QtQtQtQt.#.#.#.#.#.#.#.#.#QtQtQt", +"QtQtQtQt.#.a.b.a.b.a.c.#.d.#QtQt", +"QtQtQtQt.#.e.f.f.f.f.g.h.f.d.#Qt", +"QtQtQtQt.i.j.k.l.m.n.f.o.p.f.d.q", +"QtQtQt.i.k.r.s.s.k.r.t.u.o.v.w.q", +"QtQtQt.k.i.x.y.g.z.A.r.B.C.D.E.q", +"QtQt.F.G.#.H.j.I.J.t.k.x.K.L.D.q", +"QtQt.kQt.#.j.M.z.y.N.k.O.P.Q.R.q", +"QtQt.kQt.#.j.S.T.f.m.F.U.V.W.X.q", +"QtQt.kQt.#.N.Y.t.m.k.Z.W.0.1.2.q", +"QtQt.F.i.#.f.3.M.M.Z.4.0.5.6.7.q", +"QtQtQt.k.#.f.K.8.9.W.0.1.6#.##.q", +"QtQtQt.G#a#b#c.P#d.0.1#e#f#g#h.q", +"QtQtQtQt.i#i#j#k.0.1#.#.#g#l#m.q", +"QtQtQtQt.##n#o#p#q#r.X#s#t#m#u.q", +"QtQtQtQt.#.q.q.q.q.q.q.q.q.q.q.q"}; + +static String[] image4_data = { +"16 16 63 1", +". c None", +"l c #313031", +"o c #4a444a", +"p c #523829", +"K c #5a3c31", +"# c #5a595a", +"n c #6a6d6a", +"h c #736d73", +"j c #737173", +"v c #8b8983", +"m c #8b898b", +"W c #94897b", +"V c #948983", +"N c #948d83", +"O c #948d8b", +"M c #9c9183", +"q c #9c918b", +"d c #9c999c", +"i c #9c9d9c", +"w c #a49da4", +"0 c #bda17b", +"U c #bda583", +"J c #bdaa94", +"E c #bdae9c", +"c c #bdb6b4", +"8 c #c5a17b", +"Y c #c5a583", +"7 c #c5aa83", +"6 c #c5aa8b", +"Q c #c5aa94", +"G c #c5b29c", +"5 c #c5b69c", +"u c #c5bab4", +"3 c #c5beac", +"4 c #cdbaac", +"1 c #cdc2bd", +"2 c #cdc6bd", +"k c #cdcecd", +"r c #d5cec5", +"L c #decec5", +"b c #dedede", +"e c #e6dee6", +"t c #e6e2de", +"a c #e6e2e6", +"Z c #eeceac", +"X c #eed2b4", +"T c #eedabd", +"P c #eedec5", +"F c #eee2d5", +"z c #eee2de", +"I c #f6e2cd", +"H c #f6e6d5", +"S c #f6eade", +"D c #f6eae6", +"C c #f6eee6", +"g c #f6eef6", +"y c #fff2f6", +"R c #fff6ee", +"B c #fff6f6", +"s c #fff6ff", +"A c #fffaf6", +"x c #fffaff", +"f c #ffffff", +"....#########...", +"....#ababac#d#..", +"....#effffghfd#.", +"....#affdifjkfdl", +"....#efffffmjnol", +"..pqrqpffffstuvl", +"....#effwdwxyzul", +"....#affffABCDEl", +"....#effwdwdwFGl", +"....#affABCCHIJl", +"..KqLMKAqNqOqPQl", +"....#aBRCSHIPTUl", +"....#eRCVWVWVXYl", +"....#aCSHITTXZ0l", +"....#12345G6708l", +"....#lllllllllll"}; + +static String[] image5_data = { +"16 16 130 2", +"Qt c None", +".p c #313031", +".y c #4a444a", +".# c #5a595a", +"#w c #622020", +".x c #6a6d6a", +"#r c #735552", +"#X c #736562", +".j c #736d73", +".n c #737173", +"#H c #7b7173", +"#P c #837573", +"#R c #8b6d62", +"#S c #8b8173", +".I c #8b8983", +".w c #8b898b", +"#e c #945552", +"#m c #94756a", +"#y c #948173", +"#J c #94897b", +"#D c #948d94", +"#O c #949194", +".t c #9c5d62", +"#Z c #9c8173", +"#0 c #9c857b", +"#1 c #9c9183", +"#. c #9c959c", +".d c #9c999c", +"#q c #a44041", +"#T c #a49583", +".E c #a49594", +"#N c #a4a1a4", +"#C c #a4a5a4", +"#d c #ac504a", +"#Q c #ac898b", +"#Y c #ac8d83", +".Y c #acaaac", +".B c #b45052", +".9 c #b46562", +"#i c #b4716a", +".P c #b49594", +"#2 c #b4a194", +".u c #b4a1a4", +"#G c #b4aeb4", +"#j c #bd2829", +".4 c #bd595a", +".U c #bd6162", +"#h c #bd9d9c", +"#4 c #bda17b", +"#M c #bda583", +"#p c #bdaa94", +".1 c #bdae9c", +"#n c #bdb2a4", +"## c #bdb6ac", +".c c #bdb6b4", +"#F c #bdbabd", +"#s c #bdbebd", +".5 c #c5555a", +".6 c #c55d62", +".M c #c5696a", +"a# c #c5a17b", +"#W c #c5a583", +"a. c #c5aa83", +"#9 c #c5aa8b", +"#B c #c5aa94", +"#b c #c5b29c", +"#8 c #c5b69c", +".H c #c5bab4", +"#6 c #c5beac", +"#E c #c5c2c5", +".D c #c5c6c5", +".s c #cd595a", +".3 c #cd6562", +".X c #cdb2b4", +"#7 c #cdbaac", +".V c #cdbabd", +".Z c #cdc2bd", +"#g c #cdc2c5", +"#5 c #cdc6bd", +".J c #cdcacd", +".o c #cdcecd", +"#x c #d53c31", +"#k c #d55d5a", +"#v c #d56973", +"#l c #d5aeac", +"#K c #d5c2ac", +"#z c #d5c2b4", +".r c #d5c2c5", +"#f c #d5cacd", +".S c #d5ced5", +"#u c #d5d2d5", +".z c #d5d6d5", +"#I c #de5539", +".l c #de7973", +".k c #de8583", +".W c #de8d94", +"#U c #dec6b4", +".v c #decacd", +".F c #dececd", +".C c #ded6d5", +"#t c #ded6de", +".m c #dedade", +".b c #dedede", +".e c #e6dee6", +".G c #e6e2de", +".a c #e6e2e6", +".O c #e6e6e6", +"#c c #ee715a", +".7 c #ee8583", +".A c #eec2c5", +"#3 c #eeceac", +"#V c #eed2b4", +"#L c #eedabd", +".T c #eedade", +"#A c #eedec5", +"#a c #eee2d5", +".R c #eee2de", +".Q c #eee2e6", +".N c #eee6ee", +".K c #eeeeee", +".8 c #f68583", +".2 c #f6998b", +"#o c #f6e2cd", +".0 c #f6eae6", +".i c #f6eef6", +".q c #f6f6f6", +".L c #ffeaee", +".h c #fff2f6", +".g c #fffaff", +".f c #ffffff", +"QtQtQtQt.#.#.#.#.#.#.#.#.#QtQtQt", +"QtQtQtQt.#.a.b.a.b.a.c.#.d.#QtQt", +"QtQtQtQt.#.e.f.g.h.f.i.j.f.d.#Qt", +"QtQtQtQt.#.a.f.k.l.m.f.n.o.f.d.p", +"QtQtQtQt.#.q.r.s.t.u.v.w.n.x.y.p", +"QtQtQt.z.z.a.A.B.C.D.E.F.G.H.I.p", +"QtQtQt.J.K.L.M.t.N.O.J.P.Q.R.H.p", +"QtQt.S.N.T.U.V.W.X.e.Y.P.Z.0.1.p", +"Qt.2.3.4.5.6.7.8.9.J#..P###a#b.p", +"#c#d#d#e#f#g#h#i#j#k#l#m#n#o#p.p", +"Qt#q#r#s#t#u.S.o#v#w#x#y#z#A#B.p", +"QtQt#C#D#E#F#G#E#H#x#I#J#K#L#M.p", +"QtQtQt.d#N#O.Y#P#Q#R#S#T#U#V#W.p", +"QtQtQtQt#X#Y#Z#0#1#2#b#K#V#3#4.p", +"QtQtQtQt.#.Z#5#6#7#8#b#9a.#4a#.p", +"QtQtQtQt.#.p.p.p.p.p.p.p.p.p.p.p"}; + +static String[] image6_data = { +"16 16 135 2", +"Qt c None", +"#W c #001429", +"#M c #00305a", +"#L c #003862", +"#V c #080c18", +"#X c #081429", +"#N c #082852", +"#p c #083052", +"#C c #08305a", +"#K c #083462", +"#g c #083c6a", +".X c #084c7b", +".V c #085d94", +"#f c #086194", +"#J c #101c29", +".8 c #10487b", +".L c #104c7b", +"#x c #104c83", +"#o c #10558b", +".K c #105d8b", +".J c #105d94", +".W c #106194", +"#v c #182831", +"#w c #184c7b", +".U c #18699c", +".5 c #186d9c", +".T c #2079a4", +"#U c #292429", +"#O c #293039", +".z c #296594", +"#n c #296d94", +".s c #313031", +"#m c #31556a", +".y c #3179a4", +".x c #317dac", +"#D c #394c5a", +"#c c #394c62", +".e c #395573", +".2 c #396583", +"#e c #3981ac", +".Q c #41658b", +".o c #416d94", +".D c #4a444a", +"#Y c #4a4c4a", +"#B c #52799c", +".4 c #528db4", +".# c #5a595a", +".9 c #5a7183", +".E c #5a7994", +".H c #5a99bd", +"#h c #626d7b", +".C c #6a6d6a", +"#d c #6a91ac", +".G c #6aa1c5", +".j c #736d73", +".q c #737173", +".Y c #7389a4", +".k c #738da4", +".f c #7b91ac", +"#q c #83898b", +".I c #83aec5", +".P c #8b8983", +".B c #8b898b", +".g c #8ba1bd", +".3 c #8baec5", +".7 c #8bb2cd", +".S c #8bb6cd", +".v c #94b6d5", +".d c #9c999c", +".R c #9cb2c5", +".n c #9cb6c5", +".6 c #9cbed5", +"#P c #a49d9c", +".t c #a4b2c5", +"#E c #aca19c", +"#4 c #aca1a4", +"#5 c #acaaa4", +"#6 c #b4aea4", +".A c #b4becd", +"#A c #b4c6de", +"#9 c #bda17b", +"#T c #bda583", +"#u c #bdaa94", +"#b c #bdae9c", +"#Q c #bdb6ac", +".c c #bdb6b4", +".p c #bdc6d5", +".w c #bdd2e6", +"ae c #c5a17b", +"#3 c #c5a583", +"ad c #c5aa83", +"ac c #c5aa8b", +"#I c #c5aa94", +"#l c #c5b29c", +"ab c #c5b69c", +".O c #c5bab4", +"a# c #c5beac", +".F c #c5d2de", +"#y c #c5d2e6", +"aa c #cdbaac", +"#7 c #cdbeb4", +"a. c #cdc2bd", +"#r c #cdc6bd", +"#i c #cdcac5", +".r c #cdcecd", +".l c #cdd2d5", +".m c #cdd6e6", +".u c #cddee6", +"#F c #decec5", +"#. c #ded2d5", +".b c #dedede", +"#z c #dee6ee", +".N c #e6e2de", +".a c #e6e2e6", +"#8 c #eeceac", +"#2 c #eed2b4", +"#S c #eedabd", +"#0 c #eedac5", +"#Z c #eedacd", +"#H c #eedec5", +"#R c #eedecd", +"#k c #eee2d5", +".1 c #eee2de", +".Z c #eeeeee", +"#1 c #f6dac5", +"#t c #f6e2cd", +"#G c #f6e2d5", +"#s c #f6e6d5", +"#a c #f6eae6", +"## c #f6eee6", +".i c #f6eef6", +"#j c #ffeee6", +".0 c #fff2f6", +".M c #fff6ff", +".h c #ffffff", +"QtQtQtQt.#.#.#.#.#.#.#.#.#QtQtQt", +"QtQtQtQt.#.a.b.a.b.a.c.#.d.#QtQt", +"QtQtQtQt.e.f.g.h.h.h.i.j.h.d.#Qt", +"QtQtQt.k.l.m.n.o.p.h.h.q.r.h.d.s", +"QtQt.t.u.v.w.x.y.z.A.h.B.q.C.D.s", +"Qt.E.F.G.H.h.I.J.K.L.b.M.N.O.P.s", +".Q.R.S.T.U.V.J.J.W.X.Y.Z.0.1.O.s", +".2.3.4.5.6.h.7.W.V.8.9#.###a#b.s", +"#c#d#e#f.W.h.7.J.J#g#h#i#j#k#l.s", +".2#m#n.J.K.h.3#o.X#p#q#r#s#t#u.s", +"Qt#v#w#x#y#z#A#B#C#D#E#F#G#H#I.s", +"QtQt#J#K#L#g#M#N#O#P#Q#R#H#S#T.s", +"QtQtQt#U#V#W#X#Y#P#Q#Z#0#1#2#3.s", +"QtQtQtQt.##4#5#6#7#0#S#S#2#8#9.s", +"QtQtQtQt.#a.#ra#aaab#lacad#9ae.s", +"QtQtQtQt.#.s.s.s.s.s.s.s.s.s.s.s"}; + +static String[] image7_data = { +"16 16 109 2", +"Qt c None", +"#e c #000000", +".V c #000400", +".6 c #080408", +"#d c #080808", +".D c #080c08", +".O c #100c10", +".5 c #101410", +"#c c #181818", +".U c #201c20", +".N c #202020", +".C c #202420", +"#k c #292429", +".4 c #292829", +".o c #313031", +"#b c #313431", +".B c #393839", +"#w c #393c39", +"#v c #413c41", +"#a c #414041", +"## c #414441", +".w c #4a444a", +".3 c #4a484a", +".M c #524c52", +".A c #525052", +".2 c #525552", +".# c #5a595a", +".1 c #625d62", +".T c #626162", +".z c #626562", +".J c #6a696a", +".v c #6a6d6a", +"#r c #736d62", +"#y c #736d6a", +".h c #736d73", +"#f c #73716a", +".n c #737173", +"#x c #7b716a", +"#l c #7b7173", +".W c #7b7573", +".q c #7b757b", +".r c #7b797b", +".y c #837d83", +".L c #838183", +".t c #8b858b", +".I c #8b8983", +".u c #8b898b", +"#z c #94857b", +".K c #949194", +".d c #9c999c", +".s c #a4a1a4", +"#q c #acaeac", +".E c #b4b2b4", +".S c #b4b6b4", +"#I c #bda17b", +"#u c #bda583", +"#j c #bdaa94", +".Z c #bdae9c", +".c c #bdb6b4", +".0 c #bdb6bd", +".x c #bdbabd", +"#Q c #c5a17b", +"#D c #c5a583", +"#P c #c5aa83", +"#O c #c5aa8b", +"#p c #c5aa94", +"#. c #c5b29c", +"#N c #c5b69c", +".H c #c5bab4", +"#L c #c5beac", +".p c #c5c2c5", +".m c #c5c6c5", +"#M c #cdbaac", +"#J c #cdc2bd", +"#K c #cdc6bd", +".l c #cdcacd", +".k c #cdcecd", +".j c #d5d2d5", +"#F c #decab4", +"#A c #deceb4", +"#E c #ded2c5", +".i c #dedade", +".b c #dedede", +"#s c #e6cebd", +"#m c #e6d2c5", +"#g c #e6dacd", +".7 c #e6ded5", +".e c #e6dee6", +".G c #e6e2de", +".a c #e6e2e6", +"#H c #eeceac", +"#C c #eed2b4", +"#G c #eed6bd", +"#t c #eedabd", +"#o c #eedec5", +".9 c #eee2d5", +".R c #eee2de", +".P c #eee6e6", +".F c #eeeeee", +"#B c #f6dac5", +"#i c #f6e2cd", +"#n c #f6e2d5", +"#h c #f6e6d5", +".Y c #f6eae6", +".X c #f6eee6", +".g c #f6eef6", +".8 c #ffeee6", +".Q c #fff2f6", +".f c #ffffff", +"QtQtQtQt.#.#.#.#.#.#.#.#.#QtQtQt", +"QtQtQtQt.#.a.b.a.b.a.c.#.d.#QtQt", +"QtQtQtQt.#.e.f.f.f.f.g.h.f.d.#Qt", +".i.j.k.l.m.a.b.a.b.e.k.n.k.f.d.o", +".p.n.q.q.r.r.r.r.r.s.t.u.n.v.w.o", +".x.v.s.y.z.A.B.C.D.E.r.F.G.H.I.o", +".x.J.a.K.L.M.B.N.O.E.y.P.Q.R.H.o", +".S.T.n.J.#.w.o.U.V.E.W.R.X.Y.Z.o", +".0.#.1.2.3.B.4.5.6.E.W.7.8.9#..o", +".E.A###a#b.4#c#d#e.0#f#g#h#i#j.o", +".E##.o.4#k#c.O#e#e.x#l#m#n#o#p.o", +"#q.E.E.E#q.E.E.0.x#q#r#s#o#t#u.o", +".M#v#v#w.#.W.W#f#x#y#z#A#B#C#D.o", +"QtQtQtQt.#.R#g#g#E#s#F#G#C#H#I.o", +"QtQtQtQt.##J#K#L#M#N#.#O#P#I#Q.o", +"QtQtQtQt.#.o.o.o.o.o.o.o.o.o.o.o"}; + +static String[] image8_data = { +"16 16 137 2", +"Qt c None", +"#Z c #103810", +"#Q c #103c10", +"#M c #104c08", +"#L c #183810", +"#X c #183c10", +"#z c #183c18", +"#Y c #184418", +"#m c #205d10", +"#A c #206508", +"#W c #293829", +"#P c #295d29", +".I c #298510", +".H c #298908", +".q c #313031", +"#R c #314020", +"#n c #318118", +".T c #318518", +".3 c #318d08", +".S c #318d10", +".v c #399510", +".G c #399910", +"#F c #414c31", +"#d c #419529", +".F c #419d18", +".B c #4a444a", +"#N c #4a7141", +"#b c #527141", +".0 c #527941", +"#B c #52894a", +"#c c #529539", +".4 c #529d39", +".u c #52a529", +".# c #5a595a", +"#0 c #5a614a", +".P c #5a715a", +".2 c #62aa41", +".e c #6a696a", +".A c #6a6d6a", +"#E c #6a816a", +".j c #736d73", +".p c #737173", +".K c #7b7d7b", +".C c #7b856a", +"#O c #7b8d7b", +".5 c #7bae7b", +"#t c #837d7b", +".E c #83c262", +"#h c #8b8583", +".O c #8b8983", +".z c #8b898b", +"#u c #8b8d7b", +".n c #949194", +".d c #9c999c", +".6 c #9cb694", +".1 c #9cc68b", +"#S c #a49d9c", +".k c #a4a5a4", +".U c #a4be9c", +".w c #a4c69c", +".R c #a4ce94", +"#1 c #aca19c", +"#6 c #aca1a4", +"#G c #aca59c", +"#7 c #acaaa4", +".W c #acaaac", +"#g c #acaeac", +".f c #acb2ac", +".Q c #acc6a4", +"#8 c #b4aea4", +".x c #b4aeb4", +"#D c #b4b2b4", +".8 c #b4b6b4", +".m c #b4c6a4", +".t c #b4d69c", +"a# c #bda17b", +"#V c #bda583", +"#y c #bdaa94", +"#a c #bdae9c", +"#T c #bdb6ac", +".c c #bdb6b4", +"#s c #bdb6bd", +"ag c #c5a17b", +"#5 c #c5a583", +"af c #c5aa83", +"ae c #c5aa8b", +"#K c #c5aa94", +"#l c #c5b29c", +"ad c #c5b69c", +".N c #c5bab4", +"ab c #c5beac", +"#r c #c5bebd", +".r c #c5c2c5", +".y c #c5c6c5", +".J c #c5cac5", +".l c #c5deb4", +"ac c #cdbaac", +"#9 c #cdbeb4", +"aa c #cdc2bd", +"#v c #cdc6bd", +"#C c #cdc6cd", +"#i c #cdcac5", +".g c #cdcacd", +".o c #cdcecd", +"#f c #cdd2cd", +"#q c #d5cecd", +".7 c #d5ced5", +"#p c #d5d2d5", +"#o c #d5d6cd", +"#H c #decec5", +".9 c #ded2d5", +".V c #ded6d5", +"#e c #dedade", +".b c #dedede", +".D c #deeed5", +".M c #e6e2de", +".a c #e6e2e6", +"a. c #eeceac", +"#4 c #eed2b4", +"#U c #eedabd", +"#2 c #eedac5", +"#J c #eedec5", +"#k c #eee2d5", +".Z c #eee2de", +".X c #eeeeee", +".s c #eef2e6", +"#3 c #f6dac5", +"#x c #f6e2cd", +"#I c #f6e2d5", +"#w c #f6e6d5", +"## c #f6eae6", +"#. c #f6eee6", +".i c #f6eef6", +"#j c #ffeee6", +".Y c #fff2f6", +".L c #fff6ff", +".h c #ffffff", +"QtQtQtQt.#.#.#.#.#.#.#.#.#QtQtQt", +"QtQtQtQt.#.a.b.a.b.a.c.#.d.#QtQt", +"QtQtQtQt.e.f.g.h.h.h.i.j.h.d.#Qt", +"QtQtQt.k.a.l.m.n.o.h.h.p.o.h.d.q", +"QtQt.r.s.t.u.v.w.x.y.h.z.p.A.B.q", +"Qt.C.D.E.F.G.H.I.J.K.a.L.M.N.O.q", +".P.Q.R.F.v.S.T.U.V.W.n.X.Y.Z.N.q", +".0.1.2.3.4.5.6.7.y.8.O.9#.###a.q", +"#b#c#d#c#e#f.7.y.r#g#h#i#j#k#l.q", +"#b#m#n#o#p#q.y#r#s#t#u#v#w#x#y.q", +"Qt#z#A#B.o#C.r#D#E#F#G#H#I#J#K.q", +"QtQt#L#M#N#O#P#Q#R#S#T#x#J#U#V.q", +"QtQtQt#W#X#Y#Z#0#1#T#x#2#3#4#5.q", +"QtQtQtQt.B#6#7#8#9#x#U#U#4a.a#.q", +"QtQtQtQt.#aa#vabacad#laeafa#ag.q", +"QtQtQtQt.#.q.q.q.q.q.q.q.q.q.q.q"}; + +static String[] image9_data = { +"16 16 140 2", +"Qt c None", +"#Q c #101410", +"#5 c #181408", +"ad c #202010", +"ac c #292008", +"#Y c #312810", +".y c #313031", +"#d c #393808", +"#1 c #393829", +"#X c #413829", +"#F c #414029", +".Z c #414041", +".7 c #414441", +".F c #4a444a", +"#v c #4a4831", +"ae c #524410", +"aa c #524818", +"#6 c #524c4a", +".6 c #525031", +"#e c #5a4c20", +"a# c #5a5020", +".5 c #5a5529", +"#s c #5a5539", +"#h c #5a5541", +"#j c #5a5941", +".# c #5a595a", +"af c #625518", +"ab c #625520", +".V c #62594a", +"a. c #6a5920", +".3 c #6a5d20", +".4 c #6a6131", +"#B c #6a614a", +"#R c #6a6962", +".E c #6a6d6a", +"#f c #736531", +"#Z c #736962", +".r c #736d73", +".w c #737173", +".2 c #7b6118", +"#9 c #7b6929", +"#g c #7b6d41", +"#8 c #7b6d5a", +"#G c #7b7173", +".c c #7b7962", +"#w c #7b7d7b", +"ag c #836920", +".a c #836d18", +".m c #837962", +".1 c #8b6d18", +"#4 c #8b7129", +"#J c #8b816a", +"#p c #8b8573", +"#c c #8b857b", +"#k c #8b858b", +".P c #8b8983", +".D c #8b898b", +"#3 c #947929", +"#T c #948973", +".8 c #948d94", +".e c #949194", +"ah c #9c8129", +".U c #9c8539", +"#A c #9c957b", +".i c #9c999c", +".b c #a48529", +"#2 c #a48939", +".0 c #a49983", +".L c #a49da4", +".T c #ac8d41", +"ai c #ac9131", +".S c #ac9141", +".v c #ac914a", +"#r c #ac9552", +".C c #aca5ac", +".u c #b49931", +"#q c #b49941", +".n c #b4aeb4", +"aj c #bd9d41", +".t c #bda139", +"#E c #bda14a", +".A c #bda55a", +"#z c #bdaa94", +"#S c #bdae94", +"#b c #bdae9c", +".Q c #bdb29c", +".h c #bdb6b4", +".d c #bdbebd", +".z c #c5aa41", +"#K c #c5aa4a", +"#i c #c5aa52", +"#I c #c5aa94", +".s c #c5ae41", +"#D c #c5ae52", +"#o c #c5b29c", +"#H c #c5b2a4", +"#P c #c5b66a", +"#x c #c5baac", +".O c #c5bab4", +"#L c #cdb65a", +"#l c #cdc2bd", +".H c #cdc673", +"#7 c #cdc6bd", +".9 c #cdcacd", +".x c #cdcecd", +".j c #d5ba4a", +".R c #d5ba52", +"#0 c #d5ba5a", +"#C c #d5ba62", +"#M c #d5be5a", +".k c #d5c252", +".o c #d5d2d5", +".l c #dec252", +"#u c #dec662", +"#t c #deca6a", +".J c #dece6a", +".g c #dedede", +"#N c #e6ce6a", +".B c #e6d26a", +".K c #e6d273", +".G c #e6d65a", +"#O c #e6d66a", +".N c #e6e2de", +".f c #e6e2e6", +"#U c #eee27b", +"#n c #eee2d5", +".Y c #eee2de", +".I c #f6e26a", +"#W c #f6e27b", +"#y c #f6e2cd", +"#V c #f6e67b", +"#a c #f6eae6", +"## c #f6eee6", +".q c #f6eef6", +"#m c #ffeee6", +".X c #fff2f6", +"#. c #fff6f6", +".M c #fff6ff", +".W c #fffaff", +".p c #ffffff", +"QtQtQtQt.#.#.#.#.#.#.#.#.#QtQtQt", +".a.b.c.d.e.f.g.f.g.f.h.#.i.#QtQt", +".j.k.l.m.n.o.p.p.p.p.q.r.p.i.#Qt", +".s.t.u.v.c.n.o.p.p.p.p.w.x.p.i.y", +".t.z.A.c.B.m.C.o.p.p.p.D.w.E.F.y", +".G.H.c.I.J.K.c.L.o.p.p.M.N.O.P.y", +".Q.c.R.t.S.T.U.V.i.o.p.W.X.Y.O.y", +".Z.0.1.2.3.4.5.6.7.8.9#.###a#b.y", +"Qt.Z#c#d#e#f#g#h#i#j#k#l#m#n#o.y", +"QtQt.Z#p#q#r#s#t#u#u#v#w#x#y#z.y", +"QtQtQt.7#A#B#C#D#i#E#i#F#G#H#I.y", +"QtQtQtQt.Z#J#K#L#M#N#O#P#Q#R#S.y", +"QtQtQtQt.#.Z#T#U#V#W#P#X#M#Y#Z.y", +"QtQtQtQt.#.f.Z#J#0#r#1#2#3#4#5#6", +"QtQtQtQt.##l#7.Z#8#X#9a.a#aaabac", +"QtQtQtQt.#.y.y.y.Zadaeafagahaiaj"}; + +static String[] image10_data = { +"32 32 197 2", +"Qt c None", +".b c #000000", +".A c #000400", +"#n c #004062", +"#q c #00446a", +"#p c #00507b", +"#g c #005083", +"#l c #005583", +".0 c #00659c", +".8 c #00699c", +".N c #080408", +"#a c #080808", +"aN c #08484a", +"ao c #085552", +".1 c #087dbd", +".F c #100c10", +".r c #101010", +".a c #101410", +"aG c #10484a", +"aF c #106d6a", +".L c #1079b4", +".K c #107db4", +"#m c #107dbd", +".U c #1081bd", +".T c #1085c5", +"#y c #109194", +".m c #181818", +"a8 c #184420", +"a2 c #184820", +"aa c #186d73", +"aD c #187d7b", +"#I c #189194", +"al c #189594", +"aE c #18959c", +".I c #201c20", +".c c #202020", +"a7 c #205d31", +"aT c #206531", +"a# c #20aeac", +".# c #292829", +"aY c #297939", +"aM c #297941", +"ai c #298d41", +"ay c #299141", +"#e c #29a1de", +"#A c #29aeb4", +"#J c #29b2b4", +".v c #313031", +"a5 c #317941", +"#7 c #31914a", +"#f c #3199d5", +"#c c #31a1de", +"#z c #31b6bd", +".d c #393839", +"#6 c #399552", +".Z c #39aede", +"aJ c #41994a", +"ak c #41aa52", +"#L c #41c6cd", +"a0 c #4ab25a", +"#d c #4ab6e6", +".g c #524c52", +".j c #525552", +"a1 c #52b25a", +"aS c #52b65a", +".7 c #5ab6e6", +"an c #5acac5", +"#W c #5acec5", +".Q c #62bade", +"aL c #6ac26a", +".6 c #6ac6ee", +"aH c #730c18", +"aP c #730c20", +"aZ c #73c273", +"aC c #73c673", +".4 c #7bcef6", +"am c #7bd2cd", +".S c #7bd2ff", +"aj c #83c67b", +"#K c #83dad5", +"av c #8b1020", +"#r c #8b816a", +"aO c #948973", +"bc c #948d73", +"b. c #949173", +"#5 c #94b68b", +"a9 c #9c8d7b", +"b# c #9c917b", +"a6 c #9c957b", +"aQ c #9c9983", +"#8 c #9cb68b", +"#T c #9cdede", +".5 c #9cdef6", +"ag c #a41429", +"a4 c #a4997b", +"aU c #a49983", +"#C c #a49d83", +"#V c #a4e2de", +".Y c #a4e2f6", +"#3 c #ac1429", +"aW c #ac857b", +"aV c #ac897b", +"ac c #ac9d83", +"aB c #acdea4", +"aR c #acdeac", +".W c #ace2f6", +".R c #aceaff", +"a3 c #b4a58b", +"#o c #b4aa8b", +"aX c #b4aa94", +"#h c #b4ae8b", +"#w c #b4ae94", +"ah c #b4e2b4", +"ap c #bdae94", +"ab c #bdb294", +"aI c #bdb29c", +"bb c #bdb694", +"#9 c #bde6e6", +"a. c #bde6ee", +"aK c #bdeecd", +"#F c #c56d6a", +".9 c #c5b29c", +"aq c #c5b694", +".H c #c5b69c", +"aw c #c5b6a4", +".u c #c5ba9c", +"#v c #c5baa4", +".2 c #c5be9c", +"#S c #cd1831", +"au c #cd2029", +"ba c #cdbe9c", +"#X c #cdbea4", +"#B c #cdc29c", +"#. c #cdc2a4", +"#Y c #cdc2ac", +"#i c #cdc6a4", +"#u c #cdc6ac", +"#4 c #cdc6b4", +"#H c #d51c39", +".y c #d5c6a4", +".V c #d5c6ac", +".p c #d5caac", +".M c #d5cab4", +".D c #d5ceac", +"ax c #d5ceb4", +".E c #deceac", +".t c #deceb4", +".o c #ded2b4", +"#k c #ded2bd", +".s c #ded6bd", +"#s c #ded6c5", +"#M c #dedac5", +"af c #e63c4a", +"#G c #e6484a", +"#N c #e6b6ac", +".C c #e6d6bd", +"#t c #e6d6c5", +".G c #e6dac5", +"#D c #e6dacd", +".P c #e6decd", +"## c #e6e2cd", +"#b c #e6e2d5", +"az c #e6f2ee", +"#U c #e6f2f6", +".X c #e6f2ff", +"#E c #eeb6ac", +"#j c #eedecd", +"#x c #eee2cd", +".n c #eee2d5", +".B c #eee6d5", +".J c #eee6de", +".x c #eeeade", +".l c #eeeee6", +"#2 c #f6757b", +".O c #f6e6de", +".3 c #f6eade", +".w c #f6eae6", +".f c #f6eee6", +".i c #f6eeee", +".h c #f6f2ee", +".k c #f6f6ee", +"at c #ff444a", +"#R c #ff5d5a", +"ar c #ff5d62", +"#Q c #ff8183", +"as c #ff898b", +"ad c #ff8d94", +"#P c #ff9d9c", +"#O c #ff9da4", +"ae c #ffa5ac", +"#Z c #ffbabd", +"#1 c #ffc6c5", +"#0 c #ffd6d5", +".z c #fff2ee", +".q c #fff6ee", +".e c #fff6f6", +"aA c #ffffff", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.#.a.bQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQt.c.d.e.f.f.bQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQt.g.e.h.f.i.f.f.bQtQtQtQtQtQtQtQtQtQtQt.b.b.b.bQtQtQtQtQt", +"QtQtQt.j.k.f.l.h.f.h.f.bQtQtQtQtQtQtQtQtQtQt.m.n.o.o.p.b.bQtQtQt", +"QtQt.#.e.f.f.h.h.q.h.e.h.bQtQtQtQtQtQtQtQt.r.n.s.s.t.t.p.u.bQtQt", +"QtQt.v.w.x.x.y.b.b.y.h.z.bQtQtQtQtQtQtQt.A.B.s.C.o.o.D.E.y.bQtQt", +"Qt.F.e.x.w.y.bQtQt.b.e.h.z.bQtQtQtQtQtQt.c.G.G.s.C.t.t.p.p.H.bQt", +"Qt.I.B.x.x.bQtQtQtQt.b.h.f.f.bQtQtQtQt.r.J.G.s.K.L.M.p.D.y.y.bQt", +".N.h.O.x.f.bQtQtQtQt.b.y.h.f.bQtQtQtQt.r.P.G.Q.R.S.T.U.V.p.y.bQt", +".b.J.n.x.x.bQtQtQtQtQt.A.l.f.x.bQtQt.c.J.G.K.W.X.Y.Z.0.1.2.y.bQt", +".b.n.J.B.3.bQtQtQtQtQt.A.i.x.3.B.b.A.3.P.P.K.4.5.6.7.U.8.9#.#..b", +".b.n##.B.B.bQtQtQtQtQt#a.x.3.B.B#b.n.P.P.G.8#c#d#e#f.0#g#h#.#i.b", +".b.P.n.n.J.y#aQtQtQt.F.h.3.B.J.n.n.P#j.G.G#k#l.8#m.8#l#n#o#..p.b", +".b.P.P.n##.B.i.N.A#a.h.J.n.B#b.n.P.P.G.G.s.s.p#g#p#q#n#r#h#..u.b", +".b.G#j.P.n.n.B.B.3.B.J.n.B.n.n.P#j.G.P#s#t.s#k#u#v#w#w#o#..y.u.b", +".b.G.G.P.P#x.P.n##.n##.n.P#x.P.P.G.G.s#t#k#k#y#z#A#.#B#.#i.y#C.b", +"Qt.b#D.G.P.P#j#E#F#G#H#D.P.P#j.G.G#s.G.s.s#I#J#K#L#I#..y.p.y.bQt", +"Qt.b.M.G#M.G#N#O#P#Q#R#S#k.G.G.G.s.C#k#k.o#z#T#U#V#W#y#X#i.u.bQt", +"Qt.b#Y.s.G.G#F#Z#0#1#2#3#4#k.G#5#6#7#8.t.o#I#T#9a.a#aaab.yac.bQt", +"QtQt.b.s.s#t#Gad#Zaeafag#v#kahaiajak#7#5.pala#amanalaoapaq.bQtQt", +"QtQt.b.p.s#k#HarasatauavawaxayazaAaBaC#7.VaDaE#IalaFaGapac.bQtQt", +"QtQtQt.bax.oag#S#G#SagaHaIaxaJaBaKaBaLaMab#.aDaaaoaNaOab.bQtQtQt", +"QtQtQt.b#Y.paxav#3avaPaQ#v.payaLaRaBaSaTab#.#.abacacacaU.bQtQtQt", +"QtQtQtQt.b#..p.VaVaWaXaI#..taYaZa0a1aJa2a3#.#i#..2#Xa4.bQtQtQtQt", +"QtQtQtQtQt.b#X.p.p.V.p.V.p.p.VaYaSaJa5a2a3#..p.y#Xa6.bQtQtQtQtQt", +"QtQtQtQtQtQt.bab.y.p.y.p.y.p#i#.aTa7a8a9#h#.#..yb..bQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.b.b#o.y#..y.y.p.y#.apapap#.#.ac.b.bQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQt.b.bb##oba#i.y#i#.bb#obc.b.bQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQt.b.b.b.b.b.b.b.b.b.bQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"}; + +static String[] image11_data = { +"32 32 62 1", +". c None", +"j c #000000", +"5 c #080c08", +"7 c #181418", +"c c #313031", +"S c #393439", +"N c #393c39", +"a c #414441", +"b c #4a444a", +"# c #4a484a", +"O c #525052", +"F c #625d62", +"L c #626562", +"T c #6a656a", +"k c #6a696a", +"0 c #737573", +"W c #7b797b", +"2 c #7b7d7b", +"Z c #838183", +"V c #8b898b", +"p c #8b8d8b", +"Y c #948d94", +"i c #949194", +"X c #949594", +"u c #9c959c", +"R c #9c999c", +"o c #9c9d9c", +"D c #a49da4", +"h c #a4a1a4", +"P c #a4a5a4", +"z c #aca5ac", +"I c #acaaac", +"6 c #acaeac", +"3 c #b4aeb4", +"M c #b4b2b4", +"g c #b4b6b4", +"n c #bdb6bd", +"t c #bdbabd", +"x c #bdbebd", +"q c #c5bec5", +"E c #c5c2c5", +"C c #c5c6c5", +"K c #cdc6cd", +"H c #cdcacd", +"m c #cdcecd", +"s c #d5ced5", +"f c #d5d2d5", +"Q c #d5d6d5", +"U c #ded6de", +"w c #dedade", +"B c #dedede", +"l c #e6dee6", +"G c #e6e2e6", +"v c #e6e6e6", +"A c #eee6ee", +"J c #eeeaee", +"e c #eeeeee", +"r c #f6eef6", +"y c #f6f2f6", +"4 c #f6f6f6", +"1 c #fff6ff", +"d c #ffffff", +"................................", +".........#a#a#ab................", +"........cddefghi#b#.............", +".......jjkkdelmnhop#a...........", +".......jqhhkkdrelsthuc..........", +".......jvwxhhkkdeywfgzc.........", +"........jjABChhkkdAwwtDc........", +"..a#......jjvlEhhFGvwHIc........", +".cdh#b......jjJwKLGBlfMN........", +".cdGqzcc......jjhOvlBwEhc.......", +".jdyvCKPcc.....bkEGlwQKRS.......", +".jkdeAlKEPcc...TxGBlwwtRc.......", +".jhkdyAJGEEhcccxlGGwUwgVWj......", +".jEhkdeyBlwftqtUwGwwlsXYZWjj....", +"..jChkddrerwBwlwBlwwAxIzhuY0#b..", +"..j1EhkWdddrerereJwsCngtgMIopWa#", +"...j1ChhkkWddddddvftEmwfsEtMIuV2", +"....j1BCEhhkkkkkkWQlfGvGQfCEg3Po", +".....jK4lBKqEt3PiXkWAJAeABUmKxnI", +"......5jE4wfQt6hVzDhLWJyyJGwfHEt", +"........jjjxJHqPhxsqhDkWddyJGUfK", +"...........jj7jjjtGUBKhhkWddeABQ", +".................jjC1BlChPkWddrG", +"...................jjCylBChhkWdd", +".....................jjC1BlChhkW", +".......................jjKylBKhh", +".........................jjC1BlC", +"...........................jjCyl", +".............................jjC", +"...............................j", +"................................", +"................................"}; + +static String[] image12_data = { +"32 32 177 2", +"Qt c None", +".# c #000000", +"aU c #000c08", +".Z c #000c10", +"aT c #002029", +".a c #002831", +".c c #002c39", +"aS c #009da4", +"#i c #00a1a4", +".1 c #00a5ac", +".F c #00aeac", +"#W c #00b2b4", +".u c #00b6bd", +".n c #00bebd", +"#n c #00c2bd", +"#h c #00c2c5", +".h c #00c6cd", +"## c #00cac5", +".0 c #00cecd", +".N c #00d2cd", +".E c #00dad5", +".x c #00dade", +".t c #00e2e6", +".q c #00e6e6", +".m c #00eaee", +".j c #00f2ee", +".g c #00f6f6", +".d c #00faff", +".b c #00ffff", +"#m c #088983", +"#a c #08a5ac", +".O c #08aeb4", +".y c #08b6bd", +".r c #08bec5", +".k c #08c6cd", +".e c #08ced5", +"#. c #108983", +"aQ c #10898b", +".Y c #108d8b", +"at c #10918b", +".A c #181418", +".D c #414041", +".B c #4a444a", +".C c #4a484a", +".J c #625d4a", +"aK c #6a5d52", +"aL c #6a6152", +"aM c #6a615a", +"aN c #6a6552", +"aj c #6a655a", +".8 c #73654a", +".V c #736552", +"au c #73655a", +"#X c #73695a", +"#U c #7b6d52", +"am c #7b6d5a", +"aO c #7b6d62", +"#k c #7b715a", +"aP c #7b7162", +"#f c #83715a", +"#H c #83755a", +"#t c #83795a", +"#Q c #83796a", +"#O c #8b7562", +"#z c #8b7962", +"#r c #8b7d62", +"aR c #8b7d73", +"#4 c #8b816a", +"ao c #948162", +"#w c #94816a", +"#j c #94856a", +"#K c #948573", +"#P c #948973", +"#F c #94897b", +"#p c #9c856a", +"#D c #9c897b", +".3 c #9c8d6a", +"#J c #9c8d73", +"#B c #9c8d7b", +"#u c #9c917b", +"#b c #a48d73", +"#s c #a49183", +"aE c #a49573", +"#o c #a4957b", +"#A c #a49583", +"ay c #a4997b", +"aJ c #ac9583", +".M c #ac9983", +"aa c #ac9d83", +".2 c #ac9d8b", +"ap c #aca183", +"#2 c #aca18b", +".P c #b49d83", +"av c #b4a183", +".f c #b4a18b", +"az c #b4a583", +"aI c #b4a58b", +"a. c #b4a594", +".K c #b4aa94", +"aH c #bdaa8b", +"#3 c #bdaa94", +"ag c #bdae9c", +"aD c #c5ae83", +"aG c #c5ae94", +"#N c #cdae83", +"#x c #cdb283", +"#C c #cdb28b", +"#q c #cdb68b", +"aq c #cdba9c", +"ar c #cdbea4", +".L c #cdc6b4", +"#c c #d5b68b", +".4 c #d5ba8b", +".R c #d5be9c", +"ah c #d5c2ac", +".9 c #d5c6b4", +".W c #d5cab4", +"a# c #d5ceb4", +"aC c #dec294", +"ax c #dec29c", +"aF c #dec69c", +"al c #dec6a4", +"ad c #decaa4", +"as c #decabd", +"ai c #decebd", +"aw c #e6caa4", +"ak c #e6cea4", +"#0 c #e6ceb4", +".G c #e6d2bd", +"#M c #e6d6c5", +"#G c #e6dacd", +"#E c #e6dad5", +".s c #e6dede", +"#v c #e6e2de", +"ac c #eed2b4", +".5 c #eed6ac", +"#8 c #eed6b4", +"#7 c #eed6bd", +"ab c #eedab4", +"aA c #eedabd", +"#6 c #eedebd", +"aB c #eedec5", +".z c #eeded5", +"#T c #eee2c5", +"#V c #eee2cd", +"af c #eee2d5", +".o c #eee2de", +".l c #eee6de", +".v c #eee6e6", +".Q c #eeeaee", +"an c #f6d6b4", +"#d c #f6dab4", +"#Z c #f6dec5", +"ae c #f6e2cd", +".S c #f6e6cd", +".6 c #f6e6d5", +"#R c #f6ead5", +"#9 c #f6eade", +"#g c #f6eede", +"#l c #f6eee6", +".I c #f6eeee", +".U c #f6f2f6", +"#e c #f6f6f6", +"#5 c #ffe6cd", +"#1 c #ffe6d5", +"#Y c #ffeacd", +"#S c #ffead5", +"#L c #ffeade", +".7 c #ffeede", +".H c #ffeee6", +".T c #fff2e6", +"#I c #fff2ee", +"#y c #fff6ee", +".X c #fff6f6", +".p c #fffaf6", +".w c #fffaff", +".i c #ffffff", +"Qt.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +".a.b.#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +".c.d.e.f.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +".a.g.h.f.i.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#QtQtQtQtQtQtQt", +".c.j.k.f.i.i.#QtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#.l.#QtQtQtQtQtQtQt", +".a.m.n.f.i.i.i.#QtQtQtQtQtQtQtQtQtQtQt.#.#.o.p.p.#QtQtQtQtQtQtQt", +".c.q.r.f.i.i.i.i.#QtQtQtQtQtQtQtQtQt.#.s.i.p.i.p.#QtQtQtQtQtQtQt", +".a.t.u.f.i.i.i.i.i.#QtQtQtQtQtQt.#.#.v.i.p.i.p.w.#QtQtQtQtQtQtQt", +".c.x.y.f.i.i.i.i.i.i.#QtQtQtQt.#.z.w.i.i.i.i.i.p.A.B.C.B.C.DQtQt", +".a.E.F.f.i.i.i.i.i.i.i.#QtQt.#.G.H.i.w.i.i.i.w.I.J.K.L.p.p.M.#Qt", +".c.N.O.P.i.i.i.i.i.i.i.Q.#.#.R.S.T.w.i.i.i.i.i.U.V.K.W.X.i.M.Y.Z", +".a.0.1.2.i.i.i.i.i.i.i.Q.3.4.5.6.7.i.w.i.i.i.w.U.8.K.9.H.p.M#..Z", +".c###a.M.i.i.i.i.i.i.i.Q#b#c#d.S.T.w.i.i.i.i.i#e#f.K.W#g.i.M.Y.Z", +".a#h#i.M.i.i.i.i.i.i.i.Q#j#c.5.S.H.w.p.i.w.i.p.X#k.K.L#l.p.M#m.Z", +".c#n#a#o.i.i.i.i.i.i.i.Q#p#q#d.S.T.p.i.p.i.p.i.X#r.K.W#g.i.M.Y.Z", +".a#h#i#s.i.i.i.i.i.i.w.v#r#c.5.6.7.p.p.p.p.p.p.X#t.K.9.H.p.M#..Z", +".c#n#a#u.i.i.i.w.i.p.w#v#w#x#d.S.T.X.p.p.p.p.p#y#z.K.W#g.i#A.Y.Z", +".a#h#i#B.p.w.p.p.X.X#y.s#t#C.5.S.H.p#y.X#y.X#y.p#t.K.L#l.p#o#m.Z", +".c#n#a#D.p#y.X#y#y.T#y#E#z#x#d.S.T#y.p#y.p#y.p#y#z.K.W#g.i#u.Y.Z", +".a#h#i#F.T#y.T.T#l.T.7#G#H#x.5.6.7#y#I#y#y#y#I#y#t.K.9.H.p#J#..Z", +".c#n#a#K.T.H.T.7.7.7#L#M#H#N#d.S.T#I#y#y#y#y#y#I#O.K.W#g.i#P.Y.Z", +".#.Y#i#Q.M.7#R#S#R.6#T.G#U#N.5.S.H#I.T#y.T#y#V#H#H.K.L#l.p#K#m.Z", +"Qt.#.Y#W#X.M#S.S#Y#T#Z#0#f#N#d.S.T.T#y#l#1.3#z#2#3.L.9#g.i#4.Y.Z", +"QtQt.#.Y#W#X.M#5#6#7#8#0#U#N.5#5#g.T#9#z.3#2a..9.9.Wa#.H.p#4#..Z", +"QtQtQt.#.Y#W#Xaaabac#8ad#f#N#daeaf.W#z#2agah.9.9aiai#M#g.i#r.Y.Z", +"QtQtQtQt.#.Y#Waj.Macakalam#N.5anao.3apaqaras#T.6#R.H#9#l.p#z#m.Z", +"QtQtQtQtQt.#at#Wauavawax#f#Nan#zayazaq#8aAaBae.6#9#g.H#9.X#H.Y.Z", +"QtQtQtQtQtQt.#.Y#W#XaaaC#UaD#taEazaFadaGaHaIaa.fapaaaaaJ#o#f#..Z", +"QtQtQtQtQtQtQt.#.Y#WaK.M#f#HaEaLajaKaMaNauauauaj#X#X#X#XaOaPaQ.Z", +"QtQtQtQtQtQtQtQt.#.Y#W#XamaRaP.1aS#a#i.1#i#a#i.1#i#a#i.1#i#a#i.Z", +"QtQtQtQtQtQtQtQtQt.#.Y#.aQ#..YaT.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#Qt", +"QtQtQtQtQtQtQtQtQtQt.Z.ZaU.Z.ZQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"}; + +static String[] image13_data = { +"32 32 311 2", +".q c None", +".# c None", +"Qt c None", +"#A c #000000", +"ah c #080400", +"c0 c #080c08", +"aE c #100400", +"#P c #100800", +"bm c #101418", +"#7 c #180800", +"aQ c #181410", +"cV c #181810", +"#Z c #200c00", +"#I c #201000", +"ar c #201010", +"bz c #201818", +"a3 c #202420", +"bJ c #292418", +"cZ c #292818", +"cX c #292820", +"cb c #312418", +"bA c #312420", +"cq c #312818", +"cJ c #312820", +"b1 c #312c20", +"cY c #312c29", +"cW c #313029", +"bN c #313031", +"bj c #392c20", +"aD c #414041", +"aO c #4a4439", +".m c #4a484a", +"cy c #4a4c4a", +"b3 c #524839", +"aG c #524c41", +".k c #525052", +"cr c #525552", +"aB c #5a4829", +"aC c #5a4831", +"cc c #5a555a", +"bw c #5a595a", +"a7 c #5a5d5a", +"ba c #624431", +"ap c #625031", +"aH c #625d62", +".i c #626162", +"#8 c #626562", +"bk c #6a4c31", +"a2 c #6a5541", +"aF c #6a5d52", +"bQ c #6a655a", +".g c #6a656a", +".e c #6a696a", +".2 c #6a6d6a", +"bS c #73695a", +"b6 c #736962", +"bP c #736d62", +".G c #736d73", +".K c #737173", +"bT c #7b7162", +".c c #7b797b", +"a1 c #834c31", +"aM c #835031", +"aA c #835529", +"bi c #837152", +"bU c #837562", +"b0 c #8b755a", +"a6 c #8b7d62", +"cP c #8b7d6a", +"aS c #8b8173", +"bp c #8b8573", +".a c #8b858b", +"bn c #8b898b", +"bO c #8b8d8b", +"an c #945018", +"bW c #948573", +"bB c #94857b", +"bC c #94897b", +".W c #949194", +"aP c #9c4041", +"bb c #9c408b", +".n c #9c489c", +"be c #9c897b", +"br c #9c8d7b", +"#O c #a44800", +"by c #a4488b", +"#y c #a44c00", +"af c #a44c10", +".l c #a44ca4", +".o c #a47da4", +"bY c #a4917b", +"bE c #a49583", +"b8 c #a4998b", +"#G c #ac4c00", +"#i c #ac5000", +".p c #ac7dac", +".j c #ac81ac", +"ci c #ac998b", +"aN c #b44c8b", +"a8 c #b48d6a", +"bv c #b4997b", +"bg c #b4a18b", +"ck c #b4a594", +"bM c #b4aaa4", +"bK c #b4aeac", +"at c #b4b2ac", +"ad c #bd6129", +".h c #bd8dbd", +".f c #bd91bd", +"cI c #bd9d6a", +"cp c #bd9d73", +"bx c #bda17b", +"bt c #bdaa94", +"b4 c #bdb2a4", +"#0 c #bdb6b4", +".H c #bdbabd", +"bR c #c5655a", +".V c #c56dc5", +".A c #c571c5", +"ab c #c58162", +"as c #c58dac", +".d c #c599c5", +"cS c #c5a57b", +"cQ c #c5ae8b", +"cN c #c5ae94", +"bG c #c5b294", +"ao c #cd4883", +".x c #cd5031", +"cj c #cd716a", +"ay c #cd8162", +"cl c #cdbaa4", +"cK c #cdc2bd", +".r c #cdcacd", +"#Y c #d53808", +"#q c #d53c08", +"ag c #d53c18", +".L c #d55531", +"bl c #d5594a", +".Q c #d57d29", +"aZ c #d58162", +"b# c #d5859c", +"aT c #d599b4", +".b c #d5aad5", +"cC c #d5c6ac", +"cg c #d5cab4", +"#z c #de3c08", +"aq c #de3c20", +".Y c #de5929", +".3 c #de8531", +"aR c #deaac5", +"cm c #dec6ac", +"#H c #e64008", +"bV c #e681c5", +"a4 c #e68573", +"bo c #e685cd", +"bq c #e6897b", +".t c #e695e6", +"bd c #e6aecd", +"bc c #e6b6e6", +"cH c #e6c69c", +"cn c #e6caa4", +"cG c #e6ceac", +"cE c #e6ceb4", +"cF c #e6d2b4", +"cB c #e6d6c5", +"#6 c #ee4808", +"a0 c #ee5539", +"#o c #ee7900", +"a5 c #ee8dcd", +".C c #ee9d52", +"cA c #eee2cd", +"cz c #eee6de", +"az c #f66139", +"## c #f67900", +"#W c #f67908", +"#F c #f67d00", +"aL c #f68131", +"bX c #f68d7b", +"cD c #f69183", +"#V c #f6ae83", +"bh c #f6bac5", +"bD c #f6bad5", +"b7 c #f6bed5", +"#D c #f6c2ac", +".N c #f6deac", +"cf c #f6e6d5", +"ce c #f6eade", +"cd c #f6eee6", +"aW c #f6f2ee", +"ae c #ff5510", +"#p c #ff5908", +"#a c #ff6108", +"ac c #ff6529", +"#3 c #ff6531", +"#5 c #ff6d20", +"#w c #ff7500", +".7 c #ff7539", +"#g c #ff7900", +"#M c #ff7931", +".T c #ff7d00", +"#X c #ff7d18", +"aK c #ff7d5a", +"al c #ff7d62", +".6 c #ff8100", +"#x c #ff8108", +"b. c #ff815a", +".P c #ff8500", +"#j c #ff8552", +".J c #ff8900", +"#h c #ff8908", +"#b c #ff8929", +"#E c #ff8952", +"#n c #ff8d08", +".1 c #ff9100", +"#. c #ff9108", +"am c #ff9139", +"bZ c #ff91cd", +"#m c #ff9529", +"aa c #ff9573", +".9 c #ff9931", +"#4 c #ff9d31", +".y c #ff9d52", +"cT c #ff9d7b", +"ax c #ff9d83", +"bs c #ff9dde", +".0 c #ffa131", +".O c #ffa139", +"aY c #ffa583", +"#2 c #ffa5a4", +".U c #ffae00", +"#N c #ffae08", +"#t c #ffae83", +"#1 c #ffae8b", +"#e c #ffb200", +"#v c #ffb208", +"#S c #ffb28b", +"c. c #ffb29c", +".5 c #ffb600", +"av c #ffb694", +"cM c #ffb69c", +"ct c #ffb6a4", +"#J c #ffb6ff", +"#f c #ffba08", +"#u c #ffba18", +"a# c #ffba9c", +".w c #ffbaff", +"#d c #ffbe31", +"#l c #ffbe7b", +"cL c #ffbeac", +"ca c #ffc2a4", +"#r c #ffc2ac", +"a9 c #ffc2c5", +"bf c #ffc2d5", +"bH c #ffc6a4", +"cu c #ffc6ac", +"cU c #ffc6c5", +"b5 c #ffc6e6", +".S c #ffca39", +"cw c #ffcaa4", +"aj c #ffcaac", +"aw c #ffcab4", +"cx c #ffcac5", +"aJ c #ffcacd", +"ak c #ffcad5", +".4 c #ffce41", +".8 c #ffcea4", +"cv c #ffceac", +"bI c #ffced5", +"bF c #ffcee6", +".F c #ffd231", +"#K c #ffd2ac", +"aI c #ffd2c5", +"b9 c #ffd2e6", +"#c c #ffd69c", +"ai c #ffd6ac", +".Z c #ffd6bd", +"cR c #ffd6de", +"cO c #ffd6e6", +"ch c #ffd6ee", +"bL c #ffd6ff", +".D c #ffda6a", +"cs c #ffdacd", +"#s c #ffdade", +"#L c #ffdaee", +"au c #ffdaff", +".M c #ffde6a", +"#k c #ffde83", +".R c #ffdeb4", +"#C c #ffdebd", +".z c #ffdec5", +"#B c #ffdee6", +"#R c #ffdeff", +"aX c #ffe2cd", +"bu c #ffe2f6", +".X c #ffe2ff", +"c# c #ffe6f6", +".B c #ffe6ff", +"#U c #ffeaf6", +".I c #ffeaff", +".E c #ffeebd", +"#T c #ffeede", +"b2 c #ffeeff", +"co c #fff2f6", +".s c #fff2ff", +"aV c #fff6ee", +"#9 c #fff6f6", +".u c #fff6ff", +"aU c #fffaf6", +"#Q c #fffaff", +"a. c #fffff6", +".v c #ffffff", +"Qt.#Qt.a.b.c.d.e.f.g.h.i.j.k.l.m.n.k.o.k.p.k.o.k.p.k.o.kQt.#Qt.#", +".qQt.q.c.r.s.r.s.r.s.r.s.r.s.r.t.r.s.r.s.r.s.r.s.r.s.r.k.qQt.qQt", +"Qt.#Qt.c.u.v.v.v.v.v.v.v.v.v.v.w.v.v.v.v.v.v.v.v.v.v.u.k.x.y.z.v", +".qQt.q.A.r.v.v.v.v.v.v.v.v.v.v.B.v.v.v.v.v.v.v.v.v.v.r.x.C.D.E.F", +"Qt.#Qt.G.u.v.v.v.v.v.v.v.v.v.v.H.v.v.v.v.v.v.v.v.v.v.x.y.z.I.F.J", +".qQt.q.K.r.v.v.v.v.v.v.v.v.v.v.B.v.v.v.v.v.v.v.v.v.L.C.M.N.O.J.P", +"Qt.#Qt.G.u.v.v.v.v.v.v.v.v.v.v.w.v.v.v.v.v.v.v.v.Q.y.z.R.S.T.U.P", +".qQt.q.V.W.B.H.B.H.B.H.B.H.X.H.B.H.B.H.B.H.B.H.Y.C.M.Z.0.T.P.P.1", +"Qt.#Qt.2.u.v.v.v.v.v.v.v.v.v.v.H.v.v.v.v.v.v.3.y.z.R.4.T.U.P.5.6", +".qQt.q.2.r.v.v.v.v.v.v.v.v.v.v.B.v.v.v.v.v.7.C.M.8.9.T.P.J#.###a", +"Qt.#Qt.e.u.v.v.v.v.v.v.v.v.v.v.w.v.v.v.v#b.y.z#c#d.T#e.P#f#g#h#i", +".qQt.q.e.r.v.v.v.v.v.v.v.v.v.v.B.v.v.v#j.C#k#l#m.T.P.P#n#o#p#i#q", +"Qt.#Qt.g.u.v.v.v.v.v.v.v.v.v.v.H.v.v#r#l#s#t#u.6#v.J#f#w#x#y#z#A", +".qQt.q.e.W.B.H.B.H.B.H.B.H.B.H.B.H#B#C.v#D#E.6.P.P#.#F#p#G#H#IQt", +"Qt.#Qt.g.u.v.v.v.v.v.v.v.v.v.v#J.v#K.v.X#L#M#N.J#f#g#x#O#H#PQt.#", +".qQt.q.g.r.v.v.v.v.v.v.v.v.v#Q#R#S.v#T#U#V#M#W#X#o#p#O#Y#ZQt.qQt", +"Qt.#Qt.i.u.v.v.v.v.v.v.v.v#Q.v#0#Q#Q.v#1#2#3#4#5.6#G#6#7Qt.#Qt.#", +".qQt.q#8.r.v.v.v.v.v.v.v#Q.v#9#Ba.#Qa#aaabacadaeafagah#A.qQt.qQt", +"Qt.#Qt.i.u.v.v.v.v.v.v#Q.v.u.vai.vajakalamanaoapaqaras#AQt.#Qt.#", +".qQt.q.i.W.B.H.B.H.X#0#Ratauav.vawaxayazaAaBaCaDaEaFaG#A.qQt.qQt", +"Qt.#QtaH.u.v.v.v.v#Q.v.u.v.s.vaIaJaKaLaMaNaOaPaQaRaSaT#AQt.#Qt.#", +".qQt.qaH.r.v.v.vaU.vaV.vaW#BaXaYaZa0a1a2a3#AaSa4aSa5a6#A.qQt.qQt", +"Qt.#Qta7.u.v.v#Q.v.u.v.s.va8a9b.b#babb#AbcaSbdbebfbgbh#AQt.#Qt.#", +".qQt.qaH.r.vaU.vaV.vaW.vbibjbkblbjbmbnbobpbqbrbsbtbubv#A.qQt.qQt", +"Qt.#Qtbw.u#Q.v.u.v.s.vbxbybzbA#AbcbBbdbCbDbEbFbG#UbHbIbJQt.#Qt.#", +".qQt.qbw.W#RataubKbLbMbN#A#AbObPbQbRbSbTbUbVbWbXbYbZb0b1.qQt.qQt", +"Qt.#Qtbw.u.u.v.s.vb2.vb3bcb4b5b6b7b8b9c.c#ca.saj.sbHbIcbQt.#Qt.#", +".qQt.qcc.r.vcd.vce.vcf.vcgchcicjck#Lclb2cm.ucncocncocpcq.qQt.qQt", +"Qt.#Qtcr.u.s.v.I.v.B.vcs.uct#LaS.Icu.ucv.ucv.scw.sbHcxcbQt.#Qt.#", +".qQt.qcy.r.vce.vcz.vcA.vcB.scCcDcE.ucF#QcG.ucncocHcocIcJ.qQt.qQt", +"Qt.#QtaDb2cK.IcL.BclbucM#LcNcOcPcOcQcRaYbIcSbIcTcxcIcUcbQt.#Qt.#", +".qQt.qcVcJcWcJcWcXb1cYcYcXcJcXcJbJb1bJb1bJcXcZb1bJb1bJc0.qQt.qQt"}; + +static String[] image14_data = { +"32 32 147 2", +"Qt c None", +".c c #000000", +"ag c #000400", +"aj c #00aeb4", +"#k c #080808", +"#t c #080c08", +"ai c #08b2b4", +"af c #08e2e6", +"aq c #100c08", +"#B c #100c10", +".l c #101410", +"ae c #10e6e6", +"ac c #10ffff", +"#8 c #292c29", +"ad c #312c31", +".h c #313031", +"am c #313431", +"al c #393439", +"#d c #393839", +".f c #393c39", +"an c #413c41", +".A c #414041", +"ap c #414441", +".7 c #4a444a", +"#c c #4a484a", +".x c #4a4c4a", +"#W c #524c52", +".W c #525052", +".n c #525552", +"#Z c #52cade", +"#0 c #52cede", +"#T c #52d2de", +"ak c #5a5552", +".6 c #5a555a", +".V c #5a595a", +".e c #5a5d5a", +"#L c #5ad2de", +".a c #625d62", +".U c #626162", +"ao c #626562", +"#R c #62cede", +"#K c #62cee6", +"#J c #62d2de", +"#7 c #62d2e6", +"#S c #62d6de", +"#Y c #62d6e6", +".k c #6a696a", +"#4 c #6acede", +"#E c #6ad2de", +"#F c #6ad2e6", +".L c #737173", +".z c #737573", +"#U c #73cede", +"a. c #73cee6", +"#D c #73d2e6", +"#z c #73d6e6", +".g c #7b757b", +".T c #7b797b", +".J c #7b7d7b", +"#I c #7bd2e6", +"#x c #7bd6e6", +"#y c #7bdae6", +".m c #837d83", +".o c #838183", +"#2 c #838583", +"#3 c #83d6e6", +"#p c #83dae6", +".b c #8b858b", +".d c #8b898b", +"#N c #8b8d8b", +"#o c #8bd6e6", +"#C c #8bdae6", +"#A c #8bdaee", +"#q c #8bdee6", +"#w c #8bdeee", +".j c #948d94", +".y c #949194", +".S c #949594", +"#r c #94dae6", +"#a c #94dee6", +"#i c #94deee", +".K c #9c959c", +".# c #9c999c", +".p c #9c9d9c", +"#Q c #9cdee6", +"## c #9cdeee", +"#1 c #9ce2ee", +".i c #a49da4", +".2 c #a4e2ee", +"#P c #a4e2f6", +"ab c #a4e6ee", +"#n c #a4e6f6", +".w c #acaaac", +"#m c #ace2ee", +"#h c #ace6ee", +".1 c #ace6f6", +".3 c #aceaf6", +"a# c #b4b6bd", +"#6 c #b4babd", +".0 c #b4e6ee", +".4 c #b4e6f6", +"#G c #b4eaee", +".P c #b4eaf6", +"#9 c #bdbabd", +".v c #bdbec5", +"aa c #bdd6de", +"#. c #bdeaee", +"#g c #bdeaf6", +".Q c #bdeef6", +".O c #bdeeff", +"#b c #c5c2c5", +"#H c #c5c6c5", +".q c #c5c6cd", +"#l c #c5cacd", +".Z c #c5eaf6", +"#f c #c5eef6", +".t c #cddede", +"#5 c #cdeaee", +"#V c #cdeaf6", +".N c #cdeef6", +"#v c #cdeeff", +".9 c #cdf2f6", +".Y c #cdf2ff", +"ah c #d5d2d5", +"#M c #d5d6d5", +".r c #d5dee6", +".s c #d5e2e6", +".5 c #d5eef6", +".R c #d5f2f6", +"#O c #d5f2ff", +".F c #d5f6ff", +".u c #dedede", +".I c #dedee6", +".B c #dee2e6", +"#u c #def2f6", +".E c #def6ff", +"#X c #defaff", +".G c #e6f6f6", +".H c #e6f6ff", +".D c #e6faff", +"#s c #eef2f6", +".M c #eef6ff", +".C c #eefaff", +"#e c #eeffff", +"#j c #f6f6ff", +".8 c #f6faff", +".X c #f6ffff", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.aQtQtQt", +"QtQtQtQtQtQtQtQt.b.c.c.c.c.c.c.dQtQtQtQtQtQtQtQtQtQtQt.e.fQtQt.g", +"QtQtQtQtQtQt.c.c.h.e.b.#.i.j.k.l.c.cQtQtQtQtQtQtQtQtQtQtQtQt.m.a", +"QtQtQtQtQt.c.n.o.p.q.r.s.t.r.u.v.w.x.cQtQtQtQtQtQtQt.y.j.zQtQt.A", +"QtQtQtQt.c.n.v.r.B.C.D.E.E.F.E.G.H.I.J.cQtQtQtQtQt.i.K.m.g.LQtQt", +"QtQtQt.c.n.v.s.C.M.D.E.E.N.O.P.Q.Q.R.C.a.cQtQtQt.S.K.T.k.U.V.WQt", +"QtQt.c.n.v.s.X.C.C.C.D.Y.Z.0.1.2.3.4.5.C.h.cQtQt.j.o.k.6.6.x.7Qt", +"QtQt.c.o.s.C.C.X.8.C.R.9#..1.2###a.2.0.5#b.cQtQt.z.L.n.W#c.7#dQt", +"Qt.d.h.i.B.C.C#e.X.C.E#f#g#h.2#i###i.3.N#j#k.dQtQt.V.n.x.7#dQtQt", +"Qt.c.x#l.H.D.H.C.G.H.5#f#m#n#a#o#p#q#r.4#s.W#tQtQtQt#c.A.fQtQtQt", +"Qt.c.b.B.D.H.D#u.E.R#v.P.1###w#x#y#z#A##.5.##BQtQtQtQtQtQtQtQtQt", +"Qt.c.#.B.E.E.Y.9#f#f.0.1#r#C#x#D#E#F#z###G#H#kQtQtQtQtQtQtQtQtQt", +"Qt.c.i.r.E.R#f#g#g#h.1###w#x#I#J#K#L#I#i.Q#M#BQtQtQtQtQtQtQtQtQt", +"Qt.c#N.r#O.Y#h.1#h#P#Q#C#x#D#R#S#T#L#U#i#V.w#kQtQtQtQtQtQtQtQtQt", +"Qt.c#W#H#X#f.1.2.2#i#A#x#I#J#Y#Z#0#L#p#h.C.V#BQtQtQtQtQtQtQtQtQt", +"Qt.d.l.v.E.Y#1###r#C#x#D#R#S#Z#0#Z#F#r.N#s.c#2QtQtQtQtQtQtQtQtQt", +"QtQt.c.j.s#O#1#r#w#3#x#4#K#T#0#Z#F#x.1#5.K.cQtQtQtQtQtQtQtQtQtQt", +"QtQt.c.x#6.8.P###C#3#U#7#L#L#L#x#x#m#5.C#8.bQtQtQtQtQtQtQtQtQtQt", +"QtQtQt.c.J#9.X.P.2###p#z#Ia.#p#C.1#5#j.V.c.cQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQt.c.Ta#aa.5.P#G###a#iab.N#5#s.V.c.Lac.cQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQt.c#d.d#9#s#j.N.Q.N#j#s.jad.c.xaeaf.y.cQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.c.cag.W.##Hah.w.n.c.c.bagaiajak.L.j.cQtQtQtQtQtQtQt", +"QtQtQt.#.aQtQtQt.d.c.c.c.c.c.c#2QtQtQt.cal.x.6.L.y.cQtQtQtQtQtQt", +"QtQtQt.e.fQtQt.gQtQtQtQtQtQtQtQtQtQtQtQt.cam.Aak.L.j.cQtQtQtQtQt", +"QtQtQtQtQtQt.m.a.7QtQtQtQtQtQtQtQtQtQtQtQt.cal.A.6.L.y.cQtQtQtQt", +"QtQt.y#N.gQtQt.AQtQtQtQtQtQtQtQtQtQtQtQtQtQt.cam.Aak.L.y.cQtQtQt", +"Qt.p.K.m.g.LQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.cal.f.V.L.y.cQtQt", +".S.S.T.k.U.V.WQt.S.eQtQtQtQtQtQtQtQtQtQtQtQtQtQt.cal.f.V.L.y.cQt", +".j.o.k.6.6.x.7Qt.aanQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.cal.A.V.k.y.c", +".g.L.n.W#c.7#dQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.cal.A.Vao.l", +"Qt.V.6.xap#dQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.cal.A#Waq", +"QtQt#c.A.fQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.c#t#kQt"}; + +static String[] image15_data = { +"32 32 205 2", +"Qt c None", +".p c #000000", +".x c #000008", +"#x c #000408", +".q c #080408", +"#N c #080800", +"#M c #080808", +"#s c #080c08", +".P c #100400", +"#t c #100c08", +"#U c #101010", +".n c #180800", +".9 c #180808", +".o c #180c08", +"#7 c #181010", +"#L c #181418", +".# c #181818", +".a c #181c10", +".h c #181c18", +".g c #201c18", +"#K c #202020", +"#8 c #202420", +".b c #292418", +"#J c #292429", +"#I c #292829", +"#0 c #292c29", +"#3 c #312c31", +"#H c #313031", +"#V c #313431", +"#X c #393031", +".c c #393418", +".d c #393818", +"#G c #393839", +".e c #413410", +"#6 c #413c41", +"#1 c #414041", +".f c #4a3c10", +"#5 c #4a444a", +"#4 c #4a484a", +"a0 c #524c52", +"aT c #525052", +".B c #5a4c08", +"a4 c #5a4c41", +"aF c #5a504a", +"aE c #5a5552", +"#C c #5a555a", +"#B c #5a595a", +"#D c #5a5d5a", +"#r c #625518", +"#k c #625910", +"at c #62595a", +"#A c #625d62", +"#z c #626162", +"#y c #6a656a", +"#u c #6a696a", +"#w c #6a6d6a", +"ao c #736d73", +"#l c #737173", +"az c #737573", +"a6 c #7b695a", +"aQ c #7b6d62", +"#i c #7b7120", +"#j c #7b7129", +"aw c #7b7573", +"#9 c #7b757b", +"#v c #7b797b", +"#2 c #7b7d7b", +"#h c #837129", +"aP c #83716a", +".T c #837520", +".i c #837529", +"aG c #837573", +"au c #837973", +"a1 c #83797b", +"ak c #837d7b", +"ad c #837d83", +"#m c #838183", +"#n c #838583", +"#g c #8b8139", +"#f c #8b8539", +"#O c #8b858b", +"#o c #8b898b", +".8 c #8b8d8b", +".m c #948939", +"#S c #948d94", +".7 c #949194", +"#Z c #949594", +".w c #9c8d41", +".l c #9c9141", +"ac c #9c918b", +".6 c #9c959c", +"#e c #9c995a", +"## c #9c999c", +".4 c #9c9d9c", +"a5 c #a4897b", +"a3 c #a4918b", +"aN c #a49594", +"av c #a49994", +"#d c #a49d5a", +"as c #a49d9c", +".5 c #a49da4", +".3 c #a4a1a4", +"#. c #a4a5a4", +".1 c #aca162", +"#c c #aca56a", +"#W c #aca5ac", +".2 c #acaaac", +".k c #acae4a", +"#F c #acaeac", +".H c #b4ae73", +".N c #b4aeb4", +".O c #b4b2b4", +"#E c #b4b6b4", +"aO c #bdaea4", +"#b c #bdb273", +".0 c #bdb673", +"#q c #bdb6bd", +"#p c #bdbabd", +".M c #bdbebd", +"aH c #c5aea4", +"a2 c #c5b6ac", +"al c #c5b6b4", +"aj c #c5bebd", +".S c #c5bec5", +".v c #c5c294", +".R c #c5c2c5", +".K c #c5c6c5", +"ba c #cda58b", +"a8 c #cdae94", +"bj c #cdb29c", +"ab c #cdbebd", +".Z c #cdc694", +".L c #cdc6cd", +"#R c #cdcacd", +".G c #cdce9c", +".J c #cdcecd", +"bk c #d5b29c", +"aZ c #d5b69c", +"aS c #d5b6a4", +"bi c #d5baa4", +"aM c #d5baac", +"aI c #d5beac", +"bh c #d5beb4", +"ay c #d5c2b4", +"bg c #d5c6b4", +"bf c #d5c6bd", +"an c #d5cabd", +"bd c #d5cac5", +".Y c #d5ce9c", +".u c #d5cea4", +".I c #d5d6d5", +"ar c #dec6bd", +"be c #decac5", +"ai c #decec5", +"bc c #dececd", +"bb c #ded2cd", +".j c #ded68b", +"aa c #ded6d5", +"aJ c #dedade", +"#Q c #dedede", +".X c #e6daac", +"#T c #e6dee6", +".W c #e6e2bd", +"#P c #e6e2e6", +"b. c #eec6ac", +"b# c #eecaac", +"aY c #eeceb4", +"aL c #eed6c5", +"ah c #eee2de", +".t c #eee6c5", +".V c #eee6cd", +"a. c #eee6ee", +".F c #eeeacd", +"#Y c #eeeaee", +".y c #eeeeee", +"a7 c #f6ceb4", +"aX c #f6d6bd", +"aR c #f6d6c5", +"aW c #f6dacd", +"aD c #f6decd", +"aK c #f6e2d5", +"aB c #f6e6d5", +"aq c #f6e6de", +"ag c #f6e6e6", +"a# c #f6eeee", +".A c #f6eef6", +".E c #f6f2cd", +".s c #f6f2de", +".U c #f6f2e6", +".z c #f6f2f6", +".Q c #f6f6f6", +"a9 c #ffe2d5", +"aC c #ffe6d5", +"ax c #ffe6de", +"aV c #ffeade", +"ap c #ffeae6", +"am c #ffeee6", +"aU c #ffeeee", +"af c #fff2ee", +"aA c #fff6f6", +".D c #fffaee", +"ae c #fffaf6", +".C c #fffaff", +"#a c #ffffe6", +".r c #ffffff", +"QtQtQtQtQtQtQtQtQtQt.#.a.b.c.d.e.fQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQt.g.h.g.i.j.k.l.m.gQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"Qt.n.o.p.q.p.q.p.q.p.q.i.r.s.t.u.v.w.x.p.q.p.q.p.q.p.o.nQtQtQtQt", +".p.r.y.z.y.z.z.A.y.A.B.r.C.D.E.F.G.H.i.p.I.J.K.L.M.M.N.O.PQtQtQt", +".p.Q.R.S.R.S.R.M.S.T.r.U.V.W.X.Y.Z.0.1.i.p.2.3.4.5.6.7.8.9QtQtQt", +".p.z.M#..3.5##.3.i#a.Y#b#c#d#e#f#g#h#i#j#k.p#l#m#m#m#n#o.pQtQtQt", +".p.z.S.2#p.2#q#p#r.h.g#s#t.p#t.p.p.p.p.p.p.p#u#u#v#w#u#w#xQtQtQt", +".p.z.M.6##.4#p#p.R#o#m#l#u#y#z#A#B#B#C#C#B#B#C#D#u#l#m.4.pQtQtQt", +".p.Q.R#E.S.O.3#.#q#F.2###G#H#H#I#I#I#I#J#K.##L#s#M#N#v#o.xQtQtQt", +".p.z#p.3#..N#F.3.4.3.7#O#G#P#Q#P#Q#P#Q#P#Q#P#Q#P.p#R.p#l.pQtQtQt", +".p.y.S.6##.3.5.6#S.8.7#n#G#T.r.r.r.r.r.r.r.r.r.r#U.Q#S.p.qQtQtQt", +".p.Q.M.2.2#q.O.M.O.2.4#S#V#P.r.r.r.r.r.r.r.r.r.r#K.r.Q#R.pQtQtQt", +".p.z.S.M#q.3#W###S#O#v#l#H#T.r#m.r#m#R.r#O#D#O.r#X#P.r.Q#S.pQtQt", +".p#Y#E#Z#Z##.7.2.5.O#Z.7#0#P.r.r.r.r.r.r.r.r.r.r#1.N#P.r.Q#R.pQt", +".p.y.S.2.N.O.2.O.3.6#O#2#3#T.r#m#A.r#O#D#R#D#O.r#4#5#6#H#I.h#7Qt", +".p.A#E.6##.3###S#n#m#2#v#8#P.r.r.r.r.r.r.r.r.r.r.z#R#.#W#m#9.pQt", +".pa.#p#o#S.7##.3.O.3#O#v#I#T.r#D#W#m.r#m#R#D#A#m.ra#a#aaabac.pQt", +".p#Y.O#F#E.O.2##.7.5#nad#8#P.r.r.r.r.r.r.r.r.r.raeaeafagahai.pQt", +".p#P.O.4.3.4#W#o#m#m#m#v#I#T.r#m#A.L#A#m.r#m.L#B#majakalaman.pQt", +".p#T.2ad#m#n#n.5###Z#2ao#8#P.r.r.r.r.r.r.r.raeaeafafamapaqar.pQt", +".p#T.O#.#W.6.8.7#S.7#m#v#I#T.r#D#O.L#A#m#Wae#masatauavawaxay.pQt", +".p#T#F.6.7.7#n#mazao#w#y#8#P.r.r.r.r.r.raeaAafafapapaBaCaDay.pQt", +".p.I.2.8.7#S.7#n.8#oad#l#J#T.r#m#A#D.LakatakatalaEaFaGaHaDaI.pQt", +".paJ#.#9az#2#v#v#2#l#u#u.h#P.r.r.r.raAaAafafapapaBaKaDaDaLaM.pQt", +".paJ#W#Z.6#S#o#v#v#lao#D.##T.r#m#A.RakaEataNaEaFaGaOaPaQaRaS.pQt", +".p#Q.4#m#nad#n#m#m#O#BaT#U#P.r.raAaAafaUapaVaKaKaDaWaLaXaYaZ.pQt", +".p#Q.3ad#mazad#lad#l#Ca0#U#T.rakata1ata2aEa3aGaOaPa4a5a6a7a8.pQt", +".p.3aTaTaTaTaT#CaTaT#4#5#M#PaAaAafamaVaVaKa9aDaWaLaXaYa7b.a8.pQt", +"Qt.n.o.p.q.p.q.p.q.p#x.p.q#TaAafaUapaVaBa9aDaDaRaRa7a7b#b.ba.pQt", +"QtQtQtQtQtQtQtQtQtQtQtQt.p#Pbbbcbdbebfbgaybhbibibjbka8a8baba.pQt", +"QtQtQtQtQtQtQtQtQtQtQtQt.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.pQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"}; + +static String[] image16_data = { +"32 32 50 1", +". c None", +"# c #000000", +"h c #000400", +"O c #080408", +"r c #080808", +"D c #080c08", +"T c #100c10", +"i c #101010", +"b c #101410", +"a c #181818", +"H c #201c20", +"x c #202020", +"s c #202420", +"M c #393839", +"K c #5a595a", +"L c #626162", +"P c #737573", +"B c #7b757b", +"I c #837d83", +"E c #8b858b", +"R c #8b898b", +"S c #8b8d8b", +"V c #948d94", +"t c #949194", +"c c #949594", +"j c #9c959c", +"F c #9c999c", +"C c #9c9d9c", +"U c #a49da4", +"k c #a4a1a4", +"l c #a4a5a4", +"y c #aca5ac", +"z c #acaaac", +"u c #acaeac", +"d c #b4aeb4", +"m c #b4b2b4", +"G c #b4b6b4", +"A c #bdb6bd", +"v c #bdbabd", +"n c #bdbebd", +"J c #c5bec5", +"e c #c5c2c5", +"q c #c5c6c5", +"N c #cdc6cd", +"o c #cdcacd", +"w c #cdcecd", +"Q c #d5ced5", +"f c #d5d2d5", +"g c #d5d6d5", +"p c #ded6de", +"................................", +"................................", +"................................", +"................................", +"...........##########...........", +".......#aabacdeffgfgf####.......", +".....hi#jcklmneoffpgpgpgqr##....", +"....sctkluuvnqqowffpfgfpfgf#....", +"....xcyzdumAeqwwffpgpgpgpgper...", +"....#BCzummvveqwwffgfpfgfpfnh...", +"....#DEkumvveeowffpgpgpgpgp##...", +".....#bjFzGnneqwwffpfgfpf###....", +"......#iaHIyJJowffpgpJK###......", +".......#fL#itJqffpfg###M#.......", +"........#gNG#rO#####PdF#........", +".........repwQwQwoeAuy#.........", +"..........#gpgpgponmR#..........", +"...........#fpfgQqGS#...........", +"............#gffovA#............", +".............rQQqz#.............", +".............TNqek#.............", +".............OeqvU#.............", +".............#Nqvc#.............", +".............#qqmV#.............", +".............#oeAR#.............", +".............#oeGR#.............", +".............#peAE#.............", +".............#fJGR#.............", +"..............####..............", +"................................", +"................................", +"................................"}; + +static String[] image17_data = { +"32 32 93 2", +"Qt c None", +".# c #000000", +"#a c #6a6962", +"#i c #6a696a", +"#d c #7b7973", +".3 c #7b797b", +".V c #7b7d7b", +".2 c #837d7b", +"#A c #837d83", +".U c #838183", +".S c #838583", +".T c #8b8583", +"#q c #8b858b", +".1 c #8b898b", +"#y c #8b8d8b", +".o c #945d31", +".R c #948d8b", +"#u c #948d94", +"#z c #94918b", +".Q c #949194", +"#p c #949594", +".F c #9c6139", +"#h c #9c9594", +"## c #9c959c", +".P c #9c999c", +".O c #9c9d9c", +"#v c #a49d9c", +"#g c #a49da4", +"#w c #a4a19c", +"#. c #a4a1a4", +".N c #a4a5a4", +".0 c #aca5a4", +"#f c #aca5ac", +"#t c #acaaa4", +".M c #acaaac", +"#m c #acaeac", +"#c c #b4aeac", +".L c #b4aeb4", +".K c #b4b2b4", +".9 c #b4b6b4", +".Z c #bdb6b4", +"#l c #bdb6bd", +"#x c #bdbab4", +".J c #bdbabd", +".D c #bdbebd", +".8 c #c5bebd", +".E c #c5bec5", +".C c #c5c2c5", +"#e c #c5c6c5", +"#s c #cdc6c5", +".I c #cdc6cd", +"#j c #cdcac5", +".B c #cdcacd", +".A c #cdcecd", +".7 c #d5cecd", +"#k c #d5ced5", +".z c #d5d2d5", +".y c #d5d6d5", +".p c #de914a", +"#r c #ded6d5", +".H c #ded6de", +".Y c #dedad5", +".4 c #dedade", +".q c #dedede", +".W c #e69552", +"#n c #e6dede", +"#o c #e6dee6", +".G c #e6e2e6", +".X c #e6e6e6", +".n c #ee9952", +".6 c #eee6e6", +".x c #eee6ee", +"#b c #eeeae6", +".w c #eeeaee", +".m c #f69d52", +".5 c #f6eeee", +".v c #f6eef6", +".u c #f6f2f6", +".d c #ffa152", +".a c #ffa55a", +".b c #ffb66a", +".c c #ffba73", +".e c #ffc283", +".i c #ffca8b", +".h c #ffce94", +".f c #ffce9c", +".l c #ffd29c", +".g c #ffd69c", +".k c #ffd6a4", +".j c #ffdaa4", +".t c #fff6ff", +".s c #fffaff", +".r c #ffffff", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQt.#.#.#.#.#.#.#.#QtQtQtQtQt.#QtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQt.#.#.#.#.#.#.#.#.#.#.#.#QtQt.#.#QtQtQtQtQt", +"QtQtQtQtQtQtQtQtQt.#.#.#.#.#QtQtQtQt.#.#.#.#.#.#.#.#.#QtQtQtQtQt", +"QtQtQtQtQtQtQtQt.#.#.#QtQtQtQtQtQtQtQtQtQt.#.#.#.#.#.#QtQtQtQtQt", +"QtQtQtQtQtQtQt.#.#QtQtQtQtQtQtQtQtQtQtQtQtQt.#.#.#.#.#QtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#.#.#.#.#QtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#.#.#.#.#.#QtQtQtQtQt", +"QtQtQt.#.#.#.#.#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQt.#.a.b.c.b.c.d.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"Qt.#.c.e.f.g.g.f.e.b.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +".#.a.e.f.g.g.h.h.i.e.d.#.#.#.#.#.#.#.#.#.#.#.#.#QtQtQtQtQtQtQtQt", +".#.b.f.j.k.l.h.e.c.b.c.b.c.b.c.b.c.b.c.b.c.b.c.b.#QtQtQtQtQtQtQt", +".#.c.i.k.l.e.b.a.d.m.n.m.n.m.n.m.n.m.n.m.n.m.n.m.#QtQtQtQtQtQtQt", +".#.b.j.l.f.b.a.o.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#", +".#.c.l.l.e.c.p.#.q.r.r.r.r.r.s.t.u.v.w.x.q.q.y.z.A.B.C.C.D.E.D.#", +".#.b.g.f.c.d.F.#.r.w.w.G.G.H.y.B.I.C.J.K.L.M.N.O.P.Q.R.S.T.U.V.#", +".#.c.h.e.b.W.#.r.q.w.X.x.X.G.Y.y.B.I.C.C.Z.Z.M.0.O.P.Q.1.2.3.#Qt", +".#.b.f.b.a.o.#.x.4.X.w.5.u.X.6.q.H.7.B.C.8.9.K.M#..P##.1.2#a.#Qt", +".#.c.e.c.p.#.s.H.q.X.w.v#b.w.G.G.Y.y.A.B.D.J.K#c.N#..Q.1#d.#QtQt", +".#.b.c.d.F.#.w.7.4.G.w.w.x.X.X.q.4.z.7#e.C.J.9.M#f#g#h.U#i.#QtQt", +".#.c.b.W.#.v#j.z.4.G.X.x.G.G.4.4.z#k#e#e.J#l#m.M#..P.1.3.#QtQtQt", +".#.b.a.o.#.X.I.z#n.G.6.G#o.4.4.z.z.B.I.D.J.K.L.0#.#p#q#i.#QtQtQt", +".#.c.p.#.G.C.B.z.y#n.4.4.y#r.z#k#e#s.D.J.9.K#t#..P#u.3.#QtQtQtQt", +".#.d.F.#.w.J.I.A#r#r#r.z.z.7.7#s.I.8.D.9.K.M#f#v.P.U#i.#QtQtQtQt", +".#.W.#.4.K.J.D#s.B.A.B.A.B.B#e#e.D.J.9.K.M#f#w##.1.3.#QtQtQtQtQt", +".#.o.#.y.L.9.8.D.C#e.I#e.I.C.C.J.J.9.K.M.M#.#g.Q.S#a.#QtQtQtQtQt", +".#.#.A.M.M.K.K#l.9.J.J.J#x#l.9.K#m#m.N#..O.O.Q.U#d.#QtQtQtQtQtQt", +".#.#.B#..0#.#f.0.M.M.M.0.M.N.N#.#g.P.P#p###p.S.V#i.#QtQtQtQtQtQt", +".#.C#y#y.1#u#z.Q.Q.Q#z.Q#z#u.1.1.T#q.U#A.3.3#d#i.#QtQtQtQtQtQtQt", +".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#QtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"}; + +static String[] image18_data = { +"32 32 251 2", +".p c None", +"bU c #000000", +"#A c #000083", +"#z c #0000ff", +"b4 c #000400", +"#L c #0004ff", +"bq c #080400", +"bI c #080408", +"#T c #0804ff", +"be c #080808", +"#n c #0808ff", +"b2 c #080c08", +"#b c #080cff", +"bi c #100808", +"b3 c #100c10", +"#h c #100cff", +"b1 c #101010", +"#e c #1010ff", +"b0 c #101410", +"bY c #181418", +"#l c #1814ff", +"bZ c #181818", +"#S c #1818ff", +"#m c #181cff", +"bW c #201c18", +"bX c #201c20", +"#y c #201cff", +"bV c #202020", +"#i c #2020ff", +"ad c #2024ff", +".6 c #292420", +"#. c #292429", +".S c #292829", +"#K c #2928ff", +".F c #312829", +".N c #312c31", +"#R c #312cff", +"#J c #3130ff", +"#x c #3134ff", +".o c #392c31", +"bJ c #393031", +".n c #393431", +"ac c #3934ff", +"#I c #3938ff", +"bC c #413439", +".m c #413839", +"bj c #413c39", +"#O c #413cb4", +"#w c #413cff", +"ao c #4140b4", +"#H c #4140ff", +"#v c #4144ff", +".l c #4a4041", +"aS c #4a4441", +"#9 c #4a44b4", +"ab c #4a44ff", +"#G c #4a48ff", +"aa c #4a4cff", +".k c #52444a", +".j c #52484a", +"#u c #524cff", +"#Q c #5250ff", +"#F c #5255ff", +".i c #5a4c52", +"#U c #5a5052", +".g c #5a5552", +"#t c #5a55ff", +"#E c #5a59ff", +"a# c #5a5dff", +".h c #62555a", +".f c #62595a", +"am c #625d52", +".e c #625d5a", +"#s c #6261ff", +"#r c #6265ff", +".d c #6a6162", +"#f c #6a6562", +"#1 c #6a65ff", +"#D c #6a69ff", +".c c #73696a", +".Y c #736d6a", +"#P c #736dff", +"#q c #7371ff", +"#0 c #7375ff", +".7 c #7b6d73", +".b c #7b7173", +"#p c #7b75ff", +"#Z c #7b79ac", +"a. c #7b79ff", +"an c #7b7dac", +"#C c #7b7dff", +"bR c #837152", +"aM c #83756a", +".a c #83757b", +".# c #83797b", +"#N c #837db4", +"#B c #837dff", +"#o c #8381ff", +"aG c #8b7973", +"aV c #8b7d6a", +"Qt c #8b7d83", +"al c #8b817b", +"aO c #948173", +".B c #948983", +"bK c #9c815a", +".q c #9c816a", +"bw c #9c8573", +"a1 c #9c857b", +"bc c #9c8973", +"a6 c #9c897b", +"bl c #9c8d7b", +".0 c #9c8d8b", +"bF c #9c917b", +"aB c #9c9183", +"av c #9c918b", +"## c #9c9594", +"aA c #9c9994", +"bt c #a48973", +"bx c #a48d73", +"b. c #a48d7b", +".8 c #a4918b", +"aN c #a4957b", +".G c #a4958b", +".L c #a49594", +".W c #a4959c", +"ay c #a49994", +".3 c #a4999c", +"az c #a49d94", +"ax c #a49d9c", +"#M c #a4a1bd", +"#Y c #a4a5c5", +"bE c #ac9173", +"ak c #aca194", +"#8 c #aca19c", +".R c #aca5a4", +"bQ c #b4997b", +"bB c #b4a58b", +"aJ c #b4a594", +"aH c #b4aa94", +"#X c #b4aa9c", +"#g c #b4aaa4", +"#7 c #b4aea4", +"aw c #b4b2a4", +"bh c #bdaa8b", +"bv c #bdae9c", +"aX c #bdaea4", +"bA c #bdb29c", +"#6 c #bdb2a4", +"aI c #bdb2ac", +"aF c #bdb6ac", +"bP c #c5ae8b", +"aW c #c5b28b", +"bb c #c5b6a4", +"bg c #c5b6ac", +"#5 c #c5bab4", +"aj c #c5beb4", +"bO c #cdba9c", +".A c #cdbab4", +"#W c #cdbeb4", +"bn c #cdc2b4", +"ai c #cdc6b4", +".Q c #cdc6c5", +"bN c #d5be9c", +"a2 c #d5c69c", +"au c #d5c6b4", +"a5 c #d5c6bd", +"aR c #d5cab4", +"#4 c #d5cabd", +".9 c #d5cacd", +"bL c #deca9c", +"bM c #decaa4", +"#2 c #decaac", +"#V c #decab4", +"#j c #deceb4", +"a4 c #decebd", +"ah c #ded2c5", +".1 c #ded6bd", +"ag c #ded6c5", +"aQ c #ded6cd", +".V c #ded6d5", +"aP c #e6cea4", +"bf c #e6ceac", +"ae c #e6ceb4", +"br c #e6d2a4", +"a0 c #e6d2ac", +"ap c #e6d2b4", +".O c #e6d2bd", +"bm c #e6d6ac", +"aC c #e6d6b4", +".T c #e6d6bd", +"aE c #e6d6c5", +"aL c #e6d6cd", +".P c #e6dac5", +"at c #e6dacd", +".z c #e6e2d5", +"bT c #eed6b4", +"by c #eedaac", +"bD c #eedab4", +"bS c #eedabd", +".H c #eedac5", +"a3 c #eedacd", +"bG c #eedebd", +"aZ c #eedec5", +"ba c #eedecd", +"aU c #eeded5", +"#3 c #eee2cd", +".y c #eeeae6", +".2 c #eeeaee", +"bo c #f6e2b4", +"bz c #f6e2cd", +"bu c #f6e2d5", +".4 c #f6e6c5", +"a9 c #f6e6cd", +"af c #f6e6d5", +"as c #f6e6de", +".r c #f6eacd", +".t c #f6ead5", +".v c #f6eade", +".w c #f6eae6", +"aY c #f6eede", +".x c #f6eee6", +".K c #f6eeee", +".5 c #f6f2ee", +"bd c #ffe6bd", +"bH c #ffe6c5", +"a7 c #ffeabd", +"#k c #ffeac5", +".M c #ffeacd", +"b# c #ffead5", +"#a c #ffeebd", +"#d c #ffeec5", +"bp c #ffeecd", +".u c #ffeed5", +"ar c #ffeede", +"aT c #fff2d5", +"aD c #fff2de", +"a8 c #fff2e6", +".C c #fff2ee", +".X c #fff2f6", +"bk c #fff6d5", +"aq c #fff6de", +".Z c #fff6e6", +"#c c #fff6ee", +".D c #fff6f6", +"bs c #fffade", +"aK c #fffae6", +".I c #fffaee", +".s c #fffaf6", +".J c #fffaff", +".U c #fffff6", +".E c #ffffff", +"Qt.#.a.b.b.c.c.d.d.e.f.g.h.i.i.j.k.l.l.m.m.n.o.p.p.p.p.p.p.p.p.p", +".#.q.r.s.t.u.t.v.v.v.v.w.w.x.y.x.z.A.B.C.D.E.F.p.p.p.p.p.p.p.p.p", +".#.s.G.H.E.I.s.I.s.I.s.s.E.s.E.J.K.L.M.E.E.J.N.p.p.p.p.p.p.p.p.p", +".b.O.E.G.P.E.I.s.I.s.s.s.s.E.s.E.Q.R.E.E.s.D.S.p.p.p.p.p.p.p.p.p", +".b.O.I.E.G.T.E.I.s.s.U.s.E.J.E.V.W.I.E.J.E.X.F.p.p.p.p.p.p.p.p.p", +".Y.O.Z.I.E.0.1.E.I.s.s.J.s.E.2.3.4.E.J.E.s.5.6.p.p.p.p.p.p.p.p.p", +".7.O.I.I.I.E.8.O.E.s.E.s.E.J.9.R.E.E.E.J.E.K#..p.p.p.p.p.p.p.p.p", +".c.O.Z.I.Z.I.E.0.T.E.s.J.s.K###a.E.E.J.E.s.x#b.p.p.p.p.p.p.p.p.p", +".c.O.I.I.I#c.s.E.8.H.E.s.K###d.E.E.J.E.J.E.w#e#b.p.p.p.p.p.p.p.p", +"#f.O.Z#c.Z.I.I.I.E.L.P.E.Q#g#c.E.J.E.s.E.s.w#b#h#i.p.p.p.p.p.p.p", +"#f.O.I.Z.I.I.s.I.s.E.L#j.L#k.E.J.E.J.E.s.E.w#e#h#i#l.p.p.p.p.p.p", +".e.O.Z#c.Z#c#c.I#c.I.K.8.4.E.D.s.D.s.D.s.I.v#b#h#m#l#n.p.p.p.p.p", +"#o#o#o#o#o#o#o#o#o#o#o#o#o#p#q#r#s#t#u#v#w#x#e#b#y#e#b#z.p.p.p.p", +"#A#A#A#o#B#o#C#o#B#o#C#o#C#p#D#r#E#F#G#H#I#J#K#i#l#e#L#z#z.p.p.p", +".f#M#N#O#A#A#A#o#o#o#o#o#B#q#P#s#E#Q#G#H#I#R#K#y#S#b#T#z#z#z.p.p", +"#U#V.P#W#X#Y#Z#A#A#A#B#o#0#q#1#s#F#u#v#w#x#R#i#y#e#b#z#z#z#A.p.p", +".h#2#3#4#5#6#7#8###Z#9#Aa.#P#1a##taaab#Iac#Kad#S#e#n#z#z#A.p.p.p", +".iaeaf#3agahaiajakalamanao#A#A#A#A#A#A#A#A#A#b#h#b#T#z#A.p.p.p.p", +"#Uapaqarar.tasatau#Xavalaw#8axayazaAayaAazaB#e#h#h#L#A.p.p.p.p.p", +".jaCaqaqaqaqaDaraEauaFaGaHajaFaFawaFawaIawaJ#b#h#n#A.p.p.p.p.p.p", +".jap.Zaq.Z.ZaKaq.waLaMaNaOaPatagaLahaQahaLaR#e#b#A.p.p.p.p.p.p.p", +"aSapaTaqaq.ZaqaqaUaVaWaiaXaJ.rar.varaYaraYaZ#b#A.p.p.p.p.p.p.p.p", +".ka0aqaqaqaqaK.Ea1a2a3a4a5a6a7.Z.ZaD.Za8.Za9#A.p.p.p.p.p.p.p.p.p", +".la0aTaqaTaq.Eb.a0b#baat#jbbbcbdaq.Zaq.Zaq.Mbe.p.p.p.p.p.p.p.p.p", +".lbfaqaTaq.Ea6a0aqarb##3.Haubgbhaqaq.Zaq.Z#kbi.p.p.p.p.p.p.p.p.p", +"bja0aTbk.EblbmaqaDaq.u.taE.Tbnbcbo.Zaqaqaqbpbq.p.p.p.p.p.p.p.p.p", +"bjbrbs.sbtbmaqaqaqaTaq.ubuaEa4bvbwbdaqaDaq#kbe.p.p.p.p.p.p.p.p.p", +".na0#cbxbybkaTaqaTaqaTaD.rbzaEa4bAbBa7aqaT#kbq.p.p.p.p.p.p.p.p.p", +"bCbDbEbDaTaTbkaTaqaTaqbkaTaZ.HaZaubFbGa7aqbHbI.p.p.p.p.p.p.p.p.p", +"bJbKbLa0aPa0aPa0a0a0a0a0bMbMbNbObPbQbRbSbTbDbU.p.p.p.p.p.p.p.p.p", +".N.F.F#..S.6#.bVbVbWbXbYbZb0bYb1b1b2b3bebeb4bI.p.p.p.p.p.p.p.p.p", +".p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p"}; + +static String[] image19_data = { +"32 32 66 2", +"Qt c None", +".# c #000000", +".7 c #000400", +"## c #080808", +".a c #080c08", +".C c #100c10", +".Z c #101410", +".R c #181418", +".d c #181818", +".e c #202020", +".2 c #202420", +".8 c #292c29", +".b c #312c31", +".D c #313031", +".5 c #313431", +".J c #393439", +".E c #414441", +".g c #4a444a", +".h c #4a484a", +".n c #4a4c4a", +".t c #524c52", +".o c #525052", +".s c #525552", +".u c #5a555a", +".K c #5a5d5a", +".l c #625d62", +".p c #626162", +".k c #6a696a", +".z c #737173", +".A c #737573", +".v c #7b757b", +".j c #7b7d7b", +".x c #837d83", +".H c #838183", +".O c #8b858b", +".y c #8b898b", +".S c #949194", +".N c #949594", +".f c #9c959c", +".U c #9c999c", +".F c #9c9d9c", +".T c #a49da4", +".c c #a4a5a4", +".B c #aca5ac", +".r c #acaeac", +".G c #b4aeb4", +".w c #b4b6b4", +".0 c #bdb6bd", +".3 c #bdbebd", +".L c #c5bec5", +".X c #c5c2c5", +".P c #c5c6c5", +".I c #cdc6cd", +".q c #cdcacd", +".1 c #cdcecd", +".Y c #d5ced5", +".i c #d5d2d5", +".M c #d5d6d5", +".m c #ded6de", +".W c #dedede", +".V c #e6dee6", +"#. c #e6e6e6", +".6 c #eee6ee", +".Q c #eeeaee", +".9 c #f6f2f6", +".4 c #ffffff", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#QtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.aQt.#.b.c.#.#.d.#QtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.e.f.#.g.h.i.j.k.l.m.#QtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQt.#.#Qt.e.n.h.n.o.p.k.p.o.q.r.#.#QtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQt.#.s.g.e.t.s.u.s.p.l.p.k.v.w.#.x.y.#QtQtQtQt", +"QtQtQtQtQtQtQtQtQtQt.#.g.h.u.h.n.h.u.k.k.z.A.j.A.j.x.q.B.#QtQtQt", +"QtQtQtQtQtQtQtQt.C.a.D.s.t.E.k.F.G.F.v.z.H.j.H.y.H.q.I.y.JQtQtQt", +"QtQtQtQtQtQtQt.#.h.s.o.g.K.L.M.L.c.B.r.N.j.y.O.y.c.P.o.dQtQtQtQt", +"QtQtQtQtQtQtQt.#.u.s.g.y.Q.w.v.h.D.R.D.h.f.S.f.S.T.S.H.z.#QtQtQt", +"QtQtQtQtQt.#.#.b.K.g.c.Q.O.u.e.#.#.#.#.b.c.N.U.F.c.B.r.i.q.#QtQt", +"QtQtQtQt.#.j.p.l.u.y.V.x.t.a.#.#QtQt.#.#.T.F.T.c.B.c.I.W.L.eQtQt", +"QtQtQtQt.#.A.K.p.k.Q.O.n.a.#QtQtQtQtQt.#.U.B.c.B.r.m.X.N.j.#QtQt", +"QtQtQtQtQt.R.k.l.L.w.u.R.#QtQtQtQtQtQt.#.B.c.G.r.Y.c.v.#.#QtQtQt", +"QtQtQt.#.Z.k.z.x.M.A.e.#QtQtQtQtQtQt.#.0.r.0.w.L.q.A.#QtQtQtQtQt", +"QtQt.#.F.v.j.v.c.0.E.#QtQtQtQtQtQtQt.#.w.0.w.L.X.1.Y.#QtQtQtQtQt", +"QtQt.#.N.j.x.j.L.U.2.#QtQtQtQtQtQt.#.w.0.3.L.X.P.q.m.4.#QtQtQtQt", +"QtQtQt.5.y.y.y.3.H.#QtQtQtQtQtQt.#.3.L.3.I.X.i.W.V.6.V.j.dQtQtQt", +"QtQtQt.d.O.N.S.0.j.#QtQtQtQtQt.#.X.L.X.q.q.i.M.0.c.B.r.A.7QtQtQt", +"QtQt.D.S.f.F.T.w.f.8.#QtQt.#.#.3.I.X.Y.q.i.6.B.l.#.#.#.#QtQtQtQt", +"Qt.#.S.G.U.F.c.G.w.N.8.#.#.P.X.P.q.q.1.m.M.9.U.dQtQtQtQtQtQtQtQt", +"Qt.#.1.w.B.c.G.r.0.Y.L.3.I.X.1.q.i.M.m.W.V.9.V.7QtQtQtQtQtQtQtQt", +"QtQt.#.A.w.G.w.0.3.L.X.P.q.q.1.m.M.V#..9.9.9.4.p.#QtQtQtQtQtQtQt", +"QtQt.#.r.0.3.0.3.I.X.Y.q.i.M.m.W.V.6.G.r.9.4.V.c.#QtQtQtQtQtQtQt", +"Qt.#.q.P.1.L.X.P.X.q.1.m.M.V.W.V.9.i.k.b.5.G.r.k.eQtQtQtQtQtQtQt", +"QtQt##.M.y.F.m.Y.V.M.m.W.Q.9.9.6.4.3.t.R.#.#.t.5.#QtQtQtQtQtQtQt", +"QtQtQt.d.#.q.W.m.3.V.W.9.1.y.9.4.4.0.8.#QtQt.#.#QtQtQtQtQtQtQtQt", +"QtQtQt.#.0.9.Q.F.p.6.9.6.T.5.t.4.4.w.#QtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQt.#.Q.X.p.#.4.4.q.z.d.#.4.w.F.#QtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQt.#.y.#.#.4.4.c.u.#Qt.#.v.h.#QtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.#QtQt.#.U.N.8.#QtQt.#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQt.#.y.e.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQt.#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"}; + +static String[] image20_data = { +"32 32 28 1", +". c None", +"# c #000000", +"w c #292018", +"x c #312420", +"s c #312820", +"u c #312c20", +"y c #392820", +"j c #392c20", +"h c #392c29", +"t c #393029", +"a c #413429", +"b c #413431", +"i c #413829", +"m c #413831", +"n c #4a3831", +"r c #4a3c31", +"d c #524039", +"l c #524431", +"k c #524439", +"c c #5a4439", +"e c #5a4839", +"q c #5a4841", +"z c #624c41", +"o c #625541", +"f c #6a5541", +"p c #6a554a", +"g c #6a594a", +"v c #73594a", +"....................####........", +"..................##abaa#.......", +"................##cdefgbh#......", +"...............#ijkclcaee#......", +"..............#mncefcceg#.......", +".............#iekcopkckn#.......", +".............#qcefppeaq#........", +"............#hkmkcocaem#........", +"............#encnpeiqn#.........", +"............#qamaeaj##..........", +".............#rnqg##............", +".........##...####..............", +"........#nn#....................", +".......#snan#.............##....", +".......#eceph#..........##tj#...", +".......#amkee#........##uhaea#..", +"........#nvg#........#tinmncn#..", +".........###........#hkmasaes#..", +"....................#encninme#..", +"...................#keankmke#...", +"...................#qbnenpne#...", +"..................#wieanxna#....", +"..................#nqiymnmz#....", +"..................#nanisie#.....", +"..................#nnmssz#......", +"..............##...#nqm##.......", +".............#hn#...###.........", +"............#hkes#..............", +"............#enknn#.............", +"............#nkcah#.............", +".............#####..............", +"................................"}; + +static String[] image21_data = { +"32 32 87 2", +"Qt c None", +".# c #000000", +".Z c #18b618", +"#t c #393839", +".j c #414041", +"#g c #4a484a", +".3 c #524c52", +"#q c #525052", +"#u c #525552", +"#. c #5a595a", +".1 c #5a59de", +".T c #5a59e6", +"#c c #5a5d5a", +".P c #5ac25a", +"#k c #626162", +".n c #626562", +".0 c #62c662", +".g c #6a656a", +".f c #6a696a", +".W c #6a6d6a", +".4 c #736d73", +"## c #737173", +".p c #737573", +".U c #7b71ee", +".Y c #7b757b", +"#h c #7b797b", +"#p c #7b7d7b", +".N c #838183", +"#m c #8b898b", +".6 c #8bda8b", +".Q c #948d94", +"#a c #949194", +"#d c #9c959c", +"#n c #9c999c", +"#i c #a49da4", +".c c #a4a1a4", +"#o c #a4a5a4", +".O c #a4e2a4", +".s c #aca5ac", +".o c #acaaac", +"#s c #b4aeb4", +".5 c #b4b2b4", +".F c #b4b6b4", +".X c #bdb6bd", +".z c #bdbabd", +".a c #bdbebd", +".d c #c5bec5", +".t c #c5c2c5", +"#j c #c5c6c5", +".9 c #cdc6cd", +"#f c #cdcacd", +"#e c #cdcecd", +"#r c #d5ced5", +".r c #d5d2d5", +".L c #d5d2ee", +".e c #d5d6d5", +".H c #debec5", +".R c #dec2c5", +"#l c #ded6de", +".2 c #ded6ff", +".y c #dedade", +".8 c #dedede", +".k c #e6dee6", +".u c #e6e2e6", +".x c #e6e6e6", +".M c #e6e6ee", +".V c #e6e6f6", +".7 c #e6f6e6", +".I c #eec6c5", +".q c #eee6ee", +".A c #eeeaee", +".l c #eeeeee", +".G c #eef6ee", +".m c #f6eef6", +".K c #f6eeff", +".h c #f6f2f6", +"#b c #f6f2ff", +".B c #f6f6f6", +".D c #ff7173", +".C c #ff858b", +".S c #ffa1a4", +".w c #ffd2d5", +".J c #ffd6d5", +".v c #ffe6ee", +".E c #fff6ff", +".i c #fffaff", +".b c #ffffff", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQt.#.#.#.#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"Qt.#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +".#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +".#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"Qt.#.#QtQtQtQtQtQtQtQtQt.#.#.#.#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQt.#.#QtQtQtQtQtQt.#.#.a.b.b.b.c.#.#QtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQt.#.#.#QtQtQt.#.d.e.f.g.h.i.b.b.d.#.#QtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQt.#.#.#.j.k.l.h.h.m.n.f.b.k.n.f.o.#.#QtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.#.p.i.b.i.i.b.b.b.f.g.m.q.r.a.s.#QtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.#.t.u.f.n.b.b.b.b.f.i.v.w.h.x.u.y.d.#QtQtQtQtQtQtQt", +"QtQtQtQtQt.#.z.A.i.b.b.g.f.B.f.A.b.C.D.i.E.l.A.y.d.#QtQtQtQtQtQt", +"QtQtQtQtQt.#.F.u.A.i.b.i.b.f.h.b.G.H.I.J.i.K.L.M.y.d.#QtQtQtQtQt", +"QtQtQtQtQt.#.N.r.u.A.i.l.f.h.b.O.P.Q.R.S.E.T.U.V.A.y.d.#QtQtQtQt", +"QtQtQtQtQt.#.W.X.e.u.A.Y.x.b.b.O.Z.0.G.b.1.2.i.i.l.x.r.d.#QtQtQt", +"QtQtQtQtQt.#.3.4.5.y.r.p.h.i.b.b.6.7.E.T.2.b.b.b.E.q.8.9.d.#QtQt", +"QtQtQtQtQtQt.##.##.z#a.8.u.m.i.b#b.2.1.2.b.b.b.b.E.m.8.y.a.#QtQt", +"QtQtQtQtQtQt.#.j#c.p#d#e.y.8.m.i.E.T.2.b.b.b.b.b.b.h.q.y#f.a.#Qt", +"QtQtQtQtQtQtQt.##g.n#h#i#j.e.u.m.i.b.b.b.b.b.b.b.b.i.A.k.r.z.#Qt", +"QtQtQtQtQtQtQtQt.##k.Y#a.o#f.y.x.h.E.b.b.b.b.b.b.b.b.h.u#l#j#a.#", +"QtQtQtQtQtQtQtQtQt.#.f#m#n.o#e.k.x.A.h.i.i.b.b.b.b.b.B.A.e.r#o.#", +"QtQtQtQtQtQtQtQtQtQt.##p#d.c.X.t.u.u.A.l.E.i.b.b.b.b.i.l.k.e.N.#", +"QtQtQtQtQtQtQtQtQtQtQt.#.p#d.o.5.a.r.y.q.A.h.B.i.i.b.i.h.x.r#q.#", +"QtQtQtQtQtQtQtQtQtQtQtQt.#.##d.F.t#j#r.8.A.m.B.B.i.i.b.i#s.p#t.#", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#.z#f.r.y.u.h.h.h.h.B.r#a#k#g.#Qt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#.9.u.h.E.m.e.t.o#a#h#u.#QtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#.8.b.B.k#j.5#m.#QtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#.#.#.#.#.#QtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"}; + +static String[] image22_data = { +"38 37 210 2", +"Qt c None", +".W c #000000", +"bo c #000400", +"bp c #080408", +"bn c #080808", +".P c #100c10", +"bh c #101010", +"#L c #101410", +"a3 c #181818", +".H c #181c18", +"aR c #201c10", +"a0 c #201c18", +"aG c #202018", +".G c #202020", +"aF c #292420", +"#K c #292429", +"#k c #292829", +".z c #292c29", +"#j c #312c31", +"#. c #313031", +".X c #393839", +".r c #393c39", +".q c #414041", +"aS c #414439", +"b. c #4a4439", +"a1 c #4a4441", +"aQ c #4a4841", +".n c #4a4c4a", +"#1 c #524831", +".o c #524c52", +"ap c #52504a", +".e c #525552", +"#v c #5a4839", +".c c #5a555a", +".# c #5a595a", +"a2 c #625d5a", +"bm c #62615a", +"bj c #6a6162", +"a8 c #6a6562", +"aZ c #6a6962", +"a9 c #736962", +"be c #73696a", +"aE c #736d6a", +"ah c #73716a", +"aC c #7b7573", +"#G c #7b797b", +"#F c #7b7d7b", +"aT c #837d7b", +".v c #83b26a", +".u c #83b66a", +"as c #8b8983", +".I c #8baa6a", +".B c #8bb273", +"b# c #94898b", +"ag c #948d8b", +"#Z c #949594", +"#g c #94a16a", +"#q c #94a573", +".6 c #94aa73", +"#T c #9c996a", +"#7 c #9c9973", +"ab c #9c999c", +"#U c #9c9d73", +"aO c #9ca173", +"#A c #9ca17b", +"#z c #9ca57b", +".5 c #9cae7b", +"a7 c #a4896a", +"aM c #a49973", +"aH c #a4a19c", +".g c #a4a1a4", +"#P c #a4aa83", +"#H c #a4ae7b", +"#d c #a4ae83", +"#c c #a4b28b", +"aL c #ac9d83", +"aP c #aca1a4", +"bd c #aca5a4", +"aq c #acaaa4", +"#D c #acae8b", +"#X c #acb27b", +".S c #acbe94", +".Z c #acbe9c", +"az c #b4aa8b", +"aD c #b4aeac", +"ae c #b4b2ac", +"#0 c #b4ba83", +"#m c #b4ba9c", +".V c #b4c29c", +".T c #b4c6a4", +"ba c #bd9d7b", +"al c #bdb69c", +"#2 c #bdba8b", +"am c #bdbaa4", +"ad c #bdbab4", +"ac c #bdbabd", +"#x c #bdbea4", +"#J c #bdc68b", +"#a c #bdc6ac", +".M c #bdcaac", +"bk c #c5a17b", +"aU c #c5a57b", +"aW c #c5ae83", +"at c #c5b283", +"aI c #c5b68b", +"ai c #c5ba8b", +"ax c #c5baa4", +"#W c #c5c2ac", +"af c #c5c2bd", +"#w c #c5c6ac", +".h c #c5c6c5", +".3 c #c5cab4", +".t c #c5f6b4", +".l c #c5fabd", +".i c #c5ffbd", +".j c #c5ffc5", +"bi c #cda57b", +"bg c #cda583", +"a4 c #cdaa83", +"a. c #cdc6b4", +"ar c #cdc6c5", +".m c #cdc6cd", +"#Y c #cdcecd", +"#t c #cdd6bd", +"#h c #cddeac", +".8 c #cde6ac", +".9 c #cdeaac", +".J c #cdeeb4", +".A c #cdf2b4", +".w c #cdf6bd", +".p c #cdfabd", +"#S c #d5daa4", +"#B c #d5deac", +"#p c #d5e2ac", +"#i c #d5e2bd", +"#e c #d5e6b4", +".7 c #d5eab4", +".Y c #d5eabd", +".Q c #d5eeb4", +".R c #d5eebd", +".C c #d5f2c5", +".x c #d5f6cd", +"bf c #deba94", +"av c #ded2a4", +"aj c #ded6a4", +"ak c #ded6ac", +"#8 c #dedaa4", +"#5 c #dedaac", +"#R c #dedeac", +"#Q c #dedeb4", +"#s c #dedec5", +".d c #dedede", +"#C c #dee2ac", +"#O c #dee2bd", +"#o c #dee6b4", +"#y c #dee6bd", +"#f c #deeab4", +"#n c #deeabd", +".4 c #deeec5", +".K c #def2c5", +".L c #def2cd", +".O c #def6cd", +".D c #def6d5", +".y c #defad5", +"bc c #e6c294", +"a6 c #e6c69c", +"a5 c #e6ca9c", +"aV c #e6cea4", +"aY c #e6d2a4", +"aN c #e6d2ac", +"au c #e6d6a4", +"aB c #e6d6b4", +"aA c #e6dab4", +"ao c #e6dabd", +"#6 c #e6deac", +"#4 c #e6deb4", +".b c #e6dee6", +"#3 c #e6e2bd", +"aa c #e6e2c5", +"#N c #e6e6c5", +"#r c #e6eac5", +"#V c #e6eacd", +"#u c #e6eec5", +"## c #e6eecd", +".0 c #e6f2cd", +".2 c #e6f2d5", +".U c #e6f6d5", +".E c #e6f6de", +".s c #e6fade", +".k c #e6ffde", +".f c #e6ffe6", +"bb c #eec69c", +"bl c #eec6a4", +"aX c #eed6b4", +"aK c #eedebd", +"ay c #eee2c5", +"an c #eee6cd", +"#9 c #eeeacd", +"#E c #eeead5", +"#I c #eeeecd", +"#l c #eeeed5", +"#M c #eeeede", +".1 c #eef2d5", +"#b c #eef2de", +".N c #eef6de", +".F c #eefade", +"aJ c #f6e6d5", +"aw c #f6ead5", +"a# c #f6eed5", +".a c #ffffff", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQt.#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.#.a.b.c.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.#.a.a.a.d.#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.e.f.a.a.g.h.a.b.e.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQt.#.i.j.i.a.a.g.h.a.d.#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQt.#.k.i.l.i.l.i.a.a.g.m.a.b.n.oQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQt.#.p.l.p.l.p.l.p.l.a.a.g.h.a.d.q.rQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQt.c.s.t.u.v.w.t.w.t.w.x.y.a.a.a.a.a.b.z.zQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQt.c.A.B.A.w.v.B.C.y.D.s.E.F.E.a.a.a.a.a.d.G.HQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQt.o.E.A.I.A.J.K.L.M.M.N.E.E.L.O.C.C.a.a.a.a.a.b.P.PQtQtQtQtQtQtQtQtQtQt", +"QtQtQt.q.Q.I.R.S.T.U.N.E.N.T.V.K.K.R.R.Q.R.J.a.a.a.a.a.d.W.WQtQtQtQtQtQtQtQt", +"QtQt.X.N.Y.Z.0.1.2.3.M.2.4.4.Y.5.6.7.8.7.9.7.R.0.a.a.a.a.a.b.zQtQtQtQtQtQtQt", +"QtQt#.###a#a.3#b.1#####c#d#e#f#e#e#g#e#h#i##.1.1#b.1.a.a.a.a#jQtQtQtQtQtQtQt", +"Qt#k#l.1#a#b###m#c#n#o#o#p#q#g#p#p#d#r#s#t#b#l#b###u#n#n.a#vQtQtQtQtQtQtQtQt", +"Qt.H#b#w#x#r#r#y#y#z#A#B#C#p#C#D#x#l#E#F#G#H#I#r#r#o#o#C#J#KQtQtQtQtQtQtQtQt", +"#L#M#N#N#O#P#A#Q#R#R#S#T#U#N#V#l#W#l#X#Y.g#Z#F#0#R#Q#B#R#1QtQtQtQtQtQtQtQtQt", +".P#2#3#4#4#5#6#T#7#8#3#N#9#Wa.#wa#aaabacadaeafagah#8#5#2.GQtQtQtQtQtQtQtQtQt", +"Qt#.#1aiajakajajajalam#E#E#Eanalao#Xaeaeahapaqaras#Haj#vQtQtQtQtQtQtQtQtQtQt", +"QtQtQt#.#vatauavaw#Eaw#WaxayazaAaBaCaDaEaFaGaEaHaEavaI.HQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQt#j#1atanaJayaKaAaLaMaNaOaPasaQaRaQaSaTaUaV#1QtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt#K#vaWaXaNaNaVaYaVaZasaga0aQa1aqa2aVaWa3QtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQt.G#1a4a5a5a6a7a8a1a8a9b.b#aTbaa6#vQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQt.H#vaUbbbc#va1bdbdbebda2bfbgbhQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQta3#1bia6a6#1a1a1bjbka6#1QtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#L#vaUbla6#vbma6aU.PQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbh#1bga6a6a6#vQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbn#vaUbgboQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbp.WQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"}; + +static String[] image23_data = { +"32 32 83 2", +"Qt c None", +".# c #000000", +"#q c #000400", +"#f c #101010", +"#e c #101410", +".2 c #313031", +".0 c #313431", +"#j c #31aa00", +".1 c #393439", +".3 c #393839", +".6 c #393c39", +".7 c #413c41", +".4 c #414041", +"#a c #418120", +"#d c #418520", +".5 c #4a444a", +".8 c #4a484a", +".Y c #4a4c4a", +"#m c #4a8520", +".V c #524c52", +".X c #525052", +"#c c #52ba29", +"#g c #52be29", +".Q c #5a595a", +".U c #5a5d5a", +"#l c #5abe31", +".P c #625d62", +".S c #626562", +".W c #6a656a", +".T c #6a696a", +".R c #6a6d6a", +".Z c #737173", +".M c #7b757b", +".E c #7b7d7b", +".D c #838583", +"## c #83c25a", +"#n c #83da5a", +".j c #8b898b", +"#p c #8bde5a", +"#o c #8bde62", +".w c #948d94", +".m c #949194", +".H c #9c0000", +".p c #9c959c", +".9 c #9c999c", +"#. c #9c9d9c", +".z c #a40408", +".y c #a40c10", +".t c #a41410", +".G c #a49da4", +".F c #a4a1a4", +".x c #a4a5a4", +".s c #ac2020", +".o c #ac2829", +".n c #ac2c29", +".l c #ac2c31", +".f c #ac3031", +".O c #aca5ac", +".J c #acaaac", +".q c #acaeac", +".g c #b43031", +".k c #b43439", +".r c #b4aeb4", +".v c #b4b2b4", +".C c #b4b6b4", +".L c #bdb6bd", +"#i c #c5eeac", +"#b c #c5eeb4", +".u c #cdcecd", +"#k c #cdf2b4", +".A c #d5ced5", +".e c #d5d2d5", +".h c #d5d6d5", +".d c #ded6de", +".K c #dedade", +".a c #dedede", +".B c #e6dee6", +".i c #e6e2e6", +"#h c #f6f2f6", +".I c #f6f6f6", +".N c #fff6ff", +".b c #fffaff", +".c c #ffffff", +"QtQtQtQtQtQtQtQtQtQtQt.#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQt.#.a.b.#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQt.#.b.c.b.c.#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQt.#.a.c.b.d.e.c.b.#.#QtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQt.#.c.c.c.f.g.h.d.c.c.#.#QtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQt.#.i.b.c.j.c.c.k.l.d.e.c.b.#.#QtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQt.#.c.c.c.m.c.c.c.c.n.o.e.e.b.c.#.#QtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.#.a.c.c.c.c.p.m.c.q.r.c.s.t.e.u.b.b.#.#QtQtQtQtQt", +"QtQtQtQtQtQtQt.#.c.q.v.c.c.c.c.w.j.c.q.x.c.y.z.u.A.b.b.#.#QtQtQt", +"QtQtQtQtQtQt.#.B.b.r.h.C.C.c.c.c.c.D.E.c.F.G.b.H.H.A.u.b.I.#.#Qt", +"QtQtQtQtQt.#.B.b.J.h.v.K.L.C.c.c.c.c.c.M.M.b.c.b.b.H.b.N.b.I.#Qt", +"QtQtQtQt.#.a.b.O.e.c.c.K.q.c.c.P.Q.c.c.c.b.R.S.b.b.T.N.b.I.#QtQt", +"QtQtQt.#.B.b.F.F.d.e.d.h.r.c.U.c.c.V.c.c.c.b.c.W.T.b.b.N.B.#.#Qt", +"QtQtQt.#.N.b.b.b.F.O.x.h.c.c.c.X.Y.c.b.Z.b.b.b.b.N.b.I.b.#.c.u.#", +"QtQt.#.K.b.0.1.b.c.b.O.c.c.Y.V.c.c.c.Z.b.c.0.1.b.b.b.b.K.#.u.#Qt", +"QtQt.#.b.2.b.b.1.3.b.b.c.4.c.b.5.b.c.T.b.2.b.b.1.2.b.I.#.u.A.#Qt", +"Qt.#.a.N.b.0.1.b.b.1.6.b.c.7.7.b.c.T.c.b.b.0.1.b.b.N.a.#.A.8.c.#", +"Qt.#.I.0.2.b.I.0.2.b.b.1.0.b.b.b.b.T.b.0.2.b.I.0.I.b.#.A.u.8.c.#", +".#.u.b.N.b.0.1.b.b.0.1.b.b.0.1.b.T.b.b.b.b.0.1.N.b.K.#.u.Y.c.#Qt", +".#.A.I.1.2.b.I.1.2.b.N.1.2.b.b.b.S.b.N.1.2.b.I.b.K.#.u.c.8.9.#Qt", +".#.9.A.I.b.0.1.N.b.0.1.b.b.0.b.W.b.b.1.b.b.0.b.I.#.c.A.X.c.#QtQt", +".#.9.9.A.u.N.I.0.2.b.I.0.2.b.I.T.N.b.I.0.2.N.I.K.#.#.#.#.#.#.#Qt", +"Qt.#.#.9#..u.A.N.b.0.1.N.b.N.T.N.b.0.1.N.b.I.b.#.#.c###a.#.9.G.#", +"QtQtQt.#.#.9.9.A.u.N.I.1.I.N.S.N.2.N.I.1.2.N.K.#.##b#c#d.#.9.u.#", +"QtQtQtQtQt.#.#.9.G.u.A.I.b.W.b.I.b.0.1.I.N.#.##e#f#b#g#a.#.#.#.#", +"QtQtQtQtQtQtQt.#.#.9.9.A.u.N.I.0.2.N.I.N#h.#.c#i#i.c#c#j.c#b#j.#", +"QtQtQtQtQtQtQtQtQt.#.#.9#..u.A.I.N.0.1.I.a.##k#c#g#c#l#c#g#c#m.#", +"QtQtQtQtQtQtQtQtQtQtQt.#.#.9.9.A.u.I#h.I.#.##n#o#n#c#c#c#n#p#a.#", +"QtQtQtQtQtQtQtQtQtQtQtQtQt.#.#.9.G.u.A#h.#.##q#q.##b#g#a.#.#.#.#", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#.9.9.A.#.9.u.8.##b#c#d.#QtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#.9#..#.G.u.##c#o#a.#QtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#.#.#.#.#.#.#.#.#QtQtQt"}; + +static String[] image24_data = { +"32 32 147 2", +"Qt c None", +".# c #000000", +".a c #000400", +".b c #080408", +"#0 c #083808", +"aa c #102008", +"#q c #102400", +"af c #102408", +"ad c #102410", +"#B c #102808", +"ae c #182810", +"ag c #182c10", +"ai c #183410", +"#p c #184408", +"ab c #184808", +"#i c #186508", +"ah c #203410", +"#v c #203c10", +"aj c #203c18", +"al c #204010", +"#o c #204408", +"ak c #204410", +"an c #204418", +"#W c #205d08", +"ac c #206910", +"#j c #207110", +"#V c #208910", +"am c #294818", +"ap c #294c18", +"aq c #294c20", +"#I c #296108", +".R c #296908", +".6 c #296910", +"#r c #296d10", +"#c c #297110", +".i c #297508", +".J c #297510", +".o c #297910", +"#P c #299518", +"ao c #314c20", +"#C c #316d10", +".7 c #317910", +"#Q c #317d10", +"#n c #319510", +"#b c #319518", +"#N c #31aa10", +"#d c #397920", +"#1 c #397d20", +"#A c #399518", +".G c #39a118", +"#y c #39aa18", +"#g c #417d18", +"#E c #418d29", +".F c #41a118", +"#J c #41a510", +".E c #41a520", +".9 c #41aa18", +".U c #41aa29", +"#m c #41b610", +"#e c #4a7d29", +".5 c #4a8120", +"#R c #4a8929", +"#X c #4a8931", +"#D c #4a9129", +"#K c #4a9131", +"#s c #4a9d20", +".D c #4aa518", +".H c #4aaa29", +".L c #4aae29", +"#. c #4ab618", +"#O c #4ab620", +".V c #4aba18", +".P c #4aba20", +"#5 c #4aba29", +".n c #527d41", +"#f c #529129", +".3 c #52a529", +".M c #52aa20", +".Q c #52aa29", +".N c #52b239", +".8 c #52b618", +".2 c #52b629", +"#4 c #52ba29", +".O c #52be29", +".z c #5a7d41", +".h c #5a814a", +".4 c #5a854a", +"#Z c #5ac231", +".W c #5aca31", +".c c #62814a", +".1 c #62be39", +".0 c #62ca31", +"## c #62ce31", +".Z c #62ce39", +"#x c #6abe5a", +".Y c #6ad639", +"#t c #73ae52", +"#9 c #73ce39", +"#U c #73d241", +"#a c #73d641", +".X c #73da41", +".v c #7bbe52", +".T c #7bbe62", +".w c #7bc25a", +"#z c #7bd64a", +"#6 c #7bd652", +".u c #83c25a", +"#H c #83ca62", +"a. c #83d64a", +"#7 c #8bbe73", +"#M c #8bc273", +"#8 c #8bca6a", +"#G c #8bce73", +"a# c #8bde5a", +"#F c #94c67b", +"#l c #94c68b", +".t c #94d66a", +"#T c #9cce83", +".K c #a4ca8b", +".S c #a4ce94", +"#3 c #a4da94", +".I c #acc294", +".y c #acc694", +".m c #acc69c", +"#u c #acd294", +"#Y c #acde94", +".g c #b4d69c", +"#w c #b4e2a4", +".C c #bde2a4", +".s c #bde6a4", +".x c #bde6ac", +".f c #cde2c5", +".d c #d5e2c5", +"#2 c #d5e6c5", +".q c #d5e6cd", +"#h c #dee6d5", +"#k c #deeede", +".l c #e6eede", +".k c #e6eee6", +".B c #e6f2de", +".r c #eeeee6", +".e c #eef2e6", +"#L c #eef6ee", +"#S c #f6f6ee", +".p c #f6faf6", +".j c #fffaff", +".A c #ffffff", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.a.#.a.#.aQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQt.b.#.c.d.e.f.g.h.b.#.bQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQt.#.a.i.j.k.e.l.e.k.e.f.m.n.a.#QtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQt.b.#.o.p.q.r.s.t.u.v.w.t.x.r.e.y.z.#QtQtQtQt", +"Qt.aQtQtQtQtQtQtQt.a.i.A.B.C.t.w.D.E.F.E.G.E.H.w.C.e.I.h.#QtQtQt", +"Qt.#.bQtQtQtQtQt.b.J.A.B.K.v.L.F.M.N.O.P.O.N.Q.L.u.C.e.y.bQtQtQt", +"Qt.a.R.aQtQtQt.a.i.A.B.S.T.E.U.V.W.X.Y.X.Z.0.1.2.3.w.C.e.4.aQtQt", +"Qt.#.5.6.bQt.b.7.A.B.S.8.9#.###a#b#c.J#c.J#c#d#e#f.2.u.t.e.#QtQt", +"Qt.a#g#h#i.a#j.p#k#l#m.9.W#a#n#o#p.a.#.a.#.a#q#o#p#r#s#t#u#vQtQt", +"Qt.#.5.q.k.n.k#w#x#.#y#z#A#p#o.#.bQtQtQtQtQt.b.##B#p#C#D.u.r.bQt", +"Qt.a#E.k#F#G#H#H#m#y#z#n#p.a.#QtQtQtQtQtQtQtQtQt.##B#p#I#J.g.#Qt", +"Qt.##K#L#M#.#y#N#O#z#P#p.bQtQtQtQtQtQtQtQtQtQtQtQt.##B#p#Q.v.bQt", +"Qt.a#R#S#T#O#N#O#U#V#p.aQtQtQtQtQtQtQtQtQtQtQtQtQt.a#q#B#W#J.#Qt", +"Qt.##X#L#Y#O#y#Z###0.bQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.b#B#o#I.bQt", +"Qt.a#1#2#3#4#O#5#O#6#i.aQtQtQtQtQtQtQtQtQtQtQtQtQtQt.##B#q#o.#Qt", +"Qt.#.6#7#8#Z#9a.a##Za..6.bQtQtQtQtQtQtQtQtQtQtQtQtQt.#aa#B.#QtQt", +"Qt.aabac#iac#iac#iac#i.5.R.aQtQtQtQtQtQtQtQtQtQtQt.#adaeaf.#QtQt", +"Qt.#.b.#.b.#.b.#.b.#.b.#.b.#.bQtQtQtQtQtQtQtQtQtQt.#agae.#QtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#ahaiah.#QtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.##v#vaj.#QtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#akalak.#QtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#amanam.#QtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#aoap.#.#QtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#aq.#.#.#QtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#.#.#.#QtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"}; + +static String[] image25_data = { +"32 32 41 1", +". c None", +"# c #000000", +"L c #313031", +"M c #313431", +"K c #414041", +"J c #4a4c4a", +"H c #524c52", +"D c #5a595a", +"I c #736d73", +"G c #737173", +"z c #838183", +"y c #a4a1a4", +"A c #c5be00", +"E c #c5c6c5", +"s c #cdc629", +"q c #cdc631", +"C c #cdc6cd", +"j c #cdca18", +"t c #cdca31", +"k c #cdca39", +"x c #d5ce18", +"c c #d5d208", +"F c #dedade", +"B c #dedede", +"a c #ffff00", +"e c #ffff08", +"h c #ffff18", +"b c #ffff29", +"i c #ffff41", +"n c #ffff4a", +"w c #ffff52", +"d c #ffff5a", +"f c #ffff7b", +"g c #ffff83", +"l c #ffffa4", +"u c #ffffac", +"m c #ffffb4", +"o c #ffffc5", +"p c #ffffd5", +"v c #ffffde", +"r c #ffffff", +"........................#.......", +".......................#a#......", +".......................#a#......", +".......................#b#......", +"..................##..#cdc#..##.", +".................#ae###fgf###ea#", +"..................#hijklmlkjih#.", +"...................#nflopolfn#..", +"....................#qmprpms#...", +"....................#tuvrvut#...", +"...................#wflovolfw#..", +"..................#eixqlulqxie#.", +".................#aa###wdw###aa#", +"................#r##yz#AbA#..##.", +"...............#rBCyzD##a#......", +"..............#rBEyzD#.#a#......", +".............#rBCyzD#..#a#......", +"............#rBEyzD#....#.......", +"...........#rBCyzD#.............", +"..........#FzEyzD#..............", +".........#FzGHzD#...............", +"........#FzIJKL#................", +".......#FzGHKM#.................", +"......#FzIJKL#..................", +".....#FzGHKM#...................", +"....#FzIJKL#....................", +"...#FzGHKM#.....................", +"..#FzIJKL#......................", +".#FzGHKM#.......................", +"#FzIJKL#........................", +"FzGHKM#.........................", +"zIJKL#.........................."}; + +static String[] image26_data = { +"34 34 196 2", +"Qt c None", +".# c #000000", +".a c #000400", +"#t c #002431", +"#Y c #002839", +"#2 c #00507b", +"aV c #080400", +".f c #080408", +"aR c #080808", +"#u c #082839", +"#F c #083041", +"#K c #08304a", +"#J c #083452", +"#h c #083852", +".K c #083c52", +".L c #083c5a", +".J c #08405a", +"ah c #08486a", +"ay c #085073", +"#3 c #086194", +"#l c #0899c5", +"#z c #0899cd", +"#a c #089dcd", +"a8 c #100c08", +".V c #10405a", +"au c #10486a", +"aC c #10507b", +"#M c #10659c", +"#4 c #10699c", +"#N c #1071ac", +"#P c #1081b4", +"## c #10a1cd", +".b c #181818", +"ai c #185983", +"#O c #1879b4", +"#w c #1885b4", +"#x c #1885bd", +"#y c #1891bd", +".h c #201808", +".t c #201810", +"b# c #201c10", +"aj c #20618b", +"ak c #20658b", +"#A c #2081a4", +"#S c #2085ac", +"ba c #292010", +"#Z c #29556a", +"#5 c #29658b", +"av c #296d94", +"al c #29759c", +"a. c #2989b4", +"an c #298dac", +"#T c #298db4", +"#B c #2991b4", +"aL c #313031", +".B c #315d73", +"#Q c #31719c", +"#8 c #31759c", +"#6 c #3175a4", +"#7 c #3179a4", +"am c #317dac", +"#R c #3181a4", +"#9 c #3181ac", +"#b c #31aad5", +"#E c #397594", +".Z c #39aed5", +"aH c #413c41", +"#m c #4191ac", +"#C c #4191b4", +".0 c #41aed5", +"#c c #41b2de", +"#U c #4a9dbd", +"a# c #4aa1c5", +"bb c #523c20", +"#n c #52a1bd", +"#o c #52a5c5", +"aQ c #6285a4", +"a6 c #6a656a", +".w c #6a696a", +".s c #6a6d6a", +".1 c #6ac2de", +"a1 c #736d6a", +"#r c #737173", +"a5 c #737573", +"aK c #7395ac", +"#d c #73aabd", +"a7 c #7b757b", +"#i c #7b797b", +"#G c #7b7d7b", +"#D c #7bb6cd", +"ao c #7bbacd", +"a9 c #837d7b", +"a2 c #837d83", +".C c #838183", +"aM c #838583", +".2 c #83cade", +".S c #83cae6", +".R c #83cee6", +"a3 c #8b8583", +"#j c #8b858b", +"#s c #8b898b", +".8 c #8b8d8b", +"#q c #8bc2d5", +".v c #948d94", +".x c #949194", +"#. c #949594", +"ag c #94aabd", +".3 c #94becd", +"#f c #94c2d5", +"#p c #94c6d5", +"#e c #94c6de", +".G c #94d6e6", +".F c #94d6ee", +".D c #9c959c", +"aW c #9c9994", +".7 c #9c999c", +".9 c #9c9d9c", +"aG c #9cb2c5", +"#0 c #9cc2cd", +".H c #9cd6ee", +"aS c #a49d9c", +".X c #a49da4", +".p c #a4a1a4", +".u c #a4a5a4", +"#V c #a4cade", +".4 c #a4cede", +"ac c #a4cee6", +"#g c #a4d2de", +"b. c #aca5a4", +".r c #aca5ac", +".W c #acaaac", +"aq c #acaeac", +".E c #b4aeac", +".k c #b4b2b4", +".m c #b4b6b4", +".6 c #b4ced5", +"a0 c #bdb6b4", +"ae c #bdb6bd", +"aY c #bdbab4", +".Q c #bdbabd", +".O c #bdbebd", +"az c #bdcad5", +"aa c #bdd2e6", +".T c #bdd6de", +".5 c #bddaee", +"aP c #c5bebd", +".Y c #c5bec5", +".N c #c5c2c5", +".g c #c5c6c5", +"#H c #c5c6cd", +"aD c #c5d2de", +"#W c #c5daee", +"#1 c #c5deee", +".I c #c5eaf6", +".y c #c5eaff", +"aT c #cdc2c5", +"#L c #cdc6cd", +"aX c #cdcac5", +"#v c #cdcacd", +"aO c #cdcecd", +"#I c #cdd6de", +"aJ c #d5cecd", +"#k c #d5ced5", +".P c #d5d2d5", +"a4 c #d5d6d5", +"aw c #d5deee", +"aF c #ded6d5", +"aI c #ded6de", +"aE c #dedad5", +".M c #dedade", +"aZ c #dedede", +"#X c #dee2e6", +"ab c #dee2ee", +"aN c #e6dade", +"aB c #e6dede", +"aU c #e6dee6", +".q c #e6e2e6", +".n c #e6e6e6", +"ap c #e6e6ee", +".A c #e6f2f6", +"ar c #eee6e6", +".o c #eee6ee", +"ax c #eeeae6", +".i c #eeeaee", +".j c #eeeeee", +"ad c #eeeef6", +".U c #eef2f6", +".z c #eef2ff", +"aA c #f6eeee", +".l c #f6eef6", +"at c #f6f2f6", +".d c #f6f6f6", +"af c #fff6f6", +"as c #fff6ff", +".c c #fffaff", +".e c #ffffff", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#QtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQt.#.a.#QtQtQtQtQtQtQtQtQtQtQtQt.#.#QtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.b.c.d.e.#.f.#QtQtQtQtQtQtQtQt.#.g.#QtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.h.i.i.j.c.d.e.#.a.#QtQtQtQt.#.g.k.#QtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.#.i.i.i.i.i.l.c.d.e.#.f.#.#.g.m.k.#.eQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQt.#.i.i.i.i.i.i.n.o.j.c.d.#.g.k.p.k.#.#.#.a.#.#QtQtQtQt", +"QtQtQtQtQtQtQt.#.i.i.i.i.i.n.i.n.o.q.#.g.m.p.r.k.m.k.r.s.#.#QtQtQtQt", +"Qt.#.#.#QtQtQt.t.i.i.o.i.n.o.n.o.q.#.g.k.p.u.p.u.p.v.w.#.x.x.#QtQtQt", +".#.y.z.A.#.#.#.B.i.i.i.o.i.n.o.q.#.g.m.p.r.p.r.p.v.s.#.C.D.E.aQtQtQt", +".#.F.G.H.I.z.A.J.K.L.n.o.n.o.M.#.N.k.p.u.p.u.p.v.w.#.C.D.O.P.Q.aQtQt", +"Qt.#.R.S.F.H.H.T.z.U.V.L.B.#.#.m.W.X.r.p.r.p.v.s.#.s.D.Y.P.P.Y.#QtQt", +"Qt.#.Z.0.1.S.2.3.4.5.6.z.A.L.7.D.8.7.9.p.p.v.w.#.C#..O.P.P.P.Q.aQtQt", +"Qt.####a#b.Z#c#d#e#f.3#g.5.U#h#i#j.x.9.p.v.s.#.C.D.Y.P.P.P#k.Q.#QtQt", +"QtQt.##l#a###a#m#n#o#d#p#q.5.K#r#i#j.x#s#t#u#s.x.m#v#v#v#v#k.m.aQtQt", +"QtQt.##w#x#y#z#A#B#B#C#o#o#D#E#h#F#G#i#t#H#I#J#K.Q.O.N.g#L#v.Q.#QtQt", +"QtQt.##M#N#O#P#Q#R#S#A#B#T#U#V#W#X#h#Y#Z#0.5#1.U.K.O.Q.O.O#v.m.aQtQt", +"QtQtQt.##2#3#4#5#6#7#8#9a.#T#B#Ba##Vaaab#f#facad.V.k.k.kae#Lae.#QtQt", +"QtQtQt.#.qafagahaiajak#8alam#R#San#B#T#U#n#oao#pap.L.Waqaq.N.k.aQtQt", +"QtQtQt.#arafasatatagauaiajav#6#7am#9a.#T#B#Ba##oaw.L.r.u.W.Q.k.#QtQt", +"QtQtQtQt.#.natat.j.jax.oagayaiajav#8alam#R#San#Baz.J.9.p.p.m.W.aQtQt", +"QtQtQtQt.#.qat.iaA.i.i.naraBaBagaCaiajav#6#7am#9a.aD.J.7.Xaq.W.#QtQt", +"QtQtQtQt.#arax.i.nar.q.qaBaBaEaF.P.Pagayaiajav#8alaG.K.D#..u.u.#QtQt", +"QtQtQtQtQtaHar.qar.q.qaBaB.MaI.PaFaJ#k#v#vagaCaiajaK.V.x.x.D.X.#QtQt", +"QtQtQtQtQtaLaM.N.P.MaEaNaFaF.P.PaOaO#v#v.N.NaPaPagayaQ.##s.x#..aQtQt", +"QtQtQtQtQtQt.f.aaRaS#v.PaF.P.PaJaJ#v#v.gaTaPaP.QaU#s#r.##s#s.x.#QtQt", +"QtQtQtQtQtQtQtQtQtaV.aaVaW.YaX#v.g#v.N.NaPaPaYaZ#s.k.s.#.CaM.C.aQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQt.f.aaR.x.Q.N.NaPaP.QaU#sa0aF#ja1.#a2a2aVQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtaV.aaV#s.kaY.Ma3.ka4a3.W#r.#a2a5aRQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.f.aaRa6.W.Ma3.WaIa1.##ia7a8QtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtaV.aaVa9.Pa9b.a1.#.sb#QtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.f.aaR#i#r.##rbaQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtaV.aaVbbQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"}; + +static String[] image27_data = { +"16 16 37 1", +". c None", +"j c #000000", +"a c #292829", +"b c #292c29", +"# c #312c31", +"B c #313031", +"g c #393839", +"e c #4a484a", +"f c #525552", +"G c #6a6d6a", +"D c #737173", +"u c #737573", +"H c #838183", +"E c #838583", +"p c #8b858b", +"A c #8b898b", +"v c #8b8d8b", +"x c #949194", +"w c #949594", +"s c #9c959c", +"y c #9c9d9c", +"o c #a4a1a4", +"q c #a4a5a4", +"r c #aca5ac", +"h c #acaaac", +"k c #acaeac", +"t c #b4aeb4", +"n c #b4b2b4", +"i c #b4b6b4", +"d c #bdb6bd", +"c c #bdbabd", +"m c #bdbebd", +"F c #c5c200", +"l c #cdc6cd", +"C c #ffff00", +"z c #ffffc5", +"I c #ffffff", +"....#...........", +"....ab..........", +"....#c#.........", +"....acdb........", +"eeefgchi#.......", +".jklmnoonb......", +"..jphqrsot#.....", +"...juvwwxyjz....", +"....juAjzvBC#jz.", +".....jDEjCFCFC..", +"......jGHFzzzF#.", +"......jzCCzIzCCz", +"........jFzzzFj.", +"........jCFCFC..", +".......jz.jCjjz.", +"..........jz...."}; + +static String[] image28_data = { +"16 16 90 2", +"Qt c None", +".7 c #181810", +".w c #200c00", +".K c #201000", +".D c #291008", +".W c #312c20", +".R c #313031", +".X c #4a444a", +".2 c #523c31", +".Q c #5a4831", +".8 c #5a5052", +".# c #5a595a", +"#d c #73695a", +".V c #835539", +".P c #8b5531", +".0 c #94796a", +".9 c #9c9d94", +".C c #a44800", +".J c #a44808", +".s c #a44c00", +".1 c #a47152", +".6 c #a49583", +"#e c #a4958b", +".3 c #b4b2b4", +"#p c #bda17b", +"#b c #bda583", +".Y c #bdaa94", +"#f c #bdb6a4", +".U c #c57d5a", +"#x c #c5a17b", +"#j c #c5a583", +"#w c #c5aa83", +"#v c #c5aa8b", +".4 c #c5aa94", +"#u c #c5b294", +"#t c #c5b69c", +"#r c #c5beac", +".e c #cd7d41", +".O c #cd7d62", +".a c #cd8141", +"#s c #cdbaac", +"#. c #cdc2bd", +"#q c #cdc6bd", +".I c #d56529", +".H c #d57141", +".j c #d5ced5", +".u c #de9162", +".Z c #ded2c5", +"## c #ded6d5", +".d c #dedede", +"#c c #e6cab4", +"#n c #e6d2b4", +".m c #e6d6cd", +".h c #e6dee6", +".c c #e6e2e6", +".r c #ee7908", +".S c #eeb694", +"#o c #eeceac", +"#i c #eed2b4", +"#a c #eedabd", +"#h c #eedac5", +".p c #eedacd", +".t c #eedad5", +".L c #eee2de", +".o c #f67d08", +".A c #f69562", +".G c #f6b694", +".E c #f6ba9c", +".M c #f6d2b4", +"#g c #f6e2cd", +"#m c #f6e6d5", +"#l c #f6eade", +"#k c #f6eee6", +".x c #f6eef6", +".B c #ff8108", +".v c #ff8508", +".l c #ff8900", +".k c #ff8910", +".g c #ff9110", +".f c #ffc68b", +".n c #ffca8b", +".q c #ffca94", +".T c #ffcab4", +".b c #ffce8b", +".N c #ffd6bd", +".y c #ffdac5", +".z c #ffe2cd", +".F c #ffe6cd", +".5 c #fff6f6", +".i c #ffffff", +"QtQt.#.#.#.#.#.#.#.#.#.#.#.#.a.b", +"QtQt.#.c.d.c.d.c.d.c.d.cQt.e.f.g", +"QtQt.#.h.i.i.i.h.i.i.i.j.e.f.k.l", +"QtQt.#.c.i.i.i.c.i.i.m.e.n.k.l.o", +"QtQt.#.h.c.h.c.h.i.p.e.q.k.l.r.s", +"QtQt.#.c.i.i.i.c.t.u.f.v.l.r.s.w", +"QtQt.#.h.i.i.i.x.y.z.A.B.r.C.DQt", +"QtQt.#.c.d.c.d.E.F.G.H.I.J.KQtQt", +"QtQt.#.h.i.i.L.M.N.O.P.Q.D.RQtQt", +"QtQt.#.c.i.i.S.T.U.V.W.X.Y.RQtQt", +"QtQt.#.h.c.Z.0.1.2.#.3.3.4.RQtQt", +"QtQt.#.c.5.6.7.8.9#.###a#b.RQtQt", +"QtQt.#.h#c#d#e#f#g#h#a#i#j.RQtQt", +"QtQt.#.c#k#l#m#g#h#a#n#o#p.RQtQt", +"QtQt.##.#q#r#s#t#u#v#w#x#x.RQtQt", +"QtQt.#.R.R.R.R.R.R.R.R.R.R.RQtQt"}; + +static String[] image29_data = { +"16 16 9 1", +". c None", +"# c #000000", +"b c #008100", +"d c #00c200", +"f c #830000", +"g c #838100", +"c c #c50000", +"a c #c5ffc5", +"e c #ff0000", +"................", +"........##......", +".......#ab#.....", +"......#cdbb#....", +".....#ecbbb#....", +"....#ebdcbbb#...", +"...eccbdbcdbb#..", +"..ecbdcdddbbb#..", +".ccbdaacbbdbbb#.", +".cfbgddacdbdbba#", +".ccf#dddaaddbab#", +".ec#.##dddadab#.", +".ec#...#dddab#..", +".ec#....##ab#...", +"..e#......##....", +"..e............."}; + +static String[] image30_data = { +"22 22 14 1", +". c None", +"# c #000000", +"k c #313031", +"d c #830000", +"j c #838183", +"h c #acaaac", +"i c #acaeac", +"g c #b4aeb4", +"b c #cd0000", +"f c #cdcacd", +"c c #d50000", +"l c #ff0000", +"a c #ff8183", +"e c #ffffff", +"...................##.", +"..................#ab#", +".................#abc#", +"................#abcd#", +"...####........#abcd#.", +"..#eeee#......#abcd#..", +"..#effg#.....#abcd#...", +"..#effh#....#abcd#....", +"..#effg#...#abcd#.....", +"..#effh#..#abcd#......", +"..#efhg#.#abcd#.......", +"..#ehihj#fbcd#........", +"...#ehjk#fgd#.........", +"...#eij#fijj#..ddddd..", +"....#j#fghj#..dd###d#.", +"...#effihj#dddd#...d#.", +"..#effghj#.####....d#.", +".#effihj#.........d#..", +".#ffghj#.........d#...", +".efihj#.........d#....", +"dljjj#.........d#.....", +"ld.##..........d#....."}; + +static String[] image31_data = { +"22 22 73 2", +"Qt c None", +".b c #000000", +".e c #080008", +".j c #080408", +".l c #083452", +".a c #083c5a", +".V c #0889ac", +"#d c #0891b4", +".T c #0895bd", +".E c #089dc5", +"#e c #103452", +".k c #103852", +".# c #10385a", +".c c #104062", +".0 c #10658b", +"#. c #106994", +"#b c #106d94", +".U c #1089ac", +".N c #1091bd", +".O c #1095bd", +".W c #1099c5", +".P c #109dc5", +".D c #10aecd", +"#f c #10b2d5", +".7 c #10c2de", +".m c #18405a", +"#a c #186994", +"#c c #18719c", +".Z c #18a1c5", +".8 c #18aed5", +".9 c #18c2de", +".6 c #18c6e6", +".R c #204062", +"## c #20759c", +"#g c #20a5cd", +".2 c #20c6de", +".v c #294c62", +".M c #29aed5", +".5 c #29c6de", +".G c #31556a", +".g c #317d9c", +".d c #3181a4", +".J c #41bede", +".3 c #41d2de", +".L c #4ac2de", +".4 c #4adeee", +".Y c #4ae2ee", +".X c #5ac2de", +".F c #5ac6de", +".K c #62c2de", +".t c #62c6e6", +".C c #6abede", +".f c #83bad5", +".I c #83bed5", +".B c #83cae6", +".x c #94cede", +".1 c #94cee6", +".n c #9cc6de", +".h c #9ccade", +".o c #accede", +".s c #acdaee", +".A c #b4deee", +".Q c #bddeee", +".y c #bde2ee", +".r c #c5e2f6", +".w c #cde2ee", +".z c #d5eaf6", +".S c #deeaf6", +".u c #deeef6", +".q c #deeeff", +".H c #e6eeff", +".i c #e6f2ff", +".p c #ffffff", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQt.#QtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQt.a.bQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQt.c.d.eQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQt.a.f.g.bQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQt.c.h.i.d.jQtQtQtQtQtQtQt", +"QtQtQt.k.l.k.l.k.l.m.a.n.o.p.g.bQtQtQtQtQtQt", +"QtQtQt.k.n.q.p.p.p.p.r.s.t.u.p.d.eQtQtQtQtQt", +"QtQtQt.v.w.x.y.z.A.B.C.D.E.F.u.p.g.bQtQtQtQt", +"QtQtQt.G.H.I.J.K.L.D.M.N.O.P.t.Q.i.d.eQtQtQt", +"QtQtQt.R.S.B.T.U.V.O.E.N.T.W.X.Y.Z.0.bQtQtQt", +"QtQtQt.l.S.1.2.3.4.5.6.7.8.9.Y.Z#..bQtQtQtQt", +"QtQtQt.k###a.0#a#b#c#d.W.7.Y.Z.0.bQtQtQtQtQt", +"QtQtQt#e.b.b.e.b.b.b.c#f.Y.Z#..bQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQt.a#g.Z.0.bQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQt.c.d#..bQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQt.a.0.bQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQt.c.bQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQt.aQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"}; + +static String[] image32_data = { +"22 22 9 1", +". c None", +"b c #000000", +"a c #000083", +"g c #830000", +"c c #8381ff", +"f c #c50000", +"# c #c5c2ff", +"d c #ffc2c5", +"e c #ffffff", +"................#ab...", +"...............#ccab..", +"..............#ccccab.", +".............#ccccccab", +"............#cccccccca", +"...........#ccccccccca", +"..........#cccccccccab", +".........#cccccccccab.", +"........#cccccccccab..", +".......deecccccccab...", +"......dffeecccccab....", +".....dffffeecccab.....", +"....dffffffeecab......", +"...dffffffffeab.......", +"..dfffffffffgb........", +".dfffffffffgb.........", +"dddfffffffgb..........", +"ddddfffffgb...........", +".ddddfffgb............", +"..ddddfgb.............", +"...dddgb..............", +"....dgb..............."}; + +static String[] image33_data = { +"22 22 113 2", +"Qt c None", +".H c #000000", +"#p c #000408", +".S c #000410", +".n c #000c18", +".w c #001018", +"#u c #080408", +".3 c #080808", +".6 c #080810", +".1 c #080c18", +".i c #081020", +".G c #081c39", +".d c #08244a", +".x c #082852", +".E c #08345a", +".A c #0879b4", +".X c #0879bd", +".p c #0889cd", +".F c #10345a", +".a c #10386a", +".y c #103c73", +".D c #104473", +".0 c #104c83", +".R c #10508b", +"#l c #105594", +".N c #1075bd", +".C c #1079bd", +".t c #1079c5", +".W c #107dc5", +".Y c #1085c5", +".c c #183862", +".# c #183c73", +".5 c #188dcd", +".B c #18a1d5", +".O c #18a5de", +"#g c #202020", +"#T c #202420", +".b c #203c62", +".r c #207dac", +".v c #207db4", +".Q c #2085c5", +"#U c #292429", +"#A c #292829", +"#S c #292c29", +".s c #293c6a", +".I c #312c31", +".U c #316da4", +".m c #317db4", +"#B c #393839", +"#G c #393c39", +".J c #3971a4", +".q c #41b6de", +".Z c #41bee6", +".u c #41c2e6", +".P c #4ac2ee", +".M c #52a5d5", +"#F c #625d62", +"#h c #626162", +".h c #6295bd", +".k c #62aede", +"#r c #6a656a", +"#C c #737573", +"#I c #7b757b", +"#i c #838183", +"#w c #838583", +"#v c #8b858b", +"#. c #8b898b", +"#E c #948d94", +"#n c #949594", +".l c #94bee6", +"#x c #9c959c", +"## c #9c999c", +"#Q c #9c9d9c", +"#P c #a49da4", +"#z c #a4a1a4", +".e c #a4c2e6", +"#t c #aca5ac", +"#j c #acaaac", +"#R c #acaeac", +".L c #acd2f6", +"#N c #b4aeb4", +"#O c #b4b2b4", +"#L c #b4b6b4", +"#q c #bdb6bd", +"#f c #bdbabd", +"#K c #bdbebd", +"#m c #c5bac5", +"#J c #c5c2c5", +"#M c #c5c6c5", +".z c #c5d6f6", +"#y c #cdc6cd", +"#D c #cdcacd", +"#a c #cdcecd", +".4 c #d5ced5", +".T c #d5d2d5", +"#o c #d5d6d5", +".g c #d5e2f6", +"#b c #ded6de", +".7 c #dedade", +"#d c #dedede", +"#c c #deeaf6", +"#k c #e6dae6", +"#e c #e6dee6", +"#s c #e6e2e6", +".2 c #e6e6e6", +".K c #e6eaff", +".j c #e6eeff", +".9 c #eee6ee", +".8 c #eeeaee", +".f c #eeeeff", +"#H c #f6f2f6", +".o c #f6f2ff", +".V c #ffffff", +"QtQtQtQtQtQtQtQt.#.a.#.b.c.dQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQt.a.e.f.g.h.iQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQt.#.j.k.l.m.nQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQt.a.o.p.q.r.iQtQtQtQtQtQtQtQt", +"QtQtQtQtQtQtQtQt.s.j.t.u.v.wQtQtQtQtQtQtQtQt", +"QtQtQtQt.x.y.a.b.b.z.A.B.C.D.E.F.G.HQtQtQtQt", +"QtQtQtQt.I.x.J.K.L.M.N.C.O.P.Q.R.S.HQtQtQtQt", +"QtQtQtQt.H.T.x.U.V.W.X.Y.Z.Q.0.1.2.HQtQtQtQt", +"QtQtQt.3.4.4.T.x.J.V.5.P.Q.R.6.7.8.9.HQtQtQt", +"QtQtQt.H#.###a#b.x.U#c.Q.0.6#d#e#d#f.HQtQtQt", +"QtQt#g#h#i#j#k.7#e.x#l.R.1.7#e#d.9#f#m.HQtQt", +"QtQt.H#h#n#o.7.7.7#e.x#p.7.7.7.7#d#e#q.HQtQt", +"Qt.H#r#h.4.4#j.T#e#d.T#s#e.T#t#a#b#e#m#f#uQt", +"Qt.H#h#h#v#v#w.7#d.T#x#y.7#b#w#.#a#z#q#f.HQt", +".H#A#B#B#B#C#v#D.T#.#E#x.4#d#v#v#F#B#B#G#B.H", +".H.V#H#H#H#B#w.4#w#v#w#v##.4#w#.#B.V#H#H#H.H", +".H#H.V.V.V#B#v#w#v#v#v#w#v#v#v#w#B.4.4#a#D.H", +".H.9#s#s.7#I#B#B#B#B#B#B#B#B#B#B#C#J#f#K#L.H", +".H.7#b.T.T#D#D#y#D#y#D#y#D#y#D#M#q#N#N#j#j.H", +".H#a#J#J#K#f#L#q#L#q#L#q#L#q#L#O#z#P###Q#n.H", +".H#R#t#z#t#####x###x###x###x###n#E#w#w#i#i.H", +"Qt#S#A#S#A#A#T#A#U#A#T#A#U#A#T#A#T#U#g#T#gQt"}; + +static String[] image34_data = { +"16 16 4 1", +". c None", +"# c #000000", +"b c #9cfa9c", +"a c #9cff9c", +"................", +"................", +"..############..", +"..#ababababab#..", +"..#aaaaaaaaaa#..", +"..#ababababab#..", +"..#aaaaaaaaaa#..", +"..#ababababab#..", +"..#aaaaaaaaaa#..", +"..#ababababab#..", +"..#aaaaaaaaaa#..", +"..#ababababab#..", +"..#aaaaaaaaaa#..", +"..############..", +"................", +"................"}; + +static String[] image35_data = { +"16 16 4 1", +". c None", +"# c #000000", +"b c #00beff", +"a c #00c2ff", +"................", +"................", +"..############..", +"..#ababababab#..", +"..#aaaaaaaaaa#..", +"..#ababababab#..", +"..#aaaaaaaaaa#..", +"..#ababababab#..", +"..#aaaaaaaaaa#..", +"..#ababababab#..", +"..#aaaaaaaaaa#..", +"..#ababababab#..", +"..#aaaaaaaaaa#..", +"..############..", +"................", +"................"}; + +static String[] image36_data = { +"16 16 5 1", +". c None", +"# c #000000", +"b c #4181b4", +"c c #4a81b4", +"a c #4a85bd", +"................", +"................", +"..############..", +"..#ababababab#..", +"..#cacacacaca#..", +"..#ababababab#..", +"..#cacacacaca#..", +"..#ababababab#..", +"..#cacacacaca#..", +"..#ababababab#..", +"..#cacacacaca#..", +"..#ababababab#..", +"..#cacacacaca#..", +"..############..", +"................", +"................"}; + +static String[] image37_data = { +"16 16 4 1", +". c None", +"# c #000000", +"b c #b4e2e6", +"a c #b4e2ee", +"................", +"................", +"..############..", +"..#ababababab#..", +"..#aaaaaaaaaa#..", +"..#ababababab#..", +"..#aaaaaaaaaa#..", +"..#ababababab#..", +"..#aaaaaaaaaa#..", +"..#ababababab#..", +"..#aaaaaaaaaa#..", +"..#ababababab#..", +"..#aaaaaaaaaa#..", +"..############..", +"................", +"................"}; + +static String[] image38_data = { +"16 16 4 1", +". c None", +"# c #000000", +"b c #f6a562", +"a c #ffa562", +"................", +"................", +"..############..", +"..#ababababab#..", +"..#bababababa#..", +"..#ababababab#..", +"..#bababababa#..", +"..#ababababab#..", +"..#bababababa#..", +"..#ababababab#..", +"..#bababababa#..", +"..#ababababab#..", +"..#bababababa#..", +"..############..", +"................", +"................"}; + +static String[] image39_data = { +"16 16 3 1", +". c None", +"# c #000000", +"a c #ff8d00", +"................", +"................", +"..############..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..############..", +"................", +"................"}; + +static String[] image40_data = { +"16 16 5 1", +". c None", +"# c #000000", +"b c #cd5d5a", +"c c #d55d5a", +"a c #d55d62", +"................", +"................", +"..############..", +"..#ababababab#..", +"..#bacabacaba#..", +"..#ababababab#..", +"..#cabacabaca#..", +"..#ababababab#..", +"..#bacabacaba#..", +"..#ababababab#..", +"..#cabacabaca#..", +"..#ababababab#..", +"..#bacabacaba#..", +"..############..", +"................", +"................"}; + +static String[] image41_data = { +"100 100 587 2", +"#u c #000000", +"#Q c #000008", +"a# c #000010", +"aJ c #000018", +"#t c #000400", +"#P c #000408", +"aw c #000410", +"bu c #000418", +"#s c #000800", +"a9 c #000808", +"dD c #000810", +"be c #000c00", +"et c #001000", +"dE c #001400", +"bi c #080000", +"al c #080008", +"aj c #080010", +"bc c #080018", +"#O c #080400", +"ak c #080408", +"a. c #080410", +"a8 c #080418", +"#N c #080800", +"aa c #080808", +"ax c #080810", +"b4 c #080818", +"dP c #080820", +"bd c #080c00", +"bg c #080c08", +"ay c #080c10", +"dQ c #080c18", +"e9 c #080c20", +"#9 c #081000", +"eA c #081008", +"am c #081400", +"#r c #081800", +"ex c #081c00", +"bT c #100808", +"eO c #100c00", +"fl c #100c08", +"a7 c #100c10", +"eK c #101000", +"gx c #101010", +"cl c #101018", +"bN c #101020", +"ai c #101400", +"f2 c #101410", +"cs c #101800", +"#R c #101c00", +"aK c #102000", +"bf c #102400", +"#M c #181c00", +"aI c #182000", +"#b c #182400", +"#a c #182800", +"## c #182c00", +"g4 c #202400", +"gr c #202408", +"fH c #202410", +"a6 c #202800", +"gy c #202808", +"dr c #202c00", +"bv c #203000", +"#v c #203400", +"fe c #203800", +"do c #293000", +"#c c #293400", +"fJ c #293408", +"a0 c #293800", +"aP c #293c00", +"eh c #294000", +"cS c #313800", +"ah c #313c00", +"bM c #313c08", +"aV c #314000", +"#d c #314008", +"cE c #314800", +"d8 c #393400", +"an c #393800", +"c2 c #393c08", +"dg c #394000", +"e2 c #394008", +"g7 c #394010", +"av c #394400", +"cm c #394408", +"#L c #394410", +"#q c #394800", +"cr c #394808", +"az c #394c00", +"ev c #394c08", +"f5 c #413400", +"#. c #413c00", +"b5 c #414808", +"h# c #414810", +"ey c #414c00", +"#S c #414c08", +"dI c #414c10", +"bS c #415000", +".9 c #415008", +"#w c #415500", +"e7 c #415510", +"gW c #415900", +"d9 c #4a4400", +"cw c #4a5010", +"c8 c #4a5518", +"fm c #4a5900", +"#f c #4a5908", +"cD c #4a5910", +"cg c #4a6110", +"gk c #524c00", +"#e c #525010", +"bA c #525d08", +"fI c #525d29", +"hf c #526108", +"cP c #526110", +"g3 c #526118", +"ch c #526120", +"gQ c #526510", +"eb c #526d08", +"bj c #5a5d00", +"eq c #5a5d08", +"dd c #5a5d18", +"gh c #5a6118", +"gw c #5a6131", +"b8 c #5a6510", +"aH c #5a6518", +"gd c #5a6520", +"b9 c #5a6908", +"#8 c #5a6910", +"c1 c #5a6920", +"f3 c #5a6d08", +"g9 c #5a6d10", +"dH c #5a6d18", +"dC c #5a6d20", +"f0 c #5a7110", +"ab c #5a7118", +"bL c #5a7120", +"ff c #5a7518", +"gI c #626510", +"eP c #626939", +"gc c #626d18", +"eF c #626d20", +"fo c #626d39", +"ao c #627118", +"bt c #627120", +"fh c #627129", +"el c #627510", +"bk c #627518", +"b. c #627520", +"gU c #627900", +"e5 c #627918", +"dF c #627920", +"cI c #6a6910", +"ag c #6a6d18", +".8 c #6a7118", +"eL c #6a7139", +"fx c #6a7529", +"gq c #6a7531", +"da c #6a7908", +"fj c #6a7910", +"bU c #6a7918", +".7 c #6a7920", +"dl c #6a7929", +"fA c #6a7931", +"fy c #6a7939", +"#x c #6a7d10", +"bh c #6a7d18", +"ep c #6a7d20", +"eE c #6a7d29", +"eT c #6a7d31", +"fr c #6a8118", +"gf c #6a8120", +"de c #737518", +"f6 c #737520", +"fV c #737920", +"d# c #737d10", +"cO c #737d20", +"eX c #737d29", +"ft c #737d39", +"aW c #738120", +"dZ c #738129", +"dz c #738131", +"aZ c #738520", +"fX c #738529", +"fa c #738531", +"aA c #738929", +"gD c #738931", +"eg c #7b7931", +"d4 c #7b7d20", +"dO c #7b7d29", +"dv c #7b7d31", +"a5 c #7b8120", +"e3 c #7b8131", +"dR c #7b8139", +"b3 c #7b8141", +"ha c #7b8518", +"es c #7b8520", +"go c #7b8529", +"gR c #7b8931", +"bw c #7b8d20", +"au c #7b8d29", +"ck c #7b8d31", +"gZ c #7b9118", +"fc c #7b9129", +"br c #7b9131", +"dV c #837d31", +"ek c #838120", +"fu c #838139", +"eB c #838141", +"dY c #838531", +"eI c #838539", +"fM c #838541", +"fB c #838918", +"#g c #838929", +"bs c #838939", +"#K c #838941", +"dq c #83894a", +"e8 c #838d31", +"bO c #839129", +"bB c #839131", +"dy c #839531", +"bz c #839929", +"#h c #839931", +"bK c #839939", +"#p c #8b8931", +"gP c #8b8d29", +"aO c #8b9931", +"gE c #8b9d31", +"#o c #8b9d39", +"hb c #8ba129", +"aQ c #8ba131", +"dL c #8ba139", +"gO c #8ba531", +"g5 c #8ba539", +"e1 c #949129", +"aU c #949941", +"ct c #949d20", +"ds c #949d31", +"ej c #949d39", +".6 c #949d41", +"fd c #94a110", +"c. c #94a129", +"cW c #94a510", +"dM c #94a531", +"c3 c #94a539", +"bm c #94a541", +"eD c #94a54a", +"bJ c #94aa39", +"dn c #94aa4a", +"gl c #94ae29", +"c0 c #94ae39", +"e. c #94ae41", +"cy c #94b200", +"ec c #94b220", +"f8 c #94b229", +"em c #94b231", +"#l c #94b600", +"dK c #94b608", +"dx c #94b610", +"gp c #94ba00", +"eR c #94ba08", +"fP c #94ba10", +"fg c #9c9939", +"cn c #9c9d31", +"bl c #9c9d4a", +"ez c #9c9d52", +"gF c #9ca139", +"dT c #9ca541", +"f9 c #9caa39", +"ei c #9cae20", +"aL c #9cae41", +"g. c #9cb231", +"gN c #9cb239", +".5 c #9cb241", +"bp c #9cb24a", +"hg c #9cb608", +"ew c #9cb610", +"gX c #9cb620", +".S c #9cb639", +"ac c #9cb641", +"#G c #9cba00", +"a4 c #9cba08", +"gV c #9cba10", +".H c #9cba18", +"cu c #9cba20", +".R c #9cba39", +"cv c #9cbe00", +".w c #9cbe08", +".z c #9cbe10", +".A c #9cbe18", +"aC c #9cbe20", +"cX c #9cbe29", +"cR c #9cc200", +".n c #9cc208", +".C c #9cc210", +"#W c #9cc218", +"e# c #9cc600", +"cL c #9cc608", +"g# c #9cc610", +"#1 c #9cca08", +"fD c #a4a531", +"bq c #a4ae41", +"gs c #a4ae52", +"#y c #a4b231", +"f4 c #a4b241", +"#J c #a4b24a", +"b6 c #a4b252", +"cT c #a4b631", +"fF c #a4b639", +"eN c #a4b641", +"dJ c #a4b64a", +"dc c #a4b652", +"b0 c #a4ba10", +"ca c #a4ba20", +"dX c #a4ba39", +".U c #a4ba41", +"eo c #a4ba4a", +"d7 c #a4ba52", +"fR c #a4be00", +"c5 c #a4be08", +"c7 c #a4be10", +"d0 c #a4be18", +"eJ c #a4be20", +"d1 c #a4be29", +".P c #a4be39", +"d. c #a4be41", +"du c #a4be4a", +"aY c #a4c200", +".u c #a4c208", +".m c #a4c210", +".s c #a4c218", +".G c #a4c220", +".M c #a4c229", +"ee c #a4c231", +"di c #a4c239", +"eS c #a4c241", +"d5 c #a4c24a", +".1 c #a4c600", +".g c #a4c608", +".# c #a4c610", +".c c #a4c618", +".x c #a4c620", +"ed c #a4c629", +"cp c #a4c631", +"fY c #a4ca00", +".J c #a4ca08", +".j c #a4ca10", +".q c #a4ca18", +"#Z c #a4ca20", +"fN c #a4ce00", +"#X c #a4ce08", +"gj c #a4ce10", +"cZ c #a4ce18", +"dh c #aca54a", +"gM c #acb241", +"cf c #acb24a", +"cF c #acb631", +"#7 c #acb639", +"eG c #acb641", +"cx c #acb652", +"ap c #acba39", +"#i c #acba4a", +"eM c #acba52", +"fv c #acba5a", +"#4 c #acbe08", +"e4 c #acbe31", +"f1 c #acbe39", +"bW c #acbe41", +"gG c #acbe4a", +"dk c #acbe52", +"bb c #acc200", +"bQ c #acc208", +"fT c #acc210", +"ef c #acc218", +"fq c #acc220", +"bY c #acc229", +"gH c #acc231", +"#j c #acc239", +"ci c #acc241", +"ea c #acc24a", +"dm c #acc252", +"ba c #acc600", +".E c #acc608", +"#2 c #acc610", +".B c #acc618", +"gB c #acc620", +"a2 c #acc629", +"aX c #acc631", +".N c #acc639", +"#z c #acc641", +"cN c #acc652", +"cV c #acca00", +"dG c #acca08", +"#E c #acca10", +".k c #acca18", +"aN c #acca20", +"#H c #acca29", +".Z c #acca31", +"by c #acca39", +"#U c #acca41", +".W c #acca4a", +"eW c #acce00", +".I c #acce08", +"c6 c #acce10", +"cK c #acce18", +"#k c #acce29", +"ge c #acce31", +"cU c #acce39", +"g1 c #acd208", +"#0 c #acd218", +"cM c #acd229", +"dp c #b4b641", +"bR c #b4ba52", +"aG c #b4ba5a", +"fk c #b4be20", +"bn c #b4be41", +"eU c #b4be4a", +"gC c #b4be52", +"hh c #b4be5a", +"gz c #b4be62", +"dU c #b4c210", +"f# c #b4c218", +"eH c #b4c220", +"d6 c #b4c229", +".Q c #b4c239", +".T c #b4c241", +"fp c #b4c252", +"bo c #b4c25a", +"#T c #b4c262", +"g2 c #b4c600", +"#D c #b4c608", +"eV c #b4c610", +"as c #b4c618", +"bZ c #b4c620", +"gt c #b4c639", +"a1 c #b4c641", +"dt c #b4c64a", +"cA c #b4ca00", +".v c #b4ca08", +".o c #b4ca10", +".r c #b4ca18", +".y c #b4ca20", +".L c #b4ca29", +"fZ c #b4ca31", +"eZ c #b4ca39", +"aF c #b4ca41", +"cq c #b4ca4a", +"ce c #b4ca52", +"fs c #b4ca5a", +"a3 c #b4ce00", +".0 c #b4ce08", +".d c #b4ce10", +".e c #b4ce18", +"#B c #b4ce20", +".2 c #b4ce29", +"b7 c #b4ce31", +"ae c #b4ce39", +"aq c #b4ce41", +"gn c #b4ce4a", +"gg c #b4d200", +".h c #b4d208", +".f c #b4d210", +"#C c #b4d218", +"aS c #b4d231", +"dS c #b4d239", +"fO c #b4d629", +"bV c #bdbe5a", +"fG c #bdc24a", +"cJ c #bdc25a", +"fU c #bdc262", +"fQ c #bdc629", +"bF c #bdc631", +"gL c #bdc639", +"#n c #bdc64a", +"bC c #bdc652", +"hd c #bdc65a", +"cc c #bdca10", +"b1 c #bdca18", +"cb c #bdca20", +"#m c #bdca29", +"en c #bdca31", +"aR c #bdca39", +"fb c #bdca41", +"bI c #bdca4a", +"at c #bdca52", +"gS c #bdca5a", +"gJ c #bdca6a", +"g0 c #bdce00", +"cz c #bdce08", +"cB c #bdce10", +".b c #bdce18", +".i c #bdce20", +"aE c #bdce29", +"cC c #bdce31", +".F c #bdce39", +".O c #bdce41", +".V c #bdce4a", +"bD c #bdce52", +".4 c #bdce5a", +"fi c #bdce62", +"hi c #bdd200", +"aT c #bdd208", +".a c #bdd210", +"Qt c #bdd218", +".l c #bdd220", +"fW c #bdd229", +"bG c #bdd231", +"bH c #bdd239", +"d3 c #bdd241", +"er c #bdd24a", +"gm c #bdd600", +"dB c #bdd608", +".D c #bdd610", +"#3 c #bdd618", +".p c #bdd620", +".K c #bdd629", +"#V c #bdd639", +"fS c #bdd64a", +"#Y c #bdda10", +"ar c #bdda18", +"e0 c #c5ca52", +"eC c #c5ca5a", +"eY c #c5ca62", +"c4 c #c5ce31", +"bX c #c5ce39", +"c# c #c5ce41", +"b2 c #c5ce5a", +"e6 c #c5ce62", +"h. c #c5ce6a", +"d2 c #c5d218", +"gK c #c5d220", +"fK c #c5d231", +"dw c #c5d239", +"cd c #c5d241", +"c9 c #c5d24a", +"aM c #c5d252", +"#I c #c5d25a", +"dA c #c5d262", +"fL c #c5d618", +"bx c #c5d620", +"aD c #c5d629", +"cj c #c5d631", +".Y c #c5d639", +"ad c #c5d641", +".3 c #c5d64a", +"#6 c #c5d652", +"g6 c #c5d65a", +"#F c #c5da10", +"cG c #c5da18", +".t c #c5da20", +"dW c #c5da29", +"cY c #c5da39", +"#A c #c5da41", +"fE c #c5da4a", +"hc c #c5da52", +"fn c #c5de39", +"eQ c #cdce7b", +"fC c #cdd241", +"gb c #cdd24a", +"gY c #cdd252", +"gu c #cdd25a", +"g8 c #cdd262", +"gT c #cdd26a", +"fw c #cdd283", +"fz c #cdd28b", +"co c #cdd641", +"bE c #cdd64a", +"he c #cdd652", +"af c #cdd65a", +"b# c #cdd662", +"eu c #cdd66a", +"ga c #cdd673", +"#5 c #cdda31", +"dj c #cdda41", +"dN c #cdda4a", +".X c #cdda52", +"cQ c #cdda62", +"df c #cdde20", +"aB c #cdde4a", +"db c #cdde62", +"f. c #cdde6a", +"f7 c #cde241", +"gv c #d5d694", +"cH c #d5da52", +"gA c #d5de4a", +"bP c #d5de52", +"gi c #d5de6a", +"Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#.b.c.b.#.b.c.b.#.b.c.b.c.b.c.b.c.b.c.b.c.b.c.b.c.b.c.b.#.a.#.a.#.a.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.e.#.e.#.e.#.e.#.e.#.e.#.e.#.e.#.e.#.d.#.f.g.f.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d", +".a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.g.a.g.a.g.a.#.a.#Qt.#Qt.#.b.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#.a.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.g.h.g.f.g.f.g.f.g.f.#.d.g.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d", +"Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#Qt.#Qt.#.a.#.a.#.a.#.a.#.a.#Qt.#Qt.#Qt.#Qt.#.b.c.b.c.b.c.i.cQt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.e.#.e.#.e.#.d.#.d.g.f.g.f.g.f.#.d.#.d.#.d.#.d.#.e.#.e.#.e.c.e.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d", +".a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.b.c.b.c.b.#Qt.#.a.#.a.#.a.#.a.#.a.#.a.#.a.g.a.g.a.g.a.#.a.#.a.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.e.#.e.#.e.#.e.#.d.#.e.#.d.#.d.#.d.#.d.g.f.g.h.g.h.g.f.g.f.g.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d", +"Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.jQt.#.b.#Qt.k.l.c.e.m.i.c.l.c.b.cQt.cQt.c.e.mQt.m.d.#Qt.m.d.kQt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.n.o.m.e.#.o.m.e.#.l.k.p.q.e.c.e.m.r.m.b.q.p.s.r.mQt.k.e.m.e.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d", +".a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.t.q.d.mQt.kQt.#.o.u.a.#.d.n.v.wQt.#.e.m.e.c.i.x.i.s.y.s.r.z.r.mQt.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.m.d.jQt.j.a.g.d.#.d.u.d.g.d.w.o.mQt.c.r.A.B.s.y.x.l.c.e.C.o.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d", +"Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#.v.g.D.j.d.w.E.w.b.#.b.cQt.c.b.c.e.c.l.x.F.G.y.H.i.s.r.z.o.g.D.I.a.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.J.D.J.a.#.e.c.K.G.L.M.F.N.O.P.Q.R.Q.S.T.U.V.W.X.N.Y.Z.l.c.D.J.0.g.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d", +".a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.D.1.0.#.p.2.3.N.4.5.6.7.8.9#.###a#b#a#a#c#d#e#f#g#h#i#j.Y#k.e#l.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.g.f.#.f.#.d.#.e.#.d.#.d.g.d.g.f.g.v.z#m.N#n#o#p#q#c#r#s#t#s#t#t#u#t#u#t#u#t#t#s#s#r#v#w#x#y#z#A.G#B.s.e.#.f.#.d.#.e.#.e.#.d.#.d.#.d.#.e.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d", +"Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#.f.J.f.j#C.c.e.c.i.cQt.m#D#E#F#G.o#H#I#J#K#L#M#t#N#t#t#t#O#t#t#t#P#Q#P#u#P#u#t#u#t#t#s#t#s#R#S.7#T#U#V#W.v#X#Y.nQt.s#B#Z#B.z.e#0.b.c.b.#.b.#.b.#Qt.#.a.#Qt.#.a.#Qt.#.a.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.f.g.h#1.f.##C.c.e.c#2.m#3.w#4.m#5#6#7#8#c#9#O#ua.#Qa##Q#Q#u#Q#u#Q#u#Q#u#u#u#Q#Q#Q#Qa##Paa#u#t#s#R##abacad.x#E.n.d.q.l.c.r.c.p.#.u.#.e.#.e.#.e.#.d.#.e.#.d.#.d.#.d.#.d.#.d", +".a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.f.J.f.j.f.##C.#.d.#.a.z.raeaf.5agahai#t#t#ta.#Qaj#Qak#u#O#t#O#t#t#u#O#u#t#ual#Qa#a#a#a#a.#u#t#t#samanaoapaq.3.H.r.c#3.#.e.k.l.z.b.#.b.#Qt.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.f.g.f.#.f.#.f.#.f.Jar.#as#jatauav#s#t#u#O#taa#u#Q#u#Q#u#t#u#t#u#t#u#t#u#t#u#u#u#Qawa#a#a##Qa.akaxay#t#t#razaAacaBaC.o.g.a.g.o.xaD.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d", +"Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.##C.##C.##C.#.a.J.0.waEaFaGaHaI#taka.axakak#u#u#u#O#uak#u#O#t#O#t#P#Q#P#u#t#u#t#u#Q#Qa.#Qa##Qa##QaJa#ax#t#saK.8aLaM#HQt.g.a#E.laNQt.#.a.#.a.#.a.#.a.#.a.#Qt.#.a.#Qt.#.a.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.##C.#.d.#.f.1.h#GaD#zaO.9am#t#t#QaJa##Q#Qaa#t#t#u#t#u#P#u#t#u#t#Qa##Q#Q#u#t#u#t#u#P#P#Q#Q#Q#Qa#a#aJa#aw#u#s#RaPaQaRaSQt.n.a.j.o.#.f.g.f.g.f.g.d.#.d.#.d.#.d.#.d.#.d.#.d", +".a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.##C.c#C.#.a.JaT.#.i#zaU#c#s#t#Oaaa.#Qa##Q#u#t#O#uak#Qa.#Qaj#Qa.#Qa#a#a#a#a##Q#P#Qayayax#u#Q#Pax#P#P#Qa##P#P#u#t#saVaWataX.r.uaTaY.a.g.a.g.a.#.a.#.a.#Qt.#.a.#Qt.#.a.#Qt.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.e.#.e.#.f.g.f.#.i.NaZ#b#t#uaa#u#u#Qak#Pak#u#Q#u#Q#Q#Q#Qa##Q#Q#Q#Q#Q#Q#Q#Q#u#Q#u#Q#u#P#u#Q#uax#P#u#t#t#u#Q#u#Q#u#t#ta0aAa1a2.b.1a3.g.f.g.f.g.f.g.f.g.d.#.d.#.d.#.e.#.d.#.d", +"Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#.l.c.d.J.da4aE#za5a6#t#ual#Qaa#ua7#u#Q#Qa8a#aJa#a##Qak#t#O#u#t#u#N#t#s#t#t#taaa9ay#Q#Q#Q#Q#Q#Pa9#O#u#t#u#Q#Qa##u#t#s#Mb.b##Hba.I.a.u.a.j.a.nbb.#.a.#.a.#Qt.#.a.#Qt.#.a.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.c#2.g.D.waD#zaZ#a#t#uax#P#Q#t#u#tak#ua#a#bcawa.#Q#t#u#t#sbdbe#9aK#bbf#b#R#9#t#t#t#t#tbg#P#Q#Q#P#Paa#saa#tak#Qa##Qaa#s#cbhaR#Bba.#.d.#.d.##3.##3.#.d.#.d.#.d.#.d.#.d.#.d", +".a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.l.m.a#E.i.NaU#a#t#ualal#Q#ubi#u#Q#Pa8a#a##Q#Q#u#tbdaI#cbjbkblbmbnacbobpbqbrbsbta0#R#s#t#t#PbuaJa#awa.#u#Q#Pa.a#a##P#t#tbvbwaf.G.l.k.p.m.e.kQt.#Qt.#Qt.#.a.#.a.#.a.#Qt.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.e.wbx.m.rbybz#c#t#ua.#Q#Q#u#u#u#u#P#Q#Qak#u#t#t#9bvbAbBbCbDbE#jbF.MaEa2bG.ZbH.NbIbJbKbLbMbe#t#ubN#Qaw#Q#Q#u#P#Q#Q#Qaw#t#t#sahbObP.G.e.c.e.c.e.m.o.#.d.#.d.g.d.#.d.#.d.#.d", +"Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#bQ.m.yaXbRbS#s#uala.#Q#ubT#Nakaka#akbg#t#sbd#qbUbVbWbXbYbZb0b1.kbx.k.e.n.o.n.o.s#Aaqb2bmb3#L#R#t#Qa#b4axak#u#Q#u#Q#Paa#Nbd#sb5b6.V.G.B.s.l.x.iaN.b.#.a.#.a.#.a.#Qt.#.a.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.jbQb7.Vb8am#uaa#u#Q#u#u#O#O#uak#Qak#ubea6b9c.c#cacb.sb1.mcc.u.a.g.d.g.0.g.h.J.a.g.raCcdcecfcgaI#t#u#uaa#P#Q#uaa#uak#u#ubd#t#9chcicj.A.B.x#B.s.p.#.e.#.d.#.f.g.f.#.d.#.d", +".a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.##F.##IckaI#t#O#u#N#tbi#ual#ubi#ucl#ubdcmcna1co.m.a#2Qt#2Qt.B.b.m.d.gQt.jQt.j#C.#.f.j.e#W.2cpcqaLcrcs#t#uak#u#Qaaak#u#u#uaa#O#t#Rct.Zadcu.y.G.y.x.b.#Qt.#.a.#.a.#.a.#Qt.#", +".#.d.#.d.#.d.#.e.#.d.#.d.#.d.g.fcv#5aLav#t#s#N#u#u#u#u#u#Qak#u#N#ubdcwcxcqbZcyczcvcA.ucB.m.o.m.e.u.d.##C.#.e.C.d.w.f.j.o.w#C#ZcCaLcDbe#t#t#Q#Qakaa#u#tak#uak#Q#tcEcFaebZ.A.r.c.l.#.d.#.d.#.d.g.f.g.d.#.d", +"Qt.#.a.#.a.#.b.#.b.kcG.u.d#E.h#Eb1cHcI#taa#Qaa#t#t#u#uaaala.cl#uamaocJ#z.F.B.b.#.a.#.a.#.b.c.b.#.f.J.pcK.e.j.DcL#3.wQt.c.e.#.ocM.OcNcObe#tayaw#Qak#t#t#tak#Qaj#t#scPcQ.G.o.#cB.k.a.#.a.#.b.c.f.#Qt.#.a.#", +".#.d.g.f.#.e.#.e.#Qt.#.v.j.DcR.da2#7cS#ta.a##u#t#u#O#u#Q#u#u#u#9abcTcUaE.z.o.w.v.#.d.g.d.#.d.#.d.JcV.n#C.##2.z.l#HcWcXcY.A#CcZ.E.C.Lc0c1#9#t#P#Q#u#t#u#t#u#Q#Q#Q#uc2c3c4c5.0#EcB.gcB.g.d.c.e.#.f.#.d.#.d", +"Qt.#.a.#.a.#.b.cQt.#.d.u#3c6.vc7af#8ai#uax#Q#Q#t#O#ta.#u#t#t#Nc8bocUad.s.d.#.a.#.a.#.a.#.a.#Qt.##3.gcGcK.o.sc9d.d#aPda.U.F.H.o.#.d#Wdbdcddbe#t#t#P#Qak#uak#Qa.#Q#tcsdea1cb.mdf.u.a.#Qt.#.b.c#C.#.a.#Qt.#", +".#.d.g.f.g.d.#.e.m.d.n.d#E.a.naE.5#c#t#O#P#Q#u#O#Q#Q#Qaa#u#sdgdhdi#B.C.o.g.D.jQt.#.d.g.f.g.f.#.d.j.a#0Qt.Adjdkdl#r#s#Rb.dm#A.HbxcL.D.G.Vdncr#tbd#u#P#Q#P#u#Q#Q#Q#u#tdodpaX.i.k.o.#.d.#.e.#.e.#.f.#.d.#.d", +"Qt.#.a.#.a.#.b.c.e.q.a.#.a.#.laFdq#9#t#N#O#t#t#ta.#Qa##t#sdrdsdt.F.z.o.g.a.g.d.#Qt.#.a.g.a.g.a.#.Dcv.E.x#6dudv#R#t#t#s#rcOcedwdx.0c6bb.Hdbdydr#t#O#Qaw#Qak#Qak#Q#Q#t#9dzdAa2.o#2.b.c.b.c.b.c#C.#Qt.#.a.#", +".#.d.g.f.#.d.#.e.CQt.j.f.n.e#HbI#L#O#taa#u#N#t#t#Qaj#Q#tbe#8a1bZ.c.v.gdBcR.v.m.e.#.e.g.h.g.h.g.f.g.v.A#AdmdCam#ta#a#dD#tdEdF.UcC.z.0cRdG#H.VdH#s#t#P#Q#Q#Q#P#u#Q#Qaa#tdIdJdwdK#3.#.b.c.e.#.e.#.e.#.d.#.d", +"Qt.#.a.#.a.#Qt.c.e.qQt.#.oaNc9dLcs#tax#P#t#t#O#ua#a8#Q#tavdMdNa4.acR.a.J.0.m.paN.b.#.a.gaT.J.a.g.0.#.3dJdO#R#ta9dPa#dQbg#s#adRcNcC#W.D.g.odSb6aP#s#ta.#Qak#uak#u#Qak#t#MdTaFdU#EcB.#.b.c.a.##C.cQt.#Qt.#", +".#.d.#.d.g.d.#.e.c.e.g.d.z.Kdi#p#ta.#P#Q#u#u#u#Qa#a.#u#9bUcd.mczdG.0.g.a.n.d.q.r.#.d.g.h.1.h.g.d.#.y.UdV#r#ta9#Q#Qa##Q#u#t#s#rbtceb7.m.v.gdWdXdY#s#t#u#Q#u#P#u#P#u#Q#u#tdZc9d0cB.g.d.c.e.#.d.#.e.#.d.#.d", +".b.#Qt.#.a.#.a.#.l.m.0.#.b.M.4#q#Na#aj#Qak#uak#Qa##Q#tdobVd1d2aY.a.g.a.gQt.#.b.cQt.g.D.IaT.J#3.cd3bWd4cs#t#P#P#Q#Q#P#Q#u#t#t#tbecOd5cYa4.0.kd6d7d8#t#N#uak#u#u#uak#uaa#Nd9dtb1.gcB.m.e.#.a.##C.cQt.#.a.#", +".#.e.#.d.g.f.#.e.c.e.n.f.#.Le.#c#ta##Q#Q#u#P#Qa##Q#u#sbAbWcb#2.0.g.f.g.f.#.e.#.d.u.0e#a3cR.v.mcCeabt#R#t#ua.#Qax#t#t#taaaa#Q#u#t#bebec.p.g.deda1cDbd#s#u#u#Q#u#t#u#u#P#tbvbn.scz.u.d.m.e.#.d.#.e.#.d.#.d", +".b.#.b.#.a.gQt.c.r.c.a.#.bee.6#r#s#Qak#uak#Qaja#aj#u#MbBbXefd2.g.a.g.a.g.a.#.a.#.D.1dB.I.v.md3cieg#R#t#sax#Qa##P#t#taa#P#Q#Qa.#sbeeheib7.d.g.Y.PejaKbd#u#Q#Q#Q#t#t#ua.#u#Rbz.F.g.d.g.b.#.a.#Qt.cQt.#Qt.#", +".#.e.#.d.g.h.#.e.A.l.g.d.c.FdF#s#t#Q#u#t#u#Qa#a##Q#tdobCbY.b#2cB.g.h.g.h.g.f.g.f.Ia3.J.a.z.Y.Pek#9#t#ua7#u#Q#Q#Q#uaa#t#u#uaa#u#taKelem.L.#.f.meneo#c#s#t#u#Q#u#u#u#uaw#u#sepaX.o.u.d.#.d.g.d.##C.#.d.#.d", +".b.c.b.#.a.g.a.#.iaN.d.g.i#z.8#s#O#u#O#uak#Qaja#al#seq.4bZ.mQt.m.a.#.a.g.a.g.a.g.a.n.v.Aereaes#R#t#u#Q#u#Q#Pa.#u#Qaa#Q#ua7#t#tetbs.R.F.AQt.#.Ea2eubS#s#t#Q#Q#Q#u#u#ub4#u#scPcdc7cB.g.d.#Qt.##C.#Qt.#.a.#", +".#.e.#.d.g.h.g.e.c.pcR.0.c.Oev#s#t#t#u#t#u#Qa#a##ubdbtbEewcc.#.o.#.d.g.f.g.f.g.f.#.o.A.Yduaoex#s#tak#u#uaaak#u#Q#u#Q#uak#u#taIbtd.bHed.icK.dcv.laFao#s#t#u#Q#u#u#u#Qa8#Q#teycias.m.d.#.d.#.d.#.f.#.d.#.d", +".b.#.b.#.a.g.a.c.l.k.v.g.i.P#.#s#t#u#O#t#O#Qaja##Qbdezcib1.u.b.m.b.cQt.#Qt.#Qt.c.l.sd3d.esex#seA#t#u#taaa7#u#Q#u#u#ua.#Q#taIeBdmbG.#.r.c#3.g.0.ccddyam#tak#Qak#u#Q#Qa8#Q#sa0eCca.e.gcB.#Qt.#Qt.j.a.#Qt.#", +".#.d.#.e.g.f.#.e.c.ecv.f.s.Q#a#t#u#P#u#t#u#Qa#a##u#9eDbF.BcBc5.o.#.e.#.e.#.d.#.e.GendueE#r#seA#P#t#u#u#Q#u#Q#u#u#u#Q#P#tbeeFead6.z.f.C#2.g.a.g.reeeG#r#t#P#Q#t#u#u#Qa##Q#tdreoeH.m.d.m.e.#.d.#.f.#.d.#.d", +".a.#Qt.c.b.c.a.#.e.#.a.u.idX#b#t#P#Q#t#u#P#Qa##Q#NaKaG.Mbx.g.d.#.f.j#3#E.D.J.0.#c9dmdvam#t#s#N#tak#Qa##Qal#Q#Q#Qa#a7#tcseIapbZ.#Qt.C#C.q.f.j#3.z.F.UaK#t#P#Q#N#u#t#u#Q#u#t#bcJeJ.b.#.i.c.a.g.f.#Qt.#.a.#", +".g.f.#.e.s.e.g.f.#.d.g.d.x.Tbf#t#u#Q#u#u#u#Q#Q#Q#t#bacaE.j.hcL.d.gdG.g.fcv.v.#.ybWbt#R#t#uak#t#u#ua##Qa##Q#Q#Qa#b4#QeKeLeMbX.uaT.##2.C#C.w#E.j.l.sa1aK#t#Q#Q#t#t#u#t#u#u#u#beN#m.#cB.s#B.#.h.g.f.#.d.#.d", +".a.#Qt.c.i.c.a.gQt.#.d.m.i.S#a#u#t#uak#u#P#Qa##Q#t#bboaX.d.gQt.c#3.n#3#0.E.zc9.Ud4aI#t#uak#u#O#t#Q#Qal#Q#P#ual#Qa8#QeOePeQcqdU.u.f.n#C.q.oeR.r.caEeS#b#t#P#Q#t#t#t#u#u#u#taIaGbY.b.#.i.c.a.g.f.#.a.#Qt.#", +".g.d.#.e.s.e.g.f.j.d.C.e.Gbn#a#t#u#u#u#u#u#Q#Q#Q#u#b.5bG.n.0.j#C.q#C#EQt.sadeNeTcs#s#say#u#uakak#u#Q#u#Q#u#t#u#Q#Qax#ucsbteUd1eVcLeWcLar.j#E.z#Bed.TaK#t#u#P#u#O#u#t#u#t#ua6.5cC.#.d.s.e.g.h.#.f.#.d.#.d", +"Qt.#Qt.#.b.c.a.g#3.#.d.c.F.U#c#t#t#u#P#u#t#u#Q#u#t#Rbq.Z.v.gQt.c.e.#eV.A#6dmeXcs#taaax#Qalaxax#ual#Q#P#u#O#t#t#ual#Pak#taibteYeZ.ecRcV.Jar.qQtaN.ObJ#R#t#P#Q#Q#tak#uak#u#tdobobY.b.#.b.c.a.g.f.#Qt.#.a.#", +".#.d.#.e.c.e.g.f.#.b.m.r.GbI#d#t#u#Q#u#u#u#t#u#Q#t#9brbH.w.h.#.e.j#2.saBdudC#R#t#Pa8#Q#Q#Pak#u#Q#Q#Q#u#u#u#t#t#t#u#Q#P#N#taIbte0#H#3.ndG.g.f.m#BaXe1et#t#Qaw#u#P#uak#Q#u#te2eo#m.#cB.#.e.g.f.#.d.#.d.#.d", +"Qt.#Qt.c.b.c.a.g.d.kQtd0.yce#e#t#t#Qal#Q#t#u#P#Qaa#tbs.N.o.J#C.mar.Cc9dme3#r#taaa.awa.#Qa.#u#Q#Qa##Qal#u#t#t#O#t#u#Qa#ak#N#t#MeFe4#k.p.w.v.n.vd0.Fe5#saaa#a##Q#u#Q#Pa.#u#s#Se6eJ.b.#Qt.#.a.##C.cQt.#Qt.#", +".#.d.#.e.c.e.g.f.n.p.cas.A.Xe7#s#u#Q#Q#Q#u#t#u#Qa9#tdCbI.CaT.g.dcL.pd.eE#R#ta9#P#Paa#P#P#u#P#t#u#Qa##Q#Q#u#t#u#t#N#Q#Qa##u#t#NbeaZe4.Z#B.#.f.g.ici#8#tay#Qa##u#u#uakak#u#scDceeH.m.d.#.d.g.d.#.e.#.d.#.d", +"Qt.#.a.#.b.c.a.gQt.m.l.c#B.Ne8#s#t#Qa#a.#Q#uay#Qay#t#caLad.j.f.n#3.Zd##r#tawe9#Q#Q#N#t#uakak#t#ua#b4a.#Qa.#u#u#tak#Qaj#Qaj#Q#O#tetbkf.aXf##E.vaNeCdr#taka##Q#u#uak#Qak#u#sfafb.G.b.#.a.#Qt.##C.#Qt.#.a.#", +".#.d.g.d.c.e.g.f.#.e.c.e.zbHfcam#ta##Qa##Q#Pax#P#Q#t#r#oby.r.#.f.Cfdfe#s#ta#a#a#aa#N#taaak#Q#u#uay#u#uax#P#Q#u#Q#u#Q#Q#Q#Q#Q#u#t#s#Rffa1aX.i.zaE#h#R#ua.#Qak#u#u#P#Q#P#tamfg.N.y.#cB.g.f.#.e.#.e.#.d.#.d", +".a.#.a.#.b.cQt.#.d.q.b.k.oa2cxbv#sa.a#a#a.#Pax#Q#Q#s#sfhfi.M.e.j#C.MfjaK#sdDdQ#Q#Q#tbgaa#Q#Qa.ak#taieK#uak#Pa##Qaj#Qak#Qak#uak#t#t#t#Raoe6.Nfka1cI#sbia##Q#Q#O#uax#ufl#tdoeNc9d0.b.#.a.#.b.c#C.cQt.#Qt.#", +".#.d.g.d.c.e.#.d.CQt.m#3cv.ldifm#taa#Qa##Q#Q#Q#Q#ubg#tbMbmcd.A.d.Cfndub.am#tbg#u#uaaa9#u#uax#u#tameLfo#M#u#t#Paj#Q#Q#u#t#u#t#u#t#ueA#t#RbkfpceeUdr#t#ua.#uak#u#u#Q#u#N#s#wc9fq.b.#.d.g.d.#.e.#.e.#.d.#.d", +".a.#.a.#.b.cQt.#.e.k.e#E.v.q.Yfr#s#tak#Qa##Q#Q#Q#Qa9#tbeb3fs.2.n.e.A.FcNftet#s#saaax#Q#ua7#t#t#9fufvfwfxai#taa#Qa.#Qak#t#O#t#O#ta.#u#s#s#9fyfzfAeK#u#Oakalbial#u#Qaa#O#sfBfCas.k.b.#.a.#.i.c#C.#Qt.#.a.#", +".g.f.g.d.c.e.#.d.mQt.m.a.1.0#HfDcs#t#uak#Qa##Qax#u#Q#P#t#L#Jcp.e.C.e.HfEceb.#b#s#t#P#uaa#u#taIfhfFbXcqfGbt#M#u#t#u#Q#u#t#u#t#u#P#Q#Q#s#s#ufHfIfJ#t#u#t#N#ubi#u#Q#uaa#uaIdMfKa4fL.#.b.g.d.s#B.#.d.#.d.#.d", +".a.g.a.#.b.c.b.#Qt.c.b.gdB.1.rcidI#N#taa#Q#Qax#P#P#Qb4#u#Rcgcq.k.o#0.o.HbHdueIam#t#ua.ak#t#bfMeabZ.mdUbYeYbt#M#N#O#u#O#tak#uak#Q#Qa9ak#Qa8#u#t#sbi#Qbi#t#O#ual#Qak#t#NdIb2d0cB#E.b.#.a.#.i.x#C.#.a.#Qt.#", +".g.f.g.d.#.e.#.e.#.e.#.0fNa3dKdNfx#R#uaa#Qa##P#uaa#Pawcl#taK.5cCfO.E.n.tfPbGcNbtbe#t#s#tbebtdmfQ.#aTfReVeZb2eF#s#t#t#u#t#u#P#u#P#u#u#Pa#a#b4#u#u#ual#u#u#u#u#ua.ak#t#9btfSfTcK.d.#.d.g.f.c#B.#.e.#.d.#.d", +".a.#.a.#Qt.#Qt.#Qt.#.a.#.a.#Qt.MfUdr#sbga#a##Q#u#taaaw#Qak#tavbp.O.c.f.J.0.Cb7cNfVbfbebfbs.UfW.cQt.#.f.#.e.ZbWfXbe#t#t#Qa.#Q#t#u#P#u#P#ual#Q#t#u#Q#u#u#u#u#u#Q#uaw#tcrbJ.3.c.r.cQt.gaTfY.a.c.b.cQt.#.a.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.##Ba1ao#9#ua#aJ#u#u#uaa#Qa#ak#uaicDea.L#W.D#X.0.CfZduf0ehf0.ScY.j.I.C#2.ndG.n.p.Zf1b.#R#tf2#u#ubg#t#u#u#u#u#u#u#u#u#tak#u#t#u#u#u#u#sbef3.F.s.o.q.e.#.f.1.h.g.d.#.e.#.d.#.d", +".a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.cdwf4f5#taxaJaj#Q#uaaa.a#b4#u#tbdf6bJdb.xbb.1.D.mf7f8f9g.d3ed.o.n#Cg##C.#dG.C#Vbygaabam#s#s#t#t#u#t#uak#u#t#uak#u#u#uak#tak#tak#s#saPbqaS.vcR#3.c.b.#.a.#.a.#Qt.#.a.#Qt.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.bd0gbgcai#ua#a#a##uak#Qa##Qak#u#t#sgddc.V.A.o.g.0a4.lgecC.A.r.m.d.j.f.jar.JdG.w#BcpdtaoaK#sbd#u#Q#u#u#u#u#u#u#u#u#u#u#u#t#u#u#u#t#sgfby.e.1gg.n.e.c.e.#.d.g.d.#.d.#.d.#.d", +"Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#eVa2dpb5#t#uaj#Qaj#Qak#Qa##Qaxaa#tamghdngi#H.ocRba.j#3.m.ecKcG.g.f.n.0gjar.g.v.#as.Ze6dFam#taxa#al#u#t#uak#u#t#uak#uak#t#u#u#u#tgkgldWcRgm.I.v.#.b.c.a.g.a.#.a.#Qt.#.a.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.ddGasgngo#R#t#u#Q#Qa.#u#Q#u#Q#Q#Qay#tbecrbr.Vae.p.#.d.n.0.g.a.j.a.J.IgpdG.j.fcR.h.#.reeeUgqgr#ua.#u#u#u#u#u#u#u#u#u#u#uaa#t#u#tcsbm.L.c.h.1.h.j.e.#.e.g.h.g.f.#.d.#.d.#.d", +".a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.D.ubEfF.8#R#t#t#Q#Qak#uak#u#Q#u#Pa9#t#tdrdCgsdXen.G.l.B.d#G.v.j.Dgj.d.n.a.g.v.g.0.mgtgugvgw#taa#t#uak#u#t#uak#u#u#u#uaaaa#tgxgygzee#B.#.f.g#3.c.b.#.a.g.a.#Qt.#.a.#Qt.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#cBcvcBd0gAf9a0#t#N#u#P#P#Q#t#N#taa#u#Q#tbd#t#sa0dYdJbI.N#m.s.i.c.o.w#3.c.e.q.e.z.igBaE#zgCgqfJ#t#u#u#u#u#u#u#u#u#u#t#u#uak#u#u#t#MgDbIeeef.qQt.m.d.#.d.#.f.g.f.#.d.#.d.#.d", +"Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.keVd0c9gEdg#t#t#Q#Q#Q#u#u#t#N#O#t#P#uak#t#s#s#.cPgFgGb#cqc#gH.i.c.l#HcdbycdaFeYaOgIdreK#tal#Q#Qak#u#uak#u#uakak#uak#uak#uak#t#9btgJ#zbZ.m.a.u.b.c.b.cQt.gaT.g.a.#.a.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.sgK.#.ogBgLaWcS#t#t#Qa.akaa#t#u#t#t#u#Q#Qa##u#t#t#9#bahbSbkbBgMgN.Q.RbWgOgPf0gQdr#R#t#t#u#Qa#a##uak#u#u#u#u#u#u#u#t#u#t#u#t#u#t#taKdCbCaqas.ncG.#.e.s.e.#.f.g.h.g.d.#.d", +".a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.c.ifqd2fT.bb7bCgR#M#N#Oakax#u#Q#u#t#tak#Qawa#a.#Q#N#sbd#sbebeaics#b#ba6#baIam#s#t#t#ubi#ual#Qal#u#Q#tak#uak#u#u#uak#uak#uak#uak#taa#t#RfhgSae.b.#Qt.c.i.cQt.#.a.g.a.#Qt.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.bgBbZ.mcB.u.baXfGbtdo#t#t#N#Q#uak#u#t#u#P#Qa##Q#Q#u#u#u#t#t#t#u#t#t#t#u#t#u#t#tax#Qa.a#a.#Qak#u#O#u#t#u#t#taaakak#u#t#u#t#u#t#u#t#Pbg#t#Re5fbaN.o.#.d.#.e.#.d.g.f.#.d.#.d", +"Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#.igBb1.mcBc7asgtgTcOdr#s#Nbgax#Qak#Qak#Qak#Qak#Qa.#P#P#uak#Qak#Qa.awaw#Q#Q#Q#Q#Qa##Q#Q#ual#u#O#O#u#uak#u#uakaa#uak#uak#uak#uak#t#tbgbd#s#agUbZ.k.a.#.a.#.a.#Qt.#Qt.#.a.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.dgVaD.BeV#2cBc5.bfZfbbwah#t#t#t#P#Q#Q#u#P#u#t#u#P#Qak#Qa.#Q#Q#u#Q#Qa##Q#Q#Q#Q#u#Q#uak#tak#ubi#u#u#u#u#u#u#u#u#t#u#u#t#u#t#u#t#u#t#u#tbe#sbegWgX.e.#.d.#.d.#.d.#.e.#.d.#.d", +".a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#cB.B.ief.b#2cz.1bb#BgYbOb5ai#Oakaj#Qa.#u#O#t#O#uak#Q#Q#Q#Q#uaabgbga9ak#Q#P#taa#N#t#u#O#u#O#ual#Q#Q#uak#u#uaagx#tak#uak#uak#uak#t#t#t#tbeaPgZd3.zQt.#.b.cQt.#Qt.#.a.#Qt.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#cB.ebQa4bx.#.vaYg0g1g2.G.Xbpg3cs#t#u#Q#u#P#u#t#u#t#u#u#Qak#u#u#u#O#u#t#u#t#u#t#u#u#t#t#u#u#uak#Qal#u#t#t#t#tcsg4#M#t#t#u#t#u#t#u#t#tcsbebvbK.3.G.d.#.e.c.e.#.d.g.f.g.d.#.d", +"Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#.a.#.a.#.a.#.a.g.a.#.id1bIbWctcE#s#u#t#u#Q#Q#Q#uak#u#u#u#u#u#Q#t#t#u#O#t#O#u#Q#uaa#P#P#ual#Qak#Qawaa#s#sgkbmgzgRam#t#s#t#t#t#t#t#9#saPg5g6.M.ecKQt.#.a.#.a.g.a.g.a.#.a.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.f.g.f.g.f.g.d.#QtaN.i.GcYgef1gQg7ai#t#uaaaa#P#u#u#u#u#u#Q#Q#Q#u#t#u#t#uak#Pax#Q#Q#uak#u#O#u#t#tbeaPgfgl.Ld1bIbL#R#tbgeA#t#tam#sazaQ.O.G.o.n.f.#.d.g.f.g.f.g.f.#.d.#.d", +".a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#.a.#.a.#.a.#.o.m.l.xef.Hd3.Ng8c3decSai#t#t#uaa#Pa.a.b4b4a8a##Q#u#u#u#Q#Qa.a.a.aafl#N#N#tbd#9crg9bqbydW.c#Beeh.dCcs#tbd#9#tbeaPdLgiaX.r.qcB.mQt.#Qt.#.a.#.a.#.a.#Qt.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.g.d.#.d.#.d.c.l.xbZ.AbZgBfKcigMdlh#aI#N#s#t#u#u#u#Q#Q#Q#u#u#u#u#u#u#u#u#t#t#t#s#sa6dIbtbJ.FaS.ecv.h.#ef#UbCdC#r#s#setbvdL.OaX.B.##3.#.d.#.e.#.e.#.d.#.d.#.d.#.d", +"Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#Qt.#Qt.#.a.#bx.k.e.s.lgB.i.ceVc5.iaeb#eMgFdld9bv#R#s#s#t#s#t#t#u#t#u#t#t#s#s#s#ra0fmhahbb2hc.3.c.v.1gmfY.f.kbZaqhdbh##beaPdyg6.M.y.cQt.g.d#E.b.c.b.#Qt.#.a.#Qt.#.a.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.e.#.d.#.d.#.d.wQt.##2.z.r.z.e#Eczc5as.MdwaFhedtbnbzephfeya0dr#b#baIa6dre2#ScDdZfgeN.3aqfKd0fT.c.ocRggfN.h.gQt.mas.ZfbgUgWgZ.3.Gas.##3.u.v.#.o.#.e.#.d.#.d.g.d.#.d.#.d", +".a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.b.#.b.c.b.#Qt.#.E.kbx.k.p.k.b.k.o#Edf#Bb1hgdUc7b1.s.FaXcd#zeC#icJeNhhf4bogGe6ceb2.NfbeJ.r.mcB#2.r.k#3.u.v.j#3.m#3.u.r.xfqcuad.G.e.m.b.j.d.#Qt.z.b.#Qt.#.a.#.a.#.a.#Qt.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.e.#.e.#.e.#.e.#.e.##3.m.o.q#3.#Qt#EcBc5.o.#Qt#E.a.gcz.g.oc7ascaeHeJ#mbYcCbY#meJbZd0.y.s.b.#.a.#cB.#.e.#.e.m.e.m.d.ncG.u.ocK.e.z.ocK#C.C.e.j.o.zQt.#.d.#.d.g.f.g.f.g.d.#.d", +"Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#.b.c.b.#.b.c.b.#Qt.#.a.#Qt.#.a.#.a.#.a.#.b.#cB.#cB.g.d.gcB.m.e.m.b.#.b.#.b.c.b.c.b.c.b.#.b.#.b.#Qt.#.b.c.b.c.b.#.b.cQt.#.a.#Qt.#.b.c.b.c.b.c.b.#Qt.#.a.#Qt.#.a.#Qt.#.a.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.e.#.e.#.e.#.e.#.e.#.d.#.f.g.f.gcB.#.d.#.b.#.d.m.d.u.d.u.d.u.d.#cB.g.d.#cB.g.d.#cB.g.d.#.b.#.d.g.f.#.e.#.e.#.d.c.e.#.d.g.d.#.e.#.e.#.e.c.e.#.d.#.d.#.d.#.e.#.d.#.d.#.d", +".a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.b.#.b.c.b.#Qt.#.a.#.a.#.a.#Qt.#.b.c.b.c.e.#.b.#.d.#cB.#.i.x.i.c.b.#Qt.#.a.g.a.g.a.#.a.gaT.J.a.#.a.g.a.#.b.c.i.c.a.#.b.c.b.#.b.c.b.c.b.#.a.#.b.c.b.c.b.#.a.#Qt.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.g.d.#.d.#.e.#.e.#.e.#.d.g.f.g.f.#.d.#.e.#.e.#.e.m.e.#.d.#.d.#.e.s#B.s.e.#.e.#.d.g.f.g.d.g.d.#.f.1.h.g.d.g.h.g.f.#.e.c.e.g.d.#.e.#.d.#.e.c.e.#.e.#.d.#.e.#.e.#.d.#.d.#.d", +"Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#.a.g.a.#Qt.#.b.#.b.cQt.#.a.#.a.#.b.c.b.c.b.#.a.#.a.#.a.#Qt.#Qt.#.a.#.a.#.a.#.a.#Qt.#.b.c.i.c.i.c.a.g.a.#.a.g.a.#Qt.#Qt.#.a.#Qt.#Qt.#.b.c.b.cQt.#Qt.#.b.c.b.#.a.#.a.#.a.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.g.h.g.f.#.d.#.e.#.e.#.d.#.d.g.d.#.e.#.e.#.e.#.d.#.d.g.d.#.d.#.d.g.h.g.h.g.f.g.d.#.e.c.e.s#B.s#B.#.d.#.d.#.d.g.f.g.f.g.d.#.d.#.d.#.d.#.e.#.e.#.d.#.e.#.e.#.d.g.h.g.d.#.d", +".a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.J.a.g.a.#.b.c.b.#Qt.#.a.#.a.#.f.##C.##C.##C.c#C.cQt.c#C.jQt.j.f.#.f.#.f.##C.c#C.c#C.c#C.c#C.c.b.cQt.#.a.#Qt.#.a.J.a.#Qt.#Qt.#.a.#.b.c.b.#Qt.#Qt.#.b.c.a.JhifY.a.#Qt.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.g.h.g.f.g.d.#.e.#.e.#.d.#.d.#.d.g.f.#.f.#.e.#.e.c.e.c#C.#.f.#.f.g.f.#.f.#.d.#.e.#.e.#.e.#.d.#.e.c.e.#.d.#.d.#.d.g.h.g.f.#.e.#.d.g.d.#.e.#.e.#.d.#.d.#.e.g.hfY.h.g.d.#.d", +"Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#.a.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#Qt.#Qt.#Qt.#Qt.#.a.#Qt.#.a.#Qt.#Qt.#Qt.#Qt.#Qt.#.a.#Qt.#.a.#Qt.#.a.#.a.#.a.#Qt.#.a.#Qt.#Qt.#Qt.#.a.#Qt.#Qt.#.a.#.a.g.a.#.a.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d", +".a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#.a.#Qt.#", +".#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d.#.d"}; + + +/* + * Constructs a WidgetsBase which is a child of 'parent', with the + * name 'name' and widget flags set to 'f' + */ +WidgetsBase( QWidget parent, String name, int fl ) +{ + super( parent, name, fl ); + QPixmap image0 = new QPixmap( ( String[] ) image0_data ); + QPixmap image1 = new QPixmap( ( String[] ) image1_data ); + QPixmap image2 = new QPixmap( ( String[] ) image2_data ); + QPixmap image3 = new QPixmap( ( String[] ) image3_data ); + QPixmap image4 = new QPixmap( ( String[] ) image4_data ); + QPixmap image5 = new QPixmap( ( String[] ) image5_data ); + QPixmap image6 = new QPixmap( ( String[] ) image6_data ); + QPixmap image7 = new QPixmap( ( String[] ) image7_data ); + QPixmap image8 = new QPixmap( ( String[] ) image8_data ); + QPixmap image9 = new QPixmap( ( String[] ) image9_data ); + QPixmap image10 = new QPixmap( ( String[] ) image10_data ); + QPixmap image11 = new QPixmap( ( String[] ) image11_data ); + QPixmap image12 = new QPixmap( ( String[] ) image12_data ); + QPixmap image13 = new QPixmap( ( String[] ) image13_data ); + QPixmap image14 = new QPixmap( ( String[] ) image14_data ); + QPixmap image15 = new QPixmap( ( String[] ) image15_data ); + QPixmap image16 = new QPixmap( ( String[] ) image16_data ); + QPixmap image17 = new QPixmap( ( String[] ) image17_data ); + QPixmap image18 = new QPixmap( ( String[] ) image18_data ); + QPixmap image19 = new QPixmap( ( String[] ) image19_data ); + QPixmap image20 = new QPixmap( ( String[] ) image20_data ); + QPixmap image21 = new QPixmap( ( String[] ) image21_data ); + QPixmap image22 = new QPixmap( ( String[] ) image22_data ); + QPixmap image23 = new QPixmap( ( String[] ) image23_data ); + QPixmap image24 = new QPixmap( ( String[] ) image24_data ); + QPixmap image25 = new QPixmap( ( String[] ) image25_data ); + QPixmap image26 = new QPixmap( ( String[] ) image26_data ); + QPixmap image27 = new QPixmap( ( String[] ) image27_data ); + QPixmap image28 = new QPixmap( ( String[] ) image28_data ); + QPixmap image29 = new QPixmap( ( String[] ) image29_data ); + QPixmap image30 = new QPixmap( ( String[] ) image30_data ); + QPixmap image31 = new QPixmap( ( String[] ) image31_data ); + QPixmap image32 = new QPixmap( ( String[] ) image32_data ); + QPixmap image33 = new QPixmap( ( String[] ) image33_data ); + QPixmap image34 = new QPixmap( ( String[] ) image34_data ); + QPixmap image35 = new QPixmap( ( String[] ) image35_data ); + QPixmap image36 = new QPixmap( ( String[] ) image36_data ); + QPixmap image37 = new QPixmap( ( String[] ) image37_data ); + QPixmap image38 = new QPixmap( ( String[] ) image38_data ); + QPixmap image39 = new QPixmap( ( String[] ) image39_data ); + QPixmap image40 = new QPixmap( ( String[] ) image40_data ); + QPixmap image41 = new QPixmap( ( String[] ) image41_data ); + if ( name == null ) + setName( "WidgetsBase" ); + resize( 718, 565 ); + setCaption( trUtf8( "Widgets" ) ); + WidgetsBaseLayout = new QGridLayout( this ); + WidgetsBaseLayout.setSpacing( 6 ); + WidgetsBaseLayout.setMargin( 11 ); + + ListBox3 = new QListBox( this, "ListBox3" ); + ListBox3.insertItem( image0, trUtf8( "Applix", "" ) ); + ListBox3.insertItem( image1, trUtf8( "Binary", "" ) ); + ListBox3.insertItem( image2, trUtf8( "Core", "" ) ); + ListBox3.insertItem( image3, trUtf8( "Deb", "" ) ); + ListBox3.insertItem( image4, trUtf8( "Document", "" ) ); + ListBox3.insertItem( image5, trUtf8( "Pdf", "" ) ); + ListBox3.insertItem( image6, trUtf8( "Readme", "" ) ); + ListBox3.insertItem( image7, trUtf8( "Shellscript", "" ) ); + ListBox3.insertItem( image8, trUtf8( "Recycled", "" ) ); + ListBox3.insertItem( image9, trUtf8( "Video", "" ) ); + + WidgetsBaseLayout.addWidget( ListBox3, 2, 0 ); + + TextEdit1 = new QTextEdit( this, "TextEdit1" ); + TextEdit1.setText( trUtf8( "

Richtext

\n" ++ "

Qt supports formatted rich text, such as the heading above, emphasized, bold and underlined text, as well as colored text. This is red, while this is green, and this is blue.

\n" ++ "<> \n" ++ "" ) ); + + WidgetsBaseLayout.addWidget( TextEdit1, 2, 1 ); + + TabWidget2 = new QTabWidget( this, "TabWidget2" ); + + tab = new QWidget( TabWidget2, "tab" ); + tabLayout = new QGridLayout( tab ); + tabLayout.setSpacing( 6 ); + tabLayout.setMargin( 11 ); + + IconView1 = new QIconView( tab, "IconView1" ); + item1 = new QIconViewItem( IconView1, trUtf8( "Item 1", "" ), image10 ); + item2 = new QIconViewItem( IconView1, trUtf8( "Item 2", "" ), image11 ); + item3 = new QIconViewItem( IconView1, trUtf8( "Item 3", "" ), image12 ); + item4 = new QIconViewItem( IconView1, trUtf8( "Item 4", "" ), image13 ); + item5 = new QIconViewItem( IconView1, trUtf8( "Item 5", "" ), image14 ); + item6 = new QIconViewItem( IconView1, trUtf8( "Item 6", "" ), image15 ); + item7 = new QIconViewItem( IconView1, trUtf8( "Item 7", "" ), image16 ); + item8 = new QIconViewItem( IconView1, trUtf8( "Item 8", "" ), image17 ); + item9 = new QIconViewItem( IconView1, trUtf8( "Item 9", "" ), image18 ); + item10 = new QIconViewItem( IconView1, trUtf8( "Item 10", "" ), image19 ); + item11 = new QIconViewItem( IconView1, trUtf8( "Item 11", "" ), image20 ); + item12 = new QIconViewItem( IconView1, trUtf8( "Item 12", "" ), image21 ); + item13 = new QIconViewItem( IconView1, trUtf8( "Item 13", "" ), image22 ); + item14 = new QIconViewItem( IconView1, trUtf8( "Item 14", "" ), image23 ); + item15 = new QIconViewItem( IconView1, trUtf8( "Item 15", "" ), image24 ); + item16 = new QIconViewItem( IconView1, trUtf8( "Item 16", "" ), image25 ); + item17 = new QIconViewItem( IconView1, trUtf8( "Item 17", "" ), image26 ); + IconView1.setArrangement( QIconView.LeftToRight ); + IconView1.setResizeMode( QIconView.Adjust ); + + tabLayout.addWidget( IconView1, 0, 0 ); + TabWidget2.insertTab( tab, trUtf8( "Iconview", "" ) ); + + tab_2 = new QWidget( TabWidget2, "tab_2" ); + tabLayout_2 = new QGridLayout( tab_2 ); + tabLayout_2.setSpacing( 6 ); + tabLayout_2.setMargin( 11 ); + + Table1 = new QTable( tab_2, "Table1" ); + Table1.setNumCols( Table1.numCols() + 1 ); Table1.horizontalHeader().setLabel( Table1.numCols() - 1, trUtf8( "Tables", "" ) ); + Table1.setNumCols( Table1.numCols() + 1 ); Table1.horizontalHeader().setLabel( Table1.numCols() - 1, trUtf8( "are", "" ) ); + Table1.setNumCols( Table1.numCols() + 1 ); Table1.horizontalHeader().setLabel( Table1.numCols() - 1, trUtf8( "easy", "" ) ); + Table1.setNumCols( Table1.numCols() + 1 ); Table1.horizontalHeader().setLabel( Table1.numCols() - 1, trUtf8( "with", "" ) ); + Table1.setNumCols( Table1.numCols() + 1 ); Table1.horizontalHeader().setLabel( Table1.numCols() - 1, trUtf8( "Qt", "" ) ); + Table1.setNumCols( Table1.numCols() + 1 ); Table1.horizontalHeader().setLabel( Table1.numCols() - 1, trUtf8( "6", "" ) ); + Table1.setNumCols( Table1.numCols() + 1 ); Table1.horizontalHeader().setLabel( Table1.numCols() - 1, trUtf8( "7", "" ) ); + Table1.setNumCols( Table1.numCols() + 1 ); Table1.horizontalHeader().setLabel( Table1.numCols() - 1, trUtf8( "8", "" ) ); + Table1.setNumCols( Table1.numCols() + 1 ); Table1.horizontalHeader().setLabel( Table1.numCols() - 1, trUtf8( "9", "" ) ); + Table1.setNumCols( Table1.numCols() + 1 ); Table1.horizontalHeader().setLabel( Table1.numCols() - 1, trUtf8( "10", "" ) ); + Table1.setNumCols( Table1.numCols() + 1 ); Table1.horizontalHeader().setLabel( Table1.numCols() - 1, trUtf8( "11", "" ) ); + Table1.setNumCols( Table1.numCols() + 1 ); Table1.horizontalHeader().setLabel( Table1.numCols() - 1, trUtf8( "12", "" ) ); + Table1.setNumRows( Table1.numRows() + 1 ); Table1.verticalHeader().setLabel( Table1.numRows() - 1, new QIconSet(image27), trUtf8( "", "" ) ); + Table1.setNumRows( Table1.numRows() + 1 ); Table1.verticalHeader().setLabel( Table1.numRows() - 1, new QIconSet(image28), trUtf8( "", "" ) ); + Table1.setNumRows( Table1.numRows() + 1 ); Table1.verticalHeader().setLabel( Table1.numRows() - 1, new QIconSet(image29), trUtf8( "", "" ) ); + Table1.setNumRows( Table1.numRows() + 1 ); Table1.verticalHeader().setLabel( Table1.numRows() - 1, trUtf8( "4", "" ) ); + Table1.setNumRows( Table1.numRows() + 1 ); Table1.verticalHeader().setLabel( Table1.numRows() - 1, trUtf8( "5", "" ) ); + Table1.setNumRows( Table1.numRows() + 1 ); Table1.verticalHeader().setLabel( Table1.numRows() - 1, trUtf8( "6", "" ) ); + Table1.setNumRows( Table1.numRows() + 1 ); Table1.verticalHeader().setLabel( Table1.numRows() - 1, trUtf8( "7", "" ) ); + Table1.setNumRows( Table1.numRows() + 1 ); Table1.verticalHeader().setLabel( Table1.numRows() - 1, trUtf8( "8", "" ) ); + Table1.setNumRows( Table1.numRows() + 1 ); Table1.verticalHeader().setLabel( Table1.numRows() - 1, trUtf8( "9", "" ) ); + Table1.setNumRows( Table1.numRows() + 1 ); Table1.verticalHeader().setLabel( Table1.numRows() - 1, trUtf8( "10", "" ) ); + Table1.setNumRows( Table1.numRows() + 1 ); Table1.verticalHeader().setLabel( Table1.numRows() - 1, trUtf8( "11", "" ) ); + Table1.setNumRows( Table1.numRows() + 1 ); Table1.verticalHeader().setLabel( Table1.numRows() - 1, trUtf8( "12", "" ) ); + Table1.setNumRows( Table1.numRows() + 1 ); Table1.verticalHeader().setLabel( Table1.numRows() - 1, trUtf8( "13", "" ) ); + Table1.setNumRows( 13 ); + Table1.setNumCols( 12 ); + + tabLayout_2.addWidget( Table1, 0, 0 ); + TabWidget2.insertTab( tab_2, trUtf8( "Table", "" ) ); + + tab_3 = new QWidget( TabWidget2, "tab_3" ); + tabLayout_3 = new QGridLayout( tab_3 ); + tabLayout_3.setSpacing( 6 ); + tabLayout_3.setMargin( 11 ); + + ListView3 = new QListView( tab_3, "ListView3" ); + ListView3.addColumn( trUtf8( "Things", "" ) ); + ListView3.addColumn( trUtf8( "Text", "" ) ); + ListView3.addColumn( trUtf8( "Stuff", "" ) ); + item_1 = new QListViewItem( ListView3, "" ); + item_1.setPixmap( 0, image30 ); + item_1.setText( 1, trUtf8( "Airbrush", "" ) ); + item_1.setPixmap( 1, image31 ); + item_1.setText( 2, trUtf8( "What stuff?", "" ) ); + + item_4 = new QListViewItem( ListView3, item_1 ); + item_4.setPixmap( 0, image32 ); + item_4.setText( 1, trUtf8( "Eraser", "" ) ); + item_4.setPixmap( 1, image31 ); + item_4.setText( 2, trUtf8( "Here?", "" ) ); + + item_2 = new QListViewItem( ListView3, item_4 ); + item_2.setOpen( true ); + item_3 = new QListViewItem( item_2, item_4 ); + item_3.setOpen( true ); + item_5 = new QListViewItem( item_3, item_4 ); + item_5.setText( 0, trUtf8( "Subitem", "" ) ); + item_5.setPixmap( 0, image28 ); + item_3.setText( 0, trUtf8( "Pixmap subitem 1", "" ) ); + item_2.setOpen( true ); + item_6 = new QListViewItem( item_2, item_3 ); + item_6.setText( 0, trUtf8( "Pixmap subitem 2 ", "" ) ); + item_2.setText( 0, trUtf8( "Pixmap item", "" ) ); + item_2.setPixmap( 0, image33 ); + item_2.setText( 1, trUtf8( "Nothing", "" ) ); + item_2.setText( 2, trUtf8( "Nothing Again", "" ) ); + + ListView3.setAllColumnsShowFocus( true ); + ListView3.setResizeMode( QListView.AllColumns ); + + tabLayout_3.addWidget( ListView3, 0, 0 ); + TabWidget2.insertTab( tab_3, trUtf8( "Listview", "" ) ); + + WidgetsBaseLayout.addMultiCellWidget( TabWidget2, 3, 3, 0, 1 ); + + groupBox = new QGroupBox( this, "groupBox" ); + groupBox.setTitle( trUtf8( "Group box" ) ); + groupBox.setColumnLayout(0, Qt.Vertical ); + groupBox.layout().setSpacing( 0 ); + groupBox.layout().setMargin( 0 ); + groupBoxLayout = new QGridLayout( groupBox.layout() ); + groupBoxLayout.setAlignment( Qt.AlignTop ); + groupBoxLayout.setSpacing( 6 ); + groupBoxLayout.setMargin( 11 ); + + lcdDisplay = new QLCDNumber( groupBox, "lcdDisplay" ); + sizePolicy1 = new QSizePolicy(); + sizePolicy1.setHorData(7); + sizePolicy1.setVerData(7); + sizePolicy1.setHeightForWidth(lcdDisplay.sizePolicy().hasHeightForWidth()); + lcdDisplay.setSizePolicy( sizePolicy1 ); + lcdDisplay.setNumDigits( 2 ); + lcdDisplay.setSegmentStyle( QLCDNumber.Filled ); + + groupBoxLayout.addMultiCellWidget( lcdDisplay, 0, 2, 3, 3 ); + + slider = new QSlider( groupBox, "slider" ); + slider.setOrientation( QSlider.Horizontal ); + slider.setTickmarks( QSlider.Left ); + slider.setTickInterval( 5 ); + + groupBoxLayout.addWidget( slider, 2, 2 ); + + TextLabel1_2 = new QLabel( groupBox, "TextLabel1_2" ); + TextLabel1_2.setText( trUtf8( "Pick a base color:" ) ); + + groupBoxLayout.addWidget( TextLabel1_2, 0, 0 ); + + pushButton = new QPushButton( groupBox, "pushButton" ); + pushButton.setCursor( new QCursor( 0 ) ); + pushButton.setText( trUtf8( "&Reset colors" ) ); + + groupBoxLayout.addWidget( pushButton, 2, 0 ); + + buttonColorBox = new QComboBox( false, groupBox, "buttonColorBox" ); + buttonColorBox.insertItem( image34, trUtf8( "pale green", "" ) ); + buttonColorBox.insertItem( image35, trUtf8( "deep sky blue", "" ) ); + buttonColorBox.insertItem( image36, trUtf8( "steel blue", "" ) ); + buttonColorBox.insertItem( image37, trUtf8( "powder blue", "" ) ); + buttonColorBox.insertItem( image38, trUtf8( "sandy brown", "" ) ); + buttonColorBox.insertItem( image39, trUtf8( "dark orange", "" ) ); + buttonColorBox.insertItem( image40, trUtf8( "indian red", "" ) ); + + groupBoxLayout.addWidget( buttonColorBox, 1, 0 ); + + lineEdit = new QLineEdit( groupBox, "lineEdit" ); + lineEdit.setText( trUtf8( "hot pink" ) ); + + groupBoxLayout.addWidget( lineEdit, 1, 1 ); + + TextLabel1_2_2 = new QLabel( groupBox, "TextLabel1_2_2" ); + TextLabel1_2_2.setText( trUtf8( "Enter a color name and hit return:" ) ); + + groupBoxLayout.addWidget( TextLabel1_2_2, 0, 1 ); + + spinBox = new QSpinBox( groupBox, "spinBox" ); + + groupBoxLayout.addWidget( spinBox, 1, 2 ); + + progressBar = new QProgressBar( groupBox, "progressBar" ); + + groupBoxLayout.addWidget( progressBar, 0, 2 ); + + colorTest = new QLabel( groupBox, "colorTest" ); + colorTest.setFrameShape( QLabel.Box ); + colorTest.setFrameShadow( QLabel.Sunken ); + colorTest.setText( trUtf8( "Color test area" ) ); + colorTest.setAlignment( QLabel.AlignAuto | QLabel.AlignCenter ); + + groupBoxLayout.addWidget( colorTest, 2, 1 ); + + WidgetsBaseLayout.addMultiCellWidget( groupBox, 1, 1, 0, 1 ); + + Layout9 = new QHBoxLayout(); + Layout9.setSpacing( 6 ); + Layout9.setMargin( 0 ); + + PixmapLabel1 = new QLabel( this, "PixmapLabel1" ); + PixmapLabel1.setFrameShape( QLabel.Panel ); + PixmapLabel1.setMargin( 1 ); + PixmapLabel1.setPixmap( image41 ); + PixmapLabel1.setScaledContents( true ); + Layout9.addWidget( PixmapLabel1 ); + + ButtonGroup1 = new QButtonGroup( this, "ButtonGroup1" ); + ButtonGroup1.setTitle( trUtf8( "Check boxes" ) ); + ButtonGroup1.setColumnLayout(0, Qt.Vertical ); + ButtonGroup1.layout().setSpacing( 0 ); + ButtonGroup1.layout().setMargin( 0 ); + ButtonGroup1Layout = new QGridLayout( ButtonGroup1.layout() ); + ButtonGroup1Layout.setAlignment( Qt.AlignTop ); + ButtonGroup1Layout.setSpacing( 6 ); + ButtonGroup1Layout.setMargin( 11 ); + + CheckBox1 = new QCheckBox( ButtonGroup1, "CheckBox1" ); + CheckBox1.setText( trUtf8( "Apples" ) ); + + ButtonGroup1Layout.addWidget( CheckBox1, 0, 0 ); + + CheckBox2 = new QCheckBox( ButtonGroup1, "CheckBox2" ); + CheckBox2.setText( trUtf8( "Banana" ) ); + + ButtonGroup1Layout.addWidget( CheckBox2, 1, 0 ); + + CheckBox3 = new QCheckBox( ButtonGroup1, "CheckBox3" ); + CheckBox3.setText( trUtf8( "Orange" ) ); + CheckBox3.setChecked( true ); + + ButtonGroup1Layout.addWidget( CheckBox3, 2, 0 ); + Layout9.addWidget( ButtonGroup1 ); + + ButtonGroup2 = new QButtonGroup( this, "ButtonGroup2" ); + ButtonGroup2.setTitle( trUtf8( "Radio buttons" ) ); + ButtonGroup2.setColumnLayout(0, Qt.Vertical ); + ButtonGroup2.layout().setSpacing( 0 ); + ButtonGroup2.layout().setMargin( 0 ); + ButtonGroup2Layout = new QGridLayout( ButtonGroup2.layout() ); + ButtonGroup2Layout.setAlignment( Qt.AlignTop ); + ButtonGroup2Layout.setSpacing( 6 ); + ButtonGroup2Layout.setMargin( 11 ); + + RadioButton3 = new QRadioButton( ButtonGroup2, "RadioButton3" ); + RadioButton3.setText( trUtf8( "Sprite" ) ); + + ButtonGroup2Layout.addWidget( RadioButton3, 1, 0 ); + + RadioButton4 = new QRadioButton( ButtonGroup2, "RadioButton4" ); + RadioButton4.setText( trUtf8( "Farris" ) ); + + ButtonGroup2Layout.addWidget( RadioButton4, 2, 0 ); + + RadioButton2 = new QRadioButton( ButtonGroup2, "RadioButton2" ); + RadioButton2.setText( trUtf8( "Solo" ) ); + RadioButton2.setChecked( true ); + + ButtonGroup2Layout.addWidget( RadioButton2, 0, 0 ); + Layout9.addWidget( ButtonGroup2 ); + + GroupBox1 = new QGroupBox( this, "GroupBox1" ); + sizePolicy2 = new QSizePolicy(); + sizePolicy2.setHorData(7); + sizePolicy2.setVerData(7); + sizePolicy2.setHeightForWidth(GroupBox1.sizePolicy().hasHeightForWidth()); + GroupBox1.setSizePolicy( sizePolicy2 ); + GroupBox1.setTitle( trUtf8( "Date/Time editors" ) ); + GroupBox1.setColumnLayout(0, Qt.Vertical ); + GroupBox1.layout().setSpacing( 0 ); + GroupBox1.layout().setMargin( 0 ); + GroupBox1Layout = new QGridLayout( GroupBox1.layout() ); + GroupBox1Layout.setAlignment( Qt.AlignTop ); + GroupBox1Layout.setSpacing( 6 ); + GroupBox1Layout.setMargin( 11 ); + + clock = new AnalogClock( GroupBox1, "clock" ); + sizePolicy3 = new QSizePolicy(); + sizePolicy3.setHorData(0); + sizePolicy3.setVerData(0); + sizePolicy3.setHeightForWidth(clock.sizePolicy().hasHeightForWidth()); + clock.setSizePolicy( sizePolicy3 ); + clock.setMinimumSize( new QSize( 100, 100 ) ); + + GroupBox1Layout.addMultiCellWidget( clock, 0, 2, 0, 0 ); + + dateEdit = new QDateEdit( GroupBox1, "dateEdit" ); + + GroupBox1Layout.addWidget( dateEdit, 1, 1 ); + + timeEdit = new QTimeEdit( GroupBox1, "timeEdit" ); + timeEdit.setAutoAdvance( true ); + + GroupBox1Layout.addWidget( timeEdit, 2, 1 ); + + Layout5 = new QHBoxLayout(); + Layout5.setSpacing( 6 ); + Layout5.setMargin( 0 ); + + dateTimeLabel = new QLabel( GroupBox1, "dateTimeLabel" ); + dateTimeLabel.setText( trUtf8( "DateTime string goes here!" ) ); + Layout5.addWidget( dateTimeLabel ); + QSpacerItem spacer = new QSpacerItem( 20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum ); + Layout5.addItem( spacer ); + + GroupBox1Layout.addLayout( Layout5, 0, 1 ); + Layout9.addWidget( GroupBox1 ); + + WidgetsBaseLayout.addMultiCellLayout( Layout9, 0, 0, 0, 1 ); + + + + + + // signals and slots connections + connect( slider, SIGNAL( "valueChanged(int)" ), lcdDisplay, SLOT( "display(int)" ) ); + connect( slider, SIGNAL( "valueChanged(int)" ), progressBar, SLOT( "setProgress(int)" ) ); + connect( dateEdit, SIGNAL( "valueChanged(Calendar)" ), this, SLOT( "updateDateTimeString()" ) ); + connect( slider, SIGNAL( "valueChanged(int)" ), spinBox, SLOT( "setValue(int)" ) ); + connect( spinBox, SIGNAL( "valueChanged(int)" ), slider, SLOT( "setValue(int)" ) ); + connect( spinBox, SIGNAL( "valueChanged(int)" ), progressBar, SLOT( "setProgress(int)" ) ); + connect( spinBox, SIGNAL( "valueChanged(int)" ), lcdDisplay, SLOT( "display(int)" ) ); + connect( buttonColorBox, SIGNAL( "activated(String)" ), this, SLOT( "setColor(String)" ) ); + connect( lineEdit, SIGNAL( "textChanged(String)" ), this, SLOT( "updateColorTest(String)" ) ); + connect( lineEdit, SIGNAL( "returnPressed()" ), this, SLOT( "setColor()" ) ); + connect( timeEdit, SIGNAL( "valueChanged(Date)" ), this, SLOT( "updateDateTimeString()" ) ); + connect( timeEdit, SIGNAL( "valueChanged(Date)" ), this, SLOT( "updateClock()" ) ); + connect( pushButton, SIGNAL( "clicked()" ), this, SLOT( "resetColors()" ) ); + + init(); +} + +WidgetsBase( QWidget parent, String name) +{ + this(parent, name, 0); +} + +WidgetsBase( QWidget parent) +{ + this(parent, null, 0); +} + +WidgetsBase( ) +{ + this(null, null, 0); +} + +public void resetColors() +{ + groupBox.setPalette( palette() ); +} + +public void setColor() +{ + setColor( lineEdit.text() ); +} + +public void updateClock() +{ + clock.setTime( timeEdit.time() ); +} + +void init() +{ + timeEdit.setTime( new Date() ); + dateEdit.setDate( Calendar.getInstance() ); +} + +public void destroy() +{ +} + +public void setColor(String color) +{ + groupBox.setPalette( new QPalette(new QColor( color )) ); +} + +public void updateColorTest(String color) +{ + colorTest.setPalette( new QPalette(new QColor( color )) ); +} + +public void updateDateTimeString() +{ +// Calendar dt = Calendar.getInstance(); + DateFormat df = DateFormat.getInstance(); +// df.setCalendar(dt); +// dt.setDate( dateEdit.date() ); +// dt.setTime( timeEdit.time() ); + dateTimeLabel.setText( df.format(timeEdit.time()) ); +} + +} diff --git a/qtjava/javalib/examples/dragdrop/DropSite.java b/qtjava/javalib/examples/dragdrop/DropSite.java new file mode 100644 index 00000000..3584f1e4 --- /dev/null +++ b/qtjava/javalib/examples/dragdrop/DropSite.java @@ -0,0 +1,167 @@ +/*************************************************************************** +* $Id$ +** +* Drop site example implementation +** +* Created : 979899 +** +* Copyright (C) 1997 by Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ +import org.kde.qt.*; +import java.util.*; + + +class DropSite extends QLabel +{ + SecretSource s; + +void setSecretSource(SecretSource source) +{ + s = source; +} + +DropSite( QWidget parent ) +{ + this(parent, null); +} + +DropSite( QWidget parent, String name ) +{ + super( parent, name ); + setAcceptDrops(true); +} + + +{ + // nothing necessary +} + + +protected void dragMoveEvent( QDragMoveEvent e ) +{ + // Check if you want the drag at e.pos()... + // Give the user some feedback... +} + + +protected void dragEnterEvent( QDragEnterEvent e ) +{ + // Check if you want the drag... + if ( SecretDrag.canDecode( e ) + || QTextDrag.canDecode( e ) + || QImageDrag.canDecode( e ) + || QUriDrag.canDecode( e ) ) { + e.accept(); + } + + // Give the user some feedback... + String t = ""; + for( int i=0; e.format( i ) != null; i++ ) { + t += "\n"; + t += e.format( i ); + } + emit("message", t ); + setBackgroundColor(white()); +} + +protected void dragLeaveEvent( QDragLeaveEvent e ) +{ + // Give the user some feedback... + emit("message", ""); + setBackgroundColor(lightGray()); +} + + +protected void dropEvent( QDropEvent e ) +{ + setBackgroundColor(lightGray()); + + // Try to decode to the data you understand... + + StringBuffer str = new StringBuffer(""); + if ( QTextDrag.decode( e, str ) ) { + setText( str.toString() ); + setMinimumSize( minimumSize().expandedTo( sizeHint() ) ); + return; + } + + QPixmap pm = new QPixmap(); + if ( QImageDrag.decode( e, pm ) ) { + setPixmap( pm ); + setMinimumSize( minimumSize().expandedTo( sizeHint() ) ); + return; + } + + ArrayList strings = new ArrayList(); + if ( QUriDrag.decode( e, strings ) ) { + String m = "Full URLs:\n"; + Iterator it = strings.iterator(); + while (it.hasNext()) + m += " " + (String) it.next() + "\n"; + ArrayList files = new ArrayList(); + if ( QUriDrag.decodeLocalFiles( e, files ) ) { + m = m + "Files:\n"; + Iterator i = strings.iterator(); + while (i.hasNext()) + m = m + " " + (String) i.next() + "\n"; + } + setText( m ); + setMinimumSize( minimumSize().expandedTo( sizeHint() ) ); + return; + } + + if ( SecretDrag.decode( e, str ) ) { + setText( str.toString() ); + setMinimumSize( minimumSize().expandedTo( sizeHint() ) ); + return; + } +} + +protected void mousePressEvent( QMouseEvent e ) +{ + QDragObject drobj; + if ( pixmap() != null ) { + drobj = new QImageDrag( pixmap().convertToImage(), this ); + QPixmap pm = new QPixmap(); + pm.convertFromImage(pixmap().convertToImage().smoothScale( + pixmap().width()/3,pixmap().height()/3)); + drobj.setPixmap(pm,new QPoint(-5,-7)); + // Try it. +// new DragMoviePlayer(drobj); + } else { + drobj = new QTextDrag( text(), this ); + } + drobj.dragCopy(); +} + +class DragMoviePlayer extends QObject { + QDragObject dobj; + QMovie movie; + +DragMoviePlayer( QDragObject p ) +{ +// QObject(p), + dobj = p; + movie = new QMovie("trolltech.gif" ); + movie.connectUpdate(this,SLOT("updatePixmap(QRect)")); +} + +void updatePixmap( QRect rect ) +{ + dobj.setPixmap(movie.framePixmap()); +} + + +} + +void backgroundColorChange( QColor color ) +{ + // Reduce flicker by using repaint() rather than update() + repaint(); +} + +} diff --git a/qtjava/javalib/examples/dragdrop/Main.java b/qtjava/javalib/examples/dragdrop/Main.java new file mode 100644 index 00000000..3297aaec --- /dev/null +++ b/qtjava/javalib/examples/dragdrop/Main.java @@ -0,0 +1,87 @@ +/*************************************************************************** +* $Id$ +** +* Ritual main() for Qt applications +** +* Copyright (C) 1996 by Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + +public class Main { + + +static DropSite addStuff( QWidget parent, boolean image ) +{ + return addStuff(parent, image, false); +} + +static DropSite addStuff( QWidget parent, boolean image, boolean secret ) +{ + QVBoxLayout tll = new QVBoxLayout( parent, 10 ); + DropSite d = new DropSite( parent ); + d.setFrameStyle( QFrame.Sunken + QFrame.WinPanel ); + tll.addWidget( d ); + if ( image ) { + QPixmap stuff = new QPixmap(); + if ( !stuff.load( "trolltech.bmp" ) ) { + stuff = new QPixmap(20,20); + stuff.fill(Qt.green()); + } + d.setPixmap( stuff ); + } else { + d.setText("Drag and Drop"); + } + d.setFont(new QFont("Helvetica",18)); + if ( secret ) { + SecretSource s = new SecretSource( (byte) 42, parent ); + tll.addWidget( s ); + d.setSecretSource( s); + } + + QLabel format = new QLabel( "\n\n\n\nNone\n\n\n\n", parent ); + tll.addWidget( format ); + tll.activate(); + parent.resize( parent.sizeHint() ); + + QObject.connect( d, Qt.SIGNAL("message(String)"), + format, Qt.SLOT("setText(String)") ); + return d; +} + + + + +public static void main( String[] args ) +{ + QApplication a = new QApplication( args ); + + QWidget mw = new QWidget(); + DropSite d1 = addStuff( mw, true ); + mw.setCaption( "Qt Example - Drag and Drop" ); + mw.show(); + + QWidget mw2 = new QWidget(); + DropSite d2 = addStuff( mw2, false ); + mw2.setCaption( "Qt Example - Drag and Drop" ); + mw2.show(); + + QWidget mw3 = new QWidget(); + DropSite d3 = addStuff( mw3, true, true ); + mw3.setCaption( "Qt Example - Drag and Drop" ); + mw3.show(); + + QObject.connect(Qt.qApp(),Qt.SIGNAL("lastWindowClosed()"),Qt.qApp(),Qt.SLOT("quit()")); + a.exec(); + return; +} + +static { + qtjava.initialize(); +} + +} diff --git a/qtjava/javalib/examples/dragdrop/SecretDrag.java b/qtjava/javalib/examples/dragdrop/SecretDrag.java new file mode 100644 index 00000000..fd12aed3 --- /dev/null +++ b/qtjava/javalib/examples/dragdrop/SecretDrag.java @@ -0,0 +1,53 @@ +/*************************************************************************** +* $Id$ +** +* Custom MIME type implementation example +** +* Created : 979899 +** +* Copyright (C) 1997 by Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ +import org.kde.qt.*; + + +class SecretDrag extends QStoredDrag { + +//create the object withe the secret byte +public SecretDrag( byte secret, QWidget parent, String name ) +{ + super( "secret/magic", parent, name ); + byte[] data = { 0 }; + data[0]= secret; + setEncodedData( data ); +} + +public SecretDrag( byte secret, QWidget parent ) +{ + this(secret, parent, null); +} + + +public static boolean canDecode( QDragMoveEvent e ) +{ + return e.provides( "secret/magic" ); +} + +//decode it into a string +public static boolean decode( QDropEvent e, StringBuffer str ) +{ + byte[] payload = e.data( "secret/magic" ); + if ( payload.length > 0 ) { + e.accept(); + String msg = "The secret number is " + payload[0]; + str.setLength(0); + str.append(msg); + return true; + } + return false; +} + +} diff --git a/qtjava/javalib/examples/dragdrop/SecretSource.java b/qtjava/javalib/examples/dragdrop/SecretSource.java new file mode 100644 index 00000000..00824dee --- /dev/null +++ b/qtjava/javalib/examples/dragdrop/SecretSource.java @@ -0,0 +1,69 @@ +/*************************************************************************** +* $Id$ +** +* Custom MIME type implementation example +** +* Created : 979899 +** +* Copyright (C) 1997 by Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ +import org.kde.qt.*; + +class SecretSource extends QLabel +{ +private int mySecret; + +SecretSource( byte secret, QWidget parent ) +{ + this(secret, parent, null); +} + +SecretSource( byte secret, QWidget parent, String name ) +{ + super( "Secret", parent, name ); + setBackgroundColor( blue().light() ); + setFrameStyle( Box | Sunken ); + setMinimumHeight( sizeHint().height() * 2 ); + setAlignment( AlignCenter ); + mySecret = secret; +} + +{ +} + +/* XPM */ +static String picture_xpm[] = { +"16 16 3 1", +" c None", +". c #000000", +"X c #FFFF00", +" ..... ", +" ..XXXXX.. ", +" .XXXXXXXXX. ", +" .XXXXXXXXXXX. ", +" .XX..XXX..XX. ", +".XXXXXXXXXXXXX. ", +".XX...XXX...XX. ", +".XXX..XXX..XXX. ", +".XXXXXXXXXXXXX. ", +".XXXXXX.XXXXXX. ", +" .XX.XX.XX.XX. ", +" .XXX..X..XXX. ", +" .XXXXXXXXX. ", +" ..XXXXX.. ", +" ..... ", +" "}; + +protected void mousePressEvent( QMouseEvent e ) +{ + SecretDrag sd = new SecretDrag( (byte) mySecret, this ); + sd.setPixmap(new QPixmap(picture_xpm),new QPoint(8,8)); + sd.dragCopy(); + mySecret++; +} + +} diff --git a/qtjava/javalib/examples/dragdrop/trolltech.bmp b/qtjava/javalib/examples/dragdrop/trolltech.bmp new file mode 100644 index 00000000..220861e2 Binary files /dev/null and b/qtjava/javalib/examples/dragdrop/trolltech.bmp differ diff --git a/qtjava/javalib/examples/dragdrop/trolltech.gif b/qtjava/javalib/examples/dragdrop/trolltech.gif new file mode 100644 index 00000000..f674369e Binary files /dev/null and b/qtjava/javalib/examples/dragdrop/trolltech.gif differ diff --git a/qtjava/javalib/examples/drawlines/ConnectWidget.java b/qtjava/javalib/examples/drawlines/ConnectWidget.java new file mode 100644 index 00000000..c51f2703 --- /dev/null +++ b/qtjava/javalib/examples/drawlines/ConnectWidget.java @@ -0,0 +1,122 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ +import org.kde.qt.*; +import java.util.Random; + +// +// ConnectWidget - draws connected lines +// +class ConnectWidget extends QWidget +{ +static final int MAXPOINTS = 2000; // maximum number of points +static final int MAXCOLORS = 40; + +private QPoint[] points; // point array +private QColor[] colors; // color array +private int count; // count = number of points +private boolean down; // true if mouse down +private Random generator = new Random(System.currentTimeMillis()); + +// +// Constructs a ConnectWidget. +// +public ConnectWidget( ) +{ + this(null, null); +} + +public ConnectWidget( QWidget parent, String name ) +{ + super( parent, name, WStaticContents ); + setBackgroundColor( white() ); // white background + count = 0; + down = false; + points = new QPoint[MAXPOINTS]; + colors = new QColor[MAXCOLORS]; + for ( int i=0; iThis example implements a simple HTML help viewer " + + "using Qt's rich text capabilities

" + + "

It's just about 100 lines of Java code, so don't expect too much :-)

" + ); +} + + +void aboutQt() +{ + QMessageBox.aboutQt( this, "QBrowser" ); +} + +void openFile() +{ + String fn = QFileDialog.getOpenFileName( "", "", this ); + if ( !fn.equals("") ) + browser.setSource( fn ); +} + +void newWindow() +{ + ( new HelpWindow(browser.source(), "qbrowser") ).show(); +} + +void print() +{ + QPrinter printer = new QPrinter();//(QPrinter.HighResolution ); + printer.setFullPage(true); + if ( printer.setup( this ) ) { + QPainter p = new QPainter( printer ); + QPaintDeviceMetrics metrics = new QPaintDeviceMetrics(p.device()); + int dpix = metrics.logicalDpiX(); + int dpiy = metrics.logicalDpiY(); + int margin = 72; // pt + QRect body = new QRect(margin*dpix/72, margin*dpiy/72, + metrics.width()-margin*dpix/72*2, + metrics.height()-margin*dpiy/72*2 ); + QFont font = new QFont("times", 10); + ArrayList filePaths = browser.mimeSourceFactory().filePath(); + String file = ""; + Iterator it = filePaths.iterator(); + while (it.hasNext()) { + file = new QUrl( new QUrl((String) it.next()), new QUrl( browser.source() ).path() ).path(); + if ( QFile.exists( file ) ) + break; + else + file = ""; + } + if ( file.equals("") ) + return; + QFile f = new QFile( file ); + if ( !f.open( QIODevice.IO_ReadOnly ) ) + return; + QTextStream ts = new QTextStream( f ); + QSimpleRichText richText = new QSimpleRichText( ts.read(), font, browser.context(), browser.styleSheet(), + browser.mimeSourceFactory(), body.height() ); + richText.setWidth( p, body.width() ); + QRect view = new QRect( body.topLeft(), body.bottomRight() ); + int page = 1; + do { + richText.draw( p, body.left(), body.top(), view, colorGroup() ); + view.moveBy( 0, body.height() ); + p.translate( 0 , -body.height() ); + p.setFont( font ); + p.drawText( view.right() - p.fontMetrics().width( new Integer(page).toString() ), + view.bottom() + p.fontMetrics().ascent() + 5, new Integer(page).toString() ); + if ( view.top() >= richText.height() ) + break; + printer.newPage(); + page++; + } while (true); + } +} + +void pathSelected( String _path ) +{ + browser.setSource( _path ); + Iterator it = mHistory.values().iterator(); + boolean exists = false; + while (it.hasNext()) { + if ( ((String) it.next()).equals(_path) ) { + exists = true; + break; + } + } + if ( !exists ) + mHistory.put( new Integer(hist.insertItem( _path )), _path); +} + +void readHistory() +{ + if ( QFile.exists( QDir.currentDirPath() + "/.history" ) ) { + QFile f = new QFile( QDir.currentDirPath() + "/.history" ); + f.open( QIODevice.IO_ReadOnly ); + QTextStream t = new QTextStream( f ); + while ( !t.atEnd() ) { + String item = t.readLine(); + history.add((Object) item); + } + f.close(); + while ( history.size() > 20 ) + history.remove( 0 ); + } +} + +void readBookmarks() +{ + if ( QFile.exists( QDir.currentDirPath() + "/.bookmarks" ) ) { + QFile f = new QFile( QDir.currentDirPath() + "/.bookmarks" ); + f.open( QIODevice.IO_ReadOnly ); + QTextStream t = new QTextStream( f ); + + while ( !t.atEnd() ) { + String item = t.readLine(); + bookmarks.add((Object) item); + } + f.close(); + } +} + +void histChosen( int i ) +{ + if ( mHistory.containsKey( new Integer(i) ) ) + browser.setSource( (String) mHistory.get( new Integer(i) ) ); +} + +void bookmChosen( int i ) +{ + if ( mBookmarks.containsKey( new Integer(i) ) ) + browser.setSource( (String) mBookmarks.get( new Integer(i) ) ); +} + +void addBookmark() +{ + mBookmarks.put( new Integer(bookm.insertItem( caption() )), browser.context() ); +} +} diff --git a/qtjava/javalib/examples/helpviewer/Main.java b/qtjava/javalib/examples/helpviewer/Main.java new file mode 100644 index 00000000..da01e3dc --- /dev/null +++ b/qtjava/javalib/examples/helpviewer/Main.java @@ -0,0 +1,48 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ +import org.kde.qt.*; + +public class Main { + + +public static void main( String[] args ) +{ + QApplication.setColorSpec( QApplication.ManyColor ); + QApplication a = new QApplication(args); + + String home = null; + if (args.length > 0) + home = args[0]; +// else +// home = System.getenv("QTDIR") + "/doc/html/index.html"; + + + HelpWindow help = new HelpWindow(home, ".", null, "help viewer"); + help.setCaption("Qt Example - Helpviewer"); + if ( QApplication.desktop().width() > 400 + && QApplication.desktop().height() > 500 ) + help.show(); + else + help.showMaximized(); + + QObject.connect( a, Qt.SIGNAL("aboutToQuit()"), + help, Qt.SLOT("cleanUp()") ); + QObject.connect( a, Qt.SIGNAL("lastWindowClosed()"), + a, Qt.SLOT("quit()") ); + + a.exec(); + return; +} + +static { + qtjava.initialize(); +} + +} diff --git a/qtjava/javalib/examples/helpviewer/back.xpm b/qtjava/javalib/examples/helpviewer/back.xpm new file mode 100644 index 00000000..7dc5b72c --- /dev/null +++ b/qtjava/javalib/examples/helpviewer/back.xpm @@ -0,0 +1,27 @@ +/* XPM */ +/* Drawn by Mark Donohoe for the K Desktop Environment */ +/* See http://www.kde.org */ +static char*back[]={ +"16 16 5 1", +"# c #000000", +"a c #ffffff", +"c c #808080", +"b c #c0c0c0", +". c None", +"................", +".......#........", +"......##........", +".....#a#........", +"....#aa########.", +"...#aabaaaaaaa#.", +"..#aabbbbbbbbb#.", +"...#abbbbbbbbb#.", +"...c#ab########.", +"....c#a#ccccccc.", +".....c##c.......", +"......c#c.......", +".......cc.......", +"........c.......", +"................", +"......................"}; + diff --git a/qtjava/javalib/examples/helpviewer/forward.xpm b/qtjava/javalib/examples/helpviewer/forward.xpm new file mode 100644 index 00000000..2ed81348 --- /dev/null +++ b/qtjava/javalib/examples/helpviewer/forward.xpm @@ -0,0 +1,28 @@ +/* XPM */ +/* Drawn by Mark Donohoe for the K Desktop Environment */ +/* See http://www.kde.org */ +static char*forward[]={ +"16 16 5 1", +"# c #000000", +"a c #ffffff", +"c c #808080", +"b c #c0c0c0", +". c None", +"................", +"................", +".........#......", +".........##.....", +".........#a#....", +"..########aa#...", +"..#aaaaaaabaa#..", +"..#bbbbbbbbbaa#.", +"..#bbbbbbbbba#..", +"..########ba#c..", +"..ccccccc#a#c...", +"........c##c....", +"........c#c.....", +"........cc......", +"........c.......", +"................", +"................"}; + diff --git a/qtjava/javalib/examples/helpviewer/home.xpm b/qtjava/javalib/examples/helpviewer/home.xpm new file mode 100644 index 00000000..9c1369d9 --- /dev/null +++ b/qtjava/javalib/examples/helpviewer/home.xpm @@ -0,0 +1,27 @@ +/* XPM */ +/* Drawn by Mark Donohoe for the K Desktop Environment */ +/* See http://www.kde.org */ +static char*home[]={ +"16 16 4 1", +"# c #000000", +"a c #ffffff", +"b c #c0c0c0", +". c None", +"........... ....", +" ....##.......", +"..#...####......", +"..#..#aabb#.....", +"..#.#aaaabb#....", +"..##aaaaaabb#...", +"..#aaaaaaaabb#..", +".#aaaaaaaaabbb#.", +"###aaaaaaaabb###", +"..#aaaaaaaabb#..", +"..#aaa###aabb#..", +"..#aaa#.#aabb#..", +"..#aaa#.#aabb#..", +"..#aaa#.#aabb#..", +"..#aaa#.#aabb#..", +"..#####.######..", +"................"}; + diff --git a/qtjava/javalib/examples/iconview/ListenDND.java b/qtjava/javalib/examples/iconview/ListenDND.java new file mode 100644 index 00000000..59521a55 --- /dev/null +++ b/qtjava/javalib/examples/iconview/ListenDND.java @@ -0,0 +1,69 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ +import org.kde.qt.*; + + +class ListenDND extends QObject +{ + +public ListenDND( QWidget w ) + {view = w;} + + void dropped( QDropEvent mime ) { + qDebug( "Dropped Mimesource {0} into the view {1}", new Object[] { mime, view } ); + qDebug( " Formats:" ); + int i = 0; + String str = mime.format( i ); + qDebug( " " + str ); + while ( str != null ) { + qDebug( " " + str ); + str = mime.format( ++i ); + } + }; + void moved() { + qDebug( "All selected items were moved to another widget" ); + } + +protected QWidget view; + + +public static void main( String[] args ) +{ + QApplication a = new QApplication( args ); + + QIconView qiconview = new QIconView(); + qiconview.setSelectionMode( QIconView.Extended ); + + for ( int i = 0; i < 3000; i++ ) { + QIconViewItem item = new QIconViewItem( qiconview, "Item " + (i + 1) ); + item.setRenameEnabled( true ); + } + + qiconview.setCaption( "Qt Example - Iconview" ); + + ListenDND listen_dnd = new ListenDND( qiconview ); + QObject.connect( qiconview, SIGNAL(" dropped( QDropEvent , ArrayList )"), + listen_dnd, SLOT(" dropped( QDropEvent )") ); + QObject.connect( qiconview, SIGNAL(" moved()"), listen_dnd, SLOT(" moved()") ); + + a.setMainWidget( qiconview ); + qiconview.show(); + qiconview.resize( qiconview.sizeHint() ); + + a.exec(); + return; +} + +static { + qtjava.initialize(); +} + +} + diff --git a/qtjava/javalib/examples/layout/ExampleWidget.java b/qtjava/javalib/examples/layout/ExampleWidget.java new file mode 100644 index 00000000..77d96816 --- /dev/null +++ b/qtjava/javalib/examples/layout/ExampleWidget.java @@ -0,0 +1,152 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ +import org.kde.qt.*; + + +class ExampleWidget extends QWidget +{ + +ExampleWidget( ) +{ + this(null, null); +} + +ExampleWidget( QWidget parent, String name ) +{ + super( parent, name ); + // Make the top-level layout; a vertical box to contain all widgets + // and sub-layouts. + QBoxLayout topLayout = new QVBoxLayout( this, 5 ); + + // Create a menubar... + QMenuBar menubar = new QMenuBar( this ); + menubar.setSeparator( QMenuBar.InWindowsStyle ); + QPopupMenu popup; + popup = new QPopupMenu( this ); + popup.insertItem( "&Quit", qApp(), SLOT("quit()") ); + menubar.insertItem( "&File", popup ); + + // ...and tell the layout about it. + topLayout.setMenuBar( menubar ); + + // Make an hbox that will hold a row of buttons. + QBoxLayout buttons = new QHBoxLayout( topLayout ); + int i; + for ( i = 1; i <= 4; i++ ) { + QPushButton but = new QPushButton( this ); + String s = "Button " + i; + but.setText( s ); + + // Set horizontal stretch factor to 10 to let the buttons + // stretch horizontally. The buttons will not stretch + // vertically, since bigWidget below will take up vertical + // stretch. + buttons.addWidget( but, 10 ); + // (Actually, the result would have been the same with a + // stretch factor of 0; if no items in a layout have non-zero + // stretch, the space is divided equally between members.) + } + + // Make another hbox that will hold a left-justified row of buttons. + QBoxLayout buttons2 = new QHBoxLayout( topLayout ); + + QPushButton but = new QPushButton( "Button five", this ); + buttons2.addWidget( but ); + + but = new QPushButton( "Button 6", this ); + buttons2.addWidget( but ); + + // Fill up the rest of the hbox with stretchable space, so that + // the buttons get their minimum width and are pushed to the left. + buttons2.addStretch( 10 ); + + // Make a big widget that will grab all space in the middle. + QMultiLineEdit bigWidget = new QMultiLineEdit( this ); + bigWidget.setText( "This widget will get all the remaining space" ); + bigWidget.setFrameStyle( QFrame.Panel | QFrame.Plain ); + + // Set vertical stretch factor to 10 to let the bigWidget stretch + // vertically. It will stretch horizontally because there are no + // widgets beside it to take up horizontal stretch. + // topLayout.addWidget( bigWidget, 10 ); + topLayout.addWidget( bigWidget ); + + // Make a grid that will hold a vertical table of QLabel/QLineEdit + // pairs next to a large QMultiLineEdit. + + // Don't use hard-coded row/column numbers in QGridLayout, you'll + // regret it when you have to change the layout. + int numRows = 3; + int labelCol = 0; + int linedCol = 1; + int multiCol = 2; + + // Let the grid-layout have a spacing of 10 pixels between + // widgets, overriding the default from topLayout. + QGridLayout grid = new QGridLayout( topLayout, 0, 0, 10 ); + int row; + + for ( row = 0; row < numRows; row++ ) { + QLineEdit ed = new QLineEdit( this ); + // The line edit goes in the second column + grid.addWidget( ed, row, linedCol ); + + // Make a label that is a buddy of the line edit + String s= "Line &" + (row+1); + QLabel label = new QLabel( ed, s, this ); + // The label goes in the first column. + grid.addWidget( label, row, labelCol ); + } + + // The multiline edit will cover the entire vertical range of the + // grid (rows 0 to numRows) and stay in column 2. + + QMultiLineEdit med = new QMultiLineEdit( this ); + grid.addMultiCellWidget( med, 0, -1, multiCol, multiCol ); + + // The labels will take the space they need. Let the remaining + // horizontal space be shared so that the multiline edit gets + // twice as much as the line edit. + grid.setColStretch( linedCol, 10 ); + grid.setColStretch( multiCol, 20 ); + + // Add a widget at the bottom. + QLabel sb = new QLabel( this ); + sb.setText( "Let's pretend this is a status bar" ); + sb.setFrameStyle( QFrame.Panel | QFrame.Sunken ); + // This widget will use all horizontal space, and have a fixed height. + + // we should have made a subclass and implemented sizePolicy there... + sb.setFixedHeight( sb.sizeHint().height() ); + + sb.setAlignment( AlignVCenter | AlignLeft ); + topLayout.addWidget( sb ); + + topLayout.activate(); +} + + +public static void main( String[] args ) +{ + QApplication a = new QApplication( args ); + + ExampleWidget f = new ExampleWidget(); + a.setMainWidget(f); + f.setCaption("Qt Example - Caption"); + f.show(); + + a.exec(); + return; +} + +static { + qtjava.initialize(); +} +} diff --git a/qtjava/javalib/examples/lineedits/LineEdits.java b/qtjava/javalib/examples/lineedits/LineEdits.java new file mode 100644 index 00000000..ce79891f --- /dev/null +++ b/qtjava/javalib/examples/lineedits/LineEdits.java @@ -0,0 +1,225 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ +import org.kde.qt.*; + +class LineEdits extends QGroupBox +{ +protected QLineEdit lined1, lined2, lined3, lined4; +protected QComboBox combo1, combo2, combo3, combo4; + + + + +/* + Constructor + * + Creates child widgets of the LineEdits widget + */ + +LineEdits( ) +{ + this(null, null); +} + +LineEdits( QWidget parent, String name ) +{ + super( 0, Horizontal, "Line edits", parent, name ); + setMargin( 10 ); + + QVBoxLayout box = new QVBoxLayout( layout() ); + + QHBoxLayout row1 = new QHBoxLayout( box ); + row1.setMargin( 5 ); + + // Create a Label + QLabel label = new QLabel( "Echo Mode: ", this); + row1.addWidget( label ); + + // Create a Combobox with three items... + combo1 = new QComboBox( false, this ); + row1.addWidget( combo1 ); + combo1.insertItem( "Normal", -1 ); + combo1.insertItem( "Password", -1 ); + combo1.insertItem( "No Echo", -1 ); + // ...and connect the activated() SIGNAL with the slotEchoChanged() SLOT to be able + // to react when an item is selected + connect( combo1, SIGNAL(" activated( int )"), this, SLOT(" slotEchoChanged( int )") ); + + // insert the first LineEdit + lined1 = new QLineEdit( this ); + box.addWidget( lined1 ); + + // another widget which is used for layouting + QHBoxLayout row2 = new QHBoxLayout( box ); + row2.setMargin( 5 ); + + // and the second label + label = new QLabel( "Validator: ", this ); + row2.addWidget( label ); + + // A second Combobox with again three items... + combo2 = new QComboBox( false, this ); + row2.addWidget( combo2 ); + combo2.insertItem( "No Validator", -1 ); + combo2.insertItem( "Integer Validator", -1 ); + combo2.insertItem( "Double Validator", -1 ); + // ...and again the activated() SIGNAL gets connected with a SLOT + connect( combo2, SIGNAL(" activated( int )"), this, SLOT(" slotValidatorChanged( int )") ); + + // and the second LineEdit + lined2 = new QLineEdit( this ); + box.addWidget( lined2 ); + + // yet another widget which is used for layouting + QHBoxLayout row3 = new QHBoxLayout( box ); + row3.setMargin( 5 ); + + // we need a label for this too + label = new QLabel( "Alignment: ", this ); + row3.addWidget( label ); + + // A combo box for setting alignment + combo3 = new QComboBox( false, this ); + row3.addWidget( combo3 ); + combo3.insertItem( "Left", -1 ); + combo3.insertItem( "Centered", -1 ); + combo3.insertItem( "Right", -1 ); + // ...and again the activated() SIGNAL gets connected with a SLOT + connect( combo3, SIGNAL(" activated( int )"), this, SLOT(" slotAlignmentChanged( int )") ); + + // and the third lineedit + lined3 = new QLineEdit( this ); + box.addWidget( lined3 ); + + // last widget used for layouting + QHBox row4 = new QHBox( this ); + box.addWidget( row4 ); + row4.setMargin( 5 ); + + // last label + new QLabel( "Read-Only: ", row4 ); + + // A combo box for setting alignment + combo4 = new QComboBox( false, row4 ); + combo4.insertItem( "False", -1 ); + combo4.insertItem( "True", -1 ); + // ...and again the activated() SIGNAL gets connected with a SLOT + connect( combo4, SIGNAL(" activated( int )"), this, SLOT(" slotReadOnlyChanged( int )") ); + + // and the last lineedit + lined4 = new QLineEdit( this ); + box.addWidget( lined4 ); + + // give the first LineEdit the focus at the beginning + lined1.setFocus(); +} + +/* + SLOT slotEchoChanged( int i ) + * + i contains the number of the item which the user has been chosen in the + first Combobox. According to this value, we set the Echo-Mode for the + first LineEdit. + */ + +void slotEchoChanged( int i ) +{ + switch ( i ) { + case 0: + lined1.setEchoMode( QLineEdit.Normal ); + break; + case 1: + lined1.setEchoMode( QLineEdit.Password ); + break; + case 2: + lined1.setEchoMode( QLineEdit.NoEcho ); + break; + } + + lined1.setFocus(); +} + +/* + SLOT slotValidatorChanged( int i ) + * + i contains the number of the item which the user has been chosen in the + second Combobox. According to this value, we set a validator for the + second LineEdit. A validator checks in a LineEdit each character which + the user enters and accepts it if it is valid, else the character gets + ignored and not inserted into the lineedit. + */ + +void slotValidatorChanged( int i ) +{ + switch ( i ) { + case 0: + lined2.setValidator( null ); + break; + case 1: + lined2.setValidator( new QIntValidator( lined2 ) ); + break; + case 2: + lined2.setValidator( new QDoubleValidator( -999.0, 999.0, 2, + lined2 ) ); + break; + } + + lined2.setText( "" ); + lined2.setFocus(); +} + + +/* + SLOT slotAlignmentChanged( int i ) + * + i contains the number of the item which the user has been chosen in + the third Combobox. According to this value, we set an alignment + third LineEdit. + */ + +void slotAlignmentChanged( int i ) +{ + switch ( i ) { + case 0: + lined3.setAlignment( QLineEdit.AlignLeft ); + break; + case 1: + lined3.setAlignment( QLineEdit.AlignCenter ); + break; + case 2: + lined3.setAlignment( QLineEdit.AlignRight ); + break; + } + + lined3.setFocus(); +} + + +/* + SLOT slotReadOnlyChanged( int i ) + * + i contains the number of the item which the user has been chosen in + the fourth Combobox. According to this value, we toggle read-only. + */ + +void slotReadOnlyChanged( int i ) +{ + switch ( i ) { + case 0: + lined4.setReadOnly( false ); + break; + case 1: + lined4.setReadOnly( true ); + break; + } + + lined4.setFocus(); +} +} diff --git a/qtjava/javalib/examples/lineedits/Main.java b/qtjava/javalib/examples/lineedits/Main.java new file mode 100644 index 00000000..19424534 --- /dev/null +++ b/qtjava/javalib/examples/lineedits/Main.java @@ -0,0 +1,32 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + +public class Main { + +public static void main(String[] args) +{ + QApplication a = new QApplication( args ); + + LineEdits lineedits = new LineEdits(); + lineedits.setCaption( "Qt Example - Lineedits" ); + a.setMainWidget( lineedits ); + lineedits.show(); + + a.exec(); + return; +} + + static { + qtjava.initialize(); + } +} + diff --git a/qtjava/javalib/examples/listbox/ListBoxDemo.java b/qtjava/javalib/examples/listbox/ListBoxDemo.java new file mode 100644 index 00000000..60eecffc --- /dev/null +++ b/qtjava/javalib/examples/listbox/ListBoxDemo.java @@ -0,0 +1,190 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + + + +class ListBoxDemo extends QWidget +{ + +private QListBox l; +private QSpinBox columns; +private QSpinBox rows; +private QButtonGroup bg; + + +ListBoxDemo() +{ + super( null, null ); + QGridLayout g = new QGridLayout( this, 2, 2, 6 ); + + g.addWidget( new QLabel( "Configuration:", this ), 0, 0 ); + g.addWidget( new QLabel( "Result:", this ), 0, 1 ); + + l = new QListBox( this ); + g.addWidget( l, 1, 1 ); + l.setFocusPolicy( QWidget.StrongFocus ); + + QVBoxLayout v = new QVBoxLayout(); + g.addLayout( v, 1, 0 ); + + QRadioButton b = null; + bg = new QButtonGroup( (QWidget) null ); + + b = new QRadioButton( "Fixed number of columns,\n" + + "as many rows as needed.", + this ); + bg.insert( b ); + v.addWidget( b ); + b.setChecked( true ); + connect( b, SIGNAL("clicked()"), this, SLOT("setNumCols()") ); + QHBoxLayout h = new QHBoxLayout(); + v.addLayout( h ); + h.addSpacing( 30 ); + h.addSpacing( 100 ); + h.addWidget( new QLabel( "Columns:", this ) ); + columns = new QSpinBox( this ); + h.addWidget( columns ); + + v.addSpacing( 12 ); + + b = new QRadioButton( "As many columns as fit on-screen,\n" + + "as many rows as needed.", + this ); + bg.insert( b ); + v.addWidget( b ); + connect( b, SIGNAL("clicked()"), this, SLOT("setColsByWidth()") ); + + v.addSpacing( 12 ); + + b = new QRadioButton( "Fixed number of rows,\n" + + "as many columns as needed.", + this ); + bg.insert( b ); + v.addWidget( b ); + connect( b, SIGNAL("clicked()"), this, SLOT("setNumRows()") ); + h = new QHBoxLayout(); + v.addLayout( h ); + h.addSpacing( 30 ); + h.addSpacing( 100 ); + h.addWidget( new QLabel( "Rows:", this ) ); + rows = new QSpinBox( this ); + rows.setEnabled( false ); + h.addWidget( rows ); + + v.addSpacing( 12 ); + + b = new QRadioButton( "As many rows as fit on-screen,\n" + + "as many columns as needed.", + this ); + bg.insert( b ); + v.addWidget( b ); + connect( b, SIGNAL("clicked()"), this, SLOT("setRowsByHeight()") ); + + v.addSpacing( 12 ); + + QCheckBox cb = new QCheckBox( "Variable-height rows", this ); + cb.setChecked( true ); + connect( cb, SIGNAL("toggled(boolean)"), this, SLOT("setVariableHeight(boolean)") ); + v.addWidget( cb ); + v.addSpacing( 6 ); + + cb = new QCheckBox( "Variable-width columns", this ); + connect( cb, SIGNAL("toggled(boolean)"), this, SLOT("setVariableWidth(boolean)") ); + v.addWidget( cb ); + + cb = new QCheckBox( "Extended-Selection", this ); + connect( cb, SIGNAL("toggled(boolean)"), this, SLOT("setMultiSelection(boolean)") ); + v.addWidget( cb ); + + QPushButton pb = new QPushButton( "Sort ascending", this ); + connect( pb, SIGNAL(" clicked()"), this, SLOT(" sortAscending()") ); + v.addWidget( pb ); + + pb = new QPushButton( "Sort descending", this ); + connect( pb, SIGNAL(" clicked()"), this, SLOT(" sortDescending()") ); + v.addWidget( pb ); + + v.addStretch( 100 ); + + int i = 0; + while( ++i <= 2560 ) + l.insertItem( "Item " + i, + i ); + columns.setRange( 1, 256 ); + columns.setValue( 1 ); + rows.setRange( 1, 256 ); + rows.setValue( 256 ); + + connect( columns, SIGNAL("valueChanged(int)"), this, SLOT("setNumCols()") ); + connect( rows, SIGNAL("valueChanged(int)"), this, SLOT("setNumRows()") ); +} + + +void setNumRows() +{ + columns.setEnabled( false ); + rows.setEnabled( true ); + l.setRowMode( rows.value() ); +} + + +void setNumCols() +{ + columns.setEnabled( true ); + rows.setEnabled( false ); + l.setColumnMode( columns.value() ); +} + + +void setRowsByHeight() +{ + columns.setEnabled( false ); + rows.setEnabled( false ); + l.setRowMode( QListBox.FitToHeight ); +} + + +void setColsByWidth() +{ + columns.setEnabled( false ); + rows.setEnabled( false ); + l.setColumnMode( QListBox.FitToWidth ); +} + + +void setVariableWidth( boolean b ) +{ + l.setVariableWidth( b ); +} + + +void setVariableHeight( boolean b ) +{ + l.setVariableHeight( b ); +} + +void setMultiSelection( boolean b ) +{ + l.clearSelection(); + l.setSelectionMode( b ? QListBox.Extended : QListBox.Single ); +} + +void sortAscending() +{ + l.sort( true ); +} + +void sortDescending() +{ + l.sort( false ); +} +} diff --git a/qtjava/javalib/examples/listbox/Main.java b/qtjava/javalib/examples/listbox/Main.java new file mode 100644 index 00000000..ff21a95f --- /dev/null +++ b/qtjava/javalib/examples/listbox/Main.java @@ -0,0 +1,30 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ +import org.kde.qt.*; + +public class Main { + +public static void main(String[] args) +{ + QApplication a = new QApplication( args ); + + ListBoxDemo t = new ListBoxDemo(); + t.setCaption( "Qt Example - Listbox" ); + a.setMainWidget( t ); + t.show(); + + a.exec(); + return; +} + + static { + qtjava.initialize(); + } +} diff --git a/qtjava/javalib/examples/mdi/ApplicationWindow.java b/qtjava/javalib/examples/mdi/ApplicationWindow.java new file mode 100644 index 00000000..e74e6233 --- /dev/null +++ b/qtjava/javalib/examples/mdi/ApplicationWindow.java @@ -0,0 +1,290 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; +import java.util.ArrayList; + +class ApplicationWindow extends QMainWindow +{ + +private QPrinter printer; +private QWorkspace ws; +/* Keep a copy of ws.windowList(), so that the MDIWindow + widgets in it won't get garbage collected */ +private ArrayList windows; +private QToolBar fileTools; +private QPopupMenu windowsMenu; + + + +private String fileOpenText = "Click this button to open a new file.

" ++ "You can also select the Open command from the File menu."; +private String fileSaveText = "Click this button to save the file you are " ++ "editing. You will be prompted for a file name.\n\n" ++ "You can also select the Save command from the File menu.\n\n" ++ "Note that implementing this function is left as an exercise for the reader."; +private String filePrintText = "Click this button to print the file you " ++ "are editing.\n\n" ++ "You can also select the Print command from the File menu."; + +/* XPM */ +static String filesave[] = { +" 14 14 4 1", +". c #040404", +"# c #808304", +"a c #bfc2bf", +"b c None", +"..............", +".#.aaaaaaaa.a.", +".#.aaaaaaaa...", +".#.aaaaaaaa.#.", +".#.aaaaaaaa.#.", +".#.aaaaaaaa.#.", +".#.aaaaaaaa.#.", +".##........##.", +".############.", +".##.........#.", +".##......aa.#.", +".##......aa.#.", +".##......aa.#.", +"b............." +}; + +/* XPM */ +static String fileopen[] = { +" 16 13 5 1", +". c #040404", +"# c #808304", +"a c None", +"b c #f3f704", +"c c #f3f7f3", +"aaaaaaaaa...aaaa", +"aaaaaaaa.aaa.a.a", +"aaaaaaaaaaaaa..a", +"a...aaaaaaaa...a", +".bcb.......aaaaa", +".cbcbcbcbc.aaaaa", +".bcbcbcbcb.aaaaa", +".cbcb...........", +".bcb.#########.a", +".cb.#########.aa", +".b.#########.aaa", +"..#########.aaaa", +"...........aaaaa" +}; + +/* XPM */ +static String fileprint[] = { +" 16 14 6 1", +". c #000000", +"# c #848284", +"a c #c6c3c6", +"b c #ffff00", +"c c #ffffff", +"d c None", +"ddddd.........dd", +"dddd.cccccccc.dd", +"dddd.c.....c.ddd", +"ddd.cccccccc.ddd", +"ddd.c.....c....d", +"dd.cccccccc.a.a.", +"d..........a.a..", +".aaaaaaaaaa.a.a.", +".............aa.", +".aaaaaa###aa.a.d", +".aaaaaabbbaa...d", +".............a.d", +"d.aaaaaaaaa.a.dd", +"dd...........ddd" +}; + +ApplicationWindow() +{ + super( null, "example application main window", WDestructiveClose ); + int id; + + QPixmap openIcon, saveIcon; + + fileTools = new QToolBar( this, "file operations" ); + addToolBar( fileTools, tr( "File Operations" ), DockTop, true ); + + openIcon = new QPixmap( fileopen ); + QToolButton fileOpen + = new QToolButton( new QIconSet(openIcon), "Open File", "", + this, SLOT("load()"), fileTools, "open file" ); + + saveIcon = new QPixmap( filesave ); + QToolButton fileSave + = new QToolButton( new QIconSet(saveIcon), "Save File", "", + this, SLOT("save()"), fileTools, "save file" ); + + printer = new QPrinter(); + QPixmap printIcon; + + printIcon = new QPixmap( fileprint ); + QToolButton filePrint + = new QToolButton( new QIconSet(printIcon), "Print File", "", + this, SLOT("print()"), fileTools, "print file" ); + QWhatsThis.add( filePrint, filePrintText ); + + QWhatsThis.whatsThisButton( fileTools ); + + QWhatsThis.add( fileOpen, fileOpenText ); + QWhatsThis.add( fileSave, fileSaveText ); + + QPopupMenu file = new QPopupMenu( this ); + menuBar().insertItem( "&File", file ); + + file.insertItem( "&New", this, SLOT("newDoc()"), new QKeySequence(CTRL+Key_N) ); + + id = file.insertItem( new QIconSet(openIcon), "&Open...", + this, SLOT("load()"), new QKeySequence(CTRL+Key_O) ); + file.setWhatsThis( id, fileOpenText ); + + id = file.insertItem( new QIconSet(saveIcon), "&Save", + this, SLOT("save()"), new QKeySequence(CTRL+Key_S) ); + file.setWhatsThis( id, fileSaveText ); + id = file.insertItem( "Save &As...", this, SLOT("saveAs()") ); + file.setWhatsThis( id, fileSaveText ); + file.insertSeparator(); + id = file.insertItem( new QIconSet(printIcon), "&Print...", + this, SLOT("print()"), new QKeySequence(CTRL+Key_P) ); + file.setWhatsThis( id, filePrintText ); + file.insertSeparator(); + file.insertItem( "&Close", this, SLOT("closeWindow()"), new QKeySequence(CTRL+Key_W) ); + file.insertItem( "&Quit", qApp(), SLOT(" closeAllWindows()"), new QKeySequence(CTRL+Key_Q) ); + + windowsMenu = new QPopupMenu( this ); + windowsMenu.setCheckable( true ); + connect( windowsMenu, SIGNAL(" aboutToShow()"), + this, SLOT(" windowsMenuAboutToShow()") ); + menuBar().insertItem( "&Windows", windowsMenu ); + + menuBar().insertSeparator(); + QPopupMenu help = new QPopupMenu( this ); + menuBar().insertItem( "&Help", help ); + + help.insertItem( "&About", this, SLOT("about()"), new QKeySequence(Key_F1)); + help.insertItem( "About &Qt", this, SLOT("aboutQt()")); + help.insertSeparator(); + help.insertItem( "What's &This", this, SLOT("whatsThis()"), new QKeySequence(SHIFT+Key_F1)); + + QVBox vb = new QVBox( this ); + vb.setFrameStyle( QFrame.StyledPanel | QFrame.Sunken ); + ws = new QWorkspace( vb ); + ws.setScrollBarsEnabled( true ); + setCentralWidget( vb ); + + statusBar().message( "Ready", 2000 ); +} + + +MDIWindow newDoc() +{ + MDIWindow w = new MDIWindow( ws, null, WDestructiveClose ); + connect( w, SIGNAL("message(String,int)"), statusBar(), SLOT("message(String,int)") ); + w.setCaption("unnamed document"); + w.setIcon( new QPixmap("document.xpm") ); + // show the very first window in maximized mode + windows = ws.windowList(); + if ( windows.size() == 0 ) + w.showMaximized(); + else + w.show(); + return w; +} + +void load() +{ + String fn = QFileDialog.getOpenFileName( "", "", this ); + if ( !fn.equals("") ) { + MDIWindow w = newDoc(); + w.load( fn ); + } else { + statusBar().message( "Loading aborted", 2000 ); + } +} + +void save() +{ + MDIWindow m = (MDIWindow)ws.activeWindow(); + if ( m != null ) + m.save(); +} + + +void saveAs() +{ + MDIWindow m = (MDIWindow)ws.activeWindow(); + if ( m != null ) + m.saveAs(); +} + + +void print() +{ + MDIWindow m = (MDIWindow)ws.activeWindow(); + if ( m != null) + m.print( printer ); +} + + +void closeWindow() +{ + MDIWindow m = (MDIWindow)ws.activeWindow(); + if ( m != null ) + m.close(); +} + +void about() +{ + QMessageBox.about( this, "Qt Application Example", + "This example demonstrates simple use of\n " + + "Qt's Multiple Document Interface (MDI)."); +} + + +void aboutQt() +{ + QMessageBox.aboutQt( this, "Qt Application Example" ); +} + + +void windowsMenuAboutToShow() +{ + windowsMenu.clear(); + int cascadeId = windowsMenu.insertItem("&Cascade", ws, SLOT("cascade()") ); + int tileId = windowsMenu.insertItem("&Tile", ws, SLOT("tile()") ); + windows = ws.windowList(); + if ( windows.size() == 0 ) { + windowsMenu.setItemEnabled( cascadeId, false ); + windowsMenu.setItemEnabled( tileId, false ); + } + windowsMenu.insertSeparator(); + for ( int i = 0; i < windows.size(); ++i ) { + int id = windowsMenu.insertItem(((QWidget) windows.get(i)).caption(), + this, SLOT(" windowsMenuActivated( int )") ); + windowsMenu.setItemParameter( id, i ); + windowsMenu.setItemChecked( id, ws.activeWindow() == windows.get(i) ); + } +} + +void windowsMenuActivated( int id ) +{ + windows = ws.windowList(); + QWidget w = (QWidget) windows.get( id ); + if ( w != null ) + w.showNormal(); + w.setFocus(); +} + + +} + diff --git a/qtjava/javalib/examples/mdi/MDIWindow.java b/qtjava/javalib/examples/mdi/MDIWindow.java new file mode 100644 index 00000000..ef5efd64 --- /dev/null +++ b/qtjava/javalib/examples/mdi/MDIWindow.java @@ -0,0 +1,135 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + + +class MDIWindow extends QMainWindow +{ + +private QMultiLineEdit medit; +private QMovie mmovie; +private String filename = ""; + +MDIWindow( QWidget parent, String name, int wflags ) +{ + super( parent, name, wflags ); + mmovie = null; + medit = new QMultiLineEdit( this ); + setFocusProxy( medit ); + setCentralWidget( medit ); +} + + +void load( String fn ) +{ + filename = fn; + QFile f = new QFile( filename ); + if ( !f.open( QIODevice.IO_ReadOnly ) ) + return; + + if(fn.indexOf(".gif") != -1) { + QWidget tmp=new QWidget(this); + setFocusProxy(tmp); + setCentralWidget(tmp); + medit.hide(); + QMovie qm=new QMovie(fn); +// qm.setDisplayWidget(tmp); + tmp.setBackgroundMode(QWidget.NoBackground); + tmp.show(); + mmovie=qm; + } else { + mmovie = null; + + QTextStream t = new QTextStream(f); + String s = t.read(); + medit.setText( s ); + f.close(); + + + } + setCaption( filename ); + emit("message", "Loaded document " + filename, 2000 ); +} + +void save() +{ + if ( filename.equals("") ) { + saveAs(); + return; + } + + String text = medit.text(); + QFile f = new QFile( filename ); + if ( !f.open( QIODevice.IO_WriteOnly ) ) { + emit("message", "Could not write to " + filename, + 2000 ); + return; + } + + QTextStream t = new QTextStream( f ); + t.writeRawBytes( text, text.length() ); + f.close(); + + setCaption( filename ); + + emit("message", "File " + filename + " saved", 2000 ); +} + +void saveAs() +{ + String fn = QFileDialog.getSaveFileName( filename, "", this ); + if ( !fn.equals("") ) { + filename = fn; + save(); + } else { + emit("message", "Saving aborted", 2000 ); + } +} + +void print( QPrinter printer) +{ + int Margin = 10; + int pageNo = 1; + + if ( printer.setup(this) ) { // printer dialog + emit("message", "Printing...", 0 ); + QPainter p = new QPainter(); + if ( !p.begin( printer ) ) + return; // paint on printer + p.setFont( medit.font() ); + int yPos = 0; // y position for each line + QFontMetrics fm = p.fontMetrics(); + QPaintDeviceMetrics metrics = new QPaintDeviceMetrics( printer ); // need width/height + // of printer surface + for( int i = 0 ; i < medit.numLines() ; i++ ) { + if ( Margin + yPos > metrics.height() - Margin ) { + String msg = "Printing (page "; + msg += (++pageNo); + msg += ")..."; + emit("message", msg, 0 ); + printer.newPage(); // no more room on this page + yPos = 0; // back to top of page + } + p.drawText( Margin, Margin + yPos, + metrics.width(), fm.lineSpacing(), + ExpandTabs | DontClip, + medit.textLine( i ) ); + yPos = yPos + fm.lineSpacing(); + } + p.end(); // send job to printer + emit("message", "Printing completed", 2000 ); + } else { + emit("message", "Printing aborted", 2000 ); + } +} + +} + diff --git a/qtjava/javalib/examples/mdi/Main.java b/qtjava/javalib/examples/mdi/Main.java new file mode 100644 index 00000000..8190b7cf --- /dev/null +++ b/qtjava/javalib/examples/mdi/Main.java @@ -0,0 +1,27 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + +public class Main { + +public static void main(String[] args) { + QApplication a = new QApplication( args ); + ApplicationWindow mw = new ApplicationWindow(); + mw.setCaption( "Qt Example - Multiple Documents Interface (MDI)" ); + mw.show(); + a.connect( a, Qt.SIGNAL("lastWindowClosed()"), a, Qt.SLOT("quit()") ); + int res = a.exec(); + return; +} + static { + qtjava.initialize(); + } +} diff --git a/qtjava/javalib/examples/mdi/document.xpm b/qtjava/javalib/examples/mdi/document.xpm new file mode 100644 index 00000000..c08f63e9 --- /dev/null +++ b/qtjava/javalib/examples/mdi/document.xpm @@ -0,0 +1,25 @@ +/* XPM */ +static char * document_xpm[] = { +"12 16 6 1", +" c #040404", +". c None", +"X c white", +"o c #808304", +"O c black", +"+ c #f3f7f3", +" .....", +" XXXXX ....", +" XXXXX X ...", +" XXXXX XX ..", +" XooXX O.", +" X+XXX+XXXO.", +" XXXXXXXXXO.", +" XoooXooXXO.", +" XXXXXXXXXO.", +" XXXXXXXXXO.", +" XoXXoooXXO.", +" XXXXXXXXXO.", +"OXXXXXXXXXO.", +"OXXXXXXXXXO.", +"OOOOOOOOOOO.", +"............"}; diff --git a/qtjava/javalib/examples/menu/MenuExample.java b/qtjava/javalib/examples/menu/MenuExample.java new file mode 100644 index 00000000..3eca97b5 --- /dev/null +++ b/qtjava/javalib/examples/menu/MenuExample.java @@ -0,0 +1,326 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + +class MenuExample extends QWidget +{ + +private QMenuBar menu; +private QLabel label; +private boolean isBold; +private boolean isUnderline; +private int boldID, underlineID; + + + +/* XPM */ +static String p1_xpm[] = { +"16 16 3 1", +" c None", +". c #000000000000", +"X c #FFFFFFFF0000", +" ", +" ", +" .... ", +" .XXXX. ", +" .............. ", +" .XXXXXXXXXXXX. ", +" .XXXXXXXXXXXX. ", +" .XXXXXXXXXXXX. ", +" .XXXXXXXXXXXX. ", +" .XXXXXXXXXXXX. ", +" .XXXXXXXXXXXX. ", +" .XXXXXXXXXXXX. ", +" .XXXXXXXXXXXX. ", +" .XXXXXXXXXXXX. ", +" .............. ", +" "}; + +/* XPM */ +static String p2_xpm[] = { +"16 16 3 1", +" c None", +". c #000000000000", +"X c #FFFFFFFFFFFF", +" ", +" ...... ", +" .XXX.X. ", +" .XXX.XX. ", +" .XXX.XXX. ", +" .XXX..... ", +" .XXXXXXX. ", +" .XXXXXXX. ", +" .XXXXXXX. ", +" .XXXXXXX. ", +" .XXXXXXX. ", +" .XXXXXXX. ", +" .XXXXXXX. ", +" ......... ", +" ", +" "}; + +/* XPM */ +static String p3_xpm[] = { +"16 16 3 1", +" c None", +". c #000000000000", +"X c #FFFFFFFFFFFF", +" ", +" ", +" ......... ", +" ........... ", +" ........ .. ", +" ........... ", +" ........... ", +" ........... ", +" ........... ", +" ...XXXXX... ", +" ...XXXXX... ", +" ...XXXXX... ", +" ...XXXXX... ", +" ......... ", +" ", +" "}; + + +/* + Auxiliary class to provide fancy menu items with different + fonts. Used for the "bold" and "underline" menu items in the options + menu. + */ +/** +class MyMenuItem extends QCustomMenuItem +{ +private String string; +private QFont font; + + public MyMenuItem( String s, QFont f ) + { + font = f; + string = s; + } + + public void paint( QPainter p, QColorGroup cg, boolean act, boolean enabled, int x, int y, int w, int h ) + { + p.setFont ( font ); + p.drawText( x, y, w, h, AlignLeft | AlignVCenter | ShowPrefix | DontClip, string ); + } + + public QSize sizeHint() + { + return new QFontMetrics( font ).size( AlignLeft | AlignVCenter | ShowPrefix | DontClip, string ); + } +} +*/ + +MenuExample( ) +{ + this(null, null); +} + +MenuExample( QWidget parent, String name ) +{ + super( parent, name ); + QPixmap p1 = new QPixmap( p1_xpm ); + QPixmap p2 = new QPixmap( p2_xpm ); + QPixmap p3 = new QPixmap( p3_xpm ); + + QPopupMenu print = new QPopupMenu( this ); + print.insertTearOffHandle(); + print.insertItem( "&Print to printer", this, SLOT("printer()") ); + print.insertItem( "Print to &file", this, SLOT("file()") ); + print.insertItem( "Print to fa&x", this, SLOT("fax()") ); + print.insertSeparator(); + print.insertItem( "Printer &Setup", this, SLOT("printerSetup()") ); + + QPopupMenu file = new QPopupMenu( this ); + file.insertItem( new QIconSet(p1), "&Open", this, SLOT("open()"), new QKeySequence(CTRL+Key_O) ); + file.insertItem( new QIconSet(p2), "&New", this, SLOT("news()"), new QKeySequence(CTRL+Key_N) ); + file.insertItem( new QIconSet(p3), "&Save", this, SLOT("save()"), new QKeySequence(CTRL+Key_S) ); + file.insertItem( "&Close", this, SLOT("closeDoc()"), new QKeySequence(CTRL+Key_W) ); + file.insertSeparator(); + file.insertItem( "&Print", print, CTRL+Key_P ); + file.insertSeparator(); + file.insertItem( "E&xit", qApp(), SLOT("quit()"), new QKeySequence(CTRL+Key_Q) ); + + QPopupMenu edit = new QPopupMenu( this ); + int undoID = edit.insertItem( "&Undo", this, SLOT("undo()") ); + int redoID = edit.insertItem( "&Redo", this, SLOT("redo()") ); + edit.setItemEnabled( undoID, false ); + edit.setItemEnabled( redoID, false ); + + QPopupMenu options = new QPopupMenu( this ); + options.insertTearOffHandle(); + options.setCaption("Options"); + options.insertItem( "&Normal Font", this, SLOT("normal()") ); + options.insertSeparator(); + + options.polish(); // adjust system settings + QFont f = options.font(); + f.setBold( true ); +// boldID = options.insertItem( new MyMenuItem( "&Bold", f ) ); + options.setAccel( new QKeySequence(CTRL+Key_B), boldID ); + options.connectItem( boldID, this, SLOT("bold()") ); + f = font(); + f.setUnderline( true ); +// underlineID = options.insertItem( new MyMenuItem( "&Underline", f ) ); + options.setAccel( new QKeySequence(CTRL+Key_U), underlineID ); + options.connectItem( underlineID, this, SLOT("underline()") ); + + isBold = false; + isUnderline = false; + options.setCheckable( true ); + + + QPopupMenu help = new QPopupMenu( this ); + help.insertItem( "&About", this, SLOT("about()"), new QKeySequence(CTRL+Key_H) ); + help.insertItem( "About &Qt", this, SLOT("aboutQt()") ); + + menu = new QMenuBar( this ); + menu.insertItem( "&File", file ); + menu.insertItem( "&Edit", edit ); + menu.insertItem( "&Options", options ); + menu.insertSeparator(); + menu.insertItem( "&Help", help ); + menu.setSeparator( QMenuBar.InWindowsStyle ); + + label = new QLabel( this ); + label.setGeometry( 20, rect().center().y()-20, width()-40, 40 ); + label.setFrameStyle( QFrame.Box | QFrame.Raised ); + label.setLineWidth( 1 ); + label.setAlignment( AlignCenter ); + + connect( this, SIGNAL("explain(String)"), + label, SLOT("setText(String)") ); + + setMinimumSize( 100, 80 ); +} + + +void open() +{ + emit("explain", "File/Open selected" ); +} + + +void news() +{ + emit("explain", "File/New selected" ); +} + +void save() +{ + emit("explain", "File/Save selected" ); +} + + +void closeDoc() +{ + emit("explain", "File/Close selected" ); +} + + +void undo() +{ + emit("explain", "Edit/Undo selected" ); +} + + +void redo() +{ + emit("explain", "Edit/Redo selected" ); +} + + +void normal() +{ + isBold = false; + isUnderline = false; + menu.setItemChecked( boldID, isBold ); + menu.setItemChecked( underlineID, isUnderline ); + emit("explain", "Options/Normal selected" ); +} + + +void bold() +{ + isBold = !isBold; + menu.setItemChecked( boldID, isBold ); + emit("explain", "Options/Bold selected" ); +} + + +void underline() +{ + isUnderline = !isUnderline; + menu.setItemChecked( underlineID, isUnderline ); + emit("explain", "Options/Underline selected" ); +} + + +void about() +{ + QMessageBox.about( this, "Qt Menu Example", + "This example demonstrates simple use of Qt menus.\n" + + "You can cut and paste lines from it to your own\n" + + "programs." ); +} + + +void aboutQt() +{ + QMessageBox.aboutQt( this, "Qt Menu Example" ); +} + + +void printer() +{ + emit("explain", "File/Printer/Print selected" ); +} + +void file() +{ + emit("explain", "File/Printer/Print To File selected" ); +} + +void fax() +{ + emit("explain", "File/Printer/Print To Fax selected" ); +} + +void printerSetup() +{ + emit("explain", "File/Printer/Printer Setup selected" ); +} + + +protected void resizeEvent( QResizeEvent e ) +{ + label.setGeometry( 20, rect().center().y()-20, width()-40, 40 ); +} + + +public static void main(String[] args) +{ + QApplication a = new QApplication( args ); + MenuExample m = new MenuExample(); + m.setCaption("Qt Examples - Menus"); + a.setMainWidget( m ); + m.show(); + a.exec(); + return; +} + + static { + qtjava.initialize(); + } + +} diff --git a/qtjava/javalib/examples/menu/README b/qtjava/javalib/examples/menu/README new file mode 100644 index 00000000..958edd19 --- /dev/null +++ b/qtjava/javalib/examples/menu/README @@ -0,0 +1,2 @@ +The class MyMenuItem isn't translated to Java, as the QCustomMenuItem.paint() +and sizeHint() virtual method callbacks aren't implemented yet. diff --git a/qtjava/javalib/examples/picture/PictureDisplay.java b/qtjava/javalib/examples/picture/PictureDisplay.java new file mode 100644 index 00000000..34b026b4 --- /dev/null +++ b/qtjava/javalib/examples/picture/PictureDisplay.java @@ -0,0 +1,119 @@ +/**************************************************************************** +** $Id$ +** +** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +** This file is part of an example program for Qt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ + +import org.kde.qt.*; + +class PictureDisplay extends QWidget // picture display widget +{ + +static void paintCar( QPainter p ) // paint a car +{ + QPointArray a = new QPointArray(); + QBrush brush = new QBrush( Qt.yellow(), Qt.SolidPattern ); + p.setBrush( brush ); // use solid, yellow brush + + a.setPoints( 5, new short[] { 50,50, 350,50, 450,120, 450,250, 50,250 } ); + p.drawPolygon( a ); // draw car body + + QFont f = new QFont( "courier", 12, QFont.Bold, false ); + p.setFont( f ); + + QColor windowColor = new QColor( 120, 120, 255 ); // a light blue color + brush.setColor( windowColor ); // set this brush color + p.setBrush( brush ); // set brush + p.drawRect( 80, 80, 250, 70 ); // car window + p.drawText( 180, 80, 150, 70, Qt.AlignCenter, "-- Qt --\nTrolltech AS" ); + + QPixmap pixmap = new QPixmap(); + if ( pixmap.load("flag.bmp") ) // load and draw image + p.drawPixmap( 100, 90, pixmap ); + + p.setBackgroundMode( Qt.OpaqueMode ); // set opaque mode + p.setBrush( Qt.DiagCrossPattern ); // black diagonal cross pattern + p.drawEllipse( 90, 210, 80, 80 ); // back wheel + p.setBrush( Qt.CrossPattern ); // black cross fill pattern + p.drawEllipse( 310, 210, 80, 80 ); // front wheel +} + + + +private QPicture pict; +private String name; + +public PictureDisplay( String fileName ) +{ + pict = new QPicture(); + name = fileName; + if ( !pict.load(fileName) ) { // cannot load picture + pict = null; + name = "Not able to load picture: " + fileName; + } +} + +protected void paintEvent( QPaintEvent event ) +{ + QPainter paint = new QPainter( this ); // paint widget + if ( pict != null ) + paint.drawPicture( pict ); // draw picture + else + paint.drawText( rect(), AlignCenter, name ); +} + +protected void keyPressEvent( QKeyEvent k ) +{ +// switch ( tolower(k.ascii()) ) { + switch ( k.ascii() ) { + case 'r': // reload + pict.load( name ); + update(); + break; + case 'q': // quit + QApplication.exit(); + break; + } +} + + +static public void main( String[] args ) +{ + QApplication a = new QApplication( args ); // QApplication required! + + String fileName = "car.pic"; // default picture file name + + if ( args.length == 1 ) // use argument as file name + fileName = args[0]; + + if ( !QFile.exists(fileName) ) { + QPicture pict = new QPicture(); // our picture + QPainter paint = new QPainter(); // our painter + + paint.begin( pict ); // begin painting onto picture + paintCar( paint ); // paint! + paint.end(); // painting done + + pict.save( fileName ); // save picture + QMessageBox.information(null, "Qt picture example", "Saved. Run me again!"); + return; + } else { + PictureDisplay test = new PictureDisplay( fileName ); // create picture display + a.setMainWidget( test); // set main widget + test.show(); // show it + + a.exec(); // start event loop + return; + } +} + +static { + qtjava.initialize(); +} + +} + diff --git a/qtjava/javalib/examples/picture/car_orig.pic b/qtjava/javalib/examples/picture/car_orig.pic new file mode 100644 index 00000000..a0141b75 Binary files /dev/null and b/qtjava/javalib/examples/picture/car_orig.pic differ diff --git a/qtjava/javalib/examples/picture/flag.bmp b/qtjava/javalib/examples/picture/flag.bmp new file mode 100644 index 00000000..b36afdfb Binary files /dev/null and b/qtjava/javalib/examples/picture/flag.bmp differ diff --git a/qtjava/javalib/examples/popup/Frame.java b/qtjava/javalib/examples/popup/Frame.java new file mode 100644 index 00000000..afbf2edc --- /dev/null +++ b/qtjava/javalib/examples/popup/Frame.java @@ -0,0 +1,166 @@ +/*************************************************************************** +* $Id$ +** +* Definition of something or other +** +* Created : 979899 +** +* Copyright (C) 1997 by Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + +class Frame extends QFrame +{ + +private QPushButton button1; +private QPushButton button2; + +private QFrame popup1; +private FancyPopup popup2; + +Frame() +{ + this(null, null); +} + +Frame(QWidget parent, String name) +{ + super(parent, name); + button1 = new QPushButton("Simple Popup", this); + connect ( button1, SIGNAL(" clicked()"), SLOT(" button1Clicked()") ); + button2 = new QPushButton("Fancy Popup", this); + connect ( button2, SIGNAL(" pressed()"), SLOT(" button2Pressed()") ); + + QBoxLayout l = new QHBoxLayout( this ); + button1.setMaximumSize(button1.sizeHint()); + button2.setMaximumSize(button2.sizeHint()); + l.addWidget( button1 ); + l.addWidget( button2 ); + l.activate(); + +// button1.setGeometry(20,20,100,30); +// button2.setGeometry(140,20,100,30); + resize(270, 70); + + //create a very simple popup: it is just composed with other + //widget and will be shown after clicking on button1 + + popup1 = new QFrame( this ,null, WType_Popup); + popup1.setFrameStyle( WinPanel|Raised ); + popup1.resize(150,100); + QLineEdit tmpE = new QLineEdit( popup1 ); + connect( tmpE, SIGNAL(" returnPressed()"), popup1, SLOT(" hide()") ); + tmpE.setGeometry(10,10, 130, 30); + tmpE.setFocus(); + QPushButton tmpB = new QPushButton("Click me!", popup1); + connect( tmpB, SIGNAL(" clicked()"), popup1, SLOT(" close()") ); + tmpB.setGeometry(10, 50, 130, 30); + + // the fancier version uses its own class. It will be shown when + // pressing button2, so they behavior is more like a modern menu + // or toolbar. + + popup2 = new FancyPopup( this ); + + // you might also add new widgets to the popup, just like you do + // it with any other widget. The next four lines (if not + // commented out) will for instance add a line edit widget. + +// tmpE = new QLineEdit( popup2 ); +// tmpE.setFocus(); +// connect( tmpE, SIGNAL(" returnPressed()"), popup2, SLOT(" close()") ); +// tmpE.setGeometry(10, 10, 130, 30); +} + + +void button1Clicked(){ + popup1.move( mapToGlobal( button1.geometry().bottomLeft() ) ); + popup1.show(); +} + +void button2Pressed(){ + popup2.popup(button2); +} + +class FancyPopup extends QLabel +{ +private QWidget popupParent; +private int moves; + + + +FancyPopup( QWidget parent ) +{ + this(parent, null); +} + +FancyPopup( QWidget parent, String name ) +{ + super( parent, name, WType_Popup ); + setFrameStyle( WinPanel|Raised ); + setAlignment( AlignCenter ); + resize(150,100); + moves = 0; + setMouseTracking( true ); +} + +protected void mouseMoveEvent( QMouseEvent e){ + moves++; + String s = e.pos().x() + "/" + e.pos().y(); + if ((e.state() & QMouseEvent.LeftButton) != 0) + s += " (down)"; + setText(s); +} + +protected void mouseReleaseEvent( QMouseEvent e){ + if (rect().contains( e.pos() ) || moves > 5) + close(); +} + +protected void closeEvent( QCloseEvent e ){ + e.accept(); + moves = 0; + if (popupParent == null) + return; + + // remember that we (as a popup) might recieve the mouse release + // event instead of the popupParent. This is due to the fact that + // the popupParent popped us up in its mousePressEvent handler. To + // avoid the button remaining in pressed state we simply send a + // faked mouse button release event to it. + QMouseEvent me = new QMouseEvent( QEvent.MouseButtonRelease, new QPoint(0,0), new QPoint(0,0), QMouseEvent.LeftButton, QMouseEvent.NoButton); + QApplication.sendEvent( popupParent, me ); +} + +void popup( QWidget parent) { + popupParent = parent; + setText("Move the mouse!"); + if (popupParent != null) + move( popupParent.mapToGlobal( popupParent.rect().bottomLeft() ) ); + show(); +} + +} + + +public static void main(String[] args) +{ + QApplication a = new QApplication( args ); + + Frame frame = new Frame(); + frame.setCaption("Qt Example - Custom Popups"); + a.setMainWidget(frame); + frame.show(); + a.exec(); + return; +} + + static { + qtjava.initialize(); + } +} diff --git a/qtjava/javalib/examples/popup/README b/qtjava/javalib/examples/popup/README new file mode 100644 index 00000000..3be117bb --- /dev/null +++ b/qtjava/javalib/examples/popup/README @@ -0,0 +1,3 @@ +The popup program demonstrates some easy techniques for creating custom +popup widgets like a fancy color or line-width selection for the +toolbar of a drawing program or a browsebox for various symbols or ... diff --git a/qtjava/javalib/examples/progressbar/Main.java b/qtjava/javalib/examples/progressbar/Main.java new file mode 100644 index 00000000..be103c03 --- /dev/null +++ b/qtjava/javalib/examples/progressbar/Main.java @@ -0,0 +1,31 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + +class Main { + +public static void main(String[] args) +{ + QApplication a = new QApplication( args ); + + ProgressBar progressbar = new ProgressBar(); + progressbar.setCaption("Qt Example - ProgressBar"); + a.setMainWidget(progressbar); + progressbar.show(); + + a.exec(); + return; +} + + static { + qtjava.initialize(); + } +} diff --git a/qtjava/javalib/examples/progressbar/ProgressBar.java b/qtjava/javalib/examples/progressbar/ProgressBar.java new file mode 100644 index 00000000..1d8ab1d3 --- /dev/null +++ b/qtjava/javalib/examples/progressbar/ProgressBar.java @@ -0,0 +1,174 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + + +class ProgressBar extends QButtonGroup +{ + +protected QRadioButton slow, normal, fast; +protected QPushButton start, pause, reset; +protected QProgressBar progress; +protected QTimer timer; + + +/* + Constructor + * + Creates child widgets of the ProgressBar widget + */ + +ProgressBar( ) +{ + this(null, null); +} + +ProgressBar( QWidget parent, String name ) +{ + super( 0, Horizontal, "Progress Bar", parent, name ); + timer = new QTimer(); + setMargin( 10 ); + + QGridLayout toplayout = new QGridLayout( layout(), 2, 2, 5); + + setRadioButtonExclusive( true ); + + // insert three radiobuttons which the user can use + // to set the speed of the progress and two pushbuttons + // to start/pause/continue and reset the progress + slow = new QRadioButton( "&Slow", this ); + normal = new QRadioButton( "&Normal", this ); + fast = new QRadioButton( "&Fast", this ); + QVBoxLayout vb1 = new QVBoxLayout(); + toplayout.addLayout( vb1, 0, 0 ); + vb1.addWidget( slow ); + vb1.addWidget( normal ); + vb1.addWidget( fast ); + + // two push buttons, one for start, for for reset. + start = new QPushButton( "&Start", this ); + reset = new QPushButton( "&Reset", this ); + QVBoxLayout vb2 = new QVBoxLayout(); + toplayout.addLayout( vb2, 0, 1 ); + vb2.addWidget( start ); + vb2.addWidget( reset ); + + // Create the progressbar + progress = new QProgressBar( 100, this ); + // progress.setStyle( new QMotifStyle() ); + toplayout.addMultiCellWidget( progress, 1, 1, 0, 1 ); + + // connect the clicked() SIGNALs of the pushbuttons to SLOTs + connect( start, SIGNAL(" clicked()"), this, SLOT(" slotStart()") ); + connect( reset, SIGNAL(" clicked()"), this, SLOT(" slotReset()") ); + + // connect the timeout() SIGNAL of the progress-timer to a SLOT + connect( timer, SIGNAL(" timeout()"), this, SLOT(" slotTimeout()") ); + + // Let's start with normal speed... + normal.setChecked( true ); + + + // some contraints + start.setFixedWidth( 80 ); + setMinimumWidth( 300 ); +} + +/* + SLOT slotStart + * + This SLOT is called if the user clicks start/pause/continue + button + */ + +void slotStart() +{ + // If the progress bar is at the beginning... + if ( progress.progress() == -1 ) { + // ...set according to the checked speed-radiobutton + // the number of steps which are needed to complete the process + if ( slow.isChecked() ) + progress.setTotalSteps( 10000 ); + else if ( normal.isChecked() ) + progress.setTotalSteps( 1000 ); + else + progress.setTotalSteps( 50 ); + + // disable the speed-radiobuttons + slow.setEnabled( false ); + normal.setEnabled( false ); + fast.setEnabled( false ); + } + + // If the progress is not running... + if ( !timer.isActive() ) { + // ...start the timer (and so the progress) with a interval of 1 ms... + timer.start( 1 ); + // ...and rename the start/pause/continue button to Pause + start.setText( "&Pause" ); + } else { // if the prgress is running... + // ...stop the timer (and so the prgress)... + timer.stop(); + // ...and rename the start/pause/continue button to Continue + start.setText( "&Continue" ); + } +} + +/* + SLOT slotReset + * + This SLOT is called when the user clicks the reset button + */ + +void slotReset() +{ + // stop the timer and progress + timer.stop(); + + // rename the start/pause/continue button to Start... + start.setText( "&Start" ); + // ...and enable this button + start.setEnabled( true ); + + // enable the speed-radiobuttons + slow.setEnabled( true ); + normal.setEnabled( true ); + fast.setEnabled( true ); + + // reset the progressbar + progress.reset(); +} + +/* + SLOT slotTimeout + * + This SLOT is called each ms when the timer is + active (== progress is running) + */ + +void slotTimeout() +{ + int p = progress.progress(); + + // If the progress is complete... + if ( p == progress.totalSteps() ) { + // ...rename the start/pause/continue button to Start... + start.setText( "&Start" ); + // ...and disable it... + start.setEnabled( false ); + // ...and return + return; + } + + // If the process is not complete increase it + progress.setProgress( ++p ); +} +} diff --git a/qtjava/javalib/examples/qfd/FontDisplayer.java b/qtjava/javalib/examples/qfd/FontDisplayer.java new file mode 100644 index 00000000..26f658b1 --- /dev/null +++ b/qtjava/javalib/examples/qfd/FontDisplayer.java @@ -0,0 +1,167 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; +import java.math.*; + + + +class FontDisplayer extends QMainWindow { + + + +class FontRowTable extends QFrame { +private QFont tablefont; +private int row; + +FontRowTable( QWidget parent ) +{ + this(parent, null); +} + +FontRowTable( QWidget parent, String name ) +{ + super(parent,name); + setBackgroundMode(PaletteBase); + setFrameStyle(Panel|Sunken); + setMargin(8); + setRow(0); + tablefont = QApplication.font(); +} + +public QSize sizeHint() +{ + return new QSize( 16*cellSize().width()+2*(margin()+frameWidth()), + 16*cellSize().height()+2*(margin()+frameWidth()) ); +} + +QSize cellSize() +{ + QFontMetrics fm = fontMetrics(); + return new QSize( fm.maxWidth(), fm.lineSpacing()+1 ); +} + +protected void paintEvent( QPaintEvent e ) +{ + super.paintEvent(e); +System.out.println("In paintEvent"); + QPainter p = new QPainter(this); + p.setClipRegion(e.region()); + QRect r = e.rect(); + QFontMetrics fm = fontMetrics(); + int ml = frameWidth()+margin() + 1 + (-fm.minLeftBearing() > 0 ? -fm.minLeftBearing() : 0); + int mt = frameWidth()+margin(); + QSize cell = new QSize((width()-15-ml)/16,(height()-15-mt)/16); + + if ( cell.width() == 0 || cell.height() == 0 ) + 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(); + + QColor body = new QColor(255,255,192); + QColor negative = new QColor(255,192,192); + QColor positive = new QColor(192,192,255); + QColor rnegative = new QColor(255,128,128); + QColor rpositive = new QColor(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(); + + char ch = (char) ((j*16+i) + (row*256)); + + if ( fm.inFont(ch) ) { + int w = fm.width(ch); + int lb = fm.leftBearing(ch); + int rb = fm.rightBearing(ch); + + x += ml; + y += mt+h; + + p.fillRect(x,y,w,-h,new QBrush(body)); + if ( w != 0) { + if ( lb != 0 ) { + p.fillRect(x+(lb>0?0:lb), y-h/2, Math.abs(lb),-h/2, + new QBrush(lb < 0 ? negative : positive)); + } + if ( rb != 0) { + p.fillRect(x+w-(rb>0?rb:0),y+2, Math.abs(rb),-h/2, + new QBrush(rb < 0 ? rnegative : rpositive)); + } + } + String s = ""; + s += ch; + p.setPen(new QPen(Qt.black())); + p.drawText(x,y,s); + } + } + } + } + p.end(); +} + +void setRow(int r) +{ + row = r; + + QFontMetrics fm = fontMetrics(); + String str = "mLB=" + fm.minLeftBearing() + + " mRB=" + fm.minRightBearing() + + " mW=" + fm.maxWidth(); + + emit("fontInformation", str); + update(); +} + +void chooseFont() +{ + boolean[] ok = { true }; + QFont oldfont = tablefont; + tablefont = QFontDialog.getFont(ok, oldfont, this); + + if (ok[0]) + setFont(tablefont); + else + tablefont = oldfont; + + +} +} + +FontDisplayer( ) +{ + this(null, null); +} + +FontDisplayer( QWidget parent, String name ) +{ + super(parent,name); + FontRowTable table = new FontRowTable(this); + QToolBar controls = new QToolBar(this); + new QLabel(tr("Row:"), controls); + QSpinBox row = new QSpinBox(0,255,1,controls); + controls.addSeparator(); + QPushButton fontbutton = new QPushButton(tr("Font..."), controls); + + connect(row,SIGNAL("valueChanged(int)"),table,SLOT("setRow(int)")); + connect(fontbutton, SIGNAL("clicked()"), table, SLOT("chooseFont()")); + connect(table,SIGNAL("fontInformation(String)"), + statusBar(),SLOT("message(String)")); + table.setRow(0); + setCentralWidget(table); +} +} diff --git a/qtjava/javalib/examples/qfd/Main.java b/qtjava/javalib/examples/qfd/Main.java new file mode 100644 index 00000000..d25f2389 --- /dev/null +++ b/qtjava/javalib/examples/qfd/Main.java @@ -0,0 +1,38 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + + +class Main { + +public static void main(String[] args) { + // Use an interesting font + QApplication.setFont(new QFont("unifont",16)); + + QApplication app = new QApplication(args); + + FontDisplayer m = new FontDisplayer(); + QSize sh = m.centralWidget().sizeHint(); + m.resize(sh.width(), + sh.height()+3*m.statusBar().height()); + app.setMainWidget(m); + m.setCaption("Qt Example - QFD"); + m.show(); + + app.exec(); + return; +} + + static { + qtjava.initialize(); + } + +} diff --git a/qtjava/javalib/examples/qmag/MagWidget.java b/qtjava/javalib/examples/qmag/MagWidget.java new file mode 100644 index 00000000..66c68705 --- /dev/null +++ b/qtjava/javalib/examples/qmag/MagWidget.java @@ -0,0 +1,356 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + +class MagWidget extends QWidget +{ +private QComboBox zoom; +private QComboBox refresh; +private QPushButton saveButton; +private QPushButton multiSaveButton; +private QPushButton quitButton; +private QPixmap pm; // pixmap, magnified +private QPixmap p; // pixmap +private QImage image; // image of pixmap (for RGB) +private QLabel rgb; +private int yoffset; // pixels in addition to the actual picture +private int z; // magnification factor +private int r; // autorefresh rate (index into refreshrates) +private boolean grabbing; // true if qmag is currently grabbing +private int grabx, graby; +private String multifn; // filename for multisave + + +static String zoomfactors[] = { + "100%", "200%", "300%", "400%", "500%", + "600%", "700%", "800%", "1600%" }; + +static String refreshrates[] = { + "No autorefresh", "50 per second", "4 per second", "3 per second", "2 per second", + "Every second", "Every two seconds", "Every three seconds", + "Every five seconds", "Every ten seconds" }; + +static int timer[] = { + 0, 20, 250, 333, 500, 1000, 2000, 3000, 5000, 10000 }; + + +MagWidget( ) +{ + this(null, null); +} + +MagWidget( QWidget parent, String name ) +{ + super( parent, name); + z = 1; // default zoom (100%) + r = 0; // default refresh (none) + + int w=0, x=0, n; + + zoom = new QComboBox( false, this ); + zoom.insertStrList( zoomfactors, 9 ); + connect( zoom, SIGNAL("activated(int)"), SLOT("setZoom(int)") ); + + refresh = new QComboBox( false, this ); + refresh.insertStrList( refreshrates, 9 ); + connect( refresh, SIGNAL("activated(int)"), SLOT("setRefresh(int)") ); + + for( n=0; n<9; n++) { + int w2 = zoom.fontMetrics().width( zoomfactors[n] ); + w = w2 > w ? w2 : w; + } + zoom.setGeometry( 2, 2, w+30, 20 ); + + x = w+34; + w = 0; + for( n=0; n<9; n++) { + int w2 = refresh.fontMetrics().width( refreshrates[n] ); + w = w2 > w ? w2 : w; + } + refresh.setGeometry( x, 2, w+30, 20 ); + + saveButton = new QPushButton( this ); + connect( saveButton, SIGNAL("clicked()"), this, SLOT("save()") ); + saveButton.setText( "Save" ); + saveButton.setGeometry( x+w+30+2, 2, + 10+saveButton.fontMetrics().width("Save"), 20 ); + + multiSaveButton = new QPushButton( this ); + multiSaveButton.setToggleButton(true); + connect( multiSaveButton, SIGNAL("clicked()"), this, SLOT("multiSave()") ); + multiSaveButton.setText( "MultiSave" ); + multiSaveButton.setGeometry( saveButton.geometry().right() + 2, 2, + 10+multiSaveButton.fontMetrics().width("MultiSave"), 20 ); + + quitButton = new QPushButton( this ); + connect( quitButton, SIGNAL("clicked()"), qApp(), SLOT("quit()") ); + quitButton.setText( "Quit" ); + quitButton.setGeometry( multiSaveButton.geometry().right() + 2, 2, + 10+quitButton.fontMetrics().width("Quit"), 20 ); + +// #else +// zoom = null; +// multiSaveButton = null; + + setRefresh(1); + setZoom(5); + + rgb = new QLabel( this ); + rgb.setText( "" ); + rgb.setAlignment( AlignVCenter ); + rgb.resize( width(), rgb.fontMetrics().height() + 4 ); + + yoffset = zoom.height() // top buttons + + 4 // space around top buttons + + rgb.height(); // color-value text height + setMinimumSize( quitButton.pos().x(), yoffset+20 ); + resize( quitButton.geometry().topRight().x() + 2, yoffset+60 ); +// #else + yoffset = 0; + resize(350,350); + + grabx = graby = -1; + grabbing = false; + + setMouseTracking( true ); // and do let me know what pixel I'm at, eh? + + grabAround( new QPoint(grabx=qApp().desktop().width()/2, graby=qApp().desktop().height()/2) ); +} + + +void setZoom( int index ) +{ + if (index == 8) + z = 16; + else + z = index+1; + grab(); +} + + +void setRefresh( int index ) +{ + r = index; + killTimers(); + if (index != 0 && grabbing) + startTimer( timer[r] ); +} + + +void save() +{ + if ( p != null ) { + killTimers(); + String fn = QFileDialog.getSaveFileName(); + if ( !fn.equals("") ) + p.save( fn, "BMP" ); + if ( r != 0) + startTimer( timer[r] ); + } +} + +void multiSave() +{ + if ( p != null ) { + multifn = ""; // stops saving + multifn = QFileDialog.getSaveFileName(); + if ( multifn.equals("") ) + multiSaveButton.setOn(false); + if ( r == 0) + p.save( multifn, "BMP" ); + } else { + multiSaveButton.setOn(false); + } +} + + +void grab() +{ + if ( !isVisible() ) + return; // don't eat resources when iconified + + if ( grabx < 0 || graby < 0 ) + return; // don't grab until the user has said to + + int x,y, w,h; + + w = (width()+z-1)/z; + h = (height()+z-1-yoffset)/z; + if ( w<1 || h<1 ) + return; // don't ask too much from the window system :) + + x = grabx-w/2; // find a suitable position to grab from + y = graby-h/2; + if ( x + w > QApplication.desktop().width() ) + x = QApplication.desktop().width()-w; + else if ( x < 0 ) + x = 0; + if ( y + h > QApplication.desktop().height() ) + y = QApplication.desktop().height()-h; + else if ( y < 0 ) + y = 0; + + p = QPixmap.grabWindow( QApplication.desktop().winId(), x, y, w, h ); + image = p.convertToImage(); + QWMatrix m = new QWMatrix(); // after getting it, scale it + m.scale( (double)z, (double)z ); + // A cast from Object to QPixmap is needed in java. The xForm methods + // have several different return types in C++, and must all be of type + // 'Object' for java + pm = (QPixmap) p.xForm( m ); + + if ( multiSaveButton == null || !multiSaveButton.isOn() ) + repaint( false ); // and finally repaint, flicker-free +} + + +protected void paintEvent( QPaintEvent e ) +{ + if ( pm != null ) { + QPainter paint = new QPainter( this ); + paint.drawPixmap( 0, zoom != null ? zoom.height()+4 : 0, pm, + 0,0, width(), height()-yoffset ); + } +} + + +protected void mousePressEvent( QMouseEvent e ) +{ + if ( !grabbing ) { // prepare to grab... + grabbing = true; + killTimers(); + grabMouse( crossCursor() ); + grabx = -1; + graby = -1; + } else { // REALLY prepare to grab + grabx = mapToGlobal(e.pos()).x(); + graby = mapToGlobal(e.pos()).y(); + } +} + + + +protected void mouseReleaseEvent( QMouseEvent e ) +{ + if ( grabbing && grabx >= 0 && graby >= 0 ) { + grabbing = false; + grabAround(e.pos()); + releaseMouse(); + } +} + +void grabAround(QPoint pos) +{ + int rx, ry; + rx = mapToGlobal(pos).x(); + ry = mapToGlobal(pos).y(); + int w = Math.abs(rx-grabx); + int h = Math.abs(ry-graby); + if ( w > 10 && h > 10 ) { + int pz; + pz = 1; + while ( w*pz*h*pz < width()*(height()-yoffset) && + w*pz < QApplication.desktop().width() && + h*pz < QApplication.desktop().height() ) + pz++; + if ( (w*pz*h*pz - width()*(height()-yoffset)) > + (width()*(height()-yoffset) - w*(pz-1)*h*(pz-1)) ) + pz--; + if ( pz < 1 ) + pz = 1; + if ( pz > 8 ) + pz = 8; + if ( zoom != null) + zoom.setCurrentItem( pz-1 ); + + z = pz; + grabx = (rx < grabx ? rx : grabx) + w/2; + graby = (ry < graby ? ry : graby) + h/2; + resize( w*z, h*z+yoffset ); + } + grab(); + if ( r != 0 ) + startTimer( timer[r] ); +} + + +protected void mouseMoveEvent( QMouseEvent e ) +{ + if ( grabbing || pm.isNull() || + e.pos().y() > height() - (zoom != null ? zoom.fontMetrics().height() - 4 : 0) || + e.pos().y() < (zoom != null ? zoom.height()+4 : 4) ) { + rgb.setText( "" ); + } else { + int x,y; + x = e.pos().x() / z; + y = (e.pos().y() - ( zoom != null ? zoom.height() : 0 ) - 4) / z; + String pixelinfo = ""; + if ( image.valid(x,y) ) + { + int px = image.pixel(x,y); + pixelinfo= " " + qRed(px) + "," + qGreen(px) + "," + qBlue(px) + " "; + pixelinfo += "#" + Integer.toHexString(qRed(px)) + + Integer.toHexString(qGreen(px)) + + Integer.toHexString(qBlue(px)) + " "; + } + String label = "x=" + (x+grabx) + ", y=" + (y+graby) + " " + pixelinfo; + rgb.setText( label ); + } +} + + +protected void focusOutEvent( QFocusEvent e ) +{ + rgb.setText( "" ); +} + + +protected void timerEvent( QTimerEvent e ) +{ + grab(); +/* + if ( multiSaveButton.isOn() && !multifn.equals("") ) { + QRegExp num("[0-9][0-9]"); + int start; + int len; + if ((start=num.match(multifn,0,&len))>=0) + multifn.replace(num, + String().setNum(multifn.mid(start,len).toInt()+1) + ); + p.save( multifn, "BMP" ); + } +*/ +} + + +protected void resizeEvent( QResizeEvent e ) +{ + rgb.setGeometry( 0, height() - rgb.height(), width(), rgb.height() ); + grab(); +} + + + + +public static void main(String[] args) +{ + QApplication a = new QApplication( args ); + MagWidget m = new MagWidget(); + a.setMainWidget( m ); + m.show(); + a.exec(); + return; +} + + static { + qtjava.initialize(); + } +} diff --git a/qtjava/javalib/examples/qmag/README b/qtjava/javalib/examples/qmag/README new file mode 100644 index 00000000..df10244e --- /dev/null +++ b/qtjava/javalib/examples/qmag/README @@ -0,0 +1,6 @@ +The qmag program can magnify portions of the screen to let you see +things at a pixel level. + +Run it, resize it appropriately, click inside, then click where you want +to grab. Set magnification factor and auto-refresh as desired. + diff --git a/qtjava/javalib/examples/qwerty/ANSI_X3.110-1983.map b/qtjava/javalib/examples/qwerty/ANSI_X3.110-1983.map new file mode 100644 index 00000000..1b7058ec --- /dev/null +++ b/qtjava/javalib/examples/qwerty/ANSI_X3.110-1983.map @@ -0,0 +1,511 @@ + ANSI_X3.110-1983 + % + / +% version: 1.0 +% repertoiremap: mnemonic,ds +% source: ECMA registry + +% alias ISO-IR-99 +% alias CSA_T500-1983 +% alias NAPLPS +CHARMAP + /x00 NULL (NUL) + /x01 START OF HEADING (SOH) + /x02 START OF TEXT (STX) + /x03 END OF TEXT (ETX) + /x04 END OF TRANSMISSION (EOT) + /x05 ENQUIRY (ENQ) + /x06 ACKNOWLEDGE (ACK) + /x07 BELL (BEL) + /x08 BACKSPACE (BS) + /x09 CHARACTER TABULATION (HT) + /x0A LINE FEED (LF) + /x0B LINE TABULATION (VT) + /x0C FORM FEED (FF) + /x0D CARRIAGE RETURN (CR) + /x0E SHIFT OUT (SO) + /x0F SHIFT IN (SI) +
/x10 DATALINK ESCAPE (DLE) + /x11 DEVICE CONTROL ONE (DC1) + /x12 DEVICE CONTROL TWO (DC2) + /x13 DEVICE CONTROL THREE (DC3) + /x14 DEVICE CONTROL FOUR (DC4) + /x15 NEGATIVE ACKNOWLEDGE (NAK) + /x16 SYNCHRONOUS IDLE (SYN) + /x17 END OF TRANSMISSION BLOCK (ETB) + /x18 CANCEL (CAN) + /x19 END OF MEDIUM (EM) + /x1A SUBSTITUTE (SUB) + /x1B ESCAPE (ESC) + /x1C FILE SEPARATOR (IS4) + /x1D GROUP SEPARATOR (IS3) + /x1E RECORD SEPARATOR (IS2) + /x1F UNIT SEPARATOR (IS1) + /x20 SPACE + /x21 EXCLAMATION MARK +<"> /x22 QUOTATION MARK +<%> /x25 PERCENT SIGN +<&> /x26 AMPERSAND +<'> /x27 APOSTROPHE +<(> /x28 LEFT PARENTHESIS +<)> /x29 RIGHT PARENTHESIS +<*> /x2A ASTERISK +<+> /x2B PLUS SIGN +<,> /x2C COMMA +<-> /x2D HYPHEN-MINUS +<.> /x2E FULL STOP + /x2F SOLIDUS +<0> /x30 DIGIT ZERO +<1> /x31 DIGIT ONE +<2> /x32 DIGIT TWO +<3> /x33 DIGIT THREE +<4> /x34 DIGIT FOUR +<5> /x35 DIGIT FIVE +<6> /x36 DIGIT SIX +<7> /x37 DIGIT SEVEN +<8> /x38 DIGIT EIGHT +<9> /x39 DIGIT NINE +<:> /x3A COLON +<;> /x3B SEMICOLON +<<> /x3C LESS-THAN SIGN +<=> /x3D EQUALS SIGN +> /x3E GREATER-THAN SIGN + /x3F QUESTION MARK + /x40 COMMERCIAL AT + /x41 LATIN CAPITAL LETTER A + /x42 LATIN CAPITAL LETTER B + /x43 LATIN CAPITAL LETTER C + /x44 LATIN CAPITAL LETTER D + /x45 LATIN CAPITAL LETTER E + /x46 LATIN CAPITAL LETTER F + /x47 LATIN CAPITAL LETTER G + /x48 LATIN CAPITAL LETTER H + /x49 LATIN CAPITAL LETTER I + /x4A LATIN CAPITAL LETTER J + /x4B LATIN CAPITAL LETTER K + /x4C LATIN CAPITAL LETTER L + /x4D LATIN CAPITAL LETTER M + /x4E LATIN CAPITAL LETTER N + /x4F LATIN CAPITAL LETTER O +

/x70 LATIN SMALL LETTER P + /x71 LATIN SMALL LETTER Q + /x72 LATIN SMALL LETTER R + /x73 LATIN SMALL LETTER S + /x74 LATIN SMALL LETTER T + /x75 LATIN SMALL LETTER U + /x76 LATIN SMALL LETTER V + /x77 LATIN SMALL LETTER W + /x78 LATIN SMALL LETTER X + /x79 LATIN SMALL LETTER Y + /x7A LATIN SMALL LETTER Z +<(!> /x7B LEFT CURLY BRACKET + /x7C VERTICAL LINE + /x7D RIGHT CURLY BRACKET +<'?> /x7E TILDE +

/x7F DELETE (DEL) + /x80 PADDING CHARACTER (PAD) + /x81 HIGH OCTET PRESET (HOP) + /x82 BREAK PERMITTED HERE (BPH) + /x83 NO BREAK HERE (NBH) + /x84 INDEX (IND) + /x85 NEXT LINE (NEL) + /x86 START OF SELECTED AREA (SSA) + /x87 END OF SELECTED AREA (ESA) + /x88 CHARACTER TABULATION SET (HTS) + /x89 CHARACTER TABULATION WITH JUSTIFICATION (HTJ) + /x8A LINE TABULATION SET (VTS) + /x8B PARTIAL LINE FORWARD (PLD) + /x8C PARTIAL LINE BACKWARD (PLU) + /x8D REVERSE LINE FEED (RI) + /x8E SINGLE-SHIFT TWO (SS2) + /x8F SINGLE-SHIFT THREE (SS3) + /x90 DEVICE CONTROL STRING (DCS) + /x91 PRIVATE USE ONE (PU1) + /x92 PRIVATE USE TWO (PU2) + /x93 SET TRANSMIT STATE (STS) + /x94 CANCEL CHARACTER (CCH) + /x95 MESSAGE WAITING (MW) + /x96 START OF GUARDED AREA (SPA) + /x97 END OF GUARDED AREA (EPA) + /x98 START OF STRING (SOS) + /x99 SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) + /x9A SINGLE CHARACTER INTRODUCER (SCI) + /x9B CONTROL SEQUENCE INTRODUCER (CSI) + /x9C STRING TERMINATOR (ST) + /x9D OPERATING SYSTEM COMMAND (OSC) + /x9E PRIVACY MESSAGE (PM) + /x9F APPLICATION PROGRAM COMMAND (APC) + /xA1 INVERTED EXCLAMATION MARK + /xA2 CENT SIGN + /xA3 POUND SIGN + /xA4 DOLLAR SIGN + /xA5 YEN SIGN + /xA6 NUMBER SIGN + /xA7 SECTION SIGN + /xA8 CURRENCY SIGN +<'6> /xA9 LEFT SINGLE QUOTATION MARK +<"6> /xAA LEFT DOUBLE QUOTATION MARK +<<<> /xAB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +<<-> /xAC LEFTWARDS ARROW +<-!> /xAD UPWARDS ARROW +<-/>> /xAE RIGHTWARDS ARROW +<-v> /xAF DOWNWARDS ARROW + /xB0 DEGREE SIGN +<+-> /xB1 PLUS-MINUS SIGN +<2S> /xB2 SUPERSCRIPT TWO +<3S> /xB3 SUPERSCRIPT THREE +<*X> /xB4 MULTIPLICATION SIGN + /xB5 MICRO SIGN + /xB6 PILCROW SIGN +<.M> /xB7 MIDDLE DOT +<-:> /xB8 DIVISION SIGN +<'9> /xB9 RIGHT SINGLE QUOTATION MARK +<"9> /xBA RIGHT DOUBLE QUOTATION MARK +/>> /xBB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +<14> /xBC VULGAR FRACTION ONE QUARTER +<12> /xBD VULGAR FRACTION ONE HALF +<34> /xBE VULGAR FRACTION THREE QUARTERS + /xBF INVERTED QUESTION MARK +<"!> /xC1 NON-SPACING GRAVE ACCENT (not a real character) +<"'> /xC2 NON-SPACING ACUTE ACCENT (not a real character) +<"/>> /xC3 NON-SPACING CIRCUMFLEX ACCENT (not a real character) +<"?> /xC4 NON-SPACING TILDE (not a real character) +<"-> /xC5 NON-SPACING MACRON (not a real character) +<"(> /xC6 NON-SPACING BREVE (not a real character) +<".> /xC7 NON-SPACING DOT ABOVE (not a real character) +<":> /xC8 NON-SPACING DIAERESIS (not a real character) +<"//> /xC9 NON-SPACING LONG SOLIDUS OVERLAY (not a real character) +<"0> /xCA NON-SPACING RING ABOVE (not a real character) +<",> /xCB NON-SPACING CEDILLA (not a real character) +<"_> /xCC NON-SPACING LOW LINE (not a real character) +<""> /xCD NON-SPACING DOUBLE ACCUTE ACCENT (not a real character) +<";> /xCE NON-SPACING OGONEK (not a real character) +<"<> /xCF NON-SPACING CARON (not a real character) +<-M> /xD0 EM DASH +<1S> /xD1 SUPERSCRIPT ONE + /xD2 REGISTERED SIGN + /xD3 COPYRIGHT SIGN + /xD4 TRADE MARK SIGN + /xD5 EIGHTH NOTE + /xD6 BOX DRAWINGS LIGHT HORIZONTAL + /xD7 BOX DRAWINGS LIGHT VERTICAL + /xD8 BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT + /xD9 BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT + /xDA BLACK LOWER RIGHT TRIANGLE + /xDB BLACK LOWER LEFT TRIANGLE +<18> /xDC VULGAR FRACTION ONE EIGHTH +<38> /xDD VULGAR FRACTION THREE EIGHTHS +<58> /xDE VULGAR FRACTION FIVE EIGHTHS +<78> /xDF VULGAR FRACTION SEVEN EIGHTHS + /xE0 OHM SIGN + /xE1 LATIN CAPITAL LETTER AE + /xE2 LATIN CAPITAL LETTER ETH (Icelandic) +<-a> /xE3 FEMININE ORDINAL INDICATOR + /xE4 LATIN CAPITAL LETTER H WITH STROKE + /xE5 BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL + /xE6 LATIN CAPITAL LIGATURE IJ + /xE7 LATIN CAPITAL LETTER L WITH MIDDLE DOT + /xE8 LATIN CAPITAL LETTER L WITH STROKE + /xE9 LATIN CAPITAL LETTER O WITH STROKE + /xEA LATIN CAPITAL LIGATURE OE +<-o> /xEB MASCULINE ORDINAL INDICATOR + /xEC LATIN CAPITAL LETTER THORN (Icelandic) + /xED LATIN CAPITAL LETTER T WITH STROKE + /xEE LATIN CAPITAL LETTER ENG (Sami) +<'n> /xEF LATIN SMALL LETTER N PRECEDED BY APOSTROPHE + /xF0 LATIN SMALL LETTER KRA (Greenlandic) + /xF1 LATIN SMALL LETTER AE + /xF2 LATIN SMALL LETTER D WITH STROKE + /xF3 LATIN SMALL LETTER ETH (Icelandic) + /xF4 LATIN SMALL LETTER H WITH STROKE + /xF5 LATIN SMALL LETTER DOTLESS I + /xF6 LATIN SMALL LIGATURE IJ + /xF7 LATIN SMALL LETTER L WITH MIDDLE DOT + /xF8 LATIN SMALL LETTER L WITH STROKE + /xF9 LATIN SMALL LETTER O WITH STROKE + /xFA LATIN SMALL LIGATURE OE + /xFB LATIN SMALL LETTER SHARP S (German) + /xFC LATIN SMALL LETTER THORN (Icelandic) + /xFD LATIN SMALL LETTER T WITH STROKE + /xFE LATIN SMALL LETTER ENG (Sami) +<''> /xC2/x20 ACUTE ACCENT + /xC2/x61 LATIN SMALL LETTER A WITH ACUTE + /xC2/x41 LATIN CAPITAL LETTER A WITH ACUTE + /xC2/x65 LATIN SMALL LETTER E WITH ACUTE + /xC2/x45 LATIN CAPITAL LETTER E WITH ACUTE + /xC2/x69 LATIN SMALL LETTER I WITH ACUTE + /xC2/x49 LATIN CAPITAL LETTER I WITH ACUTE + /xC2/x6F LATIN SMALL LETTER O WITH ACUTE + /xC2/x4F LATIN CAPITAL LETTER O WITH ACUTE + /xC2/x75 LATIN SMALL LETTER U WITH ACUTE + /xC2/x55 LATIN CAPITAL LETTER U WITH ACUTE + /xC2/x79 LATIN SMALL LETTER Y WITH ACUTE + /xC2/x59 LATIN CAPITAL LETTER Y WITH ACUTE + /xC2/x63 LATIN SMALL LETTER C WITH ACUTE + /xC2/x43 LATIN CAPITAL LETTER C WITH ACUTE + /xC2/x6C LATIN SMALL LETTER L WITH ACUTE + /xC2/x4C LATIN CAPITAL LETTER L WITH ACUTE + /xC2/x6E LATIN SMALL LETTER N WITH ACUTE + /xC2/x4E LATIN CAPITAL LETTER N WITH ACUTE + /xC2/x72 LATIN SMALL LETTER R WITH ACUTE + /xC2/x52 LATIN CAPITAL LETTER R WITH ACUTE + /xC2/x73 LATIN SMALL LETTER S WITH ACUTE + /xC2/x53 LATIN CAPITAL LETTER S WITH ACUTE + /xC2/x7A LATIN SMALL LETTER Z WITH ACUTE + /xC2/x5A LATIN CAPITAL LETTER Z WITH ACUTE +<'(> /xC6/x20 BREVE + /xC6/x61 LATIN SMALL LETTER A WITH BREVE + /xC6/x41 LATIN CAPITAL LETTER A WITH BREVE + /xC6/x67 LATIN SMALL LETTER G WITH BREVE + /xC6/x47 LATIN CAPITAL LETTER G WITH BREVE + /xC6/x75 LATIN SMALL LETTER U WITH BREVE + /xC6/x55 LATIN CAPITAL LETTER U WITH BREVE +<'<> /xCF/x20 CARON (Mandarin Chinese third tone) + /xCF/x63 LATIN SMALL LETTER C WITH CARON + /xCF/x43 LATIN CAPITAL LETTER C WITH CARON + /xCF/x64 LATIN SMALL LETTER D WITH CARON + /xCF/x44 LATIN CAPITAL LETTER D WITH CARON + /xCF/x65 LATIN SMALL LETTER E WITH CARON + /xCF/x45 LATIN CAPITAL LETTER E WITH CARON + /xCF/x6C LATIN SMALL LETTER L WITH CARON + /xCF/x4C LATIN CAPITAL LETTER L WITH CARON + /xCF/x6E LATIN SMALL LETTER N WITH CARON + /xCF/x4E LATIN CAPITAL LETTER N WITH CARON + /xCF/x72 LATIN SMALL LETTER R WITH CARON + /xCF/x52 LATIN CAPITAL LETTER R WITH CARON + /xCF/x73 LATIN SMALL LETTER S WITH CARON + /xCF/x53 LATIN CAPITAL LETTER S WITH CARON + /xCF/x74 LATIN SMALL LETTER T WITH CARON + /xCF/x54 LATIN CAPITAL LETTER T WITH CARON + /xCF/x7A LATIN SMALL LETTER Z WITH CARON + /xCF/x5A LATIN CAPITAL LETTER Z WITH CARON +<',> /xCB/x20 CEDILLA + /xCB/x63 LATIN SMALL LETTER C WITH CEDILLA + /xCB/x43 LATIN CAPITAL LETTER C WITH CEDILLA + /xCB/x67 LATIN SMALL LETTER G WITH CEDILLA + /xCB/x47 LATIN CAPITAL LETTER G WITH CEDILLA + /xCB/x6B LATIN SMALL LETTER K WITH CEDILLA + /xCB/x4B LATIN CAPITAL LETTER K WITH CEDILLA + /xCB/x6C LATIN SMALL LETTER L WITH CEDILLA + /xCB/x4C LATIN CAPITAL LETTER L WITH CEDILLA + /xCB/x6E LATIN SMALL LETTER N WITH CEDILLA + /xCB/x4E LATIN CAPITAL LETTER N WITH CEDILLA + /xCB/x72 LATIN SMALL LETTER R WITH CEDILLA + /xCB/x52 LATIN CAPITAL LETTER R WITH CEDILLA + /xCB/x73 LATIN SMALL LETTER S WITH CEDILLA + /xCB/x53 LATIN CAPITAL LETTER S WITH CEDILLA + /xCB/x74 LATIN SMALL LETTER T WITH CEDILLA + /xCB/x54 LATIN CAPITAL LETTER T WITH CEDILLA +> /xC3/x61 LATIN SMALL LETTER A WITH CIRCUMFLEX +> /xC3/x41 LATIN CAPITAL LETTER A WITH CIRCUMFLEX +> /xC3/x65 LATIN SMALL LETTER E WITH CIRCUMFLEX +> /xC3/x45 LATIN CAPITAL LETTER E WITH CIRCUMFLEX +> /xC3/x69 LATIN SMALL LETTER I WITH CIRCUMFLEX +> /xC3/x49 LATIN CAPITAL LETTER I WITH CIRCUMFLEX +> /xC3/x6F LATIN SMALL LETTER O WITH CIRCUMFLEX +> /xC3/x4F LATIN CAPITAL LETTER O WITH CIRCUMFLEX +> /xC3/x75 LATIN SMALL LETTER U WITH CIRCUMFLEX +> /xC3/x55 LATIN CAPITAL LETTER U WITH CIRCUMFLEX +> /xC3/x79 LATIN SMALL LETTER Y WITH CIRCUMFLEX +> /xC3/x59 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX +> /xC3/x63 LATIN SMALL LETTER C WITH CIRCUMFLEX +> /xC3/x43 LATIN CAPITAL LETTER C WITH CIRCUMFLEX +> /xC3/x67 LATIN SMALL LETTER G WITH CIRCUMFLEX +> /xC3/x47 LATIN CAPITAL LETTER G WITH CIRCUMFLEX +> /xC3/x68 LATIN SMALL LETTER H WITH CIRCUMFLEX +> /xC3/x48 LATIN CAPITAL LETTER H WITH CIRCUMFLEX +> /xC3/x6A LATIN SMALL LETTER J WITH CIRCUMFLEX +> /xC3/x4A LATIN CAPITAL LETTER J WITH CIRCUMFLEX +> /xC3/x73 LATIN SMALL LETTER S WITH CIRCUMFLEX +> /xC3/x53 LATIN CAPITAL LETTER S WITH CIRCUMFLEX +> /xC3/x77 LATIN SMALL LETTER W WITH CIRCUMFLEX +> /xC3/x57 LATIN CAPITAL LETTER W WITH CIRCUMFLEX +<':> /xC8/x20 DIAERESIS + /xC8/x61 LATIN SMALL LETTER A WITH DIAERESIS + /xC8/x41 LATIN CAPITAL LETTER A WITH DIAERESIS + /xC8/x65 LATIN SMALL LETTER E WITH DIAERESIS + /xC8/x45 LATIN CAPITAL LETTER E WITH DIAERESIS + /xC8/x69 LATIN SMALL LETTER I WITH DIAERESIS + /xC8/x49 LATIN CAPITAL LETTER I WITH DIAERESIS + /xC8/x6F LATIN SMALL LETTER O WITH DIAERESIS + /xC8/x4F LATIN CAPITAL LETTER O WITH DIAERESIS + /xC8/x75 LATIN SMALL LETTER U WITH DIAERESIS + /xC8/x55 LATIN CAPITAL LETTER U WITH DIAERESIS + /xC8/x79 LATIN SMALL LETTER Y WITH DIAERESIS + /xC8/x59 LATIN CAPITAL LETTER Y WITH DIAERESIS +<'.> /xC7/x20 DOT ABOVE (Mandarin Chinese light tone) + /xC7/x63 LATIN SMALL LETTER C WITH DOT ABOVE + /xC7/x43 LATIN CAPITAL LETTER C WITH DOT ABOVE + /xC7/x65 LATIN SMALL LETTER E WITH DOT ABOVE + /xC7/x45 LATIN CAPITAL LETTER E WITH DOT ABOVE + /xC7/x67 LATIN SMALL LETTER G WITH DOT ABOVE + /xC7/x47 LATIN CAPITAL LETTER G WITH DOT ABOVE + /xC7/x49 LATIN CAPITAL LETTER I WITH DOT ABOVE + /xC7/x7A LATIN SMALL LETTER Z WITH DOT ABOVE + /xC7/x5A LATIN CAPITAL LETTER Z WITH DOT ABOVE +<'"> /xCD/x20 DOUBLE ACUTE ACCENT + /xCD/x6F LATIN SMALL LETTER O WITH DOUBLE ACUTE + /xCD/x4F LATIN CAPITAL LETTER O WITH DOUBLE ACUTE + /xCD/x75 LATIN SMALL LETTER U WITH DOUBLE ACUTE + /xCD/x55 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE + /xC1/x61 LATIN SMALL LETTER A WITH GRAVE + /xC1/x41 LATIN CAPITAL LETTER A WITH GRAVE + /xC1/x65 LATIN SMALL LETTER E WITH GRAVE + /xC1/x45 LATIN CAPITAL LETTER E WITH GRAVE + /xC1/x69 LATIN SMALL LETTER I WITH GRAVE + /xC1/x49 LATIN CAPITAL LETTER I WITH GRAVE + /xC1/x6F LATIN SMALL LETTER O WITH GRAVE + /xC1/x4F LATIN CAPITAL LETTER O WITH GRAVE + /xC1/x75 LATIN SMALL LETTER U WITH GRAVE + /xC1/x55 LATIN CAPITAL LETTER U WITH GRAVE +<'m> /xC5/x20 MACRON + /xC5/x61 LATIN SMALL LETTER A WITH MACRON + /xC5/x41 LATIN CAPITAL LETTER A WITH MACRON + /xC5/x65 LATIN SMALL LETTER E WITH MACRON + /xC5/x45 LATIN CAPITAL LETTER E WITH MACRON + /xC5/x69 LATIN SMALL LETTER I WITH MACRON + /xC5/x49 LATIN CAPITAL LETTER I WITH MACRON + /xC5/x6F LATIN SMALL LETTER O WITH MACRON + /xC5/x4F LATIN CAPITAL LETTER O WITH MACRON + /xC5/x75 LATIN SMALL LETTER U WITH MACRON + /xC5/x55 LATIN CAPITAL LETTER U WITH MACRON +<';> /xCE/x20 OGONEK + /xCE/x61 LATIN SMALL LETTER A WITH OGONEK + /xCE/x41 LATIN CAPITAL LETTER A WITH OGONEK + /xCE/x65 LATIN SMALL LETTER E WITH OGONEK + /xCE/x45 LATIN CAPITAL LETTER E WITH OGONEK + /xCE/x69 LATIN SMALL LETTER I WITH OGONEK + /xCE/x49 LATIN CAPITAL LETTER I WITH OGONEK + /xCE/x75 LATIN SMALL LETTER U WITH OGONEK + /xCE/x55 LATIN CAPITAL LETTER U WITH OGONEK +<'0> /xCA/x20 RING ABOVE + /xCA/x61 LATIN SMALL LETTER A WITH RING ABOVE + /xCA/x41 LATIN CAPITAL LETTER A WITH RING ABOVE + /xCA/x75 LATIN SMALL LETTER U WITH RING ABOVE + /xCA/x55 LATIN CAPITAL LETTER U WITH RING ABOVE + /xC4/x61 LATIN SMALL LETTER A WITH TILDE + /xC4/x41 LATIN CAPITAL LETTER A WITH TILDE + /xC4/x6E LATIN SMALL LETTER N WITH TILDE + /xC4/x4E LATIN CAPITAL LETTER N WITH TILDE + /xC4/x69 LATIN SMALL LETTER I WITH TILDE + /xC4/x49 LATIN CAPITAL LETTER I WITH TILDE + /xC4/x6F LATIN SMALL LETTER O WITH TILDE + /xC4/x4F LATIN CAPITAL LETTER O WITH TILDE + /xC4/x75 LATIN SMALL LETTER U WITH TILDE + /xC4/x55 LATIN CAPITAL LETTER U WITH TILDE + /x00 NUL + /x01 START OF HEADING (SOH) + /x02 START OF TEXT (STX) + /x03 END OF TEXT (ETX) + /x04 END OF TRANSMISSION (EOT) + /x05 ENQUIRY (ENQ) + /x06 ACKNOWLEDGE (ACK) + /x07 BELL (BEL) + /x07 BELL (BEL) + /x08 BACKSPACE (BS) + /x09 CHARACTER TABULATION (HT) + /x0A LINE FEED (LF) + /x0B LINE TABULATION (VT) + /x0C FORM FEED (FF) + /x0D CARRIAGE RETURN (CR) + /x10 DATALINK ESCAPE (DLE) + /x11 DEVICE CONTROL ONE (DC1) + /x12 DEVICE CONTROL TWO (DC2) + /x13 DEVICE CONTROL THREE (DC3) + /x14 DEVICE CONTROL FOUR (DC4) + /x15 NEGATIVE ACKNOWLEDGE (NAK) + /x16 SYNCHRONOUS IDLE (SYN) + /x17 END OF TRANSMISSION BLOCK (ETB) + /x18 CANCEL (CAN) + /x1A SUBSTITUTE (SUB) + /x1B ESCAPE (ESC) + /x1C FILE SEPARATOR (IS4) + /x1D GROUP SEPARATOR (IS3) + /x1D GROUP SEPARATOR (IS3) + /x1E RECORD SEPARATOR (IS2) + /x1F UNIT SEPARATOR (IS1) + /x7F DELETE (DEL) + /x20 SPACE + /x21 EXCLAMATION MARK + /x22 QUOTATION MARK + /xA6 NUMBER SIGN + /xA4 DOLLAR SIGN + /x25 PERCENT SIGN + /x26 AMPERSAND + /x27 APOSTROPHE + /x28 LEFT PARENTHESIS + /x29 RIGHT PARENTHESIS + /x2A ASTERISK + /x2B PLUS SIGN + /x2C COMMA + /x2D HYPHEN-MINUS + /x2D HYPHEN-MINUS + /x2E FULL STOP + /x2E FULL STOP + /x2F SOLIDUS + /x2F SOLIDUS + /x30 DIGIT ZERO + /x31 DIGIT ONE + /x32 DIGIT TWO + /x33 DIGIT THREE + /x34 DIGIT FOUR + /x35 DIGIT FIVE + /x36 DIGIT SIX + /x37 DIGIT SEVEN + /x38 DIGIT EIGHT + /x39 DIGIT NINE + /x3A COLON + /x3B SEMICOLON + /x3C LESS-THAN SIGN + /x3D EQUALS SIGN + /x3E GREATER-THAN SIGN + /x3F QUESTION MARK + /x40 COMMERCIAL AT + /x5B LEFT SQUARE BRACKET + /x5C REVERSE SOLIDUS + /x5C REVERSE SOLIDUS + /x5D RIGHT SQUARE BRACKET + /x5E CIRCUMFLEX ACCENT + /x5E CIRCUMFLEX ACCENT + /x5F LOW LINE + /x5F LOW LINE + /x60 GRAVE ACCENT + /x7B LEFT CURLY BRACKET + /x7B LEFT CURLY BRACKET + /x7C VERTICAL LINE + /x7D RIGHT CURLY BRACKET + /x7D RIGHT CURLY BRACKET + /x7E TILDE +END CHARMAP diff --git a/qtjava/javalib/examples/qwerty/ANSI_X3.110-1983.txt b/qtjava/javalib/examples/qwerty/ANSI_X3.110-1983.txt new file mode 100644 index 00000000..5e5582c1 --- /dev/null +++ b/qtjava/javalib/examples/qwerty/ANSI_X3.110-1983.txt @@ -0,0 +1,7 @@ +ABCDE +ÂaÃaÄaÈaÊañËcÁeÂeÃeÈeÁiÂiÃiÈióÄnÁoÂoÃoÄoÈoùÁuÂa +????? +????? +????? +?????? +?????? \ No newline at end of file diff --git a/qtjava/javalib/examples/qwerty/Editor.java b/qtjava/javalib/examples/qwerty/Editor.java new file mode 100644 index 00000000..ba11c685 --- /dev/null +++ b/qtjava/javalib/examples/qwerty/Editor.java @@ -0,0 +1,351 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; +import java.util.ArrayList; + +class Editor extends QWidget +{ +private QMenuBar m; +private QMultiLineEdit e; +private QPrinter printer = new QPrinter(); +private QPopupMenu save_as; +private QPopupMenu open_as; +private boolean changed; + + +private boolean no_writing = false; + +static ArrayList codecList = null; + +static final int Uni = 0; +static final int MBug = 1; +static final int Lat1 = 2; +static final int Local = 3; +static final int Guess = 4; +static final int Codec = 5; + + +Editor( ) +{ + this(null, null); +} + +Editor( QWidget parent , String name ) +{ + super( parent, name, WDestructiveClose ); + m = new QMenuBar( this, "menu" ); + + QPopupMenu file = new QPopupMenu(this); + m.insertItem( "&File", file ); + + file.insertItem( "&New", this, SLOT("newDoc()"), new QKeySequence(ALT+Key_N) ); + file.insertItem( "&Open...", this, SLOT("load()"), new QKeySequence(ALT+Key_O) ); + file.insertItem( "&Save...", this, SLOT("save()"), new QKeySequence(ALT+Key_S) ); + file.insertSeparator(); + open_as = new QPopupMenu(file); + file.insertItem( "Open &As", open_as ); + save_as = new QPopupMenu(file); + file.insertItem( "Sa&ve As", save_as ); + file.insertItem( "Add &Encoding", this, SLOT("addEncoding()") ); + file.insertSeparator(); + file.insertItem( "&Print...", this, SLOT("print()"), new QKeySequence(ALT+Key_P) ); + file.insertSeparator(); + file.insertItem( "&Close", this, SLOT("close()"),new QKeySequence(ALT+Key_W) ); + file.insertItem( "&Quit", qApp(), SLOT("closeAllWindows()"), new QKeySequence(ALT+Key_Q) ); + + connect( save_as, SIGNAL("activated(int)"), this, SLOT("saveAsEncoding(int)") ); + connect( open_as, SIGNAL("activated(int)"), this, SLOT("openAsEncoding(int)") ); + rebuildCodecList(); + + QPopupMenu edit = new QPopupMenu(m); + m.insertItem( "&Edit", edit ); + + edit.insertItem( "To &Uppercase", this, SLOT("toUpper()"), new QKeySequence(ALT+Key_U) ); + edit.insertItem( "To &Lowercase", this, SLOT("toLower()"), new QKeySequence(ALT+Key_L) ); + edit.insertSeparator(); + edit.insertItem( "&Select Font" , this, SLOT("getFont()"), new QKeySequence(ALT+Key_F) ); + changed = false; + e = new QMultiLineEdit( this, "editor" ); + connect( e, SIGNAL(" textChanged()"), this, SLOT(" textChanged()") ); + + // We use Unifont - if you have it installed you'll see all + // Unicode character glyphs. + // + // Unifont only comes in one pixel size, so we cannot let + // it change pixel size as the display DPI changes. + // + QFont unifont = new QFont("unifont",16,50); unifont.setPixelSize(16); + e.setFont( unifont ); + + e.setFocus(); +} + + +public void getFont() +{ + boolean[] ok = { true }; + QFont f = QFontDialog.getFont( ok, e.font() ); + if ( ok[0] ) { + e.setFont( f ); + } +} + + + +void rebuildCodecList() +{ + codecList = new ArrayList(); + QTextCodec codec = null; + int i; + for (i = 0; (codec = QTextCodec.codecForIndex(i)) != null; i++) + codecList.add( codec ); + int n = codecList.size(); + for (int pm=0; pm<2; pm++) { + QPopupMenu menu = pm != 0 ? open_as : save_as; + menu.clear(); + String local = "Local ("; + local += QTextCodec.codecForLocale().name(); + local += ")"; + menu.insertItem( local, Local ); + menu.insertItem( "Unicode", Uni ); + menu.insertItem( "Latin1", Lat1 ); + menu.insertItem( "Microsoft Unicode", MBug ); + if ( pm != 0 ) + menu.insertItem( "[guess]", Guess ); + for ( i = 0; i < n; i++ ) + menu.insertItem( ((QTextCodec) codecList.get(i)).name(), Codec + i ); + } +} + +void newDoc() +{ + Editor ed = new Editor(); + if ( qApp().desktop().size().width() < 450 + || qApp().desktop().size().height() < 450 ) { + ed.showMaximized(); + } else { + ed.resize( 400, 400 ); + ed.show(); + } +} + + +void load() +{ + String fn = QFileDialog.getOpenFileName( "", "", this ); + if ( fn != null ) + load( fn, -1 ); +} + +void load( String fileName ) +{ + load(fileName, -1); +} + +void load( String fileName, int code ) +{ + QFile f = new QFile( fileName ); + if ( !f.open( QIODevice.IO_ReadOnly ) ) + return; + + e.setAutoUpdate( false ); + + QTextStream t = new QTextStream(f); + if ( code >= Codec ) + t.setCodec( (QTextCodec) codecList.get(code-Codec) ); + else if ( code == Uni ) + t.setEncoding( QTextStream.Unicode ); + else if ( code == MBug ) + t.setEncoding( QTextStream.UnicodeReverse ); + else if ( code == Lat1 ) + t.setEncoding( QTextStream.Latin1 ); + else if ( code == Guess ) { + f = new QFile(fileName); + f.open(QIODevice.IO_ReadOnly); + StringBuffer buffer = new StringBuffer(); + int l = 256; + l=(int)f.readBlock(buffer,l); + QTextCodec codec = QTextCodec.codecForContent(buffer.toString(), l); + if ( codec != null ) { + QMessageBox.information(this,"Encoding","Codec: "+codec.name()); + t.setCodec( codec ); + } + } + e.setText( t.read() ); + f.close(); + + e.setAutoUpdate( true ); + e.repaint(); + setCaption( fileName ); + + changed = false; +} + +void openAsEncoding( int code ) +{ + //storing filename (proper save) is left as an exercise... + String fn = QFileDialog.getOpenFileName( "", "", this ); + if ( !fn.equals("") ) + load( fn, code ); +} + +boolean save() +{ + //storing filename (proper save) is left as an exercise... + String fn = QFileDialog.getSaveFileName( "", "", this ); + if ( !fn.equals("") ) + return saveAs( fn ); + return false; +} + +void saveAsEncoding( int code ) +{ + //storing filename (proper save) is left as an exercise... + String fn = QFileDialog.getSaveFileName( "", "", this ); + if ( !fn.equals("") ) + saveAs( fn, code ); +} + +void addEncoding() +{ + String fn = QFileDialog.getOpenFileName( "", "*.map", this ); + if ( !fn.equals("") ) { + QFile f = new QFile(fn); + if (f.open(QIODevice.IO_ReadOnly)) { + if (QTextCodec.loadCharmap(f) != null) { + rebuildCodecList(); + } else { + QMessageBox.warning(null,"Charmap error", + "The file did not contain a valid charmap.\n\n" + + "A charmap file should look like this:\n" + + " thename\n" + + " /\n" + + " % alias thealias\n" + + " CHARMAP\n" + + " /x12 \n" + + " /xAB/x12 \n" + + " ...\n" + + " END CHARMAP\n" + ); + } + } + } +} + + +boolean saveAs( String fileName ) +{ + return saveAs(fileName, -1); +} + +boolean saveAs( String fileName, int code ) +{ + QFile f = new QFile( fileName ); + if ( no_writing || !f.open( QIODevice.IO_WriteOnly ) ) { + QMessageBox.warning(this,"I/O Error", + "The file could not be opened.\n\n" + +fileName); + return false; + } + QTextStream t = new QTextStream(f); + if ( code >= Codec ) + t.setCodec( (QTextCodec) codecList.get(code-Codec) ); + else if ( code == Uni ) + t.setEncoding( QTextStream.Unicode ); + else if ( code == MBug ) + t.setEncoding( QTextStream.UnicodeReverse ); + else if ( code == Lat1 ) + t.setEncoding( QTextStream.Latin1 ); + t.writeRawBytes(e.text(), e.text().length()); + f.close(); + setCaption( fileName ); + changed = false; + return true; +} + +void print() +{ + if ( printer.setup(this) ) { // opens printer dialog + printer.setFullPage(true); // we'll set our own margins + QPainter p = new QPainter(); + p.begin( printer ); // paint on printer + p.setFont( e.font() ); + QFontMetrics fm = p.fontMetrics(); + QPaintDeviceMetrics metrics = new QPaintDeviceMetrics( printer ); // need width/height + // of printer surface + int MARGIN = metrics.logicalDpiX() / 2; // half-inch margin + int yPos = MARGIN; // y position for each line + + for( int i = 0 ; i < e.numLines() ; i++ ) { + if ( printer.aborted() ) + break; + if ( yPos + fm.lineSpacing() > metrics.height() - MARGIN ) { + // no more room on this page + if ( !printer.newPage() ) // start new page + break; // some error + yPos = MARGIN; // back to top of page + } + p.drawText( MARGIN, yPos, metrics.width() - 2*MARGIN, + fm.lineSpacing(), ExpandTabs, e.textLine( i ) ); + yPos += fm.lineSpacing(); + } + p.end(); // send job to printer + } +} + +protected void resizeEvent( QResizeEvent event ) +{ + if ( e != null && m != null ) + e.setGeometry( 0, m.height(), width(), height() - m.height() ); +} + +protected void closeEvent( QCloseEvent event ) +{ + event.accept(); + + if ( changed ) { // the text has been changed + switch ( QMessageBox.warning( this, "Qwerty", + "Save changes to Document?", + tr("&Yes"), + tr("&No"), + tr("Cancel"), + 0, 2) ) { + case 0: // yes + if ( save() ) + event.accept(); + else + event.ignore(); + break; + case 1: // no + event.accept(); + break; + default: // cancel + event.ignore(); + break; + } + } +} + +void toUpper() +{ + e.setText(e.text().toUpperCase()); +} + +void toLower() +{ + e.setText(e.text().toLowerCase()); +} + +void textChanged() +{ + changed = true; +} +} diff --git a/qtjava/javalib/examples/qwerty/IBM277.map b/qtjava/javalib/examples/qwerty/IBM277.map new file mode 100644 index 00000000..51a2472d --- /dev/null +++ b/qtjava/javalib/examples/qwerty/IBM277.map @@ -0,0 +1,350 @@ + IBM277 + % + / +% version: 1.0 +% repertoiremap: mnemonic,ds +% source: IBM NLS RM Vol2 SE09-8002-01, March 1990 + +% alias EBCDIC-CP-DK +% alias EBCDIC-CP-NO +CHARMAP + /x00 NULL (NUL) + /x01 START OF HEADING (SOH) + /x02 START OF TEXT (STX) + /x03 END OF TEXT (ETX) + /x04 STRING TERMINATOR (ST) + /x05 CHARACTER TABULATION (HT) + /x06 START OF SELECTED AREA (SSA) +
/x07 DELETE (DEL) + /x08 END OF GUARDED AREA (EPA) + /x09 REVERSE LINE FEED (RI) + /x0A SINGLE-SHIFT TWO (SS2) + /x0B LINE TABULATION (VT) + /x0C FORM FEED (FF) + /x0D CARRIAGE RETURN (CR) + /x0E SHIFT OUT (SO) + /x0F SHIFT IN (SI) +
/x10 DATALINK ESCAPE (DLE) + /x11 DEVICE CONTROL ONE (DC1) + /x12 DEVICE CONTROL TWO (DC2) + /x13 DEVICE CONTROL THREE (DC3) + /x14 OPERATING SYSTEM COMMAND (OSC) + /x15 NEXT LINE (NEL) + /x16 BACKSPACE (BS) + /x17 END OF SELECTED AREA (ESA) + /x18 CANCEL (CAN) + /x19 END OF MEDIUM (EM) + /x1A PRIVATE USE TWO (PU2) + /x1B SINGLE-SHIFT THREE (SS3) + /x1C FILE SEPARATOR (IS4) + /x1D GROUP SEPARATOR (IS3) + /x1E RECORD SEPARATOR (IS2) + /x1F UNIT SEPARATOR (IS1) + /x20 PADDING CHARACTER (PAD) + /x21 HIGH OCTET PRESET (HOP) + /x22 BREAK PERMITTED HERE (BPH) + /x23 NO BREAK HERE (NBH) + /x24 INDEX (IND) + /x25 LINE FEED (LF) + /x26 END OF TRANSMISSION BLOCK (ETB) + /x27 ESCAPE (ESC) + /x28 CHARACTER TABULATION SET (HTS) + /x29 CHARACTER TABULATION WITH JUSTIFICATION (HTJ) + /x2A LINE TABULATION SET (VTS) + /x2B PARTIAL LINE FORWARD (PLD) + /x2C PARTIAL LINE BACKWARD (PLU) + /x2D ENQUIRY (ENQ) + /x2E ACKNOWLEDGE (ACK) + /x2F BELL (BEL) + /x30 DEVICE CONTROL STRING (DCS) + /x31 PRIVATE USE ONE (PU1) + /x32 SYNCHRONOUS IDLE (SYN) + /x33 SET TRANSMIT STATE (STS) + /x34 CANCEL CHARACTER (CCH) + /x35 MESSAGE WAITING (MW) + /x36 START OF GUARDED AREA (SPA) + /x37 END OF TRANSMISSION (EOT) + /x38 START OF STRING (SOS) + /x39 SINGLE GRAPHIC CHARACTER INTRODUCER (SGCI) + /x3A SINGLE CHARACTER INTRODUCER (SCI) + /x3B CONTROL SEQUENCE INTRODUCER (CSI) + /x3C DEVICE CONTROL FOUR (DC4) + /x3D NEGATIVE ACKNOWLEDGE (NAK) + /x3E PRIVACY MESSAGE (PM) + /x3F SUBSTITUTE (SUB) + /x40 SPACE + /x41 NO-BREAK SPACE +> /x42 LATIN SMALL LETTER A WITH CIRCUMFLEX + /x43 LATIN SMALL LETTER A WITH DIAERESIS + /x44 LATIN SMALL LETTER A WITH GRAVE + /x45 LATIN SMALL LETTER A WITH ACUTE + /x46 LATIN SMALL LETTER A WITH TILDE + /x47 RIGHT CURLY BRACKET + /x48 LATIN SMALL LETTER C WITH CEDILLA + /x49 LATIN SMALL LETTER N WITH TILDE + /x4A NUMBER SIGN +<.> /x4B FULL STOP +<<> /x4C LESS-THAN SIGN +<(> /x4D LEFT PARENTHESIS +<+> /x4E PLUS SIGN + /x4F EXCLAMATION MARK +<&> /x50 AMPERSAND + /x51 LATIN SMALL LETTER E WITH ACUTE +> /x52 LATIN SMALL LETTER E WITH CIRCUMFLEX + /x53 LATIN SMALL LETTER E WITH DIAERESIS + /x54 LATIN SMALL LETTER E WITH GRAVE + /x55 LATIN SMALL LETTER I WITH ACUTE +> /x56 LATIN SMALL LETTER I WITH CIRCUMFLEX + /x57 LATIN SMALL LETTER I WITH DIAERESIS + /x58 LATIN SMALL LETTER I WITH GRAVE + /x59 LATIN SMALL LETTER SHARP S (German) + /x5A CURRENCY SIGN + /x5B LATIN CAPITAL LETTER A WITH RING ABOVE +<*> /x5C ASTERISK +<)> /x5D RIGHT PARENTHESIS +<;> /x5E SEMICOLON +<'/>> /x5F CIRCUMFLEX ACCENT +<-> /x60 HYPHEN-MINUS + /x61 SOLIDUS +> /x62 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + /x63 LATIN CAPITAL LETTER A WITH DIAERESIS + /x64 LATIN CAPITAL LETTER A WITH GRAVE + /x65 LATIN CAPITAL LETTER A WITH ACUTE + /x66 LATIN CAPITAL LETTER A WITH TILDE + /x67 DOLLAR SIGN + /x68 LATIN CAPITAL LETTER C WITH CEDILLA + /x69 LATIN CAPITAL LETTER N WITH TILDE + /x6A LATIN SMALL LETTER O WITH STROKE +<,> /x6B COMMA +<%> /x6C PERCENT SIGN +<_> /x6D LOW LINE +> /x6E GREATER-THAN SIGN + /x6F QUESTION MARK + /x70 BROKEN BAR + /x71 LATIN CAPITAL LETTER E WITH ACUTE +> /x72 LATIN CAPITAL LETTER E WITH CIRCUMFLEX + /x73 LATIN CAPITAL LETTER E WITH DIAERESIS + /x74 LATIN CAPITAL LETTER E WITH GRAVE + /x75 LATIN CAPITAL LETTER I WITH ACUTE +> /x76 LATIN CAPITAL LETTER I WITH CIRCUMFLEX + /x77 LATIN CAPITAL LETTER I WITH DIAERESIS + /x78 LATIN CAPITAL LETTER I WITH GRAVE +<'!> /x79 GRAVE ACCENT +<:> /x7A COLON + /x7B LATIN CAPITAL LETTER AE + /x7C LATIN CAPITAL LETTER O WITH STROKE +<'> /x7D APOSTROPHE +<=> /x7E EQUALS SIGN +<"> /x7F QUOTATION MARK + /x80 COMMERCIAL AT + /x81 LATIN SMALL LETTER A + /x82 LATIN SMALL LETTER B + /x83 LATIN SMALL LETTER C + /x84 LATIN SMALL LETTER D + /x85 LATIN SMALL LETTER E + /x86 LATIN SMALL LETTER F + /x87 LATIN SMALL LETTER G + /x88 LATIN SMALL LETTER H + /x89 LATIN SMALL LETTER I +<<<> /x8A LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +/>> /x8B RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + /x8C LATIN SMALL LETTER ETH (Icelandic) + /x8D LATIN SMALL LETTER Y WITH ACUTE + /x8E LATIN SMALL LETTER THORN (Icelandic) +<+-> /x8F PLUS-MINUS SIGN + /x90 DEGREE SIGN + /x91 LATIN SMALL LETTER J + /x92 LATIN SMALL LETTER K + /x93 LATIN SMALL LETTER L + /x94 LATIN SMALL LETTER M + /x95 LATIN SMALL LETTER N + /x96 LATIN SMALL LETTER O +

/xD7 LATIN CAPITAL LETTER P + /xD8 LATIN CAPITAL LETTER Q + /xD9 LATIN CAPITAL LETTER R +<1S> /xDA SUPERSCRIPT ONE +> /xDB LATIN SMALL LETTER U WITH CIRCUMFLEX +<'?> /xDC TILDE + /xDD LATIN SMALL LETTER U WITH GRAVE + /xDE LATIN SMALL LETTER U WITH ACUTE + /xDF LATIN SMALL LETTER Y WITH DIAERESIS + /xE0 REVERSE SOLIDUS +<-:> /xE1 DIVISION SIGN + /xE2 LATIN CAPITAL LETTER S + /xE3 LATIN CAPITAL LETTER T + /xE4 LATIN CAPITAL LETTER U + /xE5 LATIN CAPITAL LETTER V + /xE6 LATIN CAPITAL LETTER W + /xE7 LATIN CAPITAL LETTER X + /xE8 LATIN CAPITAL LETTER Y + /xE9 LATIN CAPITAL LETTER Z +<2S> /xEA SUPERSCRIPT TWO +> /xEB LATIN CAPITAL LETTER O WITH CIRCUMFLEX + /xEC LATIN CAPITAL LETTER O WITH DIAERESIS + /xED LATIN CAPITAL LETTER O WITH GRAVE + /xEE LATIN CAPITAL LETTER O WITH ACUTE + /xEF LATIN CAPITAL LETTER O WITH TILDE +<0> /xF0 DIGIT ZERO +<1> /xF1 DIGIT ONE +<2> /xF2 DIGIT TWO +<3> /xF3 DIGIT THREE +<4> /xF4 DIGIT FOUR +<5> /xF5 DIGIT FIVE +<6> /xF6 DIGIT SIX +<7> /xF7 DIGIT SEVEN +<8> /xF8 DIGIT EIGHT +<9> /xF9 DIGIT NINE +<3S> /xFA SUPERSCRIPT THREE +> /xFB LATIN CAPITAL LETTER U WITH CIRCUMFLEX + /xFC LATIN CAPITAL LETTER U WITH DIAERESIS + /xFD LATIN CAPITAL LETTER U WITH GRAVE + /xFE LATIN CAPITAL LETTER U WITH ACUTE + /xFF APPLICATION PROGRAM COMMAND (APC) + /x00 NUL + /x01 START OF HEADING (SOH) + /x02 START OF TEXT (STX) + /x03 END OF TEXT (ETX) + /x37 END OF TRANSMISSION (EOT) + /x2D ENQUIRY (ENQ) + /x2E ACKNOWLEDGE (ACK) + /x2F BELL (BEL) + /x2F BELL (BEL) + /x16 BACKSPACE (BS) + /x05 CHARACTER TABULATION (HT) + /x25 LINE FEED (LF) + /x0B LINE TABULATION (VT) + /x0C FORM FEED (FF) + /x0D CARRIAGE RETURN (CR) + /x10 DATALINK ESCAPE (DLE) + /x11 DEVICE CONTROL ONE (DC1) + /x12 DEVICE CONTROL TWO (DC2) + /x13 DEVICE CONTROL THREE (DC3) + /x3C DEVICE CONTROL FOUR (DC4) + /x3D NEGATIVE ACKNOWLEDGE (NAK) + /x32 SYNCHRONOUS IDLE (SYN) + /x26 END OF TRANSMISSION BLOCK (ETB) + /x18 CANCEL (CAN) + /x3F SUBSTITUTE (SUB) + /x27 ESCAPE (ESC) + /x1C FILE SEPARATOR (IS4) + /x1D GROUP SEPARATOR (IS3) + /x1D GROUP SEPARATOR (IS3) + /x1E RECORD SEPARATOR (IS2) + /x1F UNIT SEPARATOR (IS1) + /x07 DELETE (DEL) + /x40 SPACE + /x4F EXCLAMATION MARK + /x7F QUOTATION MARK + /x4A NUMBER SIGN + /x67 DOLLAR SIGN + /x6C PERCENT SIGN + /x50 AMPERSAND + /x7D APOSTROPHE + /x4D LEFT PARENTHESIS + /x5D RIGHT PARENTHESIS + /x5C ASTERISK + /x4E PLUS SIGN + /x6B COMMA + /x60 HYPHEN-MINUS + /x60 HYPHEN-MINUS + /x4B FULL STOP + /x4B FULL STOP + /x61 SOLIDUS + /x61 SOLIDUS + /xF0 DIGIT ZERO + /xF1 DIGIT ONE + /xF2 DIGIT TWO + /xF3 DIGIT THREE + /xF4 DIGIT FOUR + /xF5 DIGIT FIVE + /xF6 DIGIT SIX + /xF7 DIGIT SEVEN + /xF8 DIGIT EIGHT + /xF9 DIGIT NINE + /x7A COLON + /x5E SEMICOLON + /x4C LESS-THAN SIGN + /x7E EQUALS SIGN + /x6E GREATER-THAN SIGN + /x6F QUESTION MARK + /x80 COMMERCIAL AT + /x9E LEFT SQUARE BRACKET + /xE0 REVERSE SOLIDUS + /xE0 REVERSE SOLIDUS + /x9F RIGHT SQUARE BRACKET + /x5F CIRCUMFLEX ACCENT + /x5F CIRCUMFLEX ACCENT + /x6D LOW LINE + /x6D LOW LINE + /x79 GRAVE ACCENT + /x9C LEFT CURLY BRACKET + /x9C LEFT CURLY BRACKET + /xBB VERTICAL LINE + /x47 RIGHT CURLY BRACKET + /x47 RIGHT CURLY BRACKET + /xDC TILDE +END CHARMAP diff --git a/qtjava/javalib/examples/qwerty/IBM277.txt b/qtjava/javalib/examples/qwerty/IBM277.txt new file mode 100644 index 00000000..00cc7b94 --- /dev/null +++ b/qtjava/javalib/examples/qwerty/IBM277.txt @@ -0,0 +1,7 @@ +ÁÂÃÄÅ +%EBFCÐÀHTQRSXUVWŒIÍÎËÏÌjÝE +%????? +%????? +%????? +%?????? +%?????? \ No newline at end of file diff --git a/qtjava/javalib/examples/qwerty/Main.java b/qtjava/javalib/examples/qwerty/Main.java new file mode 100644 index 00000000..67cac77e --- /dev/null +++ b/qtjava/javalib/examples/qwerty/Main.java @@ -0,0 +1,44 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + +public class Main { + +public static void main(String[] args) +{ + QApplication a = new QApplication( args ); + + + boolean isSmall = Qt.qApp().desktop().size().width() < 450 + || Qt.qApp().desktop().size().height() < 450; + + int i; + for ( i= 0; iSaying 1:
" + + "




" + + "Evil is that which one believes of others. It is a sin to believe evil " + + "of others, but it is seldom a mistake.

" + + "
-- H.L. Mencken
", + + "Saying 2:
" + + "


" + + "A well-used door needs no oil on its hinges.
" + + "A swift-flowing steam does not grow stagnant.
" + + "Neither sound nor thoughts can travel through a vacuum.
" + + "Software rots if not used.

" + + "These are great mysteries.


" + + "
-- Geoffrey James, \"The Tao of Programming\"
", + + "Saying 3:
" + + "


" + + "Show business is just like high school, except you get paid.

" + + "
-- Martin Mull
", + + "Saying 4:
" + + "


" + + "The Least Successful Executions
" + + "

History has furnished us with two executioners worthy of attention. " + + "The first performed in Sydney in Australia. In 1803 three attempts were " + + "made to hang a Mr. Joseph Samuels. On the first two of these the rope " + + "snapped, while on the third Mr. Samuels just hung there peacefully until he " + + "and everyone else got bored. Since he had proved unsusceptible to capital " + + "punishment, he was reprieved.

" + + "

The most important British executioner was Mr. James Berry who " + + "tried three times in 1885 to hang Mr. John Lee at Exeter Jail, but on each " + + "occasion failed to get the trap door open." + + "

In recognition of this achievement, the Home Secretary commuted " + + "Lee's sentence to \"life\" imprisonment. He was released in 1917, emigrated " + + "to America and lived until 1933.



" + + "
-- Stephen Pile, \"The Book of Heroic Failures\"
", + + "Saying 5:
" + + "


" + + "If you can, help others. If you can't, at least don't hurt others.

" + + "
-- the Dalai Lama
", + + "Saying 6:
" + + "


" + + "Television has brought back murder into the home -- where it belongs.

" + + "
-- Alfred Hitchcock
", + + "Saying 7:
" + + "


" + + "I don't know who my grandfather was; I am much more concerned to know " + + "what his grandson will be.

" + + "
-- Abraham Lincoln
" + + }; + + +MyRichText( ) +{ + this(null, null); +} + +MyRichText( QWidget parent, String name ) +{ + super( parent, name ); + setMargin( 5 ); + + view = new QTextView( this ); + view.setText( "This is a Test with italic stuff" ); + QBrush paper = new QBrush(); + paper.setPixmap( new QPixmap( "../richtext/marble.png" ) ); + if ( paper.pixmap() != null ) + view.setPaper( paper ); + else + view.setPaper( new QBrush(white()) ); + + view.setText( sayings[0] ); + view.setMinimumSize( 450, 250 ); + + QHBox buttons = new QHBox( this ); + buttons.setMargin( 5 ); + + bClose = new QPushButton( "&Close", buttons ); + bPrev = new QPushButton( "<< &Prev", buttons ); + bNext = new QPushButton( "&Next >>", buttons ); + + bPrev.setEnabled( false ); + + connect( bClose, SIGNAL(" clicked()"), qApp(), SLOT(" quit()") ); + connect( bPrev, SIGNAL(" clicked()"), this, SLOT(" prev()") ); + connect( bNext, SIGNAL(" clicked()"), this, SLOT(" next()") ); + + num = 0; +} + +void prev() +{ + if ( num <= 0 ) + return; + + num--; + + view.setText( sayings[num] ); + + if ( num == 0 ) + bPrev.setEnabled( false ); + + bNext.setEnabled( true ); +} + +void next() +{ + if ( ++num >= sayings.length ) + return; + + view.setText( sayings[num] ); + + if ( num + 1 == sayings.length ) + bNext.setEnabled( false ); + + bPrev.setEnabled( true ); +} + + + + +} + diff --git a/qtjava/javalib/examples/richtext/marble.png b/qtjava/javalib/examples/richtext/marble.png new file mode 100644 index 00000000..49ea3098 Binary files /dev/null and b/qtjava/javalib/examples/richtext/marble.png differ diff --git a/qtjava/javalib/examples/rot13/Rot13.java b/qtjava/javalib/examples/rot13/Rot13.java new file mode 100644 index 00000000..345f2a9d --- /dev/null +++ b/qtjava/javalib/examples/rot13/Rot13.java @@ -0,0 +1,90 @@ +/*************************************************************************** +* $Id$ +** +* Definition of something or other +** +* Created : 979899 +** +* Copyright (C) 1997 by Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + + +class Rot13 extends QWidget { +private QMultiLineEdit left, right; + + + +Rot13() +{ + left = new QMultiLineEdit( this, "left" ); + right = new QMultiLineEdit( this, "right" ); + connect( left, SIGNAL("textChanged()"), this, SLOT("changeRight()") ); + connect( right, SIGNAL("textChanged()"), this, SLOT("changeLeft()") ); + + QPushButton quit = new QPushButton( "&Quit", this ); + quit.setFocusPolicy( NoFocus ); + connect( quit, SIGNAL("clicked()"), qApp(), SLOT("quit()") ); + + QGridLayout l = new QGridLayout( this, 2, 2, 5 ); + l.addWidget( left, 0, 0 ); + l.addWidget( right, 0, 1 ); + l.addWidget( quit, 1, 1, AlignRight ); + + left.setFocus(); +} + + +void changeLeft() +{ + left.blockSignals( true ); + left.setText( rot13( right.text() ) ); + left.blockSignals( false ); +} + + +void changeRight() +{ + right.blockSignals( true ); + right.setText( rot13( left.text() ) ); + right.blockSignals( false ); +} + + +String rot13( String input ) +{ + char[] r = input.toCharArray(); + int i = r.length; + while( i-- != 0 ) { + if ( r[i] >= (int) 'A' && r[i] <= (int) 'M' || + r[i] >= (int) 'a' && r[i] <= (int) 'm' ) + r[i] = (char) (r[i] + 13); + else if ( r[i] >= (int) 'N' && r[i] <= (int) 'Z' || + r[i] >= (int) 'n' && r[i] <= (int) 'z' ) + r[i] = (char) (r[i] - 13); + } + return new String(r); +} + + +public static void main(String[] args) +{ + QApplication a = new QApplication( args ); + Rot13 r = new Rot13(); + r.resize( 400, 400 ); + a.setMainWidget( r ); + r.setCaption("Qt Example - ROT13"); + r.show(); + a.exec(); + return; +} + + static { + qtjava.initialize(); + } +} diff --git a/qtjava/javalib/examples/scribble/Main.java b/qtjava/javalib/examples/scribble/Main.java new file mode 100644 index 00000000..01d7a416 --- /dev/null +++ b/qtjava/javalib/examples/scribble/Main.java @@ -0,0 +1,36 @@ +/*************************************************************************** +* $Id$ +** +* Copyright ( C ) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + +public class Main { + +public static void main(String[] args) +{ + QApplication a = new QApplication( args ); + + Scribble scribble = new Scribble(); + + scribble.resize( 500, 350 ); + scribble.setCaption("Qt Example - Scribble"); + a.setMainWidget( scribble ); + if ( QApplication.desktop().width() > 550 + && QApplication.desktop().height() > 366 ) + scribble.show(); + else + scribble.showMaximized(); + a.exec(); + return; +} + + static { + qtjava.initialize(); + } +} diff --git a/qtjava/javalib/examples/scribble/Scribble.java b/qtjava/javalib/examples/scribble/Scribble.java new file mode 100644 index 00000000..2adf609c --- /dev/null +++ b/qtjava/javalib/examples/scribble/Scribble.java @@ -0,0 +1,216 @@ +/*************************************************************************** +* $Id$ +** +* Copyright ( C ) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; +import java.util.*; + +class Scribble extends QMainWindow +{ + +protected Canvas canvas; + +protected QSpinBox bPWidth; +protected QToolButton bPColor, bSave, bClear; + + + +class Canvas extends QWidget +{ + + void setPenColor( QColor c ) + { pen.setColor( c ); } + + void setPenWidth( int w ) + { pen.setWidth( w ); } + + QColor penColor() + { return pen.color(); } + + int penWidth() + { return pen.width(); } + + +protected QPen pen; +protected QPointArray polyline; + +protected boolean mousePressed; + +protected QPixmap buffer = new QPixmap(); + +public boolean no_writing = false; + +Canvas( QWidget parent ) +{ + this(parent, null); +} + +Canvas( QWidget parent, String name ) +{ + super( parent, name, WStaticContents ); + pen = new QPen( Qt.red(), 3 ); + polyline = new QPointArray(3); + + if ((qApp().args().length > 0) && !buffer.load(qApp().args()[0])) + buffer.fill( colorGroup().base() ); + setBackgroundMode( QWidget.PaletteBase ); + setCursor( Qt.crossCursor() ); +} + +void save( String filename, String format ) +{ + if ( !no_writing ) + buffer.save( filename, format.toUpperCase() ); +} + +void clearScreen() +{ + buffer.fill( colorGroup().base() ); + repaint( false ); +} + +protected void mousePressEvent( QMouseEvent e ) +{ + mousePressed = true; + polyline.setPoint(0, e.pos()); + polyline.setPoint(1, e.pos()); + polyline.setPoint(2, e.pos()); +} + +protected void mouseReleaseEvent( QMouseEvent e ) +{ + mousePressed = false; +} + +protected void mouseMoveEvent( QMouseEvent e ) +{ + if ( mousePressed ) { + QPainter painter = new QPainter(); + painter.begin( buffer ); + painter.setPen( pen ); + polyline.setPoint(2, polyline.at(1)); + polyline.setPoint(1, polyline.at(0)); + polyline.setPoint(0, e.pos()); + painter.drawPolyline( polyline ); + painter.end(); + + QRect r = polyline.boundingRect(); + r = r.normalize(); + r.setLeft( r.left() - penWidth() ); + r.setTop( r.top() - penWidth() ); + r.setRight( r.right() + penWidth() ); + r.setBottom( r.bottom() + penWidth() ); + + bitBlt( this, r.x(), r.y(), buffer, r.x(), r.y(), r.width(), r.height() ); + } +} + +protected void resizeEvent( QResizeEvent e ) +{ + super.resizeEvent( e ); + + int w = width() > buffer.width() ? + width() : buffer.width(); + int h = height() > buffer.height() ? + height() : buffer.height(); + + QPixmap tmp = new QPixmap( buffer ); + buffer.resize( w, h ); + buffer.fill( colorGroup().base() ); + bitBlt( buffer, 0, 0, tmp, 0, 0, tmp.width(), tmp.height() ); +} + +protected void paintEvent( QPaintEvent e ) +{ + super.paintEvent( e ); + ArrayList rects = e.region().rects(); + for ( int i = 0; i < rects.size(); i++ ) { + QRect r = (QRect) rects.get(i); + bitBlt( this, r.x(), r.y(), buffer, r.x(), r.y(), r.width(), r.height() ); + } +} + +} + +//------------------------------------------------------ + +Scribble( ) +{ + this(null, null); +} + +Scribble( QWidget parent, String name ) +{ + super( parent, name ); + canvas = new Canvas( this ); + setCentralWidget( canvas ); + + QToolBar tools = new QToolBar( this ); + + bSave = new QToolButton( new QIconSet(), "Save", "Save as PNG image", this, SLOT(" slotSave()"), tools ); + bSave.setText( "Save as..." ); + + tools.addSeparator(); + + bPColor = new QToolButton( new QIconSet(), "Choose Pen Color", "Choose Pen Color", this, SLOT(" slotColor()"), tools ); + bPColor.setText( "Choose Pen Color..." ); + + tools.addSeparator(); + + bPWidth = new QSpinBox( 1, 20, 1, tools ); + QToolTip.add( bPWidth, "Choose Pen Width" ); + connect( bPWidth, SIGNAL(" valueChanged( int )"), this, SLOT(" slotWidth( int )") ); + bPWidth.setValue( 3 ); + + tools.addSeparator(); + + bClear = new QToolButton( new QIconSet(), "Clear Screen", "Clear Screen", this, SLOT(" slotClear()"), tools ); + bClear.setText( "Clear Screen" ); +} + +void slotSave() +{ + QPopupMenu menu = new QPopupMenu( null ); + HashMap formats = new HashMap(); + + for ( int i = 0; i < QImageIO.outputFormats().size(); i++ ) { + String str = (String) QImageIO.outputFormats().get( i ); + formats.put( new Integer(menu.insertItem( str + "..." )), str ); + } + + menu.setMouseTracking( true ); + int id = menu.exec( bSave.mapToGlobal( new QPoint( 0, bSave.height() + 1 ) ) ); + + if ( id != -1 ) { + String format = (String) formats.get( new Integer(id) ); + + String filename = QFileDialog.getSaveFileName( "", "*." + format.toLowerCase(), this ); + if ( !filename.equals("") ) + canvas.save( filename, format ); + } + +} + +void slotColor() +{ + QColor c = QColorDialog.getColor( canvas.penColor(), this ); + if ( c.isValid() ) + canvas.setPenColor( c ); +} + +void slotWidth( int w ) +{ + canvas.setPenWidth( w ); +} + +void slotClear() +{ + canvas.clearScreen(); +} +} diff --git a/qtjava/javalib/examples/showimg/ImageIconProvider.java b/qtjava/javalib/examples/showimg/ImageIconProvider.java new file mode 100644 index 00000000..5d3dba76 --- /dev/null +++ b/qtjava/javalib/examples/showimg/ImageIconProvider.java @@ -0,0 +1,73 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; +import java.util.ArrayList; + + +class ImageIconProvider extends QFileIconProvider +{ + ArrayList fmts; + QPixmap imagepm; + + + +/* XPM */ +static String image_xpm[] = { +"17 15 9 1", +" c #7F7F7F", +". c #FFFFFF", +"X c #00B6FF", +"o c #BFBFBF", +"O c #FF6C00", +"+ c #000000", +"@ c #0000FF", +"# c #6CFF00", +"$ c #FFB691", +" ..XX", +" ........o .XXX", +" .OOOOOOOo. XXX+", +" .O@@@@@@+++XXX++", +" .O@@@@@@O.XXX+++", +" .O@@@@@@OXXX+++.", +" .O######XXX++...", +" .O#####XXX++....", +" .O##$#$XX+o+....", +" .O#$$$$$+.o+....", +" .O##$$##O.o+....", +" .OOOOOOOO.o+....", +" ..........o+....", +" ooooooooooo+....", +"+++++++++++++...." +}; + +ImageIconProvider( ) +{ + this(null, null); +} + +ImageIconProvider( QWidget parent, String name ) +{ + super( parent, name ); + imagepm = new QPixmap(image_xpm); + fmts = QImage.inputFormats(); +} + + +public QPixmap pixmap( QFileInfo fi ) +{ + String ext = fi.extension().toUpperCase(); + if ( fmts.indexOf(ext) != -1 ) { + return imagepm; + } else { + return super.pixmap(fi); + } +} +} diff --git a/qtjava/javalib/examples/showimg/ImageTextEditor.java b/qtjava/javalib/examples/showimg/ImageTextEditor.java new file mode 100644 index 00000000..6c11c1a4 --- /dev/null +++ b/qtjava/javalib/examples/showimg/ImageTextEditor.java @@ -0,0 +1,144 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + + +class ImageTextEditor extends QDialog +{ +private QImage image; +private QComboBox languages; +private QComboBox keys; +private QMultiLineEdit text; +private QLineEdit newlang; +private QLineEdit newkey; + + + +ImageTextEditor( QImage i, QWidget parent ) +{ + this(i, parent, null, 0); +} + +ImageTextEditor( QImage i, QWidget parent, String name, int f ) +{ + super(parent,name,true,f); + image = i; + QVBoxLayout vbox = new QVBoxLayout(this,8); + vbox.setAutoAdd(true); + + QGrid controls = new QGrid(3,QGrid.Horizontal,this); + controls.setSpacing(8); + QLabel l; + l=new QLabel("Language",controls); l.setAlignment(AlignCenter); + l=new QLabel("Key",controls); l.setAlignment(AlignCenter); + new QLabel("",controls); // dummy + languages = new QComboBox(controls); + keys = new QComboBox(controls); + QPushButton remove = new QPushButton("Remove",controls); + + newlang = new QLineEdit(controls); + newkey = new QLineEdit(controls); + QPushButton add = new QPushButton("Add",controls); + + text = new QMultiLineEdit(this); + + QHBox hbox = new QHBox(this); + QPushButton cancel = new QPushButton("Cancel",hbox); + QPushButton ok = new QPushButton("OK",hbox); + + connect(add,SIGNAL("clicked()"), + this,SLOT("addText()")); + + connect(remove,SIGNAL("clicked()"), + this,SLOT("removeText()")); + + connect(ok,SIGNAL("clicked()"), + this,SLOT("accept()")); + + connect(cancel,SIGNAL("clicked()"), + this,SLOT("reject()")); + + connect(languages,SIGNAL("activated(int)"), + this,SLOT("updateText()")); + + connect(keys,SIGNAL("activated(int)"), + this,SLOT("updateText()")); + + imageChanged(); +} + +void imageChanged() +{ + languages.clear(); + keys.clear(); + text.clear(); + languages.insertItem(""); + + languages.insertStringList( (String[]) image.textLanguages().toArray(new String[0]) ); + keys.insertStringList( (String[]) image.textKeys().toArray(new String[0]) ); + + updateText(); +} + +public void accept() +{ + storeText(); + super.accept(); +} + +void updateText() +{ + storeText(); + newlang.setText(languages.currentText()); + newkey.setText(keys.currentText()); + String t = image.text(currKey(),currLang()); + + text.setText(t); +} + +String currKey() +{ + return newkey.text(); +} + +String currLang() +{ + String l = newlang.text(); + if ( l.equals("") ) + l = ""; + return l; +} + +String currText() +{ + String t = text.text(); + if ( t == null ) t = ""; + return t; +} + + +void removeText() +{ + image.setText(currKey(),currLang(),""); +} + +void addText() +{ + storeText(); +} + +void storeText() +{ + if ( currKey().length() > 0 ) { + image.setText(currKey(),currLang(),currText()); + } +} +} diff --git a/qtjava/javalib/examples/showimg/ImageViewer.java b/qtjava/javalib/examples/showimg/ImageViewer.java new file mode 100644 index 00000000..0b419ea9 --- /dev/null +++ b/qtjava/javalib/examples/showimg/ImageViewer.java @@ -0,0 +1,703 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; +import java.util.*; + +class ImageViewer extends QWidget +{ +private int conversion_flags; +private int alloc_context; +private String filename; +private QImage image = new QImage(); // the loaded image +private QPixmap pm = new QPixmap(); // the converted pixmap +private QPixmap pmScaled; // the scaled pixmap + +private QMenuBar menubar; +private QPopupMenu file; +private QPopupMenu saveimage; +private QPopupMenu savepixmap; +private QPopupMenu edit; +private QPopupMenu options; + +private QWidget helpmsg; +private QLabel status; +private int si, sp, ac, co, mo, fd, bd, // Menu item ids + td, ta, ba, fa, au, ad, dd, + ss, cc, t1, t8, t32; +private int[] pickx = { 0 }; +private int[] picky = { 0 }; +private int[] clickx = { 0 }; +private int[] clicky = { 0 }; +private boolean may_be_other; +private static ImageViewer other = null; + + + + +/* + In the constructor, we just pass the standard parameters on to + QWidget. + + The menu uses a single slot to simplify the process of adding + more items to the options menu. +*/ +ImageViewer( QWidget parent, String name, int wFlags ) +{ + super( parent, name, wFlags ); + conversion_flags = PreferDither; + filename = ""; + helpmsg = null; + pickx[0] = -1; + picky[0] = -1; + clickx[0] = -1; + clicky[0] = -1; + alloc_context = 0; + + menubar = new QMenuBar(this); + menubar.setSeparator( QMenuBar.InWindowsStyle ); + + ArrayList fmt = QImage.outputFormats(); + saveimage = new QPopupMenu( menubar ); + savepixmap = new QPopupMenu( menubar ); + Iterator it = fmt.iterator(); + while (it.hasNext()) { + String f = (String) it.next(); + saveimage.insertItem( f ); + savepixmap.insertItem( f ); + } + connect( saveimage, SIGNAL("activated(int)"), this, SLOT("saveImage(int)") ); + connect( savepixmap, SIGNAL("activated(int)"), this, SLOT("savePixmap(int)") ); + + file = new QPopupMenu( menubar ); + menubar.insertItem( "&File", file ); + file.insertItem( "&New window", this, SLOT("newWindow()"), new QKeySequence(CTRL+Key_N) ); + file.insertItem( "&Open...", this, SLOT("openFile()"), new QKeySequence(CTRL+Key_O) ); + si = file.insertItem( "Save image", saveimage ); + sp = file.insertItem( "Save pixmap", savepixmap ); + file.insertSeparator(); + file.insertItem( "E&xit", qApp(), SLOT("quit()"), new QKeySequence(CTRL+Key_Q) ); + + edit = new QPopupMenu( menubar ); + menubar.insertItem( "&Edit", edit ); + edit.insertItem("&Copy", this, SLOT("copy()"), new QKeySequence(CTRL+Key_C)); + edit.insertItem("&Paste", this, SLOT("paste()"), new QKeySequence(CTRL+Key_V)); + edit.insertSeparator(); + edit.insertItem("&Horizontal flip", this, SLOT("hFlip()"), new QKeySequence(ALT+Key_H)); + edit.insertItem("&Vertical flip", this, SLOT("vFlip()"), new QKeySequence(ALT+Key_V)); + edit.insertItem("&Rotate 180", this, SLOT("rot180()"), new QKeySequence(ALT+Key_R)); + edit.insertSeparator(); + edit.insertItem("&Text...", this, SLOT("editText()")); + edit.insertSeparator(); + t1 = edit.insertItem( "Convert to &1 bit", this, SLOT("to1Bit()") ); + t8 = edit.insertItem( "Convert to &8 bit", this, SLOT("to8Bit()") ); + t32 = edit.insertItem( "Convert to &32 bit", this, SLOT("to32Bit()") ); + + options = new QPopupMenu( menubar ); + menubar.insertItem( "&Options", options ); + ac = options.insertItem( "AutoColor" ); + co = options.insertItem( "ColorOnly" ); + mo = options.insertItem( "MonoOnly" ); + options.insertSeparator(); + fd = options.insertItem( "DiffuseDither" ); + bd = options.insertItem( "OrderedDither" ); + td = options.insertItem( "ThresholdDither" ); + options.insertSeparator(); + ta = options.insertItem( "ThresholdAlphaDither" ); + ba = options.insertItem( "OrderedAlphaDither" ); + fa = options.insertItem( "DiffuseAlphaDither" ); + options.insertSeparator(); + ad = options.insertItem( "PreferDither" ); + dd = options.insertItem( "AvoidDither" ); + options.insertSeparator(); + ss = options.insertItem( "Smooth scaling" ); + cc = options.insertItem( "Use color context" ); + if ( QApplication.colorSpec() == QApplication.ManyColor ) + options.setItemEnabled( cc, false ); + options.setCheckable( true ); + setMenuItemFlags(); + + menubar.insertSeparator(); + + QPopupMenu help = new QPopupMenu( menubar ); + menubar.insertItem( "&Help", help ); + help.insertItem( "Help!", this, SLOT("giveHelp()"), new QKeySequence(CTRL+Key_H) ); + + connect( options, SIGNAL("activated(int)"), this, SLOT("doOption(int)") ); + + status = new QLabel(this); + status.setFrameStyle( QFrame.WinPanel | QFrame.Sunken ); + status.setFixedHeight( fontMetrics().height() + 4 ); + + setMouseTracking( true ); +} + +void cleanUp() +{ + if ( alloc_context != 0 ) + QColor.destroyAllocContext( alloc_context ); + if ( other == this ) + other = null; +} + +/* + This function modifies the conversion_flags when an options menu item + is selected, then ensures all menu items are up to date, and reconverts + the image if possibly necessary. +*/ +void doOption(int item) +{ + if ( item == ss || item == cc ) { + // Toggle + boolean newboolean = !options.isItemChecked(item); + options.setItemChecked(item, newboolean); + // And reconvert... + reconvertImage(); + repaint(image.hasAlphaBuffer()); // show image in widget + return; + } + + if ( options.isItemChecked( item ) ) return; // They are all radio buttons + + int ocf = conversion_flags; + + if ( item == ac ) { + conversion_flags = conversion_flags & ~ColorMode_Mask | AutoColor; + } else if ( item == co ) { + conversion_flags = conversion_flags & ~ColorMode_Mask | ColorOnly; + } else if ( item == mo ) { + conversion_flags = conversion_flags & ~ColorMode_Mask | MonoOnly; + } else if ( item == fd ) { + conversion_flags = conversion_flags & ~Dither_Mask | DiffuseDither; + } else if ( item == bd ) { + conversion_flags = conversion_flags & ~Dither_Mask | OrderedDither; + } else if ( item == td ) { + conversion_flags = conversion_flags & ~Dither_Mask | ThresholdDither; + } else if ( item == ta ) { + conversion_flags = conversion_flags & ~AlphaDither_Mask | ThresholdAlphaDither; + } else if ( item == fa ) { + conversion_flags = conversion_flags & ~AlphaDither_Mask | DiffuseAlphaDither; + } else if ( item == ba ) { + conversion_flags = conversion_flags & ~AlphaDither_Mask | OrderedAlphaDither; + } else if ( item == ad ) { + conversion_flags = conversion_flags & ~DitherMode_Mask | PreferDither; + } else if ( item == dd ) { + conversion_flags = conversion_flags & ~DitherMode_Mask | AvoidDither; + } + + if ( ocf != conversion_flags ) { + setMenuItemFlags(); + // And reconvert... + reconvertImage(); + repaint(image.hasAlphaBuffer()); // show image in widget + } +} + +/* + Set the options menu to reflect the conversion_flags value. +*/ +void setMenuItemFlags() +{ + // File + boolean valid_image = pm.size().width() != 0 || pm.size().height() != 0; + file.setItemEnabled( si, valid_image ); + file.setItemEnabled( sp, valid_image ); + + // Edit + edit.setItemEnabled( t1, image.depth() != 1 ); + edit.setItemEnabled( t8, image.depth() != 8 ); + edit.setItemEnabled( t32, image.depth() != 32 ); + + // Options + boolean may_need_color_dithering = + !valid_image + || image.depth() == 32 && QPixmap.defaultDepth() < 24; + boolean may_need_dithering = may_need_color_dithering + || image.depth() > 1 && options.isItemChecked(mo) + || image.depth() > 1 && QPixmap.defaultDepth() == 1; + boolean has_alpha_mask = !valid_image || image.hasAlphaBuffer(); + + options.setItemEnabled( fd, may_need_dithering ); + options.setItemEnabled( bd, may_need_dithering ); + options.setItemEnabled( td, may_need_dithering ); + + options.setItemEnabled( ta, has_alpha_mask ); + options.setItemEnabled( fa, has_alpha_mask ); + options.setItemEnabled( ba, has_alpha_mask ); + + options.setItemEnabled( ad, may_need_color_dithering ); + options.setItemEnabled( dd, may_need_color_dithering ); + + options.setItemChecked( ac, (conversion_flags & ColorMode_Mask) == AutoColor ); + options.setItemChecked( co, (conversion_flags & ColorMode_Mask) == ColorOnly ); + options.setItemChecked( mo, (conversion_flags & ColorMode_Mask) == MonoOnly ); + options.setItemChecked( fd, (conversion_flags & Dither_Mask) == DiffuseDither ); + options.setItemChecked( bd, (conversion_flags & Dither_Mask) == OrderedDither ); + options.setItemChecked( td, (conversion_flags & Dither_Mask) == ThresholdDither ); + options.setItemChecked( ta, (conversion_flags & AlphaDither_Mask) == ThresholdAlphaDither ); + options.setItemChecked( fa, (conversion_flags & AlphaDither_Mask) == DiffuseAlphaDither ); + options.setItemChecked( ba, (conversion_flags & AlphaDither_Mask) == OrderedAlphaDither ); + options.setItemChecked( ad, (conversion_flags & DitherMode_Mask) == PreferDither ); + options.setItemChecked( dd, (conversion_flags & DitherMode_Mask) == AvoidDither ); +} + +void updateStatus() +{ + if ( pm.size().width() == 0 && pm.size().height() == 0 ) { + if ( !filename.equals("") ) + status.setText("Could not load image"); + else + status.setText("No image - select Open from File menu."); + } else { + String message, moremsg; + message = "" + image.width() + "x" + image.height(); + if ( pm.size().width() != pmScaled.size().width() + || pm.size().height() != pmScaled.size().height() ) + { + moremsg = " [" + pmScaled.width() + "x" + pmScaled.height() + "]"; + message += moremsg; + } + moremsg = ", " + image.depth() + " bits "; + message += moremsg; + if (image.valid(pickx[0],picky[0])) { + moremsg = "(" + + pickx[0] + "," + picky[0] + ")=#" + + Integer.toHexString(image.pixel(pickx[0],picky[0])) + + " "; + message += moremsg; + } + if ( image.numColors() > 0 ) { + if (image.valid(pickx[0],picky[0])) { + moremsg = ", " + image.pixelIndex(pickx[0],picky[0]) + "/" + + image.numColors() + " colors"; + } else { + moremsg = ", " + image.numColors() + " colors"; + } + message += moremsg; + } + if ( image.hasAlphaBuffer() ) { + if ( image.depth() == 8 ) { + int i; + boolean alpha[] = new boolean[256]; + int nalpha=0; + + for (i=0; i<256; i++) + alpha[i] = false; + + for (i=0; i> 24; + // Hack - image.color() returns a C++ unsigned int, but alevel is a signed int. + // If the top 8 bits are 0xffffffff, alevel is -1, not 255, and needs fixing up + if (alevel == -1) { + alevel = 255; + } + if (!alpha[alevel]) { + alpha[alevel] = true; + nalpha++; + } + } + moremsg = ", " + nalpha + " alpha levels"; + } else { + // Too many pixels to bother counting. + moremsg = ", 8-bit alpha channel"; + } + message += moremsg; + } + status.setText(message); + } +} + +/* + This function saves the image. +*/ +void saveImage( int item ) +{ + String fmt = saveimage.text(item); + String savefilename = QFileDialog.getSaveFileName("", "", + this, filename); + if ( !savefilename.equals("") ) + if ( !image.save( savefilename, fmt ) ) + QMessageBox.warning( this, "Save failed", "Error saving file" ); +} + +/* + This function saves the converted image. +*/ +void savePixmap( int item ) +{ + String fmt = savepixmap.text(item); + String savefilename = QFileDialog.getSaveFileName("", + "", this, filename); + if ( !savefilename.equals("") ) + if ( !pmScaled.save( savefilename, fmt ) ) + QMessageBox.warning( this, "Save failed", "Error saving file" ); +} + + +void newWindow() +{ + ImageViewer that = new ImageViewer(null, "new window", WDestructiveClose); + that.options.setItemChecked( that.cc, useColorContext() ); + that.show(); +} + +/* + This function is the slot for processing the Open menu item. +*/ +void openFile() +{ + String newfilename = QFileDialog.getOpenFileName(); + if ( !newfilename.equals("") ) { + loadImage( newfilename ) ; + repaint(); // show image in widget + } +} + +/* + This function loads an image from a file and resizes the widget to + exactly fit the image size. If the file was not found or the image + format was unknown it will resize the widget to fit the errorText + message (see above) displayed in the current font. + + Returns true if the image was successfully loaded. +*/ + +boolean loadImage( String fileName ) +{ + filename = fileName; + boolean ok = false; + if ( ! filename.equals("") ) { + QApplication.setOverrideCursor( waitCursor() ); // this might take time + ok = image.load(filename, null); + pickx[0] = -1; + clickx[0] = -1; + if ( ok ) + ok = reconvertImage(); + if ( ok ) { + setCaption( filename ); // set window caption + int w = pm.width(); + int h = pm.height(); + + int reasonable_width = 128; + if ( w < reasonable_width ) { + // Integer scale up to something reasonable + int multiply = ( reasonable_width + w - 1 ) / w; + w *= multiply; + h *= multiply; + } + + h += menubar.heightForWidth(w) + status.height(); + resize( w, h ); // we resize to fit image + } else { + pm.resize(0,0); // couldn't load image + update(); + } + QApplication.restoreOverrideCursor(); // restore original cursor + } + updateStatus(); + setMenuItemFlags(); + return ok; +} + +boolean reconvertImage() +{ + boolean success = false; + + if ( image.isNull() ) return false; + + if ( alloc_context != 0 ) { + QColor.destroyAllocContext( alloc_context ); + alloc_context = 0; + } + if ( useColorContext() ) { + alloc_context = QColor.enterAllocContext(); + // Clear the image to hide flickering palette + QPainter painter = new QPainter(this); + painter.eraseRect(0, menubar.heightForWidth( width() ), width(), height()); + } + + QApplication.setOverrideCursor( waitCursor() ); // this might take time + if ( pm.convertFromImage(image, conversion_flags) ) + { + pmScaled = new QPixmap(); + scale(); + resize( width(), height() ); + success = true; // load successful + } else { + pm.resize(0,0); // couldn't load image + } + updateStatus(); + setMenuItemFlags(); + QApplication.restoreOverrideCursor(); // restore original cursor + + if ( useColorContext() ) + QColor.leaveAllocContext(); + + return success; // true if loaded OK +} + +boolean smooth() +{ + return options.isItemChecked(ss); +} + +boolean useColorContext() +{ + return options.isItemChecked(cc); +} + +/* + This functions scales the pixmap in the member variable "pm" to fit the + widget size and puts the resulting pixmap in the member variable "pmScaled". +*/ + +void scale() +{ + int h = height() - menubar.heightForWidth( width() ) - status.height(); + + if ( image.isNull() ) return; + + QApplication.setOverrideCursor( waitCursor() ); // this might take time + if ( width() == pm.width() && h == pm.height() ) + { // no need to scale if widget + pmScaled = pm; // size equals pixmap size + } else { + if (smooth()) { + pmScaled.convertFromImage(image.smoothScale(width(), h), + conversion_flags); + } else { + QWMatrix m = new QWMatrix(); // transformation matrix + m.scale(((double)width())/pm.width(),// define scale factors + ((double)h)/pm.height()); + pmScaled = (QPixmap) pm.xForm( m ); // create scaled pixmap + } + } + QApplication.restoreOverrideCursor(); // restore original cursor +} + +/* + The resize event handler, if a valid pixmap was loaded it will call + scale() to fit the pixmap to the new widget size. +*/ + +protected void resizeEvent( QResizeEvent e ) +{ + status.setGeometry(0, height() - status.height(), + width(), status.height()); + + if ( pm.size().width() == 0 && pm.size().height() == 0 ) // we couldn't load the image + return; + + int h = height() - menubar.heightForWidth( width() ) - status.height(); + if ( width() != pmScaled.width() || h != pmScaled.height()) + { // if new size, + scale(); // scale pmScaled to window + updateStatus(); + } + if ( image.hasAlphaBuffer() ) + erase(); +} + +protected boolean convertEvent( QMouseEvent e, int[] x, int[] y) +{ + if ( pm.size().width() != 0 || pm.size().height() != 0 ) { + int h = height() - menubar.heightForWidth( width() ) - status.height(); + int nx = e.x() * image.width() / width(); + int ny = (e.y()-menubar.heightForWidth( width() )) * image.height() / h; + if (nx != x[0] || ny != y[0] ) { + x[0] = nx; + y[0] = ny; + updateStatus(); + return true; + } + } + return false; +} + +protected void mousePressEvent( QMouseEvent e ) +{ + may_be_other = convertEvent(e, clickx, clicky); +} + +protected void mouseReleaseEvent( QMouseEvent e ) +{ + if ( may_be_other ) + other = this; +} + +/* + Record the pixel position of interest. +*/ +protected void mouseMoveEvent( QMouseEvent e ) +{ + if (convertEvent(e,pickx,picky)) { + updateStatus(); + if ((e.state()&LeftButton) != 0) { + may_be_other = false; + if ( clickx[0] >= 0 && other != null) { + copyFrom(other); + } + } + } +} + +/* + Draws the portion of the scaled pixmap that needs to be updated or prints + an error message if no legal pixmap has been loaded. +*/ + +protected void paintEvent( QPaintEvent e ) +{ + if ( pm.size().width() != 0 || pm.size().height() != 0 ) { // is an image loaded? + QPainter painter = new QPainter(this); + painter.setClipRect(e.rect()); + painter.drawPixmap(0, menubar.heightForWidth( width() ), pmScaled); + } +} + + +/* + Explain anything that might be confusing. +*/ +void giveHelp() +{ + if (helpmsg == null) { + String helptext = + "Usage: showimg [-m] filename ..." + + "
" + + "-m - use ManyColor color spec" + + "
" + + "

Supported input formats:" + + "

"; + Iterator it = QImage.inputFormatList().iterator(); + if (it.hasNext()) + helptext += (String) it.next(); + while (it.hasNext()) { + helptext += ", " + (String) it.next(); + } + helptext += "
"; + + helpmsg = new QMessageBox( "Help", helptext, + QMessageBox.Information, QMessageBox.Ok, 0, 0, null, null, false ); + } + helpmsg.show(); + helpmsg.raise(); +} + +void copyFrom(ImageViewer s) +{ + if ( clickx[0] >= 0 ) { + int dx = clickx[0]; + int dy = clicky[0]; + int sx = s.clickx[0]; + int sy = s.clicky[0]; + int sw = Math.abs(clickx[0] - pickx[0])+1; + int sh = Math.abs(clicky[0] - picky[0])+1; + if ( clickx[0] > pickx[0] ) { + dx = pickx[0]; + sx -= sw-1; + } + if ( clicky[0] > picky[0] ) { + dy = picky[0]; + sy -= sh-1; + } + bitBlt( new QPixmap(image), dx, dy, new QPixmap(s.image), sx, sy, sw, sh ); + reconvertImage(); + repaint( image.hasAlphaBuffer() ); + } +} + +void hFlip() +{ + setImage(image.mirror(true,false)); +} + +void vFlip() +{ + setImage(image.mirror(false,true)); +} + +void rot180() +{ + setImage(image.mirror(true,true)); +} + +void copy() +{ + QApplication.clipboard().setImage(image); // Less information loss +} + +void paste() +{ + QImage p = QApplication.clipboard().image(); + if ( !p.isNull() ) { + filename = "pasted"; + setImage(p); + } +} + +void setImage(QImage newimage) +{ + image = newimage; + + pickx[0] = -1; + clickx[0] = -1; + setCaption( filename ); // set window caption + int w = image.width(); + int h = image.height(); + if ( w == 0 ) + return; + + int reasonable_width = 128; + if ( w < reasonable_width ) { + // Integer scale up to something reasonable + int multiply = ( reasonable_width + w - 1 ) / w; + w = multiply; + h = multiply; + } + + h += menubar.heightForWidth(w) + status.height(); + resize( w, h ); // we resize to fit image + + reconvertImage(); + repaint( image.hasAlphaBuffer() ); + + updateStatus(); + setMenuItemFlags(); +} + +void editText() +{ + ImageTextEditor editor = new ImageTextEditor(image,this); + editor.exec(); +} + +void to1Bit() +{ + toBitDepth(1); +} + +void to8Bit() +{ + toBitDepth(8); +} + +void to32Bit() +{ + toBitDepth(32); +} + +void toBitDepth(int d) +{ + image = image.convertDepth(d); + reconvertImage(); + repaint( image.hasAlphaBuffer() ); +} +} diff --git a/qtjava/javalib/examples/showimg/Main.java b/qtjava/javalib/examples/showimg/Main.java new file mode 100644 index 00000000..a72a39c9 --- /dev/null +++ b/qtjava/javalib/examples/showimg/Main.java @@ -0,0 +1,59 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + +public class Main { + +public static void main(String[] args) +{ + if ( args.length > 0 && args[0].equals("-m") ) { + QApplication.setColorSpec( QApplication.ManyColor ); + } + else if ( args.length > 1 && args[1].equals("-n") ) { + QApplication.setColorSpec( QApplication.NormalColor ); + } + else { + QApplication.setColorSpec( QApplication.CustomColor ); + } + + QApplication.setFont( new QFont("Helvetica", 12) ); + QApplication a = new QApplication( args ); + + ImageIconProvider iip = new ImageIconProvider(); + QFileDialog.setIconProvider( iip ); + + if ( args.length == 0 ) { + // Create a window which looks after its own existence. + ImageViewer w = + new ImageViewer(null, "new window", Qt.WDestructiveClose | Qt.WResizeNoErase ); + w.setCaption("Qt Example - Image Viewer"); + w.show(); + } else { + for ( int i=0; iSorry, you are not running the Network Audio System." + + "

If you have the `au' command, run it in the background before this program. " + + "The latest release of the Network Audio System can be obtained from:" + + "

\n"
+		+ "  \n"
+		+ "   ftp.ncd.com:/pub/ncd/technology/src/nas\n"
+		+ "   ftp.x.org:/contrib/audio/nas\n"
+		+ "
" + + "

Release 1.2 of NAS is also included with the X11R6" + + "contrib distribution." + + "

After installing NAS, you will then need to reconfigure Qt with NAS sound support"); + } + + QPopupMenu file = new QPopupMenu(this); + file.insertItem("Play &1", this, SLOT("doPlay1()"), new QKeySequence(CTRL+Key_1)); + file.insertItem("Play &2", this, SLOT("doPlay2()"), new QKeySequence(CTRL+Key_2)); + file.insertItem("Play from bucket &3", this, SLOT("doPlay3()"), new QKeySequence(CTRL+Key_3)); + file.insertItem("Play from bucket &4", this, SLOT("doPlay4()"), new QKeySequence(CTRL+Key_4)); + file.insertSeparator(); + file.insertItem("Play 3 and 4 together", this, SLOT("doPlay34()")); + file.insertItem("Play all together", this, SLOT("doPlay1234()")); + file.insertSeparator(); + file.insertItem("E&xit", qApp(), SLOT("quit()")); + menuBar().insertItem("&File", file); +} + +void doPlay1() +{ + QSound.play("sounds/1.wav"); +} + +void doPlay2() +{ + QSound.play("sounds/2.wav"); +} + +void doPlay3() +{ + bucket3.play(); +} + +void doPlay4() +{ + bucket4.play(); +} + +void doPlay34() +{ + // Some sound platforms will only play one sound at a time + bucket3.play(); + bucket4.play(); +} + +void doPlay1234() +{ + // Some sound platforms will only play one sound at a time + QSound.play("sounds/1.wav"); + QSound.play("sounds/2.wav"); + bucket3.play(); + bucket4.play(); +} + +public static void main(String[] args) +{ + QApplication app = new QApplication(args); + SoundPlayer sp = new SoundPlayer(); + app.setMainWidget(sp); + sp.setCaption("Qt Example - Sounds"); + sp.show(); + app.exec(); + return; +} + + static { + qtjava.initialize(); + } + +} + diff --git a/qtjava/javalib/examples/sound/sounds/1.wav b/qtjava/javalib/examples/sound/sounds/1.wav new file mode 100644 index 00000000..30b84e30 Binary files /dev/null and b/qtjava/javalib/examples/sound/sounds/1.wav differ diff --git a/qtjava/javalib/examples/sound/sounds/2.wav b/qtjava/javalib/examples/sound/sounds/2.wav new file mode 100644 index 00000000..dd32e345 Binary files /dev/null and b/qtjava/javalib/examples/sound/sounds/2.wav differ diff --git a/qtjava/javalib/examples/sound/sounds/3.wav b/qtjava/javalib/examples/sound/sounds/3.wav new file mode 100644 index 00000000..5213eb55 Binary files /dev/null and b/qtjava/javalib/examples/sound/sounds/3.wav differ diff --git a/qtjava/javalib/examples/sound/sounds/4.wav b/qtjava/javalib/examples/sound/sounds/4.wav new file mode 100644 index 00000000..e31b0609 Binary files /dev/null and b/qtjava/javalib/examples/sound/sounds/4.wav differ diff --git a/qtjava/javalib/examples/splitter/Test.java b/qtjava/javalib/examples/splitter/Test.java new file mode 100644 index 00000000..f174bc2b --- /dev/null +++ b/qtjava/javalib/examples/splitter/Test.java @@ -0,0 +1,97 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + + + +class Test extends QWidget { + + +Test(QWidget parent, String name) +{ + this(parent, name, 0); +} + +Test(QWidget parent, String name, int f) +{ + super(parent, name, f); + +} + +public void paintEvent(QPaintEvent e) +{ + QPainter p = new QPainter(this); + p.setClipRect(e.rect()); + int d = 1000; //large number + int x1 = 0; + int x2 = width()-1; + int y1 = 0; + int y2 = height()-1; + + int x = (x1+x2)/2; + p.drawLine( x, y1, x+d, y1+d ); + p.drawLine( x, y1, x-d, y1+d ); + p.drawLine( x, y2, x+d, y2-d ); + p.drawLine( x, y2, x-d, y2-d ); + + int y = (y1+y2)/2; + p.drawLine( x1, y, x1+d, y+d ); + p.drawLine( x1, y, x1+d, y-d ); + p.drawLine( x2, y, x2-d, y+d ); + p.drawLine( x2, y, x2-d, y-d ); + p.end(); +} + + +public static void main(String[] args) +{ + QApplication a = new QApplication( args ); + + QSplitter s1 = new QSplitter( QSplitter.Vertical, null , "main" ); + + QSplitter s2 = new QSplitter( QSplitter.Horizontal, s1, "top" ); + + Test t1 = new Test( s2, "topLeft" ); + t1.setBackgroundColor( Qt.blue().light( 180 ) ); + t1.setMinimumSize( 50, 0 ); + + Test t2 = new Test( s2, "topRight" ); + t2.setBackgroundColor( Qt.green().light( 180 ) ); + s2.setResizeMode( t2, QSplitter.KeepSize ); + s2.moveToFirst( t2 ); + + QSplitter s3 = new QSplitter( QSplitter.Horizontal, s1, "bottom" ); + + Test t3 = new Test( s3, "bottomLeft" ); + t3.setBackgroundColor( Qt.red() ); + Test t4 = new Test( s3, "bottomMiddle" ); + t4.setBackgroundColor( Qt.white() ); + + Test t5 = new Test( s3, "bottomRight" ); + t5.setMaximumHeight( 250 ); + t5.setMinimumSize( 80, 50 ); + t5.setBackgroundColor( Qt.yellow() ); + + // Qt/Embedded XOR drawing not yet implemented. + s1.setOpaqueResize( true ); + s2.setOpaqueResize( true ); + s3.setOpaqueResize( true ); + + a.setMainWidget( s1 ); + s1.setCaption("Qt Example - Splitters"); + s1.show(); + int result = a.exec(); + return; +} + static { + qtjava.initialize(); + } +} diff --git a/qtjava/javalib/examples/tabdialog/Main.java b/qtjava/javalib/examples/tabdialog/Main.java new file mode 100644 index 00000000..27a0ef6a --- /dev/null +++ b/qtjava/javalib/examples/tabdialog/Main.java @@ -0,0 +1,33 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + +public class Main { + +public static void main(String[] args) +{ + + QApplication a = new QApplication( args ); + + TabDialog tabdialog = new TabDialog( null, "tabdialog", ( args.length < 1 ? "." : args[0] ) ); + tabdialog.resize( 450, 350 ); + tabdialog.setCaption( "Qt Example - Tabbed Dialog" ); + a.setMainWidget( tabdialog ); + tabdialog.show(); + + a.exec(); + return; +} + + static { + qtjava.initialize(); + } +} diff --git a/qtjava/javalib/examples/tabdialog/TabDialog.java b/qtjava/javalib/examples/tabdialog/TabDialog.java new file mode 100644 index 00000000..838bec10 --- /dev/null +++ b/qtjava/javalib/examples/tabdialog/TabDialog.java @@ -0,0 +1,114 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; +import java.text.*; + +class TabDialog extends QTabDialog +{ + +protected String filename; +protected QFileInfo fileinfo; + + +TabDialog( QWidget parent, String name, String _filename ) +{ + super( parent, name ); + filename = _filename; + fileinfo = new QFileInfo(filename); + setupTab1(); + setupTab2(); + setupTab3(); + + connect( this, SIGNAL(" applyButtonPressed()"), qApp(), SLOT(" quit()") ); +} + +void setupTab1() +{ + QVBox tab1 = new QVBox( this ); + tab1.setMargin( 5 ); + + new QLabel( "Filename:", tab1 ); + QLineEdit fname = new QLineEdit( filename, tab1 ); + fname.setFocus(); + + new QLabel( "Path:", tab1 ); + QLabel path = new QLabel( fileinfo.dirPath( true ), tab1 ); + path.setFrameStyle( QFrame.Panel | QFrame.Sunken ); + + new QLabel( "Size:", tab1 ); + QLabel size = new QLabel( fileinfo.size() + " KB", tab1 ); + size.setFrameStyle( QFrame.Panel | QFrame.Sunken ); + + SimpleDateFormat dateFormat = new SimpleDateFormat("EE MMM d hh:mm:ss yyyy"); + + new QLabel( "Last Read:", tab1 ); + QLabel lread = new QLabel( dateFormat.format(fileinfo.lastRead().getTime()), tab1 ); + lread.setFrameStyle( QFrame.Panel | QFrame.Sunken ); + + new QLabel( "Last Modified:", tab1 ); + QLabel lmodif = new QLabel( dateFormat.format(fileinfo.lastModified().getTime()), tab1 ); + lmodif.setFrameStyle( QFrame.Panel | QFrame.Sunken ); + + addTab( tab1, "General" ); +} + +void setupTab2() +{ + QVBox tab2 = new QVBox( this ); + tab2.setMargin( 5 ); + + QButtonGroup bg = new QButtonGroup( 1, QGroupBox.Horizontal, "Permissions", tab2 ); + + QCheckBox readable = new QCheckBox( "Readable", bg ); + if ( fileinfo.isReadable() ) + readable.setChecked( true ); + + QCheckBox writable = new QCheckBox( "Writeable", bg ); + if ( fileinfo.isWritable() ) + writable.setChecked( true ); + + QCheckBox executable = new QCheckBox( "Executable", bg ); + if ( fileinfo.isExecutable() ) + executable.setChecked( true ); + + QButtonGroup bg2 = new QButtonGroup( 2, QGroupBox.Horizontal, "Owner", tab2 ); + + new QLabel( "Owner", bg2 ); + QLabel owner = new QLabel( fileinfo.owner(), bg2 ); + owner.setFrameStyle( QFrame.Panel | QFrame.Sunken ); + + new QLabel( "Group", bg2 ); + QLabel group = new QLabel( fileinfo.group(), bg2 ); + group.setFrameStyle( QFrame.Panel | QFrame.Sunken ); + + addTab( tab2, "Permissions" ); +} + +void setupTab3() +{ + QVBox tab3 = new QVBox( this ); + tab3.setMargin( 5 ); + tab3.setSpacing( 5 ); + + new QLabel( "Open " + filename + " with:", tab3 ); + + QListBox prgs = new QListBox( tab3 ); + for ( int i = 0; i < 30; i++ ) { + String prg = "Application " + i; + prgs.insertItem( prg ); + } + prgs.setCurrentItem( 3 ); + + new QCheckBox( "Open files with the extension '" + fileinfo.extension() + "' always with this application", tab3 ); + + addTab( tab3, "Applications" ); +} +} diff --git a/qtjava/javalib/examples/table/small-table-demo/Main.java b/qtjava/javalib/examples/table/small-table-demo/Main.java new file mode 100644 index 00000000..a3e38843 --- /dev/null +++ b/qtjava/javalib/examples/table/small-table-demo/Main.java @@ -0,0 +1,183 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + +public class Main extends QObject { + +// Qt logo: static String qtlogo_xpm[] +/* XPM */ +static String[] qtlogo_xpm = { +/* width height num_colors chars_per_pixel */ +" 100 100 16 1", +/* colors */ +". c #000000", +"# c #0b0d01", +"a c #161a02", +"b c #202703", +"c c #2b3505", +"d c #364206", +"e c #414f07", +"f c #4c5c08", +"g c #566909", +"h c #61760a", +"i c #6c830b", +"j c #77900c", +"k c #829e0e", +"l c #8cab0f", +"m c #97b810", +"n c #a2c511", +/* pixels */ +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmmmmmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmkhgecbbabbcdefikmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnkjdc#..............#ceilnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmida......................aehmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmgc#.....................##..#abgmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmgd#..............................#chmnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnjd....##..................#.....###..#eimnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnmga...#...............................#..agmnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnke#.......#................................acknnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnjc...#........................##....#.........dinnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnib..#...............................#...........cjnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnhb....#.#......................##......#..........ahnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnib..#..........#.....####aabba#.....#.....##.......#cinnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnjb.................#acehklmmmmljihca..................bjnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnkc..#.............#cfknnnnnnnnnnnnnlkhc#..#.............cknnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnme......##....#..#dhmnnnnnnnnnnnnnnnnnnlhda...##.......##.dmnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnng#.#....#......#bglnnnnnnnnnnnnnnnnnnnnnnlfa...#...#....#.#fnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnja...#.......#.#dknnnnnnnnnnnnnnnnnnnnnnnnnnmda.....#....##.ajnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnmd..#........#.#emnnnnnnnnnnnnnnnnnnnnnnnnnnnnmf#.#...#.......dlnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnf...#....#..#.#hnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnh#.#...........gnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnmd.#..........#hlnnnnnnnnnnnnnnnnnnnnnnnknnnnnnnnmg#............dlnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnng#.#..........fmnnnnnnnnnnnnnnnnnnnnnnnhcgnnnnnnnnme............agnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnmc..#......#..dlnnnnnnnnnnnnnnnnnnnnnnnha.ahnnnnnnnnld.#..........cmnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnni#.#.........bknnnnnnnnnnnnnnnnnnnnnnnha...ahnnnnnnnnkb...........#innnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnd..#........#gnnnnnnnnnnnnnnnnnnnnnnng#...#.#hnnnnnnnnh..........#.ennnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnla.#......#..dlnnnnnnnnnnnnnnnnnnnnnmha..#.##.bhnnnnnnnlc.........#.aknnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnj.........#.#innnnnnnnnnnnnnnnnnnnnnia.#.......ahnnnnnnni............innnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnd...........cmnnnnnnnnnnnnnnnnnnnnnha............hnnnnnnnc.........##dnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnmc..........#fnnnnnnnnnnnnnnnnnnnnnha....#...##...bgmnnnnnf##.........cmnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnk#..........aknnnnnnnnnnnnnnnnnnnnha..#.....#......cknnnnnka#.........aknnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnh...........cnnnnnnnnnnnnnnnnnnnni#..#.....#......ahmnnnnnnc...........innnnnnnnnnnnnn", +"nnnnnnnnnnnnnng..........#ennnnnnnnnnnnnnnnnnnha.........#..#..#imnnnnnnne........#..gnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnne..........#hnnnnnnnnnnnnnnnnnnha.....#.........ahnnnnnnnnnh#.......#..ennnnnnnnnnnnnn", +"nnnnnnnnnnnnnnc..........#knnnnnnnnnnnnnnnnnha.#...##........ainnnnnnnnnnk#..........cnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnmb..........#lnnnnnnnnnnnnnnnnia.#.............#hnnnnnnnnnnnma..........bnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnma..........amnnnnnnnnnnnnnnnh#.............#.ainnnnnnnnnnnnna..........bnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnma..........amnnnnnnnnnnnnnnha.............#.#hnnnnnnnnnnnnnna..........bmnnnnnnnnnnnnn", +"nnnnnnnnnnnnnmb..........bmnnnnnnnnnnnnmha..............#.#hnnnnnnnnnnnnnna..........amnnnnnnnnnnnnn", +"nnnnnnnnnnnnnmb..........amnnnnnnnnnnnmia.##..#..........#.ahnnnnnnnnnnnnna..........bmnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnc..........alnnnnnnnnnnnha.##..##.............#hnnnnnnnnnnnla..........cmnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnd..........#jnnnnnnnnnnga..#...................ahnnnnnnnnnnj#..........dnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnne...........innnnnnnnnha.#....................#.ahmnnnnnnnnh.#.........ennnnnnnnnnnnnn", +"nnnnnnnnnnnnnne.........#.hnnnnnnnnia.#...#...#.........#.....#.imnnnnnnng.#......#.#fnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnni....#..#.#.cmnnnnnnh#..#..#...#...#..............#hnnnnnnnb...........innnnnnnnnnnnnn", +"nnnnnnnnnnnnnnj#......#...aknnnnnkc.....#..##...#..#.............ahnnnnnka........#.#knnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnlb.#.........hnnnnnnga..#...##...#.##...............ahnnnnf.........#.bmnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnne.#.......#.clnnnnnnh#.#..##..#..#hha.............#.ahmnmb.........#.ennnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnni...........#hnnnnnnnh#...#..#..#hnnh#.#.............#ini#..#.....#..innnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnla......#....dlnnnnnnnhb....#..bhmnnnha.............#.bfc...#.....#.alnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnne#.#..#.....afnnnnnnnni#.....binnnnnnha#.........#................#ennnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnha.#....#..#.amnnnnnnnnh#...#hnnnnnnnnh..............#..........#.#hnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnb.#.....#....dmnnnnnnnnha.ainnnnnnnnnmi..........................dlnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnh#......#..#.afnnnnnnnnngdgmnnnnnnnnnnmha.#..#.................#.gnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnmc.#....#..#..#glnnnnnnnmkmnnnnnnnnnnnnnh#......................clnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnh#.............gmnnnnnnnnnnnnnnnnnnnnnnnha.#...................innnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnme..........##.#elnnnnnnnnnnnnnnnnnnnnnnnh#...................elnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnia...........#.#dknnnnnnnnnnnnnnnnnnnnnnmhb.............##.#alnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnmga..............bhlmnnnnnnnnnnnnnnnnnnnnng.#...........##.#bmnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnmc.......###...#..cimnnnnnnnnnnnnnnnnnnmic..........#......ajnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnkd........#........cfknnnnnnnnnnnnnnkfb#..........#........#hnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnic....##...........#bcehklmmnmljhfba.......................agnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnja#...............###.##aaabba#............................ahnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnhc..#..........................#.............##..........#.ahnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnib..##......................................##..........##.ahmnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnjc......................................................#.#emnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnjd#................####.....#.............##............#cjnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnmfa......................................aba.........a#bknnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnjd.................................#..elmj#.......#.clnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmgda..##................#..........cilnnnha.##..#.elnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnlgc#...#...##...........###..##dglnnnnnng#.##.#clnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnliea##....................behlnnnnnnnnnh#..#blnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnkidca..............#cfilnnnnnnnnnnnnnib#cknnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmkigecbbbabcdefikmnnnnnnnnnnnnnnnnnhejnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnmmmmnnnnnnnnnnnnnnnnnnnnnnnmmnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", +"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn" +}; + +// Table size + +static int numRows = 30; +static int numCols = 10; + +// The program starts here. + +public static void main(String[] args) +{ + QApplication app = new QApplication( args ); + + QTable table = new QTable( numRows, numCols ); + + QHeader header = table.horizontalHeader(); + header.setLabel( 0, "Tiny", 40 ); + header.setLabel( 1, "Checkboxes" ); + header.setLabel( 5, "Combos" ); + header.setMovingEnabled(true); + + QImage img = new QImage( qtlogo_xpm ); + QPixmap pix = new QPixmap(img.scaleHeight( table.rowHeight(3) )); + table.setPixmap( 3, 2, pix ); + table.setText( 3, 2, "A Pixmap" ); + + String[] comboEntries = { "one", "two", "three", "four" }; + + for ( int i = 0; i < numRows; ++i ){ + QComboTableItem item = new QComboTableItem( table, comboEntries, false ); + item.setCurrentItem( i % 4 ); + table.setItem( i, 5, item ); + } + for ( int j = 0; j < numRows; ++j ) + table.setItem( j, 1, new QCheckTableItem( table, "Check me" ) ); + + app.setMainWidget( table ); + table.show(); + app.exec(); + return; +} + + static { + qtjava.initialize(); + } +} diff --git a/qtjava/javalib/examples/textedit/Main.java b/qtjava/javalib/examples/textedit/Main.java new file mode 100644 index 00000000..c1597460 --- /dev/null +++ b/qtjava/javalib/examples/textedit/Main.java @@ -0,0 +1,30 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + +public class Main { + +public static void main(String[] args) +{ + QApplication a = new QApplication( args ); + TextEdit mw = new TextEdit(); + mw.setCaption( "Richtext Editor" ); + mw.resize( 640, 800 ); + mw.show(); + a.connect( a, Qt.SIGNAL(" lastWindowClosed()"), a, Qt.SLOT(" quit()") ); + a.exec(); + return; +} + + static { + qtjava.initialize(); + } +} diff --git a/qtjava/javalib/examples/textedit/TextEdit.java b/qtjava/javalib/examples/textedit/TextEdit.java new file mode 100644 index 00000000..c4adfa7a --- /dev/null +++ b/qtjava/javalib/examples/textedit/TextEdit.java @@ -0,0 +1,494 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; +import java.util.HashMap; + +class TextEdit extends QMainWindow +{ + + +private QAction actionTextBold, + actionTextUnderline, + actionTextItalic, + actionTextColor, + actionAlignLeft, + actionAlignCenter, + actionAlignRight, + actionAlignJustify; + QComboBox comboStyle, + comboFont, + comboSize; +private QTabWidget tabWidget; +private HashMap filenames = new HashMap(); + + + +TextEdit( ) +{ + this(null, null); +} + +TextEdit( QWidget parent, String name ) +{ + super( parent, name ); + setupFileActions(); + setupEditActions(); + setupTextActions(); + + tabWidget = new QTabWidget( this ); + connect( tabWidget, SIGNAL(" currentChanged( QWidget )"), + this, SLOT(" editorChanged( QWidget )") ); + setCentralWidget( tabWidget ); + + if ( qApp().args().length == 0 ) { + load( "example.html" ); + } else { + for ( int i = 0; i < qApp().args().length; ++i ) + load( qApp().args()[ i ] ); + } +} + +void setupFileActions() +{ + QToolBar tb = new QToolBar( this ); + tb.setLabel( "File Actions" ); + QPopupMenu menu = new QPopupMenu( this ); + menuBar().insertItem( tr( "&File" ), menu ); + + QAction a; + a = new QAction( tr( "New" ), new QIconSet(new QPixmap( "filenew.xpm" )), tr( "&New..." ), new QKeySequence(CTRL + Key_N), this, "fileNew" ); + connect( a, SIGNAL(" activated()"), this, SLOT(" fileNew()") ); + a.addTo( tb ); + a.addTo( menu ); + a = new QAction( tr( "Open" ), new QIconSet(new QPixmap( "fileopen.xpm" )), tr( "&Open..." ), new QKeySequence(CTRL + Key_O), this, "fileOpen" ); + connect( a, SIGNAL(" activated()"), this, SLOT(" fileOpen()") ); + a.addTo( tb ); + a.addTo( menu ); + menu.insertSeparator(); + a = new QAction( tr( "Save" ), new QIconSet(new QPixmap( "filesave.xpm" )), tr( "&Save..." ), new QKeySequence(CTRL + Key_S), this, "fileSave" ); + connect( a, SIGNAL(" activated()"), this, SLOT(" fileSave()") ); + a.addTo( tb ); + a.addTo( menu ); + a = new QAction( tr( "Save As" ), new QIconSet(new QPixmap()), tr( "Save &As..." ), new QKeySequence(0), this, "fileSaveAs" ); + connect( a, SIGNAL(" activated()"), this, SLOT(" fileSaveAs()") ); + a.addTo( menu ); + menu.insertSeparator(); + a = new QAction( tr( "Print" ), new QIconSet(new QPixmap( "fileprint.xpm" )), tr( "&Print..." ), new QKeySequence(CTRL + Key_P), this, "filePrint" ); + connect( a, SIGNAL(" activated()"), this, SLOT(" filePrint()") ); + a.addTo( tb ); + a.addTo( menu ); + a = new QAction( tr( "Close" ), new QIconSet(new QPixmap()), tr( "&Close" ), new QKeySequence(0), this, "fileClose" ); + connect( a, SIGNAL(" activated()"), this, SLOT(" fileClose()") ); + a.addTo( menu ); + a = new QAction( tr( "Exit" ), new QIconSet(new QPixmap()), tr( "E&xit" ), new QKeySequence(0), this, "fileExit" ); + connect( a, SIGNAL(" activated()"), this, SLOT(" fileExit()") ); + a.addTo( menu ); +} + +void setupEditActions() +{ + QToolBar tb = new QToolBar( this ); + tb.setLabel( "Edit Actions" ); + QPopupMenu menu = new QPopupMenu( this ); + menuBar().insertItem( tr( "&Edit" ), menu ); + + QAction a; + a = new QAction( tr( "Undo" ), new QIconSet(new QPixmap( "editundo.xpm" )), tr( "&Undo" ), new QKeySequence(CTRL + Key_Z), this, "editUndo" ); + connect( a, SIGNAL(" activated()"), this, SLOT(" editUndo()") ); + a.addTo( tb ); + a.addTo( menu ); + a = new QAction( tr( "Redo" ), new QIconSet(new QPixmap( "editredo.xpm" )), tr( "&Redo" ), new QKeySequence(CTRL + Key_Y), this, "editRedo" ); + connect( a, SIGNAL(" activated()"), this, SLOT(" editRedo()") ); + a.addTo( tb ); + a.addTo( menu ); + menu.insertSeparator(); + a = new QAction( tr( "Copy" ), new QIconSet(new QPixmap( "editcopy.xpm" )), tr( "&Copy" ), new QKeySequence(CTRL + Key_C), this, "editCopy" ); + connect( a, SIGNAL(" activated()"), this, SLOT(" editCopy()") ); + a.addTo( tb ); + a.addTo( menu ); + a = new QAction( tr( "Cut" ), new QIconSet(new QPixmap( "editcut.xpm" )), tr( "Cu&t" ), new QKeySequence(CTRL + Key_X), this, "editCut" ); + connect( a, SIGNAL(" activated()"), this, SLOT(" editCut()") ); + a.addTo( tb ); + a.addTo( menu ); + a = new QAction( tr( "Paste" ), new QIconSet(new QPixmap( "editpaste.xpm" )), tr( "&Paste" ), new QKeySequence(CTRL + Key_V), this, "editPaste" ); + connect( a, SIGNAL(" activated()"), this, SLOT(" editPaste()") ); + a.addTo( tb ); + a.addTo( menu ); +} + +void setupTextActions() +{ + QToolBar tb = new QToolBar( this ); + tb.setLabel( "Format Actions" ); + QPopupMenu menu = new QPopupMenu( this ); + menuBar().insertItem( tr( "F&ormat" ), menu ); + + comboStyle = new QComboBox( false, tb ); + comboStyle.insertItem( "Standard" ); + comboStyle.insertItem( "Bullet List (Disc)" ); + comboStyle.insertItem( "Bullet List (Circle)" ); + comboStyle.insertItem( "Bullet List (Square)" ); + comboStyle.insertItem( "Ordered List (Decimal)" ); + comboStyle.insertItem( "Ordered List (Alpha lower)" ); + comboStyle.insertItem( "Ordered List (Alpha upper)" ); + connect( comboStyle, SIGNAL(" activated( int )"), + this, SLOT(" textStyle( int )") ); + + comboFont = new QComboBox( true, tb ); + QFontDatabase db = new QFontDatabase(); + comboFont.insertStringList( (String[]) db.families().toArray(new String[0]) ); + connect( comboFont, SIGNAL(" activated( String )"), + this, SLOT(" textFamily( String )") ); + comboFont.lineEdit().setText( QApplication.font().family() ); + + comboSize = new QComboBox( true, tb ); + int[] sizes = db.standardSizes(); + for (int i = 0; i < sizes.length; i++ ) + comboSize.insertItem( Integer.toString(sizes[i]) ); + connect( comboSize, SIGNAL(" activated( String )"), + this, SLOT(" textSize( String )") ); + comboSize.lineEdit().setText( Integer.toString( QApplication.font().pointSize() ) ); + + actionTextBold = new QAction( tr( "Bold" ), new QIconSet(new QPixmap( "textbold.xpm" )), tr( "&Bold" ), new QKeySequence(CTRL + Key_B), this, "textBold" ); + connect( actionTextBold, SIGNAL(" activated()"), this, SLOT(" textBold()") ); + actionTextBold.addTo( tb ); + actionTextBold.addTo( menu ); + actionTextBold.setToggleAction( true ); + actionTextItalic = new QAction( tr( "Italic" ), new QIconSet(new QPixmap( "textitalic.xpm" )), tr( "&Italic" ), new QKeySequence(CTRL + Key_I), this, "textItalic" ); + connect( actionTextItalic, SIGNAL(" activated()"), this, SLOT(" textItalic()") ); + actionTextItalic.addTo( tb ); + actionTextItalic.addTo( menu ); + actionTextItalic.setToggleAction( true ); + actionTextUnderline = new QAction( tr( "Underline" ), new QIconSet(new QPixmap( "textunder.xpm" )), tr( "&Underline" ), new QKeySequence(CTRL + Key_U), this, "textUnderline" ); + connect( actionTextUnderline, SIGNAL(" activated()"), this, SLOT(" textUnderline()") ); + actionTextUnderline.addTo( tb ); + actionTextUnderline.addTo( menu ); + actionTextUnderline.setToggleAction( true ); + menu.insertSeparator(); + + QActionGroup grp = new QActionGroup( this ); + grp.setExclusive( true ); + connect( grp, SIGNAL(" selected( QAction )"), this, SLOT(" textAlign( QAction )") ); + + actionAlignLeft = new QAction( tr( "Left" ), new QIconSet(new QPixmap( "textleft.xpm" )), tr( "&Left" ), new QKeySequence(CTRL + Key_L), grp, "textLeft" ); + actionAlignLeft.addTo( tb ); + actionAlignLeft.addTo( menu ); + actionAlignLeft.setToggleAction( true ); + actionAlignCenter = new QAction( tr( "Center" ), new QIconSet(new QPixmap( "textcenter.xpm" )), tr( "C&enter" ), new QKeySequence(CTRL + Key_E), grp, "textCenter" ); + actionAlignCenter.addTo( tb ); + actionAlignCenter.addTo( menu ); + actionAlignCenter.setToggleAction( true ); + actionAlignRight = new QAction( tr( "Right" ), new QIconSet(new QPixmap( "textright.xpm" )), tr( "&Right" ), new QKeySequence(CTRL + Key_R), grp, "textRight" ); + actionAlignRight.addTo( tb ); + actionAlignRight.addTo( menu ); + actionAlignRight.setToggleAction( true ); + actionAlignJustify = new QAction( tr( "Justify" ), new QIconSet(new QPixmap( "textjustify.xpm" )), tr( "&Justify" ), new QKeySequence(CTRL + Key_J), grp, "textjustify" ); + actionAlignJustify.addTo( tb ); + actionAlignJustify.addTo( menu ); + actionAlignJustify.setToggleAction( true ); + + menu.insertSeparator(); + + QPixmap pix = new QPixmap( 16, 16 ); + pix.fill( black() ); + actionTextColor = new QAction( tr( "Color" ), new QIconSet(pix), tr( "&Color..." ), new QKeySequence(0), this, "textColor" ); + connect( actionTextColor, SIGNAL(" activated()"), this, SLOT(" textColor()") ); + actionTextColor.addTo( tb ); + actionTextColor.addTo( menu ); +} + +void load( String f ) +{ + if ( !QFile.exists( f ) ) + return; + QTextEdit edit = new QTextEdit( tabWidget ); + doConnections( edit ); + tabWidget.addTab( edit, new QFileInfo( f ).fileName() ); + QFile file = new QFile( f ); + if ( !file.open( QIODevice.IO_ReadOnly ) ) + return; + QTextStream ts = new QTextStream( file ); + edit.setText( ts.read() ); + tabWidget.showPage( edit ); + edit.viewport().setFocus(); + filenames.put( edit, f ); +} + +QTextEdit currentEditor() +{ + if ( tabWidget.currentPage() != null && + tabWidget.currentPage().inherits( "QTextEdit" ) ) + return (QTextEdit)tabWidget.currentPage(); + return null; +} + +void doConnections( QTextEdit e ) +{ + connect( e, SIGNAL(" currentFontChanged( QFont )"), + this, SLOT(" fontChanged( QFont )") ); + connect( e, SIGNAL(" currentColorChanged( QColor )"), + this, SLOT(" colorChanged( QColor )") ); + connect( e, SIGNAL(" currentAlignmentChanged( int )"), + this, SLOT(" alignmentChanged( int )") ); +} + +void fileNew() +{ + QTextEdit edit = new QTextEdit( tabWidget ); + edit.setTextFormat( RichText ); + doConnections( edit ); + tabWidget.addTab( edit, tr( "noname" ) ); + tabWidget.showPage( edit ); + edit.viewport().setFocus(); +} + +void fileOpen() +{ + String fn = QFileDialog.getOpenFileName( "", tr( "HTML-Files (*.htm *.html);;All Files (*)" ), this ); + if ( !fn.equals("") ) + load( fn ); +} + +void fileSave() +{ + if ( currentEditor() == null ) + return; + String fn; + if ( !filenames.containsKey( currentEditor() ) ) { + fileSaveAs(); + } else { + QFile file = new QFile( (String) filenames.get( currentEditor() ) ); + if ( !file.open( QIODevice.IO_WriteOnly ) ) + return; + QTextStream ts = new QTextStream( file ); + ts.writeRawBytes(currentEditor().text(), currentEditor().text().length()); + } +} + +void fileSaveAs() +{ + if ( currentEditor() == null ) + return; + String fn = QFileDialog.getSaveFileName( "", tr( "HTML-Files (*.htm *.html);;All Files (*)" ), this ); + if ( !fn.equals("") ) { + filenames.put( currentEditor(), fn ); + fileSave(); + tabWidget.setTabLabel( currentEditor(), new QFileInfo( fn ).fileName() ); + } +} + +void filePrint() +{ + if ( currentEditor() == null ) + return; + QPrinter printer = new QPrinter(); + printer.setFullPage(true); + if ( printer.setup( this ) ) { + QPainter p = new QPainter( printer ); + // Check that there is a valid device to print to. + if ( p.device() == null ) return; + QPaintDeviceMetrics metrics = new QPaintDeviceMetrics( p.device() ); + int dpix = metrics.logicalDpiX(); + int dpiy = metrics.logicalDpiY(); + int margin = 72; // pt + QRect body = new QRect( margin * dpix / 72, margin * dpiy / 72, + metrics.width() - margin * dpix / 72 * 2, + metrics.height() - margin * dpiy / 72 * 2 ); + QFont font = new QFont( "times", 10 ); + QSimpleRichText richText = new QSimpleRichText( currentEditor().text(), font, currentEditor().context(), currentEditor().styleSheet(), + currentEditor().mimeSourceFactory(), body.height() ); + richText.setWidth( p, body.width() ); + QRect view = new QRect( body.topLeft(), body.bottomRight() ); + int page = 1; + do { + richText.draw( p, body.left(), body.top(), view, colorGroup() ); + view.moveBy( 0, body.height() ); + p.translate( 0 , -body.height() ); + p.setFont( font ); + p.drawText( view.right() - p.fontMetrics().width( Integer.toString(page) ), + view.bottom() + p.fontMetrics().ascent() + 5, Integer.toString(page) ); + if ( view.top() >= richText.height() ) + break; + printer.newPage(); + page++; + } while (true); + } +} + +void fileClose() +{ +// delete currentEditor(); + if ( currentEditor() != null ) + currentEditor().viewport().setFocus(); +} + +void fileExit() +{ + qApp().quit(); +} + +void editUndo() +{ + if ( currentEditor() == null ) + return; + currentEditor().undo(); +} + +void editRedo() +{ + if ( currentEditor() == null ) + return; + currentEditor().redo(); +} + +void editCut() +{ + if ( currentEditor() == null ) + return; + currentEditor().cut(); +} + +void editCopy() +{ + if ( currentEditor() == null ) + return; + currentEditor().copy(); +} + +void editPaste() +{ + if ( currentEditor() == null ) + return; + currentEditor().paste(); +} + +void textBold() +{ + if ( currentEditor() == null ) + return; + currentEditor().setBold( actionTextBold.isOn() ); +} + +void textUnderline() +{ + if ( currentEditor() == null ) + return; + currentEditor().setUnderline( actionTextUnderline.isOn() ); +} + +void textItalic() +{ + if ( currentEditor() == null ) + return; + currentEditor().setItalic( actionTextItalic.isOn() ); +} + +void textFamily( String f ) +{ + if ( currentEditor() == null ) + return; + currentEditor().setFamily( f ); + currentEditor().viewport().setFocus(); +} + +void textSize( String p ) +{ + if ( currentEditor() == null ) + return; + currentEditor().setPointSize( Integer.parseInt(p) ); + currentEditor().viewport().setFocus(); +} + +void textStyle( int i ) +{ + if ( currentEditor() == null ) + return; + if ( i == 0 ) + currentEditor().setParagType( QStyleSheetItem.DisplayBlock, QStyleSheetItem.ListDisc ); + else if ( i == 1 ) + currentEditor().setParagType( QStyleSheetItem.DisplayListItem, QStyleSheetItem.ListDisc ); + else if ( i == 2 ) + currentEditor().setParagType( QStyleSheetItem.DisplayListItem, QStyleSheetItem.ListCircle ); + else if ( i == 3 ) + currentEditor().setParagType( QStyleSheetItem.DisplayListItem, QStyleSheetItem.ListSquare ); + else if ( i == 4 ) + currentEditor().setParagType( QStyleSheetItem.DisplayListItem, QStyleSheetItem.ListDecimal ); + else if ( i == 5 ) + currentEditor().setParagType( QStyleSheetItem.DisplayListItem, QStyleSheetItem.ListLowerAlpha ); + else if ( i == 6 ) + currentEditor().setParagType( QStyleSheetItem.DisplayListItem, QStyleSheetItem.ListUpperAlpha ); + currentEditor().viewport().setFocus(); +} + +void textColor() +{ + if ( currentEditor() == null ) + return; + QColor col = QColorDialog.getColor( currentEditor().color(), this ); + if ( !col.isValid() ) + return; + currentEditor().setColor( col ); + QPixmap pix = new QPixmap( 16, 16 ); + pix.fill( black() ); + actionTextColor.setIconSet( new QIconSet(pix) ); +} + +void textAlign( QAction a ) +{ + if ( currentEditor() == null ) + return; + if ( a == actionAlignLeft ) + currentEditor().setAlignment( AlignLeft ); + else if ( a == actionAlignCenter ) + currentEditor().setAlignment( AlignHCenter ); + else if ( a == actionAlignRight ) + currentEditor().setAlignment( AlignRight ); + else if ( a == actionAlignJustify ) + currentEditor().setAlignment( AlignJustify ); +} + +void fontChanged( QFont f ) +{ + comboFont.lineEdit().setText( f.family() ); + comboSize.lineEdit().setText( Integer.toString( f.pointSize() ) ); + actionTextBold.setOn( f.bold() ); + actionTextItalic.setOn( f.italic() ); + actionTextUnderline.setOn( f.underline() ); +} + +void colorChanged( QColor c ) +{ + QPixmap pix = new QPixmap( 16, 16 ); + pix.fill( c ); + actionTextColor.setIconSet( new QIconSet(pix) ); +} + +void alignmentChanged( int a ) +{ + if ( ( a == AlignAuto ) || ( a & AlignLeft ) != 0) + actionAlignLeft.setOn( true ); + else if ( ( a & AlignHCenter ) != 0 ) + actionAlignCenter.setOn( true ); + else if ( ( a & AlignRight ) != 0 ) + actionAlignRight.setOn( true ); + else if ( ( a & AlignJustify ) != 0 ) + actionAlignJustify.setOn( true ); +} + +void editorChanged( QWidget w ) +{ + if ( currentEditor() == null ) + return; + fontChanged( currentEditor().font() ); + colorChanged( currentEditor().color() ); + alignmentChanged( currentEditor().alignment() ); +} +} diff --git a/qtjava/javalib/examples/textedit/editcopy.xpm b/qtjava/javalib/examples/textedit/editcopy.xpm new file mode 100644 index 00000000..cc6fb7a6 --- /dev/null +++ b/qtjava/javalib/examples/textedit/editcopy.xpm @@ -0,0 +1,36 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"22 22 8 1", +" c Gray100", +". c #8b8bfd", +"X c #3c3cfd", +"o c #000082", +"O c Gray0", +"+ c None", +"@ c Gray0", +"# c Gray0", +/* pixels */ +"++++++++++++++++++++++", +"++++++++++++++++++++++", +"OOOOOOOO++++++++++++++", +"O OO+++++++++++++", +"O OOOO O O++++++++++++", +"O O O+++++++++++", +"O OOOO Ooooooooo++++++", +"O Oo oo+++++", +"O OOOOO o OOOO oXo++++", +"O o o.Xo+++", +"O OOOOO o OOOO o .Xo++", +"O o oooooo+", +"O OOOOO o OOOO o+", +"O o o+", +"O OOOOO o OOOOOOOOO o+", +"O o o+", +"OOOOOOOOo OOOOOOOOO o+", +"++++++++o o+", +"++++++++o OOOOOOOOO o+", +"++++++++o o+", +"++++++++ooooooooooooo+", +"++++++++++++++++++++++" +}; diff --git a/qtjava/javalib/examples/textedit/editcut.xpm b/qtjava/javalib/examples/textedit/editcut.xpm new file mode 100644 index 00000000..2391adda --- /dev/null +++ b/qtjava/javalib/examples/textedit/editcut.xpm @@ -0,0 +1,32 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"22 22 4 1", +" c Gray100", +". c #000082", +"X c Gray0", +"o c None", +/* pixels */ +"oooooooooooooooooooooo", +"oooooooXoooooXoooooooo", +"oooooooXoooooXoooooooo", +"oooooooXoooooXoooooooo", +"oooooooXooooXXoooooooo", +"oooooooXXoooXooooooooo", +"ooooooooXoooXooooooooo", +"ooooooooXXoXXooooooooo", +"oooooooooXXXoooooooooo", +"oooooooooXXXoooooooooo", +"ooooooooooXooooooooooo", +"ooooooooo.X.oooooooooo", +"oooooooo..o...oooooooo", +"ooooooo.o.o.oo.ooooooo", +"oooooo.oo.o.ooo.oooooo", +"ooooo.ooo.o.oooo.ooooo", +"oooo.oooo.o.oooo.ooooo", +"oooo.oooo.oo.ooo.ooooo", +"oooo.oooo.oo.oo.oooooo", +"oooo.ooo.oooo..ooooooo", +"ooooo...oooooooooooooo", +"oooooooooooooooooooooo" +}; diff --git a/qtjava/javalib/examples/textedit/editpaste.xpm b/qtjava/javalib/examples/textedit/editpaste.xpm new file mode 100644 index 00000000..3f775920 --- /dev/null +++ b/qtjava/javalib/examples/textedit/editpaste.xpm @@ -0,0 +1,36 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"22 22 8 1", +" c Gray100", +". c Yellow", +"X c #c6c3c6", +"o c #848284", +"O c #848200", +"+ c #000084", +"@ c Gray0", +"# c None", +/* pixels */ +"######################", +"#######@@@@@##########", +"##@@@@@@...@@@@@@#####", +"#@@@@@@.....@@@@@@####", +"@@oOo@@.@@@.@@oOo@@###", +"@oOo@XXXXXXXXX@oOo@###", +"@OoO@XXXXXXXXX@OoO@###", +"@oOo@@@@@@@@@@@oOo@###", +"@OoOoOoOoOoOoOoOoO@###", +"@oOoOoOoOoOoOoOoOo@###", +"@OoOoOoO++++++++++@###", +"@oOoOoOo+ + +###", +"@OoOoOoO+ +++++ + +##", +"@oOoOoOo+ + +#", +"@OoOoOoO+ +++++ + +", +"@oOoOoOo+ ++++++", +"@OoOoOoO+ +++++ +", +"@oOoOoOo+ +", +"@OoOoOoO+ ++++++++++ +", +"#@@@@@@@+ +", +"########++++++++++++++", +"######################" +}; diff --git a/qtjava/javalib/examples/textedit/editredo.xpm b/qtjava/javalib/examples/textedit/editredo.xpm new file mode 100644 index 00000000..46dc0331 --- /dev/null +++ b/qtjava/javalib/examples/textedit/editredo.xpm @@ -0,0 +1,36 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"22 22 8 1", +" c Gray100", +". c #848284", +"X c #000084", +"o c Gray0", +"O c None", +"+ c Gray0", +"@ c Gray0", +"# c Gray0", +/* pixels */ +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOO.XXXXXXOOOOOOOOOOO", +"OOOXXXXXXXXXXOOOOOOXOO", +"OO.XXOOOOOOXXXXOOOXXOO", +"OOXXOOOOOOOOOXXXOXXXOO", +"OOXXOOOOOOOOOOXXXXXXOO", +"OOXXOOOOOOOOOOOXXXXXOO", +"OOXXOOOOOOOOOOXXXXXXOO", +"OOXXOOOOOOOOOXXXXXXXOO", +"OO.XXOOOOOOOXXXXXXXXOO", +"OOOXXX.OOOOOOOOOOOOOOO", +"OOOOXXXOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO" +}; diff --git a/qtjava/javalib/examples/textedit/editundo.xpm b/qtjava/javalib/examples/textedit/editundo.xpm new file mode 100644 index 00000000..229c1636 --- /dev/null +++ b/qtjava/javalib/examples/textedit/editundo.xpm @@ -0,0 +1,36 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"22 22 8 1", +" c Gray100", +". c #848284", +"X c #000084", +"o c Gray0", +"O c None", +"+ c Gray0", +"@ c Gray0", +"# c Gray0", +/* pixels */ +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOXXXXXX.OOOO", +"OOXOOOOOOXXXXXXXXXXOOO", +"OOXXOOOXXXXOOOOOOXX.OO", +"OOXXXOXXXOOOOOOOOOXXOO", +"OOXXXXXXOOOOOOOOOOXXOO", +"OOXXXXXOOOOOOOOOOOXXOO", +"OOXXXXXXOOOOOOOOOOXXOO", +"OOXXXXXXXOOOOOOOOOXXOO", +"OOXXXXXXXXOOOOOOOXX.OO", +"OOOOOOOOOOOOOOO.XXXOOO", +"OOOOOOOOOOOOOOOXXXOOOO", +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO" +}; diff --git a/qtjava/javalib/examples/textedit/example.html b/qtjava/javalib/examples/textedit/example.html new file mode 100644 index 00000000..56023031 --- /dev/null +++ b/qtjava/javalib/examples/textedit/example.html @@ -0,0 +1,340 @@ + +Qt Toolkit - QLabel Class + + +

QLabel Class Reference


+

+#include <qlabel.h> +

+Inherits QFrame. +

List of all member functions. +

Public Members

+
    +
  • QLabel ( QWidget * parent, const char * name=0, WFlags f=0 ) 
    +
  • QLabel ( const QString & text, QWidget * parent, const char * name=0, WFlags f=0 ) 
    +
  • QLabel ( QWidget * buddy, const QString &, QWidget * parent, const char * name=0, WFlags f=0 ) 
    +
  • ~QLabel () 
    +
  • QString text () const
    +
  • QPixmap* pixmap () const
    +
  • QMovie* movie () const
    +
  • TextFormat textFormat () const
    +
  • void setTextFormat ( TextFormat ) 
    +
  • int alignment () const
    +
  • virtual void setAlignment ( int ) 
    +
  • int indent () const
    +
  • void setIndent ( int ) 
    +
  • bool autoResize () const (obsolete)
    +
  • virtual void setAutoResize ( bool ) (obsolete)
    +
  • bool hasScaledContents () const
    +
  • void setScaledContents ( bool ) 
    +
  • virtual void setBuddy ( QWidget * ) 
    +
  • QWidget* buddy () const
    +
+

Public Slots

+
    +
  • virtual void setText ( const QString & ) 
    +
  • virtual void setPixmap ( const QPixmap & ) 
    +
  • virtual void setMovie ( const QMovie & ) 
    +
  • virtual void setNum ( int ) 
    +
  • virtual void setNum ( double ) 
    +
  • void clear () 
    +
+

Protected Members

+ +

Properties

+ +
TypeNameREADWRITEOptions +
QStringtexttextsetText  +
TextFormattextFormattextFormatsetTextFormat  +
QPixmappixmappixmapsetPixmap  +
boolscaledContentshasScaledContentssetScaledContents  +
AlignmentalignmentalignmentsetAlignment  +
intindentindentsetIndent  +
+

+


Detailed Description

+The QLabel widget provides a static information display +

+QLabel is used for displaying information in the form of text or +image to the user. No user interaction functionality is +provided. The visual appearance of the label can be configured in +various ways, and it can be used for specifying a focus accelerator +key for another widget. +

A QLabel can contain any of the following content types: +

    +
  • A plain text: set by passing a QString to setText(). +
  • A rich text: set by passing a QString that contains a rich text to setText(). +
  • A pixmap: set by passing a QPixmap to setPixmap(). +
  • A movie: set by passing a QMovie to setMovie(). +
  • A number: set by passing an int or a double to setNum(), which converts the number to plain text. +
  • Nothing: The same as an empty plain text. This is the default. Set by clear(). +
+

When the content is changed using any of these functions, any +previous content is cleared. +

The look of a QLabel can be tuned in several ways. All the settings +of QFrame are available for specifying a widget frame. The +positioning of the content within the QLabel widget area can be +tuned with setAlignment() and setIndent(). For example, this code +sets up a sunken panel with a two-line text in the bottom right +corner (both lines being flush with the right side of the label): +

    QLabel *label = new QLabel;
+    label->setFrameStyle( QFrame::Panel | QFrame::Sunken );
+    label->setText( "first line\nsecond line" );
+    label->setAlignment( AlignBottom | AlignRight );
+
+

A QLabel is often used as a label for another, interactive +widget. For this use, QLabel provides a handy mechanism for adding +an accelerator key (see QAccel) that will set the keyboard focus to +the other widget (called the QLabel's "buddy"). Example: +

     QLineEdit* phoneEdit = new QLineEdit( this, "phoneEdit" );
+     QLabel* phoneLabel = new QLabel( phoneEdit, "&Phone:", this, "phoneLabel" );
+
+

In this example, keyboard focus is transferred to the label's buddy +(the QLineEdit) when the user presses Alt-P. You can also +use the setBuddy() function to accomplish the same. +

+

See also QLineEdit, QTextView, QPixmap, QMovie and GUI Design Handbook: Label +

Examples: + cursor/cursor.cpp + layout/layout.cpp + popup/popup.cpp + menu/menu.cpp + progress/progress.cpp + qmag/qmag.cpp + movies/main.cpp + customlayout/main.cpp + +


Member Function Documentation

+

QLabel::QLabel ( QWidget * buddy, const QString & text, QWidget * parent, const char * name=0, WFlags f=0 )

+

Constructs a label with a text and a buddy. +

The text is set with setText(). The buddy is set with setBuddy(). +

The parent, name and f arguments are passed to the QFrame +constructor. +

See also setText(), setBuddy(), setAlignment(), setFrameStyle() and setIndent(). +

QLabel::QLabel ( QWidget * parent, const char * name=0, WFlags f=0 )

+

Constructs an empty label. +

The parent, name and f arguments are passed to the QFrame +constructor. +

See also setAlignment(), setFrameStyle() and setIndent(). +

QLabel::QLabel ( const QString & text, QWidget * parent, const char * name=0, WFlags f=0 )

+

Constructs a label with a text. The text is set with setText(). +

The parent, name and f arguments are passed to the QFrame +constructor. +

See also setText(), setAlignment(), setFrameStyle() and setIndent(). +

QLabel::~QLabel ()

+

Destructs the label. +

int QLabel::alignment () const

+

Returns the alignment setting. +

See also setAlignment(). +

bool QLabel::autoResize () const

+

This function is obsolete. It is provided to keep old source working, and will probably be removed in a future version of Qt. We strongly advise against using it in new code.

+

Returns TRUE if auto-resizing is enabled, or FALSE if auto-resizing +is disabled. +

Auto-resizing is disabled by default. +

See also setAutoResize(). +

QWidget * QLabel::buddy () const

+

Returns the buddy of this label, or 0 if no buddy is currently set. +

See also setBuddy(). +

void QLabel::clear () [slot]

+

Clears any label contents. Equivalent with setText( "" ). +

void QLabel::drawContents ( QPainter * p ) [virtual protected]

+

Draws the label contents using the painter p. +

Reimplemented from QFrame. +

void QLabel::drawContentsMask ( QPainter * p ) [virtual protected]

+

Draws the label contents mask using the painter p. +Used only in transparent mode. +

See also QWidget::setAutoMask();. +

Reimplemented from QFrame. +

void QLabel::fontChange ( const QFont & ) [virtual protected]

+

Reimplemented for internal reasons; the API is not affected. +

Reimplemented from QWidget. +

bool QLabel::hasScaledContents () const

+

Returns whether the label will scale its contents to fill all +available space. +

See also setScaledContents(). +

int QLabel::heightForWidth ( int w ) const [virtual]

+

Reimplemented for internal reasons; the API is not affected. +

Reimplemented from QWidget. +

int QLabel::indent () const

+

Returns the indent of the label. +

See also setIndent(). +

QSize QLabel::minimumSizeHint () const [virtual]

+

Reimplemented for internal reasons; the API is not affected. +

Reimplemented from QWidget. +

QMovieQLabel::movie () const

+

If the label contains a movie, returns a pointer to it. Otherwise, +returns 0. +

See also setMovie(). +

QPixmap * QLabel::pixmap () const

+

If the label contains a pixmap, returns a pointer to it. Otherwise, +returns 0. +

See also setPixmap(). +

void QLabel::resizeEvent ( QResizeEvent * e ) [virtual protected]

+

Reimplemented for internal reasons; the API is not affected. +

Reimplemented from QWidget. +

void QLabel::setAlignment ( int alignment ) [virtual]

+

Sets the alignment of the label contents. +

The alignment must be a bitwise OR of Qt::AlignmentFlags +values. The WordBreak, ExpandTabs, SingleLine and ShowPrefix flags apply only if the label contains a plain text, and +are otherwise ignored. The DontClip flag is always ignored. +

If the label has a buddy, the ShowPrefix flag is forced to TRUE. +

The default alignment is AlignLeft | AlignVCenter | +ExpandTabs if the label doesn't have a buddy and +AlignLeft | AlignVCenter | ExpandTabs | ShowPrefix if +the label has a buddy. +

See also Qt::AlignmentFlags, alignment(), setBuddy() and setText(). +

Examples: + cursor/cursor.cpp + layout/layout.cpp + popup/popup.cpp + qmag/qmag.cpp + customlayout/main.cpp +

void QLabel::setAutoMask ( bool b ) [virtual]

+

Reimplemented for internal reasons; the API is not affected. +

Reimplemented from QWidget. +

void QLabel::setAutoResize ( bool enable ) [virtual]

+

This function is obsolete. It is provided to keep old source working, and will probably be removed in a future version of Qt. We strongly advise against using it in new code.

+Enables auto-resizing if enable is TRUE, or disables it if enable is FALSE. +

When auto-resizing is enabled, the label will resize itself to fit +the contents whenever the contents change. The top left corner is +not moved. This is useful for QLabel widgets that are not managed by +a QLayout (e.g. top-level widgets). +

Auto-resizing is disabled by default. +

See also autoResize(), adjustSize() and sizeHint(). +

void QLabel::setBuddy ( QWidget * buddy ) [virtual]

+

Sets the buddy of this label to buddy. +

When the user presses the accelerator key indicated by this label, +the keyboard focus is transferred to the label's buddy widget. +

The buddy mechanism is only available for QLabels that contain a +plain text in which one letter is prefixed with '&'. It is this +letter that is set as the accelerator key. The letter is displayed +underlined, and the '&' is not displayed (i.e. the ShowPrefix +alignment flag is turned on; see setAlignment()). +

In a dialog, you might create two data entry widgets and a label for +each, and set up the geometry layout so each label is just to the +left of its data entry widget (its "buddy"), somewhat like this: +

    QLineEdit *nameEd  = new QLineEdit( this );
+    QLabel    *nameLb  = new QLabel( "&Name:", this );
+    nameLb->setBuddy( nameEd );
+    QLineEdit *phoneEd = new QLineEdit( this );
+    QLabel    *phoneLb = new QLabel( "&Phone:", this );
+    phoneLb->setBuddy( phoneEd );
+    // ( layout setup not shown )
+
+

With the code above, the focus jumps to the Name field when the user +presses Alt-N, and to the Phone field when the user presses Alt-P. +

To unset a previously set buddy, call this function with buddy +set to 0. +

See also buddy(), setText(), QAccel and setAlignment(). +

Examples: + layout/layout.cpp +

void QLabel::setIndent ( int indent )

+

Sets the indent of the label to indent pixels. +

The indent applies to the left edge if alignment() is AlignLeft, +to the right edge if alignment() is AlignRight, to the top edge +if alignment() is AlignTop, and to to the bottom edge if +alignment() is AlignBottom. +

If indent is negative, or if no indent has been set, the label +computes the effective indent as follows: If frameWidth() is 0, the +effective indent becomes 0. If frameWidth() is greater than 0, the +effective indent becomes half the width of the "x" character of the +widget's current font(). +

If indent is non-negative, the effective indent is indent +pixels. +

See also indent(), setAlignment(), frameWidth() and font(). +

Examples: + movies/main.cpp +

void QLabel::setMovie ( const QMovie & movie ) [virtual slot]

+

Sets the label contents to movie. Any previous content is cleared. +

The buddy accelerator, if any, is disabled. +

The label resizes itself if auto-resizing is enabled. +

See also movie() and setBuddy(). +

void QLabel::setNum ( double num ) [virtual slot]

+

Sets the label contents to a plain text containing the printed value +of num. Does nothing if this is equal to the current contents of +the label. Any previous content is cleared. +

The buddy accelerator, if any, is disabled. +

The label resizes itself if auto-resizing is enabled. +

See also setText(), QString::setNum() and setBuddy(). +

void QLabel::setNum ( int num ) [virtual slot]

+

Sets the label contents to a plain text containing the printed value +of num. Does nothing if this is equal to the current contents of +the label. Any previous content is cleared. +

The buddy accelerator, if any, is disabled. +

The label resizes itself if auto-resizing is enabled. +

See also setText(), QString::setNum() and setBuddy(). +

void QLabel::setPixmap ( const QPixmap & pixmap ) [virtual slot]

+

Sets the label contents to pixmap. Any previous content is cleared. +

The buddy accelerator, if any, is disabled. +

The label resizes itself if auto-resizing is enabled. +

See also pixmap() and setBuddy(). +

void QLabel::setScaledContents ( bool enable )

+

When called with enable == TRUE, and the label shows a pixmap, +it will scale the pixmap to fill available space. +

See also hasScaledContents(). +

void QLabel::setText ( const QString & text ) [virtual slot]

+

Sets the label contents to text, or does nothing if text is +equal to the current contents of the label. Any previous content is +cleared. +

text will be interpreted either as a plain text or as a rich +text, depending on the text format setting; see setTextFormat(). The +default setting is AutoText, i.e. QLabel will try to auto-detect +the format of text. +

If text is interpreted as a plain text, and a buddy has been set, +the buddy accelerator key is updated from the new text. +

The label resizes itself if auto-resizing is enabled. +

Note that Qlabel is well suited to display small rich text documents +only. For large documents, use QTextView instead. It will flicker +less on resize and can also provide a scrollbar if necessary. +

See also text(), setTextFormat(), setBuddy() and setAlignment(). +

Examples: + cursor/cursor.cpp + layout/layout.cpp + popup/popup.cpp + qmag/qmag.cpp + customlayout/main.cpp +

void QLabel::setTextFormat ( Qt::TextFormat format )

+

Sets the text format to format. See the Qt::TextFormat enum for +an explanation of the possible options. +

The default format is AutoText. +

See also textFormat() and setText(). +

QSize QLabel::sizeHint () const [virtual]

+

Reimplemented for internal reasons; the API is not affected. +

Examples: + layout/layout.cpp +

Reimplemented from QWidget. +

QSizePolicy QLabel::sizePolicy () const [virtual]

+

Reimplemented for internal reasons; the API is not affected. +

Reimplemented from QWidget. +

QString QLabel::text () const

+

Returns the label text. If the content is a plain or a rich text, +this is the string that was passed to setText(). Otherwise, it is an +empty/null string. +

See also setText(), setNum() and clear(). +

Qt::TextFormat QLabel::textFormat() const

+

Returns the current text format. +

See also setTextFormat(). +


+Search the documentation, FAQ, qt-interest archive and more (uses +www.trolltech.com):
+

+ + +

+This file is part of the Qt toolkit, +copyright © 1995-2000 +Trolltech, all rights reserved.


+ +
Copyright © 2000 TrolltechTrademarks +
Qt version 3.0.0-snapshot
+
diff --git a/qtjava/javalib/examples/textedit/filenew.xpm b/qtjava/javalib/examples/textedit/filenew.xpm new file mode 100644 index 00000000..884d7cbb --- /dev/null +++ b/qtjava/javalib/examples/textedit/filenew.xpm @@ -0,0 +1,36 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"22 22 8 1", +" c Gray100", +". c Gray76", +"X c Gray53", +"o c Gray36", +"O c Gray18", +"+ c Gray0", +"@ c None", +"# c Gray0", +/* pixels */ +"@@@@@@@@@@@@@@@@@@@@@@", +"@@@@++++++++++@@@@@@@@", +"@@@@+ +O+@@@@@@@", +"@@@@+ +oO+@@@@@@", +"@@@@+ +XoO+@@@@@", +"@@@@+ +.XoO+@@@@", +"@@@@+ + .XoO+@@@", +"@@@@+ +++++++@@@", +"@@@@+ +@@@", +"@@@@+ +@@@", +"@@@@+ +@@@", +"@@@@+ +@@@", +"@@@@+ +@@@", +"@@@@+ +@@@", +"@@@@+ +@@@", +"@@@@+ +@@@", +"@@@@+ +@@@", +"@@@@+ +@@@", +"@@@@+ +@@@", +"@@@@+++++++++++++++@@@", +"@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@" +}; diff --git a/qtjava/javalib/examples/textedit/fileopen.xpm b/qtjava/javalib/examples/textedit/fileopen.xpm new file mode 100644 index 00000000..82effcf7 --- /dev/null +++ b/qtjava/javalib/examples/textedit/fileopen.xpm @@ -0,0 +1,36 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"22 22 8 1", +" c Gray100", +". c Yellow", +"X c #848200", +"o c Gray0", +"O c None", +"+ c Gray0", +"@ c Gray0", +"# c Gray0", +/* pixels */ +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO", +"OOOOOOOOOOOOooooOOOOoO", +"OOOOOOOOOOOoOOOOooOooO", +"OOOOOOOOOOOOOOOOOOoooO", +"OOOOOOOOOOOOOOOOOooooO", +"OooooOOOOOOOOOOOoooooO", +"o. . ooooooooooOOOOOOO", +"o . . . . . . oOOOOOOO", +"o. . . . . . .oOOOOOOO", +"o . . . . . . oOOOOOOO", +"o. . . ooooooooooooooo", +"o . . ooXXXXXXXXXXXXoo", +"o. . ooXXXXXXXXXXXXooO", +"o . ooXXXXXXXXXXXXooOO", +"o. ooXXXXXXXXXXXXooOOO", +"o ooXXXXXXXXXXXXooOOOO", +"oooXXXXXXXXXXXXooOOOOO", +"ooXXXXXXXXXXXXooOOOOOO", +"oooooooooooooooOOOOOOO", +"OOOOOOOOOOOOOOOOOOOOOO" +}; diff --git a/qtjava/javalib/examples/textedit/fileprint.xpm b/qtjava/javalib/examples/textedit/fileprint.xpm new file mode 100644 index 00000000..8701d460 --- /dev/null +++ b/qtjava/javalib/examples/textedit/fileprint.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"22 22 89 1", +" c Gray0", +". c #101008081010", +"X c #101010101010", +"o c #101010101818", +"O c #181810101818", +"+ c #181818181818", +"@ c #181818182121", +"# c #212118182121", +"$ c Gray13", +"% c #212121212929", +"& c #292921212929", +"* c Gray16", +"= c #292929293131", +"- c #313129293131", +"; c #313131313131", +": c #313131313939", +"> c #393931313939", +", c #393939393939", +"< c #393939394242", +"1 c #424239394242", +"2 c Gray26", +"3 c #4a4a4a4a5252", +"4 c #5a5a52525a5a", +"5 c #5a5a5a5a6363", +"6 c #6b6b63636b6b", +"7 c Gray42", +"8 c #6b6b6b6b7373", +"9 c #73736b6b7373", +"0 c #7b7b73737b7b", +"q c #7b7b73738484", +"w c #0808ffff0808", +"e c #2929ffff2929", +"r c #3131ffff3131", +"t c #5a5acece5a5a", +"y c #6b6bffff6363", +"u c #7b7bffff7b7b", +"i c #84847b7b8484", +"p c #84847b7b8c8c", +"a c #8c8c7b7b9494", +"s c #848484848c8c", +"d c #8c8c84848c8c", +"f c Gray55", +"g c #8c8c84849494", +"h c #8c8c8c8c9494", +"j c #94948c8c9494", +"k c #94948c8c9c9c", +"l c Gray58", +"z c #949494949c9c", +"x c #9c9c94949c9c", +"c c Gray61", +"v c #9c9c9494a5a5", +"b c #9c9c9c9ca5a5", +"n c #a5a59c9ca5a5", +"m c #a5a59c9cadad", +"M c #adad9c9cadad", +"N c #a5a5a5a5a5a5", +"B c #a5a5a5a5adad", +"V c #adada5a5adad", +"C c Gray68", +"Z c #adadadadb5b5", +"A c #b5b5adadb5b5", +"S c Gray71", +"D c Gray74", +"F c #9494c6c69494", +"G c #9c9ccecea5a5", +"H c #bdbdd6d6bdbd", +"J c #c0c0c0c0c0c0", +"K c #c6c6c6c6c6c6", +"L c #cecec6c6cece", +"P c #cececececece", +"I c #cecececed6d6", +"U c #d6d6ceced6d6", +"Y c #d6d6cecedede", +"T c Gray84", +"R c #d6d6d6d6dede", +"E c #deded6d6dede", +"W c Gray87", +"Q c #deded6d6e7e7", +"! c #dedededee7e7", +"~ c #d6d6ffffd6d6", +"^ c #e7e7dedee7e7", +"/ c #e7e7e7e7e7e7", +"( c #e7e7e7e7efef", +") c #efefe7e7efef", +"_ c #efefefefefef", +"` c #e7e7ffffe7e7", +"' c Gray97", +"] c Gray100", +"[ c None", +/* pixels */ +"[[[[[[SDPPPPKKDDCD[[[[", +"[[[[[[D_/////___WD[[[[", +"[[[[[[DKKKPPKKKKDK[[[[", +"[[[[[[SDDDDSDDSSCD[[[[", +"[[[[[KCKDKKKDDDKS[[[[[", +"[[[[[DDSDDDDDDKKS[[[[[", +"[[[[[DSKDDDDDKDKC[[[[[", +"[[[[[KDDDDDDDDDDS[[[[[", +"[[[[[CP/WWWWWWTWNNZ[[[", +"[[[Dc9STPTPTPTWWj427S[", +"[[Dziq0000000pag8<%@2N", +"[DcE(!ERRRRUYGtFn2##O<", +"Db)]]]]]]]]]~ewePa;@X#", +"V']]]]]]]]]]`yru]Q0@ #", +"BRILITRRW^!E!RHUILhO @", +"jAZVBmBnmmNmnmMvzh6o #", +"jZZmBnnnbnbbbbvxxg6o +", +"lmmnbnbbbvcvxxxvjs6O 3", +"jBnnvcvxvcvxvxzjhd8o+C", +"lsdgfgdhgdhhjhjkhg6+l[", +"S9%@$%&&&=--::>>:-:l[[", +"[[C511,:;;;**%++.2c[[[" +}; diff --git a/qtjava/javalib/examples/textedit/filesave.xpm b/qtjava/javalib/examples/textedit/filesave.xpm new file mode 100644 index 00000000..71cbd331 --- /dev/null +++ b/qtjava/javalib/examples/textedit/filesave.xpm @@ -0,0 +1,36 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"22 22 8 1", +" c Gray100", +". c #cab5d1", +"X c #c1c1c1", +"o c #848200", +"O c Gray0", +"+ c None", +"@ c Gray0", +"# c Gray0", +/* pixels */ +"++++++++++++++++++++++", +"+OOOOOOOOOOOOOOOOOOOO+", +"+OooOXXXXXXXXXXXXOXXO+", +"+OooOXXXXXXXXXXXXOXXO+", +"+OooOXXXXXXXXX.XXOOOO+", +"+OooOXXX..XXXXXXXOooO+", +"+OooOXXX..XXXXXXXOooO+", +"+OooOXXXXXXXXXXXXOooO+", +"+OooOXXXXXXXXXXXXOooO+", +"+OooOXXXXXXXXXXXXOooO+", +"+OooOXXXXXXXXXXXXOooO+", +"+OoooOOOOOOOOOOOOoooO+", +"+OooooooooooooooooooO+", +"+OooooooooooooooooooO+", +"+OoooOOOOOOOOOOOOOooO+", +"+OoooOOOOOOOOOXXXOooO+", +"+OoooOOOOOOOOOXXXOooO+", +"+OoooOOOOOOOOOXXXOooO+", +"+OoooOOOOOOOOOXXXOooO+", +"+OoooOOOOOOOOOXXXOooO+", +"++OOOOOOOOOOOOOOOOOO++", +"++++++++++++++++++++++" +}; diff --git a/qtjava/javalib/examples/textedit/textbold.xpm b/qtjava/javalib/examples/textedit/textbold.xpm new file mode 100644 index 00000000..8398e2ec --- /dev/null +++ b/qtjava/javalib/examples/textedit/textbold.xpm @@ -0,0 +1,27 @@ +/* XPM */ +static char * bold_xpm[] = { +"22 22 2 1", +" c None", +". c #000000", +" ", +" ", +" ", +" ", +" ......... ", +" ... ... ", +" ... ... ", +" ... ... ", +" ... ... ", +" ... ... ", +" ........ ", +" ... .... ", +" ... .... ", +" ... ... ", +" ... ... ", +" ... ... ", +" ... ... ", +" .......... ", +" ", +" ", +" ", +" "}; diff --git a/qtjava/javalib/examples/textedit/textcenter.xpm b/qtjava/javalib/examples/textedit/textcenter.xpm new file mode 100644 index 00000000..837152f6 --- /dev/null +++ b/qtjava/javalib/examples/textedit/textcenter.xpm @@ -0,0 +1,27 @@ +/* XPM */ +static char * center_xpm[] = { +"22 22 2 1", +" c None", +". c #000000", +" ", +" ", +" ................. ", +" ", +" ............. ", +" ", +" ................. ", +" ", +" ............. ", +" ", +" ................. ", +" ", +" ............. ", +" ", +" ................. ", +" ", +" ............. ", +" ", +" ................. ", +" ", +" ", +" "}; diff --git a/qtjava/javalib/examples/textedit/textitalic.xpm b/qtjava/javalib/examples/textedit/textitalic.xpm new file mode 100644 index 00000000..329e66d3 --- /dev/null +++ b/qtjava/javalib/examples/textedit/textitalic.xpm @@ -0,0 +1,27 @@ +/* XPM */ +static char * italic_xpm[] = { +"22 22 2 1", +" c None", +". c #000000", +" ", +" ", +" ", +" ", +" ..... ", +" ... ", +" ... ", +" ... ", +" ... ", +" ... ", +" ... ", +" ... ", +" ... ", +" ... ", +" ... ", +" ... ", +" ... ", +" ..... ", +" ", +" ", +" ", +" "}; diff --git a/qtjava/javalib/examples/textedit/textjustify.xpm b/qtjava/javalib/examples/textedit/textjustify.xpm new file mode 100644 index 00000000..75b4a274 --- /dev/null +++ b/qtjava/javalib/examples/textedit/textjustify.xpm @@ -0,0 +1,27 @@ +/* XPM */ +static char * block_xpm[] = { +"22 22 2 1", +" c None", +". c #000000", +" ", +" ", +" ................. ", +" ", +" ................. ", +" ", +" ................. ", +" ", +" ................. ", +" ", +" ................. ", +" ", +" ................. ", +" ", +" ................. ", +" ", +" ................. ", +" ", +" ............. ", +" ", +" ", +" "}; diff --git a/qtjava/javalib/examples/textedit/textleft.xpm b/qtjava/javalib/examples/textedit/textleft.xpm new file mode 100644 index 00000000..a63e7cef --- /dev/null +++ b/qtjava/javalib/examples/textedit/textleft.xpm @@ -0,0 +1,27 @@ +/* XPM */ +static char * left_xpm[] = { +"22 22 2 1", +" c None", +". c #000000", +" ", +" ", +" ................. ", +" ", +" ............. ", +" ", +" ................. ", +" ", +" ............. ", +" ", +" ................. ", +" ", +" ............. ", +" ", +" ................. ", +" ", +" ............. ", +" ", +" ................. ", +" ", +" ", +" "}; diff --git a/qtjava/javalib/examples/textedit/textright.xpm b/qtjava/javalib/examples/textedit/textright.xpm new file mode 100644 index 00000000..3e896bd7 --- /dev/null +++ b/qtjava/javalib/examples/textedit/textright.xpm @@ -0,0 +1,27 @@ +/* XPM */ +static char * right_xpm[] = { +"22 22 2 1", +" c None", +". c #000000", +" ", +" ", +" ................. ", +" ", +" ............. ", +" ", +" ................. ", +" ", +" ............. ", +" ", +" ................. ", +" ", +" ............. ", +" ", +" ................. ", +" ", +" ............. ", +" ", +" ................. ", +" ", +" ", +" "}; diff --git a/qtjava/javalib/examples/textedit/textunder.xpm b/qtjava/javalib/examples/textedit/textunder.xpm new file mode 100644 index 00000000..ec962a74 --- /dev/null +++ b/qtjava/javalib/examples/textedit/textunder.xpm @@ -0,0 +1,27 @@ +/* XPM */ +static char * under_xpm[] = { +"22 22 2 1", +" c None", +". c #000000", +" ", +" ", +" ", +" ", +" ..... .... ", +" ... . ", +" ... . ", +" ... . ", +" ... . ", +" ... . ", +" ... . ", +" ... . ", +" ... . ", +" ... . ", +" ... .. ", +" ... .. ", +" ...... ", +" ", +" ............ ", +" ", +" ", +" "}; diff --git a/qtjava/javalib/examples/tux/MoveMe.java b/qtjava/javalib/examples/tux/MoveMe.java new file mode 100644 index 00000000..02c4bf9a --- /dev/null +++ b/qtjava/javalib/examples/tux/MoveMe.java @@ -0,0 +1,68 @@ + +import org.kde.qt.*; + +class MoveMe extends QWidget +{ +public MoveMe( QWidget parent, String name, int f) +{ + super(parent,name, f); +} + +private QPoint clickPos; + +protected void mousePressEvent( QMouseEvent e ) +{ + // if ( e.button() == LeftButton ) + clickPos = e.pos(); +} + +protected void mouseMoveEvent( QMouseEvent e ) +{ + // if ( e.state() & LeftButton ) + move( new QPoint( e.globalPos().x() - clickPos.x(), + e.globalPos().y() - clickPos.y() ) ); +} + + + +public static void main(String[] args) +{ + QApplication a = new QApplication( args ); + + String fn="tux.png"; + + if ( args.length >= 1 ) + fn = args[0]; + + if ( ! QFile.exists( fn ) ) + System.exit( 1 ); + + QImage img = new QImage( fn ); + QPixmap p = new QPixmap(); + p.convertFromImage( img ); + if ( p.mask() == null ) + if ( img.hasAlphaBuffer() ) { + QBitmap bm = new QBitmap(img.createAlphaMask()); + p.setMask( bm ); + } else { + QBitmap bm = new QBitmap(img.createHeuristicMask()); + p.setMask( bm ); + } + MoveMe w = new MoveMe(null,null,Qt.WStyle_Customize|Qt.WStyle_NoBorder); + w.setBackgroundPixmap( p ); + w.setFixedSize( p.size() ); + if ( p.mask() != null ) + w.setMask( p.mask() ); + w.show(); + a.setMainWidget(w); + + + a.exec(); + return; +} + + static { + qtjava.initialize(); + } + +} diff --git a/qtjava/javalib/examples/tux/tux.png b/qtjava/javalib/examples/tux/tux.png new file mode 100644 index 00000000..7eab1410 Binary files /dev/null and b/qtjava/javalib/examples/tux/tux.png differ diff --git a/qtjava/javalib/examples/widgets/MyWidgetView.java b/qtjava/javalib/examples/widgets/MyWidgetView.java new file mode 100644 index 00000000..db42cb9a --- /dev/null +++ b/qtjava/javalib/examples/widgets/MyWidgetView.java @@ -0,0 +1,58 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; +import java.util.ArrayList; + +class MyWidgetView extends WidgetView +{ + int s; +public MyWidgetView( ) +{ + this(null, null); +} + +public MyWidgetView( QWidget parent, String name ) + { + super(parent, name); + s = 0; + setToolBarsMovable( true ); + } + + void button1Clicked() + { + ArrayList styles = QStyleFactory.keys(); + + s = (++s)%styles.size(); + qApp().setStyle( (String) styles.get(s) ); + super.button1Clicked(); + } + + +// +// Create and display our WidgetView. +// + +public static void main(String[] args) +{ + QApplication.setColorSpec( QApplication.CustomColor ); + QApplication a = new QApplication( args ); + + MyWidgetView w = new MyWidgetView(); + a.setMainWidget( w ); + + w.show(); + int res = a.exec(); + return; +} + static { + qtjava.initialize(); + } +} diff --git a/qtjava/javalib/examples/widgets/README b/qtjava/javalib/examples/widgets/README new file mode 100644 index 00000000..8e1767e4 --- /dev/null +++ b/qtjava/javalib/examples/widgets/README @@ -0,0 +1,4 @@ +Click the right mouse button + CTRL to identify a widget. + +The classes MyWhatsThis and MyMenuItem can't be translated to java +yet, as the required virtual methods callbacks aren't implemented diff --git a/qtjava/javalib/examples/widgets/WidgetView.java b/qtjava/javalib/examples/widgets/WidgetView.java new file mode 100644 index 00000000..d000ce8b --- /dev/null +++ b/qtjava/javalib/examples/widgets/WidgetView.java @@ -0,0 +1,829 @@ +/*************************************************************************** +* $Id$ +** +* Definition of something or other +** +* Created : 979899 +** +* Copyright (C) 1997 by Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + + +import org.kde.qt.*; + +class WidgetView extends QMainWindow +{ + +private String MOVIEFILENAME = "trolltech.gif"; +private QLabel msg; +private QCheckBox cb[] = new QCheckBox[3]; +private QGroupBox bg; +private QLabel movielabel; +private QMovie movie; +private QWidget central; +private QProgressBar prog; +private int progress; +private QTabWidget tabs; +private QMultiLineEdit edit; +private QPopupMenu textStylePopup; +private int plainStyleID; +private QWidget bla; +private AnalogClock aclock; +private DigitalClock dclock; + +/* XPM */ +static String[] filesave = { +" 14 14 4 1", +". c #040404", +"# c #808304", +"a c #bfc2bf", +"b c None", +"..............", +".#.aaaaaaaa.a.", +".#.aaaaaaaa...", +".#.aaaaaaaa.#.", +".#.aaaaaaaa.#.", +".#.aaaaaaaa.#.", +".#.aaaaaaaa.#.", +".##........##.", +".############.", +".##.........#.", +".##......aa.#.", +".##......aa.#.", +".##......aa.#.", +"b............." +}; + +/* XPM */ +static String[] fileopen = { +" 16 13 5 1", +". c #040404", +"# c #808304", +"a c None", +"b c #f3f704", +"c c #f3f7f3", +"aaaaaaaaa...aaaa", +"aaaaaaaa.aaa.a.a", +"aaaaaaaaaaaaa..a", +"a...aaaaaaaa...a", +".bcb.......aaaaa", +".cbcbcbcbc.aaaaa", +".bcbcbcbcb.aaaaa", +".cbcb...........", +".bcb.#########.a", +".cb.#########.aa", +".b.#########.aaa", +"..#########.aaaa", +"...........aaaaa" +}; + +/* XPM */ +static String[] fileprint = { +" 16 14 6 1", +". c #000000", +"# c #848284", +"a c #c6c3c6", +"b c #ffff00", +"c c #ffffff", +"d c None", +"ddddd.........dd", +"dddd.cccccccc.dd", +"dddd.c.....c.ddd", +"ddd.cccccccc.ddd", +"ddd.c.....c....d", +"dd.cccccccc.a.a.", +"d..........a.a..", +".aaaaaaaaaa.a.a.", +".............aa.", +".aaaaaa###aa.a.d", +".aaaaaabbbaa...d", +".............a.d", +"d.aaaaaaaaa.a.dd", +"dd...........ddd" +}; + +// Standard Qt widgets + + + +class MyListView extends QListView +{ +public MyListView( QWidget parent ) +{ + this(parent, null); +} +public MyListView( QWidget parent, String name ) +{ + super( parent, name ); + selected = null; +} +protected void contentsMousePressEvent( QMouseEvent e ) + { + selected = selectedItem(); +// super.contentsMousePressEvent( e ); + } +protected void contentsMouseReleaseEvent( QMouseEvent e ) + { +// super.contentsMouseReleaseEvent( e ); + if ( selectedItem() != selected ) { + emit("mySelectionChanged", selectedItem() ); + emit("mySelectionChanged"); + } + } + +private QListViewItem selected; +} +// +// WidgetView contains lots of Qt widgets. +// + + + +// Some sample widgets + + + + + +/* +class MyWhatsThis extends QWhatsThis +{ +public MyWhatsThis( QListBox lb) +{ + super( lb ); + listbox = lb; +} + + +public String text( QPoint p) { + QListBoxItem i = listbox.itemAt( p ); + if ( i != null && i.pixmap() != null ) { + return "Isn't that a wonderful pixmap?
" + + "Imagine, you could even decorate a" + + " red pushbutton with it! :-)"; + } + return "This is a QListBox."; + } + +private QListBox listbox; +} + + +class MyMenuItem extends QCustomMenuItem +{ +public MyMenuItem( String s, QFont f ) +{ + string = s; + font = f; +} + + public void paint( QPainter p, QColorGroup cg, boolean act, + boolean enabled, int x, int y, int w, int h ) + { + p.setFont ( font ); + p.drawText( x, y, w, h, + AlignAuto | AlignVCenter | ShowPrefix | DontClip, + string ); + } + + public QSize sizeHint() + { + return QFontMetrics( font ).size( AlignAuto | AlignVCenter | + ShowPrefix | DontClip, string ); + } +private String string; +private QFont font; +} +*/ + + +// +// Construct the WidgetView with children +// + +WidgetView( QWidget parent, String name ) +{ + super( parent, name ); + QColor col = new QColor(); + + // Set the window caption/title + setCaption( "Qt Example - Widgets Demo Application" ); + + // create a toolbar + QToolBar tools = new QToolBar( this, "toolbar" ); + + // put something in it + QPixmap openIcon = new QPixmap( fileopen ); + QToolButton toolb = new QToolButton( new QIconSet(openIcon), "toolbutton 1", + "", this, SLOT("open()"), + tools, "open file" ); + QWhatsThis.add( toolb, "This is a QToolButton. It lives in a " + + "QToolBar. This particular button doesn't do anything " + + "useful." ); + + QPixmap saveIcon = new QPixmap( filesave ); + toolb = new QToolButton( new QIconSet(saveIcon), "toolbutton 2", "", + this, SLOT("dummy()"), + tools, "save file" ); + QWhatsThis.add( toolb, "This is also a QToolButton." ); + + QPixmap printIcon = new QPixmap( fileprint ); + toolb = new QToolButton( new QIconSet(printIcon), "toolbutton 3", "", + this, SLOT("dummy()"), + tools, "print file" ); + QWhatsThis.add( toolb, "This is the third QToolButton."); + + toolb = QWhatsThis.whatsThisButton( tools ); + QWhatsThis.add( toolb, "This is a What's This button " + + "It enables the user to ask for help " + + "about widgets on the screen."); + + // Install an application-global event filter to catch control+leftbutton + qApp().installEventFilter( this ); + + //make a central widget to contain the other widgets + central = new QWidget( this ); + setCentralWidget( central ); + + // Create a layout to position the widgets + QHBoxLayout topLayout = new QHBoxLayout( central, 10 ); + + // Create a grid layout to hold most of the widgets + QGridLayout grid = new QGridLayout( 0, 3 ); //3 wide and autodetect number of rows + topLayout.addLayout( grid, 1 ); + + // Create an easter egg + QToolTip.add( menuBar(), new QRect( 0, 0, 2, 2 ), "easter egg" ); + + QPopupMenu popup; + popup = new QPopupMenu( this ); + menuBar().insertItem( "&File", popup ); + int id; + id = popup.insertItem( "&New" ); + popup.setItemEnabled( id, false ); + id = popup.insertItem( new QIconSet(openIcon), "&Open", this, SLOT(" open()") ); + + popup.insertSeparator(); + popup.insertItem( "&Quit", qApp(), SLOT("quit()"), new QKeySequence(CTRL+Key_Q) ); + + + textStylePopup = popup = new QPopupMenu( this ); + menuBar().insertItem( "&Edit", popup ); + + plainStyleID = id = popup.insertItem( "&Plain" ); + popup.setAccel( new QKeySequence(CTRL+Key_T), id ); + + popup.insertSeparator(); +/* QFont f = font(); + f.setBold( true ); + id = popup.insertItem( new MyMenuItem( "&Bold", f ) ); + popup.setAccel( new QKeySequence(CTRL+Key_B), id ); + f = font(); + f.setItalic( true ); + id = popup.insertItem( new MyMenuItem( "&Italic", f ) ); + popup.setItemChecked( id, true ); + popup.setAccel( new QKeySequence(CTRL+Key_I), id ); + f = font(); + f.setUnderline( true ); + id = popup.insertItem( new MyMenuItem( "&Underline", f ) ); + popup.setAccel( new QKeySequence(CTRL+Key_U), id ); + f = font(); + f.setStrikeOut( true ); + id = popup.insertItem( new MyMenuItem( "&Strike", f ) ); + connect( textStylePopup, SIGNAL("activated(int)"), + this, SLOT("popupSelected(int)") ); +*/ + // Create an analog and a digital clock + aclock = new AnalogClock( central ); + aclock.setAutoMask( true ); + dclock = new DigitalClock( central ); + dclock.setMaximumWidth(200); + grid.addWidget( aclock, 0, 2 ); + grid.addWidget( dclock, 1, 2 ); + + // Give the dclock widget a blue palette + col.setRgb( 0xaa, 0xbe, 0xff ); + dclock.setPalette( new QPalette( col ) ); + + // make tool tips for both of them + QToolTip.add( aclock, "custom widget: analog clock" ); + QToolTip.add( dclock, "custom widget: digital clock" ); + + // Create a push button. + QPushButton pb; + pb = new QPushButton( "&Push button 1", central, "button1" ); + grid.addWidget( pb, 0, 0, AlignVCenter ); + connect( pb, SIGNAL("clicked()"), SLOT("button1Clicked()") ); + QToolTip.add( pb, "push button 1" ); + QWhatsThis.add( pb, "This is a QPushButton.
" + + "Click it and watch...
" + + "The wonders of modern technology."); + + QPixmap pm = new QPixmap(); + boolean pix = pm.load("qt.png"); + if ( !pix ) { + QMessageBox.information( null, "Qt Widgets Example", + "Could not load the file \"qt.png\", which\n" + + "contains an icon used...\n\n" + + "The text \"line 42\" will be substituted.", + QMessageBox.Ok + QMessageBox.Default ); + } + + // Create a label containing a QMovie + movie = new QMovie( MOVIEFILENAME ); + movielabel = new QLabel( central, "label0" ); + movie.connectStatus(this, SLOT("movieStatus(int)")); + movie.connectUpdate(this, SLOT("movieUpdate(QRect)")); + movielabel.setFrameStyle( QFrame.Box | QFrame.Plain ); + movielabel.setMovie( movie ); + movielabel.setFixedSize( 128+movielabel.frameWidth()*2, + 64+movielabel.frameWidth()*2 ); + grid.addWidget( movielabel, 0, 1, AlignCenter ); + QToolTip.add( movielabel, "movie" ); + QWhatsThis.add( movielabel, "This is a QLabel " + + "that contains a QMovie." ); + + // Create a group of check boxes + bg = new QButtonGroup( central, "checkGroup" ); + bg.setTitle( "Check Boxes" ); + grid.addWidget( bg, 1, 0 ); + + // Create a layout for the check boxes + QVBoxLayout vbox = new QVBoxLayout(bg, 10); + + vbox.addSpacing( bg.fontMetrics().height() ); + + cb[0] = new QCheckBox( bg ); + cb[0].setText( "&Read" ); + vbox.addWidget( cb[0] ); + cb[1] = new QCheckBox( bg ); + cb[1].setText( "&Write" ); + vbox.addWidget( cb[1] ); + cb[2] = new QCheckBox( bg ); + cb[2].setText( "&Execute" ); + vbox.addWidget( cb[2] ); + + connect( bg, SIGNAL("clicked(int)"), SLOT("checkBoxClicked(int)") ); + + QToolTip.add( cb[0], "check box 1" ); + QToolTip.add( cb[1], "check box 2" ); + QToolTip.add( cb[2], "check box 3" ); + + // Create a group of radio buttons + QRadioButton rb; + bg = new QButtonGroup( central, "radioGroup" ); + bg.setTitle( "Radio buttons" ); + + grid.addWidget( bg, 1, 1 ); + + // Create a layout for the radio buttons + vbox = new QVBoxLayout(bg, 10); + + vbox.addSpacing( bg.fontMetrics().height() ); + rb = new QRadioButton( bg ); + rb.setText( "&AM" ); + rb.setChecked( true ); + vbox.addWidget(rb); + QToolTip.add( rb, "radio button 1" ); + rb = new QRadioButton( bg ); + rb.setText( "F&M" ); + vbox.addWidget(rb); + QToolTip.add( rb, "radio button 2" ); + rb = new QRadioButton( bg ); + rb.setText( "&Short Wave" ); + vbox.addWidget(rb); + + connect( bg, SIGNAL("clicked(int)"), SLOT("radioButtonClicked(int)") ); + QToolTip.add( rb, "radio button 3" ); + + // Create a list box + QListBox lb = new QListBox( central, "listBox" ); + for ( int i=0; i<100; i++ ) { // fill list box + String str = "line " + i; + if ( i == 42 && pix ) + lb.insertItem( pm ); + else + lb.insertItem( str ); + } + grid.addMultiCellWidget( lb, 2, 4, 0, 0 ); + connect( lb, SIGNAL("selected(int)"), SLOT("listBoxItemSelected(int)") ); + QToolTip.add( lb, "list box" ); +// new MyWhatsThis( lb ); + + vbox = new QVBoxLayout(8); + grid.addLayout( vbox, 2, 1 ); + + // Create a slider + QSlider sb = new QSlider( 0, 300, 30, 100, QSlider.Horizontal, + central, "Slider" ); + sb.setTickmarks( QSlider.Below ); + sb.setTickInterval( 10 ); + sb.setFocusPolicy( QWidget.TabFocus ); + vbox.addWidget( sb ); + + connect( sb, SIGNAL("valueChanged(int)"), SLOT("sliderValueChanged(int)") ); + QToolTip.add( sb, "slider" ); + QWhatsThis.add( sb, "This is a QSlider. " + + "The tick marks are optional." + + " This slider controls the speed of the movie." ); + // Create a combo box + QComboBox combo = new QComboBox( false, central, "comboBox" ); + combo.insertItem( "darkBlue" ); + combo.insertItem( "darkRed" ); + combo.insertItem( "darkGreen" ); + combo.insertItem( "blue" ); + combo.insertItem( "red" ); + vbox.addWidget( combo ); + connect( combo, SIGNAL("activated(int)"), + this, SLOT("comboBoxItemActivated(int)") ); + QToolTip.add( combo, "read-only combo box" ); + + // Create an editable combo box + QComboBox edCombo = new QComboBox( true, central, "edComboBox" ); + edCombo.insertItem( "Permutable" ); + edCombo.insertItem( "Malleable" ); + edCombo.insertItem( "Adaptable" ); + edCombo.insertItem( "Alterable" ); + edCombo.insertItem( "Inconstant" ); + vbox.addWidget( edCombo ); + connect( edCombo, SIGNAL("activated(String)"), + this, SLOT("edComboBoxItemActivated(String)") ); + QToolTip.add( edCombo, "editable combo box" ); + + edCombo.setAutoCompletion( true ); + + vbox = new QVBoxLayout(8); + grid.addLayout( vbox, 2, 2 ); + + // Create a spin box + QSpinBox spin = new QSpinBox( 0, 10, 1, central, "spin" ); + spin.setSuffix(" mm"); + spin.setSpecialValueText( "Auto" ); + connect( spin, SIGNAL(" valueChanged(String)"), + SLOT(" spinBoxValueChanged(String)") ); + QToolTip.add( spin, "spin box" ); + QWhatsThis.add( spin, "This is a QSpinBox. " + + "You can chose values in a given range " + + "either by using the arrow buttons " + + "or by typing them in." ); + vbox.addWidget( spin ); + + vbox.addStretch( 1 ); + + // Create a tabwidget that switches between multi line edits + tabs = new QTabWidget( central ); + //tabs.setTabPosition( QTabWidget.Bottom ); + tabs.setMargin( 4 ); + grid.addMultiCellWidget( tabs, 3, 3, 1, 2 ); + QMultiLineEdit mle = new QMultiLineEdit( tabs, "multiLineEdit" ); + edit = mle; + mle.setWordWrap( QMultiLineEdit.WidgetWidth ); + mle.setText("This is a QMultiLineEdit widget, " + + "useful for small multi-line " + + "input fields."); + QToolTip.add( mle, "multi line editor" ); + + tabs.addTab( mle, "F&irst"); + + mle = new QMultiLineEdit( tabs, "multiLineEdit" ); + String mleText = "This is another QMultiLineEdit widget."; + mleText += "\n"; + mleText += "Japanese: "; + mleText += (char) 0x6a38; // Kanji + mleText += "\n"; + mleText += "Russian:"; + mleText += (char) 0x042e; // Cyrillic + mleText += "\n"; + mleText += "Norwegian:"; + mleText += (char) 0x00d8; // Norwegian + mleText += "\n"; + mleText += "Unicode (black square):"; + mleText += (char) 0x25A0; // BLACK SQUARE + mleText += "\n"; + mle.setText( mleText ); + QToolTip.add( mle, "second multi line editor" ); + tabs.addTab( mle, "Se&cond"); + + + // Create a single line edit + QLineEdit le = new QLineEdit( central, "lineEdit" ); + + + grid.addMultiCellWidget( le, 4, 4, 1, 2 ); + connect( le, SIGNAL("textChanged(String)"), + SLOT("lineEditTextChanged(String)") ); + QToolTip.add( le, "single line editor" ); + QWhatsThis.add( le, "This is a QLineEdit, you can enter a " + + "single line of text in it. " + + "It also it accepts text drops." ); + + grid.setRowStretch(0,0); + grid.setRowStretch(1,0); + grid.setRowStretch(2,0); + grid.setRowStretch(3,1); + grid.setRowStretch(4,0); + + grid.setColStretch(0,1); + grid.setColStretch(1,1); + grid.setColStretch(2,1); + + + QSplitter split = new QSplitter( Vertical, central, "splitter" ); + split.setOpaqueResize( true ); + topLayout.addWidget( split, 1 ); + QListView lv = new MyListView( split ); + connect(lv, SIGNAL("selectionChanged()"), + this, SLOT(" selectionChanged()") ); + connect(lv, SIGNAL("selectionChanged(QListViewItem)"), + this, SLOT(" selectionChanged(QListViewItem)") ); + connect(lv, SIGNAL("clicked(QListViewItem)"), + this, SLOT(" clicked(QListViewItem)") ); + connect(lv, SIGNAL("mySelectionChanged(QListViewItem)"), + this, SLOT(" mySelectionChanged(QListViewItem)") ); + lv.addColumn( "One" ); + lv.addColumn( "Two" ); + lv.setAllColumnsShowFocus( true ); + + QListViewItem lvi= new QListViewItem( lv, "Text", "Text" ); + lvi= new QListViewItem( lv, "Text", "Other Text" ); + lvi= new QListViewItem( lv, "Text", "More Text" ); + lvi= new QListViewItem( lv, "Text", "Extra Text" ); + lvi.setOpen(true); + new QListViewItem( lvi, "SubText", "Additional Text" ); + lvi= new QListViewItem( lvi, "SubText", "Side Text" ); + lvi= new QListViewItem( lvi, "SubSubText", "Complimentary Text" ); + + QToolTip.add( lv, "list view" ); + QWhatsThis.add( lv, "This is a QListView, you can display lists " + + "(or outline lists) of multiple-column data in it." ); + + lv = new QListView( split ); + lv.addColumn( "Choices" ); + new QCheckListItem( lv, "Onion", QCheckListItem.CheckBox ); + new QCheckListItem( lv, "Artichoke", QCheckListItem.CheckBox ); + new QCheckListItem( lv, "Pepper", QCheckListItem.CheckBox ); + new QCheckListItem( lv, "Habaneros", QCheckListItem.CheckBox ); + new QCheckListItem( lv, "Pineapple", QCheckListItem.CheckBox ); + new QCheckListItem( lv, "Ham", QCheckListItem.CheckBox ); + new QCheckListItem( lv, "Pepperoni", QCheckListItem.CheckBox ); + new QCheckListItem( lv, "Garlic", QCheckListItem.CheckBox ); + + + QCheckListItem lit = new QCheckListItem( lv, "Cheese" ); + lit.setOpen( true ); + new QCheckListItem( lit, "Cheddar", QCheckListItem.RadioButton ); + new QCheckListItem( lit, "Mozarella", QCheckListItem.RadioButton ); + new QCheckListItem( lit, "Jarlsberg", QCheckListItem.RadioButton ); + + QToolTip.add( lv, "list view" ); + QWhatsThis.add( lv, "This is also a QListView, with " + + "interactive items." ); + + QTextView qmlv = new QTextView( "

QTextView

" + + "

Qt supports formatted rich text, such " + + "as the heading above, emphasized and " + + "bold text, via an XML subset.

" + + "

Style sheets are supported.

", + "", split ); + qmlv.setFont(new QFont("Charter",11)); + qmlv.setFrameStyle( QFrame.WinPanel | QFrame.Sunken ); + + // Create an label and a message in the status bar + // The message is updated when buttons are clicked etc. + msg = new QLabel( statusBar(), "message" ); + msg.setAlignment( AlignCenter ); + QFont boldfont = new QFont(); boldfont.setWeight(QFont.Bold); + msg.setFont( boldfont ); + statusBar().addWidget( msg, 4 ); + QToolTip.add( msg, "Message area" ); + + QAccel a = new QAccel( this ); + a.connectItem( a.insertItem( new QKeySequence(Key_F9) ), + this, SLOT(" showProperties()") ); + + prog = new QProgressBar( statusBar(), "progress" ); + prog.setTotalSteps( 100 ); + progress = 64; + prog.setProgress( progress ); + statusBar().addWidget( prog , 1 ); + QWhatsThis.add( prog, "This is a QProgressBar " + + "You can use it to show that a lengthy " + + " process is progressing. " + + "In this program, nothing much seems to happen." ); + statusBar().message( "Welcome to Qt", 2000 ); +} + +void setStatus(String text) +{ + msg.setText(text); +} + +void button1Clicked() +{ + msg.setText( "The push button was clicked" ); + prog.setProgress( ++progress ); +} + + +void movieUpdate( QRect r ) +{ + // Uncomment this to test animated icons on your window manager + //setIcon( movie.framePixmap() ); +} + +void movieStatus( int s ) +{ + switch ( s ) { + case QMovie.SourceEmpty: + case QMovie.UnrecognizedFormat: + { + QPixmap pm = new QPixmap("tt-logo.png"); + movielabel.setPixmap(pm); + movielabel.setFixedSize(pm.size()); + } + break; + default: + if ( movielabel.movie() != null ) // for flicker-free animation: + movielabel.setBackgroundMode( NoBackground ); + } +} + + +void popupSelected( int selectedId ) +{ + if ( selectedId == plainStyleID ) { + for ( int i = 0; i < textStylePopup.count(); i++ ) { + int id = textStylePopup.idAt( i ); + textStylePopup.setItemChecked( id, false); + } + } else { + textStylePopup.setItemChecked( selectedId, true ); + } +} + +void checkBoxClicked( int id ) +{ + String str; + str = tr("Check box " + id + " clicked : "); + String chk = (cb[0].isChecked() ? "r" : "-") + + (cb[1].isChecked() ? "w" : "-") + + (cb[2].isChecked() ? "x" : "-"); + str += chk; + msg.setText( str ); +} + + +void edComboBoxItemActivated( String text) +{ + String str = tr("Editable Combo Box set to "); + str += text; + msg.setText( str ); +} + + +void radioButtonClicked( int id ) +{ + msg.setText( tr("Radio button #" + id + " clicked") ); +} + + +void listBoxItemSelected( int index ) +{ + msg.setText( tr("List box item " + index +" selected") ); +} + + +void sliderValueChanged( int value ) +{ + msg.setText( tr("Movie set to " + value + "% of normal speed") ); + movie.setSpeed( value ); +} + + +void comboBoxItemActivated( int index ) +{ + msg.setText( tr("Combo box item " + index + " activated") ); + switch ( index ) { + default: + case 0: + QApplication.setWinStyleHighlightColor( darkBlue() ); + break; + case 1: + QApplication.setWinStyleHighlightColor( darkRed() ); + break; + case 2: + QApplication.setWinStyleHighlightColor( darkGreen() ); + break; + case 3: + QApplication.setWinStyleHighlightColor( blue() ); + break; + case 4: + QApplication.setWinStyleHighlightColor( red() ); + break; + } +} + + + +void lineEditTextChanged( String newText ) +{ + String str = "Line edit text: "; + str += newText; + if ( newText.length() == 1 ) { + String u = " (U" + newText + "x" + newText + "x)"; + str += u; + } + msg.setText( str ); +} + + +void spinBoxValueChanged( String valueText ) +{ + String str = "Spin box value: " ; + str += valueText; + msg.setText( str ); +} + +// +// All application events are passed through this event filter. +// We're using it to display some information about a clicked +// widget (right mouse button + CTRL). +// + + +static boolean identify_now = true; + +public boolean eventFilter( QObject obj, QEvent event ) +{ + if ( event.type() == QEvent.MouseButtonPress && event instanceof QMouseEvent && identify_now ) { + QMouseEvent e = (QMouseEvent)event; + if ( e.button() == QMouseEvent.RightButton && + (e.state() & QMouseEvent.ControlButton) != 0 ){ + String str = "The clicked widget is a\n"; + str += obj.className(); + str += "\nThe widget's name is\n"; + if ( !obj.name().equals("") ) + str += obj.name(); + else + str += ""; + identify_now = false; // don't do it in message box + QMessageBox.information( (QWidget)obj, "Identify Widget", str ); + identify_now = true; // allow it again + } + } +// return super.eventFilter( obj, event ); // don't eat event + return false; // don't eat event +} + + +void open() +{ + QFileDialog.getOpenFileName( "", "Textfiles (.txt)", this ); +} + + +void dummy() +{ + QMessageBox.information( this, "Sorry", + "This function is not implemented" ); +} + +void selectionChanged() +{ + //qDebug("selectionChanged"); +} +void selectionChanged( QListViewItem item) +{ + //qDebug("selectionChanged %p", item ); +} + +void clicked( QListViewItem item ) +{ + //qDebug("clicked %p", item ); +} + +void mySelectionChanged( QListViewItem item ) +{ + //qDebug("mySelectionChanged %p", item ); +} + +void showProperties() +{ + if ( qApp().focusWidget() == null ) + return; + String output = "Properties for class '" + qApp().focusWidget().className() + "'"; + int i = 0; + while( i < (int) qApp().focusWidget().metaObject().numProperties( true ) ) { + QMetaProperty p + = qApp().focusWidget().metaObject().property( i, true ); + String tmp = "\n " + (++i) + ": " + p.name() + + " (read-" + (p.writable() ? "write" : "only") + ", " + p.type() + ")"; + output += tmp; + } + qDebug( output ); +} +} diff --git a/qtjava/javalib/examples/widgets/qt.png b/qtjava/javalib/examples/widgets/qt.png new file mode 100644 index 00000000..ca630a56 Binary files /dev/null and b/qtjava/javalib/examples/widgets/qt.png differ diff --git a/qtjava/javalib/examples/widgets/trolltech.bmp b/qtjava/javalib/examples/widgets/trolltech.bmp new file mode 100644 index 00000000..01a56a2e Binary files /dev/null and b/qtjava/javalib/examples/widgets/trolltech.bmp differ diff --git a/qtjava/javalib/examples/widgets/trolltech.gif b/qtjava/javalib/examples/widgets/trolltech.gif new file mode 100644 index 00000000..f674369e Binary files /dev/null and b/qtjava/javalib/examples/widgets/trolltech.gif differ diff --git a/qtjava/javalib/examples/widgets/tt-logo.png b/qtjava/javalib/examples/widgets/tt-logo.png new file mode 100644 index 00000000..a0d9e340 Binary files /dev/null and b/qtjava/javalib/examples/widgets/tt-logo.png differ diff --git a/qtjava/javalib/examples/wizard/Main.java b/qtjava/javalib/examples/wizard/Main.java new file mode 100644 index 00000000..9f689214 --- /dev/null +++ b/qtjava/javalib/examples/wizard/Main.java @@ -0,0 +1,29 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + +public class Main { + +public static void main(String[] args) +{ + QApplication a = new QApplication( args ); + + Wizard wizard = new Wizard(); + wizard.setCaption("Qt Example - Wizard"); + wizard.show(); + a.exec(); + return; +} + + static { + qtjava.initialize(); + } +} diff --git a/qtjava/javalib/examples/wizard/Wizard.java b/qtjava/javalib/examples/wizard/Wizard.java new file mode 100644 index 00000000..dd0659dc --- /dev/null +++ b/qtjava/javalib/examples/wizard/Wizard.java @@ -0,0 +1,237 @@ +/*************************************************************************** +* $Id$ +** +* Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +* This file is part of an example program for Qt. This example +* program may be used, distributed and modified without limitation. +** +****************************************************************************/ + +import org.kde.qt.*; + +class Wizard extends QWizard +{ +protected QHBox page1, page2, page3; +protected QLineEdit key, firstName, lastName, address, phone, email; +protected QLabel lKey, lFirstName, lLastName, lAddress, lPhone, lEmail; + + + + +Wizard( ) +{ + this(null, null); +} + +Wizard( QWidget parent, String name ) +{ + super( parent, name, true ); + setupPage1(); + setupPage2(); + setupPage3(); + connect(this, SIGNAL("selected(String)"), this, SLOT("doShowPage(String)")); + connect(finishButton(), SIGNAL("clicked()"), qApp(), SLOT("quit()")); + key.setFocus(); +} + +void setupPage1() +{ + page1 = new QHBox( this ); + page1.setSpacing(8); + + QLabel info = new QLabel( page1 ); + info.setPalette( new QPalette(yellow()) ); + info.setText( "Enter your personal\n" + + "key here.\n\n" + + "Your personal key\n" + + "consists of 4 digits" ); + info.setIndent( 8 ); + info.setMaximumWidth( info.sizeHint().width() ); + + QVBox page = new QVBox( page1 ); + + QHBox row1 = new QHBox( page ); + + new QLabel( "Key:", row1 ); + + key = new QLineEdit( row1 ); + key.setMaxLength( 4 ); + key.setValidator( new QIntValidator( 1000, 9999, key ) ); + + connect( key, SIGNAL(" textChanged( String )"), + this, SLOT(" keyChanged( String )") ); + + addPage( page1, "Personal Key" ); + + setNextEnabled( page1, false ); + setHelpEnabled( page1, false ); +} + +void setupPage2() +{ + page2 = new QHBox( this ); + page2.setSpacing(8); + + QLabel info = new QLabel( page2 ); + info.setPalette( new QPalette(yellow()) ); + info.setText( "\n" + + " Enter your personal \n" + + " data here. \n\n" + + " The required fields are \n" + + " First Name, Last Name \n" + + " and E-Mail. \n" ); + info.setIndent(8); + info.setMaximumWidth( info.sizeHint().width() ); + + QVBox page = new QVBox( page2 ); + + QHBox row1 = new QHBox( page ); + QHBox row2 = new QHBox( page ); + QHBox row3 = new QHBox( page ); + QHBox row4 = new QHBox( page ); + QHBox row5 = new QHBox( page ); + + QLabel label1 = new QLabel( " First Name: ", row1 ); + label1.setAlignment( Qt.AlignVCenter ); + QLabel label2 = new QLabel( " Last Name: ", row2 ); + label2.setAlignment( Qt.AlignVCenter ); + QLabel label3 = new QLabel( " Address: ", row3 ); + label3.setAlignment( Qt.AlignVCenter ); + QLabel label4 = new QLabel( " Phone Number: ", row4 ); + label4.setAlignment( Qt.AlignVCenter ); + QLabel label5 = new QLabel( " E-Mail: ", row5 ); + label5.setAlignment( Qt.AlignVCenter ); + + label1.setMinimumWidth( label4.sizeHint().width() ); + label2.setMinimumWidth( label4.sizeHint().width() ); + label3.setMinimumWidth( label4.sizeHint().width() ); + label4.setMinimumWidth( label4.sizeHint().width() ); + label5.setMinimumWidth( label4.sizeHint().width() ); + + firstName = new QLineEdit( row1 ); + lastName = new QLineEdit( row2 ); + address = new QLineEdit( row3 ); + phone = new QLineEdit( row4 ); + email = new QLineEdit( row5 ); + + connect( firstName, SIGNAL(" textChanged( String )"), + this, SLOT(" dataChanged( String )") ); + connect( lastName, SIGNAL(" textChanged( String )"), + this, SLOT(" dataChanged( String )") ); + connect( email, SIGNAL(" textChanged( String )"), + this, SLOT(" dataChanged( String )") ); + + addPage( page2, "Personal Data" ); + + setHelpEnabled( page2, false ); +} + +void setupPage3() +{ + page3 = new QHBox( this ); + page3.setSpacing(8); + + QLabel info = new QLabel( page3 ); + info.setPalette( new QPalette(yellow()) ); + info.setText( "\n" + + " Look here to see of \n" + + " the data you entered \n" + + " is correct. To confirm, \n" + + " press the [Finish] button \n" + + " else go back to correct \n" + + " mistakes." ); + info.setIndent(8); + info.setAlignment( AlignTop|AlignLeft ); + info.setMaximumWidth( info.sizeHint().width() ); + + QVBox page = new QVBox( page3 ); + + QHBox row1 = new QHBox( page ); + QHBox row2 = new QHBox( page ); + QHBox row3 = new QHBox( page ); + QHBox row4 = new QHBox( page ); + QHBox row5 = new QHBox( page ); + QHBox row6 = new QHBox( page ); + + QLabel label1 = new QLabel( " Personal Key: ", row1 ); + label1.setAlignment( Qt.AlignVCenter ); + QLabel label2 = new QLabel( " First Name: ", row2 ); + label2.setAlignment( Qt.AlignVCenter ); + QLabel label3 = new QLabel( " Last Name: ", row3 ); + label3.setAlignment( Qt.AlignVCenter ); + QLabel label4 = new QLabel( " Address: ", row4 ); + label4.setAlignment( Qt.AlignVCenter ); + QLabel label5 = new QLabel( " Phone Number: ", row5 ); + label5.setAlignment( Qt.AlignVCenter ); + QLabel label6 = new QLabel( " E-Mail: ", row6 ); + label6.setAlignment( Qt.AlignVCenter ); + + label1.setMinimumWidth( label1.sizeHint().width() ); + label2.setMinimumWidth( label1.sizeHint().width() ); + label3.setMinimumWidth( label1.sizeHint().width() ); + label4.setMinimumWidth( label1.sizeHint().width() ); + label5.setMinimumWidth( label1.sizeHint().width() ); + label6.setMinimumWidth( label1.sizeHint().width() ); + + lKey = new QLabel( row1 ); + lFirstName = new QLabel( row2 ); + lLastName = new QLabel( row3 ); + lAddress = new QLabel( row4 ); + lPhone = new QLabel( row5 ); + lEmail = new QLabel( row6 ); + + addPage( page3, "Finish" ); + + setFinish( page3, true ); + setHelpEnabled( page3, false ); +} + +// The QWizard.showPage() virtual method callback isn't implemented in the java +// bindings yet, so use the selected() signal connected to this slot 'doShowPage()' +// instead.. +public void doShowPage( String title ) +{ + QWidget page = currentPage(); + + if ( page == page1 ) { + } else if ( page == page2 ) { + } else if ( page == page3 ) { + lKey.setText( key.text() ); + lFirstName.setText( firstName.text() ); + lLastName.setText( lastName.text() ); + lAddress.setText( address.text() ); + lPhone.setText( phone.text() ); + lEmail.setText( email.text() ); + } + + if ( page == page1 ) { + keyChanged( key.text() ); + key.setFocus(); + } else if ( page == page2 ) { + dataChanged( firstName.text() ); + firstName.setFocus(); + } else if ( page == page3 ) { + finishButton().setEnabled( true ); + finishButton().setFocus(); + } +} + +void keyChanged( String text ) +{ + StringBuffer t = new StringBuffer(text); + int[] p = { 0 }; + boolean on = ( key.validator().validate(t, p) == QValidator.Acceptable ); + nextButton().setEnabled( on ); +} + +void dataChanged( String s ) +{ + if ( !firstName.text().equals("") && + !lastName.text().equals("") && + !email.text().equals("") ) + nextButton().setEnabled( true ); + else + nextButton().setEnabled( false ); +} +} -- cgit v1.2.1

+The QLabel widget provides a static information display +More... +

/x97 LATIN SMALL LETTER P + /x98 LATIN SMALL LETTER Q + /x99 LATIN SMALL LETTER R +<-a> /x9A FEMININE ORDINAL INDICATOR +<-o> /x9B MASCULINE ORDINAL INDICATOR +<(!> /x9C LEFT CURLY BRACKET +<',> /x9D CEDILLA +<<(> /x9E LEFT SQUARE BRACKET +<)/>> /x9F RIGHT SQUARE BRACKET + /xA0 MICRO SIGN + /xA1 LATIN SMALL LETTER U WITH DIAERESIS + /xA2 LATIN SMALL LETTER S + /xA3 LATIN SMALL LETTER T + /xA4 LATIN SMALL LETTER U + /xA5 LATIN SMALL LETTER V + /xA6 LATIN SMALL LETTER W + /xA7 LATIN SMALL LETTER X + /xA8 LATIN SMALL LETTER Y + /xA9 LATIN SMALL LETTER Z + /xAA INVERTED EXCLAMATION MARK + /xAB INVERTED QUESTION MARK + /xAC LATIN CAPITAL LETTER ETH (Icelandic) + /xAD LATIN CAPITAL LETTER Y WITH ACUTE + /xAE LATIN CAPITAL LETTER THORN (Icelandic) + /xAF REGISTERED SIGN + /xB0 CENT SIGN + /xB1 POUND SIGN + /xB2 YEN SIGN +<.M> /xB3 MIDDLE DOT + /xB4 COPYRIGHT SIGN + /xB5 SECTION SIGN + /xB6 PILCROW SIGN +<14> /xB7 VULGAR FRACTION ONE QUARTER +<12> /xB8 VULGAR FRACTION ONE HALF +<34> /xB9 VULGAR FRACTION THREE QUARTERS + /xBA NOT SIGN + /xBB VERTICAL LINE +<'-> /xBC OVERLINE +<':> /xBD DIAERESIS +<''> /xBE ACUTE ACCENT +<*X> /xBF MULTIPLICATION SIGN + /xC0 LATIN SMALL LETTER AE + /xC1 LATIN CAPITAL LETTER A + /xC2 LATIN CAPITAL LETTER B + /xC3 LATIN CAPITAL LETTER C + /xC4 LATIN CAPITAL LETTER D + /xC5 LATIN CAPITAL LETTER E + /xC6 LATIN CAPITAL LETTER F + /xC7 LATIN CAPITAL LETTER G + /xC8 LATIN CAPITAL LETTER H + /xC9 LATIN CAPITAL LETTER I +<--> /xCA SOFT HYPHEN +> /xCB LATIN SMALL LETTER O WITH CIRCUMFLEX + /xCC LATIN SMALL LETTER O WITH DIAERESIS + /xCD LATIN SMALL LETTER O WITH GRAVE + /xCE LATIN SMALL LETTER O WITH ACUTE + /xCF LATIN SMALL LETTER O WITH TILDE + /xD0 LATIN SMALL LETTER A WITH RING ABOVE + /xD1 LATIN CAPITAL LETTER J + /xD2 LATIN CAPITAL LETTER K + /xD3 LATIN CAPITAL LETTER L + /xD4 LATIN CAPITAL LETTER M + /xD5 LATIN CAPITAL LETTER N + /xD6 LATIN CAPITAL LETTER O +

/x50 LATIN CAPITAL LETTER P + /x51 LATIN CAPITAL LETTER Q + /x52 LATIN CAPITAL LETTER R + /x53 LATIN CAPITAL LETTER S + /x54 LATIN CAPITAL LETTER T + /x55 LATIN CAPITAL LETTER U + /x56 LATIN CAPITAL LETTER V + /x57 LATIN CAPITAL LETTER W + /x58 LATIN CAPITAL LETTER X + /x59 LATIN CAPITAL LETTER Y + /x5A LATIN CAPITAL LETTER Z +<<(> /x5B LEFT SQUARE BRACKET + /x5C REVERSE SOLIDUS +<)/>> /x5D RIGHT SQUARE BRACKET +<'/>> /x5E CIRCUMFLEX ACCENT +<_> /x5F LOW LINE +<'!> /x60 GRAVE ACCENT + /x61 LATIN SMALL LETTER A + /x62 LATIN SMALL LETTER B + /x63 LATIN SMALL LETTER C + /x64 LATIN SMALL LETTER D + /x65 LATIN SMALL LETTER E + /x66 LATIN SMALL LETTER F + /x67 LATIN SMALL LETTER G + /x68 LATIN SMALL LETTER H + /x69 LATIN SMALL LETTER I + /x6A LATIN SMALL LETTER J + /x6B LATIN SMALL LETTER K + /x6C LATIN SMALL LETTER L + /x6D LATIN SMALL LETTER M + /x6E LATIN SMALL LETTER N + /x6F LATIN SMALL LETTER O +