wxTED manual
wxTED manual
27
WxTED is a teletext editor and this describes the
Windows version. The source is currently hosted
at https://github.com/peterkvt80/wxted In theory
it can be recompiled for OSX by changing one
#define flag. In practise the environment is not
easy to migrate. I leave that to you as an exercise.
wxTED is WYSWYG and unlike other teletext
editors it does not clutter the page with palettes
and toolbars. The upside is that the page looks
exactly the same as if it was being displayed on a
TV. The downside of this is it mostly uses
keyboard commands rather than the mouse.
If you want to edit more than one page then just
run multiple copies of wxTED.
Installing
Get the Windows version of wxTED by downloading from
http://www.teastop.co.uk/teletext/wxTED. The installer will create an folder in the start menu called
wxTED Teletext Editor
Running wxTED
Run wxTED.exe by double clicking on the icon. It will load up a page file called BBC100.tti. This
manual is always available in the Windows start menu and you will need it!
You can also double click on a tti file and wxTED should open it in a new window. You can also
open a tti file from a command line by running wxTED with the file as an argument.
Print out the wxTED quick reference page or you won't get very far.
Using wxTED
wxTED mainly uses the keyboard. The mouse can be used for moving the cursor location by
clicking on the page. You just type text and watch it appear. To access the special graphics codes
you need to know the special keyboard combinations. The codes are NOT on any palette or menu
but they listed in brief if you select Help->Special Keys. More information is on the Quick
Reference page which you can print.
Menu
Short description of all the menu options.
• File
New Replaces the current page with a blank page.
Open Load a tti teletext file (or ep1 or ttx)
Save Save a teletext file to the same name that it was loaded with.
Save as Saves the current page to a new file name.
Publish Publishes the current page via FTP.
Publish Settings Only FTP is implemented. Enter FTP settings here.
Export edit.tf Pastes the current page in the clipboard in edit tf web format. Paste this into a
browser.
• Edit
Undo Undo the last edit. Same as CTRL-Z
Cut Not implemented.
Copy Copy the selected region of the page to the clipboard. CTRL-C
Paste Paste the clipboard into the page. CTRL-V
Insert Inserts a new subpage in a carousel
Delete Delete this subpage from the carousel
• Presentation
Language Choose one of the seven languages for the current region.
Region Set one of the 8 geographic regions.
Properties Set up page properties like page number and C flags.
Show Header Toggles displaying the header row and allows editing of it.
Toggle Conceal Shows or hides concealed text. Keyboard F11
• Help
Special keys Pops up a summary of the key functions.
About Puts up some information about the program.
Undo
Undo in the menu or Ctrl-Z removes typed characters. You can only undo typed characters. Undo
does not apply to any other operations [yet].
Clipboard
The usual commands for copy and paste are available in the Edit menu and also with special keys.
First drag out a marquee rectangle on the page and copy it to the clipboard using Ctrl-C.
Then click at the top left location where you want to place the text and type Ctrl-V.
Paste into the same page, or a different subpage or even a different instance of wxTED. You can
also cut and paste to and from any other text based application.
Ctrl-C – Copy the selected area.
Ctrl-V – Paste into the location of the cursor.
Ctrl-A - Select the entire page with Select All.
[Ctrl-X – does NOT do a cut as this key is used for Release Graphics.]
Graphics
Teletext is famous for its blocky graphics mode. Graphics may be done in a maximum resolution of
78 by 72 pixels.
Hold/Release graphics are not implemented yet as it does my head in just thinking about it.
In graphics mode there is a special exception for capital letters. You may type in upper case letters
and a few special characters while in graphics mode. You can mix graphics and text without needing
gaps caused by the extra control codes. To ensure that your character goes where you expect it, first
move the cursor to the location that you want it. Then adjust the cursor position so that the sub pixel
numbers are 0. In other words, the number after the decimal points should be 0 like this: (16.0,
15.0). The then shows the top left corner of the 2x3 space where the text will go.
In graphics mode the cursor will usually use the pixel coordinate. But if character code is a control
code or a capital letter and not actually a graphic character the cursor will move in whole character
steps.
Conceal (CTRL-R)
Conceal is used for quiz pages or hiding a surprise on a page which can be displayed by pressing
Reveal on a TV remote control.
If you type CTRL-R the remainder of the line will be concealed. It tells the TV to replace text with
spaces and the Reveal button on the TV remote control will toggle the text on and off. Conceal is
cancelled by any colour code.
WxTED defaults to showing the concealed text. To preview the effect of Conceal press F11 to
toggle the visibility of the text. The menu option Presentation->Toggle Conceal does the same thing
as F11.
Carousels
A teletext carousel is a set of individual pages that rotate like a slide show. Some of the pages
bundled with wxTED are carousels. For a single page the status line underneath the page will show
1/1. If is more than one page then the second number will show the total number of pages. If a page
is visible then you can edit it. So you can flick through a page set and edit the one that you want.
To navigate through the pages use the Page Up (Pg Up) and Page Down (Pg Dn) keys. You can also
use the mouse scroll wheel. You will see the page/total indicator go up and down as well as the
pages changing.
Languages
There twenty six languages arranged into sets. You can assign one language to a page and this is
selected by using Presentation->Region and then the Presentation->Language menu. The languages
in teletext level 1 depend on the region. WxTED assumes that the region is western Europe and that
is this set:
• English,
• French,
• Swedish/Finnish/Hungarian
• Czech/Slovak
• German
• Spanish/Portuguese
• Italian
Note that in a carousel, all pages use the same language. This is a restriction of wxTED rather than
the teletext standard.
Region
Languages are handled in sets. If you are using level 1 then you should only use Region 0
languages which are the ones above. Higher levels of teletext such as 2.5 and 3.5 add a region
option. WxTED implements this as a menu option in Presentation->Region. When you choose a
new region it populates Presentation->Language with a different set of languages. The languages
are based on five different sets: Latin, Greek, Cyrillic, Arabic and Hebrew. On top of this there are
national variations in things like punctuation, accents and currency symbols.
All of the languages defined in ETSI are implemented. These are the basic languages that can be
added. There are more language extensions but they aren't implemented in wxTED yet. These will
let you choose secondary character sets and define your own characters.
How do you type these characters if you don't have the appropriate keyboard? You'll have to work
out the mappings for yourself. All the characters will be somewhere so open a new page and draw
your own keyboard map.
Example:
To set Greek on a page, select Presentation->Region and select Tur/Gre. Then Presentation-
>Language and select Greek.
Page Properties
As well as the text, pages have certain properties. To set these properties select the Presentation
menu. A dialog appears with various options.
Page Number
A page number is given as a five digit number mppss such as 10000 where
m: The magazine number in the range 1..8.
pp: The hex page number in the range 00 to FF
ss: The subpage number in the range 00..99
If there is only one page then the subpage should be set to 00.
Description
This is a line of text that describes the page. It is usually a helpful comment.
Cycle Time
For carousels this determines how often they change page. If Cycled is set then the page is updated
after the whole magazine has been transmitted the number of times counted in the Cycle time.
If Timed is set then it will wait for the specified number of seconds before changing page. Don't use
too many timed pages as they will begin to delay each other.
VBIT and Teefax use timed mode only.
C Flags
C flags are transmitted in the page header and are commands to the receiver that affect presentation.
They are only useful in an actual teletext stream. For viewers and editors they have no effect. Some
of the C flags will get replaced by the inserter as these settings are global to the service rather than a
page property.
C4 Erase Page – Erase the page before redrawing it. Erase page guarantees that old information
will be removed. If the page has changed then you might want to send this on the first update to
make sure that a page is completely cleared. Normally this bit is left off so that if a line is lost in
transmission the gap can be filled on the next transmission of the page. If the bit is left on then
updates can be distracting as the screen goes black and redraws.
C5 Newsflash – The inserter will go to overlay mode without a header. Normally a newsflash is
displayed in a box.
C6 Subtitle – Text will be mixed over the background video and without a header. Not sure how
this is different to C5 except to signal intent to decoders.
C7 Suppress header – Sometimes you don't want a header displayed. This flag will remove the
header and make a clean page.
C8 Update – Is used for partial updates where only some of the lines are updated. WxTED does not
support partial updates (and probably never will).
C9 Interrupted sequence. This is an inserter function. Not relevant in the page settings.
C10 Inhibit display – Rows should not be displayed. Ensure that special packets don't get
displayed accidentally. Also can be used for regional distribution where there header gets replaced
by a databridge. In the unlikely event that you require engineering pages with this flag set I will
implement it.
C11 Serial Magazine. - Transmit in serial mode. Not relevant at page level so not implemented in
wxTED. VBIT will ignore this anyway.
Other control bits:
Substitute page: This is not supported by VBIT. I think it was used to move subtitles to other pages.
Transmit Page: Used to remove a page temporarily. A page can be skipped instead of deleted so it is
fast to bring it back when needed. Normally set this flag.
Header
wxTED has a built-in header editor. The header doesn't get saved in a separate page, it is treated as
row 0 of the page and is saved embedded with the page.
To see the header row, go to the menu item Presentation->Show Header and set the check mark on.
The header will then appear.
To edit the header just move the cursor into the header. You can then start editing it almost like a
normal text row. While editing the row it will revert to raw data so you can see the template codes.
When you move away from row 0 it will return to being the normal header. Any template fields will
be replaced.
A template is normal text with some special codes in it. Here is a sample:
XXXXXXXXTEDFAX mpp DAY dd MTH ƒ hh:nn.ss
And this is what it generates.
Special codes in this template extract the date and time. The localtime is used so the names will be
based on what your PC locale is set to.
%d dd Date 2 25
%e Date without 2 3
leading 0
%m uu Month 2 12
%y yy Year 2 16
%%a DAY Day name of week 3 Mon
%%b MTH Month name 3 Dec
%H hh Hour (real time) 2 14
%M nn Minute (real time) 2 37
%S ss Second (real time) 2 52
FTP
If you have a server with FTP then you can send files directly to it. FTP is used for exchanging files
and web servers will typically have FTP available.
If you are running a Droidfax on a website then you can use Publish to make pages live.
To access an FTP server you need an account with uploading privilege. You will need:
1) FTP Server. This is the internet address. Enter the address without the ftp://. This is an
example of an FTP server
ftp.nluug.nl
2) Username: The username that you have been assigned on the FTP server.
3) Password: The password that you have been assigned on the FTP server
4) Remote path: The path on the remote server. Here is an example:
htdocs/teletext/
If you have trouble then in a Windows file window put this address in, obviously using your own
ftp details.:
ftp:://<your ftp server>
You will be asked for the password. If you are successful then you will be able to browse the remote
folders.
Partly Implemented
In the Menu if an option is not implemented then a pop-up will warn you.
Special codes below can be entered, but they only work when the page is viewed on a TV or a
viewer program.
1. End Box/Start Box
Bugs
1. CT command not implemented correctly. It should be possible to set the timing of each page
but only the first value is used and it is global. In practise, VBIT ignores it anyway. It will
need to be implemented correctly in order to do animation.
2. Save As adds .tti when it shouldn't. You might need to rename files until I fix it.
3. Publish path should add a slash at the end if the user doesn't put one in.
4. Not really a bug but wxTED FTP uses ASCII mode. Apparently this means that CRLF on
Windows gets turned into LF on my web server. Droidfax was updated to cope with LF as a
line terminator.
wxTED Quick Reference
Code Key Code Key
Alpha Red SHIFT-F1 Graphics Red CTRL-F1
Alpha Green SHIFT-F2 Graphics Green CTRL-F2
Alpha Yellow SHIFT-F3 Graphics Yellow CTRL-F3
Alpha Blue SHIFT-F4 Graphics Blue CTRL-F4
Alpha Magenta SHIFT-F5 Graphics Magenta CTRL-F5
Alpha Cyan SHIFT-F6 Graphics Cyan CTRL-F6
Alpha White SHIFT-F7 Graphics White CTRL-F7
Flash CTRL-H Contiguous graphics CTRL-D
Steady CTRL-I Separated graphics CTRL-T
End Box CTRL-J Black background CTRL-U
Start Box CTRL-K New background CTRL-B
Normal height CTRL-L Hold graphics CTRL-W
Double height CTRL-M (Enter) Release graphics CTRL-X [may change]
Conceal display CTRL-R
Key → English French Swedish Czech German Spanish Italian
# £ é # # # ç £
$ $ ï ¤ ů $ $ $
@ @ à É č § ¡ é
[ ← ë Ä ť Ä á °
\ ½ ê Ô ž Ö é ç
] → ù Å ý Ü í →
^ ↑ î Ü í ^ ó ↑
_ # # _ ř _ ú #
` — è é é ° ¿ ù
{ ¾ â ä á ä ü à
| ║ ô Ö ĕ ö ñ ò
} ¼ û å ú ü è è
~ ÷ ç ü š ß á ì
¬
Other Special Keys
These are keys that do not modify a page
Page Up – Next carousel page Page Down – Previous carousel page
F11 – Toggle Concealed text
Revision History
WxTED 0.00 Beta. 09-11-2014 Released to teletext40 only. Initial version with many things
missing.
WxTED 0.01 10-11-2014 Added New menu command. Added Save As dialog. Improved handling
of null lines.
WxTED 0.02 11-11-2014 Implemented double height graphics. Applied principal of least
astonishment to cursor movement across Graphics/Alpha transitions. Fixed Save As bug. Added
carousel. Added OnFocus to kill the cursor while inactive.
WxTed 0.03 13-11-2014 Added Presentation menu and language option.
WxTED 1.00 15-11-2014 Added Properties dialog to Presentation menu.
WxTED 1.01 16-11-2014 Added option to display and edit headers.
WxTED 1.02 25-11-2014 Added: Conceal and Hold Graphics. Persistence for GUI size as frame
size etc. Publish FTP dialog with config settings. Frame shows full filename of page.
WxTED 1.03 26-11-2014 New page erases filename. Do not allow double height on rows 23 or 24.
File->Open dialog now accepts EP1 and TTX page files.
WxTED 1.04 07-12-2014 Removed duplicate properties menu link. Added Fastext links to
Properties. Fixed line validation segfault and other validate() faults. Fixed bug that failed to save the
last subpage. Fixed output line OL length for escaped text.//Fixed SaveAs filename bug.
WxTED 1.05 16-12-2014 Mouse scroll wheel can select pages of carousels. Added Undo CTRL-Z.
Add marquee for editing. Added CTRL-C for Copy and CTRL-V for Paste. Ctrl-A is select all.
Moved New Background to CTRL-B. Restored the Exit function – you can now close the
application!
WxTED 1.06 20-12-2014 Support for all ETSI languages. You'll have to make your own character
maps and work out what key does what. Cut and paste between wxTED and other applications only
works correctly for English, or between teletext pages of the same language.. Will need make an
inverse function of the mapping function.
Wxted 1.07 xx.yy.201z
For more recent version details, check the Github commit history.
https://github.com/peterkvt80/wxted/commits/master
Development of wxTED
These are the instructions for setting up WxTED to develop it on Windows. You can also develop
on Linux or Mac but you'll have to invent your own instructions.
Source code
Ideally you want to become a project member so that you can commit updates. But if you don't
want to be a member you can still get all of the code. The code sits on GitHub so ideally you will
install GitHub Desktop.
Code can be grabbed at this URL.
https://github.com/peterkvt80/wxted
There are several ways to get the code. If you just want the code then download the Zip. It is better
to clone the project with GitHub so that you can keep it up to date with any changes.
I put my development folder as
e:\dev\wxted
To compile you'll need Code::Blocks. Make sure that you get the version with the mingw compiler.
WxWidgets
wxwidgets provides all of the GUI features for wxted. The project as configured uses WxSmith
which provides an IDE form designer for wxwidgets.
Get wxWidgets from https://www.wxwidgets.org/
At the time of writing the Windows version was 3.0.2
Setting up instructions:
https://wiki.wxwidgets.org/CodeBlocks_Setup_Guide
Making it compile
To compile, click on the Build and run button or the Debug / Continue button. Watch all the
cryptic errors pop up. You will very likely need to set up the search directories, linker settings and
move the dll into the release and debug folders.
Search Directories
Link Options
linker settings/ other linker options should already set be set correctly if you are using the
Code::Blocks project. You shouldn't need to do anything. threads and wininet are required for the
ftp publishing function.
-mthreads
-lwininet
Linker Setup
Next problem is that -lwxmsw30u can not be found. Go into
Project Build Options->Linker Settings and add the relative path to your library in Link Libraries.
Mine is
..\downloads\wxWidgets302\lib\gcc_dll\libwxmsw30u.a
or better still add the location to the search directories.
Runtime Library
Finally you'll not be able to run the program so you'll need to grab the dll and put copies in the
debug and release folders. Mine is called wxmsw30u_gcc_custom.dll
Oh yes, it works now. If you find that the link library is 163MB and the filename ends in d then this
signifies the debug version. Recompile wxWidgets with DEBUG=release as it is unlikely that you
will want to debug the wxWidgets library itself. Any problems, contact me (Peter).
Select Project->Compile.
This creates a setup.exe in the same folder.
Rename setup.exe to include the version number like setup_1_16.exe.
7) Publish.
Copy setup_x_yy.exe to e:\dev\wxted-web-release.
Edit index.html to reflect the new file.
Upload the changed files to the home page for wxTED at
http://teastop.co.uk/teletext/wxted/
Winpackage.iss
This is my Inno Script Studio packaging file. You may find it helpful.
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{BF8D5847-6816-45D9-AB36-99F50155DCE4}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName=wxTED Teletext Editor
AllowNoIcons=yes
OutputDir=E:\dev\wxTED-GitHub\wxted\bin\Release
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription:
"{cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "E:\dev\wxTED-GitHub\wxted\bin\Release\wxTED.exe"; DestDir: "{app}"; Flags:
ignoreversion
Source: "E:\dev\wxTED-GitHub\wxted\bin\Release\wxmsw30u_gcc_custom.dll"; DestDir:
"{app}"; Flags: ignoreversion
Source: "E:\dev\wxTED-GitHub\wxted\bin\Release\BBC100.tti"; DestDir: "{app}"; Flags:
ignoreversion
Source: "E:\dev\wxTED-GitHub\wxted\bin\Release\manual.pdf"; DestDir: "{app}"; Flags:
ignoreversion
Source: "E:\dev\wxTED-GitHub\wxted\bin\Release\sample pages\*"; DestDir: "{app}"; Flags:
ignoreversion recursesubdirs createallsubdirs
Source: "E:\dev\wxTED-GitHub\wxted\bin\Release\teletext2.ttf"; DestDir: "{fonts}"; FontInstall:
"teletext2"; Flags: onlyifdoesntexist uninsneveruninstall
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks:
desktopicon
Name: "{group}\Manual"; Filename: "{app}\manual.pdf"
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,
{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent