Patch from Guillaume Cottenceau to add some missing functions
authorMiriam Ruiz <miriam@debian.org>
Mon, 1 Dec 2008 08:01:46 +0000 (1 09:01 +0100)
committerMiriam Ruiz <miriam@debian.org>
Mon, 1 Dec 2008 08:01:46 +0000 (1 09:01 +0100)
Obtained from Debian Package release 0.1.2-4

src/SDL_Pango.c
src/SDL_Pango.h

index 2118cd2..b969bc1 100644 (file)
@@ -723,13 +723,9 @@ SDLPango_CopyFTBitmapToSurface(
     SDL_UnlockSurface(surface);\r
 }\r
 \r
-/*!\r
-    Create a context which contains Pango objects.\r
 \r
-    @return A pointer to the context as a SDLPango_Context*.\r
-*/\r
 SDLPango_Context*\r
-SDLPango_CreateContext()\r
+SDLPango_CreateContext_GivenFontDesc(const char* font_desc)\r
 {\r
     SDLPango_Context *context = g_malloc(sizeof(SDLPango_Context));\r
     G_CONST_RETURN char *charset;\r
@@ -743,8 +739,7 @@ SDLPango_CreateContext()
     pango_context_set_language (context->context, pango_language_from_string (charset));\r
     pango_context_set_base_dir (context->context, PANGO_DIRECTION_LTR);\r
 \r
-    context->font_desc = pango_font_description_from_string(\r
-       MAKE_FONT_NAME (DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE));\r
+    context->font_desc = pango_font_description_from_string(font_desc);\r
 \r
     context->layout = pango_layout_new (context->context);\r
 \r
@@ -762,6 +757,17 @@ SDLPango_CreateContext()
 }\r
 \r
 /*!\r
+    Create a context which contains Pango objects.\r
+\r
+    @return A pointer to the context as a SDLPango_Context*.\r
+*/\r
+SDLPango_Context*\r
+SDLPango_CreateContext()\r
+{\r
+    SDLPango_CreateContext_GivenFontDesc(MAKE_FONT_NAME(DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE));\r
+}\r
+\r
+/*!\r
     Free a context.\r
 \r
     @param *context [i/o] Context to be free\r
@@ -1053,6 +1059,20 @@ SDLPango_SetMarkup(
     pango_layout_set_font_description (context->layout, context->font_desc);\r
 }\r
 \r
+void\r
+SDLPango_SetText_GivenAlignment(\r
+    SDLPango_Context *context,\r
+    const char *text,\r
+    int length,\r
+    SDLPango_Alignment alignment)\r
+{\r
+    pango_layout_set_attributes(context->layout, NULL);\r
+    pango_layout_set_text (context->layout, text, length);\r
+    pango_layout_set_auto_dir (context->layout, TRUE);\r
+    pango_layout_set_alignment (context->layout, alignment);\r
+    pango_layout_set_font_description (context->layout, context->font_desc);\r
+}\r
+\r
 /*!\r
     Set plain text to context.\r
     Text must be utf-8.\r
@@ -1067,11 +1087,7 @@ SDLPango_SetText(
     const char *text,\r
     int length)\r
 {\r
-    pango_layout_set_attributes(context->layout, NULL);\r
-    pango_layout_set_text (context->layout, text, length);\r
-    pango_layout_set_auto_dir (context->layout, TRUE);\r
-    pango_layout_set_alignment (context->layout, PANGO_ALIGN_LEFT);\r
-    pango_layout_set_font_description (context->layout, context->font_desc);\r
+    SDLPango_SetText_GivenAlignment(context, text, length, SDLPANGO_ALIGN_LEFT);\r
 }\r
 \r
 /*!\r
index 2433661..6ebdf78 100644 (file)
@@ -26,6 +26,7 @@
 \r
 #ifndef SDL_PANGO_H\r
 #define SDL_PANGO_H\r
+#define SDL_PANGO_HAS_GC_EXTENSIONS\r
 \r
 #include "SDL.h"\r
 \r
@@ -109,12 +110,20 @@ typedef enum {
     SDLPANGO_DIRECTION_NEUTRAL /*! Neutral */\r
 } SDLPango_Direction;\r
 \r
-\r
+/*!\r
+    Specifies alignment of text. See Pango reference for detail\r
+*/\r
+typedef enum {\r
+    SDLPANGO_ALIGN_LEFT,\r
+    SDLPANGO_ALIGN_CENTER,\r
+    SDLPANGO_ALIGN_RIGHT\r
+} SDLPango_Alignment;\r
 \r
 extern DECLSPEC int SDLCALL SDLPango_Init();\r
 \r
 extern DECLSPEC int SDLCALL SDLPango_WasInit();\r
 \r
+extern DECLSPEC SDLPango_Context* SDLCALL SDLPango_CreateContext_GivenFontDesc(const char* font_desc);\r
 extern DECLSPEC SDLPango_Context* SDLCALL SDLPango_CreateContext();\r
 \r
 extern DECLSPEC void SDLCALL SDLPango_FreeContext(\r
@@ -157,6 +166,12 @@ extern DECLSPEC void SDLCALL SDLPango_SetMarkup(
     const char *markup,\r
     int length);\r
 \r
+extern DECLSPEC void SDLCALL SDLPango_SetText_GivenAlignment(\r
+    SDLPango_Context *context,\r
+    const char *text,\r
+    int length,\r
+    SDLPango_Alignment alignment);\r
+\r
 extern DECLSPEC void SDLCALL SDLPango_SetText(\r
     SDLPango_Context *context,\r
     const char *markup,\r