+/* SFont: a simple font-library that uses special bitmaps as fonts
+ Copyright (C) 2003 Karl Bartel
+
+ WWW: http://www.linux-games.com/sfont/
+
+ This program 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 of the License, or
+ (at your option) any later version.
+
+ This program 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 this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Karl Bartel
+ Cecilienstr. 14
+ 12307 Berlin
+ GERMANY
+ karlb@gmx.net
+*/
+
/************************************************************************
-* SFONT - SDL Font Library by Karl Bartel <karlb@gmx.net> *
+* SFONT - SDL Font Library by Karl Bartel <karlb@gmx.net> *
* *
-* All functions are explained below. There are two versions of each *
-* funtction. The first is the normal one, the function with the *
-* 2 at the end can be used when you want to handle more than one font *
-* in your program. *
+* All functions are explained below. For further information, take a *
+* look at the example files, the links at the SFont web site, or *
+* contact me, if you problem isn' addressed anywhere. *
* *
************************************************************************/
+#ifndef SFONT_H
+#define SFONT_H
-#include <SDL/SDL.h>
+#include <SDL.h>
// Delcare one variable of this type for each font you are using.
// To load the fonts, load the font image into YourFont->Surface
-// and call InitFont( YourFont );
+// and call SFont_InitFont(YourFont);
typedef struct {
SDL_Surface *Surface;
int CharPos[512];
- int h;
-} SFont_FontInfo;
+ int MaxPos;
+} SFont_Font;
// Initializes the font
// Font: this contains the suface with the font.
+// The Surface must be loaded before calling this function
+SFont_Font* SFont_InitFont (SDL_Surface *Font);
+
+// Frees the font
+// Font: The font to free
// The font must be loaded before using this function.
-void InitFont (SDL_Surface *Font);
-void InitFont2(SFont_FontInfo *Font);
+void SFont_FreeFont(SFont_Font* Font);
// Blits a string to a surface
// Destination: the suface you want to blit to
// text: a string containing the text you want to blit.
-void PutString (SDL_Surface *Surface, int x, int y, char *text);
-void PutString2(SDL_Surface *Surface, SFont_FontInfo *Font, int x, int y, char *text);
+void SFont_Write(SDL_Surface *Surface, const SFont_Font *Font, int x, int y,
+ const char *text);
// Returns the width of "text" in pixels
-int TextWidth(char *text);
-int TextWidth2(SFont_FontInfo *Font, char *text);
-int SFont_wide(char *text);
-
-// Blits a string to with centered x position
-void XCenteredString (SDL_Surface *Surface, int y, char *text);
-void XCenteredString2(SDL_Surface *Surface, SFont_FontInfo *Font, int y, char *text);
-
-// Allows the user to enter text
-// Width: What is the maximum width of the text (in pixels)
-// text: This string contains the text which was entered by the user
-// ph: nonblocking
-int SFont_Input ( SDL_Surface *Destination, int x, int y, int Width, char *text);
-int SFont_Input2( SDL_Surface *Destination, SFont_FontInfo *Font, int x, int y, int Width, char *text);
+int SFont_TextWidth(const SFont_Font* Font, const char *text);
+// Returns the height of "text" in pixels (which is always equal to Font->Surface->h)
+int SFont_TextHeight(const SFont_Font* Font);
+
+// Blits a string to Surface with centered x position
+void SFont_WriteCenter(SDL_Surface *Surface, const SFont_Font* Font, int y,
+ const char *text);
+
+#endif /* SFONT_H */