1 #include <Application.h>
2 #include <Font.h>
3 #include <Rect.h>
4 #include <stdio.h>
5
6 void
GetBoundingBoxesAsGlyphsTest(BFont * font)7 GetBoundingBoxesAsGlyphsTest(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
19 void
GetBoundingBoxesAsStringTest(BFont * font)20 GetBoundingBoxesAsStringTest(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
33 void
GetBoundingBoxesForStringsTest(BFont * font)34 GetBoundingBoxesForStringsTest(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
main()49 int 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