High level description of what each source file
contains...
This page is grievously out of
date
- edgelist.h
- This contains the data structures used by the rasterizer
routines (splinefill.c), but it turns out that the same basic
mechanism is used for a number of other things, autohint.c,
splineoverlap.c, perhaps others.
- fontforge.h
- This is a general header which just includes other
headers. Every source file in this directory should include
it.
- fontforgeui.h
- Another general header file which includes others and
defines a few global variables. All UI source files should
include this.
- psfont.h
- These data structures are used by parsepfa.c as a
temporary resting place for a postscript font before it gets
converted into a SplineFont (splinefont.h) by calling
SplineFontFromPSFont in splineutil.c
- splinefont.h
- This one contains all the basic
data structures of the program.
- views.h
- This contains the basic UI data
structures.
- autohint.c
- Contains the routines which guess at postscript
hints.
- autosave.c
- Contains a few basic routines that handle autosaving, but
most of the real work is done in sfd.c
- autowidth.c
- Guesses at good widths for characters and good kerning
for them. Creates a dialog to get guidance from the user and
the goes off and tries to guess reasonable values.
- bitmapdlg.c
- Handles the two dialogs for creating and recreating
bitmaps. (The creating one creates an entire new bitmap font,
the recreating one modifies an already existing font by
regenerating the selected characters).
- bitmapview.c
- Does much of the basic work of the bitmap editor. Handles
menus, events, etc.
- bvedit.c
- Some extra routines for editing bitmaps (bv =>
bitmapview). Handles floating selections, paste,
translations, etc.
- charview.c
- Does the basic work for the spline glyph editor. Handles
menus, events, dispatches mouse events to the appropriate
tools, etc.
- charviewicons.c
- These are the icon resources for the images that appear
in the info area of the spline editor above.
- cursors.c
- Defines the various cursors used.
- cvaddpoints.c
- Handles mouse events when the current tool is a point
generator. charview.c will dispatch events to us. (cv =>
charview)
- cvexport.c
- The dialog to export data into a different format. Also
(some of) the conversion routines for that format. (Also used
to export xbm files from the bitmapview)
- cvgetinfo.c
-
Contains the Get Info dispatcher and dialogs for the
charview. There are several different types of info
depending on the current selection and there's a dialog for
each
- A point is selected
- A reference to another character is selected (in the
foreground)
- An image is selected (in the background)
- Or if more than one thing is (or no things are)
selected, then general information on the character
itself
This last is also used by the fontview.
- cvhints.c
- A series of trivial little dialogs and commands that
allow the user to set postscript hints manually.
- cvimages.c
- Contains code to import stuff into a CharView, BitmapView
or FontView. Initially it was only images into the CharView,
but it has grown beyond its name. CharViews can import Images
(gif, png, tiff, jpeg, xbm, xpm, sun raster, windows bmp,
...) into the background of a CharView. I'd like to be able
to do this from the clipboard, but I don't know whether
there's a standard way of moving images around there. Also
can import eps files (very restricted) and xfig (not too
well). BitmapViews can only import images into their
foreground. I think only bitmaps but I forget. FontViews can
import bdf fonts into their list of bitmaps.
- cvknife.c
- The dispatch file for mouse events when the knife tool is
selected.
- cvpalettes.c
- Handles the two palettes associated with a CharvView, and
the two palettes for a BitmapView, and the Char and
BitmapView popup menus.
- cvpointer.c
- The dispatch file for mouse events when the pointer tool
is selected.
- cvruler.c
- The dispatch file for mouse events when the ruler tool is
selected.
- cvshapes.c
- The dispatch file for mouse events when one of the shape
tools (rectangle, ellipse, polygon, star) is selected.
- cvstroke.c
- The dialog for the expand stroke command. Also some of
the routines which do the work. See also splinestroke.c
- cvtranstools.c
- The dispatch file for mouse events when one of the
transform tools (scale, rotate, flip, skew) is selected.
- cvundoes.c
- Contains the routines that handle Undoes, Redoes and
Copy/Paste for CharViews, BitmapViews and FontViews.
- dumpbdf.c
- Writes a bdf file.
- dumppfa.c
- Writes a postscript file. pfa, pfb, type3, type0. See
also splinesave.c.
- fontinfo.c
- Contains the fontinfo dialog and the routines to reencode
a font.
- fontview.c
- The main file for the fontview. Menu dispatcher, event
handler. Basic Font level routines.
- fvcomposit.c
- The file that figures out how to build a composite
character for you (ie. for Agrave will put a reference to A
in your character, and a reference to grave and then will
position the accent on top of A nicely). Operates on both the
splines and the bitmaps.
- fvfonts.c
- Contains the dialogs and the functions for the Merge
Fonts and Interpolate Fonts commands
- fvimportbdf.c
- The routine which reads in a bdf font. (note the font
selection dialog is in cvimages.c)
- fvmetrics.c
- The dialog and routines for autowidth and autokern.
- images.c
- icon resources for the images used in the palettes.
There's no good reason why this isn't merged in with
charviewicons.c
- metricsview.c
- The main file for the metricsview. Menu dispatcher, event
hander. Most of the functionality.
- print.c
- Handles the print and pagesetup dialogs.
- parsepfa.c
- Parses a postscript font. Doesn't get the encoding of a
type0 font. Type3s are too free form for me to be able to
interpret all (or even most?) of them. But we can at least
read in the type3s we write out (unless they contain images).
Some of the work also done in psread.c and splineutil.c
- parsettf.c
- Parses a TTF (or OTF) font file, and converts from
quadratic Bézier to cubic Bézier (easy).
- prefs.c
- Preference dialog.
- psread.c
- This is our postscript interpreter for various flavors of
postscript-- eps files, type3s, type1s, type2s, etc. It can't
handle much.
- psunicodenames.c
- A list of all the adobe standard names for unicode
characters in postscript. Any NULL entry in this array gets
an algorithmically generated name uni%04X
- scripting.c
- All the routines to handle scripts
- savefontdlg.c
- Dialog and dispatcher for the Generate Fonts
command.
- sfd.c
- Routines to write and read our spline font database
format (sfd). Also routines to
handle autosave files which are basically just the bits of
the font which have changed written out in sfd format with a
few extra headers to say what these changes should be applied
to.
- splashimage.c
- The resource containing the splash image.
- splinefill.c
- The routines that do rasterizing (and anti-aliasing).
Also provides skeleton routines for autohinting, remove
overlap, etc. which use a similar structure.
- splineoverlap.c
- The routines which implement the remove overlap
command.
- splinesave.c
- Various helper routines when saving a postscript (and to
a lesser extent TTF) font. Converts to type1 or type2
commands. Figures out optimal referencing.
- splinesaveafm.c
- Generates an afm file.
- splinestroke.c
- More routines to handle expand stroke.
- splineutil.c
- A bunch of utility routines. Converts postscript type1
strings into SplineChars. Figures bounding boxes. Handles
updating references and dependencies. Figures linear
approximations to splines for drawing. Figures clockwise,
counter-clockwise. Guesses at good pointtypes when loading in
postscript/ttf fonts. Copies SplinePointLists. Transforms
SplinePointLists. Solves (approximates a solution) cubic
equations. Finds points of inflection. Figures out if a point
is "near" a spline.
- splineutil2.c
- More utility functions. Determines if a spline is linear
(even if its control points aren't degenerate, we can still
get spines which trace out a line, for instance if both
control points are on the line between the to base points).
Finds (approximates) the intersection of two splines.
Aproximate a spline from a set of points (used by MergePoint,
inserting a point onto a spline, and many other things). The
Merge command itself. The Simplify command. Commands to
remove tiny spline segments (these can confuse the Overlap
routine, so we take them out before it does anything).
Routine to create a new SplineFont. Routines to make sure the
control points of tangent points continue to point in the
right direction even when the point is moved. Routines to
figure good default values for control points on new points
(and on points where the user has not set the control points
him/herself when that point is moved). Determines if any
point on a path is selected. Reverses the direction of a
closed path.
- stamp.c
- Time stamp of when I last built.
- stamper.c
- Program which generates time stamp. (stamp.c)
- start.c
- main routine. Initializes things and reads comand line
arguments. Handles the splash screen. Top dispatcher for
autosave.
- threaddummy.c
- contains a dummy pthread_create so I don't need to drag
in pthreads when I'm not interested in that section of
gio.
- tottf.c
- Saves a true type or open type font. see also
splinesave.c for reference character optimization and for
OpenType Type2 conversion routines.
- transform.c
- Transform dialog and dispatch routines.
- uiutil.c
- Utilities for the user interface.
- utils.c
- Hmm. this is blank.
- windowmenu.c
- Builds and dispatches the window menu.
-- Prev -- TOC -- Next
--