summaryrefslogtreecommitdiff
path: root/examples/simple-icon/simple.cpp
Unidiff
Diffstat (limited to 'examples/simple-icon/simple.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--examples/simple-icon/simple.cpp100
1 files changed, 100 insertions, 0 deletions
diff --git a/examples/simple-icon/simple.cpp b/examples/simple-icon/simple.cpp
new file mode 100644
index 0000000..054ade8
--- a/dev/null
+++ b/examples/simple-icon/simple.cpp
@@ -0,0 +1,100 @@
1#include <qlabel.h> // a label
2#include <qpushbutton.h> // the header file for the QPushButton
3#include <qlayout.h>
4
5#include <qpe/qpeapplication.h> // the QPEApplication
6#include <qpe/resource.h> // for loading icon
7#include <qpe/sound.h> // for playing a sound
8
9#include <opie/oapplicationfactory.h> // a template + macro to save the main method and allow quick launching
10
11#include "simple.h"
12
13/*
14 * implementation of simple
15 */
16
17/*
18 * The factory is used for quicklaunching
19 * It needs a constructor ( c'tor ) with at least QWidget, const char* and WFlags as parameter and a static QString appName() matching the TARGET of the .pro
20 *
21 * Depending on the global quick launch setting this will create
22 * either a main method or one for our component plugin system
23 */
24
25OPIE_EXPORT_APP( OApplicationFactory<Simple> )
26
27Simple::Simple( QWidget* parent, const char* name, WFlags fl )
28 : QWidget( parent, name, fl ) {
29
30 /*
31 * sets the caption of this toplevel widget
32 * put all translatable string into tr()
33 */
34 setCaption(tr("My Simple Application") );
35
36 /*
37 * A simple vertical layout
38 * either call layout->setAutoAdd( true )
39 * or use layout->addWidget( wid ) to add widgets
40 */
41 QVBoxLayout *layout = new QVBoxLayout( this );
42 layout->setSpacing( 8 );
43 layout->setMargin( 11 );
44
45 /*
46 * creates a label
47 * The first parameter is this widget so the Label is a child
48 * of us and will be deleted when we're deleted.
49 */
50 QLabel *lbl = new QLabel( this, "a name for the label" );
51 /*
52 * Resource will search hard for a Pixmap in $OPIEDIR/pics
53 * to find 'logo/opielogo' You need to pass the subdir
54 * but not the ending
55 */
56 lbl->setPixmap( Resource::loadPixmap("logo/opielogo") );
57 layout->addWidget( lbl );
58
59
60 /* creates a button as child of this widget */
61 m_button = new QPushButton(this);
62 /*
63 * another way to call tr. The first parameter is the string
64 * to translate and the second a hint to the translator
65 */
66 m_button->setText( tr("Fire", "translatable fire string" ) );
67 layout->addWidget( m_button );
68
69 /*
70 * Now we bring the action into it. The power of qt is the dynamic
71 * signal and slots model
72 * Usage is simple connect m_buttons clicked signal to our
73 * slotQuit slot.
74 * We could also have connected a SIGNAL to a SIGNAL or the clicked
75 * signal directly to qApp and SLOT(quit() )
76 */
77 connect( m_button, SIGNAL(clicked() ),
78 this, SLOT( slotQuit() ) );
79}
80
81/*
82 * Our destructor is empty because all child
83 * widgets and layouts will be deleted by Qt.
84 * Same applies to QObjects
85 */
86Simple::~Simple() {
87
88}
89
90void Simple::slotQuit() {
91 /*
92 * We will fire up a sound
93 * Note that Sound will use Resource as well
94 * and we do not need to supply an ending
95 * sounds are found in $OPIEDIR/sounds
96 */
97 Sound snd("hit_target01");
98 snd.play();
99
100}