1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
#include <qpopupmenu.h>
#include <qwidget.h>
#include <qstring.h>
#include <qmessagebox.h>
#include <qmultilineedit.h>
#include <qkeycode.h>
#include <qpixmap.h>
#include <qcursor.h>
#include <stdlib.h>
#include "kstatusbar.h"
#include <kapplication.h>
#include <kmainwindow.h>
#include <kmenubar.h>
#include "kstatusbartest.h"
testWindow::testWindow (QWidget *, const char *name)
: KMainWindow (0, name)
{
// Setup Menus
menuBar = new KMenuBar (this);
fileMenu = new QPopupMenu;
menuBar->insertItem ("&File", fileMenu);
fileMenu->insertItem ("&Exit", KApplication::kApplication(),
SLOT( quit() ), ALT + Key_Q );
statusbar = new KStatusBar (this);
statusbar->insertItem("Zoom: XXXX", 0);
statusbar->insertItem("XXX", 1);
statusbar->insertItem("Line: XXXXX", 2);
statusbar->changeItem("Zoom: 100%", 0);
statusbar->changeItem("INS", 1);
insert = true;
statusbar->changeItem("Line: 13567", 2);
connect (statusbar, SIGNAL(pressed(int)), this, SLOT(slotPress(int)));
connect (statusbar, SIGNAL(released(int)), this, SLOT(slotClick(int)));
widget = new QMultiLineEdit (this);
setCentralWidget(widget);
setCaption( KApplication::kApplication()->caption() );
smenu = new QPopupMenu;
smenu->insertItem("50%");
smenu->insertItem("75%");
smenu->insertItem("100%");
smenu->insertItem("150%");
smenu->insertItem("200%");
smenu->insertItem("400%");
smenu->insertItem("oo%");
connect (smenu, SIGNAL(activated(int)), this, SLOT(slotMenu(int)));
}
void testWindow::slotClick(int id)
{
switch (id)
{
case 0:
break;
case 1:
if (insert == true)
{
insert = false;
statusbar->changeItem("OVR", 1);
}
else
{
insert = true;
statusbar->changeItem("INS", 1);
}
break;
case 2:
QMessageBox::information(0, "Go to line", "Enter line number:", "where?");
statusbar->changeItem("16543", 2);
break;
}
}
void testWindow::slotPress(int id)
{
if (id == 0)
smenu->popup(QCursor::pos()); // This popup should understand keys up and down
}
void testWindow::slotMenu(int id)
{
QString s = "Zoom: ";
s.append (smenu->text(id));
statusbar->changeItem(s,0);
}
testWindow::~testWindow ()
{
// I would delete toolbars here, but there are none
delete statusbar;
}
int main( int argc, char *argv[] )
{
KApplication *myApp = new KApplication( argc, argv, "KStatusBarTest" );
testWindow *test = new testWindow;
myApp->setMainWidget(test);
test->show();
test->resize(test->width(), test->height()); // I really really really dunno why it doesn't show
int ret = myApp->exec();
delete test;
return ret;
}
#include "kstatusbartest.moc"
|