• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/amule/wxWidgets-2.8.12/contrib/include/wx/ogl/
1/////////////////////////////////////////////////////////////////////////////
2// Name:        ogldiag.h
3// Purpose:     OGL - wxDiagram class
4// Author:      Julian Smart
5// Modified by:
6// Created:     12/07/98
7// RCS-ID:      $Id: ogldiag.h 35812 2005-10-06 18:17:23Z ABX $
8// Copyright:   (c) Julian Smart
9// Licence:     wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _OGL_OGLDIAG_H_
13#define _OGL_OGLDIAG_H_
14
15#include "wx/ogl/basic.h"
16
17#if wxUSE_PROLOGIO
18#include "wx/deprecated/wxexpr.h"
19#endif
20
21
22class WXDLLIMPEXP_OGL wxDiagram: public wxObject
23{
24 DECLARE_DYNAMIC_CLASS(wxDiagram)
25
26public:
27
28  wxDiagram();
29  virtual ~wxDiagram();
30
31  void SetCanvas(wxShapeCanvas *can);
32
33  inline wxShapeCanvas *GetCanvas() const { return m_diagramCanvas; }
34
35  virtual void Redraw(wxDC& dc);
36  virtual void Clear(wxDC& dc);
37  virtual void DrawOutline(wxDC& dc, double x1, double y1, double x2, double y2);
38
39  // Add object to end of object list (if addAfter is NULL)
40  // or just after addAfter.
41  virtual void AddShape(wxShape *object, wxShape *addAfter = NULL);
42
43  // Add object to front of object list
44  virtual void InsertShape(wxShape *object);
45
46  void SetSnapToGrid(bool snap);
47  void SetGridSpacing(double spacing);
48  inline double GetGridSpacing() const { return m_gridSpacing; }
49  inline bool GetSnapToGrid() const { return m_snapToGrid; }
50  void Snap(double *x, double *y);
51
52  inline void SetQuickEditMode(bool qem) { m_quickEditMode = qem; }
53  inline bool GetQuickEditMode() const { return m_quickEditMode; }
54
55  virtual void RemoveShape(wxShape *object);
56  virtual void RemoveAllShapes();
57  virtual void DeleteAllShapes();
58  virtual void ShowAll(bool show);
59
60  // Find a shape by its id
61  wxShape* FindShape(long id) const;
62
63  inline void SetMouseTolerance(int tol) { m_mouseTolerance = tol; }
64  inline int GetMouseTolerance() const { return m_mouseTolerance; }
65  inline wxList *GetShapeList() const { return m_shapeList; }
66  inline int GetCount() const { return m_shapeList->GetCount(); }
67
68  // Make sure all text that should be centred, is centred.
69  void RecentreAll(wxDC& dc);
70
71#if wxUSE_PROLOGIO
72  virtual bool SaveFile(const wxString& filename);
73  virtual bool LoadFile(const wxString& filename);
74
75  virtual void ReadNodes(wxExprDatabase& database);
76  virtual void ReadLines(wxExprDatabase& database);
77  virtual void ReadContainerGeometry(wxExprDatabase& database);
78
79  // Allow for modifying file
80  virtual bool OnDatabaseLoad(wxExprDatabase& db);
81  virtual bool OnDatabaseSave(wxExprDatabase& db);
82  virtual bool OnShapeSave(wxExprDatabase& db, wxShape& shape, wxExpr& expr);
83  virtual bool OnShapeLoad(wxExprDatabase& db, wxShape& shape, wxExpr& expr);
84  virtual bool OnHeaderSave(wxExprDatabase& db, wxExpr& expr);
85  virtual bool OnHeaderLoad(wxExprDatabase& db, wxExpr& expr);
86#endif
87
88protected:
89  wxShapeCanvas*        m_diagramCanvas;
90  bool                  m_quickEditMode;
91  bool                  m_snapToGrid;
92  double                m_gridSpacing;
93  int                   m_mouseTolerance;
94  wxList*               m_shapeList;
95};
96
97class WXDLLIMPEXP_OGL wxLineCrossing: public wxObject
98{
99public:
100    wxLineCrossing() { m_lineShape1 = NULL; m_lineShape2 = NULL; }
101    wxRealPoint     m_pt1; // First line
102    wxRealPoint     m_pt2;
103    wxRealPoint     m_pt3; // Second line
104    wxRealPoint     m_pt4;
105    wxRealPoint     m_intersect;
106    wxLineShape*    m_lineShape1;
107    wxLineShape*    m_lineShape2;
108};
109
110class WXDLLIMPEXP_OGL wxLineCrossings: public wxObject
111{
112public:
113    wxLineCrossings();
114    ~wxLineCrossings();
115
116    void FindCrossings(wxDiagram& diagram);
117    void DrawCrossings(wxDiagram& diagram, wxDC& dc);
118    void ClearCrossings();
119
120public:
121    wxList  m_crossings;
122};
123
124#endif
125 // _OGL_OGLDIAG_H_
126