Add emulator skeleton.
[bertos.git] / emul / emulwin.cpp
1 /**
2  * \file
3  * <!--
4  * Copyright 2006 Develer S.r.l. (http://www.develer.com/)
5  * Copyright 2000, 2001 Bernardo Innocenti <bernie@codewiz.org>
6  * All Rights Reserved.
7  * -->
8  *
9  * \version $Id$
10  *
11  * \author Bernardo Innocenti <bernie@develer.com>
12  *
13  * \brief Main Qt window for embedded applications emulator (implementation)
14  */
15
16 /*#*
17  *#* $Log$
18  *#* Revision 1.1  2006/01/16 03:37:12  bernie
19  *#* Add emulator skeleton.
20  *#*
21  *#*/
22
23 #include "emulwin.h"
24
25 #include <drv/lcd_gfx_qt.h>
26 #include <emul/emul.h>
27
28 #include <cassert>
29 #include <qlayout.h>
30 #include <qlabel.h>
31 #include <qslider.h>
32 #include <qcheckbox.h>
33 #include <qpopupmenu.h>
34 #include <qmenubar.h>
35 #include <qmessagebox.h>
36 #include <qdatetime.h>
37 #include <qtimer.h>
38 #include <qapplication.h>
39
40 EmulWin::EmulWin(Emulator *e) : QMainWindow(0, "SarfEmul", WDestructiveClose)
41 {
42         // "File" menu
43         QPopupMenu * file = new QPopupMenu(this);
44         file->insertItem("&Quit", static_cast<QObject *>(e->emulApp), SLOT(closeAllWindows()), CTRL+Key_Q);
45
46         // "Help" menu
47         QPopupMenu * help = new QPopupMenu(this);
48         help->insertItem("&About", this, SLOT(about()), Key_F1);
49
50         // Menu bar
51         QMenuBar * menu = new QMenuBar(this);
52         menu->insertItem("&File", file);
53         menu->insertSeparator();
54         menu->insertItem("&Help", help);
55
56         // Make a central widget to contain the other widgets
57         QWidget *central = new QWidget(this);
58         setCentralWidget(central);
59
60         // Create a layout to position the widgets
61         QHBoxLayout *box_main = new QHBoxLayout(central, 4);
62
63         // Main layout
64         QVBoxLayout *box_right = new QVBoxLayout(box_main, 4);
65
66                 // LCD
67                 QHBoxLayout *lay_lcd = new QHBoxLayout(box_right, 4);
68                 lay_lcd->addWidget(e->emulLCD = new EmulLCD(central));
69 }
70
71
72 EmulWin::~EmulWin()
73 {
74         emul->quit();
75 }
76
77
78 void EmulWin::closeEvent(QCloseEvent *ce)
79 {
80         ce->accept();
81 }
82
83
84 void EmulWin::about()
85 {
86     QMessageBox::about(this,
87                 "Embedded Application Emulator",
88                 "Version 0.1\n"
89                 "Copyright 2006 Develer S.r.l. (http://www.develer.com/)\n"
90                 "Copyright 2001, 2002, 2003, 2005 Bernardo Innocenti <bernie@codewiz.org>\n"
91                 "All rights reserved."
92         );
93 }
94
95 #include "emulwin_moc.cpp"