Font glyphs browser palette stack in the IDE

All flavors welcome.
Forum rules
Be kind.
User avatar
richmond62
Posts: 3091
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Font glyphs browser palette stack in the IDE

Post by richmond62 »

I'll talk more about this idea elsewhere.
Just so. 8-)
Reserved characters? They're all reserved for character/glyphs, aren't they? Reserving numbers for characters/glyphs is the whole thing isn't it?
Well, as my Granny said, "A picture is worth a thousand words" (although I shall use 3):
-
Screenshot 2024-05-02 at 17.14.55.png
Screenshot 2024-05-02 at 17.14.55.png (93.03 KiB) Viewed 896 times
-
If one does this sort of thing:
-
Screenshot 2024-05-02 at 17.21.38.png
Screenshot 2024-05-02 at 17.21.38.png (143.77 KiB) Viewed 895 times
-
7303 = 1C88 hex

One gets the glyph at that address (which is what one should expect).

However, if one does this:
-
Screenshot 2024-05-02 at 17.22.03.png
Screenshot 2024-05-02 at 17.22.03.png (145.25 KiB) Viewed 895 times
-
One gets a rather unhelpful character.

Helpful insofar as that it tells the end-user that there is no Unicode glyph assigned to that address.

Unhelpful insofar as making a "Font glyphs browser palette stack in the IDE" automatically, as a computer is blind, the end-user attempting to make that will have then to go through all the thousands (millions) of images generated to weed out all the ? symbols.

"As of Unicode version 15.1, there are 149,878 characters with code points, covering 161 modern and historical scripts, as well as multiple symbol sets."
https://richmondmathewson.owlstown.net/
User avatar
richmond62
Posts: 3091
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Font glyphs browser palette stack in the IDE

Post by richmond62 »

To run off a 'Font glyphs browser palette stack' is really comparatively easy: here's a start with about 900 glyphs occupying a 133 by 1240 pixel stack:
-
Screenshot 2024-05-02 at 18.11.37.png
Screenshot 2024-05-02 at 18.11.37.png (944.85 KiB) Viewed 891 times
-

It is pug-ugly as I was not really interested in aesthetics, only in getting the code to generate the set right: prettification can wait. 8-)

HOWEVER, to do the 150,000 odd glyphs in Unicode 15.1 that stack would require 168 cards (quite appart from the fact that the automated manufacture would probably take 4-5 hours on my machine).

Probably loading that into OXT would clog up the pipes something rotten!

If this does "float your boat" I am perfectly happy to run off a prettified, 168 card monster for you.
https://richmondmathewson.owlstown.net/
User avatar
richmond62
Posts: 3091
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Font glyphs browser palette stack in the IDE

Post by richmond62 »

Ideally each of those images (and that is what they are to preserve appearance across different computers and operating systems) would contain a script which would "inject" information into another floating palette (bigger image, Unicode number, and so on).
https://richmondmathewson.owlstown.net/
User avatar
richmond62
Posts: 3091
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Font glyphs browser palette stack in the IDE

Post by richmond62 »

Oh, and while I am here, here's a list of "control codes" in Unicode:

https://en.wikipedia.org/wiki/List_of_U ... e_overview

https://www.unicode.org/charts/
https://richmondmathewson.owlstown.net/
User avatar
OpenXTalkPaul
Posts: 1835
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Font glyphs browser palette stack in the IDE

Post by OpenXTalkPaul »

richmond62 wrote: Thu May 02, 2024 3:23 pm infantile emojis
Right, like this one:
🖕 Middle Finger - Unicode CodePoint=128405
User avatar
richmond62
Posts: 3091
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Font glyphs browser palette stack in the IDE

Post by richmond62 »

Touché.

However: at the risk of rubbing you further up the wrong way . . .

"Font glyphs browser palette" could be taken to mean a palette that lets OXT users browse through the whole Unicode set (which should faut de mieux include all the Unicode emojis [whether I like them or not]) and either select them from a textField, or at the very least, learn their Unicode address.

