]>
git.saurik.com Git - wxWidgets.git/blob - utils/ogl/src/bmpshape.cpp
1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: Bitmap shape class
4 // Author: Julian Smart
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
13 #pragma implementation "bmpshape.h"
16 // For compilers that support precompilation, includes "wx.h".
17 #include <wx/wxprec.h>
28 #include <wx/wxexpr.h>
42 IMPLEMENT_DYNAMIC_CLASS(wxBitmapShape
, wxShape
)
44 wxBitmapShape::wxBitmapShape():wxRectangleShape(100.0, 50.0)
49 wxBitmapShape::~wxBitmapShape()
53 void wxBitmapShape::OnDraw(wxDC
& dc
)
59 tempDC
.SelectObject(m_bitmap
);
61 x
= WXROUND(m_xpos
- m_bitmap
.GetWidth() / 2.0);
62 y
= WXROUND(m_ypos
- m_bitmap
.GetHeight() / 2.0);
63 dc
.Blit(x
, y
, m_bitmap
.GetWidth(), m_bitmap
.GetHeight(), &tempDC
, 0, 0);
66 void wxBitmapShape::SetSize(double w
, double h
, bool recursive
)
70 w
= m_bitmap
.GetWidth();
71 h
= m_bitmap
.GetHeight();
74 SetAttachmentSize(w
, h
);
78 SetDefaultRegionSize();
82 void wxBitmapShape::WriteAttributes(wxExpr
*clause
)
84 // Can't really save the bitmap; so instantiate the bitmap
85 // at a higher level in the application, from a symbol library.
86 wxRectangleShape::WriteAttributes(clause
);
87 clause
->AddAttributeValueString("filename", m_filename
);
90 void wxBitmapShape::ReadAttributes(wxExpr
*clause
)
92 wxRectangleShape::ReadAttributes(clause
);
93 clause
->GetAttributeValue("filename", m_filename
);
97 // Does the copying for this object
98 void wxBitmapShape::Copy(wxShape
& copy
)
100 wxRectangleShape::Copy(copy
);
102 wxASSERT( copy
.IsKindOf(CLASSINFO(wxBitmapShape
)) ) ;
104 wxBitmapShape
& bitmapCopy
= (wxBitmapShape
&) copy
;
106 bitmapCopy
.m_bitmap
= m_bitmap
;
107 bitmapCopy
.SetFilename(m_filename
);
110 void wxBitmapShape::SetBitmap(const wxBitmap
& bm
)
114 SetSize(m_bitmap
.GetWidth(), m_bitmap
.GetHeight());