Blame tests/Auto/lib/Common/Font.c

Packit b099d7
/* 
Packit b099d7
 * Motif
Packit b099d7
 *
Packit b099d7
 * Copyright (c) 1987-2012, The Open Group. All rights reserved.
Packit b099d7
 *
Packit b099d7
 * These libraries and programs are free software; you can
Packit b099d7
 * redistribute them and/or modify them under the terms of the GNU
Packit b099d7
 * Lesser General Public License as published by the Free Software
Packit b099d7
 * Foundation; either version 2 of the License, or (at your option)
Packit b099d7
 * any later version.
Packit b099d7
 *
Packit b099d7
 * These libraries and programs are distributed in the hope that
Packit b099d7
 * they will be useful, but WITHOUT ANY WARRANTY; without even the
Packit b099d7
 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
Packit b099d7
 * PURPOSE. See the GNU Lesser General Public License for more
Packit b099d7
 * details.
Packit b099d7
 *
Packit b099d7
 * You should have received a copy of the GNU Lesser General Public
Packit b099d7
 * License along with these librararies and programs; if not, write
Packit b099d7
 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
Packit b099d7
 * Floor, Boston, MA 02110-1301 USA
Packit b099d7
*/ 
Packit b099d7
/* 
Packit b099d7
 * HISTORY
Packit b099d7
*/ 
Packit b099d7
#ifdef REV_INFO
Packit b099d7
#ifndef lint
Packit b099d7
static char rcsid[] = "$XConsortium: Font.c /main/9 1995/07/14 10:56:39 drk $"
Packit b099d7
#endif
Packit b099d7
#endif
Packit b099d7
#include "testlib.h"
Packit b099d7
Packit b099d7
/*************************************************************************
Packit b099d7
*									 *
Packit b099d7
*	Name:		CommonGetFontList()				 *
Packit b099d7
*									 *
Packit b099d7
*	Purpose:	This function will given a name of a desired     *
Packit b099d7
*			return a appropriate Font List. If the font      *
Packit b099d7
*			cannot be found, the default font will be	 *
Packit b099d7
*			used. default_font is either read from the       *
Packit b099d7
*			command line or from testlib.h (DEFAULT_FONT)	 *
Packit b099d7
*									 *
Packit b099d7
*	Return:		Appropriate font list corresponding to string    *
Packit b099d7
*			input.						 *
Packit b099d7
*									 *
Packit b099d7
*************************************************************************/
Packit b099d7
Packit b099d7
XmFontList CommonGetFontList(char *fontstr)
Packit b099d7
Packit b099d7
{
Packit b099d7
Packit b099d7
#ifdef MOTIF1_1
Packit b099d7
  XFontStruct      *newfont;
Packit b099d7
#else
Packit b099d7
  static XmFontListEntry  fixed_font = NULL;
Packit b099d7
  XmFontListEntry  fontlistEntry;
Packit b099d7
#endif
Packit b099d7
  XmFontList       fontlist;
Packit b099d7
Packit b099d7
Packit b099d7
#ifdef MOTIF1_1
Packit b099d7
Packit b099d7
    if (!(newfont = XLoadQueryFont (display, fontstr)))
Packit b099d7
      newfont = XLoadQueryFont (display, default_font);
Packit b099d7
    fontlist = XmFontListCreate (newfont, XmSTRING_DEFAULT_CHARSET);
Packit b099d7
Packit b099d7
#else
Packit b099d7
Packit b099d7
  if (!fixed_font) {
Packit b099d7
    fixed_font = XmFontListEntryLoad(display, "fixed", XmFONT_IS_FONT,
Packit b099d7
				     XmFONTLIST_DEFAULT_TAG);
Packit b099d7
  }
Packit b099d7
Packit b099d7
  if ((fontlistEntry = XmFontListEntryLoad(display, fontstr, XmFONT_IS_FONT,
Packit b099d7
					   XmFONTLIST_DEFAULT_TAG)) == NULL)
Packit b099d7
    {
Packit b099d7
      fontlist = XmFontListAppendEntry(NULL, fixed_font );
Packit b099d7
    }
Packit b099d7
  else
Packit b099d7
    {
Packit b099d7
      fontlist = XmFontListAppendEntry(NULL, fontlistEntry);
Packit b099d7
      XmFontListEntryFree(&fontlistEntry);
Packit b099d7
    }
Packit b099d7
Packit b099d7
#endif
Packit b099d7
Packit b099d7
  return(fontlist);
Packit b099d7
Packit b099d7
}
Packit b099d7
Packit b099d7
/*************************************************************************
Packit b099d7
*									 *
Packit b099d7
*	Name:		CommonGetFontListithCharset()			 *
Packit b099d7
*									 *
Packit b099d7
*	Purpose:	This function will be given the name of a 	 *
Packit b099d7
*			desired font and the desired charset name	 *
Packit b099d7
*			and will return the appropriate Font List. If 	 *
Packit b099d7
*			the font cannot be found, the default font will  *
Packit b099d7
*			be used. default_font is either read from the 	 *
Packit b099d7
*			command line or from testlib.h (DEFAULT_FONT)	 *
Packit b099d7
*									 *
Packit b099d7
*	Return:		Appropriate font list                            *
Packit b099d7
*									 *
Packit b099d7
*************************************************************************/
Packit b099d7
Packit b099d7
XmFontList CommonGetFontListWithCharset(char *fontstr, char *charset)
Packit b099d7
Packit b099d7
{
Packit b099d7
Packit b099d7
#ifdef MOTIF1_1
Packit b099d7
    XFontStruct   *newfont;
Packit b099d7
#else
Packit b099d7
    static XmFontListEntry fixed_font = NULL;
Packit b099d7
    XmFontListEntry fontlistEntry;
Packit b099d7
#endif
Packit b099d7
    XmFontList    fontlist;
Packit b099d7
Packit b099d7
#ifdef MOTIF1_1
Packit b099d7
Packit b099d7
    if (!(newfont = XLoadQueryFont (display, fontstr)))
Packit b099d7
    	newfont = XLoadQueryFont (display, default_font);
Packit b099d7
    fontlist = XmFontListCreate (newfont, charset);
Packit b099d7
Packit b099d7
#else
Packit b099d7
Packit b099d7
    if (!fixed_font) {
Packit b099d7
        fixed_font = XmFontListEntryLoad(display, "fixed", XmFONT_IS_FONT,
Packit b099d7
                                         charset);
Packit b099d7
    }
Packit b099d7
Packit b099d7
    if ((fontlistEntry = XmFontListEntryLoad(display, fontstr, XmFONT_IS_FONT,
Packit b099d7
                                        charset)) == NULL)
Packit b099d7
      {
Packit b099d7
	fontlist = XmFontListAppendEntry(NULL, fixed_font);
Packit b099d7
      }
Packit b099d7
    else
Packit b099d7
      {
Packit b099d7
	fontlist = XmFontListAppendEntry(NULL, fontlistEntry);
Packit b099d7
	XmFontListEntryFree(&fontlistEntry);
Packit b099d7
      }
Packit b099d7
Packit b099d7
#endif
Packit b099d7
Packit b099d7
	return(fontlist);
Packit b099d7
Packit b099d7
}