4
(define (max-font-width text use-name font-list font-size)
5
(let* ((list font-list)
11
(set! font (car list))
12
(set! list (cdr list))
15
(set! extents (gimp-text-get-extents-fontname text
18
(set! width (nth 0 extents))
19
(if (> width maxwidth)
20
(set! maxwidth width)))
24
(define (max-font-height text use-name font-list font-size)
25
(let* ((list font-list)
31
(set! font (car list))
32
(set! list (cdr list))
35
(set! extents (gimp-text-get-extents-fontname text
38
(set! height (nth 1 extents))
39
(if (> height maxheight)
40
(set! maxheight height)))
44
4
(define (script-fu-font-map text
53
(font-list (cadr (gimp-fonts-get-list font-filter)))
54
(num-fonts (length font-list))
55
(label-size (/ font-size 2))
56
(border (+ border (* labels (/ label-size 2))))
58
(maxheight (max-font-height text use-name font-list font-size))
59
(maxwidth (max-font-width text use-name font-list font-size))
60
(width (+ maxwidth (* 2 border)))
61
(height (+ (+ (* maxheight num-fonts) (* 2 border))
62
(* labels (* label-size num-fonts))))
63
(img (car (gimp-image-new width height (if (= colors 0)
65
(drawable (car (gimp-layer-new img width height (if (= colors 0)
67
"Background" 100 NORMAL-MODE))))
12
(define (max-font-width text use-name list-cnt list font-size)
18
(while (< count list-cnt)
19
(set! font (aref list count))
23
(set! extents (gimp-text-get-extents-fontname text
26
(set! width (car extents))
27
(if (> width maxwidth)
28
(set! maxwidth width))
30
(set! count (+ count 1))
37
(define (max-font-height text use-name list-cnt list font-size)
43
(while (< count list-cnt)
44
(set! font (aref list count))
49
(set! extents (gimp-text-get-extents-fontname text
52
(set! height (cadr extents))
53
(if (> height maxheight)
54
(set! maxheight height)
57
(set! count (+ count 1))
65
(font-data (gimp-fonts-get-list font-filter))
66
(font-list (cadr font-data))
67
(num-fonts (car font-data))
68
(label-size (/ font-size 2))
69
(border (+ border (* labels (/ label-size 2))))
71
(maxheight (max-font-height text use-name num-fonts font-list font-size))
72
(maxwidth (max-font-width text use-name num-fonts font-list font-size))
73
(width (+ maxwidth (* 2 border)))
74
(height (+ (+ (* maxheight num-fonts) (* 2 border))
75
(* labels (* label-size num-fonts))))
76
(img (car (gimp-image-new width height (if (= colors 0)
78
(drawable (car (gimp-layer-new img width height (if (= colors 0)
80
"Background" 100 NORMAL-MODE)))
69
85
(gimp-context-push)
71
87
(gimp-image-undo-disable img)
75
(gimp-context-set-background '(255 255 255))
76
(gimp-context-set-foreground '(0 0 0))))
91
(gimp-context-set-background '(255 255 255))
92
(gimp-context-set-foreground '(0 0 0))))
78
94
(gimp-image-add-layer img drawable 0)
79
95
(gimp-edit-clear drawable)
81
97
(if (= labels TRUE)
83
(set! drawable (car (gimp-layer-new img width height
85
GRAYA-IMAGE RGBA-IMAGE)
86
"Labels" 100 NORMAL-MODE)))
87
(gimp-image-add-layer img drawable -1)))
88
(gimp-edit-clear drawable)
91
(set! font (car font-list))
92
(set! font-list (cdr font-list))
97
(gimp-text-fontname img -1
101
0 TRUE font-size PIXELS
104
(set! y (+ y maxheight))
108
(gimp-floating-sel-anchor (car (gimp-text-fontname img drawable
117
(set! y (+ y label-size))))
120
(set! count (+ count 1)))
99
(set! drawable (car (gimp-layer-new img width height
101
GRAYA-IMAGE RGBA-IMAGE)
102
"Labels" 100 NORMAL-MODE)))
103
(gimp-image-add-layer img drawable -1)))
104
(gimp-edit-clear drawable)
106
(while (< count num-fonts)
107
(set! font (aref font-list count))
109
(if (= use-name TRUE)
112
(gimp-text-fontname img -1
116
0 TRUE font-size PIXELS
119
(set! y (+ y maxheight))
123
(gimp-floating-sel-anchor (car (gimp-text-fontname img drawable
132
(set! y (+ y label-size))
136
(set! count (+ count 1))
122
139
(gimp-image-set-active-layer img drawable)
124
141
(gimp-image-undo-enable img)
125
142
(gimp-display-new img)
129
148
(script-fu-register "script-fu-font-map"
131
"Generate a listing of fonts matching a filter"
136
SF-STRING _"_Text" "How quickly daft jumping zebras vex."
137
SF-TOGGLE _"Use font _name as text" FALSE
138
SF-TOGGLE _"_Labels" TRUE
139
SF-STRING _"_Filter (regexp)" "Sans"
140
SF-ADJUSTMENT _"Font _size (pixels)" '(32 2 1000 1 10 0 1)
141
SF-ADJUSTMENT _"_Border (pixels)" '(10 0 200 1 10 0 1)
142
SF-OPTION _"_Color scheme" '(_"Black on white"
149
_"Render _Font Map..."
150
_"Create an image filled with previews of fonts matching a fontname filter"
155
SF-STRING _"_Text" "How quickly daft jumping zebras vex."
156
SF-TOGGLE _"Use font _name as text" FALSE
157
SF-TOGGLE _"_Labels" TRUE
158
SF-STRING _"_Filter (regexp)" "Sans"
159
SF-ADJUSTMENT _"Font _size (pixels)" '(32 2 1000 1 10 0 1)
160
SF-ADJUSTMENT _"_Border (pixels)" '(10 0 200 1 10 0 1)
161
SF-OPTION _"_Color scheme" '(_"Black on white" _"Active colors")
145
164
(script-fu-menu-register "script-fu-font-map"
146
_"<Toolbox>/Xtns/Script-Fu/Utils")