# font.properties
#    Copyright (C) 2002 Free Software Foundation, Inc.
# 
# This file is part of GNU Classpath.
# 
# GNU Classpath is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# 
# GNU Classpath is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with GNU Classpath; see the file COPYING.  If not, write to the
# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301 USA.
# 
# Linking this library statically or dynamically with other modules is
# making a combined work based on this library.  Thus, the terms and
# conditions of the GNU General Public License cover the whole
# combination.
# 
# As a special exception, the copyright holders of this library give you
# permission to link this library with independent modules to produce an
# executable, regardless of the license terms of these independent
# modules, and to copy and distribute the resulting executable under
# terms of your choice, provided that you also meet, for each linked
# independent module, the terms and conditions of the license of that
# module.  An independent module is a module which is not derived from
# or based on this library.  If you modify this library, you may extend
# this exception to your version of the library, but you are not
# obligated to do so.  If you do not wish to do so, delete this
# exception statement from your version.


# This file is meant to be temporary.
# We'll eventually replace _all_ the font code when GScript is done.
# Until that happens, we won't be supporting non-iso8859-1 fonts.
#
# suffixes:
# .0 = plain
# .1 = bold
# .2 = italic
# .3 = bold & italic

serif.0=-adobe-times-medium-r-normal--*-%d-*-*-p-*-iso8859-1
serif.1=-adobe-times-bold-r-normal--*-%d-*-*-p-*-iso8859-1
serif.2=-adobe-times-medium-i-normal--*-%d-*-*-p-*-iso8859-1
serif.3=-adobe-times-bold-i-normal--*-%d-*-*-p-*-iso8859-1

sansserif.0=-adobe-helvetica-medium-r-normal--*-%d-*-*-p-*-iso8859-1
sansserif.1=-adobe-helvetica-bold-r-normal--*-%d-*-*-p-*-iso8859-1
sansserif.2=-adobe-helvetica-medium-o-normal--*-%d-*-*-p-*-iso8859-1
sansserif.3=-adobe-helvetica-bold-o-normal--*-%d-*-*-p-*-iso8859-1

monospaced.0=-adobe-courier-medium-r-normal--*-%d-*-*-m-*-iso8859-1
monospaced.1=-adobe-courier-bold-r-normal--*-%d-*-*-m-*-iso8859-1
monospaced.2=-adobe-courier-medium-o-normal--*-%d-*-*-m-*-iso8859-1
monospaced.3=-adobe-courier-bold-o-normal--*-%d-*-*-m-*-iso8859-1

dialog.0=-b&h-lucida-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
dialog.1=-b&h-lucida-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
dialog.2=-b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
dialog.3=-b&h-lucida-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1

dialoginput.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
dialoginput.1=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
dialoginput.2=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
dialoginput.3=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
