-// ----------------------------------------------------------------------------
-// creates an overlay over an existing window, allowing for manipulations like
-// rubberbanding etc. this API is not stable yet, not to be used outside wx
-// internal code
-// ----------------------------------------------------------------------------
-
-class WXDLLEXPORT wxOverlayImpl;
-class WXDLLEXPORT wxWindowDC;
-
-class WXDLLEXPORT wxOverlay
-{
-public:
- wxOverlay();
- ~wxOverlay();
-
- // clears the overlay without restoring the former state
- // to be done eg when the window content has been changed and repainted
- void Reset();
-
-private:
- friend class WXDLLEXPORT wxDCOverlay;
-
- // returns true if it has been setup
- bool IsOk();
-
- void Init(wxWindowDC* dc, int x , int y , int width , int height);
-
- void BeginDrawing(wxWindowDC* dc);
-
- void EndDrawing(wxWindowDC* dc);
-
- void Clear(wxWindowDC* dc);
-
- wxOverlayImpl* m_impl;
-
- bool m_inDrawing;
-
-
- DECLARE_NO_COPY_CLASS(wxOverlay)
-};
-
-class WXDLLEXPORT wxDCOverlay
-{
-public:
- // connects this overlay to the corresponding drawing dc, if the overlay is not initialized yet
- // this call will do so
- wxDCOverlay(wxOverlay &overlay, wxWindowDC *dc, int x , int y , int width , int height);
-
- // convenience wrapper that behaves the same using the entire area of the dc
- wxDCOverlay(wxOverlay &overlay, wxWindowDC *dc);
-
- // removes the connection between the overlay and the dc
- virtual ~wxDCOverlay();
-
- // clears the layer, restoring the state at the last init
- void Clear();
-
-private:
- void Init(wxWindowDC *dc, int x , int y , int width , int height);
-
- wxOverlay& m_overlay;
-
- wxWindowDC* m_dc;
-
-
- DECLARE_NO_COPY_CLASS(wxDCOverlay)
-};
-