src/solaris/classes/sun/awt/X11/XEmbedHelper.java

Print this page




  65 
  66 //     A detail code is required for XEMBED_FOCUS_IN. The following values are valid:
  67 /* Details for  XEMBED_FOCUS_IN: */
  68     final static int XEMBED_FOCUS_CURRENT       =       0;
  69     final static int XEMBED_FOCUS_FIRST         =       1;
  70     final static int XEMBED_FOCUS_LAST  =       2;
  71 
  72 // Modifiers bits
  73     final static int XEMBED_MODIFIER_SHIFT   = (1 << 0);
  74     final static int XEMBED_MODIFIER_CONTROL = (1 << 1);
  75     final static int XEMBED_MODIFIER_ALT     = (1 << 2);
  76     final static int XEMBED_MODIFIER_SUPER   = (1 << 3);
  77     final static int XEMBED_MODIFIER_HYPER   = (1 << 4);
  78 
  79     static XAtom XEmbedInfo;
  80     static XAtom XEmbed;
  81 
  82     XEmbedHelper() {
  83         if (XEmbed == null) {
  84             XEmbed = XAtom.get("_XEMBED");
  85             if (xembedLog.isLoggable(PlatformLogger.FINER)) xembedLog.finer("Created atom " + XEmbed.toString());


  86         }
  87         if (XEmbedInfo == null) {
  88             XEmbedInfo = XAtom.get("_XEMBED_INFO");
  89             if (xembedLog.isLoggable(PlatformLogger.FINER)) xembedLog.finer("Created atom " + XEmbedInfo.toString());


  90         }
  91     }
  92 
  93     void sendMessage(long window, int message) {
  94         sendMessage(window, message, 0, 0, 0);
  95     }
  96     void sendMessage(long window, int message, long detail, long data1, long data2) {
  97         XClientMessageEvent msg = new XClientMessageEvent();
  98         msg.set_type((int)XConstants.ClientMessage);
  99         msg.set_window(window);
 100         msg.set_message_type(XEmbed.getAtom());
 101         msg.set_format(32);
 102         msg.set_data(0, XToolkit.getCurrentServerTime());
 103         msg.set_data(1, message);
 104         msg.set_data(2, detail);
 105         msg.set_data(3, data1);
 106         msg.set_data(4, data2);
 107         XToolkit.awtLock();
 108         try {
 109             if (xembedLog.isLoggable(PlatformLogger.FINE)) xembedLog.fine("Sending " + XEmbedMessageToString(msg));


 110             XlibWrapper.XSendEvent(XToolkit.getDisplay(), window, false, XConstants.NoEventMask, msg.pData);
 111         }
 112         finally {
 113             XToolkit.awtUnlock();
 114         }
 115         msg.dispose();
 116     }
 117 
 118     static String msgidToString(int msg_id) {
 119         switch (msg_id) {
 120           case XEMBED_EMBEDDED_NOTIFY:
 121               return "XEMBED_EMBEDDED_NOTIFY";
 122           case XEMBED_WINDOW_ACTIVATE:
 123               return "XEMBED_WINDOW_ACTIVATE";
 124           case XEMBED_WINDOW_DEACTIVATE:
 125               return "XEMBED_WINDOW_DEACTIVATE";
 126           case XEMBED_FOCUS_IN:
 127               return "XEMBED_FOCUS_IN";
 128           case XEMBED_FOCUS_OUT:
 129               return "XEMBED_FOCUS_OUT";




  65 
  66 //     A detail code is required for XEMBED_FOCUS_IN. The following values are valid:
  67 /* Details for  XEMBED_FOCUS_IN: */
  68     final static int XEMBED_FOCUS_CURRENT       =       0;
  69     final static int XEMBED_FOCUS_FIRST         =       1;
  70     final static int XEMBED_FOCUS_LAST  =       2;
  71 
  72 // Modifiers bits
  73     final static int XEMBED_MODIFIER_SHIFT   = (1 << 0);
  74     final static int XEMBED_MODIFIER_CONTROL = (1 << 1);
  75     final static int XEMBED_MODIFIER_ALT     = (1 << 2);
  76     final static int XEMBED_MODIFIER_SUPER   = (1 << 3);
  77     final static int XEMBED_MODIFIER_HYPER   = (1 << 4);
  78 
  79     static XAtom XEmbedInfo;
  80     static XAtom XEmbed;
  81 
  82     XEmbedHelper() {
  83         if (XEmbed == null) {
  84             XEmbed = XAtom.get("_XEMBED");
  85             if (xembedLog.isLoggable(PlatformLogger.FINER)) {
  86                 xembedLog.finer("Created atom " + XEmbed.toString());
  87             }
  88         }
  89         if (XEmbedInfo == null) {
  90             XEmbedInfo = XAtom.get("_XEMBED_INFO");
  91             if (xembedLog.isLoggable(PlatformLogger.FINER)) {
  92                 xembedLog.finer("Created atom " + XEmbedInfo.toString());
  93             }
  94         }
  95     }
  96 
  97     void sendMessage(long window, int message) {
  98         sendMessage(window, message, 0, 0, 0);
  99     }
 100     void sendMessage(long window, int message, long detail, long data1, long data2) {
 101         XClientMessageEvent msg = new XClientMessageEvent();
 102         msg.set_type((int)XConstants.ClientMessage);
 103         msg.set_window(window);
 104         msg.set_message_type(XEmbed.getAtom());
 105         msg.set_format(32);
 106         msg.set_data(0, XToolkit.getCurrentServerTime());
 107         msg.set_data(1, message);
 108         msg.set_data(2, detail);
 109         msg.set_data(3, data1);
 110         msg.set_data(4, data2);
 111         XToolkit.awtLock();
 112         try {
 113             if (xembedLog.isLoggable(PlatformLogger.FINE)) {
 114                 xembedLog.fine("Sending " + XEmbedMessageToString(msg));
 115             }
 116             XlibWrapper.XSendEvent(XToolkit.getDisplay(), window, false, XConstants.NoEventMask, msg.pData);
 117         }
 118         finally {
 119             XToolkit.awtUnlock();
 120         }
 121         msg.dispose();
 122     }
 123 
 124     static String msgidToString(int msg_id) {
 125         switch (msg_id) {
 126           case XEMBED_EMBEDDED_NOTIFY:
 127               return "XEMBED_EMBEDDED_NOTIFY";
 128           case XEMBED_WINDOW_ACTIVATE:
 129               return "XEMBED_WINDOW_ACTIVATE";
 130           case XEMBED_WINDOW_DEACTIVATE:
 131               return "XEMBED_WINDOW_DEACTIVATE";
 132           case XEMBED_FOCUS_IN:
 133               return "XEMBED_FOCUS_IN";
 134           case XEMBED_FOCUS_OUT:
 135               return "XEMBED_FOCUS_OUT";