Diffstat (limited to 'examples/simple-icon/simple.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | examples/simple-icon/simple.cpp | 100 |
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 | |||
25 | OPIE_EXPORT_APP( OApplicationFactory<Simple> ) | ||
26 | |||
27 | Simple::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 | */ | ||
86 | Simple::~Simple() { | ||
87 | |||
88 | } | ||
89 | |||
90 | void 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 | } | ||