コード例 #1
0
ファイル: Picture.cs プロジェクト: jbnivoit/projects
     // render opcode 26 - fill rectangles
     /**
        * @see <a href="XRenderFillRectangle.html">XRenderFillRectangle</a>
        */
     public void fill_rectangle(int op, Color color, int x, int y, 
 int width, int height)
     {
         Request request = new Request (display, render.major_opcode, 26, 7);
         request.write1 (op);
         request.write3_unused ();
         request.write4 (id);
         request.write2 (x);
         request.write2 (y);
         request.write2 (width);
         request.write2 (height);
         request.write2 (color.red);
         request.write2 (color.green);
         request.write2 (color.blue);
         request.write2 (color.alpha);
         display.send_request (request);
     }
コード例 #2
0
ファイル: Window.cs プロジェクト: jbnivoit/projects
  // opcode 18 - change property
  /**
   * Extra parameters (offset and data_format) are used to support Data
   * class as parameter for writing. See set_wm_normal_hints ().
   *
   * @param mode valid:
   * {@link #REPLACE},
   * {@link #PREPEND},
   * {@link #APPEND}
   * 
   * @param format: valid:
   * <code>8</code>,
   * <code>16</code>,
   * <code>32</code>
   *
   * @param data_format: valid:
   * <code>8</code>,
   * <code>16</code>,
   * <code>32</code>
   * 
   * @see <a href="XChangeProperty.html">XChangeProperty</a>
   */ 
  public void change_property (int mode, int n, Atom property, Atom type,
    int format, Object data, int offset, int data_format) {

    Request request = new Request (display, 18, mode, 6+Data.unit (n*format/8));
    request.write4 (id);
    request.write4 (property.id);
    request.write4 (type.id);
    request.write1 (format);
    request.write3_unused ();
    request.write4 (n);		// data length in format unit

    // data
    switch (data_format) {
    case 8: request.write1 ((byte []) data, offset); break;    
    case 16: request.write2 ((int []) data, offset); break;
    case 32: request.write4 ((int []) data, offset); break;
    }
    display.send_request (request);
  }
コード例 #3
0
ファイル: Window.cs プロジェクト: jbnivoit/projects
        // opcode 18 - change property
        /**
           * Extra parameters (offset and data_format) are used to support Data
           * class as parameter for writing. See set_wm_normal_hints ().
           *
           * @param mode valid:
           * {@link #REPLACE},
           * {@link #PREPEND},
           * {@link #APPEND}
           *
           * @param format: valid:
           * <code>8</code>,
           * <code>16</code>,
           * <code>32</code>
           *
           * @param data_format: valid:
           * <code>8</code>,
           * <code>16</code>,
           * <code>32</code>
           *
           * @see <a href="XChangeProperty.html">XChangeProperty</a>
           */
        public void change_property(int mode, int n, Atom property, Atom type,
    int format, Object data, int offset, int data_format)
        {
            Request request = new Request (display, 18, mode, 6+Data.unit (n*format/8));
            request.write4 (id);
            request.write4 (property.id);
            request.write4 (type.id);
            request.write1 (format);
            request.write3_unused ();
            request.write4 (n);		// data length in format unit

            // data
            switch (data_format) {
            case 8: request.write1 ((byte []) data, offset); break;
            case 16: request.write2 ((int []) data, offset); break;
            case 32: request.write4 ((int []) data, offset); break;
            }
            display.send_request (request);
        }
コード例 #4
0
ファイル: Render.cs プロジェクト: jbnivoit/projects
     // render opcode 8 - composite
     /**
        * @param operation
        * {@link #CLEAR}
        * {@link #SRC}
        * {@link #DST}
        * {@link #OVER}
        * {@link #OVER_REVERSE}
        * {@link #IN}
        * {@link #IN_REVERSE}
        * {@link #OUT}
        * {@link #OUT_REVERSE}
        * {@link #ATOP}
        * {@link #ATOP_REVERSE}
        * {@link #XOR}
        * {@link #ADD}
        * {@link #SATURATE}
        * {@link #MAXIMUM}
        *
        * @see <a href="XRenderComposite.html">XRenderComposite</a>
        */
     public void composite(int op, Picture src, Picture mask, Picture dst, 
 int src_x, int src_y, int mask_x, int mask_y, int dst_x, int dst_y, 
 int width, int height)
     {
         Request request = new Request (display, major_opcode, 8, 9);
         request.write1 (op);
         request.write3_unused ();
         request.write4 (src.id);
         request.write4 (mask.id);
         request.write4 (dst.id);
         request.write2 (src_x);
         request.write2 (src_y);
         request.write2 (mask_x);
         request.write2 (mask_y);
         request.write2 (dst_x);
         request.write2 (dst_y);
         request.write2 (width);
         request.write2 (height);
         display.send_request (request);
     }
コード例 #5
0
ファイル: Print.cs プロジェクト: jbnivoit/projects
            // print 19 - get one attribute
            /**
             * @param pool valid:
             * {@link #JOB_ATTRIBUTE_POOL},
             * {@link #DOC_ATTRIBUTE_POOL},
             * {@link #PAGE_ATTRIBUTE_POOL},
             * {@link #PRINTER_ATTRIBUTE_POOL},
             * {@link #SERVER_ATTRIBUTE_POOL}
             *
             * @param rule valid:
             * {@link #ATTRIBUTE_REPLACE},
             * {@link #ATTRIBUTE_MERGE}
             *
             * @see <a href="XpGetOneAttribute.html">XpGetOneAttribute</a>
             */
            public String one_attribute(int pool, String name)
            {
                int len = 4 + Data.unit (name);
                  Request request = new Request (this.display, this.owner.major_opcode, 19, len);
                  request.write4 (id);
                  request.write4 (name.Length);
                  request.write1 (pool);
                  request.write3_unused ();
                  request.write1 (name);

                  Data reply = this.display.read_reply (request);
                  len = reply.read4 (8);
                  return reply.read_string (32, len);
            }
コード例 #6
0
ファイル: DBE.cs プロジェクト: jbnivoit/projects
 // dbe opcode 3 - swap buffers
 /**
    * @param actions array of actions; valid action:
    * {@link #UNDEFINED}
    * {@link #BACKGROUND}
    * {@link #UNTOUCHED}
    * {@link #COPIED}
    *
    * @see <a href="XdbeSwapBuffers.html">XdbeSwapBuffers</a>
    */
 public void swap(Window [] windows, int [] actions)
 {
     int n = windows.Length;
     Request request = new Request (this.display, major_opcode, 3, 2+2*n);
     request.write4 (n);
     for (int i=0; i<n; i++) {
       request.write4 (windows [i].id);
       request.write1 (actions [i]);
       request.write3_unused ();
     }
     this.display.send_request (request);
 }
コード例 #7
0
ファイル: Shape.cs プロジェクト: jbnivoit/projects
     // shape opcode 4 - offset
     /**
        * @see <a href="XShapeOffsetShape.html">XShapeOffsetShape</a>
        */
     public void offset_shape(Window dest, int dest_kind,
 int x_offset, int y_offset)
     {
         Request request = new Request (display, major_opcode, 4, 4);
         request.write1 (dest_kind);
         request.write3_unused ();
         request.write4 (dest.id);
         request.write2 (x_offset);
         request.write2 (y_offset);
         display.send_request (request);
     }