Commits (4)
  • ROOL's avatar
    Add support for selecting from Unicode fonts · 3d0bd3a8
    ROOL authored
    Detail:
      Changed !RunImage to support working with the Unicode Font Manager, and revised !Help.
      Replacement templates, and revised Messages for the extra menus and window layout.
      As this component also features in the disc image (RO350Hook) it also degrades on earlier Font Managers.
    Admin:
      Submission from Chris Wraight.
      To get the code point names while hovering with the mouse, Unicode-0_35 should be updated for the CharNames table.
    
    Version 2.00. Tagged as 'Chars-2_00'
    3d0bd3a8
  • ROOL's avatar
    Fix RAM exhaustion with many fonts, and choices inversion · f05f81c7
    ROOL authored
    Detail:
      Line 1012 - Use the heap to claim/extend space for fonts. Fixes wimpslot problem with many installed fonts.
      Line 914-916 - Invert the choices file keywords to match the variables they set.
      Minor - Remove SWI constants, since the build system (Squish) gets these from swis.h. Don't listen for MESSAGE_HELPREPLY%. Change IconHandle to an integer. Use OS_ReadModeVariable to get eigenvalues since there's only 2 it's not worth constructing a list for OS_ReadVduVariables.
    Admin:
      Submission from Chris Wraight, with minor edits.
    
    Version 2.01. Tagged as 'Chars-2_01'
    f05f81c7
  • ROOL's avatar
    Internationalisation and terminology changes · c65ee6f4
    ROOL authored
    Detail:
      When generating the encoding menu the terms "Default" and "UTF8" were looked up via the Messages file, however the selection logic and update of the display field used hardwired English. Now, the internal variables Alphabet$ and Encoding$ are English but when required for display are always looked up.
      Now that works, use the preferred term "UTF-8" per Unicode consortium and Style Guide page 133.
    Admin:
      From review of User Guide chapter.
    
    Version 2.02. Tagged as 'Chars-2_02'
    c65ee6f4
  • ROOL's avatar
    Fix bug returning incorrect character based on mouse position · 1231b2cf
    ROOL authored
    Detail:
      Clicking right of the last character would result in the first character on the next row being selected. Now returns nothing
    Admin:
      Tested on RPCEmu 0.8.15 using RISC OS 5.23
      Submission from Alan Robertson.
    
    Version 2.03. Tagged as 'Chars-2_03'
    1231b2cf
