Пример #1
0
  /**
   * @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;
  }
Пример #2
0
  /** 
   * @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);
  }
Пример #3
0
  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());
  }
Пример #4
0
  /**
   * @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); 
  }
Пример #5
0
  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);
  }
Пример #6
0
 public override Object next () {
   return Atom.intern (display, next4 ());
 }
Пример #7
0
  /** 
   * @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);
  }
Пример #8
0
  /** 
   * @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);
  }