Add appconfig.h for demo app.
[bertos.git] / emul / emulwin.cpp
index f03fc06c49aa3343eb656f8b750e263f6c961b7e..09b4687b58b361ab6821701957adba488bda20ef 100755 (executable)
 
 /*#*
  *#* $Log$
+ *#* Revision 1.4  2006/02/20 02:00:39  bernie
+ *#* Port to Qt 4.1.
+ *#*
+ *#* Revision 1.3  2006/02/15 09:11:17  bernie
+ *#* Add keyboard emulator.
+ *#*
  *#* Revision 1.2  2006/01/16 03:51:51  bernie
  *#* Fix boilerplate.
  *#*
 
 #include <drv/lcd_gfx_qt.h>
 #include <emul/emul.h>
+#include <emul/emulkbd.h>
 
 #include <cassert>
-#include <qlayout.h>
-#include <qlabel.h>
-#include <qslider.h>
-#include <qcheckbox.h>
-#include <qpopupmenu.h>
-#include <qmenubar.h>
-#include <qmessagebox.h>
-#include <qdatetime.h>
-#include <qtimer.h>
-#include <qapplication.h>
-
-EmulWin::EmulWin(Emulator *e) : QMainWindow(0, "SarfEmul", WDestructiveClose)
+
+#if _QT < 4
+       #include <qlayout.h>
+       #include <qlabel.h>
+       #include <qslider.h>
+       #include <qcheckbox.h>
+       #include <qmenubar.h>
+       #include <qmessagebox.h>
+       #include <qdatetime.h>
+       #include <qtimer.h>
+       #include <qapplication.h>
+       #include <qpopupmenu.h>
+       #include <qevent.h>
+#else
+       #include <QtGui/QLayout>
+       #include <QtGui/QLabel>
+       #include <QtGui/QSlider>
+       #include <QtGui/QCheckBox>
+       #include <QtGui/QMenuBar>
+       #include <QtGui/QMessageBox>
+       #include <QtCore/QDateTime>
+       #include <QtCore/QTimer>
+       #include <QtGui/QApplication>
+       #include <QtGui/QCloseEvent>
+       //#include <Qt3Support/q3popupmenu.h>
+       //#define QPopupMenu Q3PopupMenu
+       #define QPopupMenu QMenu
+       using namespace Qt;
+#endif
+
+EmulWin::EmulWin(Emulator *e) : QMainWindow(0, "DevLibEmul",
+       #if _QT < 4
+               Qt::WDestructiveClose
+       #else
+               0
+       #endif
+)
 {
+       #if _QT >= 4
+               setAttribute(Qt::WA_DeleteOnClose);
+       #endif
+
        // "File" menu
        QPopupMenu * file = new QPopupMenu(this);
        file->insertItem("&Quit", static_cast<QObject *>(e->emulApp), SLOT(closeAllWindows()), CTRL+Key_Q);
@@ -69,6 +105,16 @@ EmulWin::EmulWin(Emulator *e) : QMainWindow(0, "SarfEmul", WDestructiveClose)
                // LCD
                QHBoxLayout *lay_lcd = new QHBoxLayout(box_right, 4);
                lay_lcd->addWidget(e->emulLCD = new EmulLCD(central));
+
+               // Keyboard
+               QHBoxLayout *lay_kbd = new QHBoxLayout(box_right, 4);
+                       lay_kbd->addWidget(e->emulKbd = new EmulKbd(central));
+
+       // Setup keyboard: Label   Keycode     Row Col MRow MCol
+       e->emulKbd->addKey("^",    Key_Up,     0,  0,  0,   0);
+       e->emulKbd->addKey("v",    Key_Down,   1,  0,  0,   1);
+       e->emulKbd->addKey("OK",   Key_Return, 0,  1,  0,   2);
+       e->emulKbd->addKey("ESC",  Key_Escape, 1,  1,  0,   3);
 }