And whichever way you cut things I cannot quite see why the Unicode consortium (which presents itself as an academic body) sees it fit to encode symbols of the sort you used in your last posting.

I certainly would not encourage young programming learners to use offensive emojis in their work: especially as using the one you used above in Bulgaria is likely to end up with broken noses it being just about as offensive as one can be.
https://richmondmathewson.owlstown.net/
User avatar
OpenXTalkPaul
Posts: 1835
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Font glyphs browser palette stack in the IDE

Post by OpenXTalkPaul »

richmond62 wrote: Thu May 02, 2024 6:51 pm And whichever way you cut things I cannot quite see why the Unicode consortium (which presents itself as an academic body) sees it fit to encode symbols of the sort you used in your last posting.

I certainly would not encourage young programming learners to use offensive emojis in their work: especially as using the one you used above in Bulgaria is likely to end up with broken noses it being just about as offensive as one can be.
Sheesh uptight people... having grown up in the South NJ/Philly PA, US-of-mf'n-A area this gesture doesn't bother me much at all, I'd just return it in kind as I pass them at the next light is all, but it is a gesture that IS commonly in use and realizing that various gestures may have different meanings in different cultures it seems to me it's every bit as fitting of a pictograph to include as some ancient hieroglyphics like Ankh ( ☥ ). I sort of see all of this as a sort of clip art library (the stuff that's in addition to various language sets)
However: at the risk of rubbing you further up the wrong way . . .

"Font glyphs browser palette" could be taken to mean a palette that lets OXT users browse through the whole Unicode set (which should faut de mieux include all the Unicode emojis [whether I like them or not]) and either select them from a textField, or at the very least, learn their Unicode address.
Yes that's exactly what I had in mind, but since Unicode v15.1 spec does have a massive amount of symbols specified, it s probably best to store the list all in a file tat can be read in parts, bite (bytes) sized, line delimited chunks. Which is why I suggested it have handlers that return partial lists, filtered by name or by section category of the spec. The list in the data grid of that stack I posted is line and tab delimited list of unicode char, one column is set as a unicode code point char &tab& another column is the unicode name &tab& an a column is the unicode number for that character/symbol/glyph.whatever as a decimal number (why bother with hex?).

Just to be clear, list does NOT include any symbol or svg artwork at all, that comes from the font, in this case it's set to use the Apple System Font SF Compact but on Linux based OS you might be using Goggle's Noto family, Ubuntu Font Family, or some other font from this list: https://en.wikipedia.org/wiki/Open-sour ... _typefaces.
Again each line in the data list only contains:
2 bytes for the unicode code point itself & tab & decimal number & tab & maybe a couple of 10s of bytes for the unicode symbol name. I imagine the list on disk size for v15.1 would be a 500 to 1000 KB.
So say you are lookin for Ankh, the script would only need to read the unicode name item / column of each line from this list directly (from URL tMyFileURL) until it gets a match or gets to the names beginning with 'B' or the end of file marker.
User avatar
richmond62
Posts: 3091
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Font glyphs browser palette stack in the IDE

Post by richmond62 »

Sheesh uptight people...
Well, when we're on the subject of uptight people, when I was a graduate student in Illinois some 30 odd years ago another graduate teaching assistant asked me how I found teaching foreign students: to which I replied, "Well, I have some problems with the Ch*nks and the J*ps." So I was reported for using 'racist' language, and was duly hauled over the coals: of course I did NOT miss the opportunity to point out that the person who reported me had described me to someone else as "That pansy who wears a skirt." The professor who was berating me said, "Oh, that's different because you are white!"

I asked her if, as an over-weight, lesbian Jew, who was white, what she could get away with, to which she replied, "Almost everything darling!"

Now when I was growing up in Britain, we used 'Ch*nks', 'J*ps', 'J*cks' (Meaning me, a Scot), 'M*cks' (Irish) with absolutely no ill intent whatsover: I remember my best friend (who was ethnically Chinese, from Hong Kong), once saying, "Of course for Ch*nks like me . . ."

I mean: why the humpy-pumpy do I feel I have to use tw*nkles all over the place?

So, everyone has a cork up the Khyber Pass about something, and unless one is loopy one should never take middle fingers or what-have-ye as anything but a gentle "up yours", and I do mean gentle: at 62 so many people have tried to insult me that it almost feels odd when someone is polite. :)
https://richmondmathewson.owlstown.net/
User avatar
richmond62
Posts: 3091
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Font glyphs browser palette stack in the IDE

