1999-09-10 06:25:47 +00: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
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
2003-11-12 21:34:20 +00:00
|
|
|
// not a %module
|
1999-09-10 06:25:47 +00:00
|
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
2002-07-06 04:14:52 +00:00
|
|
|
%{
|
|
|
|
// Put some wx default wxChar* values into wxStrings.
|
|
|
|
DECLARE_DEF_STRING(ShapeCanvasNameStr);
|
|
|
|
%}
|
|
|
|
|
1999-09-10 06:25:47 +00:00
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
|
2001-05-17 22:47:09 +00:00
|
|
|
class wxDiagram : public wxObject {
|
1999-09-10 06:25:47 +00:00
|
|
|
public:
|
|
|
|
wxDiagram();
|
2001-05-17 22:47:09 +00:00
|
|
|
//~wxDiagram();
|
1999-09-10 06:25:47 +00:00
|
|
|
|
2001-07-05 02:16:20 +00:00
|
|
|
void AddShape(wxPyShape* shape, wxPyShape *addAfter = NULL);
|
1999-09-10 06:25:47 +00: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();
|
2003-11-12 21:34:20 +00:00
|
|
|
%extend {
|
1999-09-10 06:25:47 +00:00
|
|
|
PyObject* GetShapeList() {
|
|
|
|
wxList* list = self->GetShapeList();
|
2003-11-12 21:34:20 +00:00
|
|
|
return wxPy_ConvertShapeList(list);
|
1999-09-10 06:25:47 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetQuickEditMode();
|
|
|
|
bool GetSnapToGrid();
|
|
|
|
void InsertShape(wxPyShape *shape);
|
2003-03-25 06:35:27 +00:00
|
|
|
|
|
|
|
#ifdef wxUSE_PROLOGIO
|
1999-09-10 06:25:47 +00:00
|
|
|
bool LoadFile(const wxString& filename);
|
2003-03-25 06:35:27 +00:00
|
|
|
bool SaveFile(const wxString& filename);
|
|
|
|
#endif
|
1999-09-10 06:25:47 +00:00
|
|
|
|
2003-03-25 06:35:27 +00:00
|
|
|
#ifdef wxUSE_PROLOGIO
|
1999-09-10 06:25:47 +00: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 06:35:27 +00:00
|
|
|
#endif
|
1999-09-10 06:25:47 +00:00
|
|
|
|
2003-03-25 06:35:27 +00:00
|
|
|
#ifdef wxUSE_PROLOGIO
|
1999-09-10 06:25:47 +00:00
|
|
|
void ReadContainerGeometry(wxExprDatabase& database);
|
|
|
|
void ReadLines(wxExprDatabase& database);
|
|
|
|
void ReadNodes(wxExprDatabase& database);
|
2003-03-25 06:35:27 +00:00
|
|
|
#endif
|
|
|
|
|
1999-09-10 06:25:47 +00: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 20:57:57 +00:00
|
|
|
void Snap(double *INOUT, double *INOUT);
|
1999-09-10 06:25:47 +00: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);
|
|
|
|
%}
|
|
|
|
|
|
|
|
|
2004-06-01 21:38:05 +00:00
|
|
|
MustHaveApp(wxPyShapeCanvas);
|
|
|
|
|
1999-09-10 06:25:47 +00:00
|
|
|
class wxPyShapeCanvas : public wxScrolledWindow {
|
|
|
|
public:
|
2004-05-13 15:42:14 +00:00
|
|
|
%pythonAppend wxPyShapeCanvas "self._setOORandCallbackInfo(PyShapeCanvas)"
|
2004-07-17 22:51:01 +00:00
|
|
|
%typemap(out) wxPyShapeCanvas*; // turn off this typemap
|
|
|
|
|
1999-09-10 06:25:47 +00:00
|
|
|
wxPyShapeCanvas(wxWindow* parent = NULL, wxWindowID id = -1,
|
2000-12-22 00:06:04 +00:00
|
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
|
|
const wxSize& size = wxDefaultSize,
|
2002-07-06 04:14:52 +00:00
|
|
|
long style = wxBORDER,
|
|
|
|
const wxString& name = wxPyShapeCanvasNameStr);
|
1999-09-10 06:25:47 +00:00
|
|
|
|
2004-07-17 22:51:01 +00:00
|
|
|
%typemap(out) wxPyShapeCanvas* { $result = wxPyMake_wxObject($1, $owner); }
|
|
|
|
|
2001-10-12 23:26:38 +00:00
|
|
|
void _setCallbackInfo(PyObject* self, PyObject* _class);
|
2003-11-12 21:34:20 +00:00
|
|
|
%pythoncode {
|
|
|
|
def _setOORandCallbackInfo(self, _class):
|
|
|
|
self._setOORInfo(self)
|
|
|
|
self._setCallbackInfo(self, _class)
|
|
|
|
}
|
1999-09-10 06:25:47 +00:00
|
|
|
|
|
|
|
void AddShape(wxPyShape *shape, wxPyShape *addAfter = NULL);
|
|
|
|
|
2003-11-12 21:34:20 +00:00
|
|
|
// **** Need a typemap for wxClassInfo, or fully implement wxObject, etc.....
|
2000-03-16 17:37:32 +00:00
|
|
|
wxPyShape* FindShape(double x1, double y, int *OUTPUT,
|
1999-09-10 06:25:47 +00:00
|
|
|
wxClassInfo *info = NULL, wxPyShape* notImage = NULL);
|
|
|
|
|
2000-03-16 17:37:32 +00:00
|
|
|
wxPyShape * FindFirstSensitiveShape(double x1, double y, int *OUTPUT, int op);
|
1999-09-10 06:25:47 +00: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 20:57:57 +00:00
|
|
|
void Snap(double *INOUT, double *INOUT);
|
1999-09-10 06:25:47 +00:00
|
|
|
|
2002-04-11 23:12:02 +00:00
|
|
|
|
2003-11-12 21:34:20 +00:00
|
|
|
%pythoncode {
|
2002-04-11 23:12:02 +00:00
|
|
|
def GetShapeList(self):
|
|
|
|
return self.GetDiagram().GetShapeList()
|
2003-11-12 21:34:20 +00:00
|
|
|
}
|
1999-09-10 06:25:47 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|