git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@25107 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			404 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
			
		
		
	
	
			404 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        oglbasic.i
 | 
						|
// Purpose:     SWIG definitions for the wxWindows Object Graphics Library
 | 
						|
//
 | 
						|
// Author:      Robin Dunn
 | 
						|
//
 | 
						|
// Created:     3-Sept-1999
 | 
						|
// RCS-ID:      $Id$
 | 
						|
// Copyright:   (c) 1998 by Total Control Software
 | 
						|
// Licence:     wxWindows license
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
 | 
						|
// Not a %module
 | 
						|
 | 
						|
 | 
						|
//---------------------------------------------------------------------------
 | 
						|
%newgroup;
 | 
						|
 | 
						|
 | 
						|
class wxShapeRegion : public wxObject {
 | 
						|
public:
 | 
						|
    wxShapeRegion();
 | 
						|
    //~wxShapeRegion();
 | 
						|
 | 
						|
    void SetText(const wxString& s);
 | 
						|
    void SetFont(wxFont *f);
 | 
						|
    void SetMinSize(double w, double h);
 | 
						|
    void SetSize(double w, double h);
 | 
						|
    void SetPosition(double x, double y);
 | 
						|
    void SetProportions(double x, double y);
 | 
						|
    void SetFormatMode(int mode);
 | 
						|
    void SetName(const wxString& s);
 | 
						|
    void SetColour(const wxString& col);
 | 
						|
 | 
						|
    wxString GetText();
 | 
						|
    wxFont *GetFont();
 | 
						|
    void GetMinSize(double *OUTPUT, double *OUTPUT);
 | 
						|
    void GetProportion(double *OUTPUT, double *OUTPUT);
 | 
						|
    void GetSize(double *OUTPUT, double *OUTPUT);
 | 
						|
    void GetPosition(double *OUTPUT, double *OUTPUT);
 | 
						|
    int GetFormatMode();
 | 
						|
    wxString GetName();
 | 
						|
    wxString GetColour();
 | 
						|
    wxColour GetActualColourObject();
 | 
						|
    wxList& GetFormattedText();
 | 
						|
    wxString GetPenColour();
 | 
						|
    int GetPenStyle();
 | 
						|
    void SetPenStyle(int style);
 | 
						|
    void SetPenColour(const wxString& col);
 | 
						|
    wxPen *GetActualPen();
 | 
						|
    double GetWidth();
 | 
						|
    double GetHeight();
 | 
						|
 | 
						|
    void ClearText();
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
//---------------------------------------------------------------------------
 | 
						|
 | 
						|
/*
 | 
						|
 * User-defined attachment point
 | 
						|
 */
 | 
						|
 | 
						|
class wxAttachmentPoint: public wxObject
 | 
						|
{
 | 
						|
public:
 | 
						|
    wxAttachmentPoint(int id=0, double x=0.0, double y=0.0);
 | 
						|
    int            m_id;           // Identifier
 | 
						|
    double         m_x;            // x offset from centre of object
 | 
						|
    double         m_y;            // y offset from centre of object
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
//---------------------------------------------------------------------------
 | 
						|
 | 
						|
%{
 | 
						|
    WXSHAPE_IMP_CALLBACKS(wxPyShapeEvtHandler,wxShapeEvtHandler);
 | 
						|
%}
 | 
						|
 | 
						|
 | 
						|
class wxPyShapeEvtHandler : public wxObject {
 | 
						|
public:
 | 
						|
    %addtofunc wxPyShapeEvtHandler "self._setOORandCallbackInfo(PyShapeEvtHandler)"
 | 
						|
    
 | 
						|
    wxPyShapeEvtHandler(wxPyShapeEvtHandler *prev = NULL,
 | 
						|
                        wxPyShape *shape = NULL);
 | 
						|
 | 
						|
    void _setCallbackInfo(PyObject* self, PyObject* _class);
 | 
						|
    %extend {
 | 
						|
        void _setOORInfo(PyObject* _self) {
 | 
						|
            self->SetClientObject(new wxPyOORClientData(_self));
 | 
						|
        }
 | 
						|
    }
 | 
						|
    %pythoncode {
 | 
						|
    def _setOORandCallbackInfo(self, _class):
 | 
						|
        self._setOORInfo(self)
 | 
						|
        self._setCallbackInfo(self, _class)
 | 
						|
    }
 | 
						|
 | 
						|
    
 | 
						|
    void SetShape(wxPyShape *sh);
 | 
						|
    wxPyShape *GetShape();
 | 
						|
    void SetPreviousHandler(wxPyShapeEvtHandler* handler);
 | 
						|
    wxPyShapeEvtHandler* GetPreviousHandler();
 | 
						|
    wxPyShapeEvtHandler* CreateNewCopy();
 | 
						|
 | 
						|
    void base_OnDelete();
 | 
						|
    void base_OnDraw(wxDC& dc);
 | 
						|
    void base_OnDrawContents(wxDC& dc);
 | 
						|
    void base_OnDrawBranches(wxDC& dc, bool erase = False);
 | 
						|
    void base_OnMoveLinks(wxDC& dc);
 | 
						|
    void base_OnErase(wxDC& dc);
 | 
						|
    void base_OnEraseContents(wxDC& dc);
 | 
						|
    void base_OnHighlight(wxDC& dc);
 | 
						|
    void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 | 
						|
    void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 | 
						|
    void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 | 
						|
    void base_OnSize(double x, double y);
 | 
						|
    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 | 
						|
    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 | 
						|
    void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 | 
						|
    void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 | 
						|
    void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 | 
						|
    void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 | 
						|
    void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 | 
						|
    void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 | 
						|
    void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 | 
						|
    void base_OnDrawControlPoints(wxDC& dc);
 | 
						|
    void base_OnEraseControlPoints(wxDC& dc);
 | 
						|
    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = True);
 | 
						|
    void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 | 
						|
    void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 | 
						|
    void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 | 
						|
    void base_OnBeginSize(double w, double h);
 | 
						|
    void base_OnEndSize(double w, double h);
 | 
						|
//    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 | 
						|
};
 | 
						|
 | 
						|
//---------------------------------------------------------------------------
 | 
						|
%{
 | 
						|
    WXSHAPE_IMP_CALLBACKS(wxPyShape, wxShape);
 | 
						|
%}
 | 
						|
 | 
						|
 | 
						|
class wxPyShape : public wxPyShapeEvtHandler {
 | 
						|
public:
 | 
						|
    %addtofunc wxPyShape "self._setOORandCallbackInfo(PyShapeEvtHandler)"
 | 
						|
    
