1#include <Application.h> 2#include <Font.h> 3#include <Rect.h> 4#include <stdio.h> 5 6void 7GetBoundingBoxesAsGlyphsTest(BFont *font) 8{ 9 const char string[] = "test string"; 10 int32 numChars = 11; 11 BRect rectArray[numChars]; 12 font->GetBoundingBoxesAsGlyphs(string, numChars, B_SCREEN_METRIC, rectArray); 13 14 for (int32 i=0; i<numChars; i++) { 15 rectArray[i].PrintToStream(); 16 } 17} 18 19void 20GetBoundingBoxesAsStringTest(BFont *font) 21{ 22 const char string[] = "test string"; 23 int32 numChars = 11; 24 BRect rectArray[numChars]; 25 escapement_delta delta = { 0.0, 0.0 }; 26 font->GetBoundingBoxesAsString(string, numChars, B_SCREEN_METRIC, &delta, rectArray); 27 28 for (int32 i=0; i<numChars; i++) { 29 rectArray[i].PrintToStream(); 30 } 31} 32 33void 34GetBoundingBoxesForStringsTest(BFont *font) 35{ 36 char string[] = "test string"; 37 int32 numStrings = 1; 38 const char* stringArray[numStrings]; 39 stringArray[0] = string; 40 BRect rectArray[numStrings]; 41 escapement_delta delta = { 0.0, 0.0 }; 42 font->GetBoundingBoxesForStrings(stringArray, numStrings, B_SCREEN_METRIC, &delta, rectArray); 43 44 for (int32 i=0; i<numStrings; i++) { 45 rectArray[i].PrintToStream(); 46 } 47} 48 49int main() 50{ 51 BApplication app("application/x-vnd-Test.GetBoundingBoxesTest"); 52 BFont font(be_plain_font); 53 //font.SetRotation(45); 54 //font.SetShear(45); 55 font.SetSpacing(B_CHAR_SPACING); 56 printf("\nGetBoundingBoxesAsGlyphsTest\n"); 57 GetBoundingBoxesAsGlyphsTest(&font); 58 printf("\nGetBoundingBoxesAsStringTest\n"); 59 GetBoundingBoxesAsStringTest(&font); 60 printf("\nGetBoundingBoxesForStringsTest\n"); 61 GetBoundingBoxesForStringsTest(&font); 62} 63