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"