X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fcafa8a99e85911258e8f783a5099894a2322261..f78e4942ec0f3f6abd2992502e2d6c5c2e8e55f6:/wxPython/src/_clipbrd.i diff --git a/wxPython/src/_clipbrd.i b/wxPython/src/_clipbrd.i index f0a2dde60e..1c262b3888 100644 --- a/wxPython/src/_clipbrd.i +++ b/wxPython/src/_clipbrd.i @@ -20,43 +20,48 @@ %} DocStr(wxClipboard, - -"wx.Clipboard represents the system clipboard and provides methods to copy data -to or paste data from it. Normally, you should only use wx.TheClipboard which -is a reference to a global wx.Clipboard instance. +"wx.Clipboard represents the system clipboard and provides methods to +copy data to it or paste data from it. Normally, you should only use +``wx.TheClipboard`` which is a reference to a global wx.Clipboard +instance. -Call wx.TheClipboard.Open to get ownership of the clipboard. If this operation -returns True, you now own the clipboard. Call wx.TheClipboard.SetData to put -data on the clipboard, or wx.TheClipboard.GetData to retrieve data from the -clipboard. Call wx.TheClipboard.Close to close the clipboard and relinquish -ownership. You should keep the clipboard open only momentarily. -"); +Call ``wx.TheClipboard``'s `Open` method to get ownership of the +clipboard. If this operation returns True, you now own the +clipboard. Call `SetData` to put data on the clipboard, or `GetData` +to retrieve data from the clipboard. Call `Close` to close the +clipboard and relinquish ownership. You should keep the clipboard open +only momentarily. + +:see: `wx.DataObject` +", ""); class wxClipboard : public wxObject { public: - DocCtorStr( wxClipboard(), "" ); + DocCtorStr( + wxClipboard(), + "", ""); ~wxClipboard(); DocDeclStr( virtual bool , Open(), - "Call this function to open the clipboard before calling SetData\n" - "and GetData. Call Close when you have finished with the clipboard.\n" - "You should keep the clipboard open for only a very short time.\n" - "Returns true on success. "); + "Call this function to open the clipboard before calling SetData and +GetData. Call Close when you have finished with the clipboard. You +should keep the clipboard open for only a very short time. Returns +True on success.", ""); DocDeclStr( virtual void , Close(), - "Closes the clipboard."); + "Closes the clipboard.", ""); DocDeclStr( virtual bool , IsOpened() const, - "Query whether the clipboard is opened"); + "Query whether the clipboard is opened", ""); @@ -64,65 +69,96 @@ public: DocDeclStr( virtual bool , AddData( wxDataObject *data ), - "Call this function to add the data object to the clipboard. You\n" - "may call this function repeatedly after having cleared the clipboard.\n" - "After this function has been called, the clipboard owns the data, so\n" - "do not delete the data explicitly."); + "Call this function to add the data object to the clipboard. You may +call this function repeatedly after having cleared the clipboard. +After this function has been called, the clipboard owns the data, so +do not delete the data explicitly. + +:see: `wx.DataObject`", ""); DocDeclStr( virtual bool , SetData( wxDataObject *data ), - "Set the clipboard data, this is the same as Clear followed by AddData."); + "Set the clipboard data, this is the same as `Clear` followed by +`AddData`. + +:see: `wx.DataObject`", ""); %clear wxDataObject *data; - DocDeclStr( virtual bool , IsSupported( const wxDataFormat& format ), - "Returns True if the given format is available in the data object(s) on\n" - "the clipboard."); + "Returns True if the given format is available in the data object(s) on +the clipboard.", ""); DocDeclStr( virtual bool , GetData( wxDataObject& data ), - "Call this function to fill data with data on the clipboard, if available\n" - "in the required format. Returns true on success."); + "Call this function to fill data with data on the clipboard, if +available in the required format. Returns true on success.", ""); DocDeclStr( virtual void , Clear(), - "Clears data from the clipboard object and also the system's clipboard\n" - "if possible."); + "Clears data from the clipboard object and also the system's clipboard +if possible.", ""); DocDeclStr( virtual bool , Flush(), - "Flushes the clipboard: this means that the data which is currently on\n" - "clipboard will stay available even after the application exits (possibly\n" - "eating memory), otherwise the clipboard will be emptied on exit.\n" - "Returns False if the operation is unsuccesful for any reason."); + "Flushes the clipboard: this means that the data which is currently on +clipboard will stay available even after the application exits, +possibly eating memory, otherwise the clipboard will be emptied on +exit. Returns False if the operation is unsuccesful for any reason.", ""); DocDeclStr( - virtual void , UsePrimarySelection( bool primary = True ), - "On platforms supporting it (the X11 based platforms), selects the so\n" - "called PRIMARY SELECTION as the clipboard as opposed to the normal\n" - "clipboard, if primary is True."); -}; + virtual void , UsePrimarySelection( bool primary = true ), + "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) +} //--------------------------------------------------------------------------- DocStr(wxClipboardLocker, -"A helpful class for opening the clipboard and automatically closing it when -the locker is destroyed."); +"A helpful class for opening the clipboard and automatically +closing it when the locker is destroyed.", ""); class wxClipboardLocker { @@ -131,8 +167,8 @@ public: ~wxClipboardLocker(); DocStr(__nonzero__, - "A ClipboardLocker instance evaluates to True if the clipboard was\n" - "successfully opened.") + "A ClipboardLocker instance evaluates to True if the clipboard was +successfully opened.", ""); %extend { bool __nonzero__() { return !!(*self); } }