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