Implement image handling (including o.e.swt.graphics.Image
    class). The test example of this step should draw images of different
    formats in the SWT top window client area using corresponding methods of
    o.e.swt.graphics.GC class.
There is one issue with getting image data when the system (the display) is in 256-color mode -- it is described here.
Also we have a potential problem with icons, because OS/2 supports only 32x32/16x16 px and 40x40/20x20 px icons. Although we made it possible to create and draw icons of any size we cannot use non-standard ones in places where OS/2 accepts standard icon/pointer handlers (for example, in some controls).
| Operation | Status | Remarks | 
|---|---|---|
| Add OS.DevOpenDC()andOD_*constants,DevCloseDC();OS.GpiCreatePS()andPU_*,GPIF_*,GPIT_*,GPIA_*,GPIM_*constants, GpiDestr | Done [dmik] | During to complicacy of one of its parameters OS.DevOpenDC()is
        implemented in an unusual way, see the source | 
| Add Display.internal_get_HAB()method | Done [dmik] | This is a static and public method, not intended for use by
        applications. It is intended for those classes inside SWT to obtain
        the HABwhich don't have the direct access to theDisplayobject but need it. | 
| Add OS.GpiQueryDeviceBitmapFormats(),GpiCreateBitmap()andCBM_INITconstant, constants forBITMAPINFOHEADER2:OS.BCA_*,BRU_*,BRA_*,BRH_*andBCE_*,OS.GpiSetBitmap() | Done [dmik] | |
| Add two static helper methods to Imageclass:new_compatible_GC()anddispose_compatible_GC() | Done [dmik] | Done for convenience | 
| Add OS.GpiBitBlt()andCBM_*,ROP_*,BBO_*constants | Done [dmik] | |
| Implement GC.fillGradientRectagle() | Done [dmik] | |
| Add OS.GpiQueryPalette(),OS.GpiQueryBitmapBits(),OS.GpiSetBitmapBits(),GpiDrawBits(),GpiWCBitBlt(),GpiQueryDefaultViewMatrix() | Done [dmik] | GpiWCBitBlt()is used now instead ofGpiBitBlt()when possible -- because it does blitting faster. | 
| Add the package static method Image.createBitmap(),
        the protected fieldDevice.has32bitDepth | Done [dmik] | Used for convenience when dealing with bitmaps. has32BitDepthis true when the device supports the 32-bit color depth. | 
| Add OS.WinCreatePointerIndirect(),WinDestroyPointer(),WinDrawPointer(),WinQueryPointerInfo(),DP_*constants andPOINTERINFOclass | Done [dmik] | |
| Implement GC.drawImage() | Done [dmik] | |
| Implement Imageclass, addSWT006_01testcase + different test images, addSWT006_02testcase | Done [dmik] | |
| Change the behavior of filled versions of some graphic primitives
        in GC(rectangles and arcs) back to that one in Windows
        (meaning that they are drawn 1 pixel narrower than their outlined
        counterparts with the same width and height arguments) | Done [dmik] | This is done for compatibility reasons -- filling an area of a
        client window with GC.fillRectangle()is quite a frequent
        task and must work equally across platforms (see here for initial discussion
        of this issue). | 
| Fix Decorations: redirect the call tolayout()toclient.layout(); fixShell: do implicit
        layout upon the firstopen()orsetVisible()call as it done in Windows. | Done [dmik] | |
| Add OS.WinScrollWindow()andSW_*constants,HRGN_ERRORconstant; implementGC.copyArea() | Done [dmik] | Note, that this item and the following ones are added after the SWT006 Step was considered to be done and tagged in the repository. | 
| Add OS.GpiSetRegion(),GpiQueryClipBox();
        implementGC.getClipping(Region),isClipped() | Done [dmik] | |
| Add SWT006_03testcase | Done [dmik] | This testcase is for testing of two items above. |