%rename(DragCancel) wxDragCancel;
%rename(IsDragResultOk) wxIsDragResultOk;
%rename(Clipboard) wxClipboard;
-%rename(TheClipboard) wxTheClipboard;
%rename(ClipboardLocker) wxClipboardLocker;
%rename(VideoMode) wxVideoMode;
%rename(DefaultVideoMode) wxDefaultVideoMode;
"On platforms supporting it (the X11 based platforms), selects the
so called PRIMARY SELECTION as the clipboard as opposed to the
normal clipboard, if primary is True.", "");
-};
-%immutable;
-wxClipboard* const wxTheClipboard;
-%mutable;
+ DocDeclStr(
+ static wxClipboard *, Get(),
+ "Returns global instance (wxTheClipboard) of the object.", "");
+
+};
+
+// Previously we just declared wxTheClipboard as a global, but in C++
+// is has been changed to be a macro for wxClipboard::Get, but the
+// swig generated code will try to evaluate it when it assigns to the
+// swig wrapper var so this causes Get to be called too early on
+// wxGTK. So instead we'll create a Python class that can delay the
+// Get until it is really needed, which is similar in effect to what
+// is really happening on the C++ side too.
+%pythoncode {
+ class _wxPyDelayedInitWrapper(object):
+ def __init__(self, initfunc, *args, **kwargs):
+ self._initfunc = initfunc
+ self._args = args
+ self._kwargs = kwargs
+ self._instance = None
+ def _checkInstance(self):
+ if self._instance is None:
+ self._instance = self._initfunc(*self._args, **self._kwargs)
+ def __getattr__(self, name):
+ self._checkInstance()
+ return getattr(self._instance, name)
+ def __repr__(self):
+ self._checkInstance()
+ return repr(self._instance)
+ TheClipboard = _wxPyDelayedInitWrapper(Clipboard.Get)
+}
//---------------------------------------------------------------------------
REINITOBJ(wxTheColourDatabase, wxColourDatabase);
- REINITOBJ(wxTheClipboard, wxClipboard);
REINITOBJ2(wxDefaultValidator, wxValidator);
REINITOBJ2(wxNullImage, wxImage);
REINITOBJ2(wxNullAcceleratorTable, wxAcceleratorTable);
wxFileDropTargetPtr = wx._misc.FileDropTargetPtr
wxClipboard = wx._misc.Clipboard
wxClipboardPtr = wx._misc.ClipboardPtr
-wxTheClipboard = wx._misc.TheClipboard
+wxClipboard_Get = wx._misc.Clipboard_Get
wxClipboardLocker = wx._misc.ClipboardLocker
wxClipboardLockerPtr = wx._misc.ClipboardLockerPtr
wxVideoMode = wx._misc.VideoMode
wxDisplay_GetFromWindow = wx._misc.Display_GetFromWindow
wxPyTimer = wx._misc.PyTimer
wxPyDropTarget = wx._misc.PyDropTarget
+wxTheClipboard = wx._misc.TheClipboard