Make plugin work together with API version 68 of Geany (arround svn r 2696)
[geanylatex.git] / letters.c
blob72b9e448800aafee0f38650c46c051c9756c44ed
1 /*
2 * letters.h
4 * Copyright 2008 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19 * MA 02110-1301, USA.
22 #include <gtk/gtk.h>
23 #include "support.h"
24 #include "datatypes.h"
25 #include "letters.h"
27 enum
29 GREEK_LETTERS = 0,
30 GERMAN_LETTERS,
31 MISC_LETTERS,
32 ARROW_CHAR,
33 RELATIONAL_SIGNS,
34 BINARY_OPERATIONS,
35 LETTERS_END
38 CategoryName cat_names[] = {
39 { GREEK_LETTERS, N_("Greek letters"), TRUE},
40 { GERMAN_LETTERS, N_("German umlauts"), TRUE},
41 { MISC_LETTERS, N_("Misc"), FALSE},
42 { ARROW_CHAR, N_("Arrow characters"), FALSE},
43 { RELATIONAL_SIGNS, N_("Relational"), FALSE},
44 { BINARY_OPERATIONS, N_("Binary operation"), FALSE},
45 { 0, NULL, FALSE}
48 /* Entries need to be sorted by categorie (1st field) or some random
49 * features will occure.
50 * AAABBBCCC is valid
51 * AAACCCBBB is valid
52 * ACABCBACB is _not_ valid and will course trouble */
53 SubMenuTemplate char_array[] = {
54 // Greek characters
55 {GREEK_LETTERS, "Α", "\\Alpha" },
56 {GREEK_LETTERS, "α", "\\alpha" },
57 {GREEK_LETTERS, "Β", "\\Beta" },
58 {GREEK_LETTERS, "β", "\\beta" },
59 {GREEK_LETTERS, "Γ", "\\Gamma" },
60 {GREEK_LETTERS, "γ", "\\gamma" },
61 {GREEK_LETTERS, "Δ", "\\Delta" },
62 {GREEK_LETTERS, "δ", "\\Delta" },
63 {GREEK_LETTERS, "δ", "\\delta" },
64 {GREEK_LETTERS, "Ε", "\\Epsilon" },
65 {GREEK_LETTERS, "ε", "\\epsilon" },
66 {GREEK_LETTERS, "Ζ", "\\Zeta" },
67 {GREEK_LETTERS, "ζ", "\\zeta" },
68 {GREEK_LETTERS, "Η", "\\Eta" },
69 {GREEK_LETTERS, "η", "\\eta" },
70 {GREEK_LETTERS, "Θ", "\\Theta" },
71 {GREEK_LETTERS, "θ", "\\theta" },
72 {GREEK_LETTERS, "Ι", "\\Iota" },
73 {GREEK_LETTERS, "ι", "\\iota" },
74 {GREEK_LETTERS, "Κ", "\\Kappa" },
75 {GREEK_LETTERS, "κ", "\\kappa" },
76 {GREEK_LETTERS, "Λ", "\\Lambda" },
77 {GREEK_LETTERS, "λ", "\\lambda" },
78 {GREEK_LETTERS, "Μ", "\\Mu" },
79 {GREEK_LETTERS, "μ", "\\mu" },
80 {GREEK_LETTERS, "Ν", "\\Nu" },
81 {GREEK_LETTERS, "ν", "\\nu" },
82 {GREEK_LETTERS, "Ξ", "\\Xi" },
83 {GREEK_LETTERS, "ξ", "\\xi" },
84 {GREEK_LETTERS, "Ο", "\\Omicron" },
85 {GREEK_LETTERS, "ο", "\\omicron" },
86 {GREEK_LETTERS, "Π", "\\Pi" },
87 {GREEK_LETTERS, "π", "\\pi" },
88 {GREEK_LETTERS, "Ρ", "\\Rho" },
89 {GREEK_LETTERS, "ρ", "\\rho" },
90 {GREEK_LETTERS, "Σ", "\\Sigma" },
91 {GREEK_LETTERS, "ς", "\\sigmaf" },
92 {GREEK_LETTERS, "σ", "\\sigma" },
93 {GREEK_LETTERS, "Τ", "\\Tau" },
94 {GREEK_LETTERS, "τ", "\\tau" },
95 {GREEK_LETTERS, "Υ", "\\Upsilon" },
96 {GREEK_LETTERS, "υ", "\\upsilon" },
97 {GREEK_LETTERS, "Φ", "\\Phi" },
98 {GREEK_LETTERS, "φ", "\\phi" },
99 {GREEK_LETTERS, "Χ", "\\Chi" },
100 {GREEK_LETTERS, "χ", "\\chi" },
101 {GREEK_LETTERS, "Ψ", "\\Psi" },
102 {GREEK_LETTERS, "ψ", "\\psi" },
103 {GREEK_LETTERS, "Ω", "\\Omega" },
104 {GREEK_LETTERS, "ω", "\\omega" },
105 {GREEK_LETTERS, "ϑ", "\\thetasym" },
106 {GREEK_LETTERS, "ϒ", "\\upsih" },
107 {GREEK_LETTERS, "ϖ", "\\piv" },
109 // German Umlaute
110 {GERMAN_LETTERS, "ä","\"a"},
111 {GERMAN_LETTERS, "ü","\"u"},
112 {GERMAN_LETTERS, "ö","\"o"},
113 {GERMAN_LETTERS, "ß","\"s"},
115 //// Czech characters
116 //{"ě","\\v{e}"},
117 //{"š","\\v{s}"},
118 //{"č","\\v[c}"},
119 //{"ř","\\v{r}"},
120 //{"ž","\\v{z}"},
121 //{"ý",""},
122 //{"á",""},
123 //{"í",""},
124 //{"é",""},
125 //{"Ě","\\v{E}"},
126 //{"Š","\\v{S}"},
127 //{"Č","\\v{C}"},
128 //{"Ř","\\v{R}"},
129 //{"Ž","\\v{Z}"},
130 //{"Ý",""},
131 //{"Á",""},
132 //{"Í",""},
133 //{"É",""},
134 //// Misc
135 {MISC_LETTERS, "\\","\\backslash"},
136 {MISC_LETTERS, "€", "\\euro"},
137 {ARROW_CHAR, "←", "\\leftarrow" },
138 {ARROW_CHAR, "↑", "\\uparrow" },
139 {ARROW_CHAR, "→", "\\rightarrow" },
140 {ARROW_CHAR, "↓", "\\downarrow" },
141 {ARROW_CHAR, "↔", "\\leftrightarrow" },
142 {ARROW_CHAR, "⇐", "\\Leftarrow" },
143 {ARROW_CHAR, "⇑", "\\Uparrow" },
144 {ARROW_CHAR, "⇒", "\\Rightarrow" },
145 {ARROW_CHAR, "⇓", "\\Downarrow" },
146 {ARROW_CHAR, "⇔", "\\Leftrightarrow" },
147 {RELATIONAL_SIGNS, "\u2264", "\\leq"},
148 {RELATIONAL_SIGNS, "\u2265", "\\geq"},
149 {RELATIONAL_SIGNS, "\u220E", "\\qed"},
150 {RELATIONAL_SIGNS, "\u2261", "\\equiv"},
151 {RELATIONAL_SIGNS, "\u22A7", "\\models"},
152 {RELATIONAL_SIGNS, "\u227A", "\\prec"},
153 {RELATIONAL_SIGNS, "\u227B", "\\succ"},
154 {RELATIONAL_SIGNS, "\u223C", "\\sim"},
155 {RELATIONAL_SIGNS, "\u27C2", "\\perp"},
156 {RELATIONAL_SIGNS, "\u2AAF", "\\preceq"},
157 {RELATIONAL_SIGNS, "\u2AB0", "\\succeq"},
158 {RELATIONAL_SIGNS, "\u2243", "\\simeq"},
159 {RELATIONAL_SIGNS, "\u2223", "\\mid"},
160 {RELATIONAL_SIGNS, "\u226A", "\\ll"},
161 {RELATIONAL_SIGNS, "\u226B", "\\gg"},
162 {RELATIONAL_SIGNS, "\u224D", "\\asymp"},
163 {RELATIONAL_SIGNS, "\u2225", "\\parallel"},
164 {RELATIONAL_SIGNS, "\u2282", "\\subset"},
165 {RELATIONAL_SIGNS, "\u2283", "\\supset"},
166 {RELATIONAL_SIGNS, "\u2248", "\\approx"},
167 {RELATIONAL_SIGNS, "\u22C8", "\\bowtie"},
168 {RELATIONAL_SIGNS, "\u2286", "\\subseteq"},
169 {RELATIONAL_SIGNS, "\u2287", "\\supseteq"},
170 {RELATIONAL_SIGNS, "\u2245", "\\cong"},
171 {RELATIONAL_SIGNS, "\u2A1D", "\\Join"},
172 {RELATIONAL_SIGNS, "\u228F", "\\sqsubset"},
173 {RELATIONAL_SIGNS, "\u2290", "\\sqsupset"},
174 {RELATIONAL_SIGNS, "\u2260", "\\neq"},
175 {RELATIONAL_SIGNS, "\u2323", "\\smile"},
176 {RELATIONAL_SIGNS, "\u2291", "\\sqsubseteq"},
177 {RELATIONAL_SIGNS, "\u2292", "\\sqsupseteq"},
178 {RELATIONAL_SIGNS, "\u2250", "\\doteq"},
179 {RELATIONAL_SIGNS, "\u2322", "\\frown"},
180 {RELATIONAL_SIGNS, "\u2208", "\\in"},
181 {RELATIONAL_SIGNS, "\u220B", "\\ni"},
182 {RELATIONAL_SIGNS, "\u221D", "\\propto"},
183 {RELATIONAL_SIGNS, "\u22A2", "\\vdash"},
184 {RELATIONAL_SIGNS, "\u22A3", "\\dashv"},
185 {BINARY_OPERATIONS, "\u00B1", "\\pm"},
186 {BINARY_OPERATIONS, "\u2213", "\\mp"},
187 {BINARY_OPERATIONS, "\u00D7", "\\times"},
188 {BINARY_OPERATIONS, "\u00F7", "\\div"},
189 {BINARY_OPERATIONS, "\u2217", "\\ast"},
190 {BINARY_OPERATIONS, "\u22C6", "\\star"},
191 {BINARY_OPERATIONS, "\u2218", "\\circ"},
192 {BINARY_OPERATIONS, "\u2219", "\\bullet"},
193 {BINARY_OPERATIONS, "\u22C5", "\\cdot"},
194 {BINARY_OPERATIONS, "\u2229", "\\cap"},
195 {BINARY_OPERATIONS, "\u222A", "\\cup"},
196 {BINARY_OPERATIONS, "\u228E", "\\uplus"},
197 {BINARY_OPERATIONS, "\u2293", "\\sqcap"},
198 {BINARY_OPERATIONS, "\u2228", "\\vee"},
199 {BINARY_OPERATIONS, "\u2227", "\\wedge"},
200 {BINARY_OPERATIONS, "\u2216", "\\setminus"},
201 {BINARY_OPERATIONS, "\u2240", "\\wr"},
202 {BINARY_OPERATIONS, "\u22C4", "\\diamond"},
203 {BINARY_OPERATIONS, "\u25B3", "\\bigtriangleup"},
204 {BINARY_OPERATIONS, "\u25BD", "\\bigtriangledown"},
205 {BINARY_OPERATIONS, "\u25C1", "\\triangleleft"},
206 {BINARY_OPERATIONS, "\u25B7", "\\triangleright"},
207 {BINARY_OPERATIONS, "", "\\lhd"},
208 {BINARY_OPERATIONS, "", "\\rhd"},
209 {BINARY_OPERATIONS, "", "\\unlhd"},
210 {BINARY_OPERATIONS, "", "\\unrhd"},
211 {BINARY_OPERATIONS, "\u2295", "\\oplus"},
212 {BINARY_OPERATIONS, "\u2296", "\\ominus"},
213 {BINARY_OPERATIONS, "\u2297", "\\otimes"},
214 {BINARY_OPERATIONS, "\u2205", "\\oslash"},
215 {BINARY_OPERATIONS, "\u2299", "\\odot"},
216 {BINARY_OPERATIONS, "\u25CB", "\\bigcirc"},
217 {BINARY_OPERATIONS, "\u2020", "\\dagger"},
218 {BINARY_OPERATIONS, "\u2021", "\\ddagger"},
219 {BINARY_OPERATIONS, "\u2A3F", "\\amalg"},
220 {0, NULL, NULL},