2007-02-24 13:58:48 +03:00
|
|
|
/* vim: set sw=4 sts=4 et cin: */
|
2012-05-21 15:12:37 +04:00
|
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
2007-02-24 13:58:48 +03:00
|
|
|
|
|
|
|
#ifndef GFX_OS2_SURFACE_H
|
|
|
|
#define GFX_OS2_SURFACE_H
|
|
|
|
|
|
|
|
#include "gfxASurface.h"
|
|
|
|
|
2007-09-19 01:20:25 +04:00
|
|
|
#define INCL_GPIBITMAPS
|
2007-02-24 13:58:48 +03:00
|
|
|
#include <os2.h>
|
|
|
|
#include <cairo-os2.h>
|
|
|
|
|
|
|
|
class THEBES_API gfxOS2Surface : public gfxASurface {
|
|
|
|
|
|
|
|
public:
|
2007-09-19 01:20:25 +04:00
|
|
|
// constructor used to create a memory surface of given size
|
|
|
|
gfxOS2Surface(const gfxIntSize& aSize,
|
|
|
|
gfxASurface::gfxImageFormat aImageFormat);
|
|
|
|
// constructor for surface connected to an onscreen window
|
2007-02-24 13:58:48 +03:00
|
|
|
gfxOS2Surface(HWND aWnd);
|
2008-01-30 03:16:19 +03:00
|
|
|
// constructor for surface connected to a printing device context
|
|
|
|
gfxOS2Surface(HDC aDC, const gfxIntSize& aSize);
|
2007-02-24 13:58:48 +03:00
|
|
|
virtual ~gfxOS2Surface();
|
|
|
|
|
2007-10-22 21:59:24 +04:00
|
|
|
// Special functions that only make sense for the OS/2 port of cairo:
|
|
|
|
|
|
|
|
// Update the cairo surface.
|
|
|
|
// While gfxOS2Surface keeps track of the presentation handle itself,
|
|
|
|
// use the one from WinBeginPaint() here.
|
|
|
|
void Refresh(RECTL *aRect, HPS aPS);
|
|
|
|
|
|
|
|
// Reset the cairo surface to the given size.
|
|
|
|
int Resize(const gfxIntSize& aSize);
|
|
|
|
|
2010-08-21 23:50:32 +04:00
|
|
|
HPS GetPS();
|
2010-09-08 04:36:57 +04:00
|
|
|
virtual const gfxIntSize GetSize() const { return mSize; }
|
2007-02-24 13:58:48 +03:00
|
|
|
|
|
|
|
private:
|
2010-08-21 23:50:32 +04:00
|
|
|
HWND mWnd; // non-null if created through the HWND constructor
|
2007-09-19 01:20:25 +04:00
|
|
|
HDC mDC; // memory device context
|
|
|
|
HPS mPS; // presentation space connected to window or memory device
|
|
|
|
HBITMAP mBitmap; // bitmap for initialization of memory surface
|
|
|
|
gfxIntSize mSize; // current size of the surface
|
2007-02-24 13:58:48 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* GFX_OS2_SURFACE_H */
|