1 #ifndef CALLBACKEVENT_H
2 #define CALLBACKEVENT_H
3 
4 #include <jni.h>
5 #include <QWidget>
6 #include <QEvent>
7 #include <QColor>
8 #include <QCursor>
9 #include <QFont>
10 #include <QPoint>
11 #include <QWidget>
12 #include <QSize>
13 
14 #include "mainthreadinterface.h"
15 
16 class AWTInitEvent : public AWTEvent {
17 
18  private:
19   JavaVM* vm;
20   jobject target;
21 
22  public:
23   AWTInitEvent(JNIEnv *env, jobject obj);
24   void runEvent();
25 };
26 
27 class AWTDestroyEvent : public AWTEvent {
28 
29  private:
30   QWidget *widget;
31 
32  public:
AWTDestroyEvent(QWidget * w)33   AWTDestroyEvent(QWidget *w)
34     {
35       widget = w;
36     }
37 
runEvent()38   void runEvent()
39   {
40     if( widget != NULL )
41       delete widget;
42   }
43 };
44 
45 class AWTFontEvent : public AWTEvent {
46 
47  private:
48   QWidget *widget;
49   QFont *font;
50 
51  public:
AWTFontEvent(QWidget * w,QFont * f)52   AWTFontEvent(QWidget *w, QFont *f)
53     {
54       widget = w;
55       font = f;
56     }
57 
runEvent()58   void runEvent()
59   {
60     widget->setFont( *font );
61   }
62 };
63 
64 class AWTUpdateEvent : public AWTEvent {
65 
66  private:
67   QWidget *widget;
68   int x,y,w,h;
69   bool updateAll;
70 
71  public:
AWTUpdateEvent(QWidget * src,bool all,int x0,int y0,int w0,int h0)72   AWTUpdateEvent(QWidget *src, bool all, int x0, int y0, int w0, int h0)
73     {
74       widget = src;
75       updateAll = all;
76       x = x0; y = y0; w = w0; h = h0;
77     }
78 
runEvent()79   void runEvent()
80   {
81     if(updateAll)
82       widget->update();
83     else
84       widget->update(x,y,w,h);
85   }
86 };
87 
88 class AWTShowEvent : public AWTEvent {
89 
90  private:
91   QWidget *widget;
92   bool visible;
93 
94  public:
95   AWTShowEvent(QWidget *w, bool v);
96   void runEvent();
97 };
98 
99 class AWTEnableEvent : public AWTEvent {
100 
101  private:
102   QWidget *widget;
103   bool enabled;
104 
105  public:
106   AWTEnableEvent(QWidget *w, bool v);
107   void runEvent();
108 };
109 
110 class AWTCursorEvent : public AWTEvent {
111 
112  private:
113   QWidget *widget;
114   Qt::CursorShape shape;
115 
116  public:
117   AWTCursorEvent(QWidget *w,  Qt::CursorShape s);
118   void runEvent();
119 };
120 
121 class AWTResizeEvent : public AWTEvent {
122 
123  private:
124   QWidget *widget;
125   int x, y, w, h;
126 
127  public:
128   AWTResizeEvent(QWidget *wid, int x0, int y0, int w0, int h0);
129   void runEvent();
130 };
131 
132 class AWTBackgroundEvent : public AWTEvent {
133 
134  private:
135   QWidget *widget;
136   bool foreground;
137   QColor *color;
138 
139  public:
140   AWTBackgroundEvent(QWidget *wid, bool fg, QColor *clr);
141   void runEvent();
142 };
143 
144 class AWTReqFocusEvent : public AWTEvent {
145 
146  private:
147   QWidget *widget;
148 
149  public:
AWTReqFocusEvent(QWidget * w)150   AWTReqFocusEvent(QWidget *w) : AWTEvent()
151     {
152       widget = w;
153     }
runEvent()154   void runEvent()
155   {
156     widget->setFocus();
157   }
158 };
159 
160 class AWTGetOriginEvent : public AWTEvent {
161 
162  private:
163   JavaVM* vm;
164   jobject target;
165   QWidget *widget;
166 
167  public:
168   AWTGetOriginEvent(QWidget *w, JNIEnv *env, jobject obj);
169   void runEvent();
170 };
171 
172 class GetSizeEvent : public AWTEvent {
173 
174  private:
175   JavaVM* vm;
176   jobject target;
177   QWidget *widget;
178   bool pref;
179 
180  public:
181   GetSizeEvent(QWidget *w, JNIEnv *env, jobject obj, bool p);
182   void runEvent();
183 };
184 
185 class AWTReparent : public AWTEvent {
186 
187  private:
188   QWidget *widget;
189   QWidget *parent;
190 
191  public:
AWTReparent(QWidget * w,QWidget * p)192   AWTReparent(QWidget *w, QWidget *p) : AWTEvent()
193     {
194       widget = w;
195       parent = p;
196     }
runEvent()197   void runEvent()
198   {
199     widget->setParent( parent );
200   }
201 };
202 
203 #endif
204