summaryrefslogtreecommitdiff
path: root/libopie/big-screen/example/owidgetstack_example.cpp
Unidiff
Diffstat (limited to 'libopie/big-screen/example/owidgetstack_example.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/big-screen/example/owidgetstack_example.cpp131
1 files changed, 131 insertions, 0 deletions
diff --git a/libopie/big-screen/example/owidgetstack_example.cpp b/libopie/big-screen/example/owidgetstack_example.cpp
new file mode 100644
index 0000000..a6b8201
--- a/dev/null
+++ b/libopie/big-screen/example/owidgetstack_example.cpp
@@ -0,0 +1,131 @@
1/*
2 * You may use, modify and distribute this example without any limitation
3 */
4
5#include <qaction.h>
6#include <qtoolbar.h>
7#include <qpopupmenu.h>
8#include <qmenubar.h>
9#include <qlayout.h>
10#include <qlabel.h>
11#include <qpushbutton.h>
12#include <qsignalmapper.h>
13
14#include <qpe/resource.h>
15
16#include "../owidgetstack.h"
17
18#include "owidgetstack_example.h"
19
20#include <qpe/qpeapplication.h>
21#include <opie/oapplicationfactory.h>
22
23OPIE_EXPORT_APP( OApplicationFactory<StackExample> )
24
25StackExample::StackExample( QWidget* parent, const char* name, WFlags fl )
26 : QMainWindow( parent, name, fl )
27{
28 m_stack = new OWidgetStack( this );
29 setCentralWidget( m_stack );
30
31 /* nice Signal Mapper ;) */
32 QSignalMapper *sm = new QSignalMapper(this);
33 connect(sm, SIGNAL(mapped(int) ), m_stack, SLOT(raiseWidget(int)) );
34
35 /* toolbar first but this should be known from the other examples */
36 setToolBarsMovable( false );
37
38 /* only a menubar here */
39 QToolBar* holder = new QToolBar( this );
40 holder->setHorizontalStretchable( true );
41
42 QMenuBar *bar = new QMenuBar( holder );
43 QPopupMenu *menu = new QPopupMenu( this );
44
45 QAction* a = new QAction( tr("Show MainWidget"), Resource::loadPixmap("zoom"),
46 QString::null, 0, this, 0 );
47 sm->setMapping(a, 1 );
48 connect(a, SIGNAL(activated() ),
49 sm, SLOT(map() ) );
50 a->addTo( menu );
51
52 a = new QAction( tr("Show Details Small"), Resource::loadPixmap("zoom"),
53 QString::null, 0, this, 0 );
54 sm->setMapping(a, 2 );
55 connect(a, SIGNAL(activated() ),
56 sm, SLOT(map() ) );
57 a->addTo( menu );
58
59 a = new QAction( tr("Show Details More"), Resource::loadPixmap("zoom"),
60 QString::null, 0, this, 0 );
61 sm->setMapping(a, 3 );
62 connect(a, SIGNAL(activated() ),
63 sm, SLOT(map() ) );
64 a->addTo( menu );
65
66 a = new QAction( tr("Show Details All"), Resource::loadPixmap("zoom"),
67 QString::null, 0, this, 0 );
68 sm->setMapping(a, 4 );
69 connect(a, SIGNAL(activated() ),
70 sm, SLOT(map() ) );
71
72 bar->insertItem( tr("Actions"), menu );
73
74 /* now the gui */
75
76 /* first widget, main widget */
77 QWidget * wid = new QWidget( m_stack );
78 QGridLayout *grid = new QGridLayout(wid, 2, 2 );
79
80 QPushButton *btn = new QPushButton( tr("Show Details Small"), wid, "details1" );
81 sm->setMapping(btn, 2 );
82 connect(btn, SIGNAL(clicked()), sm, SLOT(map() ) );
83 grid->addWidget( btn, 0, 0 );
84
85 btn = new QPushButton( tr("Show Details Medium"), wid, "details2");
86 sm->setMapping(btn, 3 );
87 connect(btn, SIGNAL(clicked()), sm, SLOT(map() ) );
88 grid->addWidget( btn, 0, 1 );
89
90 btn = new QPushButton( tr("Show Details All"), wid, "details3");
91 sm->setMapping(btn, 4 );
92 connect(btn, SIGNAL(clicked()), sm, SLOT(map() ) );
93 grid->addWidget( btn, 1, 1 );
94
95 m_stack->addWidget( wid, 1 );
96 m_main = wid;
97
98 QLabel *lbl = new QLabel(m_stack );
99 lbl->setText(tr("Only small Details are shown here. Määh") );
100 m_stack->addWidget( lbl, 2 );
101
102 lbl = new QLabel( m_stack );
103 lbl->setText( tr("Some more details....Wo ist das Schaf?") );
104 m_stack->addWidget( lbl, 3 );
105
106 lbl = new QLabel( m_stack );
107 lbl->setText( tr("<qt>Ne nicht in Bayerisch Gmain sondern in Berlin<br>Vermiss und meine Augen werden nicht eckig, da mein Bildschirm abgerundet ist<br>Es lebe Hamburg Süd,weiss du, verstehst du? ;)<br>Susi ist dOOf, es lebe die Ofenecke...", "hard to translate that") );
108 m_stack->addWidget( lbl, 4 );
109
110
111 /* THE signal mapper does all the magic */
112 m_stack->raiseWidget( m_main );
113}
114
115
116StackExample::~StackExample() {
117
118}
119
120
121
122void StackExample::closeEvent( QCloseEvent* ev) {
123 /* if the close even came when we displayed a details */
124 if (m_stack->visibleWidget() != m_main ) {
125 m_stack->raiseWidget( m_main );
126 ev->ignore();
127 return;
128 }
129
130 ev->accept();
131}