-
Notifications
You must be signed in to change notification settings - Fork 2
/
htext.h
1438 lines (1427 loc) · 56 KB
/
htext.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/*
* Copyright 2008 Department of Mathematical Sciences, New Mexico State University
*
* 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
* DEPARTMENT OF MATHEMATICAL SCIENCES OR NEW MEXICO STATE UNIVERSITY 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.
*/
static gchar *about_text = ""
"<help>"
"<center><b>GBDFEditor 1.6</b>\n"
"mleisher@gmail.com\n"
"15 April 2010</center>\n"
"\n"
"GBDFEditor is a BDF font editor that supports "
"these main features:\n"
"\n"
"<bullet> Multiple fonts can be loaded from the command line.</bullet>\n"
"<bullet> Multiple fonts can be open at the same time.</bullet>\n"
"<bullet> Cutting and pasting glyphs between fonts.</bullet>\n"
"<bullet> Multiple glyph bitmap editors can be open at the same time.</bullet>\n"
"<bullet> Cutting and pasting between glyph bitmap editors.</bullet>\n"
"<bullet> Automatic correction of certain metrics when a font is loaded.</bullet>\n"
"<bullet> Generation of XLFD font names for fonts without XLFD names.</bullet>\n"
"<bullet> Update an XLFD font name from the font properties.</bullet>\n"
"<bullet> Update the font properties from an XLFD font name.</bullet>\n"
"<bullet> Font property editor.</bullet>\n"
"<bullet> Font comment editor.</bullet>\n"
"<bullet> Supports unencoded glyphs (ENCODING of -1).</bullet>\n"
"<bullet> Display of glyph encodings in octal, decimal, or hex.</bullet>\n"
"<bullet> Builtin on-line help.</bullet>\n"
"<bullet> Imports PK/GF fonts.</bullet>\n"
"<bullet> Imports HBF (Han Bitmap Font) fonts.</bullet>\n"
"<bullet> Imports Linux console fonts (PSF, CP, and FNT).</bullet>\n"
"<bullet> Imports Sun console fonts (vfont format).</bullet>\n"
"<bullet> Imports fonts from the X server.</bullet>\n"
"<bullet> Imports Windows FON/FNT fonts.</bullet>\n"
"<bullet> Imports OpenType fonts and collections.</bullet>\n"
"<bullet> Exports Linux console PSF2 fonts.</bullet>\n"
"<bullet> Exports HEX fonts (http://czyborra.com/unifont).</bullet>\n"
"<bullet> Edits gray scale fonts with 2, 4 or 8 bits per pixel.</bullet>\n"
"\n"
"GBDFEditor was designed to use GTK+ 2.6 or later.\n"
"</help>";
static gchar *program_text = "<help>"
"By default, gbdfed automatically collects "
"comments that are saved with the font, it "
"preserves the unencoded glyphs, and it will "
"attempt to make some metrics corrections "
"automatically. These options can be set on the "
"command line.\n"
"\n"
"More than one font can be specified on the command "
"line.\n"
"\n"
"The command line parameters for gbdfed are:\n"
"\n"
"<param>-nc</param>\t\tno comments\n"
"<param>-nm</param>\t\tno metrics corrections\n"
"<param>-nu</param>\t\tno unencoded glyphs\n"
"<param>-np</param>\t\tdo not pad character cell bitmaps\n"
"<param>-bp</param>\t\tallow blank pages\n"
"<param>-ed</param>\t\tno <b>Really Exit?</b> dialog\n"
"<param>-ps</param> <i>n</i>\t\tset point size\n"
"<param>-hres</param> <i>n</i>\tset horizontal resolution\n"
"<param>-vres</param> <i>n</i>\tset vertical resolution\n"
"<param>-res</param> <i>n</i>\tset both resolutions\n"
"<param>-sp</param> <i>s</i>\t\tset the font spacing (<b>p</b>roportional, <b>m</b>onowidth, <b>c</b>haractercell)\n"
"<param>-bpp</param> <i>n</i>\tset the font bits per pixel (<b>1</b>, <b>2</b>, <b>4</b>, <b>8</b>)\n"
"<param>-eol</param> <i>e</i>\tset the default end of line char(s) (<b>u</b>nix, <b>d</b>os, <b>m</b>ac)\n"
"<param>-g</param> <i>code</i>\tset the initial glyph code to be displayed at startup(can be decimal, hex, or octal)\n"
"<param>-cb</param> <i>base</i>\tset the code base for glyph codes (<b>oct</b>, <b>dec</b>, <b>hex</b>)\n"
"</help>";
static gchar *fgrid_text = "<help>"
"<center><b>Font Grid</b></center>\n"
"\n"
"The main window of each font editor is called the "
"Font Grid. All of the Font Grids have a special "
"clipboard used for passing glyphs around. This "
"clipboard is called <b>FONTGRID_CLIPBOARD</b>.\n"
"\n"
"At the top of each editor window there are some "
"fields and buttons. These are:\n"
"\n"
"<margin>The <b>Font</b> text field is where the font name "
"is set so it can be edited.</margin>\n"
"\n"
"<margin>The <b>Glyph</b> field is a label that provides "
"some information about glyph name, encoding, and "
"metrics when a glyph is selected. When a range "
"of glyphs are selected, this field displays the "
"start and end codes of the range.</margin>\n"
"\n"
"<margin>The push buttons are used to navigate through the "
"glyph pages. The <b>Previous Page</b> and <b>Next Page</b> "
"buttons normally skip glyph pages that are empty, "
"but that can be changed using the <b>Setup</b> dialog.</margin>\n"
"\n"
"<margin>The <b>Page</b> field indicates the current glyph page "
"and also allows a specific page number to be entered. "
"Once a page number is entered, pressing the Return "
"key will cause the Font Grid to shift to that page. "
"The page number entered is expected to be a decimal "
"number.</margin>\n"
"\n"
"<margin>The <b>Code</b> field is provided for situations where "
"the page number is not known, but the encoding is "
"known. The encoding entered in this field must be "
"in the base (8, 10, or 16) that is currently being "
"used to display glyph encodings (see the \"View\" "
"menu below). Once the encoding is entered, pressing "
"the Return key will cause the Font Grid to shift to "
"the page containing the encoding.</margin>\n"
"\n"
"When a glyph has been modified either by the user or "
"by automatic metrics corrections when the font is loaded, "
"the glyph code above the glyph cell will be highlighted.\n"
"\n"
"<bul>Font Grid Menus</bul>\n"
"\n"
"<b>File</b>\n"
"<margin1>New <Ctrl+N></margin1> "
"<margin2>This creates a new font and asks for the point "
"size, resolution, and font spacing first.</margin2>\n"
"\n"
"<margin1>Open <Ctrl+O></margin1> "
"<margin2>This opens a new font in the current Font Grid.</margin2>\n"
"\n"
"<margin1>Save <Ctrl+S></margin1> "
"<margin2>Save the current font.</margin2>\n"
"\n"
"<margin1>Save As <Ctrl+W></margin1> "
"<margin2>Save the current font with some other name.</margin2>\n"
"\n"
"<margin1.5>Import</margin1.5>\n"
"\n"
"<margin2>PK/GF Font <Ctrl+K></margin2> "
"<margin3>Import a Metafont PK or GF font.</margin3>\n"
"\n"
"<margin2>Console Font <Ctrl+L></margin2> "
"<margin3>Import a Linux or Sun console (binary) font. "
"If the font is a CP (Linux codepage) font, this "
"will load all three point sizes of the font, "
"display the 16pt font and create editors for the "
"14pt and 8pt fonts. If the font is a PSF1 or PSF2 "
"font, the embedded mapping table is loaded as well.</margin3>\n"
"\n"
"<margin2>HBF Font <Ctrl+H></margin2> "
"<margin3>Import an HBF font. Only available if "
"gbdfed was compiled with HBF support.</margin3>\n"
"\n"
"<margin2>Windows Font <Ctrl+B></margin2> "
"<margin3>Import a Windows FON/FNT font. This will also "
"import fonts from .EXE and .DLL files.</margin3>\n"
"\n"
"<margin2>OpenType Font <Ctrl+Y></margin2> "
"<margin3>Import an OpenType (.otf), TrueType font (.ttf) or "
"TrueType collection (.ttc).</margin3>\n"
"\n"
"<margin2>Server Font <Ctrl+G></margin2> "
"<margin3>This will import a font from the X server.</margin3>\n"
"\n"
"<margin1.5>Export</margin1.5>\n"
"\n"
"<margin2>PSF <Ctrl+F></margin2> "
"<margin3>This will export the current BDF font or the current selection "
"of glyphs to a PSF2 font.</margin3>\n"
"\n"
"<margin3>During the export, an option menu will let you select whether you "
"want to:</margin3>\n"
"\n"
"<margin3>A. Export the font with its Unicode mappings.</margin3> "
" "
"<margin3>B. Export just the glyphs.</margin3>\n"
"\n"
"<margin3>C. Export just the Unicode mappings in the simple "
"ASCII form used by the psfaddtable(1) program.</margin3>\n"
"\n"
"<margin3>Only the first 512 glyphs will be exported from "
"the font.</margin3>\n"
"\n"
"<margin2>HEX</margin2> "
"<margin3>This will export the current BDF font into the "
"HEX format (See the <b>HEX Font Notes</b> entry).</margin3>\n"
"\n"
"<margin1>Exit/Close <Ctrl+F4></margin1> "
"<margin2>Exit the program if this is the primary Font "
"Grid or simply hide the current Font Grid window.</margin2>\n"
"\n"
"<margin2>The key binding for this can be changed in the "
"configuration file. See the <b>Configuration File</b> "
"help section.</margin2>\n"
"\n"
"<b>Edit</b>\n"
"<margin1>Copy <Ctrl+C></margin1> "
"<margin2>This copies the current selection to the Font "
"Grid clipboard.</margin2>\n"
"\n"
"<margin1>Cut <Ctrl+X></margin1> "
"<margin2>This copies the current selection to the Font Grid "
"clipboard and then deletes the selection.</margin2>\n"
"\n"
"<margin1>Paste <Ctrl+V></margin1> "
"<margin2>This replaces the glyphs starting at the currently "
"selected position with the Font Grid clipboard.</margin2>\n"
"\n"
"<margin1>Overlay <Ctrl+Shift+V></margin1> "
"<margin2>This merges the Font Grid clipboard with the glyphs "
"starting at the currently selected position. "
"The names of the modified glyphs are not changed.</margin2>\n"
"\n"
"<margin1>Insert <Ctrl+Meta+V></margin1> "
"<margin2>This inserts the Font Grid cliboard in front of the "
"currently selected position.</margin2>\n"
"\n"
"<margin1>Properties <Ctrl+P></margin1> "
"<margin2>This invokes the font property editor.</margin2>\n"
"\n"
"<margin1>Comments <Ctrl+M></margin1> "
"<margin2>This invokes the font comments editor.</margin2>\n"
"\n"
"<margin1>Font Info <Ctrl+I></margin1> "
"<margin2>This invokes a dialog that allows changes "
"to some of the font information so these "
"values do not have to be changed using the "
"property editor. These values include the "
"default character, font device width (for "
"monowidth and character cell fonts), font "
"ascent and descent, font vertical and "
"horizontal resolution, and the font spacing.</margin2>\n"
"\n"
"<margin1.5>Font Name</margin1.5>\n"
"\n"
"<margin2>Make XLFD Name</margin2> "
"<margin3>If the font does not have an XLFD name, this "
"will save the current font name in the "
"<b>_ORIGINAL_FONT_NAME</b> font property and then "
"generate an XLFD name for the font.</margin3>\n"
"\n"
"<margin2>Update Name From Properties</margin2> "
"<margin3>This will update the XLFD font name fields from"
"the font property list.</margin3>\n"
"\n"
"<margin2>Update Properties From Name</margin2> "
"<margin3>This will update the font properties from the "
"XLFD font name.</margin3>\n"
"\n"
"<margin2>Update Average Width</margin2> "
"<margin3>This will update the average width field of the "
"XLFD font name and will update the "
"<b>AVERAGE_WIDTH</b> font property as a side effect.</margin3>\n"
"\n"
"<margin1.5>Rename Glyphs</margin1.5>\n"
"<margin2>Unicode Names</margin2> "
"<margin3>This option will rename all the glyphs using names "
"from a Unicode Character Database file set in the "
"config file or from the <b>Setup->Other Options</b> "
"dialog.</margin3>\n"
"\n"
"<margin2>Unicode Values</margin2> "
"<margin3>This option will rename all the glyphs with 16-bit "
"hexadecimal values prefixed with <b>0x</b>, <b>U+</b>, or <b>\\u</b>.</margin3>\n"
"\n"
"<margin1>Test Glyphs <Ctrl+Z></margin1> "
"<margin2>This will toggle the glyph test dialog on or off for "
"the editor. When this is active, clicking on a glyph "
"in any Font Grid will also add it to the glyph test "
"dialog. When changes are made to a glyph or the font "
"bounding box, the glyph test dialog will be updated "
"accordingly.</margin2>\n"
"\n"
"<margin2>The glyph test dialog provides a toggle to turn the "
"baseline on or off and another toggle to draw from right "
"to left instead of left to right.</margin2>\n"
"\n"
"<margin1>Preferences <Ctrl+T></margin1> "
"<margin2>This will invoke the dialog to edit various preferences"
"used by the editor and when loading/creating fonts.</margin2>\n"
"\n"
"<b>View</b>\n"
"<margin1>Unencoded <Ctrl+E></margin1> "
"<margin2>If the font has unencoded glyphs (<b>ENCODING</b> "
"field is -1), this will toggle between "
"displaying the unencoded and encoded glyphs.</margin2>\n"
"\n"
"<margin1.5>Code Base</margin1.5>\n"
"<margin2>Octal</margin2> "
"<margin3>This option will display glyph encodings in "
"octal (base 8).</margin3>\n"
"\n"
"<margin2>Decimal</margin2> "
"<margin3>This option will display glyph encodings in "
"decimal (base 10).</margin3>\n"
"\n"
"<margin2>Hexadecimal</margin2> "
"<margin3>This option will display glyph encodings in "
"hexadecimal (base 16).</margin3>\n"
"\n"
"<margin1>Other Page <Ctrl+Shift+S></margin1> "
"<margin2>This will toggle between the current glyph page "
"and the last page that was viewed.</margin2>\n"
"\n"
"<margin1>Vertical/Horizontal View <Ctrl+Q></margin1> "
"<margin2>This will toggle the FontGrid between showing the "
"glyphs horizontally (default) or vertically.</margin2>\n"
"\n"
"<margin1>Messages <Ctrl+A></margin1> "
"<margin2>This will show messages generated when corrections "
"to the font metrics are done or when errors are "
"encountered.</margin2>\n"
"\n"
"<b>Operations</b>\n"
"<margin1>Translate <Ctrl+D></margin1> "
"<margin2>This will bring up the dialog for entering the X "
"offset and Y offset used to translate the glyph to "
"a new location.</margin2>\n"
"\n"
"<margin2>The option of translating the selected glyphs or all "
"of the glyphs is provided.</margin2>\n"
"\n"
"<margin1>Rotate <Ctrl+R></margin1> "
"<margin2>This will bring up the dialog for entering the "
"rotation angle. The rotation is limited to between "
"± 1° and 359°.</margin2>\n"
"\n"
"<margin2>The option of rotating the selected glyphs or all "
"of the glyphs is provided.</margin2>\n"
"\n"
"<margin1>Shear <Ctrl+J></margin1> "
"<margin2>This will bring up the dialog for entering the "
"angle of the shear. The shear is limited to between "
"± 1° and 45°.</margin2>\n"
"\n"
"<margin2>The option of rotating the selected glyphs or all "
"of the glyphs is provided.</margin2>\n"
"\n"
"<margin1>Embolden <Ctrl+Shift+B></margin1> "
"<margin2>This will bring up the dialog for choosing whether "
"to embolden the selected glyphs or to embolden all "
"glyphs.</margin2>\n"
"\n"
"<margin2>To <bi>embolden</bi> means to make bold.</margin2> "
"\n\n"
"<b>Windows</b> "
"\n"
"<margin1>[editor list]</margin1> "
"<margin2>The remaining menu items are all the Font "
"Grids that have been created. Choosing one "
"will force that window to be made visible and "
"moved to the top.</margin2>\n"
"\n"
"<bul>Font Grid Translations</bul>\n"
"<margin>0..9</margin> "
"<margin1>Typing digits will accumulate a count which is "
"applied to movement done with the arrow and page keys.</margin1>\n"
"\n"
"<margin>Left</margin> "
"<margin1>This will move the single cell selection left.</margin1>\n"
"<margin1>If a decimal number is typed before this, this "
"operation will be done that number of times.</margin1>\n"
"\n"
"<margin>Right</margin> "
"<margin1>This will move the single cell selection right.</margin1>\n"
"<margin1>If a decimal number is typed before this, this "
"operation will be done that number of times.</margin1>\n"
"\n"
"<margin>Up</margin> "
"<margin1>This will move the single cell selection up.</margin1>\n"
"<margin1>If a decimal number is typed before this, this "
"operation will be done that number of times.</margin1>\n"
"\n"
"<margin>Down</margin> "
"<margin1>This will move the single cell selection down.</margin1>\n"
"<margin1>If a decimal number is typed before this, this "
"operation will be done that number of times.</margin1>\n"
"\n"
"<margin>Shift+Left</margin> "
"<margin1>This will extend the selection to the left.</margin1>\n"
"<margin1>If a decimal number is typed before this, this "
"operation will be done that number of times.</margin1>\n"
"\n"
"<margin>Shift+Right</margin> "
"<margin1>This will extend the selection to the right.</margin1>\n"
"<margin1>If a decimal number is typed before this, this "
"operation will be done that number of times.</margin1>\n"
"\n"
"<margin>Shift+Up</margin> "
"<margin1>This will extend the selection up a row or column, "
"depending on the display orientation, horizontal or "
"vertical.</margin1>\n"
"<margin1>If a decimal number is typed before this, this "
"operation will be done that number of times.</margin1>\n"
"\n"
"<margin>Shift+Down</margin> "
"<margin1>This will extend the selection down a row or column, "
"depending on the display orientation, horizontal or "
"vertical.</margin1>\n"
"<margin1>If a decimal number is typed before this, this "
"operation will be done that number of times.</margin1>\n"
"\n"
"<margin>PageUp</margin> "
"<margin1>This will switch to the next page of glyphs.</margin1>\n"
"<margin1>If a decimal number is typed before this, this "
"operation will be done that number of times.</margin1>\n"
"\n"
"<margin>PageDown</margin> "
"<margin1>This will switch to the previous page of glyphs.</margin1>\n"
"<margin1>If a decimal number is typed before this, this "
"operation will be done that number of times.</margin1>\n"
"\n"
"<margin>Home</margin> "
"<margin1>This will switch to the first page of glyphs.</margin1>\n"
"<margin1>If a decimal number is typed before this, this "
"operation will be done that number of times.</margin1>\n"
"\n"
"<margin>End</margin> "
"<margin1>This will switch to the last page of glyphs.</margin1>\n"
"<margin1>If a decimal number is typed before this, this "
"operation will be done that number of times.</margin1>\n"
"\n"
"<margin>Shift+PageUp</margin> "
"<margin1>This will extend the selection to the next page.</margin1>\n"
"<margin1>If a decimal number is typed before this, this "
"operation will be done that number of times.</margin1>\n"
"\n"
"<margin>Shift+PageDown</margin> "
"<margin1>This will extend the selection to the previous page.</margin1>\n"
"<margin1>If a decimal number is typed before this, this "
"operation will be done that number of times.</margin1>\n"
"\n"
"<margin>Shift+Home</margin> "
"<margin1>This will extend the selection to the first page that "
"has glyphs.</margin1>\n"
"<margin1>If a decimal number is typed before this, this "
"operation will be done that number of times.</margin1>\n"
"\n"
"<margin>Shift+End</margin> "
"<margin1>This will extend the selection to the last page that "
"has glyphs.</margin1>\n"
"<margin1>If a decimal number is typed before this, this "
"operation will be done that number of times.</margin1>\n"
"\n"
"<margin>Button1Down</margin> "
"<margin1>This will start selecting glyphs. If Button1 is "
"double-clicked, it will edit the current glyph.</margin1>\n"
"\n"
"<margin>Button1Motion</margin> "
"<margin1>This will extend the selected glyphs.</margin1>\n"
"\n"
"<margin>Button1Up</margin> "
"<margin1>This will end glyph selection.</margin1>\n"
"\n"
"<margin>Shift+Button1Down</margin> "
"<margin1>This will adjust the glyphs already selected by "
"adding or removing glyphs from the selection.</margin1>\n"
"\n"
"<margin>Button2Down</margin> "
"<margin1>This will paste the glyphs on the Font Grid "
"clipboard at the glyph position under the mouse. "
"If the paste is done in the unencoded glyph area, "
"the glyphs will simply be appended to the end. "
"The unencoded glyph area is simply a container "
"for unused glyphs.</margin1>\n"
"\n"
"<margin>Shift+Button2Down</margin> "
"<margin1>This will insert the glyphs on the Font Grid "
"clipboard in front of the glyphs starting at the "
"position under the mouse. Any glyphs moved past "
"the 0xffff encoding will be moved to the unencoded "
"area so they are not lost. This action will always "
"insert, no matter what mode the font grid is in.</margin1>\n"
"\n"
"<margin>Ctrl+Button2Down</margin> "
"<margin1>This will merge (overlay) the glyphs being pasted with "
"the glyphs that are in the range of the glyphs being pasted. "
"If a merge is done in the unencoded glyph area, the glyphs "
"will simply be appended and not merged (overlayed).</margin1>\n"
"\n"
"<margin>Button3Down</margin> "
"<margin1>This will copy the selected glyphs to the Font "
"Grid clipboard.</margin1>\n"
"\n"
"<margin>Return</margin> "
"<margin1>This will invoke a Glypheditor for the current glyph.</margin1>\n"
"\n"
"<margin>Ctrl+Return</margin> "
"<margin1>This will cause the end selection callback to be called. "
"The effect in the gbdfed program is to send the glyph "
"to the glyph test dialog if it is open.</margin1>\n"
"\n"
"<margin>Copy</margin> "
"<margin1>This will copy the selected glyphs to the Font "
"Grid clipboard.</margin1>\n"
"\n"
"<margin>Cut</margin> "
"<margin1>This will copy the selected glyphs to the Font "
"Grid clipboard and then delete the glyphs.</margin1>\n"
"\n"
"<margin>Paste</margin> "
"<margin1>This will paste the glyphs on the Font Grid "
"clipboard at the currently selected glyph "
"position.</margin1>\n"
"\n"
"<margin>Delete</margin> "
"<margin1>This will copy the selected glyphs to the Font "
"Grid clipboard and then delete the glyphs.</margin1>\n"
"\n"
"<margin>BackSpace</margin> "
"<margin1>This will copy the selected glyphs to the Font "
"Grid clipboard and then delete the glyphs.</margin1>\n"
"\n"
"<margin>Double clicking with Button1 will invoke the Glyph "
"Editor for the current glyph.</margin>\n"
"\n"
"<b>Other Font Grid Features</b>\n"
"<margin>The font name can be edited in the Font Grid and "
"page switching can be done with the buttons on the "
"Font Grid.</margin>\n"
"</help>";
static gchar *gedit_text = "<help>"
"The Glyph Editor provides a simple bitmap editor "
"designed to edit glyph bitmaps and other glyph "
"information. The Glyph Editors all use a special "
"clipboard used to pass bitmaps between the Glyph "
"Editors. This clipboard is called "
"<b>GLYPHEDIT_CLIPBOARD.</b>\n"
"\n"
"The only limit on the number of Glyph Editors that "
"can be open at one time is the amount of memory.\n"
"\n"
"<bul>Glyph Editor Menus</bul>\n"
"\n"
"<b>File</b>\n"
"<margin1>Update <Ctrl+S></margin1> "
"<margin2>This will update the Font Grid with the "
"modified glyph.</margin2>\n"
"<margin1>To the right of the Glyph Name field is a "
"button that will do this.</margin1>\n"
"\n"
"<margin1>Update and Next <Ctrl+U></margin1> "
"<margin2>This will update the FontGrid with the "
"modified glyph and move to the next glyph.</margin2>\n"
"\n"
"<margin1>Update and Previous <Ctrl+B></margin1> "
"<margin2>This will update the FontGrid with the "
"modified glyph and move to the previous glyph.</margin2>\n"
"\n"
"<margin1>Close <Ctrl+F4></margin1> "
"<margin2>This will close the Glyph Editor.</margin2>\n"
"\n"
"<b>Edit</b>\n"
"<margin1>Reload <Ctrl+L></margin1> "
"<margin2>This will reload the glyph and discard any "
"changes in the glyph.</margin2>\n"
"\n"
"<margin1>Copy <Ctrl+C></margin1> "
"<margin2>This will copy the currently selected portion "
"of the bitmap to the Glyph Editor clipboard.</margin2>\n"
"\n"
"<margin1>Cut <Ctrl+X></margin1> "
"<margin2>This will copy the currently selected portion "
"of the bitmap to the Glyph Editor clipboard "
"and then delete the selection.</margin2>\n"
"\n"
"<margin1>Paste <Ctrl+V></margin1> "
"<margin2>This will paste the Glyph Editor clipboard "
"into the current Glyph Editor with the "
"top-left coordinate of the bitmap on the "
"clipboard pasted at the location of the mouse. "
"If the bitmap is too big to fit if it is "
"pasted at the mouse location, the bitmap will "
"be shifted until it fits completely in the "
"Glyph Editor.</margin2>\n"
"\n"
"<margin1>Select All <Ctrl+A></margin1> "
"<margin2>This will select the whole glyph bitmap.</margin2>\n"
"\n"
"<margin1>Next Glyph <Ctrl+N></margin1> "
"<margin2>This will move the Glyph Editor to the next "
"glyph position in the Font Grid. If the "
"current glyph has been modified, a save prompt "
"will appear before moving to the next glyph.</margin2>\n"
"<margin1>To the right of the Glyph Name field is a "
"button that will do this.</margin1>\n"
"\n"
"<margin1>Previous Glyph <Ctrl+P></margin1> "
"<margin2>This will move the Glyph Editor to the previous "
"glyph position in the Font Grid. If the "
"current glyph has been modified, a save prompt "
"will appear before moving to the previous glyph.</margin2>\n"
"<margin1>To the right of the Glyph Name field is a "
"button that will do this.</margin1>\n"
"\n"
"<margin2>If you do not close this editor, it will be updated "
"with Unicode mappings if you move to the next or "
"previous glyph.</margin2>\n"
"\n"
"<b>Operation</b>\n"
"<margin1>Draw <Ctrl+D></margin1> "
"<margin2>Change the Glyph Editor into Draw mode.</margin2>\n"
"\n"
"<margin1>Move <Ctrl+M></margin1> "
"<margin2>Change the Glyph Editor into Move mode. Move "
"mode allows selecting a portion of the glyph "
"bitmap and moving it to another location.</margin2>\n"
"\n"
"<margin1>Copy <Ctrl+Y></margin1> "
"<margin2>Change the Glyph Editor into Copy mode. Copy "
"mode allows copying a portion of the glyph "
"bitmap and moving it to another location.</margin2>\n"
"\n"
"<margin1>Rotate <Ctrl+T></margin1> "
"<margin2>This will invoke the rotation dialog that "
"allows the degrees of rotation to be specified. "
"Rotation can be between 1 and 359 degrees.</margin2>\n"
"\n"
"<margin1>Shear <Ctrl+E></margin1> "
"<margin2>This will invoke the shear dialog that allows "
"the degrees of horizontal shear to be specified. "
"Other names for shearing are obliquing or slanting. "
"Shearing is allowed between 1 and 45 degrees.</margin2>\n"
"\n"
"<margin1>Embolden <Ctrl+H></margin1> "
"<margin2>This will embolden the current glyph in a simple "
"way within the width of the glyph.</margin2>\n"
"\n"
"<margin1>Resize BBX <Ctrl+R></margin1> "
"<margin2>This will allow changing the sizes of the "
"glyph bounding box including the left/right "
"bearings and the glyph ascent/descent. If "
"this change causes the glyph bounding box to "
"be larger than the font bounding box, the "
"font bounding box will be resized when the "
"glyph is saved next.</margin2>\n"
"\n"
"<margin1>Edit PSF Unicode Mappings <Ctrl+F></margin1> "
"<margin2>This will show a list of Unicode mappings "
"associated with the glyph. The list can be edited "
"and once the Apply button has been pressed, the "
"the changes will be applied to the glyph in the "
"font proper.</margin2>\n"
"\n"
"<bul>Glyph Editor Translations</bul>\n"
"\n"
"<margin>ButtonDown</margin> "
"<margin1>Depending on the operation of the Glyph Editor, this "
"will start drawing, start selecting for a Move "
"or start selecting for a Copy. When in Draw "
"mode, Button1 will set pixels, Button2 will "
"invert pixels, and Button3 will clear pixels.</margin1>\n"
"\n"
"<margin1>When in Move or Copy mode and a selection "
"exists, pressing Button1 within the selection "
"will \"grab\" the selection so it can be Moved or "
"Copied. Pressing Button3 after a selection has "
"been made will copy the selection to the Glyph Editor "
"clipboard.</margin1>\n"
"\n"
"<margin>Shift+Button2Down</margin> "
"<margin1>This will paste the contents of the Glyph Editor "
"clipboard into the Glypheditor at the location "
"of the mouse.</margin1>\n"
"\n"
"<margin>Motion</margin> "
"<margin1>This will continue the operation started with "
"<b>ButtonDown</b> as well as report the current mouse "
"coordinates in Cartesian form relative to the "
"bounding box for the glyph.</margin1>\n"
"\n"
"<margin>ButtonUp</margin> "
"<margin1>This will end the operation started with "
"<b>ButtonDown</b>.</margin1>\n"
"\n"
"<margin>Copy</margin> "
"<margin1>This will copy the selected bitmap to the Glyph "
"Editor clipboard.</margin1>\n"
"\n"
"<margin>Cut</margin> "
"<margin1>This will copy the selected bitmap to the Glyph "
"Editor clipboard and then delete it.</margin1>\n"
"\n"
"<margin>Paste</margin> "
"<margin1>This will paste the Glyph Editor clipboard at "
"the mouse position.</margin1>\n"
"\n"
"<margin>Right</margin> "
"<margin1>This will shift the glyph bitmap toward (but not "
"past) the right edge of the bitmap grid.</margin1>\n"
"\n"
"<margin>Left</margin> "
"<margin1>This will shift the glyph bitmap toward (but not "
"past) the left edge of the bitmap grid.</margin1>\n"
"\n"
"<margin>Up</margin> "
"<margin1>This will shift the glyph bitmap toward (but not "
"past) the top edge of the bitmap grid.</margin1>\n"
"\n"
"<margin>Down</margin> "
"<margin1>This will shift the glyph bitmap toward (but not "
"past) the bottom edge of the bitmap grid.</margin1>\n"
"\n"
"<margin>9</margin> "
"<margin1>This will rotate the glyph bitmap 90° "
"counter-clockwise.</margin1>\n"
"\n"
"<margin>0</margin> "
"<margin1>This will rotate the glyph bitmap 90° "
"clockwise.</margin1>\n"
"\n"
"<margin>-</margin> "
"<margin1>This will flip the glyph bitmap around the "
"vertical axis (horizontal flip).</margin1>\n"
"\n"
"<margin>=</margin> "
"<margin1>This will flip the glyph bitmap around the "
"horizontal axis (vertical flip).</margin1>\n"
"\n"
"<margin>comma, Z, or z</margin> "
"<margin1>This will select the previous color or "
"cycle back to the last color.</margin1>\n"
"\n"
"<margin>period, X, or x</margin> "
"<margin1>This will select the next color or cycle "
"to the first color.</margin1>\n"
"\n"
"<bul>Other Metrics Features</bul>\n"
"\n"
"If the font defines the X height and the Cap height, "
"these can be displayed in the Glypheditors by turning "
"them on or off individually from the "
"<b>Preferences->Editing Options</b> tab. The size of the "
"pixel used in the Glypheditor can also be set here. These "
"values affect all Glypheditors.\n"
"\n"
"<bul>Other Glyph Editor Features</bul>\n"
"\n"
"In addition to editing the glyph bitmap, the glyph "
"editor also allows editing of the glyph name and "
"setting its device width (BDF <b>DWIDTH</b> field). To "
"get more aesthetic spacing between glyphs, this "
"value can be set explicitly. The glyph name "
"should be a maximum of 14 characters.\n"
"\n"
"The Glypheditor also provides a simple toolbox "
"that has buttons to switch between operations and to "
"perform various bitmap manipulations.\n"
"\n"
"Pressing one of the shift buttons in the toolbox "
"will repeat the shift operation if the mouse button "
"is held down longer than 100 milliseconds. This is "
"not configurable at the moment.\n"
"\n"
"If the font uses 2, 4, or 8 bits per pixel, a strip "
"of colors will be presented down the left side of "
"the toolbox. These colors can be selected with the "
"mouse or can be chosen using the keys mentioned "
"above in the Glypheditor translations. At the moment "
"the Glypheditor must have the focus for the keys to "
"work.</help>";
static gchar *conf_text = "<help>"
"gbdfed can be configured using an external\n"
"file. This file is always assumed to be in the\n"
"home directory and is called <b>.gbdfedrc</b>.\n"
"\n"
"This file sets default values which can be changed\n"
"and saved from the editor. The default values\n"
"apply to either the editor itself or the font\n"
"management system.\n"
"\n"
"For the configuration options, the following types\n"
"are used:\n"
"\n"
"<margin><boolean></margin>\n"
"<margin1>A <boolean> value can be \"0\", \"false\", \"no\", "
"\"1\", \"true\", or \"yes\". Boolean values are "
"case insensitive.</margin1>\n"
"\n"
"<margin><labelstring></margin>\n"
"<margin1>A <labelstring> value is a string used as a label "
"for some of the options.</margin1>\n"
"\n"
"<margin><atom></margin>\n"
"<margin1>An <atom> is basically a string.</margin1>\n"
"\n"
"<margin><cardinal></margin>\n"
"<margin1>A <cardinal> value is an unsigned 32-bit "
"integer value.</margin1>\n"
"\n"
"<margin><integer></margin>\n"
"<margin1>An <integer> is a signed 32-bit integer "
"value.</margin1>\n"
"\n"
"<margin><property-name></margin>\n"
"<margin1>A <property-name> is any name that conforms to "
"the XLFD definition of a user-defined "
"property. Basically, the property name must "
"start with the underscore character (_). "
"These names are conventionally in upper case "
"with the underscore character used to provide "
"\"spaces\" between parts of the name.</margin1>\n"
"\n"
"<margin><property-type></margin>\n"
"<margin1>A <property-type> can be one of \"atom\", "
"\"cardinal\", or \"integer\" (see above).</margin1>\n"
"\n"
"<margin><font-spacing></margin>\n"
"<margin1>A <font-spacing> value can be one of "
"\"proportional\", \"monowidth\", or "
"\"charactercell\".</margin1>\n"
"\n"
"<margin1>If an unknown <font-spacing> value is "
"encountered, the default value is "
"\"proportional\".</margin1>\n"
"\n"
"<margin><codebase></margin>\n"
"<margin1>A <codebase> value can be one of \"octal\", "
"\"decimal\", or \"hexadecimal\". It can also "
"be shortened to just the first letter. Any "
"unknown <codebase> values are assumed to be "
"\"hexadecimal\".</margin1>\n"
"\n"
"<margin><translation></margin>\n"
"<margin1>A <translation> is a valid GUI toolkit translation "
"string.</margin1>\n"
"\n"
"<margin><filename></margin>\n"
"<margin1>A <filename> is the name of a file including or "
"excluding a partial or full path to the file.</margin1>\n"
"\n"
"<margin><eolname></margin>\n"
"<margin1>An <eolname> value can be one of \"unix\" (^J), "
"\"dos\" (^M^J), or \"mac\" (^M). This value is "
"used when saving BDF fonts.</margin1>\n"
"\n"
"<bul>gbdfed Configuration File Options</bul>\n"
"\n"
"<margin>code_base <codebase> [default: \"hex\"]</margin>\n"
"\n"
"<margin1>By default, set the code base used to display the "
"glyph encodings to base 16, or hex. This option can "
"be set to \"oct\", \"dec\", or \"hex\".</margin1>\n"
"\n"
"<margin>skip_blank_pages <boolean> [default: \"true\"]</margin>\n"
"\n"
"<margin1>By default, the editor will skip font pages "
"that do not have any glyphs when the \"Next "
"Page\" and \"Previous Page\" buttons are used.</margin1>\n"
"\n"
"<margin1>If this option is set to \"false\", the \"Next "
"Page\" and \"Previous Page\" buttons will simply "
"move to the next or previous page, even if "
"they do not have glyphs on them.</margin1>\n"
"\n"
"<margin1>This feature is only available in the configuration "
"file and on the command line.</margin1>\n"
"\n"
"<margin>really_exit <boolean> [default: \"true\"]</margin>\n"
"\n"
"<margin1>By default, the editor will always present the "
"\"Really Exit?\" dialog when exiting. If this "
"option is set to \"false\", then the dialog "
"not be presented when exiting.</margin1>\n"
"\n"
"<margin1>This feature is only available in the configuration "
"file and on the command line.</margin1>\n"
"\n"
"<margin>grid_overwrite_mode <boolean> [default: \"true\"]</margin>\n"
"\n"
"<margin1>By default, pasting glyphs into a Font Grid will "
"overwrite glyphs that are in the same range as the "
"glyphs being pasted. If this option is set to "
"\"false\", pasting glyphs into a Font Grid will "
"move glyphs to make room for the glyphs being pasted. "
"Any glyphs moved that have an encoding larger than "
"65535 will be moved to the unencoded area.</margin1>\n"
"\n"
"<margin1>This feature is toggled using the <b>Preferences</b> dialog.</margin1> \n"
"\n"
"<margin>close_accelerator_text <labelstring> [default: \"Ctrl+F4\"]</margin>\n"
"\n"
"<margin1>The default close accelerator text shown on the "
"Close/Exit menu options of the FontGrids and "
"GlyphEditors is \"Ctrl+F4\". This option changes the "
"label string on those menu options. This option should "
"be used in conjunction with the next option.</margin1>\n"
"\n"
"<margin1>This feature is only available in the configuration "
"file.</margin1>\n"
"\n"
"<margin>close_accelerator <translation> [default: \"<Control>F4\"]</margin>\n"
"\n"
"<margin1>The default accelerator for the Close/Exit menu options "
"in the FontGrids and GlyphEditors can sometimes be "
"awkward for various reasons. This option allows that "
"accelerator to be changed. This option should be used "
"in conjunction with the previous option.</margin1>\n"
"\n"
"<margin1>This feature is only available in the configuration "
"file.</margin1>\n"
"\n"
"<margin>unicode_name_file <filename></margin>\n"
"\n"
"<margin1>This specifies a file that contains entries in the UCDB "
"(Unicode Character Database) format. When glyphs are named "
"using Unicode names, this file provides the mapping between "
"the code and the name. This file is assumed to be sorted by "
"code.</margin1>\n"
"\n"
"<margin1>This feature is set using the \"Preferences->Editing Options\" "
"tab.</margin1>\n"
"\n"
"<margin>adobe_name_file <filename></margin>\n"
"\n"
"<margin1>This specifies a file that contains entries in the Adobe "
"Glyph List format (see Adobe for details). When glyphs "
"are named using the Adobe names, this file provides the "
"mapping between the code and the name. This file is assumed "
"to be sorted by name and not by code.</margin1>\n"
"\n"
"<margin1>This feature is set using the <b>Preferences->Editing Options</b> "
"tab.</margin1>\n"
"\n"
"<margin>pixel_size <integer> [default: \"10\"]</margin>\n"
"\n"
"<margin1>The Glypheditors will use a square of size 10x10 to "
"represent a pixel in the glyph bitmap. If the glyph "
"bitmap causes the Glypheditor grid to be larger than "
"1/2 the display height, then this value will be reduced "
"until the bitmap fits within 1/2 the display size or "
"until a pixel size of 2 is reached.</margin1>\n"
"\n"
"<margin1>The Glypheditors will always attempt to use this default "
"value first before reducing the size, if reducing the size "
"is needed.</margin1>\n"
"\n"
"<margin1>This feature is set using the \"Preferences->Editing Options\" "
"tab.</margin1>\n"
"\n"
"<margin>show_cap_height <boolean> [default: \"false\"]</margin>\n"
"\n"
"<margin1>If the font has the <b>CAP_HEIGHT</b> property defined, "
"this flag will toggle the display of this height "
"in the Glypheditors.</margin1>\n"
"\n"
"<margin1>The <b>CAP_HEIGHT</b> is shown as a solid horizontal line "
"above the baseline in the same color as the baseline.</margin1>\n"
"\n"
"<margin1>This feature is toggled using the <b>Preferences->Editing Options</b> "
"tab.</margin1>\n"
"\n"
"<margin>show_x_height <boolean> [default: \"false\"]</margin>\n"
"\n"
"<margin1>If the font has the <b>X_HEIGHT</b> property defined, "
"this flag will toggle the display of this height "
"in the Glypheditors.</margin1>\n"
"\n"
"<margin1>The <b>X_HEIGHT</b> is shown as a solid horizontal line "
"above the baseline in the same color as the baseline.</margin1>\n"
"\n"
"<margin1>This feature is toggled using the <b>Setup->Editing Options</b> "
"tab.</margin1>\n"
"\n"
"<margin>font_grid_horizontal <boolean> [default: \"true\"]</margin>\n"
"\n"
"<margin1>This option determines if the glyphs are displayed "
"horizontally or vertically. The default is to display "
"horizontally.</margin1>\n"
"\n"
"<margin1>This default orientation option can only be set in "
"the configuration file at the moment.</margin1>\n"
"\n"
"<margin>power2 <boolean> [default: \"true\"]</margin>\n"
"\n"
"<margin1>This option determines whether the font grid always "
"adjusts the rows and columns to powers of 2. This "
"option can only be set in the configuration file at "
"the moment.</margin1>\n"
"\n"
"<margin>generate_sbit_metrics <boolean> [default: \"false\"]</margin>\n"
"\n"
"<margin1>This option determines whether an SBIT metrics file "
"will be written after the BDF font has been written. "
"NOTE: This is for use with the SBIT utility from "