bge.logic.keyboard.getClipboard() and .setClipboard methods
the idea of using methods instead of attributes is to avoid users abusing of the system calls. Thanks Campbell Barton for reviewing and small corrections
This commit is contained in:
@@ -72,6 +72,20 @@ Game Types (bge.types)
|
||||
|
||||
:type: dictionary {:ref:`keycode<keyboard-keys>`::ref:`status<input-status>`, ...}
|
||||
|
||||
|
||||
.. function:: getClipboard()
|
||||
|
||||
Gets the clipboard text.
|
||||
|
||||
:rtype: string
|
||||
|
||||
.. function:: setClipboard(text)
|
||||
|
||||
Sets the clipboard text.
|
||||
|
||||
:arg text: New clipboard text
|
||||
:type text: string
|
||||
|
||||
.. class:: SCA_PythonMouse(PyObjectPlus)
|
||||
|
||||
The current mouse.
|
||||
|
@@ -32,6 +32,7 @@ set(INC
|
||||
../../../intern/container
|
||||
../../../intern/moto/include
|
||||
../../../intern/string
|
||||
../../../intern/ghost
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
@@ -28,6 +28,8 @@
|
||||
#include "SCA_PythonKeyboard.h"
|
||||
#include "SCA_IInputDevice.h"
|
||||
|
||||
#include "GHOST_C-api.h"
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* Native functions */
|
||||
/* ------------------------------------------------------------------------- */
|
||||
@@ -55,6 +57,23 @@ SCA_PythonKeyboard::~SCA_PythonKeyboard()
|
||||
/* Python functions */
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
/* clipboard */
|
||||
static PyObject* gPyGetClipboard(PyObject* args, PyObject* kwds)
|
||||
{
|
||||
char *buf = (char *)GHOST_getClipboard(0);
|
||||
return PyUnicode_FromString(buf?buf:"");
|
||||
}
|
||||
|
||||
static PyObject* gPySetClipboard(PyObject* args, PyObject* value)
|
||||
{
|
||||
char* buf;
|
||||
if (!PyArg_ParseTuple(value,"s:setClipboard",&buf))
|
||||
Py_RETURN_NONE;
|
||||
|
||||
GHOST_putClipboard((GHOST_TInt8 *)buf, 0);
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
/* Integration hooks ------------------------------------------------------- */
|
||||
PyTypeObject SCA_PythonKeyboard::Type = {
|
||||
PyVarObject_HEAD_INIT(NULL, 0)
|
||||
@@ -79,6 +98,8 @@ PyTypeObject SCA_PythonKeyboard::Type = {
|
||||
};
|
||||
|
||||
PyMethodDef SCA_PythonKeyboard::Methods[] = {
|
||||
{"getClipboard", (PyCFunction) gPyGetClipboard, METH_VARARGS, "getCliboard doc"},
|
||||
{"setClipboard", (PyCFunction) gPySetClipboard, METH_VARARGS, "setCliboard doc"},
|
||||
{NULL,NULL} //Sentinel
|
||||
};
|
||||
|
||||
|
@@ -3,7 +3,7 @@ Import ('env')
|
||||
|
||||
sources = env.Glob('*.cpp') + env.Glob('Joystick/*.cpp')
|
||||
|
||||
incs = '. #/intern/string #intern/container'
|
||||
incs = '. #/intern/string #intern/container #intern/ghost'
|
||||
incs += ' #/source/gameengine/Expressions #/intern/moto/include'
|
||||
incs += ' #/source/gameengine/Rasterizer #/source/gameengine/SceneGraph'
|
||||
incs += ' #/source/blender/blenlib'
|
||||
|
Reference in New Issue
Block a user