⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 _oglbasic.i

📁 Wxpython Implemented on Windows CE, Source code
💻 I
📖 第 1 页 / 共 2 页
字号:
/////////////////////////////////////////////////////////////////////////////
// Name:        oglbasic.i
// Purpose:     SWIG definitions for the wxWindows Object Graphics Library
//
// Author:      Robin Dunn
//
// Created:     3-Sept-1999
// RCS-ID:      $Id: _oglbasic.i,v 1.11 2004/09/23 20:23:35 RD Exp $
// 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:
    %pythonAppend wxPyShapeEvtHandler "self._setOORandCallbackInfo(PyShapeEvtHandler)"
     %typemap(out) wxPyShapeEvtHandler*;    // turn off this typemap
   
    wxPyShapeEvtHandler(wxPyShapeEvtHandler *prev = NULL,
                        wxPyShape *shape = NULL);

    %typemap(out) wxPyShapeEvtHandler*      { $result = wxPyMake_wxShapeEvtHandler($1, $owner); }

    
    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:
    %pythonAppend wxPyShape "self._setOORandCallbackInfo(PyShape)"
    %typemap(out) wxPyShape*;    // turn off this typemap

    wxPyShape(wxPyShapeCanvas *can = NULL);  

    %typemap(out) wxPyShape*                { $result = wxPyMake_wxShapeEvtHandler($1, $owner); }

    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);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -