gecko-dev/gfx2/public/gfxtypes.idl

133 строки
2.9 KiB
Plaintext

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 2000 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Stuart Parmenter <pavlov@netscape.com>
*/
/**
* gfx idl declarations to be used by all gfx interfaces.
* @file gfxtypes.idl
*/
#include "nsrootidl.idl"
/*! @verbatim */
/* see bug 57094 */
%{C++
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
#include "gfxcompat.h"
%}
/*! @endverbatim */
/**
* gfx_dimension should be used for widths and heights
* @var typedef float gfx_dimension
*/
typedef float gfx_dimension;
/**
* gfx_coord should be used for x and y coordinates
* @var typedef float gfx_coord
*/
typedef float gfx_coord;
typedef gfx_coord nscoord;
/**
* typedef that should be used for angles
* @var typedef float gfx_angle
*/
typedef float gfx_angle;
/**
* A color is a 32 bit unsigned integer with
* four components: R, G, B and A.
*
* @var typedef PRUint32 gfx_color
*/
typedef PRUint32 gfx_color;
/**
* typedef that should be used for bit depths
* @var typedef unsigned short gfx_depth
*/
typedef unsigned short gfx_depth; // is short ok?
/**
* typedef that should be used for image formats
* @var typedef long gfx_format
* @see nsIGFXFormat
*/
typedef long gfx_format;
/**
* typedef that should be used for gamma levels
* @var typedef float gfx_gamma
*/
typedef float gfx_gamma;
/**
* nsIGFXFormat interface
*
* @author Tim Rowley <tor@cs.brown.edu>
* @author Stuart Parmenter <pavlov@netscape.com>
* @version 0.0
* @see gfx_format
*/
[scriptable]
interface nsIGFXFormat
{
/**
* RGB - duh...
*/
const gfx_format RGB = 0;
/**
* RGB_A1 - RGB image and 1-bit alpha mask
*/
const gfx_format RGB_A1 = 1;
/**
* RGB_A8 - RGB image and 8-bit alpha image
*/
const gfx_format RGB_A8 = 2;
/**
* RGBA - packed RGBA image
*/
const gfx_format RGBA = 3;
};
/*! @verbatim */
[ptr] native nsRect2(nsRect2);
[ptr] native nsSize2(nsSize2);
[ptr] native nsPoint2(nsPoint2);
[ptr] native nsFont(nsFont);
%{C++
struct nsPoint2;
struct nsSize2;
struct nsRect2;
struct nsFont;
%}
/*! @endverbatim */