diff -r f40128debb5d -r e0d6e9bd3ca7 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 Shell((Display) null). @@ -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); + } +} +}