Post by richmond62 »

Just to really "push the boat out", I will try to run up something halfway between what you thought of and what I thought of . . .
https://richmondmathewson.owlstown.net/
User avatar
OpenXTalkPaul
Posts: 1835
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Font glyphs browser palette stack in the IDE

Post by OpenXTalkPaul »

As of Unicode version 15.1, there are 149,878 characters with code points
Hmmmmm I think I was way off, figure:
149,878 glyphs times approx. maybe 100 bytes average per line of glyph info would be around a 15mb file.
User avatar
OpenXTalkPaul
Posts: 1835
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Font glyphs browser palette stack in the IDE

Post by OpenXTalkPaul »

One gets the glyph at that address (which is what one should expect).

However, if one does this:
-
-
One gets a rather unhelpful character.

Helpful insofar as that it tells the end-user that there is no Unicode glyph assigned to that address.

Unhelpful insofar as making a "Font glyphs browser palette stack
That is the default glyph, it IS helpful in that it tells you that the particular font you're currently using does not have the symbol you were looking for and you should immediately go pester the maintainers of whatever-font family to include that symbol in the very next release version of whatever-font family, or just switch to a font that does have it.
In that stack I posted using Apple SF Compact, IIRC in the output I excluded the number ranges that displayed with that default (missing) symbol. I manually went through the list deleting those code point numbers/lines from the list. I was only interested in the Apple System font(s) when I originally made that stack (intended to be part of the 'OXT Apple Images' library).
User avatar
OpenXTalkPaul
Posts: 1835
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Font glyphs browser palette stack in the IDE

Post by OpenXTalkPaul »

These data files may be useful data files from Unicode as far as sorting and sifting though the thousands of glyphs:
https://www.unicode.org/Public/zipped/15.1.0/UCD.zip
User avatar
OpenXTalkPaul
Posts: 1835
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Font glyphs browser palette stack in the IDE

Post by OpenXTalkPaul »

Maybe just block categories list, plus list of codepoint & tab & glyph name is enough to narrow things down for most users?
The blocks list of glyph ranges looks like this:

Code: Select all

