UTF-8 Text Editor

How it works

I hope you are suitably impressed by the infinite finesse and delicacy by which this PureBasic text editor is employed. You
have to create a borderless window in Rev (so that it cannot be moved), adjust the dimensions of the editor, and then plonk
it on top in the right position. Great stuff!

Once the PB editor is initialized with its size, position and font info (using "text_box.ini"), it will update the file "text.txt" every
time the text suffers alteration.

Thanks to the extension "Shell Without Wait" employed to call the PB text editor, Rev is subsequently able to poll the state
of "text.txt" in an idle handler, and if changes are found then they will be displayed in the data field at the bottom.

Introduction

Please note that this is a simple editor like gEdit, not a rich text editor. You can set the characteristics of the font in use
initially (i.e. font size, font bold, font colour, etc.), but if you want to change these characteristics then the demo will
erase whatever text you are typing and you will need to start again.

The display

I have just said that Rev displays the text in the field at the bottom. However, when you are typing text into the PB box,
this will not happen immediately. The text is "there" in the field, but the field is not updated because Rev does not have
the focus (PureBasic does). As soon as Rev re-gains the focus, the updated text will be shown. I have provided a button
called "Refresh", and if you click on it you will see the text as it currently stands in the PB typing box. In fact, this button has
no coding and is entirely unnecessary: you can click anywhere on the Rev window to re-gain the focus.

This "limitation" is not really a limitation at all. The Rev data field is only shown for the purposes of the demo, and you
would normally hide it. As I said, the completely updated text is "there" (grabbed by the idle handler).

Initialising the PB editor with "text_box.ini"

Here are the parameters you need to set up in the file "text_box.ini" before calling the PB editor:

0 or 1
0 or 1

(just cite these values)

Typing in Russian

If you do not have your keyboard layouts set up for typing in non-English languages, and you would like to test the UTF-8
Text Editor using another language temporarily, then here's how to do it.


The following changes the keyboard to Russian. If you re-initialise Ubuntu, your previous keyboards will be restored.
Paste this into the Terminal:

if [ `setxkbmap -print | grep xkb_symbols | awk '{print $4}' | awk -F"+" '{print $2}'` = us ] ;then echo "EN"; echo "changing to RU..."; setxkbmap ru ; else echo "RU"; echo "Changing to US..."; setxkbmap us ; fi

Right-clicking the PB Editor

Right-clicking the mouse on the PB Editor will enable you to choose various options, apart from doing clipboard functions
(also available using the standard keys for the purpose).

I'm sure you know all about such options already, so I won't bore you by giving any explanations here:

HEX format BBGGRR

Erratum

The explanation given above is a lot of old codswallop. In actual fact, when Rev loses the focus, it is not just the
display that is not updated. The idle handler itself goes on strike, and it no longer transfers the text data from
PB to Rev.

Fortunately, the workaround is simple. Just sprinkle the following handler on the visible parts of your Rev stack:

on mouseWithin
    call idle of this stack
end mouseWithin

Then, whenever the mouse is moved over the Rev window, the idle handler will be prodded into action and it will
not only transfer the data from the file text.txt, but it will automatically update the Rev text field at the bottom.