Sistema l'errore da me commesso in fase di conversione...
[bertos.git] / emul / emulkbd.h
1 /**
2  * \file
3  * <!--
4  * Copyright 2006 Develer S.r.l. (http://www.develer.com/)
5  * Copyright 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 QT-based widget for leyboard emulation (interface)
14  */
15
16 #if !defined(EMULKBD_H)
17 #define EMULKBD_H
18
19 #if defined (_MSC_VER) && (_MSC_VER > 1000)
20 #pragma once
21 #endif // _MSC_VER > 1000
22
23 #include <QtGui/QFrame>
24
25 // fwd decl
26 class QGridLayout;
27 class EmulKey;
28
29 class EmulKbd : public QFrame
30 {
31         Q_OBJECT
32
33 // Data members
34 protected:
35         QGridLayout *layout;
36         int frame_width;
37         int active_row;
38
39 // Construction
40 public:
41         EmulKbd(QWidget *parent = 0, Qt::WFlags f = 0);
42         virtual ~EmulKbd();
43
44 // Public methods
45         void addKey(const char *label, int keycode, int row, int col, int matrix_row = -1, int matrix_col = -1);
46         void setRow(int row);
47         int readCols(void);
48
49 // Protected methods
50 protected:
51         void setKey(int row, int col, bool on);
52
53 // Base class overrides
54 protected:
55         virtual QSizePolicy sizePolicy() const;
56         virtual void resizeEvent(QResizeEvent *e);
57         virtual bool event(QEvent *e);
58
59 // Friends
60         friend class EmulKey;
61 };
62
63
64 // Private helper class for EmulKbd
65 // NOTE: with protected inheritance, dynamic_cast<> does not work (gcc 2.96)
66 #include <QtGui/qpushbutton.h>
67 class EmulKey : public QPushButton
68 {
69         Q_OBJECT
70
71 // Data members
72 protected:
73         int row, col;
74         int keycode;
75
76 // Construction
77 public:
78         EmulKey(EmulKbd *parent, const char *label, int keycode, int _row, int _col);
79         virtual ~EmulKey();
80
81 // superclass overrides
82         void setDown(bool enable);
83
84 protected slots:
85         void keyPressed(void);
86         void keyReleased(void);
87
88 // Friends
89 public:
90         friend class EmulKbd;
91 };
92
93 #endif // !defined(EMULKBD_H)
94