1999-09-10 02:25:47 -04:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: oglcanvas.i
|
|
|
|
// Purpose: SWIG definitions for the wxWindows Object Graphics Library
|
|
|
|
//
|
|
|
|
// Author: Robin Dunn
|
|
|
|
//
|
|
|
|
// Created: 7-Sept-1999
|
|
|
|
// RCS-ID: $Id$
|
|
|
|
// Copyright: (c) 1998 by Total Control Software
|
|
|
|
// Licence: wxWindows license
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
%module oglcanvas
|
|
|
|
|
|
|
|
%{
|
2002-05-01 22:46:14 -04:00
|
|
|
#include "wxPython.h"
|
1999-09-10 02:25:47 -04:00
|
|
|
#include "oglhelpers.h"
|
|
|
|
%}
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
|
|
|
|
%include typemaps.i
|
|
|
|
%include my_typemaps.i
|
|
|
|
|
|
|
|
%extern wx.i
|
|
|
|
%import windows.i
|
|
|
|
%extern _defs.i
|
|
|
|
%extern misc.i
|
|
|
|
%extern gdi.i
|
|
|
|
|
|
|
|
%include _ogldefs.i
|
|
|
|
|
2001-07-04 22:16:20 -04:00
|
|
|
%import oglbasic.i
|
1999-09-10 02:25:47 -04:00
|
|
|
|
|
|
|
|
|
|
|
%pragma(python) code = "import wx"
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
2002-07-06 00:14:52 -04:00
|
|
|
%{
|
|
|
|
// Put some wx default wxChar* values into wxStrings.
|
|
|
|
DECLARE_DEF_STRING(ShapeCanvasNameStr);
|
|
|
|
%}
|
|
|
|
|
1999-09-10 02:25:47 -04:00
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
|
2001-05-17 18:47:09 -04:00
|
|
|
class wxDiagram : public wxObject {
|
1999-09-10 02:25:47 -04:00
|
|
|
public:
|
|
|
|
wxDiagram();
|
2001-05-17 18:47:09 -04:00
|
|
|
//~wxDiagram();
|
1999-09-10 02:25:47 -04:00
|
|
|
|
2001-07-04 22:16:20 -04:00
|
|
|
void AddShape(wxPyShape* shape, wxPyShape *addAfter = NULL);
|
1999-09-10 02:25:47 -04:00
|
|
|
void Clear(wxDC& dc);
|
|
|
|
void DeleteAllShapes();
|
|
|
|
void DrawOutline(wxDC& dc, double x1, double y1, double x2, double y2);
|
|
|
|
wxPyShape* FindShape(long id);
|
|
|
|
wxPyShapeCanvas* GetCanvas();
|
|
|
|
int GetCount();
|
|
|
|
double GetGridSpacing();
|
|
|
|
int GetMouseTolerance();
|
|
|
|
|
|
|
|
// wxList* GetShapeList();
|
|
|
|
%addmethods {
|
|
|
|
PyObject* GetShapeList() {
|
|
|
|
wxList* list = self->GetShapeList();
|
2002-04-11 19:12:02 -04:00
|
|
|
return wxPy_ConvertShapeList(list, "wxPyShape");
|
1999-09-10 02:25:47 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetQuickEditMode();
|
|
|
|
bool GetSnapToGrid();
|
|
|
|
void InsertShape(wxPyShape *shape);
|
2003-03-25 01:35:27 -05:00
|
|
|
|
|
|
|
#ifdef wxUSE_PROLOGIO
|
1999-09-10 02:25:47 -04:00
|
|
|
bool LoadFile(const wxString& filename);
|
2003-03-25 01:35:27 -05:00
|
|
|
bool SaveFile(const wxString& filename);
|
|
|
|
#endif
|
1999-09-10 02:25:47 -04:00
|
|
|
|
2003-03-25 01:35:27 -05:00
|
|
|
#ifdef wxUSE_PROLOGIO
|
1999-09-10 02:25:47 -04:00
|
|
|
// **** Have to deal with wxExpr and wxExprDatabase first...
|
|
|
|
//void OnDatabaseLoad(wxExprDatabase& database);
|
|
|
|
//void OnDatabaseSave(wxExprDatabase& database);
|
|
|
|
//bool OnHeaderLoad(wxExprDatabase& database, wxExpr& expr);
|
|
|
|
//bool OnHeaderSave(wxExprDatabase& database, wxExpr& expr);
|
|
|
|
//bool OnShapeLoad(wxExprDatabase& database, wxPyShape& shape, wxExpr& expr);
|
|
|
|
//bool OnShapeSave(wxExprDatabase& database, wxPyShape& shape, wxExpr& expr);
|
2003-03-25 01:35:27 -05:00
|
|
|
#endif
|
1999-09-10 02:25:47 -04:00
|
|
|
|
2003-03-25 01:35:27 -05:00
|
|
|
#ifdef wxUSE_PROLOGIO
|
1999-09-10 02:25:47 -04:00
|
|
|
void ReadContainerGeometry(wxExprDatabase& database);
|
|
|
|
void ReadLines(wxExprDatabase& database);
|
|
|
|
void ReadNodes(wxExprDatabase& database);
|
2003-03-25 01:35:27 -05:00
|
|
|
#endif
|
|
|
|
|
1999-09-10 02:25:47 -04:00
|
|
|
void RecentreAll(wxDC& dc);
|
|
|
|
void Redraw(wxDC& dc);
|
|
|
|
void RemoveAllShapes();
|
|
|
|
void RemoveShape(wxPyShape* shape);
|
|
|
|
void SetCanvas(wxPyShapeCanvas* canvas);
|
|
|
|
void SetGridSpacing(double spacing);
|
|
|
|
void SetMouseTolerance(int tolerance);
|
|
|
|
void SetQuickEditMode(bool mode);
|
|
|
|
void SetSnapToGrid(bool snap);
|
|
|
|
void ShowAll(bool show);
|
2001-02-21 15:57:57 -05:00
|
|
|
void Snap(double *INOUT, double *INOUT);
|
1999-09-10 02:25:47 -04:00
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
|
|
|
|
%{
|
|
|
|
IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnBeginDragLeft);
|
|
|
|
IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnBeginDragRight);
|
|
|
|
IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnEndDragLeft);
|
|
|
|
IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnEndDragRight);
|
|
|
|
IMP_PYCALLBACK__BOOL2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnDragLeft);
|
|
|
|
IMP_PYCALLBACK__BOOL2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnDragRight);
|
|
|
|
IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnLeftClick);
|
|
|
|
IMP_PYCALLBACK__2DBLINT(wxPyShapeCanvas, wxShapeCanvas, OnRightClick);
|
|
|
|
%}
|
|
|
|
|
|
|
|
|
|
|
|
class wxPyShapeCanvas : public wxScrolledWindow {
|
|
|
|
public:
|
|
|
|
wxPyShapeCanvas(wxWindow* parent = NULL, wxWindowID id = -1,
|
2000-12-21 19:06:04 -05:00
|
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
|
|
const wxSize& size = wxDefaultSize,
|
2002-07-06 00:14:52 -04:00
|
|
|
long style = wxBORDER,
|
|
|
|
const wxString& name = wxPyShapeCanvasNameStr);
|
1999-09-10 02:25:47 -04:00
|
|
|
|
2001-10-12 19:26:38 -04:00
|
|
|
void _setCallbackInfo(PyObject* self, PyObject* _class);
|
|
|
|
%pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyShapeCanvas)"
|
|
|
|
%pragma(python) addtomethod = "__init__:self._setOORInfo(self)"
|
1999-09-10 02:25:47 -04:00
|
|
|
|
|
|
|
void AddShape(wxPyShape *shape, wxPyShape *addAfter = NULL);
|
|
|
|
|
|
|
|
// **** Need a typemap for wxClassInfo, or implement wxObject, etc.....
|
2000-03-16 12:37:32 -05:00
|
|
|
wxPyShape* FindShape(double x1, double y, int *OUTPUT,
|
1999-09-10 02:25:47 -04:00
|
|
|
wxClassInfo *info = NULL, wxPyShape* notImage = NULL);
|
|
|
|
|
2000-03-16 12:37:32 -05:00
|
|
|
wxPyShape * FindFirstSensitiveShape(double x1, double y, int *OUTPUT, int op);
|
1999-09-10 02:25:47 -04:00
|
|
|
wxDiagram* GetDiagram();
|
|
|
|
|
|
|
|
bool GetQuickEditMode();
|
|
|
|
void InsertShape(wxPyShape* shape);
|
|
|
|
|
|
|
|
|
|
|
|
void base_OnBeginDragLeft(double x, double y, int keys = 0);
|
|
|
|
void base_OnBeginDragRight(double x, double y, int keys = 0);
|
|
|
|
void base_OnEndDragLeft(double x, double y, int keys = 0);
|
|
|
|
void base_OnEndDragRight(double x, double y, int keys = 0);
|
|
|
|
void base_OnDragLeft(bool draw, double x, double y, int keys = 0);
|
|
|
|
void base_OnDragRight(bool draw, double x, double y, int keys = 0);
|
|
|
|
void base_OnLeftClick(double x, double y, int keys = 0);
|
|
|
|
void base_OnRightClick(double x, double y, int keys = 0);
|
|
|
|
|
|
|
|
void Redraw(wxDC& dc);
|
|
|
|
void RemoveShape(wxPyShape *shape);
|
|
|
|
void SetDiagram(wxDiagram *diagram);
|
2001-02-21 15:57:57 -05:00
|
|
|
void Snap(double *INOUT, double *INOUT);
|
1999-09-10 02:25:47 -04:00
|
|
|
|
2002-04-11 19:12:02 -04:00
|
|
|
|
|
|
|
%pragma(python) addtoclass = "
|
|
|
|
def GetShapeList(self):
|
|
|
|
return self.GetDiagram().GetShapeList()
|
|
|
|
"
|
|
|
|
|
1999-09-10 02:25:47 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|