0000..007F; Basic Latin
0080..00FF; Latin-1 Supplement
0100..017F; Latin Extended-A
0180..024F; Latin Extended-B
0250..02AF; IPA Extensions
02B0..02FF; Spacing Modifier Letters
0300..036F; Combining Diacritical Marks
0370..03FF; Greek and Coptic
0400..04FF; Cyrillic
0500..052F; Cyrillic Supplement
0530..058F; Armenian
0590..05FF; Hebrew
0600..06FF; Arabic
0700..074F; Syriac
0750..077F; Arabic Supplement
0780..07BF; Thaana
07C0..07FF; NKo
0800..083F; Samaritan
0840..085F; Mandaic
0860..086F; Syriac Supplement
0870..089F; Arabic Extended-B
08A0..08FF; Arabic Extended-A
0900..097F; Devanagari
0980..09FF; Bengali
0A00..0A7F; Gurmukhi
0A80..0AFF; Gujarati
0B00..0B7F; Oriya
0B80..0BFF; Tamil
0C00..0C7F; Telugu
0C80..0CFF; Kannada
0D00..0D7F; Malayalam
0D80..0DFF; Sinhala
0E00..0E7F; Thai
0E80..0EFF; Lao
0F00..0FFF; Tibetan
1000..109F; Myanmar
10A0..10FF; Georgian
1100..11FF; Hangul Jamo
1200..137F; Ethiopic
1380..139F; Ethiopic Supplement
13A0..13FF; Cherokee
1400..167F; Unified Canadian Aboriginal Syllabics
1680..169F; Ogham
16A0..16FF; Runic
1700..171F; Tagalog
1720..173F; Hanunoo
1740..175F; Buhid
1760..177F; Tagbanwa
1780..17FF; Khmer
1800..18AF; Mongolian
18B0..18FF; Unified Canadian Aboriginal Syllabics Extended
1900..194F; Limbu
1950..197F; Tai Le
1980..19DF; New Tai Lue
19E0..19FF; Khmer Symbols
1A00..1A1F; Buginese
1A20..1AAF; Tai Tham
1AB0..1AFF; Combining Diacritical Marks Extended
1B00..1B7F; Balinese
1B80..1BBF; Sundanese
1BC0..1BFF; Batak
1C00..1C4F; Lepcha
1C50..1C7F; Ol Chiki
1C80..1C8F; Cyrillic Extended-C
1C90..1CBF; Georgian Extended
1CC0..1CCF; Sundanese Supplement
1CD0..1CFF; Vedic Extensions
1D00..1D7F; Phonetic Extensions
1D80..1DBF; Phonetic Extensions Supplement
1DC0..1DFF; Combining Diacritical Marks Supplement
1E00..1EFF; Latin Extended Additional
1F00..1FFF; Greek Extended
2000..206F; General Punctuation
2070..209F; Superscripts and Subscripts
20A0..20CF; Currency Symbols
20D0..20FF; Combining Diacritical Marks for Symbols
2100..214F; Letterlike Symbols
2150..218F; Number Forms
2190..21FF; Arrows
2200..22FF; Mathematical Operators
2300..23FF; Miscellaneous Technical
2400..243F; Control Pictures
2440..245F; Optical Character Recognition
2460..24FF; Enclosed Alphanumerics
2500..257F; Box Drawing
2580..259F; Block Elements
25A0..25FF; Geometric Shapes
2600..26FF; Miscellaneous Symbols
2700..27BF; Dingbats
27C0..27EF; Miscellaneous Mathematical Symbols-A
27F0..27FF; Supplemental Arrows-A
2800..28FF; Braille Patterns
2900..297F; Supplemental Arrows-B
2980..29FF; Miscellaneous Mathematical Symbols-B
2A00..2AFF; Supplemental Mathematical Operators
2B00..2BFF; Miscellaneous Symbols and Arrows
2C00..2C5F; Glagolitic
2C60..2C7F; Latin Extended-C
2C80..2CFF; Coptic
2D00..2D2F; Georgian Supplement
2D30..2D7F; Tifinagh
2D80..2DDF; Ethiopic Extended
2DE0..2DFF; Cyrillic Extended-A
2E00..2E7F; Supplemental Punctuation
2E80..2EFF; CJK Radicals Supplement
2F00..2FDF; Kangxi Radicals
2FF0..2FFF; Ideographic Description Characters
3000..303F; CJK Symbols and Punctuation
3040..309F; Hiragana
30A0..30FF; Katakana
3100..312F; Bopomofo
3130..318F; Hangul Compatibility Jamo
3190..319F; Kanbun
31A0..31BF; Bopomofo Extended
31C0..31EF; CJK Strokes
31F0..31FF; Katakana Phonetic Extensions
3200..32FF; Enclosed CJK Letters and Months
3300..33FF; CJK Compatibility
3400..4DBF; CJK Unified Ideographs Extension A
4DC0..4DFF; Yijing Hexagram Symbols
4E00..9FFF; CJK Unified Ideographs
A000..A48F; Yi Syllables
A490..A4CF; Yi Radicals
A4D0..A4FF; Lisu
A500..A63F; Vai
A640..A69F; Cyrillic Extended-B
A6A0..A6FF; Bamum
A700..A71F; Modifier Tone Letters
A720..A7FF; Latin Extended-D
A800..A82F; Syloti Nagri
A830..A83F; Common Indic Number Forms
A840..A87F; Phags-pa
A880..A8DF; Saurashtra
A8E0..A8FF; Devanagari Extended
A900..A92F; Kayah Li
A930..A95F; Rejang
A960..A97F; Hangul Jamo Extended-A
A980..A9DF; Javanese
A9E0..A9FF; Myanmar Extended-B
AA00..AA5F; Cham
AA60..AA7F; Myanmar Extended-A
AA80..AADF; Tai Viet
AAE0..AAFF; Meetei Mayek Extensions
AB00..AB2F; Ethiopic Extended-A
AB30..AB6F; Latin Extended-E
AB70..ABBF; Cherokee Supplement
ABC0..ABFF; Meetei Mayek
AC00..D7AF; Hangul Syllables
D7B0..D7FF; Hangul Jamo Extended-B
D800..DB7F; High Surrogates
DB80..DBFF; High Private Use Surrogates
DC00..DFFF; Low Surrogates
E000..F8FF; Private Use Area
F900..FAFF; CJK Compatibility Ideographs
FB00..FB4F; Alphabetic Presentation Forms
FB50..FDFF; Arabic Presentation Forms-A
FE00..FE0F; Variation Selectors
FE10..FE1F; Vertical Forms
FE20..FE2F; Combining Half Marks
FE30..FE4F; CJK Compatibility Forms
FE50..FE6F; Small Form Variants
FE70..FEFF; Arabic Presentation Forms-B
FF00..FFEF; Halfwidth and Fullwidth Forms
FFF0..FFFF; Specials
10000..1007F; Linear B Syllabary
10080..100FF; Linear B Ideograms
10100..1013F; Aegean Numbers
10140..1018F; Ancient Greek Numbers
10190..101CF; Ancient Symbols
101D0..101FF; Phaistos Disc
10280..1029F; Lycian
102A0..102DF; Carian
102E0..102FF; Coptic Epact Numbers
10300..1032F; Old Italic
10330..1034F; Gothic
10350..1037F; Old Permic
10380..1039F; Ugaritic
103A0..103DF; Old Persian
10400..1044F; Deseret
10450..1047F; Shavian
10480..104AF; Osmanya
104B0..104FF; Osage
10500..1052F; Elbasan
10530..1056F; Caucasian Albanian
10570..105BF; Vithkuqi
10600..1077F; Linear A
10780..107BF; Latin Extended-F
10800..1083F; Cypriot Syllabary
10840..1085F; Imperial Aramaic
10860..1087F; Palmyrene
10880..108AF; Nabataean
108E0..108FF; Hatran
10900..1091F; Phoenician
10920..1093F; Lydian
10980..1099F; Meroitic Hieroglyphs
109A0..109FF; Meroitic Cursive
10A00..10A5F; Kharoshthi
10A60..10A7F; Old South Arabian
10A80..10A9F; Old North Arabian
10AC0..10AFF; Manichaean
10B00..10B3F; Avestan
10B40..10B5F; Inscriptional Parthian
10B60..10B7F; Inscriptional Pahlavi
10B80..10BAF; Psalter Pahlavi
10C00..10C4F; Old Turkic
10C80..10CFF; Old Hungarian
10D00..10D3F; Hanifi Rohingya
10E60..10E7F; Rumi Numeral Symbols
10E80..10EBF; Yezidi
10EC0..10EFF; Arabic Extended-C
10F00..10F2F; Old Sogdian
10F30..10F6F; Sogdian
10F70..10FAF; Old Uyghur
10FB0..10FDF; Chorasmian
10FE0..10FFF; Elymaic
11000..1107F; Brahmi
11080..110CF; Kaithi
110D0..110FF; Sora Sompeng
11100..1114F; Chakma
11150..1117F; Mahajani
11180..111DF; Sharada
111E0..111FF; Sinhala Archaic Numbers
11200..1124F; Khojki
11280..112AF; Multani
112B0..112FF; Khudawadi
11300..1137F; Grantha
11400..1147F; Newa
11480..114DF; Tirhuta
11580..115FF; Siddham
11600..1165F; Modi
11660..1167F; Mongolian Supplement
11680..116CF; Takri
11700..1174F; Ahom
11800..1184F; Dogra
118A0..118FF; Warang Citi
11900..1195F; Dives Akuru
119A0..119FF; Nandinagari
11A00..11A4F; Zanabazar Square
11A50..11AAF; Soyombo
11AB0..11ABF; Unified Canadian Aboriginal Syllabics Extended-A
11AC0..11AFF; Pau Cin Hau
11B00..11B5F; Devanagari Extended-A
11C00..11C6F; Bhaiksuki
11C70..11CBF; Marchen
11D00..11D5F; Masaram Gondi
11D60..11DAF; Gunjala Gondi
11EE0..11EFF; Makasar
11F00..11F5F; Kawi
11FB0..11FBF; Lisu Supplement
11FC0..11FFF; Tamil Supplement
12000..123FF; Cuneiform
12400..1247F; Cuneiform Numbers and Punctuation
12480..1254F; Early Dynastic Cuneiform
12F90..12FFF; Cypro-Minoan
13000..1342F; Egyptian Hieroglyphs
13430..1345F; Egyptian Hieroglyph Format Controls
14400..1467F; Anatolian Hieroglyphs
16800..16A3F; Bamum Supplement
16A40..16A6F; Mro
16A70..16ACF; Tangsa
16AD0..16AFF; Bassa Vah
16B00..16B8F; Pahawh Hmong
16E40..16E9F; Medefaidrin
16F00..16F9F; Miao
16FE0..16FFF; Ideographic Symbols and Punctuation
17000..187FF; Tangut
18800..18AFF; Tangut Components
18B00..18CFF; Khitan Small Script
18D00..18D7F; Tangut Supplement
1AFF0..1AFFF; Kana Extended-B
1B000..1B0FF; Kana Supplement
1B100..1B12F; Kana Extended-A
1B130..1B16F; Small Kana Extension
1B170..1B2FF; Nushu
1BC00..1BC9F; Duployan
1BCA0..1BCAF; Shorthand Format Controls
1CF00..1CFCF; Znamenny Musical Notation
1D000..1D0FF; Byzantine Musical Symbols
1D100..1D1FF; Musical Symbols
1D200..1D24F; Ancient Greek Musical Notation
1D2C0..1D2DF; Kaktovik Numerals
1D2E0..1D2FF; Mayan Numerals
1D300..1D35F; Tai Xuan Jing Symbols
1D360..1D37F; Counting Rod Numerals
1D400..1D7FF; Mathematical Alphanumeric Symbols
1D800..1DAAF; Sutton SignWriting
1DF00..1DFFF; Latin Extended-G
1E000..1E02F; Glagolitic Supplement
1E030..1E08F; Cyrillic Extended-D
1E100..1E14F; Nyiakeng Puachue Hmong
1E290..1E2BF; Toto
1E2C0..1E2FF; Wancho
1E4D0..1E4FF; Nag Mundari
1E7E0..1E7FF; Ethiopic Extended-B
1E800..1E8DF; Mende Kikakui
1E900..1E95F; Adlam
1EC70..1ECBF; Indic Siyaq Numbers
1ED00..1ED4F; Ottoman Siyaq Numbers
1EE00..1EEFF; Arabic Mathematical Alphabetic Symbols
1F000..1F02F; Mahjong Tiles
1F030..1F09F; Domino Tiles
1F0A0..1F0FF; Playing Cards
1F100..1F1FF; Enclosed Alphanumeric Supplement
1F200..1F2FF; Enclosed Ideographic Supplement
1F300..1F5FF; Miscellaneous Symbols and Pictographs
1F600..1F64F; Emoticons
1F650..1F67F; Ornamental Dingbats
1F680..1F6FF; Transport and Map Symbols
1F700..1F77F; Alchemical Symbols
1F780..1F7FF; Geometric Shapes Extended
1F800..1F8FF; Supplemental Arrows-C
1F900..1F9FF; Supplemental Symbols and Pictographs
1FA00..1FA6F; Chess Symbols
1FA70..1FAFF; Symbols and Pictographs Extended-A
1FB00..1FBFF; Symbols for Legacy Computing
20000..2A6DF; CJK Unified Ideographs Extension B
2A700..2B73F; CJK Unified Ideographs Extension C
2B740..2B81F; CJK Unified Ideographs Extension D
2B820..2CEAF; CJK Unified Ideographs Extension E
2CEB0..2EBEF; CJK Unified Ideographs Extension F
2EBF0..2EE5F; CJK Unified Ideographs Extension I
2F800..2FA1F; CJK Compatibility Ideographs Supplement
30000..3134F; CJK Unified Ideographs Extension G
31350..323AF; CJK Unified Ideographs Extension H
E0000..E007F; Tags
E0100..E01EF; Variation Selectors Supplement
F0000..FFFFF; Supplementary Private Use Area-A
100000..10FFFF; Supplementary Private Use Area-B
That way if user is making a database for chess moves, for a use case example, you can have the palette just show the font glyphs in that range: 1FA00..1FA6F . I'm not very interested in non-Latin/non-English glyph ranges personally (they are interesting to look at) and we do not have contributors here to support any other languages in OXT, but there is definitely symbols and even UI symbolic glyphs I could see using in app development (like the Command key symbol, which I beleive Apple lifted from some sort of Nordic symbol), and I'm just infantile enough to use emoji pictographs too :-P
User avatar
OpenXTalkPaul
Posts: 1835
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Font glyphs browser palette stack in the IDE

