Updated the build docs a bit, added wxMetafileDataObject, and some
cleanup and fixes here and there. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14038 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
f2a139adfd
commit
f54a35fe22
@ -51,10 +51,10 @@ get things from various CVS repositories as needed.
|
||||
ln -s ../wxPython .
|
||||
|
||||
8. Now just navigate in the Finder to the demo directory and double
|
||||
click demo.py, or simple.py, or whatever you want to run.
|
||||
(Unfortunately it can't be done from the commandline in a terminal
|
||||
window. You can open the Console app to see any tracebacks or
|
||||
other output.)
|
||||
click demo.py, or simple.py, or whatever you want to run. Or from
|
||||
a command line you can run it this way:
|
||||
|
||||
open -a Python demo.py
|
||||
|
||||
9. Figure out what's wrong, figure out how to fix it, and then send
|
||||
the patches to me. <wink>
|
||||
|
@ -124,6 +124,22 @@ D. If using the sources (either from the tarball or from CVS) then
|
||||
To make a static library and not make a shared library, use the
|
||||
--disable-shared and --enable-static flags.
|
||||
|
||||
NOTE: It has been discovered that some pre-built distributions of
|
||||
Python are built with options that can cause incompatibilities
|
||||
between wxPython and wxGTK. Typically these are things like large
|
||||
file support on the platforms that have it. This causes some basic
|
||||
types, like off_t, to be typedef'd differently causing the C++
|
||||
method signatures to be incompatible and giving link errors. The
|
||||
way to fix this is to activate these same settings in the wxGTK
|
||||
build, usually by looking at the flags and options used in
|
||||
compiling wxPython that are different from the options used on
|
||||
wxGTK compiles. For example, on SuSE doing the following before
|
||||
running wxGTK's configure seems to take care of it:
|
||||
|
||||
export CFLAGS="-D_FILE_OFFSET_BITS=64 -DHAVE_LARGEFILE_SUPPORT"
|
||||
export CXXFLAGS=$CFLAGS
|
||||
|
||||
|
||||
E. Now just compile and install. You need to use GNU make, so if your
|
||||
system has something else get GNU make and build and install it and
|
||||
use it instead of your system's default make command.
|
||||
@ -162,7 +178,7 @@ B. As mentioned previouslly, wxPython is built with the standard
|
||||
it doesn't, there doesn't seem to be a way to override the values
|
||||
that Distutils uses without hacking either Distutils itself, or
|
||||
Python's Makefile. (Complain to the distutils-sig about this
|
||||
please.) For example, on my Solaris system I had to edit
|
||||
please.) For example, on a Solaris system I had to edit
|
||||
/usr/local/lib/python1.5/config/Makefile and replace
|
||||
|
||||
LDSHARED=ld -G
|
||||
@ -184,9 +200,9 @@ B. As mentioned previouslly, wxPython is built with the standard
|
||||
|
||||
In my case on Solaris wxPython applications would core dump on
|
||||
exit. The core file indicated that the fault happened after
|
||||
_exit() was called and the run-time was trying to execute cleanup
|
||||
code. After relinking the Python executable the problem went away.
|
||||
To build Python to link with the C++ linker do this:
|
||||
_exit() was called and the run-time library was trying to execute
|
||||
cleanup code. After relinking the Python executable the problem
|
||||
went away. To build Python to link with the C++ linker do this:
|
||||
|
||||
cd Python-2.0 # wherever the root of the source tree is
|
||||
rm python # in case it's still there from an old build
|
||||
|
@ -322,14 +322,6 @@ bool wxGLCanvas::Create(wxWindow *parent,
|
||||
msflags |= WS_BORDER;
|
||||
}
|
||||
|
||||
// calculate the value to return from WM_GETDLGCODE handler
|
||||
if ( GetWindowStyleFlag() & wxWANTS_CHARS )
|
||||
{
|
||||
// want everything: i.e. all keys and WM_CHAR message
|
||||
m_lDlgCode = DLGC_WANTARROWS | DLGC_WANTCHARS |
|
||||
DLGC_WANTTAB | DLGC_WANTMESSAGE;
|
||||
}
|
||||
|
||||
return MSWCreate(wxGLCanvasClassName, NULL, pos, size, msflags, exStyle);
|
||||
}
|
||||
|
||||
@ -354,11 +346,11 @@ static void AdjustPFDForAttributes(PIXELFORMATDESCRIPTOR& pfd, int *attribList)
|
||||
case WX_GL_LEVEL:
|
||||
// this member looks like it may be obsolete
|
||||
if (attribList[arg] > 0) {
|
||||
pfd.iLayerType = PFD_OVERLAY_PLANE;
|
||||
pfd.iLayerType = (BYTE)PFD_OVERLAY_PLANE;
|
||||
} else if (attribList[arg] < 0) {
|
||||
pfd.iLayerType = PFD_UNDERLAY_PLANE;
|
||||
pfd.iLayerType = (BYTE)PFD_UNDERLAY_PLANE;
|
||||
} else {
|
||||
pfd.iLayerType = PFD_MAIN_PLANE;
|
||||
pfd.iLayerType = (BYTE)PFD_MAIN_PLANE;
|
||||
}
|
||||
arg++;
|
||||
break;
|
||||
|
@ -1336,7 +1336,6 @@ SWIGEXPORT(void) initxrcc() {
|
||||
wxClassInfo::CleanUpClasses();
|
||||
wxClassInfo::InitializeClasses();
|
||||
|
||||
wxXmlInitXmlModule();
|
||||
wxXmlInitResourceModule();
|
||||
wxXmlResource::Get()->InitAllHandlers();
|
||||
|
||||
|
@ -32,6 +32,7 @@ class SimpleGrid(wxGrid): ##, wxGridAutoEditMixin):
|
||||
self.SetCellValue(5, 0, "123")
|
||||
self.SetCellEditor(6, 0, wxGridCellFloatEditor())
|
||||
self.SetCellValue(6, 0, "123.34")
|
||||
self.SetCellEditor(7, 0, wxGridCellNumberEditor())
|
||||
|
||||
self.SetCellValue(6, 3, "You can veto editing this cell")
|
||||
|
||||
|
@ -1,2 +1,2 @@
|
||||
golf.pdf
|
||||
*.pdf
|
||||
showTips
|
||||
|
@ -731,13 +731,8 @@ if not GL_ONLY and BUILD_XRC:
|
||||
|
||||
'%s/xh_unkwn.cpp' % XMLLOC,
|
||||
'%s/xml.cpp' % XMLLOC,
|
||||
'%s/xmlbin.cpp' % XMLLOC,
|
||||
'%s/xmlbinz.cpp' % XMLLOC,
|
||||
'%s/xmlexpat.cpp' % XMLLOC,
|
||||
|
||||
'%s/xmlres.cpp' % XMLLOC,
|
||||
'%s/xmlrsall.cpp' % XMLLOC,
|
||||
'%s/xmlwrite.cpp' % XMLLOC,
|
||||
|
||||
] + swig_sources,
|
||||
|
||||
|
@ -367,6 +367,25 @@ public:
|
||||
void SetURL(const wxString& url);
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
#ifndef __WXGTK__
|
||||
|
||||
%{
|
||||
#include <wx/metafile.h>
|
||||
%}
|
||||
|
||||
class wxMetafileDataObject : public wxDataObjectSimple
|
||||
{
|
||||
public:
|
||||
wxMetafileDataObject();
|
||||
|
||||
void SetMetafile(const wxMetafile& metafile);
|
||||
wxMetafile GetMetafile() const;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
//----------------------------------------------------------------------
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -1148,7 +1148,7 @@ public:
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifdef __WXMSW__
|
||||
#ifndef __WXGTK__
|
||||
|
||||
%{
|
||||
#include <wx/metafile.h>
|
||||
|
@ -200,6 +200,8 @@ void wxPyBitmapDataObject::SetBitmap(const wxBitmap& bitmap) {
|
||||
wxPyEndBlockThreads();
|
||||
}
|
||||
|
||||
#include <wx/metafile.h>
|
||||
|
||||
// See below in the init function...
|
||||
wxClipboard* wxPyTheClipboard;
|
||||
|
||||
@ -2103,6 +2105,115 @@ static PyObject *_wrap_wxURLDataObject_SetURL(PyObject *self, PyObject *args, Py
|
||||
return _resultobj;
|
||||
}
|
||||
|
||||
static void *SwigwxMetafileDataObjectTowxDataObjectSimple(void *ptr) {
|
||||
wxMetafileDataObject *src;
|
||||
wxDataObjectSimple *dest;
|
||||
src = (wxMetafileDataObject *) ptr;
|
||||
dest = (wxDataObjectSimple *) src;
|
||||
return (void *) dest;
|
||||
}
|
||||
|
||||
static void *SwigwxMetafileDataObjectTowxDataObject(void *ptr) {
|
||||
wxMetafileDataObject *src;
|
||||
wxDataObject *dest;
|
||||
src = (wxMetafileDataObject *) ptr;
|
||||
dest = (wxDataObject *) src;
|
||||
return (void *) dest;
|
||||
}
|
||||
|
||||
#define new_wxMetafileDataObject() (new wxMetafileDataObject())
|
||||
static PyObject *_wrap_new_wxMetafileDataObject(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||
PyObject * _resultobj;
|
||||
wxMetafileDataObject * _result;
|
||||
char *_kwnames[] = { NULL };
|
||||
char _ptemp[128];
|
||||
|
||||
self = self;
|
||||
if(!PyArg_ParseTupleAndKeywords(args,kwargs,":new_wxMetafileDataObject",_kwnames))
|
||||
return NULL;
|
||||
{
|
||||
PyThreadState* __tstate = wxPyBeginAllowThreads();
|
||||
_result = (wxMetafileDataObject *)new_wxMetafileDataObject();
|
||||
|
||||
wxPyEndAllowThreads(__tstate);
|
||||
if (PyErr_Occurred()) return NULL;
|
||||
} if (_result) {
|
||||
SWIG_MakePtr(_ptemp, (char *) _result,"_wxMetafileDataObject_p");
|
||||
_resultobj = Py_BuildValue("s",_ptemp);
|
||||
} else {
|
||||
Py_INCREF(Py_None);
|
||||
_resultobj = Py_None;
|
||||
}
|
||||
return _resultobj;
|
||||
}
|
||||
|
||||
#define wxMetafileDataObject_SetMetafile(_swigobj,_swigarg0) (_swigobj->SetMetafile(_swigarg0))
|
||||
static PyObject *_wrap_wxMetafileDataObject_SetMetafile(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||
PyObject * _resultobj;
|
||||
wxMetafileDataObject * _arg0;
|
||||
wxMetafile * _arg1;
|
||||
PyObject * _argo0 = 0;
|
||||
PyObject * _argo1 = 0;
|
||||
char *_kwnames[] = { "self","metafile", NULL };
|
||||
|
||||
self = self;
|
||||
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxMetafileDataObject_SetMetafile",_kwnames,&_argo0,&_argo1))
|
||||
return NULL;
|
||||
if (_argo0) {
|
||||
if (_argo0 == Py_None) { _arg0 = NULL; }
|
||||
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxMetafileDataObject_p")) {
|
||||
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMetafileDataObject_SetMetafile. Expected _wxMetafileDataObject_p.");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
if (_argo1) {
|
||||
if (_argo1 == Py_None) { _arg1 = NULL; }
|
||||
else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxMetafile_p")) {
|
||||
PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxMetafileDataObject_SetMetafile. Expected _wxMetafile_p.");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
{
|
||||
PyThreadState* __tstate = wxPyBeginAllowThreads();
|
||||
wxMetafileDataObject_SetMetafile(_arg0,*_arg1);
|
||||
|
||||
wxPyEndAllowThreads(__tstate);
|
||||
if (PyErr_Occurred()) return NULL;
|
||||
} Py_INCREF(Py_None);
|
||||
_resultobj = Py_None;
|
||||
return _resultobj;
|
||||
}
|
||||
|
||||
#define wxMetafileDataObject_GetMetafile(_swigobj) (_swigobj->GetMetafile())
|
||||
static PyObject *_wrap_wxMetafileDataObject_GetMetafile(PyObject *self, PyObject *args, PyObject *kwargs) {
|
||||
PyObject * _resultobj;
|
||||
wxMetafile * _result;
|
||||
wxMetafileDataObject * _arg0;
|
||||
PyObject * _argo0 = 0;
|
||||
char *_kwnames[] = { "self", NULL };
|
||||
char _ptemp[128];
|
||||
|
||||
self = self;
|
||||
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxMetafileDataObject_GetMetafile",_kwnames,&_argo0))
|
||||
return NULL;
|
||||
if (_argo0) {
|
||||
if (_argo0 == Py_None) { _arg0 = NULL; }
|
||||
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxMetafileDataObject_p")) {
|
||||
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMetafileDataObject_GetMetafile. Expected _wxMetafileDataObject_p.");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
{
|
||||
PyThreadState* __tstate = wxPyBeginAllowThreads();
|
||||
_result = new wxMetafile (wxMetafileDataObject_GetMetafile(_arg0));
|
||||
|
||||
wxPyEndAllowThreads(__tstate);
|
||||
if (PyErr_Occurred()) return NULL;
|
||||
} SWIG_MakePtr(_ptemp, (void *) _result,"_wxMetafile_p");
|
||||
_resultobj = Py_BuildValue("s",_ptemp);
|
||||
return _resultobj;
|
||||
}
|
||||
|
||||
static void *SwigwxClipboardTowxObject(void *ptr) {
|
||||
wxClipboard *src;
|
||||
wxObject *dest;
|
||||
@ -3586,6 +3697,9 @@ static PyMethodDef clip_dndcMethods[] = {
|
||||
{ "wxClipboard_Close", (PyCFunction) _wrap_wxClipboard_Close, METH_VARARGS | METH_KEYWORDS },
|
||||
{ "wxClipboard_Open", (PyCFunction) _wrap_wxClipboard_Open, METH_VARARGS | METH_KEYWORDS },
|
||||
{ "new_wxClipboard", (PyCFunction) _wrap_new_wxClipboard, METH_VARARGS | METH_KEYWORDS },
|
||||
{ "wxMetafileDataObject_GetMetafile", (PyCFunction) _wrap_wxMetafileDataObject_GetMetafile, METH_VARARGS | METH_KEYWORDS },
|
||||
{ "wxMetafileDataObject_SetMetafile", (PyCFunction) _wrap_wxMetafileDataObject_SetMetafile, METH_VARARGS | METH_KEYWORDS },
|
||||
{ "new_wxMetafileDataObject", (PyCFunction) _wrap_new_wxMetafileDataObject, METH_VARARGS | METH_KEYWORDS },
|
||||
{ "wxURLDataObject_SetURL", (PyCFunction) _wrap_wxURLDataObject_SetURL, METH_VARARGS | METH_KEYWORDS },
|
||||
{ "wxURLDataObject_GetURL", (PyCFunction) _wrap_wxURLDataObject_GetURL, METH_VARARGS | METH_KEYWORDS },
|
||||
{ "new_wxURLDataObject", (PyCFunction) _wrap_new_wxURLDataObject, METH_VARARGS | METH_KEYWORDS },
|
||||
@ -3652,6 +3766,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
|
||||
{ "_wxPrintQuality","_size_t",0},
|
||||
{ "_wxPrintQuality","_time_t",0},
|
||||
{ "_byte","_unsigned_char",0},
|
||||
{ "_wxDataObject","_wxMetafileDataObject",SwigwxMetafileDataObjectTowxDataObject},
|
||||
{ "_wxDataObject","_wxURLDataObject",SwigwxURLDataObjectTowxDataObject},
|
||||
{ "_wxDataObject","_wxCustomDataObject",SwigwxCustomDataObjectTowxDataObject},
|
||||
{ "_wxDataObject","_wxFileDataObject",SwigwxFileDataObjectTowxDataObject},
|
||||
@ -3664,6 +3779,7 @@ static struct { char *n1; char *n2; void *(*pcnv)(void *); } _swig_mapping[] = {
|
||||
{ "_wxDataObject","_wxDataObjectSimple",SwigwxDataObjectSimpleTowxDataObject},
|
||||
{ "_long","_unsigned_long",0},
|
||||
{ "_long","_signed_long",0},
|
||||
{ "_wxDataObjectSimple","_wxMetafileDataObject",SwigwxMetafileDataObjectTowxDataObjectSimple},
|
||||
{ "_wxDataObjectSimple","_wxCustomDataObject",SwigwxCustomDataObjectTowxDataObjectSimple},
|
||||
{ "_wxDataObjectSimple","_wxFileDataObject",SwigwxFileDataObjectTowxDataObjectSimple},
|
||||
{ "_wxDataObjectSimple","_wxPyBitmapDataObject",SwigwxPyBitmapDataObjectTowxDataObjectSimple},
|
||||
|
@ -278,6 +278,26 @@ class wxURLDataObject(wxURLDataObjectPtr):
|
||||
|
||||
|
||||
|
||||
class wxMetafileDataObjectPtr(wxDataObjectSimplePtr):
|
||||
def __init__(self,this):
|
||||
self.this = this
|
||||
self.thisown = 0
|
||||
def SetMetafile(self, *_args, **_kwargs):
|
||||
val = apply(clip_dndc.wxMetafileDataObject_SetMetafile,(self,) + _args, _kwargs)
|
||||
return val
|
||||
def GetMetafile(self, *_args, **_kwargs):
|
||||
val = apply(clip_dndc.wxMetafileDataObject_GetMetafile,(self,) + _args, _kwargs)
|
||||
return val
|
||||
def __repr__(self):
|
||||
return "<C wxMetafileDataObject instance at %s>" % (self.this,)
|
||||
class wxMetafileDataObject(wxMetafileDataObjectPtr):
|
||||
def __init__(self,*_args,**_kwargs):
|
||||
self.this = apply(clip_dndc.new_wxMetafileDataObject,_args,_kwargs)
|
||||
self.thisown = 1
|
||||
|
||||
|
||||
|
||||
|
||||
class wxClipboardPtr(wxObjectPtr):
|
||||
def __init__(self,this):
|
||||
self.this = this
|
||||
|
Loading…
Reference in New Issue
Block a user