00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #pragma once
00016 #include <background_wnd/detail/include.hpp>
00017
00018
00019 namespace win32 { namespace gui {
00020
00033 struct painter_base
00034 {
00035 painter_base()
00036 {}
00037
00038 virtual ~painter_base()
00039 {}
00040
00041 virtual bool is_opaque(int cx, int cy) const
00042 {
00043 return false;
00044 }
00045
00046 virtual void draw(HDC hDC, int cx, int cy) = 0;
00047
00048
00049
00050 virtual painter_base* clone() const = 0;
00051
00052 protected:
00053
00054 painter_base(const painter_base&) {}
00055 const painter_base& operator= (const painter_base&)
00056 {
00057 return *this;
00058 }
00059 };
00060
00061
00062
00068 struct null_painter : painter_base
00069 {
00070 null_painter* clone() const { return new null_painter(); }
00071 void draw(HDC hDC, int cx, int cy) {}
00072 };
00073
00074 } }