Post by OpenXTalkPaul »

1F0A0..1F0FF; Playing Cards
Back when I was still a teen and first started to actually try to build something interesting with HyperCard (1.2?) I started trying to make a BlackJack (21) card game as a learning exercise (seemed like an easy game to work out, sans betting, splits, etc.) but had no playing card images to work with. At first I hand-made some low res black & white ICONS resources to represent the cards, Later on when I started to get involved with desktop publishing I replaced the bitmaps with a text field and a font from commercial font from Linotype-Hell called GamePi, and because it was a postscript font, my stack technically had resolution independent graphics in the late 1980s! Of course I couldn't legally distributed the stack with a copy of Lino's font embedded into the stacks resource fork, so that kind of put a damper on that idea, but it did work a LOT better / faster since it was then using Apple's Font Manager (or maybe it was Adobe's Font Manager) engine to render my stacks graphics. Today having these as part of Unicode Standard means most OSes will have some form these glyphs available in a system included font, so no licensing issue. So that's good.

Nowadays we have available a full color detailed playing cards set of SVG graphics that I've personally optimized for both file size and for use with the Image control's SVG support (and limitations), along with a script library that loads them all into memory as array for fast find/render of a playing card image. But that's still an extra 4-5mb worth of data you would need to include. For a quick card game stack instead you can simply include this small list of unicode code-point numbers in the range: 1F0A0..1F0FF (less then 200bytes) and a font name to look for and use (depending on OS).
User avatar
richmond62
Posts: 3091
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Font glyphs browser palette stack in the IDE

