/** * @see #wm_protocols() */ public bool wm_protocol (String name) { Atom protocol = (Atom) Atom.intern (display, name); Enum list = wm_protocols (); while (list.more ()) if (list.next4 () == protocol.id) return true; return false; }
/** * @see #property(bool, Atom, Atom, int, int) */ public WMState wm_state () { Atom wm_state = (Atom) Atom.intern (display, "WM_STATE"); PropertyReply pi = property (false, wm_state, wm_state, 0, 2); if (pi.format () != 32 || pi.type_id () != wm_state.id || pi.Length() != 2) return null; return new WMState (display, pi); }
public Enum wm_protocols () { Atom wm_protocols = (Atom) Atom.intern (display, "WM_PROTOCOLS"); PropertyReply pi = property (false, wm_protocols, Atom.ATOM, 0, MAX_WM_LENGTH/4); if (pi.byte_after () != 0) throw new Exception ("Number of WM protocol exceeds " + MAX_WM_LENGTH/4); return new ProtocolsEnum (display, pi, 32, pi.Length()); }
/** * @see <a href="XIconifyWindow.html">XIconifyWindow</a> * @see <a href="icccm.html#4.1.4">ICCCM Section 4.1.4</a> * @see #send_event(bool, int, Event) */ public void iconify () { Atom wm_change_state = (Atom) Atom.intern (display, "WM_CHANGE_STATE"); ClientMessage evt = new ClientMessage (display); evt.set_format (32); evt.set_window (this); evt.set_type (wm_change_state); evt.set_wm_data (WMHints.ICONIC); send_event (false, Event.SUBSTRUCTURE_REDIRECT_MASK | Event.SUBSTRUCTURE_NOTIFY_MASK, evt); }
public void delete () { if (!(wm_protocol ("WM_DELETE_WINDOW"))) return; ClientMessage evt = new ClientMessage (display); Atom wm_protocols = (Atom) Atom.intern (display, "WM_PROTOCOLS"); Atom wm_delete_window = (Atom) Atom.intern (display, "WM_DELETE_WINDOW"); evt.set_format (32); evt.set_window (this); evt.set_type (wm_protocols); evt.set_wm_data (wm_delete_window.id); evt.set_wm_time (Display.CURRENT_TIME); send_event (false, Event.NO_EVENT_MASK, evt); }
public override Object next () { return Atom.intern (display, next4 ()); }
/** * @see #change_property(int, int, Atom, Atom, int, Object, int, int) */ public void set_wm_state (int state, Window icon) { Atom wm_state = (Atom) Atom.intern (display, "WM_STATE"); int [] data = {state, icon.id}; change_property (REPLACE, 2, wm_state, wm_state, 32, data, 0, 32); }
/** * @see #change_property(Atom, Atom, int) */ public void set_wm_protocol (String name) { Atom wm_protocols = (Atom) Atom.intern (display, "WM_PROTOCOLS"); Atom protocol = (Atom) Atom.intern (display, name); change_property (wm_protocols, Atom.ATOM, protocol.id); }