From 68278f98be1e296ce919e2a32c19ba3b298f67f6 Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Sun, 6 Sep 1998 14:35:53 +0000 Subject: [PATCH] Renamed bitmap.cpp to bmpshape.cpp to aid debugging git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@678 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- utils/ogl/src/bmpshape.cpp | 123 +++++++++++++++++++++++++++++++++++++ utils/ogl/src/bmpshape.h | 54 ++++++++++++++++ 2 files changed, 177 insertions(+) create mode 100644 utils/ogl/src/bmpshape.cpp create mode 100644 utils/ogl/src/bmpshape.h diff --git a/utils/ogl/src/bmpshape.cpp b/utils/ogl/src/bmpshape.cpp new file mode 100644 index 0000000000..2cc8db9c10 --- /dev/null +++ b/utils/ogl/src/bmpshape.cpp @@ -0,0 +1,123 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: bmpshape.cpp +// Purpose: Bitmap shape class +// Author: Julian Smart +// Modified by: +// Created: 12/07/98 +// RCS-ID: $Id$ +// Copyright: (c) Julian Smart +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifdef __GNUG__ +#pragma implementation "bmpshape.h" +#endif + +// For compilers that support precompilation, includes "wx.h". +#include + +#ifdef __BORLANDC__ +#pragma hdrstop +#endif + +#ifndef WX_PRECOMP +#include +#endif + +#ifdef PROLOGIO +#include +#endif + +#include "basic.h" +#include "basicp.h" +#include "canvas.h" +#include "bmpshape.h" +#include "misc.h" + +/* + * Bitmap object + * + */ + +IMPLEMENT_DYNAMIC_CLASS(wxBitmapShape, wxShape) + +wxBitmapShape::wxBitmapShape():wxRectangleShape(100.0, 50.0) +{ + m_filename = ""; +} + +wxBitmapShape::~wxBitmapShape() +{ +} + +void wxBitmapShape::OnDraw(wxDC& dc) +{ + if (!m_bitmap.Ok()) + return; + + wxMemoryDC tempDC; + tempDC.SelectObject(m_bitmap); + double x, y; + x = WXROUND(m_xpos - m_bitmap.GetWidth() / 2.0); + y = WXROUND(m_ypos - m_bitmap.GetHeight() / 2.0); + dc.Blit(x, y, m_bitmap.GetWidth(), m_bitmap.GetHeight(), &tempDC, 0, 0); +} + +void wxBitmapShape::SetSize(double w, double h, bool recursive) +{ + if (m_bitmap.Ok()) + { + w = m_bitmap.GetWidth(); + h = m_bitmap.GetHeight(); + } + + SetAttachmentSize(w, h); + + m_width = w; + m_height = h; + SetDefaultRegionSize(); +} + +#ifdef PROLOGIO +// Prolog database stuff +char *wxBitmapShape::GetFunctor() +{ + return "node_image"; +} + +void wxBitmapShape::WritePrologAttributes(wxExpr *clause) +{ + // Can't really save the bitmap; so instantiate the bitmap + // at a higher level in the application, from a symbol library. + wxRectangleShape::WritePrologAttributes(clause); + clause->AddAttributeValueString("filename", m_filename); +} + +void wxBitmapShape::ReadPrologAttributes(wxExpr *clause) +{ + wxRectangleShape::ReadPrologAttributes(clause); + clause->GetAttributeValue("filename", m_filename); +} +#endif + +// Does the copying for this object +void wxBitmapShape::Copy(wxShape& copy) +{ + wxRectangleShape::Copy(copy); + + wxASSERT( copy.IsKindOf(CLASSINFO(wxBitmapShape)) ) ; + + wxBitmapShape& bitmapCopy = (wxBitmapShape&) copy; + + bitmapCopy.m_bitmap = m_bitmap; + bitmapCopy.SetFilename(m_filename); +} + +void wxBitmapShape::SetBitmap(const wxBitmap& bm) +{ + m_bitmap = bm; + if (m_bitmap.Ok()) + SetSize(m_bitmap.GetWidth(), m_bitmap.GetHeight()); +} + + diff --git a/utils/ogl/src/bmpshape.h b/utils/ogl/src/bmpshape.h new file mode 100644 index 0000000000..468eb5d198 --- /dev/null +++ b/utils/ogl/src/bmpshape.h @@ -0,0 +1,54 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: bmpshape.h +// Purpose: wxBitmapShape +// Author: Julian Smart +// Modified by: +// Created: 12/07/98 +// RCS-ID: $Id$ +// Copyright: (c) Julian Smart +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifndef _OGL_BITMAP_H_ +#define _OGL_BITMAP_H_ + +#ifdef __GNUG__ +#pragma interface "bmpshape.h" +#endif + +#include "basic.h" + +class wxBitmapShape: public wxRectangleShape +{ + DECLARE_DYNAMIC_CLASS(wxBitmapShape) + public: + wxBitmapShape(); + ~wxBitmapShape(); + + void OnDraw(wxDC& dc); + +#ifdef PROLOGIO + // Prolog database stuff + char *GetFunctor(); + void WritePrologAttributes(wxExpr *clause); + void ReadPrologAttributes(wxExpr *clause); +#endif + + // Does the copying for this object + void Copy(wxShape& copy); + + void SetSize(double w, double h, bool recursive = TRUE); + inline wxBitmap& GetBitmap() const { return (wxBitmap&) m_bitmap; } + void SetBitmap(const wxBitmap& bm); + inline void SetFilename(const wxString& f) { m_filename = f; }; + inline wxString GetFilename() const { return m_filename; } + +private: + wxBitmap m_bitmap; + wxString m_filename; +}; + +#endif + // _OGL_BITMAP_H_ + +