16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 27 package sun.awt.X11; 28 29 import java.awt.Frame; 30 31 import sun.awt.IconInfo; 32 import sun.util.logging.PlatformLogger; 33 34 final class XNETProtocol extends XProtocol implements XStateProtocol, XLayerProtocol 35 { 36 private final static PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XNETProtocol"); 37 private final static PlatformLogger iconLog = PlatformLogger.getLogger("sun.awt.X11.icon.XNETProtocol"); 38 private static PlatformLogger stateLog = PlatformLogger.getLogger("sun.awt.X11.states.XNETProtocol"); 39 40 /** 41 * XStateProtocol 42 */ 43 public boolean supportsState(int state) { 44 return doStateProtocol() ; // TODO - check for Frame constants 45 } 46 47 public void setState(XWindowPeer window, int state) { 48 if (log.isLoggable(PlatformLogger.Level.FINE)) { 49 log.fine("Setting state of " + window + " to " + state); 50 } 51 if (window.isShowing()) { 52 requestState(window, state); 53 } else { 54 setInitialState(window, state); 55 } 56 } 57 263 XAtom XA_NET_WM_STATE_MAXIMIZED_HORZ = XAtom.get("_NET_WM_STATE_MAXIMIZED_HORZ"); 264 XAtom XA_NET_WM_STATE_MAXIMIZED_VERT = XAtom.get("_NET_WM_STATE_MAXIMIZED_VERT"); 265 XAtom XA_NET_WM_STATE_SHADED = XAtom.get("_NET_WM_STATE_SHADED"); 266 XAtom XA_NET_WM_STATE_ABOVE = XAtom.get("_NET_WM_STATE_ABOVE"); 267 XAtom XA_NET_WM_STATE_MODAL = XAtom.get("_NET_WM_STATE_MODAL"); 268 XAtom XA_NET_WM_STATE_FULLSCREEN = XAtom.get("_NET_WM_STATE_FULLSCREEN"); 269 XAtom XA_NET_WM_STATE_BELOW = XAtom.get("_NET_WM_STATE_BELOW"); 270 XAtom XA_NET_WM_STATE_HIDDEN = XAtom.get("_NET_WM_STATE_HIDDEN"); 271 XAtom XA_NET_WM_STATE_SKIP_TASKBAR = XAtom.get("_NET_WM_STATE_SKIP_TASKBAR"); 272 XAtom XA_NET_WM_STATE_SKIP_PAGER = XAtom.get("_NET_WM_STATE_SKIP_PAGER"); 273 274 public final XAtom XA_NET_WM_WINDOW_TYPE = XAtom.get("_NET_WM_WINDOW_TYPE"); 275 public final XAtom XA_NET_WM_WINDOW_TYPE_NORMAL = XAtom.get("_NET_WM_WINDOW_TYPE_NORMAL"); 276 public final XAtom XA_NET_WM_WINDOW_TYPE_DIALOG = XAtom.get("_NET_WM_WINDOW_TYPE_DIALOG"); 277 public final XAtom XA_NET_WM_WINDOW_TYPE_UTILITY = XAtom.get("_NET_WM_WINDOW_TYPE_UTILITY"); 278 public final XAtom XA_NET_WM_WINDOW_TYPE_POPUP_MENU = XAtom.get("_NET_WM_WINDOW_TYPE_POPUP_MENU"); 279 280 XAtom XA_NET_WM_WINDOW_OPACITY = XAtom.get("_NET_WM_WINDOW_OPACITY"); 281 282 /* For _NET_WM_STATE ClientMessage requests */ 283 final static int _NET_WM_STATE_REMOVE =0; /* remove/unset property */ 284 final static int _NET_WM_STATE_ADD =1; /* add/set property */ 285 final static int _NET_WM_STATE_TOGGLE =2; /* toggle property */ 286 287 boolean supportChecked = false; 288 long NetWindow = 0; 289 void detect() { 290 if (supportChecked) { 291 // TODO: How about detecting WM-restart or exit? 292 return; 293 } 294 NetWindow = checkAnchor(XA_NET_SUPPORTING_WM_CHECK, XAtom.XA_WINDOW); 295 supportChecked = true; 296 if (log.isLoggable(PlatformLogger.Level.FINE)) { 297 log.fine("### " + this + " is active: " + (NetWindow != 0)); 298 } 299 } 300 301 boolean active() { 302 detect(); 303 return NetWindow != 0; 304 } 305 | 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 27 package sun.awt.X11; 28 29 import java.awt.Frame; 30 31 import sun.awt.IconInfo; 32 import sun.util.logging.PlatformLogger; 33 34 final class XNETProtocol extends XProtocol implements XStateProtocol, XLayerProtocol 35 { 36 private static final PlatformLogger log = PlatformLogger.getLogger("sun.awt.X11.XNETProtocol"); 37 private static final PlatformLogger iconLog = PlatformLogger.getLogger("sun.awt.X11.icon.XNETProtocol"); 38 private static PlatformLogger stateLog = PlatformLogger.getLogger("sun.awt.X11.states.XNETProtocol"); 39 40 /** 41 * XStateProtocol 42 */ 43 public boolean supportsState(int state) { 44 return doStateProtocol() ; // TODO - check for Frame constants 45 } 46 47 public void setState(XWindowPeer window, int state) { 48 if (log.isLoggable(PlatformLogger.Level.FINE)) { 49 log.fine("Setting state of " + window + " to " + state); 50 } 51 if (window.isShowing()) { 52 requestState(window, state); 53 } else { 54 setInitialState(window, state); 55 } 56 } 57 263 XAtom XA_NET_WM_STATE_MAXIMIZED_HORZ = XAtom.get("_NET_WM_STATE_MAXIMIZED_HORZ"); 264 XAtom XA_NET_WM_STATE_MAXIMIZED_VERT = XAtom.get("_NET_WM_STATE_MAXIMIZED_VERT"); 265 XAtom XA_NET_WM_STATE_SHADED = XAtom.get("_NET_WM_STATE_SHADED"); 266 XAtom XA_NET_WM_STATE_ABOVE = XAtom.get("_NET_WM_STATE_ABOVE"); 267 XAtom XA_NET_WM_STATE_MODAL = XAtom.get("_NET_WM_STATE_MODAL"); 268 XAtom XA_NET_WM_STATE_FULLSCREEN = XAtom.get("_NET_WM_STATE_FULLSCREEN"); 269 XAtom XA_NET_WM_STATE_BELOW = XAtom.get("_NET_WM_STATE_BELOW"); 270 XAtom XA_NET_WM_STATE_HIDDEN = XAtom.get("_NET_WM_STATE_HIDDEN"); 271 XAtom XA_NET_WM_STATE_SKIP_TASKBAR = XAtom.get("_NET_WM_STATE_SKIP_TASKBAR"); 272 XAtom XA_NET_WM_STATE_SKIP_PAGER = XAtom.get("_NET_WM_STATE_SKIP_PAGER"); 273 274 public final XAtom XA_NET_WM_WINDOW_TYPE = XAtom.get("_NET_WM_WINDOW_TYPE"); 275 public final XAtom XA_NET_WM_WINDOW_TYPE_NORMAL = XAtom.get("_NET_WM_WINDOW_TYPE_NORMAL"); 276 public final XAtom XA_NET_WM_WINDOW_TYPE_DIALOG = XAtom.get("_NET_WM_WINDOW_TYPE_DIALOG"); 277 public final XAtom XA_NET_WM_WINDOW_TYPE_UTILITY = XAtom.get("_NET_WM_WINDOW_TYPE_UTILITY"); 278 public final XAtom XA_NET_WM_WINDOW_TYPE_POPUP_MENU = XAtom.get("_NET_WM_WINDOW_TYPE_POPUP_MENU"); 279 280 XAtom XA_NET_WM_WINDOW_OPACITY = XAtom.get("_NET_WM_WINDOW_OPACITY"); 281 282 /* For _NET_WM_STATE ClientMessage requests */ 283 static final int _NET_WM_STATE_REMOVE =0; /* remove/unset property */ 284 static final int _NET_WM_STATE_ADD =1; /* add/set property */ 285 static final int _NET_WM_STATE_TOGGLE =2; /* toggle property */ 286 287 boolean supportChecked = false; 288 long NetWindow = 0; 289 void detect() { 290 if (supportChecked) { 291 // TODO: How about detecting WM-restart or exit? 292 return; 293 } 294 NetWindow = checkAnchor(XA_NET_SUPPORTING_WM_CHECK, XAtom.XA_WINDOW); 295 supportChecked = true; 296 if (log.isLoggable(PlatformLogger.Level.FINE)) { 297 log.fine("### " + this + " is active: " + (NetWindow != 0)); 298 } 299 } 300 301 boolean active() { 302 detect(); 303 return NetWindow != 0; 304 } 305 |