......@@ -13,4 +13,4 @@
| limitations under the License.
|
Dir <Obey$Dir>
amu_machine install INSTDIR=<obey$dir>
amu_machine install INSTDIR=<Install$Dir>.HardDisc4.!Boot.RO350Hook.Apps
......@@ -14,17 +14,7 @@
#
# Makefile for Chars
#
# ***********************************
# *** C h a n g e L i s t ***
# ***********************************
# Date Name Description
# ---- ---- -----------
# 05-Nov-94 AMcC Updated for Black build
#
#
# Program specific options:
#
COMPONENT = Chars
APP = !${COMPONENT}
ROM_MODULE = rm.${COMPONENT}
......@@ -43,7 +33,7 @@ FILES =\
${LDIR}.!Help \
${RDIR}.!Run \
${RDIR}.!RunImage \
${LDIR}.Messages \
${RDIR}.GenMessage \
${LDIR}.Templates
# Resources to be included in the ROM module (not in Messages module}
......@@ -64,7 +54,7 @@ install: ${FILES}
${CP} ${LDIR}.!Help ${INSTDIR}.${APP}.!Help ${CPFLAGS}
${CP} ${RDIR}.!Run ${INSTDIR}.${APP}.!Run ${CPFLAGS}
${CP} ${RDIR}.!RunImage ${INSTDIR}.${APP}.!RunImage ${CPFLAGS}
${CP} ${LDIR}.Messages ${INSTDIR}.${APP}.Messages ${CPFLAGS}
${CP} ${RDIR}.GenMessage ${INSTDIR}.${APP}.Messages ${CPFLAGS}
${CP} ${LDIR}.Templates ${INSTDIR}.${APP}.Templates ${CPFLAGS}
${CHMOD} -R 555 ${INSTDIR}.${APP}.*
@${ECHO} ${COMPONENT}: Application installed (Disc)
......@@ -73,19 +63,20 @@ install_rom: ${ROM_MODULE}
${CP} ${ROM_MODULE} ${INSTDIR}.${COMPONENT} ${CPFLAGS}
@${ECHO} ${COMPONENT}: Module installed (ROM)
resources: ${LDIR}.!RunLink
resources: ${LDIR}.!RunLink ${RDIR}.GenMessage
${MKDIR} ${RESAPP}
${MKDIR} ${RESDIR}
${CP} ${LDIR}.!Help ${RESAPP}.!Help ${CPFLAGS}
${CP} ${RDIR}.ROM.!Run ${RESAPP}.!Run ${CPFLAGS}
${CP} ${LDIR}.!RunLink ${RESDIR}.!RunLink ${CPFLAGS}
${CP} ${LDIR}.Messages ${RESDIR}.Messages ${CPFLAGS}
${CP} ${RDIR}.GenMessage ${RESDIR}.Messages ${CPFLAGS}
${CP} ${LDIR}.Templates ${RESDIR}.Templates ${CPFLAGS}
@${ECHO} ${COMPONENT}: resource files copied to Messages module
clean:
${RM} ${ROM_MODULE}
${RM} ${RDIR}.!RunImage
${RM} ${RDIR}.GenMessage
${RM} ${LDIR}.!RunLink
${XWIPE} crunched.* ${WFLAGS}
@${ECHO} ${COMPONENT}: cleaned
......@@ -98,18 +89,16 @@ ${ROM_MODULE}: VersionNum ${RESFILES}
${GETVERSION} Chars$BuildV Chars$FullV Chars$Date
${DO} ${MODGEN} -date "<Chars$Date>" ${ROM_MODULE} !Chars !Chars <Chars$BuildV> Resources.!RunImage Resources.Chars.!RunImage
${RDIR}.GenMessage: ${LDIR}.Messages
${INSERTVERSION} ${LDIR}.Messages > ${RDIR}.GenMessage
${RDIR}.!RunImage: crunched.!RunImage
${SQUISH} ${SQUISHFLAGS} -from crunched.!RunImage -to $@
crunched.!RunImage: bas.!RunImage
${RUN}crunch.!RunImage; BASIC
${RUN}BasCrunch -1 bas.!RunImage $@
${LDIR}.!RunLink: bas.!RunLink
${SQUISH} ${SQUISHFLAGS} -from bas.!RunLink -to $@
BBETYPE = chars
bbe-chars: bbe-generic
BBE_Export_Dir Resources
#---------------------------------------------------------------------------
# Dynamic dependencies:
%Set Chars$Dir <Obey$Dir>
%SetMacro Chars$Path <Chars$Dir>.
%WimpSlot -min 32k -max 32k
%WimpSlot -min 72k -max 72k
%Run Chars:!RunImage
......@@ -2,5 +2,5 @@ Set Chars$Dir <Obey$Dir>
Set Chars$Path <Obey$Dir>.,Resources:$.Resources.Chars.
WimpSlot -min 16k -max 16k
| RAM version: (in case this directory is copied onto disc)
Set Alias$WimpSlot2 WimpSlot -min 32k -max 32k
Set Alias$WimpSlot2 WimpSlot -min 72k -max 72k
Run Chars:!RunLink
The Chars application helps you to enter characters
that are not available on the keyboard; for example
accented characters or special symbols.
!Chars
======
To start Chars, double-click on its icon. A window
will appear showing all the characters currently
available.
Chars is a character finder application. It can
display all the defined characters in a font, as
well as allowing characters to be entered into
documents using the mouse pointer.
To enter a character, position the mouse pointer over
it and click SELECT (or press the SHIFT key). The
character will be entered at the caret position as if
it had been typed.
Contents
========
Use of the SHIFT key is suggested if you are trying to
enter text into a writeable icon inside a menu, as
clicking SELECT will cause the menu to disappear.
1. System requirements
2. Basic operation
3. Encodings
4. Key shortcuts
5. Choices
6. Technical details
If you wish to see the characters in a different font,
click MENU over the window.
1. System requirements
======================
Chars requires RISC OS 3.1 or later. It will make use of the Unicode Font Manager if present.
2. Basic operation
==================
To start Chars, double-click on its icon. A window will appear showing all the characters currently available in the selected font. By default, Chars will start with the System font. You can select different fonts and encodings by choosing from the pop-up menus at the top of the window.
Some fonts have thousands of characters. When using the UTF8 encoding, you can choose to show only a subset of those characters. The Category menu offers a selection of common subsets, such as the Latin script, Symbols, etc. Selecting 'All' will display all the characters in the font.
To enter a character into an editor application, position the mouse pointer over it in the Chars window and click [Select] or press the [Shift] key. The character will be entered at the caret position as if it had been typed. Use of the [Shift] key is suggested if you are trying to enter text into a writeable icon inside a menu, as clicking [Select] will cause the menu to disappear.
Note that the operation of character entry differs depending on the encoding in use by the Desktop (the 'Alphabet') and by Chars. If a character cannot be inserted in the current Alphabet (e.g., because the UTF8 codepoint is too high for an 8-bit Alphabet), then the character will be greyed-out in the Chars window.
Depending on the encoding in use, some characters can also be inserted at the caret by holding down [Alt] and typing [character code] on the numeric keypad. Chars will display this keypress combination where it is available, together with information on the character number and name, at the bottom of the window.
3. Encodings
============
Chars is capable of displaying fonts in various different encodings. Historically, encodings have been used to allow 8-bit fonts, which have a maximum of 255 characters, to display characters from a range of different alphabets. The UTF8 encoding allows thousands of characters to be used.
The Desktop also makes use of encodings (Alphabets), which control how fonts used by the Window Manager are displayed. You can find the current Alphabet by typing the command '*Alphabet' at a command prompt. A list of available encodings is given by the command '*Alphabets'.
Most fonts can be sensibly displayed in the full range of encodings given by *Alphabets. One exception is the System font, which doesn't use the Font Manager. Others are 'symbol' fonts, such as Sidney and Selwyn. Symbol fonts use an internal encoding, which can be selected by choosing 'Default' from the encoding menu (only available in non-UTF8 Alphabets).
If you change the Alphabet while Chars is running (e.g., by issuing a new *Country or *Alphabet command), you must re-select the font from the font menu to update the display.
4. Key shortcuts
================
Pressing [Shift] when the mouse pointer is over the character map results in the character code being entered at the caret.
5. Choices
==========
Open the Choices window by clicking 'Choices' from the iconbar menu.
Select 'Open window at start-up' to automatically open the characters window when you run the application. You can choose to set the default font to the System Font or the crrent Desktop Font.
To save your changes, click [Save] or press [Return]. The changes will take effect next time you start the application.
6. Technical details
====================
Clicking on a character (or pressing [Shift] while the mouse pointer is over it) results in the character code being sent from Chars to the editor window with the caret in it. If the font's encoding in Chars is UTF8 then the character code may be more than one byte long, in which case the code is broken up into a stream of bytes that are sent in order to the receiving application.
If the encoding selected in Chars and the encoding used by the editor to display its text are different, then the displayed character may differ from what the user intended. The only way to be sure that the character sent from Chars will be the one displayed in the editor is to ensure that the same font and encoding are used in both applications.
\ No newline at end of file
Tsk:Characters
Help:Click \s or press Shift to enter character code %0 (&%1) as if from the keyboard.|MClick MENU to change the displayed font.
#{DictTokens}
_TaskName:Characters
_Version:Filled at build time
SysFont:System Font
Encs:Encodings
Cats:Categories
Default:Default
UTF8:UTF-8
UCode:U+%0 %1
UTrans: (Alt+
Char:Character &
# Desktop font options
DF1:System Font
DF2:Corpus.Bold
DF3:Corpus.Bold.Obique
DF4:Corpus.Medium
DF5:Corpus.Medium.Obique
DF6:Homerton.Bold
DF7:Homerton.Bold.Oblique
DF8:Homerton.Medium
DF9:Homerton.Medium.Oblique
DF10:Trinity.Bold
DF11:Trinity.Bold.Italic
DF12:Trinity.Medium
DF13:Trinity.Medium.Italic
DF14:WIMPSymbol
# Menu text
Chars:Chars
Quit:Quit
Info:Info
Help:Help...
Choices:Choices...
# Error messages
ErrApp:!Chars
Fatal1:There is not enough memory to run Chars. Free up more memory by closing other applications.
Fatal2:There is not enough memory to create the font list. Free up more memory by closing other applications.
Fatal3:There is not enough memory to create the font list. Restart Chars to try again.
FontErr1:Chars is unable to display the selected font.
FontErr2:There is not enough memory to display the selected font.
FontErr3:Chars cannot find the selected font in this encoding; reverting to the default encoding.
FontErr5:Cannot scan string in this font; reverting to System Font
FontErr6:Cannot paint this font; reverting to System Font
FontErr7:The installed version of the Font Manager cannot display fonts with more than 255 entries in the internal encoding file; reverting to System Font.
#{HelpTokens}
CHelp:Click \s or press Shift to enter %0.
MH:\Sdisplay the characters in this font.
MenuSpc:There is not enough memory to display menu. Quit any unwanted applications or see the RISC OS User Guide for ways to maximise memory.
FontErr:Chars is unable to display the currently selected outline font.
Font:System Font
IHelp:\TChars application.|M\Sopen the Character Map \w.
CW0:This field shows the currently displayed font.
CW1:\Sopen the font menu.
CW2:This field shows the current encoding.
CW3:\Sopen the encodings menu.
CW4:This field shows the current character category.
CW5:\Sopen the categories menu.
CH2:Select this option to remember the character \w's current position, which will be used next time the application is run.
CH3:Select this option to open the character \w when Chars is run.
CH4:\Sclose the Choices \w without saving changes.
CH5:\Sclose the Choices \w and save changes.
#{Default}
# Categories UCS code ranges
# Max value &FFFFFF
# No control chars (&0-&20, &7F-9F)
# Max 12 ranges per category
CM0:13
CM1:Latin
CM2:Greek
CM3:Cyrillic
CM4:Hebrew
CM5:Arabic
CM6:Japanese
CM7:Chinese
CM8:Korean*
CM9:Symbols
CM10:Maths
CM11:Punctuation
CM12:Currency*
CM13:All
# Latin
CM1-0:3
CM1-1:20-7E
CM1-2:A1-24F
CM1-3:1E00-1EFF
# Greek
CM2-0:2
CM2-1:370-3FF
CM2-2:1F00-1FFF
# Cyrillic
CM3-0:2
CM3-1:400-52F
CM3-2:2DE0-2DFF
# Hebrew
CM4-0:1
CM4-1:590-5FF
# Arabic
CM5-0:3
CM5-1:600-6FF
CM5-2:750-77F
CM5-3:8A0-8FF
# Japanese
CM6-0:9
# the kana
CM6-1:3040-30FF
# ideographic punctuation (horizontal)
CM6-2:3000-3019
# wavy line
CM6-3:301C-301C
# ideographic punctuation (vertical)
CM6-4:FE30-FE44
# ideographic annotation marks
CM6-5:3190-319F
# parenthesised ideographs
CM6-6:3220-3243
# circled numbers / ideographs
CM6-7:3280-32B0
# circled katakana
CM6-8:32D0-32FE
# halfwidth katakana
#CM6-9:FF61-FF9F
# kanji, all billion of them
CM6-9:4E00-9FA5
# Chinese
CM7-0:5
CM7-1:3400-A4CF
CM7-2:F900-FAFF
CM7-3:20000-2A6DF
CM7-4:2A700-2A73F
CM7-5:2F800-2FA1F
# Korean
CM8-0:1
CM8-1:AC00-D7A3
# Symbol
CM9-0:6
CM9-1:2100-214F
CM9-2:2190-21FF
CM9-3:2500-27BF
CM9-4:27F0-27FF
CM9-5:2900-297F
CM9-6:2B00-2BFF
# Maths
CM10-0:3
CM10-1:2200-22FF
CM10-2:26C0-27EF
CM10-3:2980-2AFF
# Punctuation
CM11-0:6
CM11-1:20-22
CM11-2:26-29
CM11-3:2C-2F
CM11-4:5B-5D
CM11-5:7B-7D
CM11-6:2010-205E
# Currency
CM12-0:2
CM12-1:A2-A5
CM12-2:20A0-20BD
# All
CM13-0:2
CM13-1:20-7E
CM13-2:A1-FFFFFF
......@@ -11,13 +11,13 @@
GBLS Module_HelpVersion
GBLS Module_ComponentName
GBLS Module_ComponentPath
Module_MajorVersion SETS "1.25"
Module_Version SETA 125
Module_MajorVersion SETS "2.03"
Module_Version SETA 203
Module_MinorVersion SETS ""
Module_Date SETS "27 Jan 2015"
Module_ApplicationDate SETS "27-Jan-15"
Module_Date SETS "12 Aug 2017"
Module_ApplicationDate SETS "12-Aug-17"
Module_ComponentName SETS "Chars"
Module_ComponentPath SETS "castle/RiscOS/Sources/Apps/Chars"
Module_FullVersion SETS "1.25"
Module_HelpVersion SETS "1.25 (27 Jan 2015)"
Module_FullVersion SETS "2.03"
Module_HelpVersion SETS "2.03 (12 Aug 2017)"
END
/* (1.25)
/* (2.03)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 1.25
#define Module_MajorVersion_CMHG 2.03
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 27 Jan 2015
#define Module_Date_CMHG 12 Aug 2017
#define Module_MajorVersion "1.25"
#define Module_Version 125
#define Module_MajorVersion "2.03"
#define Module_Version 203
#define Module_MinorVersion ""
#define Module_Date "27 Jan 2015"
#define Module_Date "12 Aug 2017"
#define Module_ApplicationDate "27-Jan-15"
#define Module_ApplicationDate "12-Aug-17"
#define Module_ComponentName "Chars"
#define Module_ComponentPath "castle/RiscOS/Sources/Apps/Chars"
#define Module_FullVersion "1.25"
#define Module_HelpVersion "1.25 (27 Jan 2015)"
#define Module_LibraryVersionInfo "1:25"
#define Module_FullVersion "2.03"
#define Module_HelpVersion "2.03 (12 Aug 2017)"
#define Module_LibraryVersionInfo "2:3"
This diff is collapsed.
TEXTLOAD "bas.!RunImage"
CRUNCH -1
SAVE "crunched.!RunImage"
QUIT