javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/Shell.java
--- a/javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/Shell.java Wed Jun 23 18:07:10 2010 +0300
+++ b/javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/qt/org/eclipse/swt/widgets/Shell.java Tue Jul 06 14:10:26 2010 +0300
@@ -12,11 +12,14 @@
*******************************************************************************/
package org.eclipse.swt.widgets;
+import java.util.Vector;
+
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ShellListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.internal.qt.OS;
+import org.eclipse.swt.internal.qt.SymbianWindowVisibilityListener;
import org.eclipse.swt.internal.qt.WidgetState;
import org.eclipse.swt.internal.qt.graphics.WindowSurface;
@@ -148,6 +151,8 @@
*/
boolean suppressResizeEvent;
+private Vector winVisibilityListeners = new Vector();
+
/**
* Constructs a new instance of this class. This is equivalent
* to calling <code>Shell((Display) null)</code>.
@@ -1148,6 +1153,14 @@
return true;
}
+void qt_swt_event_symbianWindowHide() {
+ notifySymbianWindowVisibilityChange(false);
+}
+
+void qt_swt_event_symbianWindowShow() {
+ notifySymbianWindowVisibilityChange(true);
+}
+
public Rectangle internal_getDefaultBounds() {
return defBounds;
}
@@ -1168,4 +1181,21 @@
return windowSurface;
}
+void addSymbianWindowVisibilityListener_pp(SymbianWindowVisibilityListener listener) {
+ if (!winVisibilityListeners.contains(listener))
+ winVisibilityListeners.addElement(listener);
}
+
+void removeSymbianWindowVisibilityListener_pp(SymbianWindowVisibilityListener listener) {
+ if (winVisibilityListeners.contains(listener))
+ winVisibilityListeners.removeElement(listener);
+}
+
+void notifySymbianWindowVisibilityChange(boolean visible) {
+ int count = winVisibilityListeners.size();
+ for (int i = 0; i < count; i++) {
+ SymbianWindowVisibilityListener listener = (SymbianWindowVisibilityListener)(winVisibilityListeners.elementAt(i));
+ listener.handleSymbianWindowVisibilityChange(this, visible);
+ }
+}
+}