From d40fed5ce2bc806a91245adb18039634eac13ed0 Mon Sep 17 00:00:00 2001 From: MichaelTheShifter Date: Wed, 20 Jul 2016 09:40:36 -0400 Subject: Move ShiftUI source code to ShiftOS This'll be a lot easier to work on. --- source/ShiftUI/RTF/TextMap.cs | 440 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 440 insertions(+) create mode 100644 source/ShiftUI/RTF/TextMap.cs (limited to 'source/ShiftUI/RTF/TextMap.cs') diff --git a/source/ShiftUI/RTF/TextMap.cs b/source/ShiftUI/RTF/TextMap.cs new file mode 100644 index 0000000..8c0a7b0 --- /dev/null +++ b/source/ShiftUI/RTF/TextMap.cs @@ -0,0 +1,440 @@ +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// Copyright (c) 2005 Novell, Inc. (http://www.novell.com) +// +// Authors: +// Peter Bartok (pbartok@novell.com) +// +// + +// This map is for convencience only, any app can create/use it's own +// StdCharCode -> table + +using System.Collections; + +namespace ShiftUI.RTF { + +#if RTF_LIB + public +#else + internal +#endif + class TextMap { + #region Local Variables + private string[] table; + #endregion // Local Variables + + #region Public Constructors + public TextMap() { + table = new string[(int)StandardCharCode.MaxChar]; + + for (int i = 0; i < (int)StandardCharCode.MaxChar; i++) { + table[i] = string.Empty; + } + } + #endregion // Public Constructors + + #region Public Instance Properties + internal string this[StandardCharCode c] { // FIXME - this should be public, if the whole namespace was public (ie standalone RTF parser) + get { + return table[(int)c]; + } + + set { + table[(int)c] = value; + } + } + + public string[] Table { + get { + return table; + } + } + #endregion // Public Instance Properties + + #region Public Static Methods + public static void SetupStandardTable(string[] table) + { + /* + table[(int)StandardCharCode.space] = " "; + table[(int)StandardCharCode.exclam] = "!"; + table[(int)StandardCharCode.quotedbl] = "\""; + table[(int)StandardCharCode.numbersign] = "#"; + table[(int)StandardCharCode.dollar] = "$"; + table[(int)StandardCharCode.percent] = "%"; + table[(int)StandardCharCode.ampersand] = "&"; + table[(int)StandardCharCode.quoteright] = "'"; + table[(int)StandardCharCode.parenleft] = "("; + table[(int)StandardCharCode.parenright] = ")"; + table[(int)StandardCharCode.asterisk] = "*"; + table[(int)StandardCharCode.plus] = "+"; + table[(int)StandardCharCode.comma] = ","; + table[(int)StandardCharCode.hyphen] = "-"; + table[(int)StandardCharCode.period] = "."; + table[(int)StandardCharCode.slash] = "/"; + table[(int)StandardCharCode.zero] = "0"; + table[(int)StandardCharCode.one] = "1"; + table[(int)StandardCharCode.two] = "2"; + table[(int)StandardCharCode.three] = "3"; + table[(int)StandardCharCode.four] = "4"; + table[(int)StandardCharCode.five] = "5"; + table[(int)StandardCharCode.six] = "6"; + table[(int)StandardCharCode.seven] = "7"; + table[(int)StandardCharCode.eight] = "8"; + table[(int)StandardCharCode.nine] = "9"; + table[(int)StandardCharCode.colon] = ":"; + table[(int)StandardCharCode.semicolon] = ";"; + table[(int)StandardCharCode.less] = "<"; + table[(int)StandardCharCode.equal] = "="; + table[(int)StandardCharCode.greater] = ">"; + table[(int)StandardCharCode.question] = "?"; + table[(int)StandardCharCode.at] = "@"; + table[(int)StandardCharCode.A] = "A"; + table[(int)StandardCharCode.B] = "B"; + table[(int)StandardCharCode.C] = "C"; + table[(int)StandardCharCode.D] = "D"; + table[(int)StandardCharCode.E] = "E"; + table[(int)StandardCharCode.F] = "F"; + table[(int)StandardCharCode.G] = "G"; + table[(int)StandardCharCode.H] = "H"; + table[(int)StandardCharCode.I] = "I"; + table[(int)StandardCharCode.J] = "J"; + table[(int)StandardCharCode.K] = "K"; + table[(int)StandardCharCode.L] = "L"; + table[(int)StandardCharCode.M] = "M"; + table[(int)StandardCharCode.N] = "N"; + table[(int)StandardCharCode.O] = "O"; + table[(int)StandardCharCode.P] = "P"; + table[(int)StandardCharCode.Q] = "Q"; + table[(int)StandardCharCode.R] = "R"; + table[(int)StandardCharCode.S] = "S"; + table[(int)StandardCharCode.T] = "T"; + table[(int)StandardCharCode.U] = "U"; + table[(int)StandardCharCode.V] = "V"; + table[(int)StandardCharCode.W] = "W"; + table[(int)StandardCharCode.X] = "X"; + table[(int)StandardCharCode.Y] = "Y"; + table[(int)StandardCharCode.Z] = "Z"; + table[(int)StandardCharCode.bracketleft] = "["; + table[(int)StandardCharCode.backslash] = "\\"; + table[(int)StandardCharCode.bracketright] = "]"; + table[(int)StandardCharCode.asciicircum] = "^"; + table[(int)StandardCharCode.underscore] = "_"; + table[(int)StandardCharCode.quoteleft] = "`"; + table[(int)StandardCharCode.a] = "a"; + table[(int)StandardCharCode.b] = "b"; + table[(int)StandardCharCode.c] = "c"; + table[(int)StandardCharCode.d] = "d"; + table[(int)StandardCharCode.e] = "e"; + table[(int)StandardCharCode.f] = "f"; + table[(int)StandardCharCode.g] = "g"; + table[(int)StandardCharCode.h] = "h"; + table[(int)StandardCharCode.i] = "i"; + table[(int)StandardCharCode.j] = "j"; + table[(int)StandardCharCode.k] = "k"; + table[(int)StandardCharCode.l] = "l"; + table[(int)StandardCharCode.m] = "m"; + table[(int)StandardCharCode.n] = "n"; + table[(int)StandardCharCode.o] = "o"; + table[(int)StandardCharCode.p] = "p"; + table[(int)StandardCharCode.q] = "q"; + table[(int)StandardCharCode.r] = "r"; + table[(int)StandardCharCode.s] = "s"; + table[(int)StandardCharCode.t] = "t"; + table[(int)StandardCharCode.u] = "u"; + table[(int)StandardCharCode.v] = "v"; + table[(int)StandardCharCode.w] = "w"; + table[(int)StandardCharCode.x] = "x"; + table[(int)StandardCharCode.y] = "y"; + table[(int)StandardCharCode.z] = "z"; + table[(int)StandardCharCode.braceleft] = "{"; + table[(int)StandardCharCode.bar] = "|"; + table[(int)StandardCharCode.braceright] = "}"; + table[(int)StandardCharCode.asciitilde] = "~"; + table[(int)StandardCharCode.AE] = "AE"; + table[(int)StandardCharCode.OE] = "OE"; + table[(int)StandardCharCode.acute] = "'"; + table[(int)StandardCharCode.ae] = "ae"; + table[(int)StandardCharCode.angleleft] = "<"; + table[(int)StandardCharCode.angleright] = ">"; + table[(int)StandardCharCode.arrowboth] = "<->"; + table[(int)StandardCharCode.arrowdblboth] = "<=>"; + table[(int)StandardCharCode.arrowdblleft] = "<="; + table[(int)StandardCharCode.arrowdblright] = "=>"; + table[(int)StandardCharCode.arrowleft] = "<-"; + table[(int)StandardCharCode.arrowright] = "->"; + table[(int)StandardCharCode.bullet] = "o"; + table[(int)StandardCharCode.cent] = "cent"; + table[(int)StandardCharCode.circumflex] = "^"; + table[(int)StandardCharCode.copyright] = "(c)"; + table[(int)StandardCharCode.copyrightsans] = "(c)"; + table[(int)StandardCharCode.degree] = "deg."; + table[(int)StandardCharCode.divide] = "/"; + table[(int)StandardCharCode.dotlessi] = "i"; + table[(int)StandardCharCode.ellipsis] = "..."; + table[(int)StandardCharCode.emdash] = "--"; + table[(int)StandardCharCode.endash] = "-"; + table[(int)StandardCharCode.fi] = "fi"; + table[(int)StandardCharCode.fl] = "fl"; + table[(int)StandardCharCode.fraction] = "/"; + table[(int)StandardCharCode.germandbls] = "ss"; + table[(int)StandardCharCode.grave] = "`"; + table[(int)StandardCharCode.greaterequal] = ">="; + table[(int)StandardCharCode.guillemotleft] = "<<"; + table[(int)StandardCharCode.guillemotright] = ">>"; + table[(int)StandardCharCode.guilsinglleft] = "<"; + table[(int)StandardCharCode.guilsinglright] = ">"; + table[(int)StandardCharCode.lessequal] = "<="; + table[(int)StandardCharCode.logicalnot] = "~"; + table[(int)StandardCharCode.mathasterisk] = "*"; + table[(int)StandardCharCode.mathequal] = "="; + table[(int)StandardCharCode.mathminus] = "-"; + table[(int)StandardCharCode.mathnumbersign] = "#"; + table[(int)StandardCharCode.mathplus] = "+"; + table[(int)StandardCharCode.mathtilde] = "~"; + table[(int)StandardCharCode.minus] = "-"; + table[(int)StandardCharCode.mu] = "u"; + table[(int)StandardCharCode.multiply] = "x"; + table[(int)StandardCharCode.nobrkhyphen] = "-"; + table[(int)StandardCharCode.nobrkspace] = ""; + table[(int)StandardCharCode.notequal] = "!="; + table[(int)StandardCharCode.oe] = "oe"; + table[(int)StandardCharCode.onehalf] = "1/2"; + table[(int)StandardCharCode.onequarter] = "1/4"; + table[(int)StandardCharCode.periodcentered] = "."; + table[(int)StandardCharCode.plusminus] = "+/-"; + table[(int)StandardCharCode.quotedblbase] = ",,"; + table[(int)StandardCharCode.quotedblleft] = "\""; + table[(int)StandardCharCode.quotedblright] = "\""; + table[(int)StandardCharCode.quotesinglbase] = ","; + table[(int)StandardCharCode.registered] = "reg."; + table[(int)StandardCharCode.registersans] = "reg."; + table[(int)StandardCharCode.threequarters] = "3/4"; + table[(int)StandardCharCode.tilde] = "~"; + table[(int)StandardCharCode.trademark] = "(TM)"; + table[(int)StandardCharCode.trademarksans] = "(TM)"; + + table[(int)StandardCharCode.aacute] = "\xE0"; + table[(int)StandardCharCode.questiondown] = "\xBF"; + + table[(int)StandardCharCode.udieresis] = "\xFC"; + table[(int)StandardCharCode.Udieresis] = "\xDC"; + table[(int)StandardCharCode.odieresis] = "\xF6"; + table[(int)StandardCharCode.Odieresis] = "\xD6"; + */ + + table [(int) StandardCharCode.formula] = "\x6"; + table [(int) StandardCharCode.nobrkhyphen] = "\x1e"; + table [(int) StandardCharCode.opthyphen] = "\x1f"; + table [(int) StandardCharCode.space] = " "; + table [(int) StandardCharCode.exclam] = "!"; + table [(int) StandardCharCode.quotedbl] = "\""; + table [(int) StandardCharCode.numbersign] = "#"; + table [(int) StandardCharCode.dollar] = "$"; + table [(int) StandardCharCode.percent] = "%"; + table [(int) StandardCharCode.ampersand] = "&"; + table [(int) StandardCharCode.parenleft] = "("; + table [(int) StandardCharCode.parenright] = ")"; + table [(int) StandardCharCode.asterisk] = "*"; + table [(int) StandardCharCode.plus] = "+"; + table [(int) StandardCharCode.comma] = ","; + table [(int) StandardCharCode.hyphen] = "-"; + table [(int) StandardCharCode.period] = "."; + table [(int) StandardCharCode.slash] = "/"; + table [(int) StandardCharCode.zero] = "0"; + table [(int) StandardCharCode.one] = "1"; + table [(int) StandardCharCode.two] = "2"; + table [(int) StandardCharCode.three] = "3"; + table [(int) StandardCharCode.four] = "4"; + table [(int) StandardCharCode.five] = "5"; + table [(int) StandardCharCode.six] = "6"; + table [(int) StandardCharCode.seven] = "7"; + table [(int) StandardCharCode.eight] = "8"; + table [(int) StandardCharCode.nine] = "9"; + table [(int) StandardCharCode.colon] = ":"; + table [(int) StandardCharCode.semicolon] = ";"; + table [(int) StandardCharCode.less] = "<"; + table [(int) StandardCharCode.equal] = "="; + table [(int) StandardCharCode.greater] = ">"; + table [(int) StandardCharCode.question] = "?"; + table [(int) StandardCharCode.at] = "@"; + table [(int) StandardCharCode.A] = "A"; + table [(int) StandardCharCode.B] = "B"; + table [(int) StandardCharCode.C] = "C"; + table [(int) StandardCharCode.D] = "D"; + table [(int) StandardCharCode.E] = "E"; + table [(int) StandardCharCode.F] = "F"; + table [(int) StandardCharCode.G] = "G"; + table [(int) StandardCharCode.H] = "H"; + table [(int) StandardCharCode.I] = "I"; + table [(int) StandardCharCode.J] = "J"; + table [(int) StandardCharCode.K] = "K"; + table [(int) StandardCharCode.L] = "L"; + table [(int) StandardCharCode.M] = "M"; + table [(int) StandardCharCode.N] = "N"; + table [(int) StandardCharCode.O] = "O"; + table [(int) StandardCharCode.P] = "P"; + table [(int) StandardCharCode.Q] = "Q"; + table [(int) StandardCharCode.R] = "R"; + table [(int) StandardCharCode.S] = "S"; + table [(int) StandardCharCode.T] = "T"; + table [(int) StandardCharCode.U] = "U"; + table [(int) StandardCharCode.V] = "V"; + table [(int) StandardCharCode.W] = "W"; + table [(int) StandardCharCode.X] = "X"; + table [(int) StandardCharCode.Y] = "Y"; + table [(int) StandardCharCode.Z] = "Z"; + table [(int) StandardCharCode.bracketleft] = "["; + table [(int) StandardCharCode.backslash] = "\\"; + table [(int) StandardCharCode.bracketright] = "]"; + table [(int) StandardCharCode.asciicircum] = "^"; + table [(int) StandardCharCode.underscore] = "_"; + table [(int) StandardCharCode.quoteleft] = "`"; + table [(int) StandardCharCode.a] = "a"; + table [(int) StandardCharCode.b] = "b"; + table [(int) StandardCharCode.c] = "c"; + table [(int) StandardCharCode.d] = "d"; + table [(int) StandardCharCode.e] = "e"; + table [(int) StandardCharCode.f] = "f"; + table [(int) StandardCharCode.g] = "g"; + table [(int) StandardCharCode.h] = "h"; + table [(int) StandardCharCode.i] = "i"; + table [(int) StandardCharCode.j] = "j"; + table [(int) StandardCharCode.k] = "k"; + table [(int) StandardCharCode.l] = "l"; + table [(int) StandardCharCode.m] = "m"; + table [(int) StandardCharCode.n] = "n"; + table [(int) StandardCharCode.o] = "o"; + table [(int) StandardCharCode.p] = "p"; + table [(int) StandardCharCode.q] = "q"; + table [(int) StandardCharCode.r] = "r"; + table [(int) StandardCharCode.s] = "s"; + table [(int) StandardCharCode.t] = "t"; + table [(int) StandardCharCode.u] = "u"; + table [(int) StandardCharCode.v] = "v"; + table [(int) StandardCharCode.w] = "w"; + table [(int) StandardCharCode.x] = "x"; + table [(int) StandardCharCode.y] = "y"; + table [(int) StandardCharCode.z] = "z"; + table [(int) StandardCharCode.braceleft] = "{"; + table [(int) StandardCharCode.bar] = "|"; + table [(int) StandardCharCode.braceright] = "}"; + table [(int) StandardCharCode.asciitilde] = "~"; + table [(int) StandardCharCode.nobrkspace] = "\xa0"; + table [(int) StandardCharCode.exclamdown] = "\xa1"; + table [(int) StandardCharCode.cent] = "\xa2"; + table [(int) StandardCharCode.sterling] = "\xa3"; + table [(int) StandardCharCode.currency] = "\xa4"; + table [(int) StandardCharCode.yen] = "\xa5"; + table [(int) StandardCharCode.brokenbar] = "\xa6"; + table [(int) StandardCharCode.section] = "\xa7"; + table [(int) StandardCharCode.dieresis] = "\xa8"; + table [(int) StandardCharCode.copyright] = "\xa9"; + table [(int) StandardCharCode.ordfeminine] = "\xaa"; + table [(int) StandardCharCode.guillemotleft] = "\xab"; + table [(int) StandardCharCode.logicalnot] = "\xac"; + table [(int) StandardCharCode.opthyphen] = "\xad"; + table [(int) StandardCharCode.registered] = "\xae"; + table [(int) StandardCharCode.macron] = "\xaf"; + table [(int) StandardCharCode.degree] = "\xb0"; + table [(int) StandardCharCode.plusminus] = "\xb1"; + table [(int) StandardCharCode.twosuperior] = "\xb2"; + table [(int) StandardCharCode.threesuperior] = "\xb3"; + table [(int) StandardCharCode.acute] = "\xb4"; + table [(int) StandardCharCode.mu] = "\xb5"; + table [(int) StandardCharCode.paragraph] = "\xb6"; + table [(int) StandardCharCode.periodcentered] = "\xb7"; + table [(int) StandardCharCode.cedilla] = "\xb8"; + table [(int) StandardCharCode.onesuperior] = "\xb9"; + table [(int) StandardCharCode.ordmasculine] = "\xba"; + table [(int) StandardCharCode.guillemotright] = "\xbb"; + table [(int) StandardCharCode.onequarter] = "\xbc"; + table [(int) StandardCharCode.onehalf] = "\xbd"; + table [(int) StandardCharCode.threequarters] = "\xbe"; + table [(int) StandardCharCode.questiondown] = "\xbf"; + table [(int) StandardCharCode.Agrave] = "\xc0"; + table [(int) StandardCharCode.Aacute] = "\xc1"; + table [(int) StandardCharCode.Acircumflex] = "\xc2"; + table [(int) StandardCharCode.Atilde] = "\xc3"; + table [(int) StandardCharCode.Adieresis] = "\xc4"; + table [(int) StandardCharCode.Aring] = "\xc5"; + table [(int) StandardCharCode.AE] = "\xc6"; + table [(int) StandardCharCode.Ccedilla] = "\xc7"; + table [(int) StandardCharCode.Egrave] = "\xc8"; + table [(int) StandardCharCode.Eacute] = "\xc9"; + table [(int) StandardCharCode.Ecircumflex] = "\xca"; + table [(int) StandardCharCode.Edieresis] = "\xcb"; + table [(int) StandardCharCode.Igrave] = "\xcc"; + table [(int) StandardCharCode.Iacute] = "\xcd"; + table [(int) StandardCharCode.Icircumflex] = "\xce"; + table [(int) StandardCharCode.Idieresis] = "\xcf"; + table [(int) StandardCharCode.Eth] = "\xd0"; + table [(int) StandardCharCode.Ntilde] = "\xd1"; + table [(int) StandardCharCode.Ograve] = "\xd2"; + table [(int) StandardCharCode.Oacute] = "\xd3"; + table [(int) StandardCharCode.Ocircumflex] = "\xd4"; + table [(int) StandardCharCode.Otilde] = "\xd5"; + table [(int) StandardCharCode.Odieresis] = "\xd6"; + table [(int) StandardCharCode.multiply] = "\xd7"; + table [(int) StandardCharCode.Oslash] = "\xd8"; + table [(int) StandardCharCode.Ugrave] = "\xd9"; + table [(int) StandardCharCode.Uacute] = "\xda"; + table [(int) StandardCharCode.Ucircumflex] = "\xdb"; + table [(int) StandardCharCode.Udieresis] = "\xdc"; + table [(int) StandardCharCode.Yacute] = "\xdd"; + table [(int) StandardCharCode.Thorn] = "\xde"; + table [(int) StandardCharCode.germandbls] = "\xdf"; + table [(int) StandardCharCode.agrave] = "\xe0"; + table [(int) StandardCharCode.aacute] = "\xe1"; + table [(int) StandardCharCode.acircumflex] = "\xe2"; + table [(int) StandardCharCode.atilde] = "\xe3"; + table [(int) StandardCharCode.adieresis] = "\xe4"; + table [(int) StandardCharCode.aring] = "\xe5"; + table [(int) StandardCharCode.ae] = "\xe6"; + table [(int) StandardCharCode.ccedilla] = "\xe7"; + table [(int) StandardCharCode.egrave] = "\xe8"; + table [(int) StandardCharCode.eacute] = "\xe9"; + table [(int) StandardCharCode.ecircumflex] = "\xea"; + table [(int) StandardCharCode.edieresis] = "\xeb"; + table [(int) StandardCharCode.igrave] = "\xec"; + table [(int) StandardCharCode.iacute] = "\xed"; + table [(int) StandardCharCode.icircumflex] = "\xee"; + table [(int) StandardCharCode.idieresis] = "\xef"; + table [(int) StandardCharCode.eth] = "\xf0"; + table [(int) StandardCharCode.ntilde] = "\xf1"; + table [(int) StandardCharCode.ograve] = "\xf2"; + table [(int) StandardCharCode.oacute] = "\xf3"; + table [(int) StandardCharCode.ocircumflex] = "\xf4"; + table [(int) StandardCharCode.otilde] = "\xf5"; + table [(int) StandardCharCode.odieresis] = "\xf6"; + table [(int) StandardCharCode.divide] = "\xf7"; + table [(int) StandardCharCode.oslash] = "\xf8"; + table [(int) StandardCharCode.ugrave] = "\xf9"; + table [(int) StandardCharCode.uacute] = "\xfa"; + table [(int) StandardCharCode.ucircumflex] = "\xfb"; + table [(int) StandardCharCode.udieresis] = "\xfc"; + table [(int) StandardCharCode.yacute] = "\xfd"; + table [(int) StandardCharCode.thorn] = "\xfe"; + table [(int) StandardCharCode.ydieresis] = "\xff"; + + } + #endregion // Public Static Methods + } +} -- cgit v1.2.3