summaryrefslogtreecommitdiff
authorzecke <zecke>2003-10-07 12:41:05 (UTC)
committer zecke <zecke>2003-10-07 12:41:05 (UTC)
commitbff4ae322275e910125cd8d9bd22feefbbab2477 (patch) (unidiff)
treecc26509dacb72ade7ec573400aa301f9ad6a8828
parentb8ac6724a0aaed78a1df712d87110fe39b16955f (diff)
downloadopie-bff4ae322275e910125cd8d9bd22feefbbab2477.zip
opie-bff4ae322275e910125cd8d9bd22feefbbab2477.tar.gz
opie-bff4ae322275e910125cd8d9bd22feefbbab2477.tar.bz2
Update the Applet Example
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--examples/LICENSE4
-rw-r--r--examples/README10
-rw-r--r--examples/applet/simpleimpl.cpp17
-rw-r--r--examples/applet/simpleimpl.h5
4 files changed, 33 insertions, 3 deletions
diff --git a/examples/LICENSE b/examples/LICENSE
new file mode 100644
index 0000000..bb4d39f
--- a/dev/null
+++ b/examples/LICENSE
@@ -0,0 +1,4 @@
1(C) 2003 Holger 'zecke' Freyther
2
3Examples are part of the Opie Examples series. The example
4series may be used, distributed and modified without limitation.
diff --git a/examples/README b/examples/README
index 3003830..a84e8ee 100644
--- a/examples/README
+++ b/examples/README
@@ -2,27 +2,35 @@ Hi newbie,
2this directory contains a set of examples for various 2this directory contains a set of examples for various
3API you may want to use. The examples go from simple 3API you may want to use. The examples go from simple
4to harder and must be understand as an extension 4to harder and must be understand as an extension
5of the examples from Qt in your source package. 5of the examples from Qt in your source package.
6Be sure to look there at first and at their excelent 6Be sure to look there at first and at their excelent
7tutorials as well. 7tutorials as well.
8 8
9Note: that some files are found in apps/Examples to really 9Note: that some files are found in apps/Examples to really
10show how to include apps properly. 10show how to include apps properly.
11 11
12Note: to integrate your apps into the build 12Note: to integrate your apps into the build
13 make clean-configs 13 make clean-configs
14 put your application into a sourcedir 14 put your application into a sourcedir
15 edit $OPIEDIR/packages 15 edit $OPIEDIR/packages
16 make 16 make
17 17
18Naming Conventions:
19 Most of the time we prefix member variables with m_. This allows
20 us to see if a variable in a function is a member
21 or on the stack.
22 Function naming we use setFooBar() but fooBar() to get the
23 value. So please skip the get you're used from Java.
24 Other than that please try to avoid #ifdef and #defines
25 use const but we do not have any coding style convetions.
18 26
19 27
20 simple/ - Simple Widget with quit button 28 simple/ - Simple Widget with quit button
21 simple-icon - Simple Widget with loading resources and playing simple sound 29 simple-icon - Simple Widget with loading resources and playing simple sound
22 simple-main - Simple QMainWindow usage with toolbar and actions 30 simple-main - Simple QMainWindow usage with toolbar and actions
23 main-tab - QMainWindow with central tab widget 31 main-tab - QMainWindow with central tab widget
24 simple-pim - QMainWindow + QListView + PIM 32 simple-pim - QMainWindow + QListView + PIM + QCOP
25 big-pim - Usage of Opie PIM with BigScreen Extension 33 big-pim - Usage of Opie PIM with BigScreen Extension
26 34
27Compile by setting your environment (QTDIR, QMAKESPEC, PATH, OPIEDIR ) 35Compile by setting your environment (QTDIR, QMAKESPEC, PATH, OPIEDIR )
28qmake -o Makefile example.pro \ No newline at end of file 36qmake -o Makefile example.pro \ No newline at end of file
diff --git a/examples/applet/simpleimpl.cpp b/examples/applet/simpleimpl.cpp
index 981e0ab..82fc6e5 100644
--- a/examples/applet/simpleimpl.cpp
+++ b/examples/applet/simpleimpl.cpp
@@ -64,40 +64,53 @@ void SimpleApplet::mousePressEvent(QMouseEvent* ) {
64} 64}
65 65
66void SimpleApplet::paintEvent( QPaintEvent* ) { 66void SimpleApplet::paintEvent( QPaintEvent* ) {
67 QPainter p(this); 67 QPainter p(this);
68 68
69 /* simpy draw the pixmap from the start of this widget */ 69 /* simpy draw the pixmap from the start of this widget */
70 p.drawPixmap(0, 0, *m_pix ); 70 p.drawPixmap(0, 0, *m_pix );
71} 71}
72 72
73/* 73/*
74 * Here comes the implementation of the interface 74 * Here comes the implementation of the interface
75 */ 75 */
76SimpleAppletImpl::SimpleAppletImpl() { 76SimpleAppletImpl::SimpleAppletImpl() {
77} 77}
78/* needed cause until it is only pure virtual */ 78/* needed cause until it is only pure virtual */
79SimpleAppletImpl::~SimpleAppletImpl() { 79SimpleAppletImpl::~SimpleAppletImpl() {
80 /*
81 * we will delete our applets as well
82 * setAUtoDelete makes the QList free
83 * the objects behind the pointers
84 */
85 m_applets.setAutoDelete( true );
86 m_applets.clear();
80} 87}
81 88
82/* 89/*
83 * For the taskbar interface return a Widget 90 * For the taskbar interface return a Widget
84 */ 91 */
85QWidget* SimpleAppletImpl::applet( QWidget* parent ) { 92QWidget* SimpleAppletImpl::applet( QWidget* parent ) {
86 /* ownership has the parent */ 93 /*
87 return new SimpleApplet( parent ); 94 * There are problems with ownership. So we add
95 * our ownlist and clear this;
96 */
97 SimpleApplet* ap = new SimpleApplet( parent );
98 m_applets.append( ap );
99
100 return ap;
88} 101}
89 102
90/* 103/*
91 * A small hint where the Applet Should be displayed 104 * A small hint where the Applet Should be displayed
92 */ 105 */
93int SimpleAppletImpl::position()const { 106int SimpleAppletImpl::position()const {
94 return 1; 107 return 1;
95} 108}
96 109
97 110
98/* 111/*
99 * Now the important QUnkownInterface method without 112 * Now the important QUnkownInterface method without
100 * this one your applet won't load 113 * this one your applet won't load
101 * @param uuid The uuid of the interface 114 * @param uuid The uuid of the interface
102 * @param iface The pointer to the interface ptr 115 * @param iface The pointer to the interface ptr
103 */ 116 */
diff --git a/examples/applet/simpleimpl.h b/examples/applet/simpleimpl.h
index 8459c96..f58e2af 100644
--- a/examples/applet/simpleimpl.h
+++ b/examples/applet/simpleimpl.h
@@ -16,32 +16,34 @@
16 * Taskbar, Style, Email Client there are specefic Interfaces you 16 * Taskbar, Style, Email Client there are specefic Interfaces you
17 * need to implement. The interfaces inherits from QUnknownInterface and 17 * need to implement. The interfaces inherits from QUnknownInterface and
18 * you'll need inherit from the interface. 18 * you'll need inherit from the interface.
19 * As example we will use the Taskbar interface 19 * As example we will use the Taskbar interface
20 */ 20 */
21 21
22#ifndef SIMPLE_OPIE_EXAMPLE_APPLET_H 22#ifndef SIMPLE_OPIE_EXAMPLE_APPLET_H
23#define SIMPLE_OPIE_EXAMPLE_APPLET_H 23#define SIMPLE_OPIE_EXAMPLE_APPLET_H
24 24
25/* 25/*
26 * The taskbar applet interfaces wants us to implement position() and applet() 26 * The taskbar applet interfaces wants us to implement position() and applet()
27 * additionally we need to implement add(), release() and queryInterface for QUnknownInterface 27 * additionally we need to implement add(), release() and queryInterface for QUnknownInterface
28 * luckiy there is a macro for the reference counting 28 * luckiy there is a macro for the reference counting
29 * We provide an Implementation of the interface. 29 * We provide an Implementation of the interface.
30 */ 30 */
31#include <qwidget.h> 31#include <qwidget.h>
32#include <qlist.h>
33
32#include <qpe/taskbarappletinterface.h> 34#include <qpe/taskbarappletinterface.h>
33 35
34 36
35/* 37/*
36 * Because we only draw an Icon in a fixed width and height 38 * Because we only draw an Icon in a fixed width and height
37 * we declare and define SimpleApplet here and you could use QLabel 39 * we declare and define SimpleApplet here and you could use QLabel
38 * setPixmap or use QWidget and draw yourself. 40 * setPixmap or use QWidget and draw yourself.
39 * You might also want to reimplement mouse*Event to use some simple actions 41 * You might also want to reimplement mouse*Event to use some simple actions
40 */ 42 */
41class SimpleApplet : public QWidget { 43class SimpleApplet : public QWidget {
42 Q_OBJECT 44 Q_OBJECT
43public: 45public:
44 SimpleApplet(QWidget *parent); 46 SimpleApplet(QWidget *parent);
45 ~SimpleApplet(); 47 ~SimpleApplet();
46private: 48private:
47 void mousePressEvent( QMouseEvent* ); 49 void mousePressEvent( QMouseEvent* );
@@ -53,20 +55,23 @@ class SimpleAppletImpl : public TaskbarAppletInterface {
53public: 55public:
54 56
55 SimpleAppletImpl(); 57 SimpleAppletImpl();
56 virtual ~SimpleAppletImpl(); 58 virtual ~SimpleAppletImpl();
57 59
58 QRESULT queryInterface( const QUuid&, QUnknownInterface** ); 60 QRESULT queryInterface( const QUuid&, QUnknownInterface** );
59 61
60 QWidget *applet( QWidget* parent ); 62 QWidget *applet( QWidget* parent );
61 int position()const; 63 int position()const;
62 64
63 /* 65 /*
64 * macro for reference countint 66 * macro for reference countint
65 * if reference drops to zero 67 * if reference drops to zero
66 * delete this is called 68 * delete this is called
67 */ 69 */
68 Q_REFCOUNT 70 Q_REFCOUNT
71
72private:
73 QList<SimpleApplet> m_applets;
69}; 74};
70 75
71 76
72#endif 77#endif