Post by richmond62 »

I'm not very interested in non-Latin/non-English glyph ranges personally
(Cue opportunity to make offensive remarks about monoglot Americans . . . LOL)

The size/weigh of a palette/stack holding ALL of the Unicode range is rather silly . . .

(Cue Silly Story about Richmond's sleep patterns)

At some odd time in the night I woke up and realised that what is far, far better than a socking great stack with everything is a stack with 2 cards:

Card 1 holds buttons with the names of all the Unicode ranges.

Card 2 is initially blank.

Chummy the end-user clicks on a button on card 1 that populates card 2 with 'guff' for that Unicode range on-the-fly and then takes Chummy there.
https://richmondmathewson.owlstown.net/
User avatar
richmond62
Posts: 3091
Joined: Sun Sep 12, 2021 11:03 am
Location: Bulgaria
Contact:

Re: Font glyphs browser palette stack in the IDE

Post by richmond62 »

Screenshot 2024-05-03 at 13.52.37.jpg
Screenshot 2024-05-03 at 13.52.37.jpg (487.6 KiB) Viewed 821 times
-
Screenshot 2024-05-03 at 13.53.05.jpg
Screenshot 2024-05-03 at 13.53.05.jpg (128.99 KiB) Viewed 821 times
-
Reach for your cup of whatever as this is slow and tedious.
Attachments
Unicode Reference X.oxtstack.zip
(68.69 KiB) Downloaded 42 times
https://richmondmathewson.owlstown.net/
User avatar
OpenXTalkPaul
Posts: 1835
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Font glyphs browser palette stack in the IDE

Post by OpenXTalkPaul »

Yes, for sure I wouldn't create ALL of the unicode as images on one card.
That stack doesn't fit on my current screen (1080p) so I had to set the stack scaleFactor to 0.75 and recenter loc.

In fact, I wouldn't make them images at all, it's slow and doing that doesn't alter that we're not the font's IP owner and may not have permission to distribute in that form (see Apple's license for it's Emojis).

The only thing such a stack needs in my opinion is a Unicode font, like one that most likely was provided by whatever OS, and those number range blocks I posted in the code block last night, maybe in a simple pop-up menu, to generate the grid of the unicode chars, then if you want to export a reference sheet as a pixel image you could export a snapshot of the grid's group (assuming the objects were created inside a group).
That's if you want to use a grid display, you may want to display a scrolling list, one that you can search the unicode font for a glyph by it's unicode glyph name, and filter the list by a word like I did with the word "Finger" yesterday ;-)

This particular American is certainly interested in polyglot, just not so much more written languages for communicating with humans.
User avatar
OpenXTalkPaul
Posts: 1835
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Font glyphs browser palette stack in the IDE

Post by OpenXTalkPaul »

I just thought of a better method that could be used for this...

You have a text field (or table fld with editing off so you can show vertical lines),
set the fld textFont to whatever-unicode-font,
populate the fld with the unicode text of code points that you're interested in looking at,
every code point will have it's style set to "link" so that the glyph becomes clickable hypertext link,
lock the fld's text to enable link clicking,
set the underLineLinks of the stack to false -- hide ugly underlines,
maybe the glyph's chunk's "linkText" is set to the info about the glyph such as it's unicode code-point number or glyph name,
Then the field script handles glyph clicks with 'on linkClicked pLinkText' handler that displays the info, copies the glyph to the clipboard, or whatever.
User avatar
OpenXTalkPaul
Posts: 1835
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Font glyphs browser palette stack in the IDE

Post by OpenXTalkPaul »

Here's proof of that concept:
ClickableGlyphsFld.oxtstack
(36.62 KiB) Downloaded 44 times
This should work with ANY unicode font that has the playing card range of glyphs (they all do).
You can click the glyphs in that field and they'll put the character., and it's code-point (decimal) number to the message box

One thing I noticed doing this is that Ubuntu Sans font does NOT inherit foreground/background color properties, at least not with this method or installed on macOS, while other fonts such as Apple's SF fonts do.
User avatar
OpenXTalkPaul
Posts: 1835
Joined: Sat Sep 11, 2021 4:19 pm
Contact:

Re: Font glyphs browser palette stack in the IDE

Post by OpenXTalkPaul »

OpenXTalkPaul wrote: Fri May 03, 2024 4:03 pm Here's proof of that concept:
ClickableGlyphsFld.oxtstack
I made this into a better stack that generates a code-point set from 'menuPick pChosenUniBlock' using that category list I posted earlier. I didn't have time to post updated stack, I'll upload it later.
It's a little faster, but still takes some time to create the list when you have a block that has thousands of characters (like various Asian glyph sets). It might be faster to create a list in a variable in memory by using HTML tags and then setting the HTMLText of the fld all at once, instead of putting unicode codeponts into a field one char at a time. Another method that's sure to be faster would be having the lists of just the unicode chars already generated for each category block and then we just need to set the font to whatever unicode font. That would of course increase the size of the stack by a lot of bytes (unicode being multibyte characters).
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest