#ifndef _OGL_BASIC_H_
#define _OGL_BASIC_H_
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "basic.h"
#endif
+#ifndef wxUSE_DEPRECATED
+#define wxUSE_DEPRECATED 1
+#endif
+
+#if wxUSE_DEPRECATED
+#include <wx/deprecated/setup.h>
+#endif
+
#define OGL_VERSION 2.0
#ifndef DEFAULT_MOUSE_TOLERANCE
#define DEFAULT_MOUSE_TOLERANCE 3
#endif
-// Edit these lines if you positively don't want PROLOGIO support
-#ifndef PROLOGIO
-#define PROLOGIO
-#endif
-
// Key identifiers
#define KEY_SHIFT 1
#define KEY_CTRL 2
class wxShapeRegion;
class wxShape;
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
class WXDLLEXPORT wxExpr;
class WXDLLEXPORT wxExprDatabase;
#endif
-class wxShapeEvtHandler: public wxObject
+class WXDLLIMPEXP_OGL wxShapeEvtHandler: public wxObject, public wxClientDataContainer
{
DECLARE_DYNAMIC_CLASS(wxShapeEvtHandler)
// Does the copy - override for new event handlers which might store
// app-specific data.
- virtual void CopyData(wxShapeEvtHandler& copy) {};
+ virtual void CopyData(wxShapeEvtHandler& WXUNUSED(copy)) {};
private:
wxShapeEvtHandler* m_previousHandler;
wxShape* m_handlerShape;
};
-class wxShape: public wxShapeEvtHandler
+class WXDLLIMPEXP_OGL wxShape: public wxShapeEvtHandler
{
DECLARE_ABSTRACT_CLASS(wxShape)
virtual void OnEraseContents(wxDC& dc);
virtual void OnHighlight(wxDC& dc);
virtual void OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
- virtual void OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0) {}
+ virtual void OnLeftDoubleClick(double WXUNUSED(x), double WXUNUSED(y), int WXUNUSED(keys) = 0, int WXUNUSED(attachment) = 0) {}
virtual void OnRightClick(double x, double y, int keys = 0, int attachment = 0);
virtual void OnSize(double x, double y);
virtual bool OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE);
void SetPen(wxPen *pen);
void SetBrush(wxBrush *brush);
- inline void SetClientData(wxObject *client_data) { m_clientData = client_data; };
- inline wxObject *GetClientData() const { return m_clientData; };
virtual void Show(bool show);
virtual bool IsShown() const { return m_visible; }
virtual wxFont *GetFont(int regionId = 0) const;
virtual void SetTextColour(const wxString& colour, int regionId = 0);
virtual wxString GetTextColour(int regionId = 0) const;
- virtual inline int GetNumberOfTextRegions() const { return m_regions.Number(); }
+ virtual inline int GetNumberOfTextRegions() const { return m_regions.GetCount(); }
virtual void SetRegionName(const wxString& name, int regionId = 0);
// Get the name representing the region for this image alone.
virtual int GetRegionId(const wxString& name);
// Construct names for regions, unique even for children of a composite.
- virtual void NameRegions(const wxString& parentName = "");
+ virtual void NameRegions(const wxString& parentName = wxEmptyString);
// Get list of regions
inline wxList& GetRegions() const { return (wxList&) m_regions; }
virtual void ClearText(int regionId = 0);
void RemoveLine(wxLineShape *line);
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
// I/O
virtual void WriteAttributes(wxExpr *clause);
virtual void ReadAttributes(wxExpr *clause);
int nth = 0, int no_arcs = 1, wxLineShape *line = NULL);
virtual int GetNumberOfAttachments() const;
virtual bool AttachmentIsValid(int attachment) const;
+ virtual wxList& GetAttachments() { return m_attachmentPoints; }
// Only get the attachment position at the _edge_ of the shape, ignoring
// branching mode. This is used e.g. to indicate the edge of interest, not the point
// Rotate about the given axis by the given amount in radians.
virtual void Rotate(double x, double y, double theta);
- virtual inline double GetRotation() const { return m_rotation; }
+ virtual double GetRotation() const { return m_rotation; }
+ virtual void SetRotation(double rotation) { m_rotation = rotation; }
void ClearAttachments();
wxBrush GetBackgroundBrush();
- private:
- wxObject* m_clientData;
-
protected:
wxShapeEvtHandler* m_eventHandler;
bool m_formatted;
wxPen* m_pen;
wxBrush* m_brush;
wxFont* m_font;
- wxColour* m_textColour;
+ wxColour m_textColour;
wxString m_textColourName;
wxShapeCanvas* m_canvas;
wxList m_lines;
long m_branchStyle;
};
-class wxPolygonShape: public wxShape
+class WXDLLIMPEXP_OGL wxPolygonShape: public wxShape
{
DECLARE_DYNAMIC_CLASS(wxPolygonShape)
public:
// Recalculates the centre of the polygon
virtual void CalculatePolygonCentre();
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
void WriteAttributes(wxExpr *clause);
void ReadAttributes(wxExpr *clause);
#endif
int GetNumberOfAttachments() const;
bool GetAttachmentPosition(int attachment, double *x, double *y,
int nth = 0, int no_arcs = 1, wxLineShape *line = NULL);
- bool AttachmentIsValid(int attachment);
+ bool AttachmentIsValid(int attachment) const;
// Does the copying for this object
void Copy(wxShape& copy);
inline wxList *GetPoints() { return m_points; }
+ inline wxList *GetOriginalPoints() { return m_originalPoints; }
// Rotate about the given axis by the given amount in radians
virtual void Rotate(double x, double y, double theta);
+ double GetOriginalWidth() const { return m_originalWidth; }
+ double GetOriginalHeight() const { return m_originalHeight; }
+
+ void SetOriginalWidth(double w) { m_originalWidth = w; }
+ void SetOriginalHeight(double h) { m_originalHeight = h; }
+
private:
wxList* m_points;
wxList* m_originalPoints;
double m_originalHeight;
};
-class wxRectangleShape: public wxShape
+class WXDLLIMPEXP_OGL wxRectangleShape: public wxShape
{
DECLARE_DYNAMIC_CLASS(wxRectangleShape)
public:
void OnDraw(wxDC& dc);
void SetSize(double x, double y, bool recursive = TRUE);
void SetCornerRadius(double rad); // If > 0, rounded corners
+ double GetCornerRadius() const { return m_cornerRadius; }
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
void WriteAttributes(wxExpr *clause);
void ReadAttributes(wxExpr *clause);
#endif
double m_cornerRadius;
};
-class wxTextShape: public wxRectangleShape
+class WXDLLIMPEXP_OGL wxTextShape: public wxRectangleShape
{
DECLARE_DYNAMIC_CLASS(wxTextShape)
public:
void OnDraw(wxDC& dc);
-#ifdef PROLOGIO
- void WriteAttributes(wxExpr *clause);
+#if wxUSE_PROLOGIO
+ void WriteAttributes(wxExpr *clause);
#endif
// Does the copying for this object
void Copy(wxShape& copy);
};
-class wxEllipseShape: public wxShape
+class WXDLLIMPEXP_OGL wxEllipseShape: public wxShape
{
DECLARE_DYNAMIC_CLASS(wxEllipseShape)
public:
void OnDraw(wxDC& dc);
void SetSize(double x, double y, bool recursive = TRUE);
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
void WriteAttributes(wxExpr *clause);
void ReadAttributes(wxExpr *clause);
#endif
double m_height;
};
-class wxCircleShape: public wxEllipseShape
+class WXDLLIMPEXP_OGL wxCircleShape: public wxEllipseShape
{
DECLARE_DYNAMIC_CLASS(wxCircleShape)
public: