Orx now supports clipboards! We can demonstrate this by allowing the user to paste in some text, and have the text replace a text object. First there's a little setup.
Start by using init to create a default project.
Next, define the Control-V key which is the usual for paste, except in the case of Mac OS X:
[MainInput] KEY_ESCAPE = Quit KEY_LCTRL = Paste KEY_V = Paste CombineList = Paste
To make it more interesting, let's change the default object into a text object which we will update with text from the clipboard.
Change the [Object]
in the config to be a text object:
[Object] Graphic = TextGraphic Pivot = center Scale = 1 Position = (-90, -30, 0) [TextGraphic] Text = Sentence [Sentence] String = "Paste into this window."
Set the object variable and the top of the code:
orxOBJECT *object;
Then assign to the object variable in the init() function:
object = orxObject_CreateFromConfig("Object");
Compile and run, and you'll have a window with a text object like this:
In the Run() function (or an update function), check for the Control and V keys, call a get from the clipboard, and send the output to the text object:
if (orxInput_HasBeenActivated("Paste")){ const orxSTRING clipboardText = orxSystem_GetClipboard(); orxObject_SetTextString(object, clipboardText); }
Compile and run. Go to a text editor and copy some text with Control-C into the system clipboard.
Come back to the Orx game window and press Control-V. The object will take the text from your clipboard. Nice!
If you attempt copy and paste a file, a bitmap, or any other non-textual information into Orx, the clipboard will contain orxNULL
.
You can also send copied text back into the clipboard. First, set up the keybinding:
[MainInput] KEY_ESCAPE = Quit KEY_LCTRL = Copy # Paste KEY_C = Copy KEY_V = Paste CombineList = Copy # Paste
In the Run() function (or an update function), set the clipboard text with:
if (orxInput_HasBeenActivated("Copy")){ const orxSTRING clipboardText = "Hello from Orx."; orxSystem_SetClipboard(clipboardText); }
Compile and run. Press Control-C to set the clipboard with the “Hello from Orx.” text. Now paste into a text editor to get the text from the clipboard:
You can also work with the clipboard in the Orx Console. Go to a text editor and copy some text. Go back your Orx application and open the console. Enter:
Clipboard.Get
: Hello from outside of Orx
From here you can set the clipboard text with:
Clipboard.Set “Hello from Orx”
: true
Note that quotes are needed when there is whitespace in the text.
Now paste the text into a text editor.