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