javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/graphics/qt/imagebase.h
author hgs
Fri, 15 Oct 2010 12:29:39 +0300
changeset 80 d6dafc5d983f
permissions -rw-r--r--
v2.2.19_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
80
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
     1
/*******************************************************************************
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
     2
 * Copyright (c) 2008, 2010 Nokia Corporation and/or its subsidiary(-ies).
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
     3
 * All rights reserved. This program and the accompanying materials
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
     4
 * are made available under the terms of the Eclipse Public License v1.0
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
     5
 * which accompanies this distribution, and is available at
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
     6
 * http://www.eclipse.org/legal/epl-v10.html
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
     7
 *
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
     8
 * Contributors:
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
     9
 *     Nokia Corporation - initial API and implementation
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    10
 *******************************************************************************/
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    11
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    12
#ifndef IMAGEBASE_H_
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    13
#define IMAGEBASE_H_
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    14
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    15
#include "graphics.h"
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    16
#include <QImage>
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    17
#include <QTransform>
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    18
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    19
namespace Java { namespace GFX {
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    20
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    21
class ImageBase: public Image
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    22
    {
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    23
public:
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    24
    ImageBase(); 
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    25
    virtual ~ImageBase();
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    26
    
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    27
    /**
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    28
     * from Image
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    29
     * @see Image
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    30
     */
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    31
    virtual void createBySize(int aWidth, int aHeight, int aFillColor, TImageFormat aFormat) = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    32
    virtual void createFromQImage(const QImage& aImage) = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    33
    virtual void createFromQPixmap(const QPixmap& aPixmap) = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    34
    virtual void createFromImage(Image* aImage, int aX, int aY, int aWidth, int aHeight) = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    35
    virtual void createFromImageData(ImageDataWrapper* aData) = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    36
    virtual void createFromRGB(int* aRgbdata, int aWidth, int aHeight, bool aHasAlpha) = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    37
    virtual void dispose() = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    38
    virtual QPaintDevice* getBindable() = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    39
    virtual TImageFormat getFormat() = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    40
    virtual int getHeight() = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    41
    virtual const QImage* getConstImage() = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    42
    virtual QImage* getImage() = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    43
    virtual const QPixmap* getConstPixmap() = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    44
    virtual QPixmap* getPixmap() = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    45
    virtual void getRgb(int* aRgbdata, int aOffset, int aScanlength, int aX, int aY, int aWidth, int aHeight) = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    46
    virtual void getRgb(char* aRgbdata, char* aTransparencyMask,int aOffset, int aScanlength, int aX, int aY, int aWidth, int aHeight, int aFormat) = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    47
    virtual void getRgb(short* aRgbdata, int aOffset, int aScanlength, int aX, int aY, int aWidth, int aHeight, int aFormat) = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    48
    virtual int getWidth() = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    49
    virtual const QImage toConstImage() = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    50
    virtual QImage toImage() = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    51
    virtual QPixmap toPixmap() = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    52
    virtual void transform(TTransform aTransform) = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    53
    virtual TImageType type() = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    54
    virtual int getAlpha();
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    55
    virtual bool hasMask();
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    56
    virtual bool hasAlphaChannel() = 0;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    57
    
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    58
protected:
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    59
    /**
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    60
     * Writes RGB to given int type data array.
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    61
     */
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    62
    void doGetRgb(QImage& image, int* aRgbdata, int aOffset, int aScanlength, int aX, int aY, 
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    63
                  int aWidth, int aHeight);
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    64
    
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    65
    /**
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    66
     * Writes RGB to given char type data array.
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    67
     */
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    68
    void doGetRgb(QImage& image, char* aRgbdata, char* aTransparencyMask,int aOffset, int aScanlength, 
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    69
                   int aX, int aY, int aWidth, int aHeight, int aFormat);
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    70
    
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    71
    /**
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    72
     * Writes RGB to given short type data array.
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    73
     */ 
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    74
    void doGetRgb(QImage& image, short* aRgbdata, int aOffset, int aScanlength, int aX, int aY, 
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    75
                  int aWidth, int aHeight, int aFormat);
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    76
    
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    77
    /**
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    78
     * Creates transform matrix for given transformation.
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    79
     * @param aTransform the transform type to be created
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    80
     */
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    81
    QTransform generateTransformMatrix(TTransform aTransform);
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    82
    
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    83
    /**
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    84
     * Processes image data and creates QImage with properties
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    85
     * defined in the image data.
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    86
     * 
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    87
     * @param aData Image data to be processed
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    88
     */
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    89
    QImage imageDataToQImage(ImageDataWrapper* aData);
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    90
    
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    91
    /**
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    92
     * Maps given QImage based image format to those defined in TImageFormat.
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    93
     * @param qtImageFormat the image format in Qt defitions
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    94
     * @return format in internal type
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    95
     */
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    96
    TImageFormat mapQtFormatToInternal(QImage::Format qtImageFormat);
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    97
    
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    98
    /**
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
    99
     * Maps given internal (TImageFormat) image format to Qt format.
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   100
     * @param internalImageFormat the image format in internal type
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   101
     * @return format in Qt type
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   102
     */
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   103
    QImage::Format mapInternalFormatToQt(TImageFormat internalImageFormat);
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   104
    
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   105
    /**
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   106
     * Level of alpha
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   107
     */
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   108
    int      mAlpha;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   109
    
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   110
    /**
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   111
     * Mask flag
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   112
     */
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   113
    bool     mHasMask;
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   114
    
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   115
    
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   116
    };
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   117
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   118
} // namespace GFX
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   119
} // namespace Java
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   120
d6dafc5d983f v2.2.19_1
hgs
parents:
diff changeset
   121
#endif /* IMAGEBASE_H_ */