File indexing completed on 2024-04-21 14:56:12
0001 #define QT3_SUPPORT 0002 #define QT3_SUPPORT_WARNINGS 0003 0004 #include <QWidget> 0005 #include <QString> 0006 #include <QMessageBox> 0007 #include <QTextEdit> 0008 #include <QPixmap> 0009 #include <QCursor> 0010 0011 #include <stdlib.h> 0012 0013 #include "kstatusbar.h" 0014 #include <QApplication> 0015 #include <kglobal.h> 0016 #include <kmainwindow.h> 0017 #include "kstatusbartest.h" 0018 0019 testWindow::testWindow(QWidget *) 0020 : KXmlGuiWindow(nullptr) 0021 { 0022 // Setup Menus 0023 menuBar = new KMenuBar(this); 0024 fileMenu = new QMenu; 0025 menuBar->addAction("&File"); 0026 QAction *action = fileMenu->addAction("&Exit"); 0027 action->setShortcut(Qt::ALT | Qt::Key_Q); 0028 0029 connect(action, SIGNAL(triggered()), qApp, SLOT(quit())); 0030 0031 statusbar = new KStatusBar(this); 0032 setStatusBar(statusbar); 0033 statusbar->insertItem("Zoom: XXXX", 0); 0034 statusbar->insertItem("XXX", 1); 0035 statusbar->insertItem("Line: XXXXX", 2); 0036 0037 statusbar->changeItem("Zoom: 100%", 0); 0038 statusbar->changeItem("INS", 1); 0039 insert = true; 0040 statusbar->changeItem("Line: 13567", 2); 0041 0042 connect(statusbar, SIGNAL(pressed(int)), this, SLOT(slotPress(int))); 0043 connect(statusbar, SIGNAL(released(int)), this, SLOT(slotClick(int))); 0044 0045 widget = new QTextEdit(this); 0046 0047 setCentralWidget(widget); 0048 0049 setCaption(KGlobal::caption()); 0050 0051 smenu = new QMenu; 0052 0053 smenu->addAction("50%"); 0054 smenu->addAction("75%"); 0055 smenu->addAction("100%"); 0056 smenu->addAction("150%"); 0057 smenu->addAction("200%"); 0058 smenu->addAction("400%"); 0059 smenu->addAction("oo%"); 0060 0061 connect(smenu, SIGNAL(triggered(QAction*)), this, SLOT(slotMenu(QAction*))); 0062 } 0063 0064 void testWindow::slotClick(int id) 0065 { 0066 switch (id) { 0067 case 0: 0068 break; 0069 0070 case 1: 0071 if (insert == true) { 0072 insert = false; 0073 statusbar->changeItem("OVR", 1); 0074 } else { 0075 insert = true; 0076 statusbar->changeItem("INS", 1); 0077 } 0078 break; 0079 0080 case 2: 0081 QMessageBox::information(nullptr, "Go to line", "Enter line number:", "where?"); 0082 statusbar->changeItem("16543", 2); 0083 break; 0084 } 0085 } 0086 0087 void testWindow::slotPress(int id) 0088 { 0089 if (id == 0) { 0090 smenu->popup(QCursor::pos()); // This popup should understand keys up and down 0091 } 0092 } 0093 0094 void testWindow::slotMenu(QAction *action) 0095 { 0096 QString s = "Zoom: "; 0097 s.append(action->text()); 0098 statusbar->changeItem(s, 0); 0099 } 0100 0101 testWindow::~testWindow() 0102 { 0103 // I would delete toolbars here, but there are none 0104 delete statusbar; 0105 } 0106 0107 int main(int argc, char *argv[]) 0108 { 0109 QApplication::setApplicationName("test"); 0110 QApplication *myApp = new QApplication(argc, argv); 0111 testWindow *test = new testWindow; 0112 0113 test->show(); 0114 test->resize(test->width(), test->height()); // I really really really dunno why it doesn't show 0115 int ret = myApp->exec(); 0116 0117 delete test; 0118 0119 return ret; 0120 } 0121 0122 #include "moc_kstatusbartest.cpp"