Updated OGL documentation and tidied up some code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@714 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		| @@ -2,8 +2,18 @@ | |||||||
| \setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% | \setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% | ||||||
| \setfooter{\thepage}{}{}{}{}{\thepage} | \setfooter{\thepage}{}{}{}{}{\thepage} | ||||||
|  |  | ||||||
|  | Version 3.0, September 8th 1998 | ||||||
|  |  | ||||||
|  | \begin{itemize}\itemsep=0pt | ||||||
|  | \item Version for wxWindows 2.0. | ||||||
|  | \item Various enhancements especially to wxDrawnShape | ||||||
|  | (multiple metafiles, for different orientations). | ||||||
|  | \item More ability to override functions e.g. OnSizeDragLeft, so events can be | ||||||
|  | intercepted for Do/Undo. | ||||||
|  | \end{itemize} | ||||||
|  |  | ||||||
| Version 2.0, June 1st 1996 | Version 2.0, June 1st 1996 | ||||||
|  |  | ||||||
| \begin{itemize}\itemsep=0pt | \begin{itemize}\itemsep=0pt | ||||||
| \item First publically released version. | \item First publicly released version. | ||||||
| \end{itemize} | \end{itemize} | ||||||
|   | |||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -21,8 +21,8 @@ These are the files that comprise the \ogl\ library. | |||||||
| \item[basic.h] Header for basic objects such as wxShape and wxRectangleShape. | \item[basic.h] Header for basic objects such as wxShape and wxRectangleShape. | ||||||
| \item[basic.cpp] Basic objects implementation (1). | \item[basic.cpp] Basic objects implementation (1). | ||||||
| \item[basic2.cpp] Basic objects implementation (2). | \item[basic2.cpp] Basic objects implementation (2). | ||||||
| \item[bitmap.cpp] wxBitmapShape class header. | \item[bmpshape.h] wxBitmapShape class header. | ||||||
| \item[bitmap.cpp] wxBitmapShape implementation. | \item[bmpshape.cpp] wxBitmapShape implementation. | ||||||
| \item[canvas.h] wxShapeCanvas class header. | \item[canvas.h] wxShapeCanvas class header. | ||||||
| \item[canvas.cpp] wxShapeCanvas class implementation. | \item[canvas.cpp] wxShapeCanvas class implementation. | ||||||
| \item[composit.h] Composite object class header. | \item[composit.h] Composite object class header. | ||||||
| @@ -40,6 +40,8 @@ These are the files that comprise the \ogl\ library. | |||||||
| \item[misc.cpp] Miscellaneous graphics functions implementation. | \item[misc.cpp] Miscellaneous graphics functions implementation. | ||||||
| \item[ogldiag.h] wxDiagram class header. | \item[ogldiag.h] wxDiagram class header. | ||||||
| \item[ogldiag.cpp] wxDiagram implementation. | \item[ogldiag.cpp] wxDiagram implementation. | ||||||
|  | \item[mfutils.h] Metafile utilities header. | ||||||
|  | \item[mfutils.cpp] Metafile utilities implementation. | ||||||
| \end{description} | \end{description} | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,11 +1,19 @@ | |||||||
| \documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report} | \documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report} | ||||||
| \newcommand{\ogl}[0]{{OGL}} | \newcommand{\ogl}[0]{{OGL}}% | ||||||
|  | \definecolour{black}{0}{0}{0}% | ||||||
|  | \definecolour{cyan}{0}{255}{255}% | ||||||
|  | \definecolour{green}{0}{255}{0}% | ||||||
|  | \definecolour{magenta}{255}{0}{255}% | ||||||
|  | \definecolour{red}{255}{0}{0}% | ||||||
|  | \definecolour{blue}{0}{0}{200}% | ||||||
|  | \definecolour{yellow}{255}{255}{0}% | ||||||
|  | \definecolour{white}{255}{255}{255}% | ||||||
| \input psbox.tex | \input psbox.tex | ||||||
| \parindent 0pt | \parindent 0pt | ||||||
| \parskip 11pt | \parskip 11pt | ||||||
| \title{Manual for Object Graphics Library 3.0} | \title{Manual for Object Graphics Library 3.0} | ||||||
| \author{Julian Smart} | \author{Julian Smart} | ||||||
| \date{July 1998} | \date{September 1998} | ||||||
|  |  | ||||||
| \makeindex | \makeindex | ||||||
| \begin{document} | \begin{document} | ||||||
|   | |||||||
| @@ -14,47 +14,6 @@ housekeeping logic required to get it up and running. OGLEdit also provides | |||||||
| a demonstration of the Undo/Redo capability supported by the document/view classes, | a demonstration of the Undo/Redo capability supported by the document/view classes, | ||||||
| and how a typical application might implement this feature. | and how a typical application might implement this feature. | ||||||
|  |  | ||||||
| {\it Note:} A bug in the wxWindows document/view implementation before |  | ||||||
| version 1.66C may cause Do/Undo to misbehave and get out of sync. If this is the case, |  | ||||||
| please replace wxCommandProcessor::Submit with the following in wx\_doc.cpp. |  | ||||||
|  |  | ||||||
| {\small |  | ||||||
| \begin{verbatim} |  | ||||||
|   Bool wxCommandProcessor::Submit(wxCommand *command, Bool storeIt) |  | ||||||
|   { |  | ||||||
|     Bool success = command->Do(); |  | ||||||
|     if (success && storeIt) |  | ||||||
|     { |  | ||||||
|       if (commands.Number() == maxNoCommands) |  | ||||||
|       { |  | ||||||
|         wxNode *firstNode = commands.First(); |  | ||||||
|         wxCommand *firstCommand = (wxCommand *)firstNode->Data(); |  | ||||||
|         delete firstCommand; |  | ||||||
|         delete firstNode; |  | ||||||
|       } |  | ||||||
|  |  | ||||||
|       // Correct a bug: we must chop off the current 'branch' |  | ||||||
|       // so that we're at the end of the command list. |  | ||||||
|       if (currentCommand) |  | ||||||
|       { |  | ||||||
|         wxNode *node = currentCommand->Next(); |  | ||||||
|         while (node) |  | ||||||
|         { |  | ||||||
|           wxNode *next = node->Next(); |  | ||||||
|           delete node; |  | ||||||
|           node = next; |  | ||||||
|         } |  | ||||||
|       } |  | ||||||
|      |  | ||||||
|       commands.Append(command); |  | ||||||
|       currentCommand = commands.Last(); |  | ||||||
|       SetMenuStrings(); |  | ||||||
|     } |  | ||||||
|     return success; |  | ||||||
|   } |  | ||||||
| \end{verbatim} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| \section{OGLEdit files} | \section{OGLEdit files} | ||||||
|  |  | ||||||
| OGLEdit comprises the following source files. | OGLEdit comprises the following source files. | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | ;    Last change:  JS    8 Sep 98    2:54 pm | ||||||
| runTwice = yes | runTwice = yes | ||||||
| titleFontSize = 12 | titleFontSize = 12 | ||||||
| authorFontSize = 10 | authorFontSize = 10 | ||||||
| @@ -15,6 +16,11 @@ winHelpContents = yes | |||||||
| winHelpTitle = "OGL Manual" | winHelpTitle = "OGL Manual" | ||||||
| truncateFilenames = yes | truncateFilenames = yes | ||||||
| combineSubSections = yes | combineSubSections = yes | ||||||
| \overview [2] {\rtfonly{See also }\sethotspotcolour{off}\sethotspotunderline{on}\winhelponly{\image{}{books.bmp}} | \overview [2] {\rtfonly{See also }\settransparency{on}\sethotspotcolour{off}\sethotspotunderline{on}\winhelponly{\image{}{books.bmp}\settransparency{off}} | ||||||
| \htmlonly{\image{}{books.gif}}\helpref{#1}{#2} | \htmlonly{\image{}{books.gif}}\helpref{#1}{#2} | ||||||
| \sethotspotcolour{on}\sethotspotunderline{on}} | \sethotspotcolour{on}\sethotspotunderline{on}} | ||||||
|  | \docparam [2]{\parskip{0}{\it #1}\htmlignore{\par}\parskip{10}\indented{1cm}{#2}} | ||||||
|  | \wxheading [1]{{\bf \htmlignore{\fcol{blue}{#1}}\htmlonly{\fcol{red}{#1}}}} | ||||||
|  | \const [0] {{\bf const}} | ||||||
|  | \constfunc [3] {{\bf #1} {\bf #2}(#3) {\bf const}\index{#2}} | ||||||
|  | \windowstyle [1] {{\bf #1}\index{#1}} | ||||||
|   | |||||||
| @@ -43,7 +43,6 @@ new shapes from wxShape. | |||||||
| Instances of a class called \helpref{wxDiagram}{wxdiagram} organise collections of | Instances of a class called \helpref{wxDiagram}{wxdiagram} organise collections of | ||||||
| shapes, providing default file input and output behaviour. | shapes, providing default file input and output behaviour. | ||||||
|  |  | ||||||
|  |  | ||||||
| \section{wxDividedShape overview}\label{dividedshapeoverview} | \section{wxDividedShape overview}\label{dividedshapeoverview} | ||||||
|  |  | ||||||
| Classes: \helpref{wxDividedShape}{wxdividedshape} | Classes: \helpref{wxDividedShape}{wxdividedshape} | ||||||
| @@ -112,10 +111,9 @@ Here are examples of creating wxDividedShape objects: | |||||||
| \end{verbatim} | \end{verbatim} | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| \section{wxCompositeShape overview}\label{compositeshapeoverview} | \section{wxCompositeShape overview}\label{compositeshapeoverview} | ||||||
|  |  | ||||||
| Classes: \helpref{wxCompositeShape}{wxcompositeshape}, \helpref{OGLConstraint}{oglconstraint} | Classes: \helpref{wxCompositeShape}{wxcompositeshape}, \helpref{wxOGLConstraint}{wxoglconstraint} | ||||||
|  |  | ||||||
| The wxCompositeShape allows fairly complex shapes to be created, and maintains | The wxCompositeShape allows fairly complex shapes to be created, and maintains | ||||||
| a set of constraints which specify the layout and proportions of child shapes. | a set of constraints which specify the layout and proportions of child shapes. | ||||||
| @@ -143,12 +141,12 @@ To specify a constraint, you need three things: | |||||||
| The constraining shape can be either the parent of the constrained shapes, or a sibling. The | The constraining shape can be either the parent of the constrained shapes, or a sibling. The | ||||||
| constrained shapes must all be siblings of each other. | constrained shapes must all be siblings of each other. | ||||||
|  |  | ||||||
| For an exhaustive list and description of the available constraint types, see the \helpref{OGLConstraint constructor}{oglconstraintconstr}. | For an exhaustive list and description of the available constraint types, see the \helpref{wxOGLConstraint constructor}{wxoglconstraintconstr}. | ||||||
| Note that most constraints operate in one dimension only (vertically or horizontally), so you will | Note that most constraints operate in one dimension only (vertically or horizontally), so you will | ||||||
| usually need to specify constraints in pairs. | usually need to specify constraints in pairs. | ||||||
|  |  | ||||||
| You can set the spacing between constraining and constrained shapes by | You can set the spacing between constraining and constrained shapes by | ||||||
| calling \helpref{OGLConstraint::SetSpacing}{oglconstraintsetspacing}. | calling \helpref{wxOGLConstraint::SetSpacing}{wxoglconstraintsetspacing}. | ||||||
|  |  | ||||||
| Finally, a wxCompositeShape can have {\it divisions}, which are special child shapes of class | Finally, a wxCompositeShape can have {\it divisions}, which are special child shapes of class | ||||||
| wxDivisionShape (not to be confused with wxDividedShape). The purpose of this is to allow | wxDivisionShape (not to be confused with wxDividedShape). The purpose of this is to allow | ||||||
|   | |||||||
| @@ -1635,12 +1635,7 @@ void wxShape::RemoveLine(wxLineShape *line) | |||||||
| } | } | ||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
| char *wxShape::GetFunctor() | void wxShape::WriteAttributes(wxExpr *clause) | ||||||
| { |  | ||||||
|   return "node_image"; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void wxShape::WritePrologAttributes(wxExpr *clause) |  | ||||||
| { | { | ||||||
|   clause->AddAttributeValueString("type", GetClassInfo()->GetClassName()); |   clause->AddAttributeValueString("type", GetClassInfo()->GetClassName()); | ||||||
|   clause->AddAttributeValue("id", m_id); |   clause->AddAttributeValue("id", m_id); | ||||||
| @@ -1813,7 +1808,7 @@ void wxShape::WriteRegions(wxExpr *clause) | |||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| void wxShape::ReadPrologAttributes(wxExpr *clause) | void wxShape::ReadAttributes(wxExpr *clause) | ||||||
| { | { | ||||||
|   clause->GetAttributeValue("id", m_id); |   clause->GetAttributeValue("id", m_id); | ||||||
|   RegisterId(m_id); |   RegisterId(m_id); | ||||||
| @@ -2548,7 +2543,7 @@ bool wxShape::AncestorSelected() const | |||||||
|     return GetParent()->AncestorSelected(); |     return GetParent()->AncestorSelected(); | ||||||
| } | } | ||||||
|  |  | ||||||
| int wxShape::GetNumberOfAttachments() | int wxShape::GetNumberOfAttachments() const | ||||||
| { | { | ||||||
|   // Should return the MAXIMUM attachment point id here, |   // Should return the MAXIMUM attachment point id here, | ||||||
|   // so higher-level functions can iterate through all attachments, |   // so higher-level functions can iterate through all attachments, | ||||||
| @@ -2570,7 +2565,7 @@ int wxShape::GetNumberOfAttachments() | |||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| bool wxShape::AttachmentIsValid(int attachment) | bool wxShape::AttachmentIsValid(int attachment) const | ||||||
| { | { | ||||||
|   if ((attachment >= 0) && (attachment < 4)) |   if ((attachment >= 0) && (attachment < 4)) | ||||||
|     return TRUE; |     return TRUE; | ||||||
|   | |||||||
| @@ -269,7 +269,7 @@ class wxShape: public wxShapeEvtHandler | |||||||
|   virtual bool HitTest(double x, double y, int *attachment, double *distance); |   virtual bool HitTest(double x, double y, int *attachment, double *distance); | ||||||
|   inline void SetCentreResize(bool cr) { m_centreResize = cr; } |   inline void SetCentreResize(bool cr) { m_centreResize = cr; } | ||||||
|   inline bool GetCentreResize() const { return m_centreResize; } |   inline bool GetCentreResize() const { return m_centreResize; } | ||||||
|   inline wxList& GetLines() { return m_lines; } |   inline wxList& GetLines() const { return (wxList&) m_lines; } | ||||||
|   inline void SetDisableLabel(bool flag) { m_disableLabel = flag; } |   inline void SetDisableLabel(bool flag) { m_disableLabel = flag; } | ||||||
|   inline bool GetDisableLabel() const { return m_disableLabel; } |   inline bool GetDisableLabel() const { return m_disableLabel; } | ||||||
|   inline void SetAttachmentMode(bool flag) { m_attachmentMode = flag; } |   inline void SetAttachmentMode(bool flag) { m_attachmentMode = flag; } | ||||||
| @@ -364,10 +364,9 @@ class wxShape: public wxShapeEvtHandler | |||||||
|   void RemoveLine(wxLineShape *line); |   void RemoveLine(wxLineShape *line); | ||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
|   // Prolog database stuff |   // I/O | ||||||
|   virtual char *GetFunctor(); |   virtual void WriteAttributes(wxExpr *clause); | ||||||
|   virtual void WritePrologAttributes(wxExpr *clause); |   virtual void ReadAttributes(wxExpr *clause); | ||||||
|   virtual void ReadPrologAttributes(wxExpr *clause); |  | ||||||
|  |  | ||||||
|   // In case the object has constraints it needs to read in in a different pass |   // In case the object has constraints it needs to read in in a different pass | ||||||
|   inline virtual void ReadConstraints(wxExpr *WXUNUSED(clause), wxExprDatabase *WXUNUSED(database)) { }; |   inline virtual void ReadConstraints(wxExpr *WXUNUSED(clause), wxExprDatabase *WXUNUSED(database)) { }; | ||||||
| @@ -378,18 +377,18 @@ class wxShape: public wxShapeEvtHandler | |||||||
|   // Attachment code |   // Attachment code | ||||||
|   virtual bool GetAttachmentPosition(int attachment, double *x, double *y, |   virtual bool GetAttachmentPosition(int attachment, double *x, double *y, | ||||||
|                                      int nth = 0, int no_arcs = 1, wxLineShape *line = NULL); |                                      int nth = 0, int no_arcs = 1, wxLineShape *line = NULL); | ||||||
|   virtual int GetNumberOfAttachments(); |   virtual int GetNumberOfAttachments() const; | ||||||
|   virtual bool AttachmentIsValid(int attachment); |   virtual bool AttachmentIsValid(int attachment) const; | ||||||
|  |  | ||||||
|   // Assuming the attachment lies along a vertical or horizontal line, |   // Assuming the attachment lies along a vertical or horizontal line, | ||||||
|   // calculate the position on that point. |   // calculate the position on that point. | ||||||
|   wxRealPoint CalcSimpleAttachment(const wxRealPoint& pt1, const wxRealPoint& pt2, |   virtual wxRealPoint CalcSimpleAttachment(const wxRealPoint& pt1, const wxRealPoint& pt2, | ||||||
|     int nth, int noArcs, wxLineShape* line); |     int nth, int noArcs, wxLineShape* line); | ||||||
|  |  | ||||||
|   // Returns TRUE if pt1 <= pt2 in the sense that one point comes before another on an |   // Returns TRUE if pt1 <= pt2 in the sense that one point comes before another on an | ||||||
|   // edge of the shape. |   // edge of the shape. | ||||||
|   // attachmentPoint is the attachment point (= side) in question. |   // attachmentPoint is the attachment point (= side) in question. | ||||||
|   bool AttachmentSortTest(int attachmentPoint, const wxRealPoint& pt1, const wxRealPoint& pt2); |   virtual bool AttachmentSortTest(int attachmentPoint, const wxRealPoint& pt1, const wxRealPoint& pt2); | ||||||
|  |  | ||||||
|   virtual void EraseLinks(wxDC& dc, int attachment = -1, bool recurse = FALSE); |   virtual void EraseLinks(wxDC& dc, int attachment = -1, bool recurse = FALSE); | ||||||
|   virtual void DrawLinks(wxDC& dc, int attachment = -1, bool recurse = FALSE); |   virtual void DrawLinks(wxDC& dc, int attachment = -1, bool recurse = FALSE); | ||||||
| @@ -446,7 +445,7 @@ class wxShape: public wxShapeEvtHandler | |||||||
|  protected: |  protected: | ||||||
|   wxShapeEvtHandler*    m_eventHandler; |   wxShapeEvtHandler*    m_eventHandler; | ||||||
|   bool                  m_formatted; |   bool                  m_formatted; | ||||||
|   double                 m_xpos, m_ypos; |   double                m_xpos, m_ypos; | ||||||
|   wxPen*                m_pen; |   wxPen*                m_pen; | ||||||
|   wxBrush*              m_brush; |   wxBrush*              m_brush; | ||||||
|   wxFont*               m_font; |   wxFont*               m_font; | ||||||
| @@ -464,7 +463,7 @@ class wxShape: public wxShapeEvtHandler | |||||||
|   bool                  m_selected; |   bool                  m_selected; | ||||||
|   bool                  m_highlighted;      // Different from selected: user-defined highlighting, |   bool                  m_highlighted;      // Different from selected: user-defined highlighting, | ||||||
|                                             // e.g. thick border. |                                             // e.g. thick border. | ||||||
|   double                 m_rotation; |   double                m_rotation; | ||||||
|   int                   m_sensitivity; |   int                   m_sensitivity; | ||||||
|   bool                  m_draggable; |   bool                  m_draggable; | ||||||
|   bool                  m_attachmentMode;   // TRUE if using attachments, FALSE otherwise |   bool                  m_attachmentMode;   // TRUE if using attachments, FALSE otherwise | ||||||
| @@ -534,11 +533,11 @@ class wxPolygonShape: public wxShape | |||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
|   // Prolog database stuff |   // Prolog database stuff | ||||||
|   void WritePrologAttributes(wxExpr *clause); |   void WriteAttributes(wxExpr *clause); | ||||||
|   void ReadPrologAttributes(wxExpr *clause); |   void ReadAttributes(wxExpr *clause); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   int GetNumberOfAttachments(); |   int GetNumberOfAttachments() const; | ||||||
|   bool GetAttachmentPosition(int attachment, double *x, double *y, |   bool GetAttachmentPosition(int attachment, double *x, double *y, | ||||||
|                                      int nth = 0, int no_arcs = 1, wxLineShape *line = NULL); |                                      int nth = 0, int no_arcs = 1, wxLineShape *line = NULL); | ||||||
|   bool AttachmentIsValid(int attachment); |   bool AttachmentIsValid(int attachment); | ||||||
| @@ -550,10 +549,10 @@ class wxPolygonShape: public wxShape | |||||||
|  private: |  private: | ||||||
|   wxList*       m_points; |   wxList*       m_points; | ||||||
|   wxList*       m_originalPoints; |   wxList*       m_originalPoints; | ||||||
|   double         m_boundWidth; |   double        m_boundWidth; | ||||||
|   double         m_boundHeight; |   double        m_boundHeight; | ||||||
|   double         m_originalWidth; |   double        m_originalWidth; | ||||||
|   double         m_originalHeight; |   double        m_originalHeight; | ||||||
| }; | }; | ||||||
|  |  | ||||||
| class wxRectangleShape: public wxShape | class wxRectangleShape: public wxShape | ||||||
| @@ -571,11 +570,11 @@ class wxRectangleShape: public wxShape | |||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
|   // Prolog database stuff |   // Prolog database stuff | ||||||
|   void WritePrologAttributes(wxExpr *clause); |   void WriteAttributes(wxExpr *clause); | ||||||
|   void ReadPrologAttributes(wxExpr *clause); |   void ReadAttributes(wxExpr *clause); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   int GetNumberOfAttachments(); |   int GetNumberOfAttachments() const; | ||||||
|   bool GetAttachmentPosition(int attachment, double *x, double *y, |   bool GetAttachmentPosition(int attachment, double *x, double *y, | ||||||
|                                      int nth = 0, int no_arcs = 1, wxLineShape *line = NULL); |                                      int nth = 0, int no_arcs = 1, wxLineShape *line = NULL); | ||||||
|   // Does the copying for this object |   // Does the copying for this object | ||||||
| @@ -601,7 +600,7 @@ class wxTextShape: public wxRectangleShape | |||||||
|   void OnDraw(wxDC& dc); |   void OnDraw(wxDC& dc); | ||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
|   void WritePrologAttributes(wxExpr *clause); |   void WriteAttributes(wxExpr *clause); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   // Does the copying for this object |   // Does the copying for this object | ||||||
| @@ -624,11 +623,11 @@ class wxEllipseShape: public wxShape | |||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
|   // Prolog database stuff |   // Prolog database stuff | ||||||
|   void WritePrologAttributes(wxExpr *clause); |   void WriteAttributes(wxExpr *clause); | ||||||
|   void ReadPrologAttributes(wxExpr *clause); |   void ReadAttributes(wxExpr *clause); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   int GetNumberOfAttachments(); |   int GetNumberOfAttachments() const; | ||||||
|   bool GetAttachmentPosition(int attachment, double *x, double *y, |   bool GetAttachmentPosition(int attachment, double *x, double *y, | ||||||
|                                      int nth = 0, int no_arcs = 1, wxLineShape *line = NULL); |                                      int nth = 0, int no_arcs = 1, wxLineShape *line = NULL); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -679,9 +679,9 @@ void wxPolygonShape::ResetControlPoints() | |||||||
|  |  | ||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
| void wxPolygonShape::WritePrologAttributes(wxExpr *clause) | void wxPolygonShape::WriteAttributes(wxExpr *clause) | ||||||
| { | { | ||||||
|   wxShape::WritePrologAttributes(clause); |   wxShape::WriteAttributes(clause); | ||||||
|  |  | ||||||
|   clause->AddAttributeValue("x", m_xpos); |   clause->AddAttributeValue("x", m_xpos); | ||||||
|   clause->AddAttributeValue("y", m_ypos); |   clause->AddAttributeValue("y", m_ypos); | ||||||
| @@ -722,9 +722,9 @@ void wxPolygonShape::WritePrologAttributes(wxExpr *clause) | |||||||
|   clause->AddAttributeValue("m_originalPoints", list); |   clause->AddAttributeValue("m_originalPoints", list); | ||||||
| } | } | ||||||
|  |  | ||||||
| void wxPolygonShape::ReadPrologAttributes(wxExpr *clause) | void wxPolygonShape::ReadAttributes(wxExpr *clause) | ||||||
| { | { | ||||||
|   wxShape::ReadPrologAttributes(clause); |   wxShape::ReadAttributes(clause); | ||||||
|  |  | ||||||
|   // Read a list of lists |   // Read a list of lists | ||||||
|   m_points = new wxList; |   m_points = new wxList; | ||||||
| @@ -868,7 +868,7 @@ void wxPolygonShape::Copy(wxShape& copy) | |||||||
|   polyCopy.m_originalHeight = m_originalHeight; |   polyCopy.m_originalHeight = m_originalHeight; | ||||||
| } | } | ||||||
|  |  | ||||||
| int wxPolygonShape::GetNumberOfAttachments() | int wxPolygonShape::GetNumberOfAttachments() const | ||||||
| { | { | ||||||
|   int maxN = (m_points ? (m_points->Number() - 1) : 0); |   int maxN = (m_points ? (m_points->Number() - 1) : 0); | ||||||
|   wxNode *node = m_attachmentPoints.First(); |   wxNode *node = m_attachmentPoints.First(); | ||||||
| @@ -991,9 +991,9 @@ bool wxRectangleShape::GetPerimeterPoint(double x1, double y1, | |||||||
| } | } | ||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
| void wxRectangleShape::WritePrologAttributes(wxExpr *clause) | void wxRectangleShape::WriteAttributes(wxExpr *clause) | ||||||
| { | { | ||||||
|   wxShape::WritePrologAttributes(clause); |   wxShape::WriteAttributes(clause); | ||||||
|   clause->AddAttributeValue("x", m_xpos); |   clause->AddAttributeValue("x", m_xpos); | ||||||
|   clause->AddAttributeValue("y", m_ypos); |   clause->AddAttributeValue("y", m_ypos); | ||||||
|  |  | ||||||
| @@ -1003,9 +1003,9 @@ void wxRectangleShape::WritePrologAttributes(wxExpr *clause) | |||||||
|     clause->AddAttributeValue("corner", m_cornerRadius); |     clause->AddAttributeValue("corner", m_cornerRadius); | ||||||
| } | } | ||||||
|  |  | ||||||
| void wxRectangleShape::ReadPrologAttributes(wxExpr *clause) | void wxRectangleShape::ReadAttributes(wxExpr *clause) | ||||||
| { | { | ||||||
|   wxShape::ReadPrologAttributes(clause); |   wxShape::ReadAttributes(clause); | ||||||
|   clause->AssignAttributeValue("width", &m_width); |   clause->AssignAttributeValue("width", &m_width); | ||||||
|   clause->AssignAttributeValue("height", &m_height); |   clause->AssignAttributeValue("height", &m_height); | ||||||
|   clause->AssignAttributeValue("corner", &m_cornerRadius); |   clause->AssignAttributeValue("corner", &m_cornerRadius); | ||||||
| @@ -1031,7 +1031,7 @@ void wxRectangleShape::Copy(wxShape& copy) | |||||||
|   rectCopy.m_cornerRadius = m_cornerRadius; |   rectCopy.m_cornerRadius = m_cornerRadius; | ||||||
| } | } | ||||||
|  |  | ||||||
| int wxRectangleShape::GetNumberOfAttachments() | int wxRectangleShape::GetNumberOfAttachments() const | ||||||
| { | { | ||||||
|   return wxShape::GetNumberOfAttachments(); |   return wxShape::GetNumberOfAttachments(); | ||||||
| } | } | ||||||
| @@ -1218,9 +1218,9 @@ void wxTextShape::Copy(wxShape& copy) | |||||||
| } | } | ||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
| void wxTextShape::WritePrologAttributes(wxExpr *clause) | void wxTextShape::WriteAttributes(wxExpr *clause) | ||||||
| { | { | ||||||
|   wxRectangleShape::WritePrologAttributes(clause); |   wxRectangleShape::WriteAttributes(clause); | ||||||
| } | } | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| @@ -1285,9 +1285,9 @@ void wxEllipseShape::SetSize(double x, double y, bool recursive) | |||||||
| } | } | ||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
| void wxEllipseShape::WritePrologAttributes(wxExpr *clause) | void wxEllipseShape::WriteAttributes(wxExpr *clause) | ||||||
| { | { | ||||||
|   wxShape::WritePrologAttributes(clause); |   wxShape::WriteAttributes(clause); | ||||||
|   clause->AddAttributeValue("x", m_xpos); |   clause->AddAttributeValue("x", m_xpos); | ||||||
|   clause->AddAttributeValue("y", m_ypos); |   clause->AddAttributeValue("y", m_ypos); | ||||||
|  |  | ||||||
| @@ -1295,9 +1295,9 @@ void wxEllipseShape::WritePrologAttributes(wxExpr *clause) | |||||||
|   clause->AddAttributeValue("height", m_height); |   clause->AddAttributeValue("height", m_height); | ||||||
| } | } | ||||||
|  |  | ||||||
| void wxEllipseShape::ReadPrologAttributes(wxExpr *clause) | void wxEllipseShape::ReadAttributes(wxExpr *clause) | ||||||
| { | { | ||||||
|   wxShape::ReadPrologAttributes(clause); |   wxShape::ReadAttributes(clause); | ||||||
|   clause->AssignAttributeValue("width", &m_width); |   clause->AssignAttributeValue("width", &m_width); | ||||||
|   clause->AssignAttributeValue("height", &m_height); |   clause->AssignAttributeValue("height", &m_height); | ||||||
|  |  | ||||||
| @@ -1322,7 +1322,7 @@ void wxEllipseShape::Copy(wxShape& copy) | |||||||
|   ellipseCopy.m_height = m_height; |   ellipseCopy.m_height = m_height; | ||||||
| } | } | ||||||
|  |  | ||||||
| int wxEllipseShape::GetNumberOfAttachments() | int wxEllipseShape::GetNumberOfAttachments() const | ||||||
| { | { | ||||||
|   return wxShape::GetNumberOfAttachments(); |   return wxShape::GetNumberOfAttachments(); | ||||||
| } | } | ||||||
| @@ -1480,7 +1480,7 @@ void wxControlPoint::OnEndDragLeft(double x, double y, int keys, int attachment) | |||||||
|     m_shape->GetEventHandler()->OnSizingEndDragLeft(this, x, y, keys, attachment); |     m_shape->GetEventHandler()->OnSizingEndDragLeft(this, x, y, keys, attachment); | ||||||
| } | } | ||||||
|  |  | ||||||
| int wxControlPoint::GetNumberOfAttachments() | int wxControlPoint::GetNumberOfAttachments() const | ||||||
| { | { | ||||||
|   return 1; |   return 1; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -62,7 +62,7 @@ class wxControlPoint: public wxRectangleShape | |||||||
|  |  | ||||||
|   bool GetAttachmentPosition(int attachment, double *x, double *y, |   bool GetAttachmentPosition(int attachment, double *x, double *y, | ||||||
|                                      int nth = 0, int no_arcs = 1, wxLineShape *line = NULL); |                                      int nth = 0, int no_arcs = 1, wxLineShape *line = NULL); | ||||||
|   int GetNumberOfAttachments(); |   int GetNumberOfAttachments() const; | ||||||
|  |  | ||||||
|   inline void SetEraseObject(bool er) { m_eraseObject = er; } |   inline void SetEraseObject(bool er) { m_eraseObject = er; } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -79,23 +79,17 @@ void wxBitmapShape::SetSize(double w, double h, bool recursive) | |||||||
| } | } | ||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
| // Prolog database stuff | void wxBitmapShape::WriteAttributes(wxExpr *clause) | ||||||
| char *wxBitmapShape::GetFunctor() |  | ||||||
| { |  | ||||||
|   return "node_image"; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void wxBitmapShape::WritePrologAttributes(wxExpr *clause) |  | ||||||
| { | { | ||||||
|   // Can't really save the bitmap; so instantiate the bitmap |   // Can't really save the bitmap; so instantiate the bitmap | ||||||
|   // at a higher level in the application, from a symbol library. |   // at a higher level in the application, from a symbol library. | ||||||
|   wxRectangleShape::WritePrologAttributes(clause); |   wxRectangleShape::WriteAttributes(clause); | ||||||
|   clause->AddAttributeValueString("filename", m_filename); |   clause->AddAttributeValueString("filename", m_filename); | ||||||
| } | } | ||||||
|  |  | ||||||
| void wxBitmapShape::ReadPrologAttributes(wxExpr *clause) | void wxBitmapShape::ReadAttributes(wxExpr *clause) | ||||||
| { | { | ||||||
|   wxRectangleShape::ReadPrologAttributes(clause); |   wxRectangleShape::ReadAttributes(clause); | ||||||
|   clause->GetAttributeValue("filename", m_filename); |   clause->GetAttributeValue("filename", m_filename); | ||||||
| } | } | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -28,10 +28,9 @@ class wxBitmapShape: public wxRectangleShape | |||||||
|   void OnDraw(wxDC& dc); |   void OnDraw(wxDC& dc); | ||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
|   // Prolog database stuff |   // I/O | ||||||
|   char *GetFunctor(); |   void WriteAttributes(wxExpr *clause); | ||||||
|   void WritePrologAttributes(wxExpr *clause); |   void ReadAttributes(wxExpr *clause); | ||||||
|   void ReadPrologAttributes(wxExpr *clause); |  | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   // Does the copying for this object |   // Does the copying for this object | ||||||
|   | |||||||
| @@ -80,7 +80,7 @@ wxCompositeShape::~wxCompositeShape() | |||||||
|   wxNode *node = m_constraints.First(); |   wxNode *node = m_constraints.First(); | ||||||
|   while (node) |   while (node) | ||||||
|   { |   { | ||||||
|     OGLConstraint *constraint = (OGLConstraint *)node->Data(); |     wxOGLConstraint *constraint = (wxOGLConstraint *)node->Data(); | ||||||
|     delete constraint; |     delete constraint; | ||||||
|     node = node->Next(); |     node = node->Next(); | ||||||
|   } |   } | ||||||
| @@ -323,7 +323,7 @@ void wxCompositeShape::DeleteConstraintsInvolvingChild(wxShape *child) | |||||||
|   wxNode *node = m_constraints.First(); |   wxNode *node = m_constraints.First(); | ||||||
|   while (node) |   while (node) | ||||||
|   { |   { | ||||||
|     OGLConstraint *constraint = (OGLConstraint *)node->Data(); |     wxOGLConstraint *constraint = (wxOGLConstraint *)node->Data(); | ||||||
|     wxNode *nextNode = node->Next(); |     wxNode *nextNode = node->Next(); | ||||||
|  |  | ||||||
|     if ((constraint->m_constrainingObject == child) || |     if ((constraint->m_constrainingObject == child) || | ||||||
| @@ -341,7 +341,7 @@ void wxCompositeShape::RemoveChildFromConstraints(wxShape *child) | |||||||
|   wxNode *node = m_constraints.First(); |   wxNode *node = m_constraints.First(); | ||||||
|   while (node) |   while (node) | ||||||
|   { |   { | ||||||
|     OGLConstraint *constraint = (OGLConstraint *)node->Data(); |     wxOGLConstraint *constraint = (wxOGLConstraint *)node->Data(); | ||||||
|     wxNode *nextNode = node->Next(); |     wxNode *nextNode = node->Next(); | ||||||
|  |  | ||||||
|     if (constraint->m_constrainedObjects.Member(child)) |     if (constraint->m_constrainedObjects.Member(child)) | ||||||
| @@ -396,7 +396,7 @@ void wxCompositeShape::Copy(wxShape& copy) | |||||||
|   node = m_constraints.First(); |   node = m_constraints.First(); | ||||||
|   while (node) |   while (node) | ||||||
|   { |   { | ||||||
|     OGLConstraint *constraint = (OGLConstraint *)node->Data(); |     wxOGLConstraint *constraint = (wxOGLConstraint *)node->Data(); | ||||||
|  |  | ||||||
|     wxShape *newConstraining = (wxShape *)(oglObjectCopyMapping.Find((long)constraint->m_constrainingObject)->Data()); |     wxShape *newConstraining = (wxShape *)(oglObjectCopyMapping.Find((long)constraint->m_constrainingObject)->Data()); | ||||||
|  |  | ||||||
| @@ -410,7 +410,7 @@ void wxCompositeShape::Copy(wxShape& copy) | |||||||
|       node2 = node2->Next();  |       node2 = node2->Next();  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     OGLConstraint *newConstraint = new OGLConstraint(constraint->m_constraintType, newConstraining, |     wxOGLConstraint *newConstraint = new wxOGLConstraint(constraint->m_constraintType, newConstraining, | ||||||
|                                             newConstrainedList); |                                             newConstrainedList); | ||||||
|     newConstraint->m_constraintId = constraint->m_constraintId; |     newConstraint->m_constraintId = constraint->m_constraintId; | ||||||
|     if (constraint->m_constraintName) |     if (constraint->m_constraintName) | ||||||
| @@ -457,7 +457,7 @@ void wxCompositeShape::Copy(wxShape& copy) | |||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| OGLConstraint *wxCompositeShape::AddConstraint(OGLConstraint *constraint) | wxOGLConstraint *wxCompositeShape::AddConstraint(wxOGLConstraint *constraint) | ||||||
| { | { | ||||||
|   m_constraints.Append(constraint); |   m_constraints.Append(constraint); | ||||||
|   if (constraint->m_constraintId == 0) |   if (constraint->m_constraintId == 0) | ||||||
| @@ -465,32 +465,32 @@ OGLConstraint *wxCompositeShape::AddConstraint(OGLConstraint *constraint) | |||||||
|   return constraint; |   return constraint; | ||||||
| } | } | ||||||
|  |  | ||||||
| OGLConstraint *wxCompositeShape::AddConstraint(int type, wxShape *constraining, wxList& constrained) | wxOGLConstraint *wxCompositeShape::AddConstraint(int type, wxShape *constraining, wxList& constrained) | ||||||
| { | { | ||||||
|   OGLConstraint *constraint = new OGLConstraint(type, constraining, constrained); |   wxOGLConstraint *constraint = new wxOGLConstraint(type, constraining, constrained); | ||||||
|   if (constraint->m_constraintId == 0) |   if (constraint->m_constraintId == 0) | ||||||
|     constraint->m_constraintId = NewId(); |     constraint->m_constraintId = NewId(); | ||||||
|   m_constraints.Append(constraint); |   m_constraints.Append(constraint); | ||||||
|   return constraint; |   return constraint; | ||||||
| } | } | ||||||
|  |  | ||||||
| OGLConstraint *wxCompositeShape::AddConstraint(int type, wxShape *constraining, wxShape *constrained) | wxOGLConstraint *wxCompositeShape::AddConstraint(int type, wxShape *constraining, wxShape *constrained) | ||||||
| { | { | ||||||
|   wxList l; |   wxList l; | ||||||
|   l.Append(constrained); |   l.Append(constrained); | ||||||
|   OGLConstraint *constraint = new OGLConstraint(type, constraining, l); |   wxOGLConstraint *constraint = new wxOGLConstraint(type, constraining, l); | ||||||
|   if (constraint->m_constraintId == 0) |   if (constraint->m_constraintId == 0) | ||||||
|     constraint->m_constraintId = NewId(); |     constraint->m_constraintId = NewId(); | ||||||
|   m_constraints.Append(constraint); |   m_constraints.Append(constraint); | ||||||
|   return constraint; |   return constraint; | ||||||
| } | } | ||||||
|  |  | ||||||
| OGLConstraint *wxCompositeShape::FindConstraint(long cId, wxCompositeShape **actualComposite) | wxOGLConstraint *wxCompositeShape::FindConstraint(long cId, wxCompositeShape **actualComposite) | ||||||
| { | { | ||||||
|   wxNode *node = m_constraints.First(); |   wxNode *node = m_constraints.First(); | ||||||
|   while (node) |   while (node) | ||||||
|   { |   { | ||||||
|     OGLConstraint *constraint = (OGLConstraint *)node->Data(); |     wxOGLConstraint *constraint = (wxOGLConstraint *)node->Data(); | ||||||
|     if (constraint->m_constraintId == cId) |     if (constraint->m_constraintId == cId) | ||||||
|     { |     { | ||||||
|       if (actualComposite) |       if (actualComposite) | ||||||
| @@ -506,7 +506,7 @@ OGLConstraint *wxCompositeShape::FindConstraint(long cId, wxCompositeShape **act | |||||||
|     wxShape *child = (wxShape *)node->Data(); |     wxShape *child = (wxShape *)node->Data(); | ||||||
|     if (child->IsKindOf(CLASSINFO(wxCompositeShape))) |     if (child->IsKindOf(CLASSINFO(wxCompositeShape))) | ||||||
|     { |     { | ||||||
|       OGLConstraint *constraint = ((wxCompositeShape *)child)->FindConstraint(cId, actualComposite); |       wxOGLConstraint *constraint = ((wxCompositeShape *)child)->FindConstraint(cId, actualComposite); | ||||||
|       if (constraint) |       if (constraint) | ||||||
|       { |       { | ||||||
|         if (actualComposite) |         if (actualComposite) | ||||||
| @@ -519,7 +519,7 @@ OGLConstraint *wxCompositeShape::FindConstraint(long cId, wxCompositeShape **act | |||||||
|   return NULL; |   return NULL; | ||||||
| } | } | ||||||
|  |  | ||||||
| void wxCompositeShape::DeleteConstraint(OGLConstraint *constraint) | void wxCompositeShape::DeleteConstraint(wxOGLConstraint *constraint) | ||||||
| { | { | ||||||
|   m_constraints.DeleteObject(constraint); |   m_constraints.DeleteObject(constraint); | ||||||
|   delete constraint; |   delete constraint; | ||||||
| @@ -595,7 +595,7 @@ bool wxCompositeShape::Constrain() | |||||||
|   node = m_constraints.First(); |   node = m_constraints.First(); | ||||||
|   while (node) |   while (node) | ||||||
|   { |   { | ||||||
|     OGLConstraint *constraint = (OGLConstraint *)node->Data(); |     wxOGLConstraint *constraint = (wxOGLConstraint *)node->Data(); | ||||||
|     if (constraint->Evaluate()) changed = TRUE; |     if (constraint->Evaluate()) changed = TRUE; | ||||||
|     node = node->Next(); |     node = node->Next(); | ||||||
|   } |   } | ||||||
| @@ -603,9 +603,9 @@ bool wxCompositeShape::Constrain() | |||||||
| } | } | ||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
| void wxCompositeShape::WritePrologAttributes(wxExpr *clause) | void wxCompositeShape::WriteAttributes(wxExpr *clause) | ||||||
| { | { | ||||||
|   wxRectangleShape::WritePrologAttributes(clause); |   wxRectangleShape::WriteAttributes(clause); | ||||||
|  |  | ||||||
| //  clause->AddAttributeValue("selectable", (long)selectable); | //  clause->AddAttributeValue("selectable", (long)selectable); | ||||||
|  |  | ||||||
| @@ -615,7 +615,7 @@ void wxCompositeShape::WritePrologAttributes(wxExpr *clause) | |||||||
|   wxNode *node = m_constraints.First(); |   wxNode *node = m_constraints.First(); | ||||||
|   while (node) |   while (node) | ||||||
|   { |   { | ||||||
|     OGLConstraint *constraint = (OGLConstraint *)node->Data(); |     wxOGLConstraint *constraint = (wxOGLConstraint *)node->Data(); | ||||||
|     sprintf(m_constraintNameBuf, "constraint%d", constraintNo); |     sprintf(m_constraintNameBuf, "constraint%d", constraintNo); | ||||||
|  |  | ||||||
|     // Each constraint is stored in the form |     // Each constraint is stored in the form | ||||||
| @@ -674,9 +674,9 @@ void wxCompositeShape::WritePrologAttributes(wxExpr *clause) | |||||||
| // so as to be able to link up to parent. So we may not be able | // so as to be able to link up to parent. So we may not be able | ||||||
| // to find the constraint participants until we've read everything | // to find the constraint participants until we've read everything | ||||||
| // in. Need to have another pass for composites. | // in. Need to have another pass for composites. | ||||||
| void wxCompositeShape::ReadPrologAttributes(wxExpr *clause) | void wxCompositeShape::ReadAttributes(wxExpr *clause) | ||||||
| { | { | ||||||
|   wxRectangleShape::ReadPrologAttributes(clause); |   wxRectangleShape::ReadAttributes(clause); | ||||||
|  |  | ||||||
| //  clause->GetAttributeValue("selectable", selectable); | //  clause->GetAttributeValue("selectable", selectable); | ||||||
| } | } | ||||||
| @@ -747,7 +747,7 @@ void wxCompositeShape::ReadConstraints(wxExpr *clause, wxExprDatabase *database) | |||||||
|       i ++; |       i ++; | ||||||
|       currentIdExpr = constrainedExpr->Nth(i); |       currentIdExpr = constrainedExpr->Nth(i); | ||||||
|     } |     } | ||||||
|     OGLConstraint *newConstraint = AddConstraint(cType, m_constrainingObject, m_constrainedObjects); |     wxOGLConstraint *newConstraint = AddConstraint(cType, m_constrainingObject, m_constrainedObjects); | ||||||
|     newConstraint->SetSpacing(cXSpacing, cYSpacing); |     newConstraint->SetSpacing(cXSpacing, cYSpacing); | ||||||
|     newConstraint->m_constraintId = cId; |     newConstraint->m_constraintId = cId; | ||||||
|     newConstraint->m_constraintName = (const char*) cName; |     newConstraint->m_constraintName = (const char*) cName; | ||||||
| @@ -989,9 +989,9 @@ void wxDivisionShape::Copy(wxShape& copy) | |||||||
| } | } | ||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
| void wxDivisionShape::WritePrologAttributes(wxExpr *clause) | void wxDivisionShape::WriteAttributes(wxExpr *clause) | ||||||
| { | { | ||||||
|   wxCompositeShape::WritePrologAttributes(clause); |   wxCompositeShape::WriteAttributes(clause); | ||||||
|  |  | ||||||
|   if (m_leftSide) |   if (m_leftSide) | ||||||
|     clause->AddAttributeValue("left_side", (long)m_leftSide->GetId()); |     clause->AddAttributeValue("left_side", (long)m_leftSide->GetId()); | ||||||
| @@ -1009,9 +1009,9 @@ void wxDivisionShape::WritePrologAttributes(wxExpr *clause) | |||||||
|   clause->AddAttributeValueString("top_style", m_topSideStyle); |   clause->AddAttributeValueString("top_style", m_topSideStyle); | ||||||
| } | } | ||||||
|  |  | ||||||
| void wxDivisionShape::ReadPrologAttributes(wxExpr *clause) | void wxDivisionShape::ReadAttributes(wxExpr *clause) | ||||||
| { | { | ||||||
|   wxCompositeShape::ReadPrologAttributes(clause); |   wxCompositeShape::ReadAttributes(clause); | ||||||
|  |  | ||||||
|   clause->GetAttributeValue("handle_side", m_handleSide); |   clause->GetAttributeValue("handle_side", m_handleSide); | ||||||
|   clause->GetAttributeValue("left_colour", m_leftSideColour); |   clause->GetAttributeValue("left_colour", m_leftSideColour); | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ | |||||||
| #endif | #endif | ||||||
|  |  | ||||||
| class wxDivisionShape; | class wxDivisionShape; | ||||||
| class OGLConstraint; | class wxOGLConstraint; | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * A composite object is an invisible rectangle surrounding all children |  * A composite object is an invisible rectangle surrounding all children | ||||||
| @@ -51,11 +51,11 @@ public: | |||||||
|   void AddChild(wxShape *child, wxShape *addAfter = NULL); |   void AddChild(wxShape *child, wxShape *addAfter = NULL); | ||||||
|   void RemoveChild(wxShape *child); |   void RemoveChild(wxShape *child); | ||||||
|  |  | ||||||
|   OGLConstraint *AddConstraint(OGLConstraint *constraint); |   wxOGLConstraint *AddConstraint(wxOGLConstraint *constraint); | ||||||
|   OGLConstraint *AddConstraint(int type, wxShape *constraining, wxList& constrained); |   wxOGLConstraint *AddConstraint(int type, wxShape *constraining, wxList& constrained); | ||||||
|   OGLConstraint *AddConstraint(int type, wxShape *constraining, wxShape *constrained); |   wxOGLConstraint *AddConstraint(int type, wxShape *constraining, wxShape *constrained); | ||||||
|  |  | ||||||
|   void DeleteConstraint(OGLConstraint *constraint); |   void DeleteConstraint(wxOGLConstraint *constraint); | ||||||
|  |  | ||||||
|   // Delete constraints that involve this child. |   // Delete constraints that involve this child. | ||||||
|   void DeleteConstraintsInvolvingChild(wxShape *child); |   void DeleteConstraintsInvolvingChild(wxShape *child); | ||||||
| @@ -66,7 +66,7 @@ public: | |||||||
|  |  | ||||||
|   // Find constraint, also returning actual composite the constraint was in, |   // Find constraint, also returning actual composite the constraint was in, | ||||||
|   // in case it had to find it recursively. |   // in case it had to find it recursively. | ||||||
|   OGLConstraint *FindConstraint(long id, wxCompositeShape **actualComposite = NULL); |   wxOGLConstraint *FindConstraint(long id, wxCompositeShape **actualComposite = NULL); | ||||||
|  |  | ||||||
|   // Returns TRUE if something changed |   // Returns TRUE if something changed | ||||||
|   bool Constrain(); |   bool Constrain(); | ||||||
| @@ -79,8 +79,8 @@ public: | |||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
|   // Prolog database stuff |   // Prolog database stuff | ||||||
|   void WritePrologAttributes(wxExpr *clause); |   void WriteAttributes(wxExpr *clause); | ||||||
|   void ReadPrologAttributes(wxExpr *clause); |   void ReadAttributes(wxExpr *clause); | ||||||
|   // In case the object has constraints it needs to read in in a different pass |   // In case the object has constraints it needs to read in in a different pass | ||||||
|   void ReadConstraints(wxExpr *clause, wxExprDatabase *database); |   void ReadConstraints(wxExpr *clause, wxExprDatabase *database); | ||||||
| #endif | #endif | ||||||
| @@ -155,8 +155,8 @@ class wxDivisionShape: public wxCompositeShape | |||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
|   // Prolog database stuff |   // Prolog database stuff | ||||||
|   void WritePrologAttributes(wxExpr *clause); |   void WriteAttributes(wxExpr *clause); | ||||||
|   void ReadPrologAttributes(wxExpr *clause); |   void ReadAttributes(wxExpr *clause); | ||||||
| #endif | #endif | ||||||
|   // Does the copying for this object |   // Does the copying for this object | ||||||
|   void Copy(wxShape& copy); |   void Copy(wxShape& copy); | ||||||
|   | |||||||
| @@ -32,95 +32,95 @@ | |||||||
| #include "constrnt.h" | #include "constrnt.h" | ||||||
| #include "canvas.h" | #include "canvas.h" | ||||||
|  |  | ||||||
| wxList *OGLConstraintTypes = NULL; | wxList *wxOGLConstraintTypes = NULL; | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * Constraint type |  * Constraint type | ||||||
|  * |  * | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| IMPLEMENT_DYNAMIC_CLASS(OGLConstraintType, wxObject) | IMPLEMENT_DYNAMIC_CLASS(wxOGLConstraintType, wxObject) | ||||||
|  |  | ||||||
| OGLConstraintType::OGLConstraintType(int theType, const wxString& theName, const wxString& thePhrase) | wxOGLConstraintType::wxOGLConstraintType(int theType, const wxString& theName, const wxString& thePhrase) | ||||||
| { | { | ||||||
|   m_type = theType; |   m_type = theType; | ||||||
|   m_name = theName; |   m_name = theName; | ||||||
|   m_phrase = thePhrase; |   m_phrase = thePhrase; | ||||||
| } | } | ||||||
|  |  | ||||||
| OGLConstraintType::~OGLConstraintType() | wxOGLConstraintType::~wxOGLConstraintType() | ||||||
| { | { | ||||||
| } | } | ||||||
|  |  | ||||||
| void OGLInitializeConstraintTypes() | void OGLInitializeConstraintTypes() | ||||||
| { | { | ||||||
|     if (!OGLConstraintTypes) |     if (!wxOGLConstraintTypes) | ||||||
|         return; |         return; | ||||||
|  |  | ||||||
|     OGLConstraintTypes = new wxList(wxKEY_INTEGER); |     wxOGLConstraintTypes = new wxList(wxKEY_INTEGER); | ||||||
|  |  | ||||||
|     OGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_VERTICALLY, |     wxOGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_VERTICALLY, | ||||||
|         new OGLConstraintType(gyCONSTRAINT_CENTRED_VERTICALLY, "Centre vertically", "centred vertically w.r.t.")); |         new wxOGLConstraintType(gyCONSTRAINT_CENTRED_VERTICALLY, "Centre vertically", "centred vertically w.r.t.")); | ||||||
|  |  | ||||||
|     OGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_HORIZONTALLY, |     wxOGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_HORIZONTALLY, | ||||||
|         new OGLConstraintType(gyCONSTRAINT_CENTRED_HORIZONTALLY, "Centre horizontally", "centred horizontally w.r.t.")); |         new wxOGLConstraintType(gyCONSTRAINT_CENTRED_HORIZONTALLY, "Centre horizontally", "centred horizontally w.r.t.")); | ||||||
|  |  | ||||||
|     OGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_BOTH, |     wxOGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_BOTH, | ||||||
|         new OGLConstraintType(gyCONSTRAINT_CENTRED_BOTH, "Centre", "centred w.r.t.")); |         new wxOGLConstraintType(gyCONSTRAINT_CENTRED_BOTH, "Centre", "centred w.r.t.")); | ||||||
|  |  | ||||||
|     OGLConstraintTypes->Append(gyCONSTRAINT_LEFT_OF, |     wxOGLConstraintTypes->Append(gyCONSTRAINT_LEFT_OF, | ||||||
|         new OGLConstraintType(gyCONSTRAINT_LEFT_OF, "Left of", "left of")); |         new wxOGLConstraintType(gyCONSTRAINT_LEFT_OF, "Left of", "left of")); | ||||||
|  |  | ||||||
|     OGLConstraintTypes->Append(gyCONSTRAINT_RIGHT_OF, |     wxOGLConstraintTypes->Append(gyCONSTRAINT_RIGHT_OF, | ||||||
|         new OGLConstraintType(gyCONSTRAINT_RIGHT_OF, "Right of", "right of")); |         new wxOGLConstraintType(gyCONSTRAINT_RIGHT_OF, "Right of", "right of")); | ||||||
|  |  | ||||||
|     OGLConstraintTypes->Append(gyCONSTRAINT_ABOVE, |     wxOGLConstraintTypes->Append(gyCONSTRAINT_ABOVE, | ||||||
|         new OGLConstraintType(gyCONSTRAINT_ABOVE, "Above", "above")); |         new wxOGLConstraintType(gyCONSTRAINT_ABOVE, "Above", "above")); | ||||||
|  |  | ||||||
|     OGLConstraintTypes->Append(gyCONSTRAINT_BELOW, |     wxOGLConstraintTypes->Append(gyCONSTRAINT_BELOW, | ||||||
|         new OGLConstraintType(gyCONSTRAINT_BELOW, "Below", "below")); |         new wxOGLConstraintType(gyCONSTRAINT_BELOW, "Below", "below")); | ||||||
|  |  | ||||||
|     // Alignment |     // Alignment | ||||||
|     OGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_TOP, |     wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_TOP, | ||||||
|         new OGLConstraintType(gyCONSTRAINT_ALIGNED_TOP, "Top-aligned", "aligned to the top of")); |         new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_TOP, "Top-aligned", "aligned to the top of")); | ||||||
|  |  | ||||||
|     OGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_BOTTOM, |     wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_BOTTOM, | ||||||
|         new OGLConstraintType(gyCONSTRAINT_ALIGNED_BOTTOM, "Bottom-aligned", "aligned to the bottom of")); |         new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_BOTTOM, "Bottom-aligned", "aligned to the bottom of")); | ||||||
|  |  | ||||||
|     OGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_LEFT, |     wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_LEFT, | ||||||
|         new OGLConstraintType(gyCONSTRAINT_ALIGNED_LEFT, "Left-aligned", "aligned to the left of")); |         new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_LEFT, "Left-aligned", "aligned to the left of")); | ||||||
|  |  | ||||||
|     OGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_RIGHT, |     wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_RIGHT, | ||||||
|         new OGLConstraintType(gyCONSTRAINT_ALIGNED_RIGHT, "Right-aligned", "aligned to the right of")); |         new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_RIGHT, "Right-aligned", "aligned to the right of")); | ||||||
|  |  | ||||||
|     // Mid-alignment |     // Mid-alignment | ||||||
|     OGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_TOP, |     wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_TOP, | ||||||
|         new OGLConstraintType(gyCONSTRAINT_MIDALIGNED_TOP, "Top-midaligned", "centred on the top of")); |         new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_TOP, "Top-midaligned", "centred on the top of")); | ||||||
|  |  | ||||||
|     OGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_BOTTOM, |     wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_BOTTOM, | ||||||
|         new OGLConstraintType(gyCONSTRAINT_MIDALIGNED_BOTTOM, "Bottom-midaligned", "centred on the bottom of")); |         new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_BOTTOM, "Bottom-midaligned", "centred on the bottom of")); | ||||||
|  |  | ||||||
|     OGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_LEFT, |     wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_LEFT, | ||||||
|         new OGLConstraintType(gyCONSTRAINT_MIDALIGNED_LEFT, "Left-midaligned", "centred on the left of")); |         new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_LEFT, "Left-midaligned", "centred on the left of")); | ||||||
|  |  | ||||||
|     OGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_RIGHT, |     wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_RIGHT, | ||||||
|         new OGLConstraintType(gyCONSTRAINT_MIDALIGNED_RIGHT, "Right-midaligned", "centred on the right of")); |         new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_RIGHT, "Right-midaligned", "centred on the right of")); | ||||||
| } | } | ||||||
|  |  | ||||||
| void OGLCleanUpConstraintTypes() | void OGLCleanUpConstraintTypes() | ||||||
| { | { | ||||||
|     if (!OGLConstraintTypes) |     if (!wxOGLConstraintTypes) | ||||||
|         return; |         return; | ||||||
|  |  | ||||||
|     wxNode* node = OGLConstraintTypes->First(); |     wxNode* node = wxOGLConstraintTypes->First(); | ||||||
|     while (node) |     while (node) | ||||||
|     { |     { | ||||||
|         OGLConstraintType* ct = (OGLConstraintType*) node->Data(); |         wxOGLConstraintType* ct = (wxOGLConstraintType*) node->Data(); | ||||||
|         delete ct; |         delete ct; | ||||||
|         node = node->Next(); |         node = node->Next(); | ||||||
|     } |     } | ||||||
|     delete OGLConstraintTypes; |     delete wxOGLConstraintTypes; | ||||||
|     OGLConstraintTypes = NULL; |     wxOGLConstraintTypes = NULL; | ||||||
| } | } | ||||||
|  |  | ||||||
| /* | /* | ||||||
| @@ -128,9 +128,9 @@ void OGLCleanUpConstraintTypes() | |||||||
|  * |  * | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| IMPLEMENT_DYNAMIC_CLASS(OGLConstraint, wxObject) | IMPLEMENT_DYNAMIC_CLASS(wxOGLConstraint, wxObject) | ||||||
|  |  | ||||||
| OGLConstraint::OGLConstraint(int type, wxShape *constraining, wxList& constrained) | wxOGLConstraint::wxOGLConstraint(int type, wxShape *constraining, wxList& constrained) | ||||||
| { | { | ||||||
|   m_xSpacing = 0.0; |   m_xSpacing = 0.0; | ||||||
|   m_ySpacing = 0.0; |   m_ySpacing = 0.0; | ||||||
| @@ -149,11 +149,11 @@ OGLConstraint::OGLConstraint(int type, wxShape *constraining, wxList& constraine | |||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| OGLConstraint::~OGLConstraint() | wxOGLConstraint::~wxOGLConstraint() | ||||||
| { | { | ||||||
| } | } | ||||||
|  |  | ||||||
| bool OGLConstraint::Equals(double a, double b) | bool wxOGLConstraint::Equals(double a, double b) | ||||||
| { | { | ||||||
|   double marg = 0.5; |   double marg = 0.5; | ||||||
|  |  | ||||||
| @@ -162,7 +162,7 @@ bool OGLConstraint::Equals(double a, double b) | |||||||
| } | } | ||||||
|  |  | ||||||
| // Return TRUE if anything changed | // Return TRUE if anything changed | ||||||
| bool OGLConstraint::Evaluate() | bool wxOGLConstraint::Evaluate() | ||||||
| { | { | ||||||
|   double maxWidth, maxHeight, minWidth, minHeight, x, y; |   double maxWidth, maxHeight, minWidth, minHeight, x, y; | ||||||
|   m_constrainingObject->GetBoundingBoxMax(&maxWidth, &maxHeight); |   m_constrainingObject->GetBoundingBoxMax(&maxWidth, &maxHeight); | ||||||
|   | |||||||
| @@ -21,12 +21,12 @@ | |||||||
|  * |  * | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| class OGLConstraintType: public wxObject | class wxOGLConstraintType: public wxObject | ||||||
| { | { | ||||||
|  DECLARE_DYNAMIC_CLASS(OGLConstraintType) |  DECLARE_DYNAMIC_CLASS(wxOGLConstraintType) | ||||||
| public: | public: | ||||||
|   OGLConstraintType(int type = 0, const wxString& name = "", const wxString& phrase = ""); |   wxOGLConstraintType(int type = 0, const wxString& name = "", const wxString& phrase = ""); | ||||||
|   ~OGLConstraintType(); |   ~wxOGLConstraintType(); | ||||||
|  |  | ||||||
| public: | public: | ||||||
|   int           m_type;     // E.g. gyCONSTRAINT_CENTRED_VERTICALLY |   int           m_type;     // E.g. gyCONSTRAINT_CENTRED_VERTICALLY | ||||||
| @@ -35,7 +35,7 @@ public: | |||||||
|  |  | ||||||
| }; | }; | ||||||
|  |  | ||||||
| extern wxList* OGLConstraintTypes; | extern wxList* wxOGLConstraintTypes; | ||||||
|  |  | ||||||
| #define gyCONSTRAINT_CENTRED_VERTICALLY   1 | #define gyCONSTRAINT_CENTRED_VERTICALLY   1 | ||||||
| #define gyCONSTRAINT_CENTRED_HORIZONTALLY 2 | #define gyCONSTRAINT_CENTRED_HORIZONTALLY 2 | ||||||
| @@ -56,14 +56,14 @@ extern wxList* OGLConstraintTypes; | |||||||
| #define gyCONSTRAINT_MIDALIGNED_LEFT      14 | #define gyCONSTRAINT_MIDALIGNED_LEFT      14 | ||||||
| #define gyCONSTRAINT_MIDALIGNED_RIGHT     15 | #define gyCONSTRAINT_MIDALIGNED_RIGHT     15 | ||||||
|  |  | ||||||
| class OGLConstraint: public wxObject | class wxOGLConstraint: public wxObject | ||||||
| { | { | ||||||
|  DECLARE_DYNAMIC_CLASS(OGLConstraint) |  DECLARE_DYNAMIC_CLASS(wxOGLConstraint) | ||||||
|  public: |  public: | ||||||
|   OGLConstraint() { m_xSpacing = 0.0; m_ySpacing = 0.0; m_constraintType = 0; m_constraintName = ""; m_constraintId = 0; |   wxOGLConstraint() { m_xSpacing = 0.0; m_ySpacing = 0.0; m_constraintType = 0; m_constraintName = ""; m_constraintId = 0; | ||||||
|                         m_constrainingObject = NULL; } |                         m_constrainingObject = NULL; } | ||||||
|   OGLConstraint(int type, wxShape *constraining, wxList& constrained); |   wxOGLConstraint(int type, wxShape *constraining, wxList& constrained); | ||||||
|   ~OGLConstraint(); |   ~wxOGLConstraint(); | ||||||
|  |  | ||||||
|   // Returns TRUE if anything changed |   // Returns TRUE if anything changed | ||||||
|   bool Evaluate(); |   bool Evaluate(); | ||||||
|   | |||||||
| @@ -305,7 +305,7 @@ bool wxDividedShape::GetAttachmentPosition(int attachment, double *x, double *y, | |||||||
|   return TRUE; |   return TRUE; | ||||||
| } | } | ||||||
|  |  | ||||||
| int wxDividedShape::GetNumberOfAttachments() | int wxDividedShape::GetNumberOfAttachments() const | ||||||
| { | { | ||||||
|   // There are two attachments for each region (left and right), |   // There are two attachments for each region (left and right), | ||||||
|   // plus one on the top and one on the bottom. |   // plus one on the top and one on the bottom. | ||||||
| @@ -418,14 +418,14 @@ void wxDividedShape::ResetMandatoryControlPoints() | |||||||
| } | } | ||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
| void wxDividedShape::WritePrologAttributes(wxExpr *clause) | void wxDividedShape::WriteAttributes(wxExpr *clause) | ||||||
| { | { | ||||||
|   wxRectangleShape::WritePrologAttributes(clause); |   wxRectangleShape::WriteAttributes(clause); | ||||||
| } | } | ||||||
|  |  | ||||||
| void wxDividedShape::ReadPrologAttributes(wxExpr *clause) | void wxDividedShape::ReadAttributes(wxExpr *clause) | ||||||
| { | { | ||||||
|   wxRectangleShape::ReadPrologAttributes(clause); |   wxRectangleShape::ReadAttributes(clause); | ||||||
| } | } | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   | |||||||
| @@ -48,8 +48,8 @@ class wxDividedShape: public wxRectangleShape | |||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
|   // Prolog database stuff |   // Prolog database stuff | ||||||
|   void WritePrologAttributes(wxExpr *clause); |   void WriteAttributes(wxExpr *clause); | ||||||
|   void ReadPrologAttributes(wxExpr *clause); |   void ReadAttributes(wxExpr *clause); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   void Copy(wxShape ©); |   void Copy(wxShape ©); | ||||||
| @@ -65,7 +65,7 @@ class wxDividedShape: public wxRectangleShape | |||||||
|   bool GetAttachmentPosition(int attachment, double *x, double *y, |   bool GetAttachmentPosition(int attachment, double *x, double *y, | ||||||
|                                      int nth = 0, int no_arcs = 1, wxLineShape *line = NULL); |                                      int nth = 0, int no_arcs = 1, wxLineShape *line = NULL); | ||||||
|   bool AttachmentIsValid(int attachment); |   bool AttachmentIsValid(int attachment); | ||||||
|   int GetNumberOfAttachments(); |   int GetNumberOfAttachments() const; | ||||||
|  |  | ||||||
|   // Invoke editor on CTRL-right click |   // Invoke editor on CTRL-right click | ||||||
|   void OnRightClick(double x, double y, int keys = 0, int attachment = 0); |   void OnRightClick(double x, double y, int keys = 0, int attachment = 0); | ||||||
|   | |||||||
| @@ -236,15 +236,9 @@ bool wxDrawnShape::GetPerimeterPoint(double x1, double y1, | |||||||
| } | } | ||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
| // Prolog database stuff | void wxDrawnShape::WriteAttributes(wxExpr *clause) | ||||||
| char *wxDrawnShape::GetFunctor() |  | ||||||
| { | { | ||||||
|   return "node_image"; |   wxRectangleShape::WriteAttributes(clause); | ||||||
| } |  | ||||||
|  |  | ||||||
| void wxDrawnShape::WritePrologAttributes(wxExpr *clause) |  | ||||||
| { |  | ||||||
|   wxRectangleShape::WritePrologAttributes(clause); |  | ||||||
|  |  | ||||||
|   clause->AddAttributeValue("save_metafile", (long)m_saveToFile); |   clause->AddAttributeValue("save_metafile", (long)m_saveToFile); | ||||||
|   if (m_saveToFile) |   if (m_saveToFile) | ||||||
| @@ -253,14 +247,14 @@ void wxDrawnShape::WritePrologAttributes(wxExpr *clause) | |||||||
|     for (i = 0; i < 4; i++) |     for (i = 0; i < 4; i++) | ||||||
|     { |     { | ||||||
|         if (m_metafiles[i].IsValid()) |         if (m_metafiles[i].IsValid()) | ||||||
|             m_metafiles[i].WritePrologAttributes(clause, i); |             m_metafiles[i].WriteAttributes(clause, i); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| void wxDrawnShape::ReadPrologAttributes(wxExpr *clause) | void wxDrawnShape::ReadAttributes(wxExpr *clause) | ||||||
| { | { | ||||||
|   wxRectangleShape::ReadPrologAttributes(clause); |   wxRectangleShape::ReadAttributes(clause); | ||||||
|  |  | ||||||
|   int iVal = (int) m_saveToFile; |   int iVal = (int) m_saveToFile; | ||||||
|   clause->AssignAttributeValue("save_metafile", &iVal); |   clause->AssignAttributeValue("save_metafile", &iVal); | ||||||
| @@ -271,7 +265,7 @@ void wxDrawnShape::ReadPrologAttributes(wxExpr *clause) | |||||||
|     int i = 0; |     int i = 0; | ||||||
|     for (i = 0; i < 4; i++) |     for (i = 0; i < 4; i++) | ||||||
|     { |     { | ||||||
|       m_metafiles[i].ReadPrologAttributes(clause, i); |       m_metafiles[i].ReadAttributes(clause, i); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
| @@ -376,32 +370,32 @@ void wxDrawnShape::DestroyClippingRect() | |||||||
|     m_metafiles[m_currentAngle].DestroyClippingRect(); |     m_metafiles[m_currentAngle].DestroyClippingRect(); | ||||||
| } | } | ||||||
|  |  | ||||||
| void wxDrawnShape::SetPen(wxPen* pen, bool isOutline) | void wxDrawnShape::SetDrawnPen(wxPen* pen, bool isOutline) | ||||||
| { | { | ||||||
|     m_metafiles[m_currentAngle].SetPen(pen, isOutline); |     m_metafiles[m_currentAngle].SetPen(pen, isOutline); | ||||||
| } | } | ||||||
|  |  | ||||||
| void wxDrawnShape::SetBrush(wxBrush* brush, bool isFill) | void wxDrawnShape::SetDrawnBrush(wxBrush* brush, bool isFill) | ||||||
| { | { | ||||||
|     m_metafiles[m_currentAngle].SetBrush(brush, isFill); |     m_metafiles[m_currentAngle].SetBrush(brush, isFill); | ||||||
| } | } | ||||||
|  |  | ||||||
| void wxDrawnShape::SetFont(wxFont* font) | void wxDrawnShape::SetDrawnFont(wxFont* font) | ||||||
| { | { | ||||||
|     m_metafiles[m_currentAngle].SetFont(font); |     m_metafiles[m_currentAngle].SetFont(font); | ||||||
| } | } | ||||||
|  |  | ||||||
| void wxDrawnShape::SetTextColour(const wxColour& colour) | void wxDrawnShape::SetDrawnTextColour(const wxColour& colour) | ||||||
| { | { | ||||||
|     m_metafiles[m_currentAngle].SetTextColour(colour); |     m_metafiles[m_currentAngle].SetTextColour(colour); | ||||||
| } | } | ||||||
|  |  | ||||||
| void wxDrawnShape::SetBackgroundColour(const wxColour& colour) | void wxDrawnShape::SetDrawnBackgroundColour(const wxColour& colour) | ||||||
| { | { | ||||||
|     m_metafiles[m_currentAngle].SetBackgroundColour(colour); |     m_metafiles[m_currentAngle].SetBackgroundColour(colour); | ||||||
| } | } | ||||||
|  |  | ||||||
| void wxDrawnShape::SetBackgroundMode(int mode) | void wxDrawnShape::SetDrawnBackgroundMode(int mode) | ||||||
| { | { | ||||||
|     m_metafiles[m_currentAngle].SetBackgroundMode(mode); |     m_metafiles[m_currentAngle].SetBackgroundMode(mode); | ||||||
| } | } | ||||||
| @@ -1452,7 +1446,7 @@ void wxPseudoMetaFile::Rotate(double x, double y, double theta) | |||||||
| } | } | ||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
| void wxPseudoMetaFile::WritePrologAttributes(wxExpr *clause, int whichAngle) | void wxPseudoMetaFile::WriteAttributes(wxExpr *clause, int whichAngle) | ||||||
| { | { | ||||||
|   wxString widthStr; |   wxString widthStr; | ||||||
|   widthStr.Printf("meta_width%d", whichAngle); |   widthStr.Printf("meta_width%d", whichAngle); | ||||||
| @@ -1579,7 +1573,7 @@ void wxPseudoMetaFile::WritePrologAttributes(wxExpr *clause, int whichAngle) | |||||||
|      |      | ||||||
| } | } | ||||||
|  |  | ||||||
| void wxPseudoMetaFile::ReadPrologAttributes(wxExpr *clause, int whichAngle) | void wxPseudoMetaFile::ReadAttributes(wxExpr *clause, int whichAngle) | ||||||
| { | { | ||||||
|   wxString widthStr; |   wxString widthStr; | ||||||
|   widthStr.Printf("meta_width%d", whichAngle); |   widthStr.Printf("meta_width%d", whichAngle); | ||||||
|   | |||||||
| @@ -33,8 +33,8 @@ class wxPseudoMetaFile: public wxObject | |||||||
|   void Draw(wxDC& dc, double xoffset, double yoffset); |   void Draw(wxDC& dc, double xoffset, double yoffset); | ||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
|   void WritePrologAttributes(wxExpr *clause, int whichAngle); |   void WriteAttributes(wxExpr *clause, int whichAngle); | ||||||
|   void ReadPrologAttributes(wxExpr *clause, int whichAngle); |   void ReadAttributes(wxExpr *clause, int whichAngle); | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   void Clear(); |   void Clear(); | ||||||
| @@ -140,10 +140,9 @@ class wxDrawnShape: public wxRectangleShape | |||||||
|   void OnDraw(wxDC& dc); |   void OnDraw(wxDC& dc); | ||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
|   // Prolog database stuff |   // I/O | ||||||
|   char *GetFunctor(); |   void WriteAttributes(wxExpr *clause); | ||||||
|   void WritePrologAttributes(wxExpr *clause); |   void ReadAttributes(wxExpr *clause); | ||||||
|   void ReadPrologAttributes(wxExpr *clause); |  | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   // Does the copying for this object |   // Does the copying for this object | ||||||
| @@ -190,12 +189,12 @@ class wxDrawnShape: public wxRectangleShape | |||||||
|   virtual void SetClippingRect(const wxRect& rect); |   virtual void SetClippingRect(const wxRect& rect); | ||||||
|   virtual void DestroyClippingRect(); |   virtual void DestroyClippingRect(); | ||||||
|  |  | ||||||
|   virtual void SetPen(wxPen* pen, bool isOutline = FALSE);     // TODO: eventually, just store GDI object attributes, not actual |   virtual void SetDrawnPen(wxPen* pen, bool isOutline = FALSE);     // TODO: eventually, just store GDI object attributes, not actual | ||||||
|   virtual void SetBrush(wxBrush* brush, bool isFill = FALSE);  // pens/brushes etc. |   virtual void SetDrawnBrush(wxBrush* brush, bool isFill = FALSE);  // pens/brushes etc. | ||||||
|   virtual void SetFont(wxFont* font); |   virtual void SetDrawnFont(wxFont* font); | ||||||
|   virtual void SetTextColour(const wxColour& colour); |   virtual void SetDrawnTextColour(const wxColour& colour); | ||||||
|   virtual void SetBackgroundColour(const wxColour& colour); |   virtual void SetDrawnBackgroundColour(const wxColour& colour); | ||||||
|   virtual void SetBackgroundMode(int mode); |   virtual void SetDrawnBackgroundMode(int mode); | ||||||
|  |  | ||||||
|   // Set the width/height according to the shapes in the metafile. |   // Set the width/height according to the shapes in the metafile. | ||||||
|   // Call this after drawing into the shape. |   // Call this after drawing into the shape. | ||||||
| @@ -205,6 +204,8 @@ class wxDrawnShape: public wxRectangleShape | |||||||
|  |  | ||||||
|   inline int GetAngle() const { return m_currentAngle; } |   inline int GetAngle() const { return m_currentAngle; } | ||||||
|  |  | ||||||
|  | // Implementation | ||||||
|  | protected: | ||||||
|   // Which metafile do we use now? Based on current rotation and validity |   // Which metafile do we use now? Based on current rotation and validity | ||||||
|   // of metafiles. |   // of metafiles. | ||||||
|   int DetermineMetaFile(double rotation); |   int DetermineMetaFile(double rotation); | ||||||
|   | |||||||
| @@ -1296,14 +1296,6 @@ void wxLineShape::OnDrawContents(wxDC& dc) | |||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| #ifdef PROLOGIO |  | ||||||
| char *wxLineShape::GetFunctor() |  | ||||||
| { |  | ||||||
|   return "arc_image"; |  | ||||||
| } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
| void wxLineShape::SetTo(wxShape *object) | void wxLineShape::SetTo(wxShape *object) | ||||||
| { | { | ||||||
|   m_to = object; |   m_to = object; | ||||||
| @@ -1377,9 +1369,9 @@ void wxLineShape::ResetControlPoints() | |||||||
| } | } | ||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
| void wxLineShape::WritePrologAttributes(wxExpr *clause) | void wxLineShape::WriteAttributes(wxExpr *clause) | ||||||
| { | { | ||||||
|   wxShape::WritePrologAttributes(clause); |   wxShape::WriteAttributes(clause); | ||||||
|  |  | ||||||
|   if (m_from) |   if (m_from) | ||||||
|     clause->AddAttributeValue("from", m_from->GetId()); |     clause->AddAttributeValue("from", m_from->GetId()); | ||||||
| @@ -1447,9 +1439,9 @@ void wxLineShape::WritePrologAttributes(wxExpr *clause) | |||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| void wxLineShape::ReadPrologAttributes(wxExpr *clause) | void wxLineShape::ReadAttributes(wxExpr *clause) | ||||||
| { | { | ||||||
|   wxShape::ReadPrologAttributes(clause); |   wxShape::ReadAttributes(clause); | ||||||
|  |  | ||||||
|   int iVal = (int) m_isSpline; |   int iVal = (int) m_isSpline; | ||||||
|   clause->AssignAttributeValue("is_spline", &iVal); |   clause->AssignAttributeValue("is_spline", &iVal); | ||||||
|   | |||||||
| @@ -189,10 +189,9 @@ class wxLineShape: public wxShape | |||||||
|   bool HitTest(double x, double y, int *attachment, double *distance); |   bool HitTest(double x, double y, int *attachment, double *distance); | ||||||
|  |  | ||||||
| #ifdef PROLOGIO | #ifdef PROLOGIO | ||||||
|   // Prolog database stuff |   // I/O | ||||||
|   virtual char *GetFunctor(); |   virtual void WriteAttributes(wxExpr *clause); | ||||||
|   virtual void WritePrologAttributes(wxExpr *clause); |   virtual void ReadAttributes(wxExpr *clause); | ||||||
|   virtual void ReadPrologAttributes(wxExpr *clause); |  | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   virtual void FindNth(wxShape *image, int *nth, int *no_arcs, bool incoming); |   virtual void FindNth(wxShape *image, int *nth, int *no_arcs, bool incoming); | ||||||
|   | |||||||
| @@ -155,7 +155,7 @@ $(DOCDIR)\pdf\ogl.rtf: $(DOCSOURCES) | |||||||
| $(DOCDIR)\html\ogl\ogl.htm:         $(DOCSOURCES) | $(DOCDIR)\html\ogl\ogl.htm:         $(DOCSOURCES) | ||||||
|         cd $(LOCALDOCDIR) |         cd $(LOCALDOCDIR) | ||||||
|         -mkdir $(DOCDIR)\html\ogl |         -mkdir $(DOCDIR)\html\ogl | ||||||
|         cp *.gif $(DOCDIR)\html\ogl |         copy *.gif $(DOCDIR)\html\ogl | ||||||
|         -start /w tex2rtf $(LOCALDOCDIR)\ogl.tex $(DOCDIR)\html\ogl\ogl.htm -twice -html |         -start /w tex2rtf $(LOCALDOCDIR)\ogl.tex $(DOCDIR)\html\ogl\ogl.htm -twice -html | ||||||
|         -erase $(DOCDIR)\html\ogl\*.con |         -erase $(DOCDIR)\html\ogl\*.con | ||||||
|         -erase $(DOCDIR)\html\ogl\*.ref |         -erase $(DOCDIR)\html\ogl\*.ref | ||||||
|   | |||||||
| @@ -537,7 +537,7 @@ bool wxDiagram::OnDatabaseSave(wxExprDatabase& db) | |||||||
|  |  | ||||||
| bool wxDiagram::OnShapeSave(wxExprDatabase& db, wxShape& shape, wxExpr& expr) | bool wxDiagram::OnShapeSave(wxExprDatabase& db, wxShape& shape, wxExpr& expr) | ||||||
| { | { | ||||||
|   shape.WritePrologAttributes(&expr); |   shape.WriteAttributes(&expr); | ||||||
|   db.Append(&expr); |   db.Append(&expr); | ||||||
|  |  | ||||||
|   if (shape.IsKindOf(CLASSINFO(wxCompositeShape))) |   if (shape.IsKindOf(CLASSINFO(wxCompositeShape))) | ||||||
| @@ -557,7 +557,7 @@ bool wxDiagram::OnShapeSave(wxExprDatabase& db, wxShape& shape, wxExpr& expr) | |||||||
|  |  | ||||||
| bool wxDiagram::OnShapeLoad(wxExprDatabase& db, wxShape& shape, wxExpr& expr) | bool wxDiagram::OnShapeLoad(wxExprDatabase& db, wxShape& shape, wxExpr& expr) | ||||||
| { | { | ||||||
|   shape.ReadPrologAttributes(&expr); |   shape.ReadAttributes(&expr); | ||||||
|   return TRUE; |   return TRUE; | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -44,7 +44,7 @@ public: | |||||||
|  |  | ||||||
|   void SetSnapToGrid(bool snap); |   void SetSnapToGrid(bool snap); | ||||||
|   void SetGridSpacing(double spacing); |   void SetGridSpacing(double spacing); | ||||||
|   inline double GetGridSpacing() { return m_gridSpacing; } |   inline double GetGridSpacing() const { return m_gridSpacing; } | ||||||
|   inline bool GetSnapToGrid() const { return m_snapToGrid; } |   inline bool GetSnapToGrid() const { return m_snapToGrid; } | ||||||
|   void Snap(double *x, double *y); |   void Snap(double *x, double *y); | ||||||
|  |  | ||||||
| @@ -85,7 +85,7 @@ protected: | |||||||
|   wxShapeCanvas*        m_diagramCanvas; |   wxShapeCanvas*        m_diagramCanvas; | ||||||
|   bool                  m_quickEditMode; |   bool                  m_quickEditMode; | ||||||
|   bool                  m_snapToGrid; |   bool                  m_snapToGrid; | ||||||
|   double                 m_gridSpacing; |   double                m_gridSpacing; | ||||||
|   int                   m_mouseTolerance; |   int                   m_mouseTolerance; | ||||||
|   wxList*               m_shapeList; |   wxList*               m_shapeList; | ||||||
| }; | }; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user