src/java.desktop/unix/classes/sun/awt/X11/XNETProtocol.java

Print this page




  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