 | 
						|
    wxPyShape(wxPyShapeCanvas *can = NULL);  
 | 
						|
 | 
						|
    void _setCallbackInfo(PyObject* self, PyObject* _class);
 | 
						|
 | 
						|
    void GetBoundingBoxMax(double *OUTPUT, double *OUTPUT);
 | 
						|
    void GetBoundingBoxMin(double *OUTPUT, double *OUTPUT);
 | 
						|
    bool GetPerimeterPoint(double x1, double y1,
 | 
						|
                           double x2, double y2,
 | 
						|
                           double *OUTPUT, double *OUTPUT);
 | 
						|
    wxPyShapeCanvas *GetCanvas();
 | 
						|
    void SetCanvas(wxPyShapeCanvas *the_canvas);
 | 
						|
    void AddToCanvas(wxPyShapeCanvas *the_canvas, wxPyShape *addAfter = NULL);
 | 
						|
    void InsertInCanvas(wxPyShapeCanvas *the_canvas);
 | 
						|
    void RemoveFromCanvas(wxPyShapeCanvas *the_canvas);
 | 
						|
    double GetX();
 | 
						|
    double GetY();
 | 
						|
    void SetX(double x);
 | 
						|
    void SetY(double y);
 | 
						|
    wxPyShape *GetParent();
 | 
						|
    void SetParent(wxPyShape *p);
 | 
						|
    wxPyShape *GetTopAncestor();
 | 
						|
 | 
						|
 | 
						|
    // wxList& GetChildren();
 | 
						|
    %extend {
 | 
						|
        PyObject* GetChildren() {
 | 
						|
            wxList& list = self->GetChildren();
 | 
						|
            return wxPy_ConvertShapeList(&list);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
    void Unlink();
 | 
						|
    void SetDrawHandles(bool drawH);
 | 
						|
    bool GetDrawHandles();
 | 
						|
    void MakeControlPoints();
 | 
						|
    void DeleteControlPoints(wxDC *dc = NULL);
 | 
						|
    void ResetControlPoints();
 | 
						|
    wxPyShapeEvtHandler *GetEventHandler();
 | 
						|
    void SetEventHandler(wxPyShapeEvtHandler *handler);
 | 
						|
    void MakeMandatoryControlPoints();
 | 
						|
    void ResetMandatoryControlPoints();
 | 
						|
    bool Recompute();
 | 
						|
    void CalculateSize();
 | 
						|
    void Select(bool select = True, wxDC* dc = NULL);
 | 
						|
    void SetHighlight(bool hi = True, bool recurse = False);
 | 
						|
    bool IsHighlighted() ;
 | 
						|
    bool Selected();
 | 
						|
    bool AncestorSelected();
 | 
						|
    void SetSensitivityFilter(int sens = OP_ALL, bool recursive = False);
 | 
						|
    int GetSensitivityFilter();
 | 
						|
    void SetDraggable(bool drag, bool recursive = False);
 | 
						|
    void SetFixedSize(bool x, bool y);
 | 
						|
    void GetFixedSize(bool *OUTPUT, bool *OUTPUT) ;
 | 
						|
    bool GetFixedWidth();
 | 
						|
    bool GetFixedHeight();
 | 
						|
    void SetSpaceAttachments(bool sp);
 | 
						|
    bool GetSpaceAttachments() ;
 | 
						|
    void SetShadowMode(int mode, bool redraw = False);
 | 
						|
    int GetShadowMode();
 | 
						|
    bool HitTest(double x, double y, int *OUTPUT, double *OUTPUT);
 | 
						|
    void SetCentreResize(bool cr);
 | 
						|
    bool GetCentreResize();
 | 
						|
    void SetMaintainAspectRatio(bool ar);
 | 
						|
    bool GetMaintainAspectRatio();
 | 
						|
 | 
						|
 | 
						|
    // wxList& GetLines();
 | 
						|
    %extend {
 | 
						|
        PyObject* GetLines() {
 | 
						|
            wxList& list = self->GetLines();
 | 
						|
            return wxPy_ConvertShapeList(&list);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    void SetDisableLabel(bool flag);
 | 
						|
    bool GetDisableLabel();
 | 
						|
    void SetAttachmentMode(int mode);
 | 
						|
    int GetAttachmentMode();
 | 
						|
    void SetId(long i);
 | 
						|
    long GetId();
 | 
						|
 | 
						|
    void SetPen(wxPen *pen);
 | 
						|
    void SetBrush(wxBrush *brush);
 | 
						|
 | 
						|
 | 
						|
    // void SetClientData(wxObject *client_data);
 | 
						|
    // wxObject *GetClientData();
 | 
						|
 | 
						|
    // The real client data methods are being used for OOR, so just fake it.
 | 
						|
    %pythoncode {
 | 
						|
    def SetClientData(self, data):
 | 
						|
        self.clientData = data
 | 
						|
    def GetClientData(self):
 | 
						|
        if hasattr(self, 'clientData'):
 | 
						|
            return self.clientData
 | 
						|
        else:
 | 
						|
            return None
 | 
						|
    }
 | 
						|
 | 
						|
    void Show(bool show);
 | 
						|
    bool IsShown();
 | 
						|
    void Move(wxDC& dc, double x1, double y1, bool display = True);
 | 
						|
    void Erase(wxDC& dc);
 | 
						|
    void EraseContents(wxDC& dc);
 | 
						|
    void Draw(wxDC& dc);
 | 
						|
    void Flash();
 | 
						|
    void MoveLinks(wxDC& dc);
 | 
						|
    void DrawContents(wxDC& dc);
 | 
						|
    void SetSize(double x, double y, bool recursive = True);
 | 
						|
    void SetAttachmentSize(double x, double y);
 | 
						|
    void Attach(wxPyShapeCanvas *can);
 | 
						|
    void Detach();
 | 
						|
    bool Constrain();
 | 
						|
    void AddLine(wxPyLineShape *line, wxPyShape *other,
 | 
						|
                 int attachFrom = 0, int attachTo = 0,
 | 
						|
                 int positionFrom = -1, int positionTo = -1);
 | 
						|
    int GetLinePosition(wxPyLineShape* line);
 | 
						|
    void AddText(const wxString& string);
 | 
						|
    wxPen *GetPen();
 | 
						|
    wxBrush *GetBrush();
 | 
						|
    void SetDefaultRegionSize();
 | 
						|
    void FormatText(wxDC& dc, const wxString& s, int regionId = 0);
 | 
						|
    void SetFormatMode(int mode, int regionId = 0);
 | 
						|
    int GetFormatMode(int regionId = 0);
 | 
						|
    void SetFont(wxFont *font, int regionId = 0);
 | 
						|
    wxFont *GetFont(int regionId = 0);
 | 
						|
    void SetTextColour(const wxString& colour, int regionId = 0);
 | 
						|
    wxString GetTextColour(int regionId = 0);
 | 
						|
    int GetNumberOfTextRegions();
 | 
						|
    void SetRegionName(const wxString& name, int regionId = 0);
 | 
						|
    wxString GetRegionName(int regionId);
 | 
						|
    int GetRegionId(const wxString& name);
 | 
						|
    void NameRegions(const wxString& parentName = wxPyEmptyString);
 | 
						|
 | 
						|
    // wxList& GetRegions();
 | 
						|
    %extend {
 | 
						|
        PyObject* GetRegions() {
 | 
						|
            wxList& list = self->GetRegions();
 | 
						|
            return wxPy_ConvertList(&list);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    void AddRegion(wxShapeRegion *region);
 | 
						|
    void ClearRegions();
 | 
						|
    void AssignNewIds();
 | 
						|
    wxPyShape *FindRegion(const wxString& regionName, int *OUTPUT);
 | 
						|
    void FindRegionNames(wxStringList& list);
 | 
						|
    void ClearText(int regionId = 0);
 | 
						|
    void RemoveLine(wxPyLineShape *line);
 | 
						|
 | 
						|
#ifdef wxUSE_PROLOGIO
 | 
						|
    void WriteAttributes(wxExpr *clause);
 | 
						|
    void ReadAttributes(wxExpr *clause);
 | 
						|
    void ReadConstraints(wxExpr *clause, wxExprDatabase *database);
 | 
						|
    void WriteRegions(wxExpr *clause);
 | 
						|
    void ReadRegions(wxExpr *clause);
 | 
						|
#endif
 | 
						|
 | 
						|
    bool GetAttachmentPosition(int attachment, double *OUTPUT, double *OUTPUT,
 | 
						|
                               int nth = 0, int no_arcs = 1, wxPyLineShape *line = NULL);
 | 
						|
    int GetNumberOfAttachments();
 | 
						|
    bool AttachmentIsValid(int attachment);
 | 
						|
 | 
						|
    %extend {
 | 
						|
        PyObject* GetAttachments() {
 | 
						|
            wxList& list = self->GetAttachments();
 | 
						|
            return wxPy_ConvertList(&list);            
 | 
						|
        }
 | 
						|
    }
 | 
						|
    
 | 
						|
    bool GetAttachmentPositionEdge(int attachment, double *OUTPUT, double *OUTPUT,
 | 
						|
                                   int nth = 0, int no_arcs = 1, wxPyLineShape *line = NULL);
 | 
						|
    wxRealPoint CalcSimpleAttachment(const wxRealPoint& pt1, const wxRealPoint& pt2,
 | 
						|
                                     int nth, int noArcs, wxPyLineShape* line);
 | 
						|
    bool AttachmentSortTest(int attachmentPoint, const wxRealPoint& pt1, const wxRealPoint& pt2);
 | 
						|
    void EraseLinks(wxDC& dc, int attachment = -1, bool recurse = False);
 | 
						|
    void DrawLinks(wxDC& dc, int attachment = -1, bool recurse = False);
 | 
						|
    bool MoveLineToNewAttachment(wxDC& dc, wxPyLineShape *to_move,
 | 
						|
                                 double x, double y);
 | 
						|
 | 
						|
    //void ApplyAttachmentOrdering(wxList& linesToSort);
 | 
						|
    %extend {
 | 
						|
        void ApplyAttachmentOrdering(PyObject* linesToSort) {
 | 
						|
            wxList* list = wxPy_wxListHelper(linesToSort, wxT("wxPyLineShape"));
 | 
						|
            self->ApplyAttachmentOrdering(*list);
 | 
						|
            delete list;
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    wxRealPoint GetBranchingAttachmentRoot(int attachment);
 | 
						|
    bool GetBranchingAttachmentInfo(int attachment, wxRealPoint& root, wxRealPoint& neck,
 | 
						|
                                    wxRealPoint& shoulder1, wxRealPoint& shoulder2);
 | 
						|
    bool GetBranchingAttachmentPoint(int attachment, int n, wxRealPoint& attachmentPoint,
 | 
						|
                                     wxRealPoint& stemPoint);
 | 
						|
    int GetAttachmentLineCount(int attachment);
 | 
						|
    void SetBranchNeckLength(int len);
 | 
						|
    int GetBranchNeckLength();
 | 
						|
    void SetBranchStemLength(int len);
 | 
						|
    int GetBranchStemLength();
 | 
						|
    void SetBranchSpacing(int len);
 | 
						|
    int GetBranchSpacing();
 | 
						|
    void SetBranchStyle(long style);
 | 
						|
    long GetBranchStyle();
 | 
						|
    int PhysicalToLogicalAttachment(int physicalAttachment);
 | 
						|
    int LogicalToPhysicalAttachment(int logicalAttachment);
 | 
						|
    bool Draggable();
 | 
						|
    bool HasDescendant(wxPyShape *image);
 | 
						|
    wxPyShape *CreateNewCopy(bool resetMapping = True, bool recompute = True);
 | 
						|
    void Copy(wxPyShape& copy);
 | 
						|
    void CopyWithHandler(wxPyShape& copy);
 | 
						|
    void Rotate(double x, double y, double theta);
 | 
						|
    double GetRotation();
 | 
						|
    void SetRotation(double rotation);
 | 
						|
    void ClearAttachments();
 | 
						|
    void Recentre(wxDC& dc);
 | 
						|
    void ClearPointList(wxList& list);
 | 
						|
    wxPen GetBackgroundPen();
 | 
						|
    wxBrush GetBackgroundBrush();
 | 
						|
 | 
						|
    void base_OnDelete();
 | 
						|
    void base_OnDraw(wxDC& dc);
 | 
						|
    void base_OnDrawContents(wxDC& dc);
 | 
						|
    void base_OnDrawBranches(wxDC& dc, bool erase = False);
 | 
						|
    void base_OnMoveLinks(wxDC& dc);
 | 
						|
    void base_OnErase(wxDC& dc);
 | 
						|
    void base_OnEraseContents(wxDC& dc);
 | 
						|
    void base_OnHighlight(wxDC& dc);
 | 
						|
    void base_OnLeftClick(double x, double y, int keys = 0, int attachment = 0);
 | 
						|
    void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
 | 
						|
    void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
 | 
						|
    void base_OnSize(double x, double y);
 | 
						|
    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 | 
						|
    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
 | 
						|
    void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
 | 
						|
    void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
 | 
						|
    void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
 | 
						|
    void base_OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0);
 | 
						|
    void base_OnBeginDragRight(double x, double y, int keys=0, int attachment = 0);
 | 
						|
    void base_OnEndDragRight(double x, double y, int keys=0, int attachment = 0);
 | 
						|
    void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
 | 
						|
    void base_OnDrawControlPoints(wxDC& dc);
 | 
						|
    void base_OnEraseControlPoints(wxDC& dc);
 | 
						|
    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = True);
 | 
						|
    void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
 | 
						|
    void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 | 
						|
    void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
 | 
						|
    void base_OnBeginSize(double w, double h);
 | 
						|
    void base_OnEndSize(double w, double h);
 | 
						|
//    void base_OnChangeAttachment(int attachment, wxPyLineShape* line, wxList& ordering);
 | 
						|
};
 | 
						|
 | 
						|
//---------------------------------------------------------------------------
 | 
						|
 |